스크랩

구간

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

시리즈 : 에이콘 소프트웨어 아키텍처 시리즈 [21]

폴 클레멘츠 외 저 | 송재하 외 역 | 에이콘 | 2013년 09월

북트리

정가
$80.00
판매가
$58.32 (27%↓) 최저가 보상
적립금
$1.17 (2%P)

품절된 상품입니다.

이 책을 꼭 원하시는 고객님께서는 아래 "상품문의"를 클릭 후 구매의사를
알려주세요. 책이 확보 될 경우 연락 드리겠습니다.

북카트 바로구매 위시리스트

이책의 개정판 정보

소프트웨어 아키텍처 문서화 [2판] 폴 클레멘츠, 펠릭스 바흐만, 렌 베스 외 저 | 에이콘출판 | 2016년 07월

평점 -  ·  리뷰 0

리뷰 쓰기

ISBN : 9788960770737 / 560쪽 188 x 255 (㎜)

이 상품에 궁금하신점이 있으세요? 1:1상담문의

추천inside
Adobe Flash Player 가져오기

이 분야의 베스트셀러

아래의 도서와 구매하시면 이 도서들의 적립금을 즉시적용해 드립니다.

  • 27,000
  • 31,500
  • 21,420
  • 23,400

책 소개

출판사 리뷰

소프트웨어 아키텍처를 다루는 실무자들이 꼭 읽어야 할 책. 소프트웨어 아키텍트로서 저자들의 폭넓은 경험을 바탕으로 어떤 정보를 문서에 기록해야 하는지 결정하고, 그런 다음에 필요한 지침들과 UML 등 다양한 표기법으로 작성한 예제들을 가지고 누구나 이해할 수 있는 형태로 아키텍처를 표현하는 방법을 보여준다.

정말 간단한 것 외에 모든 소프트웨어 시스템은 아키텍처에 큰 관심을 기울여야 한다. 프로젝트에 관련된 많은 이해관계자 입장에서 프로젝트의 모든 단계를 연결해 주는 개념적 접착제 역할을 하는 바로 그 소프트웨어 아키텍처 말이다. 문제를 제대로 해결할 수 있는 아키텍처가 없으면 프로젝트가 휘청거리다가 결국 실패하고 말 것이다. 물론 뛰어난 아키텍처가 있다고 해도 그것을 사람들에게 제대로 이해시키거나 전달하지 못한다면, 다시 말해 제대로 문서화하지 못한다면, 프로젝트가 제대로 성공한다고 보기 어렵다.

요즘 들어서 아키텍처가 매우 중요한 요소로 널리 받들어지기는 하지만, 언어나 표기법에 얽매임 없이 제대로 포착해내는 방법이나 지침이 아직은 뚜렷이 없었다. 이 책 『소프트웨어 아키텍처 문서화』에서는 저자들의 폭넓은 경험을 바탕으로 어떤 정보를 문서에 기록해야 하는지 결정하고, 그런 다음에 필요한 지침들과 UML 등 다양한 표기법으로 작성한 예제들을 가지고 누구나 이해할 수 있는 형태로 아키텍처를 표현하는 방법을 보여주고 있다. 강력한 아키텍처를 만들어내려면 그 결과로 나올 아키텍처를 설명하는 일도 매우 상세하면서 깔끔하게 해낼 수 있어야 하고, 아키텍처의 구성도 잘해야 한다. 그래야 사람들이 필요한 정보를 빠르게 찾아낼 수 있다.

이 책에서 다루는 내용
- 좋은 문서를 만드는 일곱 가지 규칙
- 소프트웨어 아키텍처를 활용하는 용도, 목표, 전략
- 아키텍처 뷰와 스타일에 대한 일반적인 소개와 구체적인 예제
- 소프트웨어의 인터페이스와 행위에 대한 문서화하는 방법
- 정보를 수집해서 일관성을 갖춘 패키지로 만드는 데 도움이 되는 문서 양식

★ 이 책의 구성 ★

서장에서는 이 책을 읽는 데 꼭 필요한 개념과 용어에 대해 정리한다. 여기서는 소프트웨어 아키텍처 문서를 어떻게 사용할 것이고, 그것이 왜 중요한지를 살펴본다. 그리고 아키텍처 뷰타입과 스타일과 뷰라는, 이 책에서 채택한 문서화 접근법의 근간을 이루는 세 가지 개념을 정의한다. 또한 좋은 문서를 만드는 7가지 규칙에 대해서도 소개한다.

1부 소프트웨어 아키텍처 뷰타입과 스타일에서는 소프트웨어 아키텍처 문서화에 쓰이는 기본적인 도구인 뷰타입을 소개한다. 뷰타입이란 뷰에서 제공되는 정보의 종류를 명세해 놓은 것이다. 뷰타입에는 기본적으로 모듈, 컴포넌트와 커넥터, 할당이라는 세 가지가 있다. 개별 뷰타입 내에는 여러 가지의 아키텍처 스타일이 있다. 아키텍처 스타일은 뷰타입을 특화시켜 놓은 것으로 보면 된다. 1부 도입부에 1장부터 5장에 걸쳐 설명할 스타일들에 대한 간략한 목록을 넣어 놓았다.

2부 소프트웨어 아키텍처 문서화의 이론과 실제에서는 제대로 된 아키텍트라면 반드시 만들어 내야 하는 완전한 구성의 아키텍처 문서 패키지에 중점을 둔다. 다시 말해 2부에서는 1부에서 제시한 그림을 완성하는 과정을 설명한다.

★ 이 책의 대상 독자 ★

이 책은 소프트웨어 프로젝트에서 아키텍처 문서를 작성하는 책임을 진 아키텍트와 기술문서 작성자들을 주 대상으로 해서 썼다. 물론 아키텍처 문서를 받아서 활용하는 입장에 있는 사람들도 함께 염두에 뒀다. 소프트웨어 아키텍트들은 이 책을 자신이 작성한 아키텍처 문서와 함께 제공하고 문서화 구성 원칙, 표기법, 개념, 관례 등을 설명한 해당 절을 적어놓는 방식을 활용하면 좋을 것이다.

이 책은 기본적으로 독자들이 소프트웨어 아키텍처 개념과 친숙한 상태에 있다고 가정하고 썼다. 물론 관련 배경지식을 어디서 얻을 수 있는지도 정보를 제공했다. 앞으로 여러 차례에 걸쳐, 독자들이 이미 친근할 만한 아키텍처 뷰, 아키텍처 스타일, 인터페이스 등과 같은 기본 개념들에 대해 좀 더 명확하게 다듬어서 설명할 것이다.

저자 소개

  • 저자 : 폴 클레멘츠 외
지은이 : 렌 베스 (Len Bass)
NICTA(National ICT Australia Ltd) 사의 수석 연구원이다. 2011년에 NICTA에 입사하기 전에 카네기 멜론(Carnegie Mellon) 대학의 SEI(Software Engineering Institute)에서 25년간 재직했다. 『Software Architecture: Views and Beyond, Second edition』(Addison-Wesley, 2011)을 포함하여 2권의 수상 경력을 보유한 책의 공동 저자이며, 컴퓨터 과학과 소프트웨어 공학에 관련된 다양한 주제에 관한 여러 권의 책과 다수의 논문이 있다. 과학 분석 시스템, 임베드 시스템과 정보 시스템과 같은 여러 도메인에서 소프트웨어 개발과 연구를 50년간 해왔다.  

지은이 : 폴 클레멘츠 (Paul Clements)
빅레버 소프트웨어(BigLever Software) 사의 Customer Success 부사장으로, 시스템과 소프트웨어 제품 라인 엔지니어링의 채택을 확산시키는 일을 하고 있다. 이전에는 SEI에서 기술 분야의 수석 연구원으로서 17년 동안 소프트웨어 제품 라인과 소프트웨어 아키텍처 문서화와 분석 분야의 프로젝트를 이끌었다. 『Software Architecture: Views and Beyond, Second edition』(Addison-Wesley, 2011)의 공동 저자이며, 『Evaluating Software Architectures: Methods and Case Studies』(Addion-Wesley, 2002)(번역서: 『소프트웨어 아키텍처 평가』(에이콘, 2009)), 『Software Product Lines: Practices and Patterns』(Addison-Wesley, 2002) 등을 집필했다. 이와 함께 소프트웨어 시스템의 설계와 명세에 대한 오래된 관심사를 반영하는 수십 편의 소프트웨어 엔지니어링 논문을 출판했다.  

지은이 : 펠릭스 바흐먼 (Felix Bachmann)
SEI 기술진의 선임 연구원으로, Architecture Centric Engineering Initiative에서 일하고 있다  

지은이 : 데이비드 갈란 (David Galan)
카네기멜론 대학(CMU) 컴퓨터 과학 학부의 컴퓨터 과학 교수며 소프트웨어 공학 전문 프로그램 소장이다.  

지은이 : 제임스 이버스 (James Ivers)
SEI 기술진의 선임 연구원으로, 소프트웨어 아키텍처와 프로그램 분석 분야에서 일했다.  

지은이 : 리드 리틀 (Reed Little)
SEI 기술진의 선임 연구원이다.  

지은이 : 주디스 스태포드 (Judith Stafford)
터프츠(Tufts) 대학의 전문 강사며 SEI의 교환 과학자다.  

지은이 : 로버트 노드 (Robert Nord)
SEI의 Research, Technology, and System Solutions Program 기술진의 선임 연구원이다.  

옮긴이 : 송재하
성균관대학교 국어국문과를 다니면서 직업 프로그래머가 된 이래로, 패키지 SW, SI 시스템, 분산 미들웨어 엔진, 모바일 서비스 등을 두루 거치며 개발 경험을 쌓았다. 이후 한국과학기술원 공학석사와 카네기멜론대학 소프트웨어공학 석사과정(MSE)을 졸업한 뒤, 엔씨소프트의 오픈마루 스튜디오에서 대용량 데이터처리팀을 맡아 웹 데이터 처리 인프라와 MMORPG의 게임 로그 처리 시스템을 아키텍팅하고 구축하면서 아키텍트의 길을 가고 있다. 현재 SK플래닛에서 다양한 생활 밀착형 서비스에서 풍부한 사용자 로그를 모아 확장된 생활 경험을 제공하기 위한 데이터 인프라스트럭처를 구축하고 있다. 번역서로는 에이콘출판사에서 출간한 『소프트웨어 아키텍처: 이론과 실제』(2007), 『소프트웨어 아키텍처 문서화』(2009), 『소프트웨어 시스템 아키텍처 Software Systems Architecture Second Edition』(2015)이 있다.  

옮긴이 : 박미율
덕성여자대학교에서 전산학을 전공하고 한국과학기술원 공학석사와 카네기멜론대학 소프트웨어공학 석사과정(MSIT-SE)을 졸업했다. 주 관심분야는 소프트웨어 아키텍처, 빅데이터 인프라 구축 및 분석, 소프트웨어 개발방법론이다. 빅데이터 로그분석, 호 데이터처리, 디지털 사이니지, 임베디드 등의 분야에서 소프트웨어를 개발했으며, SQA, PMO, 아키텍트 등의 업무를 두루 거쳤다. 지식을 나누는 일에 보람을 느끼며, 소프트웨어 개발에 있어 아키텍처가 얼마나 훌륭한 의사소통 도구인지 공유하고자 번역에 참여했다.

현재 KT에서 빅데이터 인프라 설계 업무를 하고 있다. 에이콘출판사에서 출간한 『소프트웨어 아키텍처: 이론과 실제』(2007)와 『소프트웨어 아키텍처 문서화』(2009)를 공역했다.
  

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

옮긴이 : 김정호
카네기멜론대학(CMU)에서 소프트웨어 공학석사를 졸업하고 한국정보통신대학(ICU)에서 소프트웨어 아키텍처 전공으로 박사과정을 수료했다. 현재 SKC&C에서 소프트웨어 아키텍트로서 활동하고 있으며 3차원 현실 환경을 복제해 서비스를 제공하는 메타버스 플랫폼의 소프트웨어 아키텍처를 수립하고 있다.  

목차

서장: 소프트웨어 아키텍처와 문서화
P1: 아키텍처의 역할
용어 설명: 소프트웨어 아키텍처
견해 소개: 아키텍처는 설계와 어떻게 다른가?
용어 설명: 문서화, 설명, 표현, 명세
P2: 아키텍처 문서 활용방안
P3: 인터페이스
P4: 뷰
용어 설명: 아키텍처 뷰
P5: 뷰타입과 스타일
P.5.1 뷰타입
P.5.2 스타일
P.5.3 뷰타입, 스타일, 뷰에 대한 요약
용어 설명: 모듈과 컴포넌트
P6: 좋은 문서를 만드는 7가지 규칙
P.6.1 규칙 1: 읽는 사람의 관점에서 문서를 작성한다
P.6.2 규칙 2: 불필요한 반복을 피한다
P.6.3 규칙 3: 모호함을 피한다
P.6.4 규칙 4: 표준 체계를 따른다
P.6.5 규칙 5: 근거를 남겨둔다
P.6.6 규칙 6: 문서를 항상 최신으로 유지하되 너무 앞서나가지 않는다
P.6.7 규칙 7: 목적에 맞게 작성됐는지 사후 검토한다
견해 소개: 화살표에 대한 고민
P7: 요약정리
P8: 토론 문제
P9: 더 읽을거리

1부: 소프트웨어 아키텍처 뷰타입과 스타일
1.1 뷰타입과 스타일 목록
I.1.1 모듈 뷰타입
I.1.2 컴포넌트와 커넥터 뷰타입
I.1.3 할당 뷰타입
1.2 스타일 지침 : 스타일 문서화 표준 구조

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.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 사용 스타일의 예제
용어 설명: 사용
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 계층 스타일의 예제
용어 설명: 가상 기계
견해 소개: 거슬러 올라가는 소프트웨어
견해 소개: '수준' 때문에 생기는 혼란
견해 소개: UML 클래스 다이어그램 남용금지!
2.5 요약정리
2.6 토론 문제
2.7 더 읽을거리

3장 컴포넌트와 커넥터 뷰타입
3.1 개요
3.2 C&C 뷰타입의 요소, 관계, 속성
3.2.1 요소
3.2.2 관계
3.2.3 속성
견해 소개: 커넥터가 정말 필요한가?
견해 소개: 커넥터 추상화 하기
3.3 C&C 뷰타입의 용도
견해 소개: 데이터 흐름과 제어 흐름 투영
3.4 C&C 뷰타입 표기법
3.5 다른 뷰타입과의 관계
3.6 요약정리
3.7 토론 문제
3.8 더 읽을거리

4장 컴포넌트와 커넥터 뷰타입 스타일
4.1 파이프와 필터 스타일
4.1.1 개요
4.1.2 요소, 관계, 속성
4.1.3 파이프와 필터 스타일의 용도
4.1.4 다른 스타일과의 관계
4.1.5 파이프와 필터 스타일의 사례
4.2 공유 데이터 스타일
4.2.1 개요
4.2.2 요소, 관계, 속성
4.2.3 공유 데이터 스타일의 용도
4.2.4 다른 스타일과의 관계
4.2.5 공유 데이터 스타일의 사례
4.3 발행 구독 스타일
4.3.1 개요
4.3.2 요소, 관계, 속성
4.3.3 발행 구독 스타일의 용도
4.3.4 다른 스타일과의 관계
4.3.5 발행 구독 스타일의 사례
4.4 클라이언트 서버 스타일
4.4.1 개요
4.4.2 요소, 관계, 속성
4.4.3 클라이언트 서버 스타일의 용도
4.4.4 다른 스타일과의 관계
4.4.5 클라이언트 서버 스타일의 사례
4.5 피어 투 피어 스타일
4.5.1 개요
4.5.2 요소, 관계, 속성
4.5.3 피어 투 피어 스타일의 용도
4.5.4 다른 스타일과의 관계
4.5.5 피어 투 피어 스타일의 사례


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

6장 고급 개념
6.1 정보 분할과 뷰 패킷, 정제, 설명적 완결성
6.1.1 뷰 패킷
6.1.2 정제
6.1.3 설명적 완결성
6.2 컨텍스트 다이어그램 사용
6.2.1 최상위 수준 컨텍스트 다이어그램
6.2.2 컨텍스트 다이어그램의 내용
6.2.4 컨텍스트 다이어그램 표기법
6.2.5 컨텍스트 다이어그램에 대한 예제
6.3 결합 뷰
6.3.1 결합 뷰를 사용해야 하는 경우
6.3.2 대응의 유형
6.3.3 요소, 관계, 속성
6.3 결합 뷰 문서화
6.3.5 결합 뷰 예제
6.3.6 그 밖의 예제
6.4 가변성과 역동성 문서화
6.4.1 가변성
6.4.2 역동성
6.4.3 정보 기록
6.4.4 가변성과 역동성 표기법
견해 소개: 시점이란 무엇인가?
6.5 새로운 스타일 작성과 문서화
용어 설명: 스타일과 패턴
6.6 요약정리
6.7 토론 문제
6.8 더 읽을거리

7장 소프트웨어 인터페이스 문서화
7.1 개요
7.2 인터페이스 명세
7.3 인터페이스 문서 표준 구성
용어 설명: 예외와 오류 처리
7.4 인터페이스 문서와 관련된 이해관계자
7.5 인터페이스 문서 표기법
7.5.1 인터페이스의 존재 제시
7.5.2 형태정보 전달
7.5.3 의미정보 전달
7.5.4 요약
견해 소개: 다중 인터페이스
용어 설명: 호출규약, 인터페이스, API
7.6 인터페이스 문서화 예제
7.6.1 SCR 스타일의 인터페이스
7.6.2 IDL
7.6.3 맞춤형 표기법
7.6.4 XML
7.7 요약정리
7.8 토론 문제
7.9 더 읽을거리

8장 행위 문서화
8.1 구조를 넘어서
8.2 행위 문서화 위치
8.3 행위 문서화 필요성
8.3.1 시스템 분석
8.3.2 개발 작업 추진
8.4 문서화 내용
8.4.1 통신 방식
8.4.2 순서 제약사항
8.4.3 시간에 따라 발생하는 자극
8.5 행위 문서화에 쓰이는 언어와 표기법
8.5.1 추적
8.5.2 정적 모델
8.6 요약정리
8.7 토론 문제
8.8 더 읽을거리

9장 뷰 선택
9.1 이해관계자들에게 필요한 문서
견해 소개: 아키텍처 트레이드오프 분석 방법
9.2 선택하기
9.3 두 가지 예제
9.3.1 소규모 프로젝트 A-7E
9.3.2 대규모 프로젝트 ECS
9.4 요약정리
9.5 토론 문제
9.6 더 읽을거리

10장 문서 패키지 작성
10.1 문서를 하나로? 여러 개로?
견해 소개 'is'의 의미
10.2 뷰 문서화
견해 소개: 표현 방법도 중요해
10.3 여러 뷰를 고려한 문서화
10.3.1 어떻게 문서가 구성됐는가: 구성 정보
10.3.2 무엇을 아키텍처로 봤는가: 구성 내용
10.3.3 왜 아키텍처가 현재의 모습을 하고 있는가: 배경, 근거, 설계 제약사항
견해 소개: 전역 분석
10.4 소프트웨어 아키텍처 문서의 검증
견해 소개: 용어집을 만들면 좋았을 텐데
10.5 요약정리
10.6 토론 문제
10.7 더 읽을거리

11장 여러 뷰를 고려한 문서 작성에 대한 다양한 시각 뷰에 대한 다양한 시각
11.1 개요
11.2 래셔널 통합 프로세스(RUP)/크루첸 4+1
11.3 UML
11.3.1 클래스 다이어그램과 객체 다이어그램
11.3.2 컴포넌트 다이어그램
11.3.4 행위 다이어그램
11.4 지멘스 4 뷰
11.4.1 전역 분석
11.4.2 개념적 아키텍처 뷰
11.4.3 모듈 아키텍처 뷰
11.4.4 실행 아키텍처 뷰
11.4.5 코드 아키텍처 뷰
11.4.6 요약
11.5 C4ISR 아키텍처 프레임워크
11.5.2 공통 산출물
11.6 ANSI/IEEE-1471-2000
11.7 데이터 흐름과 제어 흐름
11.7.1 데이터 흐름 뷰
11.7.2 제어 흐름 뷰
견해 소개: 그거 전부 다 추측이잖아요!
11.8 RM-ODP
11.9 아키텍처 문서화의 결말
11.9.1 아키텍처 설명 언어
11.9.2 상용 컴포넌트
11.9.3 하이퍼텍스트 문서
11.9.4 형상 관리
11.10 당부의 말
11.11 더 읽을거리

top