본 책은 자신의 아이디어를 SW로 구현하고자 하는 사람들에게 프로젝트 관리기법과 지식을 알려준다. 이를 미리 알게되면 시간과 노력을 절약하면서 다양한 위험을 극복하고 성공할 가능성을 높게 한다. 저자는 그동안 여러 SW 혹은 시스템을 개발하기 위한 코딩, 시스템 분석과 설계, 그리고 프로젝트 관리자와 품질전문가로 일하면서 SW개발이 생각보다 성공적이지 못하거나 때로는 실패하는 것을 현장에서 많이 보아왔다. 프로젝트 실패는 때로는 법적 분쟁으로 확대되기도 하고, 프로젝트에 참여한 많은 구성원과 이해관계자들을 힘들게 한다.
멋진 사업을 구상하고 SW를 개발하며, 성공적인 가동으로 고객을 순식간에 확보하기를 원하는 사람들은 먼저 사업을 개척할 수 있는 기획력과 추진력이 필요하다. 이러한 기획과 추진은 초기 구상에서부터 말이되게(make sense) 작성이 되어야 한다. Make sense하다는 것은 쉽게 말해 “이게 과연 사업이 되는가” 하는 질문에 답을 준다는 것이다. 기획안과 추진방안은 계획서로 작성이 되어야 하고, 이를 기반으로 진행하게 되는 프로젝트는 함께 사업에 동참하는 이해관계자들에게 설득력이 있어야 한다. 자~ 이제 여러분들은 프로젝트관리를 통해 이를 실현할 수 있기를 기대할 것이다. 본 책을 통해 저자가 얘기하는 과정을 따라 공부하게 되면, 미처 몰랐던 지식과 기법의 실습으로 시행착오를 겪지 않게 되고, 성공의 가능성이 높아지게 됨을 알게 될 것이다.
본 도서를 대학교재로 활용하고자 하는 교수님들은 제게 메일(heeykim0@naver.com)로 알려주세요. 강의교안 파일을 메일로 보내드리겠습니다.
I. 프로젝트관리의 소개 9
1. 운영과 프로젝트 9
2. 프로젝트 10
3. 프로젝트관리 18
4. 프로젝트관리의 단계와 감시/통제 19
5. 대규모 SI프로젝트의 단계와 절차 23
II. 프로젝트관리를 위한 지식영역 42
1. 10가지 지식영역 42
2. 10가지 지식영역의 상세 43
3. 프로젝트 관리, 지식영역이냐 원칙이냐? 63
III. 프로젝트 관리의 원칙 70
1. 지식영역에서 원칙으로 프로젝트 관리의 변화 70
2. 12가지 원칙 71
3. 원칙의 주요 메세지 86
4. 프로젝트 관리를 위한 지식영역과 원칙 86
IV. 소프트웨어 개발 프로젝트 96
1. 소프트웨어 이해하기 96
2. 소프트웨어의 특징 97
3. 소프트웨어의 탄생과 폐기 98
4. 다양한 소프트웨어 도입 프로젝트 100
5. 소프트웨어 개발의 단계와 프로젝트 관리 102
6. 프로젝트의 실패 112
7. 프로젝트 실패사례 : 덴버공항 수화물 시스템 114
V. 프로젝트의 시작은 요구사항으로부터 121
1. 요구사항(requirements) 121
2. 요구사항의 구체화 122
3. 프로젝트 진행 과정에서의 요구사항 123
4. 요구사항의 개발과 관리 125
5. 인터뷰 기법에 의한 요구사항 도출 133
6. 관찰 기법에 의한 요구사항 도출 137
7. 비즈니스 시나리오 기법에 의한 요구사항 도출 138
VI. 분석 148
1. 분석의 이해 148
2. 대표적인 분석 접근방식(approach) 149
3. 구조적 분석 151
4. 객체지향적 분석 158
5. 프로젝트 관리의 관점에서 본 분석의 의미 168
VII. 설계와 소프트웨어 아키텍처 174
1. 설계의 이해 174
2. 설계의 원칙 175
3. 구조적 설계 178
4. 객체지향적 설계 181
5. 모듈 내부의 설계 184
6. 소프트웨어 아키텍처 185
7. 프로젝트 관리의 관점에서 본 설계의 의미 191
VIII. UI 설계 199
1. UI설계의 소개 199
2. DFD에서 UI 추출 200
3. 유스케이스 혹은 클래스 다이어그램에서 UI 추출 201
4. 화면과 문서양식 설계의 개념 202
5. 화면과 문서양식의 일반적인 설계 지침 204
6. 화면 설계 절차 205
7. 문서양식 설계 절차 209
8. UX(User Experience) 210
IX. 데이터베이스 설계 223
1. 데이터베이스 선택 223
2. 파일 시스템과 관계형 데이터베이스 224
3. 관계형 데이터베이스의 설계 절차 225
4. 개념적 설계 227
5. 논리적 설계 230
6. 물리적 설계 234
X. 구현 239
1. 소프트웨어 구현 239
2. 프로그래밍 언어 240
3. 개발환경 준비 240
4. 좋은 프로그래밍을 위한 참고 242
5. 소스코드 검증 245
6. 소스코드 인스펙션(source code inspection) 246
7. 단위테스트(unit test) 249
8. 단위 테스트를 위한 지원 254
9. 프로젝트 관리의 관점에서 본 구현의 의미 256
XI. 테스트 263
1. 소프트웨어 테스트 263
2. 테스트를 위한 기초 지식 263
3. 통합 테스트 266
4. 통합 테스트 수행 과정 267
5. 시스템 테스트 272
6. 인수 테스트 275
7. 프로젝트 관리의 관점에서 본 테스트의 의미 277
XII. 종료 단계와 유지보수, 그리고 데브옵스 283
1. 프로젝트 정상 종료시 업무 283
2. 프로젝트 실패시 업무 284
3. 프로젝트 종료 보고 286
4. 프로젝트 관리의 관점에서 본 종료의 의미 287
5. 유지보수 289
6. 데브옵스 (DevOps) 292
XIII. BRP을 통한 새로운 프로젝트 300
1. 재공학(Re-engineering) 300
2. BPR(Business Process Re-engineering) 300
3. BPMN 310
현재 한국외국어대학교 경영학과 겸임교수로 강의하고 있으며, 다년간 SK그룹에서 SW개발 및 시스템 구현업무에 종사하였고, 한국정보시스템감사통제협회 회장을 역임하였다. 저서로 “실무에 바로 활용하는 소프트웨어 공학”(21세기사)이 있으며, 인공지능 등에 관련된 다수의 연구와 논문이 있다.