자주 변경되는 기능이 아니라 안정적인 구조를 따라 역할, 책임, 협력을 구성하라.
기능 설계 대 구조 설계
- 기능 측면의 설계는 제품이 사용자를 위해 무엇을 할 수 있는지에 초점을 맞춤.
- 구조 측면의 설계는 제품의 형태가 어떠해야 하는지에 초점을 맞춘다.
- 설계의 가장 큰 도전은 기능과 구조라는 두 가지 측면을 함께 녹여 조화를 이루도록 만드는 것.
- 자주 변경되지 않는 안정적인 객체 구조를 바탕으로 객체의 구조에 집중하고, 기능이 객체의 구조를 따르게 만든다.
- 기능이 변경되더라도 객체 간의 구조는 그대로 유지되어야 함.
두 가지 재료 : 기능과 구조
-
사용자에게 제공할 기능과 기능을 담을 안정적인 구조가 준비돼 있어야 함.
- 기능 : 유저가 자신의 목표를 달성하기 위해 사용할 수 있는 시스템의 서비스
- 구조 : 기능을 구현하기 위한 기반
- 구조는 기능 변경을 수용할 수 있도록 안정적이어야 함.
<aside>
👉
구조는 도메인에 관해 생각하는 개념과 개념들 간의 관계
기능은 유저를 만족시키기 위해 책임을 수행하는 행위
</aside>
-
기능을 수집하고 표현하기 위한 기법은 유스케이스 모델링이라 부름.
-
구조를 수집하고 표현하기 위한 기법은 도메인 모델링이라 부름.
안정적인 재료 : 구조
- 사용자가 프로그램을 사용하는 대상 분야를
도메인
이라 함.
도메인 모델
이란 유저가 사용하는 대상 영역에 관한 지식을 단순화하고 구조화한 형태
멘탈 모델
이란 자기 자신, 다른 사람, 환경 자신이 상호작용하는 사물들에 대해 갖는 모형임.
- 멘탈 모델은 사용자 모델, 디자인 모델, 시스템 이미지의 세 가지로 구분됨.
- 사용자 모델 : 유저가 제품에 대해 가지고 있는 개념들의 모습
- 디자인 모델 : 설계자(개발자)가 마음 속에 갖고 있는 시스템에 대한 개념화
- 시스템 이미지 : 최종 제품
- 도메인 모델은 소프트웨어에 대한 멘탈 모델임.
도메인 모델은 다이어그램이 아니다.
불안정한 재료 : 기능
유스케이스
- 사용자의 목표를 달성하기 위해 사용자와 시스템 간에 이뤄지는 상호작용의 흐름을 텍스트로 정리한 것.