목차
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