목차
제1장 사례 연구 소개
1.1 소개 = 1
1.2 사례 연구 1 - CarMatch = 1
1.2.1. CarMatch 사례 배경 = 1
1.2.2. CarMatch 업무에서의 컴퓨터 지원 = 3
1.2.3. CarMatch 요구사항 = 3
1.3 사례 연구 2 - VolBank = 4
1.3.1. VolBank 배경 = 4
1.3.2. VolBank 업무에서의 컴퓨터 지원 = 5
1.3.3. VolBank 요구사항 = 6
제2장 UML의 배경
2.1 소개 = 7
2.2 UML의 유래 = 7
2.2.1. 프로그래밍 언어 = 8
2.2.2. 분석과 설계 = 9
2.2.3. UML의 등장 = 10
2.3 UML의 현재 = 11
2.4 UML이란 무엇인가? = 12
2.4.1. 4계층 메타모형 기본구조(Four-Layer Metamodel Architecture) = 13
2.4.2. 추상 구문규칙(Abstract Syntax) = 13
2.4.3. 적격성 규칙(Well-formedness Rules) = 15
2.4.4. 의미규칙(Semantics) = 16
2.4.5. 표기법 안내(Notation Guide) = 16
2.4.6. 모형 관리(Model Management) = 18
2.4.7. UML이 아닌 것 = 22
2.5 UML의 미래 = 23
2.6 UML의 프로파일과 확장성 = 24
2.7 왜 UML을 사용하는가? = 25
2.7.1. 왜 분석 및 설계에 도해를 사용하는가? = 25
2.7.2. 왜 특히 UML을 쓰는가? = 28
2.8 통합 소프트웨어 개발과정 = 29
2.9 추가 정보를 얻으려면 = 32
제3장 쓰임새
3.1 소개 = 35
3.2 기법의 목적 = 38
3.3 표기법 = 39
3.3.1. 기본 표기법 - 쓰임새, 행위자, 관계 = 39
3.3.2. 행동 명세(Behaviour Specification) = 42
3.3.3. 다른 유형의 연관(Association)과 관계(Relationships) = 45
3.3.4. 쓰임새 간 일반화(Generalization between Use Cases) = 45
3.3.5. 행위자간 일반화(Generalization between actors) = 46
3.3.6. 쓰임새도 간 포함관계(Include Relationship between Use Cases) = 47
3.3.7. 쓰임새 간 확장 관계(Extend Relationship between Use Cases) = 48
3.4 쓰임새 작성법 = 50
3.4.1. 행위자(actors)와 쓰임새를 찾는다 = 50
3.4.2. 쓰임새에 우선순위 부여 = 52
3.4.3. 쓰임새 전개(develop)하기(우선순위가 높은 것부터) = 53
3.4.4. 쓰임새 모형의 구조화 = 54
3.5 쓰임새를 이용한 업무 모형구축 = 55
3.6 다른 도해와의 관계 = 56
3.7 Unified Process에서 쓰임새의 역할 = 57
제4장 클래스도, 클래스, 연관
4.1 소개 = 65
4.2 개발과정에서의 클래스도 = 67
4.3 기법의 목적 = 68
4.4 클래스도 - 기본 표기법 = 69
4.4.1. 클래스(Class) = 69
4.4.2. 객체 인스턴스(Object Instance) = 73
4.4.3. 속성(Attribute)과 오퍼레이션(Operation) = 74
4.4.4. 연관(Association) = 83
4.5 모형 구축 지침 = 88
4.5.1. 개념적 모형 구축 = 88
4.5.2. 기능 위임(Functional Delegation)을 이용한 모형 구축 = 94
4.5.3. 모형구축 접근방법 요약 = 96
4.5.4. 객체지향적 개념 = 97
4.6 다른 도해와의 관계 = 98
4.7 Unified Process에서의 클래스도 = 99
제5장 집합연관, 복합연관, 일반화
5.1 소개 = 109
5.2 기법의 목적 = 109
5.3 집합연관과 복합연관 표기법 = 110
5.3.1. 집합연관(Aggregation) = 110
5.3.2. 복합연관(Composition) = 111
5.3.3. 공유된 경로(Shared Path) = 113
5.4 일반화 표기법 = 114
5.5 모형 구축 안내 = 117
5.5.1. 집합연관(aggregation)과 복합연관(composition) = 117
5.5.2. 일반화(Generalization) = 119
5.5.3. 객체지향 개념 = 123
5.6 고급 일반화 표기법 = 125
5.6.1. 일반화 주석(Generalization Annotation) = 125
5.6.2. 추상적 상위클래스(Abstract Superclass) = 130
5.6.3. 연관 일반화(Association Generalization) = 131
제6장 클래스도, 연관추가사항
6.1 소개 = 144
6.2 연관 끝 표기법 = 144
6.2.1. 가시성(Visibility) = 145
6.2.2. 변경성(Changeability) = 146
6.2.3. 순서 설정(Ordering) = 147
6.2.4. 항해성(Navigability) = 148
6.2.5. 인터페이스 명세자(Interface Specifier) = 149
6.3 한정자 = 150
6.4 연관 클래스 = 151
6.5 파생 연관 = 152
6.6 다항 연관 = 154
6.7 모형 구축 지침 = 155
6.7.1. 연관 끝(Association End) = 155
6.7.2. 변경성과 순서설정(Changeability and Ordering) = 157
6.7.3. 파생된 요소(Derived Element) = 158
6.7.4. 항해성(Navigability) = 158
6.7.5. 인터페이스 명세자(Interface Specifier) = 160
6.7.6. 한정자(Qualifier) = 161
6.7.7. 연관 클래스(Association Class) = 163
6.7.8. 다항 연관(N-ary Association) = 164
제7장 클래스도의 기타 표기법
7.1 소개 = 177
7.2 객체와 관련된 표기법 = 177
7.2.1. 객체 인스턴스(Object Instance) = 177
7.2.2. InstanceOf 관계 = 179
7.2.3. 연계(Iink) = 179
7.2.4. 객체도(Object Diagram) = 181
7.3 의존관계 = 182
7.4 클래스 범위 특성 = 183
7.5 클래스 유형 = 185
7.5.1. 정형(定型,Stereotype) = 185
7.5.2. 열거(Enumeration) = 187
7.5.3. 유틸리티(Utility) = 188
7.5.4. 인터페이스(Interface) = 189
7.5.5. 유형(Type) 대 구현 클래스(Implementation Class) = 191
7.6 매개변수지정 클래스와 결속요소 = 194
7.7 모형 구축 지침 = 197
7.7.1. 객체 관련 표기법 = 197
7.7.2. 의존관계(Dependency) = 200
7.7.3. 클래스 범위 특성(Class Scope Feature) = 202
7.7.4. 클래스 유형(Class Type) = 202
제8장 협력도
8.1 소개 = 209
8.2 협력이란 무엇인가? = 209
8.3 기법의 목적 = 212
8.4 협력의 표기법 = 213
8.5 협력도의 표기법 = 216
8.5.1. 명세 수준 협력도 = 216
8.5.2. 인스턴스 수준 협력도 = 217
8.5.3. 상호작용 맥락으로서의 협력도 = 217
8.5.4. 객체 인스턴스 = 217
8.5.5. 클래스와 역할 = 218
8.5.6. 연관(association) = 219
8.5.7. 연계(Link) = 220
8.5.8. 메시지(Message) = 221
8.5.9. 기타 표기법 = 228
8.6 협력도 작성방법 = 230
8.6.1. 문맥(context) 결정 = 230
8.6.2. 구조적 요소(structural element) 식별 = 231
8.6.3. 구조적 관계(structural relationship) 모형 구축 = 232
8.6.4. 대안 시나리오 고려 = 234
8.6.5. 인스턴스 수준 협력도 작성 = 234
8.6.6. 명세 수준 협력도 작성 = 236
8.7 협력도로 업무모형 구축 = 237
8.8 다른 도해와의 관계 = 239
8.9 Unified Process에서의 협력도 = 239
제9장 상호작용 순서도
9.1 소개 = 251
9.2 순서도란 무엇인가? = 252
9.3 기법의 목적 = 254
9.4 순서도 표기법 = 254
9.4.1. 생명선(Lifeline)과 활성화(Activation) = 255
9.4.2. 메시지 = 263
9.4.3. 평문 주석표기(Textual Annotation) = 265
9.5 순서도 작성방법 = 267
9.5.1. 상호작용의 맥락에 대한 결정 = 270
9.5.2. 구조 측면 요소(structural element)를 식별 = 270
9.5.3. 대체 시나리오 고려 = 271
9.5.4. 인스턴스도 작성 = 271
9.5.5. 포괄 순서도(generic sequence diagram) 작성 = 275
9.6 순서도로 업무 모형화하기 = 275
9.7 다른 도해들과의 관계 = 276
9.8 Unified Process 내 순서도 = 277
제10장 활동도
10.1 소개 = 291
10.2 활동도란 무엇인가? = 291
10.3 기법의 목적 = 294
10.4 표기법 = 294
10.4.1. 활동(Activity)과 요소활동(Action) = 295
10.4.2. 상태(State) = 297
10.4.3. 전이(Transition) = 298
10.4.4. 의사 결정점(Decision Point) = 301
10.4.5. 경로구분선(Swimlane) = 301
10.4.6. 포크(Fork)와 조인(Join) = 303
10.4.7. 활동도 상에 있는 객체들 = 304
10.4.8. 중첩된(nested) 활동도 = 306
10.4.9. 통제 아이콘(Control Icon) = 307
10.5 활동도 산출 방법 = 310
10.5.1. 업무 모형화를 위한 활동도 = 310
10.5.2. 쓰임새 모형화를 위해 활동도를 산출하는 방법 = 314
10.6 다른 도해들과의 관계 = 316
10.7 Unified Process에서의 활동도 = 317
제11장 상태도
11.1 소개 = 325
11.1.1. 상태(State) = 326
11.1.2. 이벤트 = 327
11.2 기법의 목적 = 328
11.3 표기법 = 328
11.3.1. 상태 = 328
11.3.2. 전이(Transition) = 329
11.3.3. 요소활동(Action) = 330
11.3.4. 복합 상태(Composite State) = 333
11.3.5. 병행 하위상태(Concurrent Substates) = 335
11.3.6. 동기화 막대(Synchronization Bar) = 335
11.3.7. 복합 상태로 향하는 전이와 복합 상태로부터의 전이 = 336
11.3.8. 의사 결정점(Decision Point)(인수분해된(Factored)전이경로) = 337
11.3.9. 이력 상태(History State) = 338
11.3.10. 동기화 상태(Synchronization State) = 339
11.4 상태도 산출 방법 = 340
11.4.1. 복합 행태를 가진 실체 식별 = 340
11.4.2. 실체의 초기 및 최종 상태 결정 = 341
11.4.3. 실체에 영향을 주는 이벤트 식별 = 341
11.4.4. 이벤트의 영향 추적 및 중간 상태 식별 = 341
11.4.5. 상태의 진입 및 종료 요소활동 식별 = 342
11.4.6. 하위상태를 이용하여 상태 확장 = 342
11.4.7. 요소활동을 지원하는 오퍼레이션 존재 점검 = 342
11.5 다른 도해들과의 관계 = 343
11.6 Unified Process 내 상태도 = 343
제12장 객체 제약 언어
12.1 소개 = 351
12.1.1. 불변값(Invariant) = 353
12.1.2. 선행조건(Pre-condition) = 354
12.1.3. 후속조건(Post-condition) = 354
12.1.4. 계약에 의한 설계(Design by Contract) = 355
12.2 기법의 목적 = 356
12.3 표기법 = 356
12.3.1. 규약(Convention) = 357
12.3.2. 맥락(Context) = 357
12.3.3. 항해(Navigation) = 359
12.3.4. 타입과 표현(Type and Expression) = 361
12.3.5. 집합(Set), 백(Bag) 및 열(Sequence) = 363
12.4 제약조건 산출 방법 = 372
12.4.1. 쓰임새의 제약조건 결정 = 372
12.4.2. 객체에 관한 제약조건 결정 = 373
12.4.3. 쓰임새 제약조건을 오퍼레이션 제약으로 전환 = 374
12.4.4. 제약조건을 코드로 변환 = 375
12.5 다른 도해들과의 관계 = 376
12.6 Unified Process에서의 OCL = 376
제13장 구현관련 도해들
13.1 서론 = 383
13.2 기법의 목적 = 384
13.3 표기법 = 385
13.3.1. 컴포넌트도(component diagram) 표기법 = 385
13.3.2. 배치도(Deployment Diagram) 표기법 = 389
13.4 구현 도해 산출 방법 = 393
13.4.1. 컴포넌트도(Component Diagram) 산출 방법 = 393
13.4.2. 배치도(Deployment Diagram) 산출 방법 = 396
13.5 업무 모형화를 위한 구현 도해들 = 400
13.6 다른 도해들과의 관계 = 401
13.7 Unified Process에서의 구현 도해들 = 401
제14장 UML 공통 표기 규약
14.1 소개 = 411
14.2 공통 도해 요소 = 412
14.2.1. 그래프(Graph) = 412
14.2.2. 그래프에서의 시각적 관계(Visual Relationship) = 413
14.2.3. 아이콘(Icon) = 415
14.2.4. 2차원 기호들 = 415
14.2.5. 경로(Path) = 416
14.2.6. 문자열(String) = 418
14.2.7. 이름(Name) = 419
14.2.8. 이름표(Label) = 419
14.2.9. 키워드(Keyword) = 420
14.2.10. 표현식(Expression) = 420
14.2.11. 노트(Note) = 421
14.2.12. 분류자(Classifier) = 422
14.2.13. 타입, 인스턴스 및 역할 = 422
14.3 UML 확장 장치 = 424
14.3.1. 정형(定型, Stereotype) = 425
14.3.2. 꼬리표 값(Tagged value) = 427
14.3.3. 제약조건(Constraint) = 428
제15장 CASE 도구
15.1 서론 = 435
15.2 UML과 CASE 도구 = 437
15.3 CASE 도구의 특성물 = 438
15.3.1. UML 도해 = 438
15.3.2. UML 표준 준수 = 439
15.3.3. 저장소(Repository) = 440
15.3.4. 저장소에 대한 공유 접근 = 441
15.3.5. 저장소의 무결성(Integrity) = 442
15.3.6. 버전(Version) 통제 = 442
15.3.7. 추적가능성(Traceability)과 변경 관리 = 442
15.3.8. 꼬리표 값 = 443
15.3.9. 아이콘 = 443
15.3.10. 코드 생성 = 444
15.3.11. CASE 도구와 기타 도구 간 모형 호환성 = 444
15.3.12. 모형구축 CASE 도구와 기타 도구 간 관계 = 445
15.3.13. 방법론 지원과 강화 = 445
15.3.14. 프레임웍(Framework) = 446
15.3.15. OCL = 446
15.3.16. 문서 생성 = 446
제16장 설계 패턴
16.1 서론 = 449
16.2 설계 패턴의 기원 = 450
16.3 패턴의 문서화 = 452
16.4 UML에서 패턴은 어떻게 표현되는가 = 454
16.5 패턴의 응용 = 457
16.6 패턴 사용 방법 = 460
부록A 표기법 = 463
부록B 복습문제 해답 지침 = 471
부록C 용어집 = 513
서지목록 = 519
찾아보기 = 523