객체지도

su dong·2023년 7월 2일
0
post-thumbnail

불안정한 기능이 아닌, 안정적인 구조에 기반한 설계를 해야한다.
-> 변경에 대한 파급효과 최소화

도메인 모델

사용자들이 생각하는 멘탈 모델을 도식화한 것.


유스케이스

개념: 사용자의 목표를 달성하기 위해 사용자와 시스템 간에 이뤄지는 상호작용의 흐름을 텍스트로 정리한 것
장점: 산발적으로 흩어져 있는 기능에 사용자 목표라는 문맥을 제공함으로써 각 기능이 유기적인 관계를 지닌 체계를 이루도록 도와줌 -> 요구사항을 기억하고 관리하는데 필요한 정신적 과부하를 덜어줌.

예시

유스케이스명 : 중도 해지 이자액을 계산한다
일차 액터 : 예금주
주요 성공 시나리오 :
1. 예금주가 정기예금 계좌를 선택한다.
2. 시스템은 정기예금 계좌 정보를 보여준다.
3. 예금주가 금일 기준으로 예금을 해지할 경우 지급받을 수 있는 이자 계산을 요청한다.
4. 시스템은 중도 해지 시 지급받을 수 있는 이자를 계산한 후 겨로가를 사용자에게 제공한다.
확장
3a. 사용자는 해지 일자를 다른 일자로 입력할 수 있다.

유스케이스 = 하나의 시나리오가 아닌 여러 시나리오의 집합
유스케이스 인스턴스 = 시나리오

이자 계산 유스케이스 = 예금주가 계좌를 선택하고 당일까지의 이자액을 계산하는 시나리오 + 예금주가 계좌를 선택하고 특정 일자까지의 이자액을 계산하는 시나리오

유스케이스는 자주 변경되는 사용자 인터페이스 요소는 배제하고 사용자 관점에서 시스템의 행위에 초점을 맞춘다.

내부 설계와 관련된 요소를 포함하지 않는다.

유스케이스는 시스템의 내부 구조나 실행 메커니즘에 관한 어떤 정보도 제공하지 않는다. 유스케이스에는 단지 사용자가 시스템을 통해 무엇을 얻을 수 있고 어떻게 상호작용할 수 있느냐에 대한 정보만 기술된다.

객체지향과는 상관이 없다.

유스케이스 안에는 약간의 도메인 관련 영감을 불러일으킬 힌트만 있다.

유스케이스 관련 추천 서적, 자료
앨리스터 코오번의 유스케이스(2000)
structuring use cases with goals(1997)


재료 합치기 : 기능과 구조의 통합

객체설계는 가끔 다음과 같이 표현된다.
시스템의 기능(요구사항)들을 식별( -> 유스케이스를 활용해 시스템의 기능을 시스템의 책임으로 변환)하고 도메인 모델을 생성(도메인 모델을 통해 안정적인 구조 파악)한 후, (도메인 객체들의 협력에 대해서 생각해서)소프트웨어 클래스에 메서드들을 추가하고, 요구사항을 충족시키기 위해 객체들 간의 메시지 전송을 정의하라.

profile
사람들을 돕는 문제 해결사, 개발자 sudong입니다. 반갑습니다. tkddlsqkr21@gmail.com

0개의 댓글