티스토리 뷰

ooad

UML Structural Diagrams

dictee 2019. 5. 4. 23:49

※ tutorialspoint의 OOAD 요약 (https://www.tutorialspoints.com/object_oriented_analysis_design/)

1. Class Diagram

static view. class, interface, collaboration과 relationship으로 구성.

Class Diagram of a System

은행 시스템.

많은 지점이 존재. 각 zone에서 1개 지점은 zone을 관리하는 head office로 지정. 각 지점은 여러 개의 account, loan이 존재. 

account는 saving / current 타입 존재. 고객은 2가지 account 개설 가능. 고객별로 1개씩의 saving / current account만 가능. 고객은 loan 가능. 

Classes in the system

Bank, Branch, Account, Savings Account, Current Account, Loan, Customer.

Relationships

  • A Bank “has–a” number of Branches: composition, one–to–many

  • A Branch with role Zonal Head Office supervises other Branches: unary association, one–to-many

  • A Branch “has–a” number of accounts: aggregation, one–to–many

Account clss로부터 Savings_Account, Current_Account class는 상속받음.

  • A Customer can have one Current Account: association, one–to–one

  • A Customer can have one Savings Account: association, one–to–one

  • A Branch “has–a” number of Loans: aggregation, one–to–many

  • A Customer can take many loans: association, one–to–many

2. Object Diagram

특정 시점의 object 그룹과 그것들의 link를 표현. class diagram에서 things들의 instance 표현. interaction diagram의 static part.

 

Example: 은행 시스템의 object diagram

3. Component Diagram

component group 간의 organization / dependency 표현.

diagram 구성 요소,

  • Components
  • Interfaces
  • Relationships
  • Packages and Subsystems (optional)

diagram 사용 목적,

  • forward / reverse engineering 통한 시스템 구성

  • object-oriented 프로그래밍 언어를 이용한 시스템 개발 중 source code file 설정 관리 모델링

  • DB schema 표현

  • dynamic 시스템의 behavior 모델링

Example: 다음 그림은 C++ 소스 코드에 대한 component diagram. 4개 file로 구성. myheader.h는 2가지 버전 표시하여 최신 버전과 이전 버전 추적. priority.cpp는 other.cpp에 대한 compile dependency 가짐. other.cpp는 otherheader.h에 대한 compile dependency 가짐.

4. Deployment Diagram

runtime processing node, noded에 상주하는 component 설정. node, node간의 dependency, association으로 구성.

사용 용도는,

  • 소프트웨어 집약적인 하드웨어로 구성된 임베디드 시스템

  • client-server 시스템 구성

  • 분산 시스템

Example

client-server 아키텍처 표현. 서버를 processor들로 구성된 node로 표현. 4개 이상의 서버가 배포되어 있음. 서버에 연결된 client node는 workstation, laptop, scanner, printer와 같은 terminal device를 표현. node는 실세계와 동등한 icon으로 표현.

댓글