9. Unified Modelling Language
Learning Goals
- UML (Unified Modeling Language)์ด ๋ฌด์์ธ์ง, ์ ํ์ํ์ง ์ดํด
- ๊ธฐ๋ณธ UML notation(ํ๊ธฐ๋ฒ)์ ์ฌ์ฉํ์ฌ design(์ค๊ณ)์ ์ ๋ฌ
- ๋ค์ํ ์ ํ์ UML diagram(๋ค์ด์ด๊ทธ๋จ)์ ํ๊ธฐ๋ฒ๊ณผ ๋ชฉ์ ์ดํด
What Could the Arrow Mean? (Revisited)
- ๋ง์ ๊ฐ๋ฅ์ฑ ์กด์ฌ
- A๊ฐ B๋ก control(์ ์ด)์ ์ ๋ฌ
- A๊ฐ B๋ก data(๋ฐ์ดํฐ)๋ฅผ ์ ๋ฌ
- A๊ฐ B๋ก๋ถํฐ value(๊ฐ)์ ๊ฐ์ ธ์ด
- A๊ฐ B๋ก ๋ฐ์ดํฐ๋ฅผ stream(์คํธ๋ฆผ)
- A๊ฐ B๋ก message(๋ฉ์์ง)๋ฅผ ์ ์ก
- A๊ฐ B๋ฅผ create(์์ฑ)
- A๊ฐ B๋ณด๋ค ๋จผ์ ๋ฐ์
- B๊ฐ A๋ก๋ถํฐ ์ ๊ธฐ๋ฅผ ๊ณต๊ธ๋ฐ์.
What is UML?
- Unified Modeling Language (ํตํฉ ๋ชจ๋ธ๋ง ์ธ์ด)
- Specifying(๋ช ์ธํ), constructing(๊ตฌ์ถ), documenting(๋ฌธ์ํ)๋ฅผ ์ํ visual language(์๊ฐ์ ์ธ์ด)
- OMG (Object Management Group)์ ์ํด ์ ์ง ๊ด๋ฆฌ
- ์น์ฌ์ดํธ: http://www.omg.org
- Object-oriented(๊ฐ์ฒด ์งํฅ)
- Model(๋ชจ๋ธ) / view(๋ทฐ) ํจ๋ฌ๋ค์
- Target language(๋์ ์ธ์ด) ๋ ๋ฆฝ์
Model/View Paradigm
- ๊ฐ diagram์ system(์์คํ ) ์ผ๋ถ์ ๋ํ view์ ๋ถ๊ณผ
- ๋ชจ๋ diagram์ด ํจ๊ป ๋ชจ์ฌ ์์ ํ ๊ทธ๋ฆผ์ ์ ๊ณต
Underlying System Model
- UML diagram ์ ํ์ Classification(๋ถ๋ฅ)
Favorite UML diagram types
- widely used(๋๋ฆฌ ์ฌ์ฉ๋จ): ์ถ์ฒ์ 60% ์ด์
- Scarcely used(๊ฑฐ์ ์ฌ์ฉ๋์ง ์์): ์ถ์ฒ์ 40% ์ดํ
- (์ฐธ๊ณ : Riggo et al., What are the used UML diagrams? A Preliminary Survey, EESSMod, 2013)
UML
- UML์ ์ ์ฉ(์ฌ์ฉ)ํ๋ 3๊ฐ์ง ๋ฐฉ๋ฒ
- Sketch(์ค์ผ์น)
- Conceptual perspective(๊ฐ๋ ์ ๊ด์ )
- Problem ๋๋ solution space์ ์ด๋ ค์ด ๋ถ๋ถ์ ํ์ํ๊ธฐ ์ํด ๋น๊ณต์์ ์ด๊ณ ๋ถ์์ ํ diagram ์์ฑ โ ์ํธ ์ํต ๋งค์ฒด
- Blueprint(์ฒญ์ฌ์ง)
- Specification perspective(๋ช ์ธ ๊ด์ )
- Code generation(์ฝ๋ ์์ฑ)์ ์ํด ๋น๊ต์ ์์ธํ design diagram ์ฌ์ฉ
- Programming language(ํ๋ก๊ทธ๋๋ฐ ์ธ์ด)
- Implementation perspective(๊ตฌํ ๊ด์ )
- UML๋ก ์ํํธ์จ์ด system์ ์์ ํ executable specification(์คํ ๊ฐ๋ฅ ๋ช ์ธ) ์์ฑ
- ์คํ ๊ฐ๋ฅํ ์ฝ๋๊ฐ ์๋์ผ๋ก ์์ฑ
- ์ด๋ก , ๋๊ตฌ robustness(๊ฒฌ๊ณ ์ฑ), usability(์ฌ์ฉ์ฑ) ์ธก๋ฉด์์ ์ฌ์ ํ ๊ฐ๋ฐ ์ค
What the UML is Not?
- UML์ Object-Oriented ๋ถ์ ๋ฐ design process(ํ๋ก์ธ์ค)๊ฐ ์๋.
- UML์ ์ํํธ์จ์ด system์ ๊ฐ๋ฐํ๋ ์ฒด๊ณ์ ์ธ ๋ฐฉ๋ฒ์ด ์๋.
- UML์ Object-Oriented ์ฌ๊ณ ๋ฐฉ์์ ๊ฐ๋ฅด์ณ์ฃผ์ง ์์.
- ๊ฐ์ฒด structure(๊ตฌ์กฐ)๋ behavior(ํ์)๋ฅผ ์ด๋ป๊ฒ ์ค๊ณํด์ผ ํ๋์ง ์๋ ค์ฃผ์ง ์์.
- design์ด ์ข์์ง ๋์์ง ์๋ ค์ฃผ์ง ์์.
Use Case Diagrams
What is a Use Case?
- Use Case(์ ์ค์ผ์ด์ค): ์ฌ๋ ์ฌ์ฉ์, ๋ค๋ฅธ system, ํ๋์จ์ด ๊ตฌ์ฑ์์ ๋๋ ๋ด๋ถ ์๊ณ์ ์ํด system์ผ๋ก ์ ์ก๋ event(์ด๋ฒคํธ)์ ์ํด ์ด๋ฐ๋๋ behavior ๋๋ ์ผ๊ด๋ behavior ์งํฉ
Use Case Diagrams
- System์ด high-level(๋์ ์์ค)์์ ๋ฌด์(WHAT)์ ํ ๊ฒ์ธ์ง ๊ธฐ์
- (๋ค์ด์ด๊ทธ๋จ ๊ตฌ์ฑ ์์)
- Use Case
- Use Case Name (์ ์ค์ผ์ด์ค ์ด๋ฆ)
- Subject Name (์ฃผ์ฒด ์ด๋ฆ)
- Subject(์ฃผ์ฒด)
- System Boundary(์์คํ ๊ฒฝ๊ณ)
- Association(์ฐ๊ด)
- Dependency(์์กด)
- Actor(ํ์์)
Actor
- System๊ณผ ์ํธ์์ฉํด์ผ ํ๋ ๋๊ตฐ๊ฐ ๋๋ ๋ฌด์ธ๊ฐ
- ์ฌ์ฉ์, ์ธ๋ถ system, ์ฅ์น
An Actor is a Role
- Actor๋ ์ฌ์ฉ์๊ฐ system๊ณผ ์ํธ์์ฉํ ๋ ์ํํ๋ ๋จ์ผ role(์ญํ )์ ์ ์
- ์ฌ๋ฌ ์ฌ์ฉ์๊ฐ ๋จ์ผ role ์ํ ๊ฐ๋ฅ
- ๋จ์ผ ์ฌ์ฉ์๊ฐ ์ฌ๋ฌ role ์ํ ๊ฐ๋ฅ
Identifying Actors
- ์ ์ฉํ ์ง๋ฌธ๋ค
- ๋๊ฐ system์ ์ฃผ์ functionality(๊ธฐ๋ฅ)์ ์ฌ์ฉํ ๊ฒ์ธ๊ฐ (primary actors(์ฃผ์ ํ์์))?
- ๋๊ฐ ์ผ์ ์ ๋ฌด๋ฅผ ์ํด system์ ์ง์์ ํ์๋ก ํ๋๊ฐ?
- ๋๊ฐ system์ ์ ์ง๋ณด์, ๊ด๋ฆฌํ๊ณ ์๋ํ๋๋ก ์ ์งํด์ผ ํ๋๊ฐ (secondary actors(๋ณด์กฐ ํ์์))?
- System์ด ์ฒ๋ฆฌํด์ผ ํ hardware devices(ํ๋์จ์ด ์ฅ์น)๋ ๋ฌด์์ธ๊ฐ?
- System์ด ์ํธ์์ฉํด์ผ ํ ๋ค๋ฅธ system์ ๋ฌด์์ธ๊ฐ?
- ๋๊ฐ ๋๋ ๋ฌด์์ด system์ด ์์ฑํ๋ ๊ฒฐ๊ณผ(๊ฐ์น)์ ๊ด์ฌ์ด ์๋๊ฐ?
Use Case
- Actor์ Subject ๊ฐ์ transaction(ํธ๋์ญ์ )์ผ๋ก ํํ๋๋ ๊ธฐ๋ฅ ๋จ์
- ํ๋ ์ด์์ Actor์ system ๊ฐ์ ์ํธ์์ฉ
- Use case ์๋ณํ๊ธฐ
- Actor๊ฐ system์ ์๊ตฌํ๋ function(๊ธฐ๋ฅ)์ ๋ฌด์์ธ๊ฐ?
- Actor๊ฐ system์ ํน์ ์ ๋ณด๋ฅผ ์ฝ๊ธฐ, ์์ฑ, ์ญ์ , ์์ ๋๋ ์ ์ฅํด์ผ ํ๋๊ฐ?
- Actor๊ฐ system์ event์ ๋ํด notify(์๋ฆผ)์ ๋ฐ์์ผ ํ๋๊ฐ?
- System์ ์๋ก์ด ๊ธฐ๋ฅ์ ํตํด Actor์ ์ผ์ ์ ๋ฌด๊ฐ ๋จ์ํ๋๊ฑฐ๋ ํจ์จํ๋ ์ ์๋๊ฐ?
An Example of Use Case Text
- Buy a Product (์ ํ ๊ตฌ๋งค)
- Main Success Scenario(์ฃผ ์ฑ๊ณต ์๋๋ฆฌ์ค):
- ๊ณ ๊ฐ์ด ์นดํ๋ก๊ทธ๋ฅผ ํ์ํ๊ณ ๊ตฌ๋งคํ ์์ดํ ์ ํ
- ๊ณ ๊ฐ์ด ๊ฒฐ์ ์งํ
- ๊ณ ๊ฐ์ด ๋ฐฐ์ก ์ ๋ณด ์ ๋ ฅ (์ฃผ์; ์ต์ผ ๋๋ 3์ผ ๋ฐฐ์ก)
- System์ด ๋ฐฐ์ก๋น ํฌํจ ์ ์ฒด ๊ฐ๊ฒฉ ์ ๋ณด ์ ์
- ๊ณ ๊ฐ์ด ์ ์ฉ์นด๋ ์ ๋ณด ์ ๋ ฅ
- System์ด ๊ตฌ๋งค ์น์ธ
- System์ด ์ฆ์ ํ๋งค ํ์ธ
- System์ด ๊ณ ๊ฐ์๊ฒ ํ์ธ ์ด๋ฉ์ผ ๋ฐ์ก
- Extensions(ํ์ฅ):
- 3a: ๊ณ ๊ฐ์ด regular customer(๋จ๊ณจ ๊ณ ๊ฐ)์ธ ๊ฒฝ์ฐ
- .1: system์ด ํ์ฌ ๋ฐฐ์ก, ๊ฐ๊ฒฉ, ์ฒญ๊ตฌ ์ ๋ณด ํ์
- .2: ๊ณ ๊ฐ์ด ์ด default(๊ธฐ๋ณธ๊ฐ)์ ์๋ฝํ๊ฑฐ๋ ๋ณ๊ฒฝ ๊ฐ๋ฅ, MSS 6๋จ๊ณ๋ก ๋ณต๊ท
- 6a: system์ด ์ ์ฉ์นด๋ ๊ตฌ๋งค ์น์ธ ์คํจ
- .1: ๊ณ ๊ฐ์ด ์ ์ฉ์นด๋ ์ ๋ณด๋ฅผ ๋ค์ ์ ๋ ฅํ๊ฑฐ๋ ์ทจ์ ๊ฐ๋ฅ
- 3a: ๊ณ ๊ฐ์ด regular customer(๋จ๊ณจ ๊ณ ๊ฐ)์ธ ๊ฒฝ์ฐ
Subject Symbol
- System Boundary ํ์
- Use Case์ ์ํด ์ ์๋ behavior๋ฅผ realize(์คํ)ํ๋ Classifier(๋ถ๋ฅ์)
Association
- Actor์ system ๊ฐ์ bi-directional ํต์ ํํ
- Actor์ Use Case ์ฌ์ด์ ๊ทธ๋ ค์ง
- ํ์ดํ ์์ด, ์ ์ผ๋ก ํํ
DependencyโInclude
- Base Use Case์์ inclusion Use Case๋ก์ ๊ด๊ณ ํํ
- Use Case๊ฐ ๋ค๋ฅธ Use Case๋ฅผ call(ํธ์ถ)ํจ์ ์์
- ์ฃผ๋ก ์ฌ๋ฌ Use Case์ ๊ณตํต์ ์ธ behavior๋ฅผ reuseํ๊ธฐ ์ํด ์ฌ์ฉ๋จ.
DependencyโExtend
- ์ผ๋ถ ์ถ๊ฐ์ ์ธ behavior๊ฐ ๋ํด์ ธ์ผ ํ ๋ ์ฌ์ฉ
- Optional(์ ํ์ ) ๋๋ conditional(์กฐ๊ฑด๋ถ) behavior๋ฅผ ๋ชจ๋ธ๋ง
- Infrequent events(๋๋ฌธ ์ด๋ฒคํธ) ํ์
Tips for Use Case Modeling
- ๊ฐ Use Case๊ฐ domain experts(๋๋ฉ์ธ ์ ๋ฌธ๊ฐ)์ ํ๋ก๊ทธ๋๋จธ ๋ชจ๋ ์ดํดํ ์ ์๋ system ์ฌ์ฉ์ ์ค์ํ chunk(๋ถ๋ถ)์ ์ค๋ช ํ๋๋ก ๋ณด์ฅ
- Use Case๋ฅผ ํ ์คํธ๋ก ์ ์ํ ๋, noun(๋ช ์ฌ)๊ณผ verb(๋์ฌ)๋ฅผ ์ ํํ๊ณ ์ผ๊ด๋๊ฒ ์ฌ์ฉํ์ฌ interaction diagrams์ ์ํ objects์ message ๋์ถ์ ๋์
- ์ฌ๋ฌ Use Case์ ํ์ํ ๊ณตํต usage(์ฌ์ฉ)์ Factor out(๋ถ๋ฆฌ)
- usage์ด required(ํ์์ )์ด๋ฉด ์ฌ์ฉ
- Base Use Case๊ฐ ์์ ํ๊ณ usage์ด optional์ผ ์ ์๋ค๋ฉด ์ฌ์ฉ ๊ณ ๋ ค
- Use Case diagram์
- ๋์ผํ level of abstraction(์ถ์ํ ์์ค)์ Use Case๋ง ํฌํจํด์ผ ํจ
- ํ์ํ Actor๋ง ํฌํจํด์ผ ํจ
- ๋ง์ ์์ Use Case๋ packages(ํจํค์ง)๋ก ๊ตฌ์ฑํด์ผ ํจ
Class Diagrams
Class Diagrams
- Description of static structure
- Showing the types of objects ...
- (๋ค์ด์ด๊ทธ๋จ ๊ตฌ์ฑ ์์)
- Class Name(ํด๋์ค ์ด๋ฆ)
- Class Attributes(ํด๋์ค ์์ฑ)
- Class Operations(ํด๋์ค ์คํผ๋ ์ด์ )
- Association
- Multiplicity(๋ค์ค์ฑ)
- Generalization(์ผ๋ฐํ)
- Guard(๊ฐ๋)
- "..."๋ ์์๊ฐ ๋ ์์ ์ ์์์ ์๋ฏธ
- ๊ณต๋ฐฑ์ "์ ์ ์์" ๋๋ "๋ฉค๋ฒ ์์"์ ์๋ฏธ
- Static structure(์ ์ ๊ตฌ์กฐ)์ ๋ํ ์ค๋ช
- System ๋ด object์ type(์ ํ)๊ณผ ๊ทธ๋ค ๊ฐ์ relationship(๊ด๊ณ) ํ์

Classes
- ์ฌ๊ฐํ ์ธ ๊ฐ๋ฅผ ์์๋์ ํํ๋ก ํํ
- ๋ชจ๋ Object-Oriented system์ ๊ฐ์ฅ ์ค์ํ building block(๊ตฌ์ฑ ์์)
- Object set(์งํฉ)์ ๋ํ ์ค๋ช
- Entity์ ์ถ์ํ
- problem/solution ๋๋ฉ์ธ์ ์กด์ฌํจ

Attributes and Operations
- Attributes(์์ฑ)
- ๋ชจ๋ธ๋ง๋๋ ๋์์ property(์์ฑ)์ ํํ
- Syntax(๊ตฌ๋ฌธ): attributeName: Type
- Operations
- Class์ object๋ก๋ถํฐ ์์ฒญ๋ service(์๋น์ค)์ ๊ตฌํ
- Syntax: operationName(param1:type, param2:type, ...) : Result
Association and Multiplicity
- Association
- Class instance(์ธ์คํด์ค) ๊ฐ์ connection(์ฐ๊ฒฐ)์ ๋ช ์ํ๋ Class ๊ฐ์ relationship
- Association์ ์ด๋ฆ์ ์ฃผ๋ก ๋์ฌ๋ฅผ ์.
- Multiplicity
- ๋ค๋ฅธ Class์ ํ๋(ONE)์ instance์ ๊ด๋ จ๋ ํ Class์ instance ์
- ์: "ํ(Team)์ 0๋ช ์ด์์ ๋๊ตฌ ์ ์(Basketball Player)๋ฅผ ๊ณ ์ฉ(employ)ํ๋ค."
Aggregations and Compositions
- Aggregation(์งํฉ)
- Element ๊ฐ์ Weak(์ฝํ) "whole-part"(์ ์ฒด-๋ถ๋ถ) relationship
- ์: ๊ณตํญ(Airport)์ ๋ง์ ๋นํ๊ธฐ(Airplane)๋ฅผ ๊ฐ์ง.
- Composition(๋ณตํฉ)
- Element ๊ฐ์ Strong(๊ฐํ) "whole-part" relationship
- ์: ์ฐฝ๋ฌธ(Window)์ ์คํฌ๋กค๋ฐ(Scrollbar)๋ฅผ 'contains'.

Inheritance ์์
- Superclass์ subclasses ๊ฐ์ relationship
- Superclass์ ๋ชจ๋ Attributes์ Operations๋ subclasses์ ์ผ๋ถ๊ฐ ๋จ.

Tips for Class Modeling
- Class(ํด๋์ค) ์ฐพ๊ธฐ
- ์ ์ฅ๋๊ฑฐ๋ ๋ถ์๋์ด์ผ ํ data๊ฐ ์๋๊ฐ?
- External system(์ธ๋ถ ์์คํ )์ด ์๋๊ฐ?
- External system์ Class๋ก ๋ชจ๋ธ๋ง๋จ.
- pattern(ํจํด), class libraries(ํด๋์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ), component ๋ฑ์ด ์๋๊ฐ?
- System์ด ์ฒ๋ฆฌํด์ผ ํ device(์ฅ์น)๊ฐ ์๋๊ฐ?
- ๊ฐ๋ฅํ ๋๋ง๋ค ๋ช
์์ ์ธ traceability(์ถ์ ์ฑ) ํ๋ณด
- Use Case์ noun๋ก๋ถํฐ Class/Attributes๋ฅผ, verb๋ก๋ถํฐ Operations๋ฅผ ๋์ถํ๋ ค ๋ ธ๋ ฅ
- ํญ์ ์ด๋ค ํํ์ behavioral diagrams(ํ์ ๋ค์ด์ด๊ทธ๋จ)๊ณผ ํจ๊ป Class diagram ์์ฑ
Sequence Diagrams
Sequence Diagrams
- System ๋ด instance ๊ฐ์ message("interaction") sequence ํ์
- time ordering(์๊ฐ ์์) ๊ฐ์กฐ
- (๋ค์ด์ด๊ทธ๋จ ๊ตฌ์ฑ ์์)
- Lifeline(์๋ช ์ )
- Message name(๋ฉ์์ง ์ด๋ฆ)
- Messages line(๋ฉ์์ง ๋ผ์ธ)
- ReferenceFrame(์ฐธ์กฐ ํ๋ ์)
- Sequence DiagramName(์ํ์ค ๋ค์ด์ด๊ทธ๋จ ์ด๋ฆ)

Lifelines
- ์ผ์ ๊ธฐ๊ฐ ๋์ interaction์ ์ฐธ์ฌํ๋ ๊ฐ๋ณ participant(์ฐธ์ฌ์)
- Subsystem(์๋ธ์์คํ ) / object / Class
- Actor
- ํ๊ธฐ:
Instance name (object) : Type name (class)
Messages
- ๋ object ๊ฐ์ One-way communication
- Value๋ฅผ ์ ๋ฌํ๋ parameter๋ฅผ ๊ฐ์ง ์ ์์.
- (Asynchronous message(๋น๋๊ธฐ ๋ฉ์์ง), Synchronous message(๋๊ธฐ ๋ฉ์์ง))

Combined Fragment Frame
- Interaction fragments(ํ๋๊ทธ๋จผํธ)์ ํํ์ ์ ์
- Interaction operators(์ฐ์ฐ์)๋ ๋ด์ฉ์ด behavior๋ฅผ ์ด๋ป๊ฒ ๊ธฐ์ ํ๋์ง ์ ์
- Alt: ๊ฐ ์น์
์ด ํ๋์ alternative(๋์). ์:
alt [a>0] - Ref: ๋ค๋ฅธ Use Case ์ฐธ์กฐ
- Loop: ๋ฐ๋ณต๋๋ behavior sequence ๋ช
์. ์:
loop [1,5],loop [6]
Referencing
- ์ด๋ฏธ ์กด์ฌํ๋ sequence diagram ์ฌ์ฌ์ฉ
- ๋ถํ์ํ duplication(์ค๋ณต) ๋ฐฉ์ง

Tips for Sequence Diagram
- Interaction์ context(์ปจํ
์คํธ) ์ค์
- ์: ํ๋์ Use Case
- Flow(ํ๋ฆ)์ ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ์ผ๋ก, ์์์ ์๋๋ก ํํ
- Active(ํ์ฑ) instance๋ ์ผ์ชฝ/์์, passive(์๋) instance๋ ์ค๋ฅธ์ชฝ/์๋์ ๋ฐฐ์น
- ์ฌ๋ฌ object์ behavior๋ฅผ ๋ณด๊ณ ์ถ๋ค๋ฉด ๊ฐ Use Case์ ๋ํ sequence diagram ์์ฑ
Activity and Swimlane Diagrams
Activity Diagram
- ํน์ scenario(์๋๋ฆฌ์ค) ๋ด interaction์ flow๋ฅผ graphical representation(๊ทธ๋ํฝ ํํ)์ผ๋ก ์ ๊ณตํ์ฌ Use Case ๋ณด์ถฉ
- Activity diagram(ํ๋ ๋ค์ด์ด๊ทธ๋จ)์ flow-chart(์์๋)์ ์ ์ฌ

Swimlane Diagrams
- modeler(๋ชจ๋ธ๋ฌ)๊ฐ ์ด๋ค Actor๊ฐ action์ ๋ํ responsibility(์ฑ
์)์ด ์๋์ง ํ์ํ๋๋ก ํ์ฉ

State Machine Diagrams [10.30.(๋ชฉ)]
State Machine Diagrams
- ๊ฐ Class์ object lifecycle์ ๋ชจ๋ธ๋งํ์ฌ ์๊ฐ์ ๋ฐ๋ฅธ object์ ๋์ ์ธ ๋์ ๊ธฐ์
- ํ์ ํญ๋ชฉ
- ํ State์์ ๋ค๋ฅธ state๋ก์ transition๋ฅผ ์ ๋ฐํ๋ ์ฌ๊ฑด
- State ๋ณ๊ฒฝ์ผ๋ก ์ธํ action

States ์ํ
- State: object์ ์๋ช ๋์์ condition(์กฐ๊ฑด) ๋๋ situation(์ํฉ)
- ์ด๋ค condition์ ๋ง์กฑํ๊ฑฐ๋, ์ด๋ค activity๋ฅผ ์ํํ๊ฑฐ๋, ์ด๋ค event๋ฅผ ๊ธฐ๋ค๋ฆผ
Event and Action
- Event: Object๊ฐ State๋ฅผ ๋ณ๊ฒฝํ๋๋ก ์ ๋ฐํ๋ Stimulus(์๊ทน)
- Action: Signal ๋๋ operation call์ Output

Transition
- Event์ ์ํด ์ด๋ฐ๋์ด ํ state์์ ๋ค๋ฅธ state๋ก์ ๋ณ๊ฒฝ
- Guard Condition์ด true์ผ ๋๋ง ๋ฐ์
- Syntax:
event(arguments)[condition]/action
Internal Activities
- State๋ transition ์์ด event์ ๋ฐ์ ๊ฐ๋ฅ
- Event, Guard, activity๋ฅผ state box ๋ด๋ถ์ ๋ฐฐ์น
- ๋ ๊ฐ์ง ํน๋ณํ activity
- Entry(์ง์ ) ๋ฐ exit(์ง์ถ) activity
- Internal activity๋ self-transition์ ์ ์ฌ
- ๊ทธ๋ฌ๋ Internal activity๋ entry ๋ฐ exit activity๋ฅผ ์ด๋ฐํ์ง ์์.
| Typing |
|---|
entry/highlight allexit/update fieldcharacter/ handle characterhelp[verbose]/ open help pagehelp[quiet]/ update status bar |
Activity States
- Regular activities
- Instantaneous(์๊ฐ์ ์ธ) behavior
- Interrupt(์ค๋จ)๋ ์ ์์.
- Normal state๋ ์กฐ์ฉํ๋ฉฐ ๋ค์ event๋ฅผ ๊ธฐ๋ค๋ฆฐ ํ ๋ฌด์ธ๊ฐ๋ฅผ ์ํ
- Do-activities(์ํ-ํ๋)
- Finite time(์ ํ ์๊ฐ) ์์
- Interrupt๋ ์ ์์. (๋ฉ์ถ ์ ์์.)
- Activity state(ํ๋ ์ํ)๋ on-going work(์งํ ์ค์ธ ์์ )์ ์ํ ์ค

Superstates
- ์ฌ๋ฌ State๊ฐ ๊ณตํต์ transition ๋ฐ Internal activity๋ฅผ ๊ณต์
- ๊ณต์ ๋ behavior๋ฅผ superstate๋ก ์ด๋
- Behavior๊ฐ modular(๋ชจ๋์)/hierarchical(๊ณ์ธต์ ) ๋ฐฉ์์ผ๋ก ํํ๋ ์ ์์.

Deployment Diagrams
Deployment Diagrams
- Architecture ๋ด device, execution environment(์คํ ํ๊ฒฝ), artifact์ runtime architecture ํ์
- System topology์ ๋ฌผ๋ฆฌ์ ์ธ ์ค๋ช
- Hardware unit์ ๊ตฌ์กฐ์ ๊ฐ ์ ๋์์ ์คํ๋๋ ์ํํธ์จ์ด ๊ธฐ์

- Node
- Artifact๊ฐ ์คํ์ ์ํด ๋ฐฐํฌ๋ ์ ์๋ Computational resource(์ปดํจํ ์์)
- Communication path
- Node ๊ฐ์ connection ํ์
- Stereotype์ ํต์ protocol์ด๋ ์ฌ์ฉ๋๋ network์ ์ฌ์ฉ ๊ฐ๋ฅ
- Artifact
- Software development process ๋๋ system์ ๋ฐฐํฌ ๋ฐ ์ด์์ ์ํด ์ฌ์ฉ๋๊ฑฐ๋ ์์ฑ๋๋ ๋ฌผ๋ฆฌ์ piece of information์ Specification(๋ช ์ธ, ์ฌ์)
- ์: ๋ชจ๋ธ ํ์ผ, ์์ค ํ์ผ, ์คํฌ๋ฆฝํธ, ๋ฐ์ด๋๋ฆฌ ์คํ ํ์ผ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ์ table, ๊ฐ๋ฐ ๊ฒฐ๊ณผ๋ฌผ, ์๋ ํ๋ก์ธ์ฑ ๋ฌธ์, ๋ฉ์ผ message
