소프트웨어 아키텍처 문서화
도서명:소프트웨어 아키텍처 문서화
저자/출판사:폴,클레멘츠,펠릭스,바흐만,렌,베스,데이비드,갈란,제/에이콘출판
쪽수:648쪽
출판일:2016-07-29
ISBN:9788960778870
목차
프롤로그: 소프트웨어 아키텍처와 문서화
__P.1 소프트웨어 아키텍처의 간단한 개요
____P.1.1 개요
____P.1.2 아키텍처와 품질 속성
____용어 설명: 소프트웨어 아키텍처란?
____관점: 아키텍처와 설계의 차이점
__P.2 아키텍처 문서화의 간단한 개요
____P.2.1 왜 소프트웨어 아키텍처를 문서화하는가?
____용어 설명: 명세, 표현, 서술, 문서화
____P.2.2 아키텍처 문서화의 사용과 독자
____P.2.3 아키텍처 문서화와 품질 속성
____P.2.4 아키텍처 문서화의 경제성
____P.2.5 뷰와 그 너머 방법론
____P.2.6 애자일 환경에서의 뷰와 그 너머
____P.2.7 문서화보다 빨리 변경되는 아키텍처의 문서화
__P.3 아키텍처 뷰
____용어 설명: 아키텍처 뷰의 간단한 역사
__P.4 아키텍처 스타일
____P.4.1 스타일의 3가지 분류
____용어 설명: 모듈과 컴포넌트
____용어 설명: ‘아키텍처 스타일’과 ‘아키텍처 패턴’
__P.5 좋은 문서화를 위한 7가지 규칙
____관점: 모든 사람이 ‘그냥 아는’ 표기법을 조심하라
____관점: 화살표의 의미
__P.6 요약 체크리스트
__P.7 생각해볼 문제
__P.8 더 읽을거리
I부 소프트웨어 아키텍처 스타일의 컬렉션
__I.1 스타일의 세 가지 카테고리
__I.2 스타일 지침: 스타일을 설명하기 위한 표준 구성
__I.3 문서화할 요소 및 관계 속성 선택
__I.4 아키텍처 뷰 표기법
__I.5 사례
1장 모듈 뷰
__1.1 개요
__1.2 모듈 뷰의 요소와 관계, 속성
____1.2.1 요소
____1.2.2 관계
____1.2.3 속성
__1.3 모듈 뷰 사용
__1.4 모듈 뷰 표기법
____1.4.1 비형식적 표기법
____1.4.2 UML
____1.4.3 DSM
____1.4.4 ERD
__1.5 다른 뷰와의 관계
__1.6 요약 체크리스트
__1.7 생각해볼 문제
__1.8 더 읽을거리
2장 몇 가지 모듈 스타일
__2.1 분할 스타일
____2.1.1 개요
____2.1.2 요소, 관계, 속성
____2.1.3 분할 스타일 사용
____2.1.4 분할 스타일 표기법
____2.1.5 다른 스타일과의 관계
____2.1.6 분할 스타일 사례
____용어 설명: 서브 시스템
__2.2 사용 스타일
____2.2.1 개요
____2.2.2 요소, 관계, 속성
____2.2.3 사용 스타일 사용
____2.2.4 사용 스타일 표기법
____2.2.5 다른 스타일과의 관계
____2.2.6 사용 스타일 사례
____용어 설명: 사용하다(uses)
__2.3 일반화 스타일
____2.3.1 개요
____2.3.2 요소, 관계 속성
____2.3.3 일반화 스타일 사용
____2.3.4 일반화 스타일 표기법
____2.3.5 다른 스타일과의 관계
____2.3.6 일반화 스타일 사례
__2.4 레이어 스타일
____2.4.1 개요
____2.4.2 요소, 관계, 속성
____2.4.3 레이어 스타일 사용
____2.4.4 레이어 스타일 표기법
____2.4.5 다른 스타일과의 관계
____2.4.6 레이어 스타일 사례
____용어 설명: 가상 머신
____관점: 상위 레이어 호출
____관점: 레이어 아키텍처를 유지하기 위한 DSM 사용
__2.5 관점 스타일
____2.5.1 개요
____2.5.2 요소, 관계, 속성
____2.5.3 관점 스타일 사용
____2.5.4 관점 스타일 표기법
____2.5.5 다른 스타일과의 관계
____2.5.6 관점 스타일 사례
____용어 설명: 관점지향 프로그래밍
__2.6 데이터 모델
____2.6.1 개요
____2.6.2 요소, 관계, 속성
____2.6.3 데이터 모델 사용
____2.6.4 데이터 모델 스타일 표기법
____2.6.5 다른 스타일과의 관계
____2.6.6 사례
____용어 설명: 엔티티
__2.7 요약 체크리스트
__2.8 생각해볼 문제
__2.9 더 읽을거리
3장 컴포넌트-커넥터 뷰
__3.1 개요
__3.2 C&C 뷰의 요소, 관계, 속성
____3.2.1 요소
____3.2.2 컴포넌트-커넥터 타입과 인스턴스
____3.2.3 관계
____3.2.4 속성
____관점: 복잡한 커넥터가 필요할까?
__3.3 C&C 뷰 사용
____관점: 커넥터 추상화 선택
__3.4 C&C 뷰 표기법
____3.4.1 비형식적 표기법
____3.4.2 형식적 표기법
____3.4.3 준형식적 표기법
____관점: 데이터 흐름과 제어 흐름 모델
__3.5 다른 뷰와의 관계
__3.6 요약 체크리스트
__3.7 생각해볼 문제
__3.8 더 읽을거리
4장 몇 가지 컴포넌트-커넥터 스타일
__4.1 C&C 스타일 개요
__4.2 데이터 흐름 스타일
____4.2.1 파이프-필터 스타일
__4.3 호출-반환 스타일
____4.3.1 클라이언트-서버 스타일
____4.3.2 P2P 스타일
____4.3.3 서비스지향 아키텍처 스타일
__4.4 이벤트 기반 스타일
____4.4.1 출판-구독 스타일
__4.5 레파지토리 스타일
____4.5.1 공유 데이터 스타일
__4.6 C&C 스타일 횡단 관심사
____4.6.1 프로세스-커뮤니케이션
____4.6.2 티어
____4.6.3 동적 생성과 소멸
__4.7 요약 체크리스트
__4.8 생각해볼 문제
__4.9 더 읽을거리
5장 할당 뷰와 몇 가지 할당 스타일
__5.1 개요
__5.2 배포 스타일
____5.2.1 개요
____5.2.2 요소, 관계, 속성
____5.2.3 배포 스타일 사용
____5.2.4 배포 스타일 표기법
____5.2.5 다른 스타일과의 관계
__5.3 설치 스타일
____5.3.1 개요
____5.3.2 요소, 관계, 속성
____5.3.3 설치 스타일 사용
____5.3.4 설치 스타일 표기법
____5.3.5 다른 스타일과의 관계
__5.4 작업 배정 스타일
____5.4.1 개요
____5.4.2 요소, 관계, 속성
____5.4.3 작업 배정 스타일 사용
____5.4.4 작업 배정 스타일 표기법
____5.4.5 다른 스타일과의 관계
____관점: 작업 배정 뷰가 왜 아키텍처적인가?
__5.5 기타 할당 스타일
____관점: 조정 뷰
__5.6 요약 체크리스트
__5.7 생각해볼 문제
__5.8 더 읽을거리
II부 구조를 넘어서: 문서화 완료
6장 기초를 넘어서
__6.1 정제
____6.1.1 분할 정제
____6.1.2 구현 정제
____6.1.3 설계 스펙트럼
__6.1.4 스타일 특수화
__6.2 서술적 완결성
__6.3 컨텍스트 다이어그램 문서화
____6.3.1 뷰 용어를 사용한 컨텍스트 다이어그램 생성
____6.3.2 컨텍스트 다이어그램 내용
____6.3.3 컨텍스트 다이어그램과 다른 지원 문서화
____6.3.4 컨텍스트 다이어그램 표기법
__6.4 가변점 문서화
____6.4.1 가변점
____6.4.2 가변 메커니즘
____용어 설명: 제품 라인 아키텍처
____6.4.3 역동성과 동적 아키텍처
____6.4.4 가변점 문서화
__6.5 아키텍처 결정 문서화
____6.5.1 아키텍처 결정 문서화 이유
____6.5.2 아키텍처 결정 문서화 템플릿
____6.5.3 대****문서화
____6.5.4 어떤 결정을 문서화할 것인가?
____관점: “이것을 하려면 많은 노력이 들겠지만, 함께 찾아보면 방법이 있습니다.”
____6.5.5 아키텍처 결정 문서화 보상
____관점: 아키텍처 문서화로부터 의사 결정으로서의 아키텍팅까지
____관점: 아키텍처 결정의 온톨로지
__6.6 뷰 결합
____6.6.1 뷰 사이의 연관 타입
____6.6.2 결합 뷰
____6.6.3 뷰를 결합할 때
____6.6.4 결합 뷰의 예
__6.7 요약 체크리스트
__6.8 생각해볼 문제
__6.9 더 읽을거리
7장 소프트웨어 인터페이스 문서화
__7.1 개요
____용어 설명: 제공 인터페이스 대 필수 인터페이스
__7.2 인터페이스 문서화
____7.2.1 다이어그램에 인터페이스의 존재 보여주기
__7.3 인터페이스 문서화의 표준 구성
____용어 설명: 에러 처리
__7.4 인터페이스 문서화의 이해당사자
__7.5 구문 정보 전달
__7.6 의미적인 정보 전달
__7.7 인터페이스 문서화 사례
____7.7.1 Zip 컴포넌트 API
____용어 설명: 시그니처, 인터페이스, API
____7.7.2 SOAP 웹 서비스 인터페이스
__7.8 요약 체크리스트
__7.9 생각해볼 문제
__7.10 더 읽을거리
8장 행위 문서화
__8.1 구조를 넘어서
__8.2 행위 문서화 방법
____8.2.1 1단계: 어떤 유형의 질문에 대답할지를 결정한다
____8.2.2 2단계: 어떤 타입의 정보를 사용할지, 제약할지를 결정한다
____8.2.3 3단계: 표기법을 선택한다
__8.3 행위 문서화 표기법
____8.3.1 추적 표기법
____8.3.2 포괄적인 모델 표기법
__8.4 행위 문서화 위치
__8.5 행위 문서화 이유
____8.5.1 개발 행위 주도
____8.5.2 분석
__8.6 요약 체크리스트
__8.7 생각해볼 문제
__8.8 더 읽을거리
III부 아키텍처 문서화 구축
9장 뷰 선택
__9.1 이해당사자와 문서화 필요성
__9.2 뷰 선택 방법
____관점: 이해당사자에게 듣기
__9.3 사례
____관점: 아키텍처를 도입하지 않는 방법
__9.4 요약 체크리스트
__9.5 생각해볼 문제
__9.6 더 읽을거리
10장 문서 패키지 구축
__10.1 뷰 문서화
____10.1.1 뷰 문서화 표준 구성
____관점: 컨텍스트 다이어그램에서 컨텍스트 뷰까지
____10.1.2 뷰 표준 구성의 유용한 변형
____10.1.3 뷰 또는 뷰 패킷에 불필요한 반복 피하기
__10.2 뷰 너머 문서화
____10.2.1 뷰 너머 정보 문서화의 표준 구성
____10.2.2 뷰 너머 문서화 표준 구성의 유용한 변형
__10.3 요구 매핑 문서화
____관점: 요구 매핑: 이미 갖고 있을 수 있음
__10.4 아키텍처 문서 패키징
____10.4.1 패키징 체계
____10.4.2 온라인 문서, 하이퍼텍스트, 위키
____용어 설명: 위키
____10.4.3 형상 관리
____10.4.4 릴리스 전략 따르기
____관점: 표현도 역시 중요하다
____관점: 도구 요구
__10.5 요약 체크리스트
__10.6 더 읽을거리
11장 아키텍처 문서 검토
__11.1 절차 단계
____용어 설명: 능동적 설계 검토
__11.2 아키텍처 문서 검토를 위한 질문 세트의 예
____11.2.1 적합한 이해당사자와 관심사를 찾기 위한 예제 질문 세트
____11.2.2 평가 지원을 위한 예제 질문 세트
____11.2.3 개발을 지원하기 위한 예제 질문 세트
____11.2.4 ISO/IEC 42010 준수를 위한 예제 질문 세트
__11.3 검토 구축과 수행 예제
__11.4 요약 체크리스트
__11.5 생각해볼 문제
__11.6 더 읽을거리
에필로그: 다른 접근 방법과 함께 뷰와 그 너머 사용
__E.1 ISO/IEC 42010, 이전의 ANSI/IEEE Std 1471-2000
____E.1.1 개요
____E.1.2 42010과 뷰와 그 너머
__E.2 RUP/크루첸 4+1
____E.2.1 RUP/4+1과 뷰와 그 너머
__E.3 로잔스키와 우즈 관점 집합 사용
____용어 설명: 아키텍처 시각
____E.3.1 로잔스키와 우즈 관점과 뷰와 그 너머
__E.4 애자일 개발 프로젝트에서 아키텍처 문서화
____E.4.1 개요
____E.4.2 애자일 개발과 뷰와 그 너머
__E.5 미국 국방 아키텍처 프레임워크
____E.5.1 DoDAF 개요
____E.5.2 DoDAF와 소프트웨어 아키텍처
____E.5.3 DoDAF와 뷰와 그 너머
____E.5.4 소프트웨어 아키텍처 문서화에 DoDAF 사용 전략
__E.6 아키텍처 문서화가 끝나는 곳
__E.7 끝으로
__E.8 더 읽을거리
부록 A UML
__A.1 개요
__A.2 모듈 뷰 문서화
____A.2.1 분할 스타일
____A.2.2 사용 스타일
____A.2.3 일반화 스타일
____A.2.4 레이어 스타일
____A.2.5 관점 스타일
____A.2.6 데이터 모델 스타일
____관점: UML 클래스 다이어그램: 너무 많아도, 너무 적어도
__A.3 컴포넌트-커넥터 뷰 문서화
__A.4 할당 뷰 문서화
____A.4.1 배포스타일
____A.4.2 설치 및 구현 스타일
____A.4.3 작업 배정 스타일
__A.5 행위 문서화
____A.5.1 액티비티 다이어그램
____A.5.2 시퀀스 다이어그램
____A.5.3 커뮤니케이션 다이어그램
____A.5.4 타이밍 다이어그램
____A.5.5 인터랙션 오버뷰 다이어그램
____A.5.6 상태 머신 다이어그램
____A.5.7 유스케이스 다이어그램
__A.6 인터페이스 문서화
____관점: UML 도구
부록 B SysML
__B.1 아키텍처 문서화
__B.2 요구
__B.3 모듈 뷰 문서화
__B.4 컴포넌트-커넥터 뷰 문서화
__B.5 할당 뷰 문서화
__B.6 행위 문서화
__B.7 인터페이스 문서화
__B.8 요약
부록 C AADL - SAE 아키텍처 분석과 설계 언어
__C.1 개요
__C.2 모듈 스타일 문서화
__C.3 컴포넌트-커넥터 뷰 문서화
__C.4 배포 뷰 문서화
__C.5 행위 문서화
__C.6 인터페이스 문서화
__C.7 요약