로그인회원가입장바구니고객센터마이페이지회사소개
kangcom
전체
Home >   >   > 

소프트웨어 아키텍처 문서화

   
지은이 폴 클레멘츠   |   출판사 에이콘출판  |   발행일 2009년 02월 09일
 
클릭하시면 큰 도서이미지를 보실 수 있습니다.
판매가 40,000원36,000원 10%
마일리지 5% 2,000원
발행일 2009-02-09
ISBN 8960770736 |  9788960770737
기타정보 국내서 | 560쪽
예상출고일
배송비 무료배송
   
프로젝트관리
종합지수 74p 3 위
   
이 책의 원서
  Documenting Software Architectures: Views and Beyond
Addison-Wesley Professional | Paul Clements
주의사항 더이상 출간되지 않습니다.
 

소프트웨어 아키텍처를 문서화하라!

'에이콘 소프트웨어 아키텍처' 시리즈, 제3권 『소프트웨어 아키텍처 문서화』. 소프트웨어 아키텍처 문서를 생산하거나 소비하는 데 관련된 개발자들을 대상으로 저술된 것이다.

이 책은 아키텍처를 구성하는 여러 종류의 정보를 다루는 데 필요한 안내서다. 아키텍처를 활용하는 용도, 목적, 전략 등을 세울 수 있도록 이끈다. 아키텍처 뷰와 스타일에 대해서도 소개하고 있다.

아울러 개발자들이 아키텍처에 대한 어떤 정보를 찾아내 기록해야 하는지 결정하는 데 도움을 준다. 지침, 표기법, 예제 등을 제공함으로써 이해를 도모하고 있다. 특히 아키텍처 기반의 업무인 구현, 분석, 복원 등을 수행할 때 아키텍처를 활용할 수 있도록 정보를 기록하는 방법을 UML 등의 표기법으로 만든 예제를 통해 보여준다.
서장: 소프트웨어 아키텍처와 문서화 1
P1: 아키텍처의 역할 1
용어 설명: 소프트웨어 아키텍처 2
견해 소개: 아키텍처는 설계와 어떻게 다른가? 4
용어 설명: 문서화, 설명, 표현, 명세 8
P2: 아키텍처 문서 활용방안 10
P3: 인터페이스 12
P4: 뷰 13
용어 설명: 아키텍처 뷰 15
P5: 뷰타입과 스타일 18
P.5.1 뷰타입 18
P.5.2 스타일 18
P.5.3 뷰타입, 스타일, 뷰에 대한 요약 21
용어 설명: 모듈과 컴포넌트 22
P6: 좋은 문서를 만드는 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
P7: 요약정리 30
P8: 토론 문제 31
P9: 더 읽을거리 32

1부: 소프트웨어 아키텍처 뷰타입과 스타일 35
1.1 뷰타입과 스타일 목록 35
I.1.1 모듈 뷰타입 35
I.1.2 컴포넌트와 커넥터 뷰타입 36
I.1.3 할당 뷰타입 38
1.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

2부 실전 소프트웨어 아키텍처 문서화 185

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.4 컨텍스트 다이어그램 표기법 198
6.2.5 컨텍스트 다이어그램에 대한 예제 200
6.3 결합 뷰 200
6.3.1 결합 뷰를 사용해야 하는 경우 201
6.3.2 대응의 유형 203
6.3.3 요소, 관계, 속성 205
6.3 결합 뷰 문서화 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 추적trace 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
견해 소개: 전역 분석Global Analysis 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.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.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
[폴 클레멘츠, 펠릭스 바흐만, 렌 베스, 데이비드 갈란,
제임스 이버스, 리드 리틀, 로버드 노드, 주디스 스태포드]

모두 소프트웨어 아키텍처 분야의 영향력 있는 인사들이다. 이들은 소프트웨어 공학 연구소(SEI) 내에서 팀을 이뤄 소프트웨어 아키텍처를 다루는 데 필요한 효과적인 방법이나 기법을 개발하고 서로 의견을 주고받는 작업을 했다. 저자들은 모두 시스템 아키텍처를 구축하는 데 삶을 바쳐온 사람들이고, 그 중에는 특히 소프트웨어 아키텍처를 주제로 많은 갈채를 받은 선도적인 책을 쓴 사람들도 있다.


[송재하]
1992년 성균관대학교 컴퓨터 동아리에서 터보 파스칼을 배우면서 프로그래밍을 시작했다. 소프트웨어 설계와 분석에 많은 관심이 있고, 한국정보통신대학교 공학석사와 카네기멜론대 소프트웨어 공학 석사과정(MSE)을 졸업했다. 훌륭한 소프트웨어 아키텍트가 되고 싶어하고, 또 그 길을 가고 있다. 현재는 엔씨소프트의 오픈마루 스튜디오에서 검색 데이터 수집 팀을 이끌며 소프트웨어 공학과 아키텍처의 이론을 실제로 적용해 나가고 있다.

[박미율]
덕성여자대학교에서 전산학을 전공하고 한국정보통신대학교 공학석사와 카네기멜론대학 소프트웨어공학 석사과정(MSIT-SE)을 졸업했다. 주 관심분야는 소프트웨어 아키텍처, 소프트웨어 개발방법론 등이며, 현재 국내 전자회사에서 임베디드 소프트웨어 관련 업무를 하고 있다.

[이진희]
서울대학교 컴퓨터공학과를 졸업하고 카네기멜론대학 소프트웨어공학 석사를 졸업했다. 미국 오라클 본사에서 소프트웨어 엔지니어로 근무하다 현재 실리콘밸리에서 벤처기업을 창업해 CTO 및 Vice President로 일하고 있다.

[김정호]
카네기멜론대학(CMU)에서 소프트웨어 공학석사를 졸업하고 한국정보통신대학(ICU)에서 소프트웨어 아키텍처 전공으로 박사과정을 수료했다. 현재 SKC&C에서 소프트웨어 아키텍트로서 활동하고 있으며 3차원 현실 환경을 복제해 서비스를 제공하는 메타버스 플랫폼의 소프트웨어 아키텍처를 수립하고 있다.
등록된 서평이 없습니다.
 
전체평균(0)
회원평점   회원서평수 0
이메일주소수집거부