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로 변경됩니다.
- 객체의 State를 나타내는 3개의 operation, entry, do, exit가 있습니다.
- 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 |
---|