


소프트웨어의 생산뿐만 아니라 운영과 유지보수 활동도 고려하고, 여기에 적용되는 컴퓨터 과학 분야의 제반 지식, 공학적 원리 및 경험적 기술 등을 체계적으로 연구하기 위한 컴퓨터 과학의 한 분야가 소프트웨어 공학이다. 소프트웨어 공학은 소프트웨어의 생산성과 품질을 향상시켜 관련 산업과 기업의 경쟁력을 제고하기 위한 추진 엔진의 역할을 하고 있다.
이 책은 소프트웨어 공학에서 다루는 제 분야를 소프트웨어 생명주기의 순서대로 다루었으며, 객체지향 분석과 설계를 UML로 표현하는 방법을 다루었다. 소프트웨어 공학에서 등장하는 여러 개념과 용어를 정확히 이해하고 이론적 방법을 익혀서 실전에 응용할 수 있기를 바란다.

제1부 소프트웨어 공학
제1장 소프트웨어 공학 개요
1. 1소프트웨어
1. 2소프트웨어 위기 현상
1. 3소프트웨어 공학
1. 4소프트웨어 공학 환경-계층화된 기술
1. 5소프트웨어 프로세스 모델
1. 6좋은 소프트웨어의 기준
제2장 소프트웨어 프로세스
2. 1소프트웨어 프로세스 개요
2. 2폭포수 모델
2. 3반복 진화형 모델
2. 4점증적 모델
2. 5나선형 모델
2. 6V 모델
2. 7애자일 방법론
제3장 프로젝트 관리
3. 1프로젝트 관리 개요
3. 2소프트웨어 일정 계획
3. 3소프트웨어 규모의 산정
3. 4소프트웨어 개발 비용 산정
3. 5팀 구성 방식
3. 6위험 분석과 관리
제4장 소프트웨어 품질
4. 1소프트웨어 품질 개요
4. 2소프트웨어 품질의 분류
4. 3소프트웨어 제품의 품질 관련 표준
4. 4프로세스 품질 표준
4. 5소프트웨어 품질 보증
(SQA: Software Quality Assurance)
4. 6품질 제어(Quality Control)와 검토
4. 7소프트웨어 형상 관리
4. 8신뢰도
제5장 소프트웨어 테스트
5. 1소프트웨어 테스트 개요
2. 2소프트웨어 테스트 원칙
5. 3테스트 프로세스
5. 4단계별 테스트
5. 5화이트박스 테스트(구조 테스트)
5. 6블랙박스 테스트(기능 테스트)
5. 7시스템 테스트와 비기능성 테스트
5. 8테스트 자동화 도구와 테스트 문서화
제6장 사용자 요구 분석
6. 1요구사항
6. 2요구 공학 프로세스
6. 3요구사항 모델링
제7장 소프트웨어 설계
7. 1개요
7. 2아키텍처 설계
7. 3구조적 설계
7. 4상세 설계
7. 5설계 명세서와 결과의 확인
제8장 소프트웨어 유지보수
8. 1개요
8. 2유지보수 프로세스
8. 3재공학
8. 4역공학
8. 5소프트웨어 형상 관리
8. 6재사용
8. 7소프트웨어 척도
제2부 UML과 객체지향 개발
제9장 객체지향 분석과 설계
9. 1개요
9. 2요구사항 추출
9. 3분석
9. 4시스템 설계
9. 5객체 설계
9. 6통합 프로세스(Unified Process)
제10장 유스케이스(Usecase) 다이어그램 및 명세
10. 1유스케이스 분석의 개요
10. 2액터
10. 3유스케이스
10. 4유스케이스 관계
10. 5시스템 경계
10. 6유스케이스 명세
제11장 액티비티(Activity) 다이어그램
11. 1개요
11. 2액티비티, 액션 및 제어 흐름
11. 3시작과 종료
11. 4객체 및 객체 흐름
11. 5조건 및 병합 노드
11. 6병렬 처리하기
11. 7확장 영역(expansion region)
11. 8시그널(signal) 주고 받기
11. 9파티션(partition)
11.10액티비티의 재사용성 높이기
제12장 상호작용 다이어그램
12. 1개요
12. 2시퀀스 다이어그램
12. 3통신 다이어그램
제13장 클래스 다이어그램과 객체 다이어그램
13. 1개요
13. 2클래스 다이어그램의 기초
13. 3클래스 다이어그램
13. 4객체 다이어그램
제14장 상태 머신(State machine) 다이어그램
14. 1상태 머신 다이어그램의 개요
14. 2상태(state)
14. 3전이(transition)
14. 4상태 제어를 위한 추가적인 요소들
14. 5복합 상태(composite state)
제15장 기타 다이어그램(컴포넌트, 패키지, 배포 다이어그램)
15. 1개요
15. 2컴포넌트 다이어그램
15. 3배포 다이어그램
15. 4패키지 다이어그램