책 이미지

책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 컴퓨터 공학 > 소프트웨어 공학
· ISBN : 9788931477276
· 쪽수 : 504쪽
· 출판일 : 2024-08-02
책 소개
목차
서문
감사의 말
1장 더 메서드
‘더 메서드’란 무엇인가
- 설계 검증
- 빠듯한 일정
- 분석 마비 피하기
- 커뮤니케이션
더 메서드가 제공하지 않는 것
<1부 시스템 설계>
2장 분해
기능 분해 금지
- 기능 분해의 문제점
- 기능 분해 돌아보기
- 도메인 분해 피하기
- 잘못된 의도
- 테스트 가능성과 설계
- 예제: 주식 거래 시스템
변동성 기반 분해
- 분해, 유지보수, 개발
- 보편 원칙
- 변동성 기반 분해와 테스팅
- 변동성 문제
변동성 파악하기
- 변동성과 가변성
- 변동성의 축
- 요구사항을 가장한 솔루션
- 변동성 목록
- 예: 변동성 기반 거래 시스템
- 세이렌의 노래에 홀리지 않기
- 변동성과 비즈니스
- 경쟁사를 위한 설계
- 변동성과 지속성
- 연습의 중요성
3장 구조
유스케이스와 요구사항
- 필수 동작
계층형 접근법
- 서비스 활용
대표적인 계층
- 클라이언트 계층
- 비즈니스 로직 계층
- 리소스 접근 계층
- 리소스 계층
- 유틸리티 바
분류 가이드라인
- 명명 규칙
- 네 가지 질문
- 매니저 대 엔진 비율
- 주요 특징
서브시스템과 서비스
- 점진적 구축
- 마이크로서비스
개방형 아키텍처와 폐쇄형 아키텍처
- 개방형 아키텍처
- 폐쇄형 아키텍처
- 반폐쇄형(semi-closed) / 반개방형(semi-open) 아키텍처
- 규칙 완화
- 설계할 때 “해선 안 되는 것”
- 대칭 추구
4장 조합
요구사항 변경
- 변경에 대한 분노
- 핵심 설계 원칙
조합형 설계
- 코어 유스케이스
- 아키텍트의 미션
기능은 따로 없다
변경 사항에 대처하기
- 변경 사항 가두기
5장 시스템 설계 사례
시스템 개요
- 레거시 시스템
- 새로운 시스템
- 회사
- 유스케이스
반설계 노력
- 모놀리스
- 과립형 구성 요소
- 도메인 분해
비즈니스와 일치
- 비전
- 비즈니스 목표
- 사명
아키텍처
- TradeMe 용어집
- TradeMe의 변동성 영역
- 정적 아키텍처
- 운영 방식
- 워크플로 매니저
설계 검증
- 유스케이스: 기술자/계약자 추가
- 기술자 요청 유스케이스
- 기술자 매칭 유스케이스
- 기술자 할당 유스케이스
- 기술자 종료 유스케이스
- 기술자 결제 유스케이스
- 프로젝트 생성 유스케이스
- 프로젝트 종료 유스케이스
다음 단계는?
<2부 프로젝트 설계>
6장 동기부여
프로젝트 설계가 필요한 이유
- 프로젝트 설계와 프로젝트 상태
- 조립 설명서
- 욕구 단계
7장 프로젝트 설계 개요
성공의 기준
- 성공 보고하기
프로젝트 초기 인력 구성
- 아키텍트는 한 사람
- 코어 팀
노련한 결정
- 계획은 하나가 아닌 여러 개로
- 소프트웨어 개발 계획 검토
서비스와 개발자
- 설계와 팀 효율
- 작업 연속성
공수 추정
- 전형적인 실수들
- 추정 기법
- 전체 프로젝트 추정
- 활동 추정
크리티컬 패스 분석
- 프로젝트 네트워크
- 크리티컬 패스
- 리소스 할당
활동 스케줄링
- 인력 투입 분포
프로젝트 비용
- 프로젝트 효율
획득 가치 계획
- 대표적인 실수
- 완만한 S 커브
역할과 책임
8장 네트워크와 플로트
네트워크 다이어그램
- 노드 다이어그램
- 애로우 다이어그램
- 애로우 다이어그램 VS 노드 다이어그램
플로트
- 토탈 플로트
- 프리 플로트
- 플로트 계산
- 플로트 시각화
플로트 기반 스케줄링
- 플로트와 리스크
9장 시간과 비용
소프트웨어 프로젝트 진행 속도 높이기
스케줄 압축
- 리소스 보강
- 병렬 작업
- 병렬 작업과 비용
시간-비용 곡선
- 시간-비용 곡선 상의 점
- 이산 모델링
- 흔히 저지르는 실수 피하기
- 프로젝트 타당성
- 정규 솔루션 찾기
프로젝트 비용 요소
- 직접 비용
- 간접 비용
- 비용과 가치
- 총비용, 직접 비용, 간접 비용
- 압축과 비용 원소
- 인력 투입과 비용 요소
- 고정 비용
네트워크 압축
- 압축 흐름
10장 위험
옵션 선택
시간-위험 곡선
- 실제 시간-위험 곡선
위험 모델링
- 위험 정규화
- 위험과 플로트
- 위험과 직접 비용
- 중요도 위험
- 피보나치 위험
- 활동 위험
- 중요도 vs 활동 위험
압축과 위험
- 실행 위험
위험 압축 해제
- 압축 해제 방법
- 압축 해제 타깃
위험 메트릭
11장 실전 프로젝트 설계
미션
- 정적 아키텍처
- 콜 체인
- 활동 목록
- 네트워크 다이어그램
- 계획 가정
정규 솔루션 찾기
- 무제한 리소스 (첫 번째 반복)
- 네트워크와 리소스 문제
- 인프라스트럭처 우선 (두 번째 반복)
- 제한된 리소스
- 서브크리티컬한 상태에 빠지기 (일곱 번째 반복)
- 정규 솔루션 선택하기
네트워크 압축
- 더 나은 리소스로 압축하기
- 병렬 작업 도입하기
- 압축 반복의 끝
- 처리량 분석
효율 분석
시간 - 비용 곡선
- 시간-비용 상관관계 모델
- 죽음의 영역
계획과 위험
- 위험 압축 해제
- 시간-비용 곡선 다시 만들기
- 위험 모델링
- 위험 포함과 배제
SDP 리뷰
- 옵션 제시
12장 고급 테크닉
신의 활동
- 신의 활동 처리하기
위험 교차 지점
- 교차 지점 도출하기
압축 해제 대상 찾기
기하 위험
- 기하 중요도 위험
- 기하 피보나치 위험
- 기하 활동 위험
- 기하 위험 동작
실행 복잡도
- 순환 복잡도
- 프로젝트 타입과 복잡도
- 압축과 복잡도
대규모 프로젝트
- 복잡계와 취약성
- 네트워크의 네트워크
- 네트워크의 네트워크 설계하기
소규모 프로젝트
계층 기반 설계
- 장점과 단점
- 계층과 구성
13장 프로젝트 설계 예제
추정
- 개별 활동 추정
- 전체 프로젝트 추정
의존성과 프로젝트 네트워크
- 동작 의존성
- 동작이 아닌 의존성
- 몇 가지 의존성 뒤집기
- 확인 절차
정규 솔루션
- 네트워크 다이어그램
- 예정된 진행
- 예정 인력 분포
- 비용과 효율
- 결과 요약
압축 솔루션
- 적합한 활동 추가하기
- 리소스 할당
- 예정 진행
- 예정 인력 분포
- 비용과 효율
- 결과 요약
계층형 설계
- 계층형 설계와 위험
- 인력 분포
- 결과 요약
서브크리티컬 솔루션
- 기간, 예정 진행, 위험
- 비용과 효율
- 결과 요약
대안 비교하기
계획과 위험
- 위험 압축 해제
- 비용 다시 계산하기
SDP 리뷰 준비하기
14장 결론
프로젝트 설계 시점
- 진짜 답변
- 앞서 나가기
일반적인 가이드라인
- 아키텍처 vs 추정
- 설계 자세
- 대안
- 압축
- 계획과 위험
프로젝트 설계에 대한 설계
관점
- 서브시스템과 타임라인
핸드오프
- 주니어 핸드오프
- 시니어 핸드오프
- 시니어 개발자를 주니어 아키텍트로
실전
프로젝트 설계 보고
품질에 대하여
- 품질 관리 활동
- 품질 보장 활동
- 품질과 문화
<부록>
<부록A> 프로젝트 추적
활동 생명 주기와 상태
- 단계 종료 기준
- 단계 가중치
- 활동 상태
프로젝트 상태
- 진행 상태와 획득 가치
- 누적 공수
- 누적 간접 비용
진행 상태와 공수 추적
투영
투영과 교정 조치
- 순조롭게 진행 중
- 과소 예측
- 리소스 누수
- 과대 예측
그 밖의 다른 고려 사항
- 프로젝트의 정수
- 조금씩 범위가 달라지는 것 처리하기
- 신뢰 구축
<부록B> 서비스 계약 설계
이것이 바람직한 설계인가?
모듈화와 비용
- 서비스별 비용
- 통합 비용
- 최소 비용 영역
서비스와 계약
- 계약과 측면
- 서비스 설계부터 계약 설계까지
- 좋은 계약의 속성
계약 팩터링
- 설계 예제
- 하향 팩터링
- 수평 팩터링
- 상향 팩터링
계약 설계 지표
- 계약 측정하기
- 크기 지표
- 속성 피하기
- 계약 수 제한하기
- 지표 활용하기
계약 설계의 어려움
<부록C> 설계 표준
핵심 준수 사항
준수 사항
시스템 설계 권장 사항
프로젝트 설계 권장 사항
프로젝트 추적 권장 사항
서비스 계약 설계 권장 사항