-
[OOP/UML] UMLLearn/OOP&UML 2022. 8. 9. 00:06
OMG라는 회사에서 만든 Unified Modeling Language
# MOF (Meta Object Facility)
- Layer M3: Meta-meta model layer (The MOF model)
- Layer M2: Meta model layer (The UML meta model)
- Layer M1: Model layer (The UML model)
- Layer M0: Information layer (the Application)
--> 보통 M1에서 모델링, M0에서 구현
# UML Diagrams
보통 2.0을 많이 씀.
(Profile Diagram은 2.2에서 추가됨.)
Structure / Behavior / Interaction Diagram은 실제 다이어그램이 아니라 아래 있는것들이 실제 구현된 것.
Class / Use Case / Sequence Diagram을 많이 씀.
1. Use Case Diagram
- actor들이 어떻게 시스템을 사용하는지 그려놓은 다이어그램
- 그림보단 Description이 더 중요함
2. Class Diagram
- 어떤 attribute를 가지고있고, 어떤 식으로 커뮤니케이션 하는지 표현
- 인스턴스가 몇개인지는 표현되지 않음. --> 필요하면 Object Diagram
3. Object Diagram
- 특정 시점의 인스턴스들을 표현
4. Package Diagram
- 클래스를 그룹으로 묶어서 표현
- 대문자는 클래스, 소문자는 오브젝트
5. Component Diagram
- 로지컬한 컴포넌트를 표현 (Physical은 아님)
6. Composite Structure Diagram
- 컴포넌트 다이어그램에 hierarchy가 추가된 것.
- 보통 컴포넌트 다이어그램이랑 묶어서 많이 그림.
7. Deployment Diagram
- 컴포넌트 다이어그램은 로지컬이라 실제로 돌아가는 오퍼레이터는 아님.
- 실제 하드웨어에 디플로이한 physical한 다이어그램 (PC, 서버 등..)
8. Sequence Diagram
- 오브젝트들끼리의 커뮤니케이션을 표현
- 시간 순서에 따라 표현 (위에서부터 아래로)
- 시스템이 복잡하면 왔다갔다가 많아져서 사이즈가 쉽게 늘어남 --> Communication Diagram이 보완
9. Communication Diagram
- Sequence Diagram과 비슷한데 크게 사이즈가 늘어나지 않음.
--> 선을 다 지우고 숫자 번호로 순서를 표기
- 사이즈가 커지지 않는 대신 숫자를 따라가며 읽는게 좀 복잡할 수 있음.
- 예시에서 1 -> 1.1 -> 2 순으로 실행
10. Timing Diagram
- 이름 그대로 타이밍을 보여주는 것. (시간을 보여주는건 아님)
11. Interaction Overview Diagram
- Activity Diagram 기반
- 전체 시나리오를 보기에 용이하고 유닛테스트 만들 때 많이 씀.
12. State (Statechart) Diagram
- Statechart라는 formal state language를 사용함.
- 시퀀스 / 클래스 다이어그램을 대신하는 목적으로도 쓸 수 있음.
- 시스템이 state기반으로 움직이는게 아니면 굳이 그릴 필요가 없음.
13. Activity Diagram
- Business Process를 표기할 때 사용. (일의 순서 표기)
- Control Flow Diagram과 유사함
- State Diagram은 state에서 다른 state로 넘어갈때만 일을 함.
--> Activty Diagram은 state에서 일을 함.
# QUIZ
1. 모델링 랭귀지이지. 개발방법론이 아님.
2. 정답. UML을 잘한다고 OOD를 잘 하는건 아님. UML은 Language임. C를 배워도 실제 개발은 다르듯. (..?)
3. 맞음
4. Sketch 레벨에서 사용할 수 있음. 공학 전공이면 대부분 이해함.
Class Diagram(static model) / Sequence Diagram(dynamic model) / Use Case Diagram(OOA model)
(Sequence Diagram대신 Communication Diagram도 가능)
'Learn > OOP&UML' 카테고리의 다른 글
[OOP/UML] Class Diagram (0) 2022.08.12 [OOP/UML] Use Case Diagram (0) 2022.08.10 [OOP/UML] Object-Oriented Development (0) 2022.08.08 [OOP/UML] Principles (0) 2022.08.06 [OOP/UML] Object Oriented (0) 2022.08.02