소프트웨어 아키텍처 문서화 (2 판)

소프트웨어 아키텍처 문서화 (2 판)

$46.24
Description
[소프트웨어 아키텍처 문서화]는 좋은 문서화의 7가지 규칙을 설명하며 시작한다. 이어서 모듈 뷰와 컴포넌트-커넥터 뷰, 할당 뷰의 각 스타일을 문서화하는 방법과 가변점과 아키텍처 결정, 인터페이스, 그리고 행위를 문서화하는 방법 및 아키텍처 문서를 검토하는 방법을 알아본다. 이 책의 아키텍처 문서화의 템플릿은 그동안의 사용과 피드백을 반영해 향상되었으며, 서비스 지향 아키텍처와 다중 티어 아키텍처, 관점 지향 시스템을 위한 아키텍처를 문서화하는 예도 함께 제시한다. 또한 웹 기반의 서비스 지향 시스템의 소프트웨어 아키텍처 문서화의 예제와 애자일 개발 환경에서의 문서화 가이드를 제공하고, 마지막으로 UML을 사용한 소프트웨어 아키텍처 문서화를 설명한다.
저자

폴클레멘츠

저자폴클레멘츠(PaulClements)은카네기멜론SEI(SoftwareEngineeringInstitute)기술진의선임연구원이다.

목차

프롤로그:소프트웨어아키텍처와문서화
__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.2UML
____1.4.3DSM
____1.4.4ERD
__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.2C&C뷰의요소,관계,속성
____3.2.1요소
____3.2.2컴포넌트-커넥터타입과인스턴스
____3.2.3관계
____3.2.4속성
____관점:복잡한커넥터가필요할까?
__3.3C&C뷰사용
____관점:커넥터추상화선택
__3.4C&C뷰표기법
____3.4.1비형식적표기법
____3.4.2형식적표기법
____3.4.3준형식적표기법
____관점:데이터흐름과제어흐름모델
__3.5다른뷰와의관계
__3.6요약체크리스트
__3.7생각해볼문제
__3.8더읽을거리

4장몇가지컴포넌트-커넥터스타일
__4.1C&C스타일개요
__4.2데이터흐름스타일
____4.2.1파이프-필터스타일
__4.3호출-반환스타일
____4.3.1클라이언트-서버스타일
____4.3.2P2P스타일
____4.3.3서비스지향아키텍처스타일
__4.4이벤트기반스타일
____4.4.1출판-구독스타일
__4.5레파지토리스타일
____4.5.1공유데이터스타일
__4.6C&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.1Zip컴포넌트API
____용어설명:시그니처,인터페이스,API
____7.7.2SOAP웹서비스인터페이스
__7.8요약체크리스트
__7.9생각해볼문제
__7.10더읽을거리

8장행위문서화
__8.1구조를넘어서
__8.2행위문서화방법
____8.2.11단계:어떤유형의질문에대답할지를결정한다
____8.2.22단계:어떤타입의정보를사용할지,제약할지를결정한다
____8.2.33단계:표기법을선택한다
__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요구매핑문서화
____관점:요구매핑

출판사 서평

★이책의대상독자★

이책에는3가지독자유형이있다.
1.소프트웨어프로젝트의아키텍처문서를생성하는책임을맡은소프트웨어아키텍트:이들에대해서는“나의아키텍처에수집할정보는무엇이며,시기적절한형식으로명확하고유용하게의사소통하는데사용할수있는표기법과기법은무엇인가?”에대한질문에
대답할것이다.

2.아키텍트또는아키텍처팀에게받은문서를소화하고사용해야하는아키텍처이해당사자:소프트웨어아키텍트는자신의문서의안내서로,이책을제공해특정한절을통해문서구조의원칙,표기법,개념또는관례를설명할수있다.

3.소프트웨어아키텍처에관한개요적인개념을배우고자하는사람:소프트웨어아키텍처(따라서문서화)의목적과사용을수립함으로써,그리고아키텍처의생성과의사소통에중요한기본적인개념집합을수립함으로써,이책은이주제의개요로서의역할을한다.

우리는소프트웨어엔지니어링의개념에대한기본적인사항을알고있다고가정한다.대부분의경우에서아키텍처뷰와아키텍처스타일,인터페이스와같이여러분이알고있는기본개념을더선명하고명확하게할것이다.

★2판에새로추가된것★

■몇가지새로운아키텍처스타일이주류로들어왔으며,이판은이들을문서화하는것에대해이야기한다.여기에는서비스지향아키텍처와다중티어아키텍처,관점지향시스템을위한아키텍처가포함된다.또한설치와제품환경뿐만아니라소프트웨어시스템데이터모델의아키텍처수준문서화를중요한스타일로다룬다.
■이판은포괄적인문서화보다는작동하는소프트웨어에더큰가치를두는애자일선언문과일관적인충고를지향하는애자일에근거를두고작업했다.
■최고의산업관행을반영해더근거있고체계적인문서화를다뤘다.또한,이해당사자가의도한대로되어있는지아키텍처문서를검토하는새로운장을추가했다.
■제시된아키텍처문서화의템플릿은그동안의사용과피드백을반영해향상되었다.또한,좀더유연하며,다른옵션으로문서를배열할수있게했다.
■문서화된소프트웨어아키텍처의포괄적인예를새로운것으로대체했다.오늘날산업의주류아키텍처는웹기반의서비스지향시스템이다.이책을더얇게하고,시간이지나감에따라예제를유지할수있게하기위해예제를온라인에두었다.그리고많은온라인예제도대체되거나변경되었다.
■초판이출간된이래UML은2.0이상의버전으로업그레이드되었다.이것은다양한아키텍처구조,특히컴포넌트와커넥터를좀더직접적으로문서화할수있는새로운가능성을열어주었다.필요한곳에새로운구조를반영해그림을변경했다.
■이판은아키텍처를문서화하는데유용한UML과AADL,SysML등3가지중요한언어와표기법을요약한간결한부록을포함하고있다.각부록은해당언어의간단한참조가이드를제공한다.
■마지막으로이판에는초판이출간된이래그동안우리가뷰와그너머와함께얻은경험이반영되었다.이경험은문서화된아키텍처를생성하고,다른사람이그렇게하도록도와주는데서온것이다.또한다른조직의소프트웨어아키텍처를평가할때와같이실제로아키텍처문서를사용하는데서왔다.마지막으로이책을기반으로하는이틀간의실무과정에참여한수천명이상의참가자와상호작용한결과를반영하였다.소프트웨어아키텍처를실습하는이들의상호작용은우리의충고를좀더규범적이고선명하게하며,아키텍트가매일만나게되는문제와상황을반영하게만들었다.