[객체지향개발론] 05 SSD and Domain Model(1)
Elaboration
의 첫번째 iteration 이 끝나고 나면
- 대부분의 요구사항이 발견, 안정화된다.
- 주요 리스크가 완화되거나 폐기된다.
- 핵심 아키텍처 요소가 구현되고, 입증된다.
각각의 Iteration 은 timeboxed 하다.
각 iteration 이 끝나면, 안정적으로 테스트된 생산 품질의 시스템이 출시되어야 한다.
Elaboration 단계에서 중요한 것
- wide & shallow 한 design, implementation 을 채택한다.
- 기존 구성요소를 통합한다.
다음 iteration 계획
- Risk : 복잡성, 불확실성과 같은 요소를 모두 포함.
- Coverage : 모든 주요 부분이 최소 단계에서 언급된다는 의미 = wide&shallow
- Criticality : high business value
Artifacts
System Sequence Diagram
: use case 의 특정 시나리오에 대한 시스템 동작을 capture 한것.
→ system 을 Black-box 로 취급할 수 있다.
- system - system 경계를 넘나드는 이벤트를 강조한다.
- use case 의 main success scenario, alternative 에 대해 수행해야 한다.
System behavior
: system 이 무엇을하는지 설명한다. (어떻게 하는지 설명은 X)
System event (stimulus)
: 외부 actor 에 의해 생성된 외부의 이벤트
- intent 의 가장 높은 수준으로 표현되어야 한다.
- verb 로 시작한다.
System operation (response)
: system event 에 의해 실행되는 시스템 operation
- UML class icon 의 한 부분으로 표현됨
class Icon
How To Make SSD
- 시스템 boundary 를 나타낸다.
- 각 actor 를 그린다.
- main success scenario 에 대해 발생하는 system event 를 그린다.
- 선택적으로 왼쪽에 use case 를 달아준다.
Domain Model ☀️
: problems domain 에서 클래스를 시각적으로 표현한 것.
- OO analysis 중 해야할 가장 중요한 artifact
- conceptual models, domain object models, anlysis object models 로도 불린다.
- 현실에 대한 설명이지, 디자인에 대한 설명이 아님.
by class diagram..
- domain object / conceptual classes
- relation : class 간의 관계.
- attribute of class
Analysis vs. Design
- object analysis : 실제 세계에 있는 것을 domain model 에 mapping 하는 것
- design : domain model 을 모델 청사진에 mapping 하는 것.
📌Conceptual Classes
주변의 것들을 구분하기 위해 적용하는 idea, notion 이다.
다음 관점에서 고려될 수 있다.
- Symbol : 이름이 있어야함
- Intention : 정의를 내릴 수 있어야함 (설명)
- Extension : 실체가 존재해야 함. → instance 존재
attribute 와 conceptual class 사이에서 의심된다면, 우선은 conceptual class 로 분류한다.
How to Identify Conceptual Classes
아래 두가지 방법을 사용해 candidate conceputal class 를 뽑아낸다.
conceptual class category list
noun phrases
Q. receipt 을 object 로 model 에 포함할 것인가?
A.
(1) 제외한다 : 왜냐하면 영수증의 정보는 다른 소스에서 파생되기 때문이다.
(2) 포함한다 : 영수증은 반품할 때 특별한 역할(반품할 권리)을 하기 때문이다.
→ 해당 iteration 에는 'Handle Returns'에 대해 고려하지 않으므로 제외한다. (추후에 추가될 수도 있다.)
How to Make a Domain Model?
- Conceptual Class Category List / noun phrase identification 방법을 이용해 candidate conceptual class 들을 나열한다.
- domain model 로 그린다.
- association 을 추가한다. (다음장에 설명)
- attribute 를 추가한다. (다음장에 설명)
'* CS > 객체지향개발론' 카테고리의 다른 글
[객체지향개발론] 07 Sequence Diagram (0) | 2023.08.08 |
---|---|
[객체지향개발론] 06 Domain Model(2) and Class Diagram (0) | 2023.08.06 |
[객체지향개발론] 04 Use Case (0) | 2023.08.04 |
[객체지향개발론] UML (0) | 2023.08.02 |
[객체지향개발론] Fundamental Concepts of OO (0) | 2023.07.30 |