이 책의 내용
이 책은 6부 22장, 부록(생능출판사 홈페이지에 수록)으로 구성되어 있다.
1부에서는 소프트웨어 공학과 개발방법론을 다루고 있다. 1장에서는 시스템 공학과 소프트웨어 공학, 건축 공학을 예로 들어 소프트웨어 개발의 일반적인 공정과정을 살펴보고, 2장에서는 소프트웨어 개발에서 발생하는 오해와 개발 실체를 살펴보았다. 3장은 다양한 개발 라이프 사이클과 개발 패러다임을 소개하고 있다. 폭포수 모델을 비롯한 기존의 개발 패러다임, 신속한 개발방법론인 애자일방법론, 익스트림 프로그래밍(XP), 리팩토링, 컴포넌트 기반 개발 기법이 소개되고 있다.
2부에서는 소프트웨어 프로젝트 관리와 계획을 소개하고 있다. 4장에서는 프로젝트 관리와 관련된 국제기구인 PMI(Project Management Institute)에서 제시하는 지식을 중심으로 소프트웨어 제품 개발 프로세스와 관리 프로세스를 분리하여 설명하고 있다. 5장의 프로젝트 계획 수립 단계에서는 프로젝트의 목표 설정과 요구되는 핵심 활동을 기술하고 있으며, 소프트웨어 프로젝트 계획 단계에서 문서화된 계획서가 작성, 관리되어야 하는 대표적인 영역들에 대해 설명하고 있다.
3부에서는 소프트웨어 요구사항 분석과정에 초점을 맞추어 소프트웨어 요구사항 단계에 대한 개요, 특성, 문제점 등 종합적인 설명을 하고 있으며, 요구사항 명세서의 중요성과 활용 방법 등도 언급하고 있다. 또한 시스템의 목표를 정의하는 데 있어 개발자와 사용자 사이의 의사소통 수단으로 많이 활용되고 있는 다양한 요구사항 분석 기법들을 소개하고 있다. 6장에서는 요구사항 분석이 다른 개발 단계와 구별되는 특징, 분석가의 역할, 모델링 기법을 소개하고 있다. 7장에서는 기능 모델링(functional modeling)에 대한 설명을 하고 있으며, 현재 널리 사용되고 있는 분석 도구인 구조적 분석 기법(structured analysis)을 소개하고 있다. 8장에서는 동적 모델링(dynamic modeling) 도구들을 다루고 있으며, 상태 변화도(STD), 구조적 분석 기법의 확장 등을 중심으로 기술하고 있다. 9장에서는 시스템의 데이터베이스 분석에 사용되는 정보 모델링 기법과 데이터베이스 설계의 일부 과정을 다루고 있다. 10장에서는 요사이 많은 주목을 받고 있는 객체지향의 개념, 객체지향 분석 기법(object-oriented analysis)을 소개하고 있다. 11장에서는 ‘인터넷 쇼핑몰 소프트웨어 개발’이라는 프로젝트를 예로 들어 요구사항 분석 전 과정을 상세히 설명하고 있다. 분석가가 모델링을 수행하는 모습으로 이해하고 읽는다면 요구사항을 분석하고 문서화하는 과정을 연습할 수 있을 것이다. 유스케이스 기법을 이용하여 유스케이스 시나리오를 작성하는 과정을 설명하고 있으며, UML을 이용하여 인터넷 쇼핑몰의 요구사항 분석 및 설계 전 과정의 진행을 상세히 소개하고 있다.
4부에서는 소프트웨어 설계에 대한 기본 개념 및 분석의 결과를 프로그램 구조로 변환시키는 다양한 설계 기법을 다루고 있다. 12장에서는 소프트웨어 설계 기법, 설계 활동, 설계 고려사항, 설계의 품질 요소 등을 소개하고 있다. 13장에서는 자료 흐름 중심의 구조적 설계 기법과 데이터베이스 설계를 위한 데이터 설계 기법 등을 다루고 있고, 14장에서는 디자인 패턴을 이용한 설계 기법을 소개하고 있다. 15장에서는 사용자 인터페이스 설계와 상세 설계 단계에서 사용되는 표기법인 순서도, N-S 도표, 프로그램 설계 언어(PDL) 등을 소개하고 있다.
5부에서는 프로그래밍, 테스트, 유지보수 단계에 대하여 다루고 있다. 16장에서는 프로그래밍 기법, 프로그램 후 이루어지는 코드 검사의 개념, 코드 검사의 계획과 진행, 사후 검토 등에 대해 다루고 있다. 17장에서는 소프트웨어 개발에 사용되는 다양한 테스트 기법 및 단계를 소개하고 있고, 18장에서는 소프트웨어 유지보수에 대하여 간략히 다루고 있다.
마지막 6부에서는 소프트웨어 프로젝트 관리에 요구되는 영역들을 다루고 있다. 19장에서는 품질의 정의, 품질 요소 및 기술 검토 기법을 기술하고 있으며, CMMI, ISO 9001, SPICE 등 프로세스 개선 및 인증에 관한 내용을 추가하여 설명하고 있다. 20장에서는 소프트웨어 형상 관리에 대하여 다루고 있고, 21장에서는 확인 및 검증 기법을 소개하고 있다. 22장에서는 프로젝트 관리의 중요 영역인 범위 관리, 원가 관리, 일정 관리를 다루고 있다.
부록에서는 인터넷 쇼핑몰 프로젝트의 산출물들을 예로 들어 설명하고 있다. 프로젝트 착수 단계에서 만들어지는 프로젝트 헌장, 계획 단계에서 작성되는 프로젝트 관리 계획서, 형상 관리 계획서, 확인 및 검증 계획서, 품질 관리 계획서, 설계 단계에서 만들어지는 인터넷 쇼핑몰 설계 문서를 자세히 기술하고 있다.