[객체지향개발론] 05 SSD and Domain Model(1)

2023. 8. 5. 19:37

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

  1. 시스템 boundary 를 나타낸다.
  2. 각 actor 를 그린다.
  3. main success scenario 에 대해 발생하는 system event 를 그린다.
  4. 선택적으로 왼쪽에 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?

  1. Conceptual Class Category List / noun phrase identification 방법을 이용해 candidate conceptual class 들을 나열한다.
  2. domain model 로 그린다.
  3. association 을 추가한다. (다음장에 설명)
  4. attribute 를 추가한다. (다음장에 설명)

BELATED ARTICLES

more