목차
Chapter 1 임베디드 소프트웨어 개요
   1.1 유비쿼터스 컴퓨팅 ... 3
      1.1.1 정의 및 특징 ... 3
      1.1.2 유비쿼터스 컴퓨팅의 발전 과정 및 동향 ... 4
   1.2 임베디드 시스템 ... 6
      1.2.1 임베디드 시스템의 정의 및 특징 ... 6
      1.2.2 임베디드 시스템의 분류 ... 8
   1.3 임베디드 소프트웨어 ... 8
   1.4 임베디드 소프트웨어 연구 동향 ... 10
      1.4.1 미국의 개발 동향 ... 10
      1.4.2 유럽의 기술 개발 동향 ... 11
      1.4.3 국내의 연구 동향 ... 12
   1.5 소프트웨어 위기 ... 12
Chapter 2 임베디드 소프트웨어 공학
   2.1 소프트웨어 공학의 역사 ... 19
   2.2. 소프트웨어 공학의 정의 ... 23
      2.2.1 개요 및 정의 ... 23
      2.2.2 공학적으로 잘 작성된 소프트웨어 ... 25
   2.3 소프트웨어 공학 품질 ... 27
      2.3.1 소프트웨어 공학 품질 정의 ... 27
      2.3.2 소프트웨어 품질 요소 ... 28
      2.3.3 응용 영역별 품질 요구사항 ... 29
   2.4 소프트웨어 개발 생명주기 모델 ... 30
      2.4.1 폭포수(Waterfall) 모델 ... 32
      2.4.2 프로토타이핑 모델 ... 36
      2.4.3 점증적 모델(나선형 모델) ... 38
      2.4.4 정형 방법 모델 ... 42
      2.4.5 컴포넌트 재사용 모델 ... 43
   2.5 소프트웨어 공학에서의 인간요소 ... 45
      2.5.1 개요 ... 45
      2.5.2 그룹 업무 ... 46
      2.5.3 인간공학(Ergonomics) ... 50
Chapter 3 소프트웨어 프로세스
   3.1 개발 프로셰스 이해 ... 57
      3.1.1 방법론이란? ... 57
   3.2 Unified Process 적용 ... 58
      3.2.1 단계(Phase) 뷰 ... 58
      3.2.2 작업영역(Disciplines) 뷰 ... 61
   3.3 최신 개발 프로세스 ... 63
      3.3.1 XP(eXtreme Programming) ... 63
      3.3.2 MDA(Model Driven Architecture) ... 67
      3.3.3 PLD(Product Line based Development) ... 72
   3.4 임베디드 소프트웨어 개발 프로세스 ... 76
      3.4.1 임베디드 시스템 개발 프로세스 ... 76
      3.4.2 임베디드 시스템 위험요소 최소화 ... 78
      3.4.3 임베디드 소프트웨어 요구분석 ... 79
      3.4.4 임베디드 소프트웨어 설계 ... 81
Chapter 4 임베디드 소프트웨어 관리
   4.1 소프트웨어 관리 ... 87
      4.1.1 소개 ... 87
      4.1.2 관리 활동 ... 88
      4.1.3 소프트웨어의 관리 구조 ... 90
      4.1.4 프로그래머 생산성 ... 95
   4.2 소프트웨어 일정 계획 ... 100
      4.2.1 소개 ... 100
      4.2.2 프로젝트 이정표(Project Milestones) ... 102
      4.2.3 CPM 네트워크 ... 103
      4.2.4 Gantt 차트 ... 105
   4.3 소프트웨어 예산 계획 ... 107
      4.3.1 소개 ... 107
      4.3.2 COCOMO 모델 ... 108
   4.4 계획서 작성 ... 142
Chapter 5 임베디드 소프트웨어 요구사항 분석
   5.1 요구사항 분석 개요 ... 147
      5.1.1 요구사항 분석 정의 ... 147
      5.1.2 요구사항 유형 ... 149
      5.1.3 요구사항 정의의 중요성 ... 150
   5.2 요구사항 관리 기법 ... 153
      5.2.1 인터뷰(Interview) ... 153
      5.2.2 질의(Question) ... 153
      5.2.3 브레인스토밍(Brainstorming) ... 154
      5.2.4 워크샵(Workshop) ... 154
      5.2.5 프로토타이핑(Prototyping) ... 155
      5.2.6 스토리보드(Sotryboard) ... 155
      5.2.7 의사소통 ... 156
   5.3 요구사항 프로세스 ... 156
      5.3.1 일반적인 S/W 개발에서 요구사항 관련 프로세스 ... 156
      5.3.2 CBD 방법론에서 요구사항 관련 프로세스 ... 160
      5.3.3 임베디드 S/W 개발에서 요구사항 관련 프로세스 ... 165
   5.4 요구사항 명세 방법 ... 173
      5.4.1 요구사항 명세의 문제점 ... 174
      5.4.2 요구사항 명세 원칙 ... 175
      5.4.3 요구사항 명세 방법 ... 179
      5.4.4 요구사항 명세 절차 ... 180
      5.4.5 관련 산출물 ... 181
   5.5 요구사항 모델링 ... 183
      5.5.1 UML(Unified Modeling Language) ... 183
      5.5.2 요구사항 모델링 ... 185
      5.5.3 Usecase 모델링 ... 186
      5.5.4 유스케이스 실현 ... 193
      5.5.5 유스케이스 기술서 ... 195
   5.6 요구사항 검증(Requirements Validation) ... 197
Chapter 6 임베디드 소프트웨어 아키텍처
   6.1 정의 및 개요 ... 203
   6.2 역할 및 영향 요소 ... 204
   6.3 아키텍처 구조와 뷰 ... 207
   6.4 소프트웨어 아키텍처 설계 결정 ... 211
Chapter 7 객체지향 패러다임
   7.1 개요 ... 219
      7.1.1 객체(object) ... 219
      7.1.2 클래스(class) ... 219
      7.1.3 실체(instance) ... 220
      7.1.4 메시지(message) ... 220
      7.1.5 메소드(method) ... 220
   7.2 객체지향 도식 표현 방법 ... 221
      7.2.1 객체, 클래스 ... 221
      7.2.2 속성 ... 221
      7.2.3 오퍼레이션과 메소드 ... 222
      7.2.4 링크와 결합(link and association) ... 222
   7.3 객체지향 분석 및 설계 방법 ... 223
      7.3.1 객체지향 분석의 6단계 ... 224
      7.3.2 객체지향 설계 예 ... 234
   7.4 객체 모델링 ... 246
      7.4.1 개요 ... 246
      7.4.2 객체 모델 ... 248
      7.4.3 동적 모델 ... 252
      7.4.4 객체 모델링 분석의 필요성 ... 253
Chapter 8 실시간 설계를 위한 UML(RT-UML)
   8.1 개요 ... 259
      8.1.1 UML의 이해 ... 259
      8.1.2 UML 구조 ... 261
   8.2 UML(Unified Modeling Language) 2.0 ... 267
      8.2.1 구조 다이어그램 ... 268
      8.2.2 행위 다이어그램 ... 277
      8.2.3 상호작용 다이어그램 ... 281
   8.3 RT-UML(Real Time-UML) 개념 ... 283
      8.3.1 RT-UML 개요 ... 283
      8.3.2 RT 시스템을 위한 UML ... 284
      8.3.3 UML 방식으로 임베디드 시스템 개발 ... 287
   8.4 시스템 분석(RT-UML) ... 289
   8.5 시스템 설계(RT-UML) ... 295
Chapter 9 임베디드 소프트웨어 개발 환경
   9.1 임베디드 소프트웨어 개발 환경 ... 301
      9.1.1 개발 환경의 필요성 및 분류 ... 301
      9.1.2 개발 환경 ... 301
   9.2 임베디드 소프트웨어 개발 환경 구축 ... 302
      9.2.1 임베디드 소프트웨어 개발 환경 설치 ... 302
      9.2.2 부트 로더 ... 303
      9.2.3 커널 ... 303
      9.2.4 파일 시스템 ... 305
      9.2.5 응용 프로그램 작성 ... 306
      9.2.6 웹 서버 포팅 ... 310
Chapter 10 소프트웨어 테스팅
   10.1 테스팅의 정의 ... 313
      10.1.1 단위 테스팅 ... 314
      10.1.2 통합 테스팅 ... 316
      10.1.3 확인 테스팅 ... 318
      10.1.4 시스템 테스팅 ... 318
      10.1.5 프로그램 디버깅(debugging) ... 319
   10.2 블랙박스 테스트 ... 320
   10.3 화이트박스 테스트 ... 327
   10.4 테스팅 도구 ... 335
      10.4.1 테스팅 도구의 구성 ... 335
      10.4.2 정적 분석기(Static Analyzer) ... 336
      10.4.3 동적 분석기(Dynamic Analyzer) ... 338
      10.4.4 기호 실행(Symbolic Execution) ... 343
   10.5 컴포넌트 테스팅 ... 344
      10.5.1 개요 ... 344
      10.5.2 컴포넌트 테스트 준비 ... 346
      10.5.3 컴포넌트 테스트 수행 ... 351
      10.5.4 컴포넌트 테스트 검토 ... 353
Chapter 11 소프트웨어 품질 관리
   11.1 소프트웨어 품질 목표 ... 357
   11.2 소프트웨어 품질 보증을 위한 접근 방법 ... 358
   11.3 국제표준화기구(ISO)의 품질 목표 ... 361
   11.4 품질 기준에 맞는 품질 척도 ... 363
      11.4.1 Halstead의 소프트웨어 사이언스 ... 363
      11.4.2 McCabe의 복잡도 척도 ... 365
      11.4.3 Knot 카운트 ... 366
      11.4.4 Chen의 프로그램 복잡도 측정 ... 366
      11.4.5 Chapine의 Q측정 ... 367
      11.4.6 정보흐름(information flow)을 이용한 복잡도 측정 ... 367
      11.4.7 소프트웨어 신뢰성과 이용가능성 측정 ... 368
   11.5 프로세스 품질 ... 368
      11.5.1 CMM(Capability Maturity Model) ... 369
      11.5.2 CMMI(Capability Maturity Model Integration) ... 373
   11.6 객체지향적 환경하의 품질 평가 방법 ... 374
   11.7 워크스루와 인스펙션 ... 375
찾아보기 ... 379
닫기