6장-객체 지도
- 객체지향은 안정적인 구조를 기반으로 시스템을 구조화한다.
- 안정적인 객체 구조는 변경을 수용할 수 있는 유용한 소프트웨어를 만들 수 있는 기반을 제공한다.
도메인 모델
구조를 수집하고 표현하기 위한 기법을 도메인 모델링이라고 한다.
- 프로그램을 사용하는 대상 분야를 도메인이라고 한다.
- 모델이란 대상을 추상화하고 단순화하여 필요한 지식만 재구성한 것이다.
- 도메인 모델이란 사용사가 프로그램을 사용하는 대상 영역에 관한 지식을 선택적으로 단순화하고 의식적으로 구조화한 형태이다.
- 도메인 모델은 사람들의 머릿속에서 공유된 멘탈 모델이다.
유스케이스
사용자의 목표를 달성하기 위해 사용자와 시스템 간에 이뤄지는 상호작용의 흐림을 텍스트로 정리한 것을 유스케이스라고 한다.
- 목표를 중심으로 기능적인 요구사항들을 이야기 형식으로 묶을 수 있다는 장점이 있다.
- 유스케이스는 텍스트로 다이어그램이 아니다.
- 유스케이스는 사용자의 목표와 관련된 모든 시나리오의 집합이다.
- 유스케이스는 사용자의 관점에서 시스템의 행위에 초점을 맞춘다.
- 유스케이스는 내부 설계와 관련된 정보를 포함하지 않는다.
- 책임-주도 설계는 유스케이스로부터 사용자의 목표를, 도메인 모델로부터 안정적인 구조를 제공받아 객체들의 협력 공동체를 창조한다.
- 모델에서 코드로의 매끄러운 프름을 연결완전성, 반대 흐름을 가역성이라고 한다.
7장-함께 모으기
개념 관점
사용자가 도메인을 바라보는 관점을 반영하여 실제 도메인 규칙을 최대한 유사하게 반영한다.
- 클래스가 보인다.
- 소프트웨어 클래스와 도메인 클래스 사이의 간격이 좁으면 좁을 수록 좋다.
명세 관점
객체가 협력을 위해 무엇을 할 수 있는가에 초점을 맞춘다.
- 인터페이스가 보인다.
- 수신한 메시지가 인터페이스를 결정한다.
- 인터페이스는 수정하기 어려우므로 최대한 구현과 관련된 세부사항이 드러나지 않게 해야한다.
구현 관점
객체들이 책임을 어떻게 수행할 것인가에 초점을 맞춘다.