목차
한국어판 출간에 부쳐 ... ⅳ
이 책에 쏟아진 찬사 ... ⅳ
표지 그림에 대해 ... ⅹ
추천의 글 ... xiii
저자 소개 ... xvi
저자 서문 ... xvii
감사의 글 ... xx
옮긴이 소개 ... xxii
옮긴이의 말 ... xxiv
들어가며 ... xxxv
서장 소프트웨어 아키텍처와 문서화 ... 1
   P.1 아키텍처의 역할 ... 1
      용어 설명 : 소프트웨어 아키텍처 ... 2
      견해 소개 : 아키텍처는 설계와 어떻게 다른가? ... 4
      용어 설명 : 문서화, 설명, 표현, 명세 ... 8
   P.2 아키텍처 문서 활용방안 ... 10
   P.3 인터페이스 ... 12
   P.4 뷰 ... 13
      용어 설명 : 아키텍처 뷰 ... 15
   P.5 뷰타입과 스타일 ... 18
      P.5.1 뷰타입 ... 18
      P.5.2 스타일 ... 18
      P.5.3 뷰타입, 스타일, 뷰에 대한 요약 ... 21
      용어 설명 : 모듈과 컴포넌트 ... 22
   P.6 좋은 문서를 만드는 7가지 규칙 ... 24
      P.6.1 규칙 1. 읽는 사람의 관점에서 문서를 작성한다 ... 24
      P.6.2 규칙 2. 불필요한 반복을 피한다 ... 25
      P.6.3 규칙 3. 모호함을 피한다 ... 26
      P.6.4 규칙 4. 표준 체계를 따른다 ... 27
      P.6.5 규칙 5. 근거를 남겨둔다 ... 28
      P.6.6 규칙 6. 문서를 항상 최신 내용을 담되 너무 앞서나가지 않는다 ... 28
      P.6.7 규칙 7. 목적에 맞게 작성됐는지 사후 검토한다 ... 28
      견해 소개 : 화살표에 대한 고민 ... 29
   P.7 정리 ... 30
   P.8 생각해볼 문제 ... 31
   P.9 더 읽을거리 ... 33
1부 소프트웨어 아키텍처 뷰타입과 스타일 ... 35
   1.1 뷰타입과 스타일 목록 ... 35
      I.1.1 모듈 뷰타입 ... 35
      I.1.2 컴포넌트와 커넥터 뷰타입 ... 36
      I.1.3 할당 뷰타입 ... 38
   I.2 스타일 지침 : 스타일 문서화를 위한 표준 문서체계 ... 39
   1장 모듈 뷰타입 ... 41
      1.1 개요 ... 41
      1.2 모듈 뷰타입의 요소, 관계, 속성 ... 42
        1.2.1 요소 ... 43
        1.2.2 관계 ... 43
        1.2.3 속성 ... 44
        용어 설명 : 교체가능성 ... 46
      1.3 모듈 뷰타입이 적합한 상황 ... 47
      1.4 모듈 뷰타입 표기법 ... 48
        1.4.1 비공식 표기법 ... 48
        1.4.2 UML ... 48
      1.5 다른 뷰타입과의 관계 ... 49
      1.6 정리 ... 50
      1.7 생각해볼 문제 ... 50
      1.8 더 읽을거리 ... 51
   2장 모듈 뷰타입 스타일 ... 53
      2.1 분할 스타일 ... 53
        2.1.1 개요 ... 53
        2.1.2 요소, 관계, 속성 ... 54
        2.1.3 용도 ... 55
        2.1.4 표기법 ... 56
        2.1.5 다른 스타일과의 관계 ... 57
        2.1.6 사례 ... 57
        용어 설명 : 하위시스템 ... 62
      2.2 사용 스타일 ... 64
        2.2.1 개요 ... 64
        2.2.2 요소, 관계, 속성 ... 64
        2.2.3 용도 ... 65
        2.2.4 표기법 ... 65
        2.2.5 다른 스타일과의 관계 ... 67
        2.2.6 사례 ... 67
        용어 설명 : 사용 ... 68
      2.3 일반화 스타일 ... 71
        2.3.1 개요 ... 71
        2.3.2 요소, 관계, 속성 ... 72
        2.3.3 용도 ... 73
        2.3.4 표기법 ... 74
        2.3.5 다른 스타일과의 관계 ... 74
        용어 설명 : 일반화 ... 76
        2.3.6 사례 ... 77
      2.4 계층 스타일 ... 77
        2.4.1 개요 ... 77
        2.4.2 요소, 관계, 속성 ... 80
        2.4.3 용도 ... 82
        2.4.4 표기법 ... 83
        2.4.5 다른 스타일과의 관계 ... 89
        2.4.6 사례 ... 92
        용어 설명 : 가상 기계 ... 93
        견해 소개 : 거슬러 올라가는 소프트웨어 ... 94
        견해 소개 : '수준' 때문에 생기는 혼란 ... 95
        견해 소개 : UML 클래스 다이어그램 남용금지! ... 97
      2.5 정리 ... 99
      2.6 생각해볼 문제 ... 100
      2.7 더 읽을거리 ... 100
   3장 컴포넌트와 커넥터 뷰타입 ... 103
      3.1 개요 ... 103
      3.2 C&C 뷰타입의 요소, 관계, 속성 ... 106
        3.2.1 요소 ... 107
        3.2.2 관계 ... 110
        3.2.3 속성 ... 111
        견해 소개 : 커넥터는 정말 필요한가? ... 112
        견해 소개 : 커넥터 추상화 ... 114
      3.3 C&C 뷰타입의 용도 ... 116
        견해 소개 : 데이터 흐름과 제어 흐름 투영 ... 117
      3.4 C&C 뷰타입 표기법 ... 118
      3.5 다른 뷰타입과의 관계 ... 118
      3.6 정리 ... 120
      3.7 생각해볼 문제 ... 122
      3.8 더 읽을거리 ... 123
   4장 컴포넌트와 커넥터 뷰타입 스타일 ... 125
      4.1 파이프와 필터 스타일 ... 126
        4.1.1 개요 ... 126
        4.1.2 요소, 관계, 속성 ... 126
        4.1.3 용도 ... 127
        4.1.4 다른 스타일과의 관계 ... 128
        4.1.5 사례 ... 128
      4.2 공유 데이터 스타일 ... 129
        4.2.1 개요 ... 129
        4.2.2 요소, 관계, 속성 ... 129
        4.2.3 용도 ... 131
        4.2.4 다른 스타일과의 관계 ... 132
        4.2.5 사례 ... 132
      4.3 발행 구독 스타일 ... 133
        4.3.1 개요 ... 133
        4.3.2 요소, 관계, 속성 ... 133
        4.3.3 용도 ... 134
        4.3.4 다른 스타일과의 관계 ... 135
        4.3.5 사례 ... 135
      4.4 클라이언트/서버 스타일 ... 136
        4.4.1 개요 ... 136
        4.4.2 요소, 관계, 속성 ... 136
        4.4.3 용도 ... 138
        4.4.4 다른 스타일과의 관계 ... 138
        4.4.5 사례 ... 139
      4.5 피어 투 피어 스타일 ... 139
        4.5.1 개요 ... 139
        4.5.2 요소, 관계, 속성 ... 140
        4.5.3 용도 ... 141
        4.5.4 다른 스타일과의 관계 ... 141
        4.5.5 사례 ... 141
      4.6 프로세스 간 통신 스타일 ... 142
        4.6.1 개요 ... 142
        4.6.2 요소, 관계, 속성 ... 142
        4.6.3 용도 ... 143
        4.6.4 다른 스타일과의 관계 ... 143
        4.6.5 사례 ... 144
      4.6 C&C 스타일 표기법 ... 145
        4.7.1 비공식적 표기법 ... 145
        4.7.2 정형적 표기법 ... 145
        견해 소개 : 클래스로 컴포넌트 타입과 인스턴스 표현하기 ... 160
        용어 설명 : 컴포넌트와 UML컴포넌트의 비교 ... 162
      4.8 정리 ... 164
      4.9 생각해볼 문제 ... 165
      4.10 더 읽을거리 ... 166
   5장 할당 뷰타입과 스타일 ... 167
      5.1 개요 ... 167
      5.2 요소, 관계, 속성 ... 168
      5.3 배치 스타일 ... 169
        5.3.1 개요 ... 169
        5.3.2 요소, 관계, 속성 ... 170
        5.3.3 용도 ... 172
        5.3.4 표기법 ... 173
        5.3.5 다른 스타일과의 관계 ... 175
        5.3.6 사례 ... 175
      5.4 구현 스타일 ... 175
        5.4.1 개요 ... 175
        5.4.2 요소, 관계, 속성 ... 177
        5.4.3 용도 ... 178
        5.4.4 표기법 ... 178
        5.4.5 다른 스타일과의 관계 ... 178
        5.4.6 사례 ... 179
      5.5 작업할당 스타일 ... 179
        5.5.1 요소, 관계, 속성 ... 179
        5.5.2 용도 ... 180
        5.5.3 표기법 ... 181
        5.5.4 다른 스타일과의 관계 ... 181
        5.5.5 사례 ... 182
      5.6 정리 ... 183
      5.7 생각해볼 문제 ... 183
      5.8 더 읽을거리 ... 184
2부 실전 <B><FONT color ... #0000
   6장 고급 개념 ... 187
      6.1 정보 분할과 뷰 패킷, 정제, 설명적 완결성 ... 188
        6.1.1 뷰 패킷 ... 188
        6.1.2 정제 ... 191
        6.1.3 설명적 완결성 ... 192
      6.2 컨텍스트 다이어그램 ... 195
        6.2.1 최상위 수준 컨텍스트 다이어그램 ... 196
        6.2.2 내용 ... 197
        6.2.3 그 밖의 보조 문서 ... 197
        6.2.4 표기법 ... 198
        6.2.5 사례 ... 200
      6.3 결합 뷰 ... 200
        6.3.1 결합 뷰를 사용해야 하는 경우 ... 201
        6.3.2 대응의 유형 ... 203
        6.3.3 요소, 관계, 속성 ... 205
        6.3.4 결합 뷰 문서화 ... 206
        6.3.5 결합 뷰 예제 ... 207
        6.3.6 그 밖의 예제 ... 208
      6.4 가변성과 역동성 문서화 ... 209
        6.4.1 가변성 ... 209
        6.4.2 역동성 ... 210
        6.4.3 정보 기록 ... 211
        6.4.4 표기법 ... 212
        견해 소개 : 시점이란 무엇인가? ... 213
      6.5 새로운 스타일 작성과 문서화 ... 215
        용어 설명 : 스타일과 패턴 ... 217
      6.6 정리 ... 219
      6.7 생각해볼 문제 ... 220
      6.8 더 읽을거리 ... 221
   7장 소프트웨어 인터페이스 문서화 ... 223
      7.1 개요 ... 223
      7.2 인터페이스 명세 ... 226
      7.3 인터페이스 문서 표준 체계 ... 228
        용어 설명 : 예외와 오류 처리 ... 233
      7.4 인터페이스 문서와 관련된 이해관계자 ... 237
      7.5 인터페이스 문서 표기법 ... 239
        7.5.1 인터페이스의 존재 제시 ... 239
        7.5.2 형태정보 전달 ... 241
        7.5.3 의미정보 전달 ... 242
        7.5.4 요약 ... 242
        견해 소개 : 다중 인터페이스 ... 242
        용어 설명 : 호출규약, 인터페이스, API ... 245
      7.6 인터페이스 문서화 예제 ... 246
        7.6.1 SCR 스타일의 인터페이스 ... 246
        7.6.2 IDL ... 252
        7.6.3 맞춤형 표기법 ... 252
        7.6.4 XML ... 255
      7.7 정리 ... 257
      7.8 생각해볼 문제 ... 258
      7.9 더 읽을거리 ... 258
   8장 행위 문서화 ... 259
      8.1 구조를 넘어서 ... 259
      8.2 행위 문서화 위치 ... 260
      8.3 행위 문서화 필요성 ... 260
        8.3.1 시스템 분석 ... 261
        8.3.2 개발 작업 추진 ... 262
      8.4 문서화 내용 ... 263
        8.4.1 통신 방식 ... 264
        8.4.2 순서 제약사항 ... 264
        8.4.3 시간에 따라 발생하는 자극 ... 265
      8.5 행위 문서화에 쓰이는 언어와 표기법 ... 266
        8.5.1 추적 ... 268
        8.5.2 정적 모델 ... 276
      8.6 정리 ... 284
      8.7 생각해볼 문제 ... 285
      8.8 더 읽을거리 ... 285
   9장 뷰 선택 ... 289
      9.1 이해관계자들에게 필요한 문서 ... 290
        견해 소개 : 아키텍처 트레이드오프 분석 방법 ... 302
      9.2 선택하기 ... 305
      9.3 두 가지 예제 ... 306
        9.3.1 소규모 프로젝트 A-7E ... 306
        9.3.2 대규모 프로젝트 ECS ... 308
      9.4 정리 ... 312
      9.5 생각해볼 문제 ... 312
      9.6 더 읽을거리 ... 313
   10장 문서 패키지 작성 ... 315
      10.1 문서를 하나로? 여러 개로? ... 315
        견해 소개 : 'is'의 의미 ... 316
      10.2 뷰 문서화 ... 317
        견해 소개 : 표현 방법도 중요하다! ... 321
      10.3 뷰 개괄 문서 ... 323
        10.3.1 어떻게 문서가 구성됐는가 : 구성 정보 ... 324
        10.3.2 무엇을 아키텍처로 봤는가 : 구성 내용 ... 326
        10.3.3 왜 아키텍처가 현재의 모습을 하고 있는가 : 배경, 근거, 설계 제약사항 ... 328
        견해 소개 : 전역 분석 ... 332
      10.4 소프트웨어 아키텍처 문서의 검증 ... 335
        견해 소개 : 용어집을 만들면 좋았을 텐데 ... 339
      10.5 정리 ... 340
      10.6 생각해볼 문제 ... 340
      10.7 더 읽을거리 ... 341
   11장 그 밖의 문서화 기법 ... 343
      11.1 개요 ... 343
      11.2 래셔널 통합 프로세스(RUP)/크루첸 4+1 ... 344
      11.3 UML ... 348
        11.3.1 클래스 다이어그램과 객체 다이어그램 ... 348
        11.3.2 컴포넌트 다이어그램 ... 350
        11.3.3 배치 다이어그램 ... 350
        11.3.4 행위 다이어그램 ... 351
      11.4 지멘스 4뷰 ... 352
        11.4.1 전역 분석 ... 352
        11.4.2 개념적 아키텍처 뷰 ... 353
        11.4.3 모듈 아키텍처 뷰 ... 353
        11.4.4 실행 아키텍처 뷰 ... 354
        11.4.5 코드 아키텍처 뷰 ... 355
        11.4.6 요약 ... 355
      11.5 C4ISR 아키텍처 프레임워크 ... 356
        11.5.1 C4ISR 프레임워크의 공통 아키텍처 뷰 ... 357
        11.5.2 공통 산출물 ... 358
      11.6 ANSI/IEEE-1471-2000 ... 360
      11.7 데이터 흐름과 제어 흐름 ... 363
        11.7.1 데이터 흐름 뷰 ... 363
        11.7.2 제어 흐름 뷰 ... 365
        견해 소개 : 그거 전부 다 추측이잖아요! ... 366
      11.8 RM-ODP ... 371
      11.9 아키텍처 문서화의 정리 ... 373
        11.9.1 아키텍처 설명 언어 ... 374
        11.9.2 상용 컴포넌트 ... 375
        11.9.3 하이퍼텍스트 문서 ... 378
        11.9.4 형상관리 ... 378
      11.10 당부의 말 ... 379
      11.11 더 읽을거리 ... 380
부록A 소프트웨어 아키텍처 문서 패키지 사례 ... 381
   1권 ECS 소프트웨어 아키텍쳐 뷰 개괄 문서 ... 383
   2권 ECS 소프트웨어 아키텍쳐 뷰 ... 410
용어 정리 ... 469
참고 자료 ... 473
찾아보기 ... 483
닫기