목차
제1장 소프트웨어와 소프트웨어 공학
1.1 소프트웨어의 본질 = 3
1.2 WebApps의 고유 특성 = 10
1.3 소프트웨어 공학 = 12
1.4 소프트웨어 프로세스 = 15
1.5 소프트웨어공학 실무 = 18
1.6 소프트웨어 통념 = 22
1.7 어떻게 시작하나? = 24
1.8 요약 = 26
문제와 생각할 점 = 26
추가 읽을거리와 정보 소스 = 27
PART 1. 소프트웨어 프로세스
제2장 프로세스 모델
2.1 일반적 프로세스 모델 = 31
2.2 프로세스 평가와 개선 = 37
2.3 관례적 프로세스 모델 = 38
2.4 특수한 프로세스 모델 = 50
2.5 UP = 53
2.6 개인과 팀 프로세스 모델 = 57
2.7 프로세스 기술 = 60
2.8 프로덕트와 프로세스 = 61
2.9 요약 = 62
문제와 생각할 점 = 62
추가 읽을거리와 정보 소스 = 65
제3장 애자일 개발
3.1 민첩성이란? = 68
3.2 민첩성과 변경 비용 = 69
3.3 애자일 프로세스란? = 70
3.4 익스트림 프로그래밍(XP) = 73
3.5 그 외 애자일 프로세스 모델 = 82
3.6 애자일 프로세스 도구 = 92
3.7 요약 = 93
문제와 생각할 점 = 94
추가 읽을거리와 정보 소스 = 95
PART 2. 모델링
제4장 실무를 가이드하는 원칙들
4.1 소프트웨어 공학 지식 = 99
4.2 핵심 원칙들 = 100
4.3 각 프레임워크 액티비티를 가이드하는 원칙들 = 103
4.4 요약 = 116
문제와 생각할 점 = 117
추가 읽을거리와 정보 소스 = 119
제5장 요구사항의 이해
5.1 요구 공학 = 122
5.2 초기 구축 = 126
5.3 요구사항 도출하기 = 129
5.4 유스 케이스 개발하기 = 134
5.5 요구사항 모델 생성 = 139
5.6 요구사항 협상 = 143
5.7 요구사항 검증 = 145
5.8 요약 = 145
문제와 생각할 점 = 146
추가 읽을거리와 정보 소스 = 147
제6장 요구사항 분석: 시나리오, 정보, 그리고 분석 클래스들
6.1 요구사항 분석 = 150
6.2 시나리오 기반 모델링 = 156
6.3 유스 케이스를 지원하는 UML 모델들 = 162
6.4 데이터 모델링 컨셉들 = 165
6.5 클래스 기반 모델링 = 168
6.6 요약 = 184
문제와 생각할 점 = 184
추가 읽을거리와 정보 소스 = 186
제7장 요구 모델링: 흐름, 동작, 패턴 그리고 웹 응용
7.1 요구 모델링 전략 = 187
7.2 흐름 중심 모델링 = 188
7.3 동작 모델 생성 = 195
7.4 요구 모델링을 위한 패턴 = 199
7.5 WebApps14) 요구사항 모델링 = 205
7.6 정리 = 212
문제와 생각할 점 = 213
추가 읽을거리와 정보 소스 = 214
제8장 설계 개념
8.1 소프트웨어 공학 환경에서의 설계 = 216
8.2 설계 과정 = 218
8.3 설계 개념 = 221
8.4 설계 모델 = 231
8.5 요약 = 236
문제와 생각할 점 = 237
추가 읽을거리와 정보 소스 = 239
제9장 아키텍처 설계
9.1 소프트웨어 아키텍처 = 241
9.2 아키텍처 장르 = 244
9.3 아키텍처 스타일 = 246
9.4 아키텍처 설계 = 252
9.5 아키텍처 설계 대안 평가 = 257
9.6 자료 흐름을 이용한 아키텍처 매핑 = 260
9.7 요약 = 268
문제와 생각할 점 = 269
추가 읽을거리와 정보 소스 = 270
제10장 컴포넌트 수준 설계
10.1 컴포넌트란 무엇인가? = 272
10.2 클래스 기반 컴포넌트 설계 = 277
10.3 컴포넌트 수준 설계 작업과정 = 284
10.4 웹 응용을 위한 컴포넌트 수준 설계 = 290
10.5 종래의 컴포넌트 설계하기 = 292
10.6 컴포넌트 기반 개발 = 296
10.7 요약 = 302
문제와 생각할 점 = 303
추가 읽을거리와 정보 소스 = 305
제11장 사용자 인터페이스 설계
11.1 황금 규칙 = 307
11.2 사용자 인터페이스 분석과 설계 = 311
11.3 인터페이스 분석 = 314
11.4 인터페이스 설계 단계 = 321
11.5 웹 응용 인터페이스 설계 = 328
11.6 설계 평가 = 335
11.7 요약 = 337
문제와 생각할 점 = 338
추가 읽을거리와 정보 소스 = 339
제12장 패턴 기반 설계
12.1 설계 패턴 = 341
12.2 패턴 기반 소프트웨어 설계 = 346
12.3 구조 패턴 = 352
12.4 컴포넌트 수준 설계 패턴 = 354
12.5 사용자 인터페이스 설계 패턴 = 356
12.6 웹 응용 설계 패턴 = 359
12.7 요약 = 361
문제와 생각할 점 = 362
추가 읽을거리와 정보 소스 = 364
제13장 WebApp 설계
13.1 웹 애플리케이션 설계의 품질 = 366
13.2 설계의 목표 = 369
13.3 웹 애플리케이션을 위한 설계 피라미드 = 370
13.4 웹 애플리케이션을 인터페이스 설계 = 371
13.5 미적 설계 = 372
13.6 콘텐트 설계 = 374
13.7 아키텍처 설계 = 376
13.8 내비게이션 설계 = 380
13.9 컨포넌트 레벨 설계 = 383
13.10 객체 지향 하이퍼미디어 설계 방법(OOHDM) = 383
13.11 요약 = 386
문제와 생각할 점 = 387
추가 읽을거리와 정보 소스 = 389
PART 3. 품질 관리
제14장 품질 개념
14.1 품질이란 무엇인가? = 393
14.2 소프트웨어 품질 = 394
14.3 소프트웨어 품질 딜레마 = 400
14.4 소프트웨어 품질 달성하기 = 406
14.5 요약 = 408
문제와 생각할 점 = 409
추가 읽을거리와 정보 소스 = 410
제15장 리뷰 기술
15.1 소프트웨어 결함이 비용에 미치는 영향 = 412
15.2 결함 증폭 및 제거 = 413
15.3 리뷰 메트릭과 활용 = 415
15.4 리뷰: 정형성 스펙트럼 = 418
15.5 비정형적 리뷰 = 419
15.6 정형적 기술 리뷰 = 420
15.7 요약 = 425
문제와 생각할 점 = 425
추가 읽을거리와 정보 소스 = 426
제16장 소프트웨어 품질 보증
16.1 배경이 되는 이슈 = 428
16.2 소프트웨어 품질 보증의 요소 = 429
16.3 SQA의 작업, 목표 및 메트릭들 = 431
16.4 정형적 SQA 방법 = 433
16.5 통계적 소프트웨어 품질 보증 = 434
16.6 소프트웨어 신뢰성 = 437
16.7 ISO 9000 품질 표준 = 439
16.8 SQA 계획 = 440
16.9 요약 = 441
문제와 생각할 점 = 442
추가 읽을거리와 정보 소스 = 443
제17장 소프트웨어 테스팅 전략
17.1 소프트웨어 테스팅을 위한 전략적 방법 = 445
17.2 전략적 논쟁점 = 450
17.3 전통적인 소프트웨어를 위한 테스트 전략 = 451
17.4 객체 지향 소프트웨어의 테스트 전략 = 460
17.5 웹 애플리케이션을 위한 테스트 전략 = 462
17.6 유효성 검사(Validation Testing) = 462
17.7 시스템 테스팅 = 465
17.8 디버깅 예술 = 468
17.9 요약 = 473
문제와 생각할 점 = 473
추가 읽을거리와 정보 소스 = 474
제18장 재래식 응용 프로그램 테스팅
18.1 소프트웨어 테스팅 원리 = 477
18.2 테스팅의 내부 및 외부 바라보기 = 479
18.3 화이트 박스 테스팅 = 480
18.4 기본 경로 테스팅 = 480
18.5 제어 구조 테스팅 = 488
18.6 블랙 박스 테스팅 = 490
18.7 모델 기반 테스팅 = 497
18.8 특수 환경, 아키텍처 및 응용 프로그램 테스팅 = 498
18.9 소프트웨어 테스팅 패턴 = 503
18.10 요약 = 504
문제와 생각할 점 = 505
추가 읽을거리와 정보 소스 = 507
제19장 객체 지향 응용 프로그램 테스팅
19.1 테스팅에 대한 견해 넓히기 = 509
19.2 OOA 및 OOD 모델 테스팅 = 510
19.3 객체 지향 테스팅 전략 = 512
19.4 객체 지향 테스팅 방법 = 514
19.5 클래스 레벨에 적용 가능한 테스팅 방법 = 519
19.6 클래스 간 테스트케이스 설계 = 521
19.7 요약 = 524
문제와 생각할 점 = 525
추가 읽을거리와 정보 소스 = 526
제20장 웹 애플리케이션 테스팅
20.1 웹 애플리케이션에서의 테스팅 개념 = 528
20.2 테스팅 프로세스 - 개요 = 531
20.3 콘텐트 테스팅 = 532
20.4 사용자 인터페이스 테스팅 = 535
20.5 컴포넌트 레벨 테스팅 = 541
20.6 내비게이션 테스팅 = 542
20.7 환경 설정 테스팅 = 545
20.8 보안성 테스팅 = 546
20.9 성능 테스팅 = 548
20.10 요약 = 551
문제와 생각할 점 = 552
추가 읽을거리와 정보 소스 = 554
제21장 정형적 모델링과 증명
21.1 클린룸 전략 = 556
21.2 기능적 명세서 = 558
21.3 클린룸 설계 = 561
21.4 클린룸 테스팅 = 563
21.5 정형적 방법의 개념들 = 566
21.6 정형적 명세서를 위한 수학적 표기법 적용하기 = 569
21.7 정형적 명세 언어 = 571
21.8 요약 = 579
문제와 생각할 점 = 580
추가 읽을거리와 정보 소스 = 582
제22장 소프트웨어 형상관리
22.1 소프트웨어 형상관리 = 584
22.2 SCM 저장소 = 589
22.3 SCM 프로세스 = 592
22.4 형상검사 = 598
22.5 WebApps 형상관리 = 600
22.6 요약 = 610
문제와 생각할 점 = 610
추가 읽을거리와 정보 소스 = 612
제23장 제품 척도
23.1 제품의 계량을 위한 프레임워크 = 614
23.2 요구사항 모델에 관한 계량 = 619
23.3 설계모델을 위한 계량 = 624
23.4 WebApps를 위한 설계 척도 = 637
23.5 소스 코드를 위한 계량 = 640
23.6 테스팅을 위한 계량 = 641
23.7 유지보수를 위한 계량 = 643
23.8 요약 = 644
문제와 생각할 점 = 645
추가 읽을거리와 정보 소스 = 646
PART 4. 소프트웨어 프로젝트 관리
제24장 프로젝트 관리의 개념
24.1 관리의 범위 = 649
24.2 인적자원 = 651
24.3 제품 = 658
24.4 프로세스 = 660
24.5 프로젝트 = 663
24.6 W5HH 원칙 = 664
24.7 결정적인 실무 = 665
24.8 요약 = 666
문제와 생각할 점 = 667
추가 읽을거리와 정보 소스 = 669
제25장 프로세스와 프로세스의 계량
25.1 프로세스와 프로젝트 영역에서의 계량(metrics) = 672
25.2 소프트웨어 측정 = 676
25.3 소프트웨어의 품질을 위한 계량 = 685
25.4 소프트웨어 프로세스 내에서의 계량 통합 = 688
25.5 소규모 조직을 위한 계량 = 691
25.6 소프트웨어 계량 프로그램의 확립 = 692
25.7 요약 = 695
문제와 생각할 점 = 696
추가 읽을거리와 정보 소스 = 697
제26장 소프트웨어 프로젝트의 추정
26.1 추정(estimation)에 대한 관찰 = 700
26.2 프로젝트 계획 프로세스 = 702
26.3 소프트웨어의 범위와 타당성 = 702
26.4 자원 = 704
26.5 소프트웨어 프로젝트의 추정 = 706
26.6 분해 기술 = 707
26.7 경험적 추정 모델들 = 717
26.8 객체지향 프로젝트의 추정 = 722
26.9 특정 추정 기술 = 722
26.10 개발할 것인지 구입할 것인지에 대한 결정 = 724
26.11 요약 = 728
문제와 생각할 점 = 729
추가 읽을거리와 정보 소스 = 731
제27장 프로젝트 일정의 수립
27.1 기본 개념들 = 733
27.2 프로젝트 일정 수립 = 735
27.3 소프트웨어 프로젝트의 작업 집합의 정의 = 739
27.4 작업 네트워크의 정의 = 742
27.5 일정계획 수립 = 743
27.6 획득가치 분석 = 751
27.7 요약 = 752
문제와 생각할 점 = 753
추가 읽을거리와 정보 소스 = 755
제28장 리스크 분석과 관리
28.1 리스크에 대한 대응전략 대 선제전략 = 757
28.2 소프트웨어 리스크들 = 757
28.3 리스크 식별 = 759
28.4 리스크 투사 = 762
28.5 리스크 정제 = 766
28.6 리스크 완화, 감시 및 관리 = 767
28.7 RMMM 계획 = 769
28.8 요약 = 771
문제와 생각할 점 = 771
추가 읽을거리와 정보 소스 = 773
제29장 유지보수 및 리엔지니어링
29.1 소프트웨어 유지보수 = 775
29.2 소프트웨어 지원성 = 777
29.3 리엔지니어링 = 777
29.4 비즈니스 프로세스 리엔지니어링 = 778
29.5 소프트웨어 리엔지니어링 = 781
29.6 역공학 = 785
29.7 재구조 = 788
29.8 순공학 = 790
29.9 리엔지니어링의 경제학 = 793
29.10 요약 = 794
문제와 생각할 점 = 795
추가 읽을거리와 정보 소스 = 796
PART 5. 고급 주제
제30장 소프트웨어 프로세스 개선
30.1 SPI는 무엇인가? = 801
30.2 SPI 프로세스 = 805
30.3 CMMI = 811
30.4 사람 CMM = 815
30.5 기타 SPI 프레임워크 = 816
30.6 SPI 투자 대비 수익 = 818
30.7 SPI 경향 = 818
30.8 요약 = 819
문제와 생각할 점 = 820
추가 읽을거리와 정보 소스 = 821
제31장 부각되는 소프트웨어 공학의 최신 경향
31.1 기술 진화 = 823
31.2 소프트웨어 공학 경향의 관찰 = 825
31.3 "소프트 경향"의 식별 = 826
31.4 기술의 방향 = 832
31.5 도구와 연관된 경향 = 840
31.6 요약 = 843
문제와 생각할 점 = 844
추가 읽을거리와 정보 소스 = 845
제32장 결론
32.1 소프트웨어의 중요성 - 재론 = 847
32.2 사람과 그들이 시스템을 구축하는 형태 = 847
32.3 정보 표현의 새 모드 = 848
32.4 장기간의 전망 = 850
32.5 소프트웨어 엔지니어의 책임 = 851
32.6 결론 = 852
부록 1. UML의 소개 = 854
부록 2. 객체지향개념 = 876
참고문헌 = 884
INDEX = 903