observe_db

[객체지향설계] 8. Verifying Models 본문

학교 공부/객체지향설계(3-1)

[객체지향설계] 8. Verifying Models

쩡윤 2023. 5. 19. 22:07

Introduction

Funtional model(기능 모델링)

  • 시스템이 어떻게 동작할 것인지 표현
  • Usecase Diagram, Activity Diagram

Structural model(구조 모델링)

  • 시스템에서 만들어지고 사용되는 객체 표현
  • Class Diagram, Object Digram, Package Diagram

Structural model is evolving over time

  • 분석(analysis)과정: 객체의 논리적 구조 시각화
  • 설계(design) 과정: 객체가 DB나 파일에서 어떻게 구성될지를 반영

Behavioral model(행위 모델링)

  • 객체의 내부 행동 표현
  • 객체간 상호작용 표현
  • Sequence Diagram, State machine diagram

 

Objectives

분석 모델 확인

모델간(기능-구조-행위) 정보가 흐트러지지 않았는지.

개발 생애주기간의 정보를 문서화

 

설계 과정 이전에는... 분석과 설계 자세히 살피기

 

Balancing Analysis Models

모델 밸런싱

현재 모델의 집합이 고려중인 문제 도메인을 공정하게 표현함을 보장하기 위해

모델간의 일관성을 보장

rule들로 확인하고 검증한다.

 

기능과 구조 모델 밸런싱

Activity 다이어그림, Usecase 다이어그램/기술서는 CRC카드, class 다이어그램에 동의해야한다.

4가지 관점

  1. Usecase 기술서 vs. CRC카드, 클래스
  2. Activity, Action vs. Class responsibility, class 동작
  3. Events vs. 관계, Aggregation 
  4. 객체 노드 vs. CRC 카드, 클래스, 객체

RULE

  1. 클래스 다이어그램의 모든 클래스와 모든 CRC 카드는 최소 한개의 usecase와 관계를 맺는다. 그리고 그 반대.(vice versa, 아마 usecase가 하나 이상의 클래스나 CRC와 관계됨)
  2. activity 다이어그램에 포함된 모든 activity나 action & usecase 기술서에 포함된 모든 이벤트는 한개 또는 그 이상의 responsibility를 CRC 카드와 가지며, 하나또는 그 이상의 클래스 다이어그램의 클래스의 operations과 관계를 가진다.(또한 그 반대도 성립)
  3. Activity 다이어그램의 모든 객체 노드는 클래스 다이어그램의 클래스의 인스턴스/CRC 카드, 또는 그에 속한 속성과 관계를 가져야함.
  4. CRC 카드에 포함된 모든 속성과 관계(associ. aggre.)는 usecase 기술서의 이벤트의 주체나 객체와 관계된다.

 

기능과 행위 모델 밸런싱

Activity 다이어그림, Usecase 다이어그램/기술서는 시퀸스 다이어그램, communication 다이어그램, 행위 상태 머신, CRUD 행렬에 동의해야한다.

4가지 관점

  1. usecase 기술서 vs. 시퀸스 다이어그램
  2. 액터 vs. 시퀸스/communication 다이어그램의 액터
  3. 이벤트, activity vs. 메시지, 전이
  4. 객체 노드 vs. 상태머신

RULE

  1. seq. comm. 다이어그램은 usecase다이어그램/기술서의 usecase와 관계를 가진다.
  2. seq./comm. 다이어그램의 액터는 usecase 다이어그램/기술서의 액터와 관계를 가진다.(반대도 성립)
  3. seq./comm. 다이어그램의 메시지와 상태머신의 전이는 관계를 가진다. activity 다이어그램의 activity/action 및 use-case 기술서에 나열된 이벤트와.(반대도 성립)
  4. activity 다이어그램의 객체 노드로 표현되는 모든 복합 객체는 객체의 생애주기를 표현하는 행위 상태 머신을 가진다.(반대도 성립)

구조와 행위 모델 밸런싱

  1. 상태 머신은 (클래스 다이어그램의 클래스의)instance들(객체)와 (인스턴스의 클래스를 표현하는)CRC 카드와 관계를 맺어야만한다.
  2. Communication/Sequence 다이어그램은 객체를 포함한다.
  3. Communication/Sequence 다이어그램에 포함된 메시지, 상태머신의 전이는 책임(responsibility) 관계를 가지고, CRC 카드와 클래스의 작업과 관계를 가지고, 클래스 다이어그램의 클래스와 연결된 관계를 가진다.
  4. 상태 머신의 상태는 객체에 대해 서술하는 속성(또는 그 집합.)의 다른 값들과 관계를 맺어야만한다.
Comments