Object Oriented Programming

UML 간략 정리

PowerCoding 2022. 5. 7. 16:32

UML (United Modeling Language)

Usecase Diagram

  • 시스템과 상호작용하는 actor들과 그들의 기능들의 관계를 나타낸 다이어그램
  • 구성요소로는 Actor, Usecase, Relationship이 있다.
    • Actor는 Target System과 상호 작용하는 외부 개체. User, 외부 시스템, HW, Software Agent도 될 수 있음.
    • Usecase 는 Actor와 상호 작용하는 기능들
    • Relationship은 Actor와 Usecase의 연관 관계.
      • include : 어떤 usecase에 포함되어, 반드시 실행되는 usecase
      • generalization : 상속과 같은 개념. 여러 케이스 중 하나만 실행됨.
      • extended : optional 하게 선택적으로 실행되는 하위 usecase
  • usecase는 실행 순서를 보여 주지 않음

Class Diagram

  • 클래스와 그들의 연관관계를 나타낸 다이어그램
  • 구성요소로는 Class, Relationship, 그리고 cardinality가 있습니다.
    • Relationship종류로는 : dependency, association, shared aggregation, composition, genelization
    • cardinality는 class간의 비율을 의미

Interaction Diagram

Object가 메시지를 통해 어떻게 상호 작용하는지를 보여주는 다이어그램들

  • Sequence Diagram, Communication Diagram, Timing Diagram, Interaction Overview Diagram이 있다.

Sequence Diagram

  • Object와 Object간의 협력을 시간의 순서데로 나타낸 Diagram
  • 주요 구성 요소로는 Lifeline, lifelinebox, message가 있습니다.
    • Lifeline Box는 Lifeline의 최상단에 위치한, class, 특정 object 등을 표시
    • Lifeline은 class또는 ojbect의 생명 주기
    • message는 object간의 상호작용을 나타냄
      • Synchronous Message : 꽉찬 검은색 화살표로 나타내며, 응답을 기다리는 메시지.
      • Asynchronous Message : 일반 화살표로 나타내며, 응답을 기다리지 않는 메시지
      • Response Messsage : 점선의 화살표로 나타내며, Synchoronous Message의 응답 메시지.
  • Fragments : 조건이나 반복등의 기능을 나타냄
    • alt : switch 문과 유사
    • opt : else 없는 조건문
    • loop : 반복문
    • break : 반복문의 종료
  • 단점은 너무 길어지면 보기 힘들다는 것

Communication Diagram

  • Sequence와 동일하지만, Sequence Diagram의 단점인 너무 길어지면 보기 힘들다는 것을 보안하기 위해 순서를 Message에 적어둔 Diagram. 한장에 보기 편하지만 따라가기 어렵다는 단점이 있다.

Timing Diagram

  • Seqeunce 다이어그램에서 주어진 시간의 오브젝트들의 행동을 보여주는 Diagram

Interaction Overview Diagram

  • Activity Diagram과 유사. 내부에 frame으로 interfaction diagram을 포함할 수 있음.

Statechart Diagram

  • 모든 객체는 생성부터 삭제까지 유한 개의 상태를 지니며, 객체의 상태를 표현하기 위해 사용되는 Statechart Diagram.
  • 주요 구성요소로는 State와 Transition이 있습니다. State는 객체의 상태를 나타내고, Transition은 객체의 상태를 바꾸는 event를 의미합니다.
    • 객체의 State를 나타내는 3개의 operation, entry, do, exit가 있습니다.
      • entry : object가 state의 진입시 실행하는 activity
      • do : object가 state에 머무는 동안 실행하는 activity
      • exit : object가 Transition에 의해 종료될때 실행하는 activity
    • Transition은 어떤 State에서 다른 State로 바꾸는 event를 의미합니다.
      • Source State, Target State : 변경전 state와 변경 후 state를 의미
      • Event : Source State에서 Target State로 변경시키는 event.
      • Guard : 상태 변경에 대한 조건. true/false의 유무로 상태 변화의 유무 결정
      • Action : state 변경시 실행되는 Action
    • Source State에서 Event 발생시 Guard 조건을 만족하면 Action을 하고 Target State로 변경됩니다.
  • Statechate의 특징
    • Composite State (Or state) : nested state를 지원. State내부에 state가 있을 수 있음
    • Orthgonal State :(And State) : state 내부에서 병렬로 실행됨.
    • History State : 과거의 state로 복귀.
      • Shallow history : 같은 레벨의 composite State시작점에 시작
      • Deep history : 마지막 실행했던 state에서 다시 시작

Activity Diagram

  • Target System의 Control Flow를 보여주는 Diagram
  • 주요 구성 요소로는 시작 Initial Node, Final Node, Decision Node, Activity, Control Flow, Fork, Join Node, Timer, Partition, Event가 있습니다.
    • Initial Node / Final Node : 시작과 종료 Node 입니다.
    • Decision Node : 조건에 따른 분기점 Node 입니다.
    • Activity : 어떤 Action이나 Activity를 의미하는 Node
    • Control Flow : 실행 순서를 나타내는 화살표
    • Fork/Join Node : 병렬 실행, 즉 Multi Thread를 의미. Fork와 Join은 한쌍이여야 함.
    • Timer : 주기적인 실행
    • Partition : 공통 특성을 갖는 action 또는 object의 group으로 파티션
    • Event : Asynchronous Message를 송신/수신
  • Statechart Diagram과 다른점은 State는 event없이는 상태 전이가 될 수 없지만, Activity에서는 Acitivty 내의 활동이 모두 종료 되면, 바로 다음 activity를 실행한다는 점입니다.

Package Diagram

  • class의 group을 나타낸 Diagram
  • Package와 dependency로 구성됨

Component Diagram

  • UML component는 시스템을 관리 가능하고 재사용 가능하고 교체 가능한 SW로 구성한다.
  • 시스템을 관리 가능하고 재사용 가능하고 교체 가능한 SW로 구성된 component 를 보여주는 Diagram 입니다.
  • class보다 더 high level인 component 측면에서 component 간의 dependency를 보려고 할때
  • 주요 구성 요소는 Component와 Interface, Port가 있습니다.
    • Component는 같은 일을 하는 class의 집합
    • Component는 Interface를 통하여 상호 작용(interact)을 합니다.
      • Provided Interface : Component가 구현하는 interface. (Ouput으로) Ball Type으로 표시.
      • Required Interface : Component가 필요로 하는 기능. (Input)Socket Type으로 표시.
    • Port : Component의 유사한 I/O 집합. Component마다 Box로 표시

Deployment Diagram

  • Target System의 Component와 HW Node의 Physical Runtime View를 보여주는 Diagram
  • 실행될 HW 자원을 정의하고, SW 컴포넌트가 어떤 HW 자원에 탑재되어 실행될지 정의
  • 주요 구성요소는 Node와 Artifacts, Relationship이 있습니다.
    • Node는 직육면체로 표기하고, 하드웨어 자원이나 SW가 실행되는 환경 HW를 의미합니다.
    • Artifact는 소스 코드, 실행파일, 라이브러리 등의 SW 결과물입니다.
    • Relationship은 Node들의 상호 작용을 나타냅니다.

'Object Oriented Programming' 카테고리의 다른 글

Object Oriented Programming 간략 정리  (0) 2022.05.05