• Mindscape ๐Ÿ”ฅ
    • Playlist ๐ŸŽง
  • ๐Ÿค– Artifical Intelligence

    • 1. Basics; Linear Algebra
    • 2. Basics; Linear Algebra (2), Search (1)
    • 3. Search (2)
    • 4. Knowledge and Logic (1)
    • 5. Knowledge and Logic (2)
    • 6. Probability
    • 7. Information Theory
    • 8. Probabilitc Reasoning (2)
    • 9. Probabilitc Reasoning (3)
    • 10. Machine Learning (1)
    • 11. Machine Learning (2)
    • 12. Machine Learning (3)
    • 13. Linear Models
    • 14. Other Classic ML Models (1)
    • 15. Other Classic ML Models (2)
  • ๐Ÿ”’ Computer Security

    • 01. Overview
    • 02. ์ •๋ณด๋ณด์•ˆ์ •์ฑ… ๋ฐ ๋ฒ•๊ทœ
    • 03. Cryptographic Tools
    • 04. User Authentication
    • 05. Access Control
    • 06. Database Security
    • 07. Malicious Software
    • 08. Firmware Analysis
  • ๐Ÿ—„๏ธ Database System

    • 1. Introduction
    • 2. Relational Model
    • 3. SQL
    • 6. E-R Model
    • 7. Relational Database Design (1)
    • 7. Relational Database Design (2)
    • 13. Data Storage Structures
    • 14. Indexing
    • 15. Query Processing
  • ๐Ÿ“ Software Engineering

    • 2. Introduction to Software Engineering
    • 3. Process
    • 4. Process Models
    • 5. Agile
    • 6. Requirements
    • 7. Requirements Elicitation and Documentation
    • 8. Architecture
    • 9. Unified Modelling Language
    • 10. Object-Oriented Analysis
    • Object-Oriented Design
  • ๐Ÿง  Algorithm

    • Python ์‹œ๊ฐ„ ์ดˆ๊ณผ ๋ฐฉ์ง€๋ฅผ ์œ„ํ•œ ํŒ
    • C++ std::vector ์‚ฌ์šฉ๋ฒ• ์ •๋ฆฌ
    • Vim ์‚ฌ์šฉ ๋งค๋‰ด์–ผ
    • 1018๋ฒˆ: ์ฒด์ŠคํŒ ๋‹ค์‹œ ์น ํ•˜๊ธฐ
    • 1966๋ฒˆ: ํ”„๋ฆฐํ„ฐ ํ

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(์ฃผ ์„ฑ๊ณต ์‹œ๋‚˜๋ฆฌ์˜ค):
    1. ๊ณ ๊ฐ์ด ์นดํƒˆ๋กœ๊ทธ๋ฅผ ํƒ์ƒ‰ํ•˜๊ณ  ๊ตฌ๋งคํ•  ์•„์ดํ…œ ์„ ํƒ
    2. ๊ณ ๊ฐ์ด ๊ฒฐ์ œ ์ง„ํ–‰
    3. ๊ณ ๊ฐ์ด ๋ฐฐ์†ก ์ •๋ณด ์ž…๋ ฅ (์ฃผ์†Œ; ์ต์ผ ๋˜๋Š” 3์ผ ๋ฐฐ์†ก)
    4. System์ด ๋ฐฐ์†ก๋น„ ํฌํ•จ ์ „์ฒด ๊ฐ€๊ฒฉ ์ •๋ณด ์ œ์‹œ
    5. ๊ณ ๊ฐ์ด ์‹ ์šฉ์นด๋“œ ์ •๋ณด ์ž…๋ ฅ
    6. System์ด ๊ตฌ๋งค ์Šน์ธ
    7. System์ด ์ฆ‰์‹œ ํŒ๋งค ํ™•์ธ
    8. System์ด ๊ณ ๊ฐ์—๊ฒŒ ํ™•์ธ ์ด๋ฉ”์ผ ๋ฐœ์†ก
  • Extensions(ํ™•์žฅ):
    • 3a: ๊ณ ๊ฐ์ด regular customer(๋‹จ๊ณจ ๊ณ ๊ฐ)์ธ ๊ฒฝ์šฐ
      • .1: system์ด ํ˜„์žฌ ๋ฐฐ์†ก, ๊ฐ€๊ฒฉ, ์ฒญ๊ตฌ ์ •๋ณด ํ‘œ์‹œ
      • .2: ๊ณ ๊ฐ์ด ์ด default(๊ธฐ๋ณธ๊ฐ’)์„ ์ˆ˜๋ฝํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ, MSS 6๋‹จ๊ณ„๋กœ ๋ณต๊ท€
    • 6a: system์ด ์‹ ์šฉ์นด๋“œ ๊ตฌ๋งค ์Šน์ธ ์‹คํŒจ
      • .1: ๊ณ ๊ฐ์ด ์‹ ์šฉ์นด๋“œ ์ •๋ณด๋ฅผ ๋‹ค์‹œ ์ž…๋ ฅํ•˜๊ฑฐ๋‚˜ ์ทจ์†Œ ๊ฐ€๋Šฅ

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(๊ด€๊ณ„) ํ‘œ์‹œ

alt text

Classes

  • ์‚ฌ๊ฐํ˜• ์„ธ ๊ฐœ๋ฅผ ์Œ“์•„๋†“์€ ํ˜•ํƒœ๋กœ ํ‘œํ˜„
  • ๋ชจ๋“  Object-Oriented system์˜ ๊ฐ€์žฅ ์ค‘์š”ํ•œ building block(๊ตฌ์„ฑ ์š”์†Œ)
  • Object set(์ง‘ํ•ฉ)์— ๋Œ€ํ•œ ์„ค๋ช…
  • Entity์˜ ์ถ”์ƒํ™”
  • problem/solution ๋„๋ฉ”์ธ์— ์กด์žฌํ•จ

alt text

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'.

alt text

Inheritance ์ƒ์†

  • Superclass์™€ subclasses ๊ฐ„์˜ relationship
  • Superclass์˜ ๋ชจ๋“  Attributes์™€ Operations๋Š” subclasses์˜ ์ผ๋ถ€๊ฐ€ ๋จ.

alt text

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(์‹œํ€€์Šค ๋‹ค์ด์–ด๊ทธ๋žจ ์ด๋ฆ„)

alt text

Lifelines

  • ์ผ์ • ๊ธฐ๊ฐ„ ๋™์•ˆ interaction์— ์ฐธ์—ฌํ•˜๋Š” ๊ฐœ๋ณ„ participant(์ฐธ์—ฌ์ž)
  • Subsystem(์„œ๋ธŒ์‹œ์Šคํ…œ) / object / Class
  • Actor
  • ํ‘œ๊ธฐ: Instance name (object) : Type name (class)

Messages

  • ๋‘ object ๊ฐ„์˜ One-way communication
  • Value๋ฅผ ์ „๋‹ฌํ•˜๋Š” parameter๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ.
  • (Asynchronous message(๋น„๋™๊ธฐ ๋ฉ”์‹œ์ง€), Synchronous message(๋™๊ธฐ ๋ฉ”์‹œ์ง€))

alt text

Combined Fragment Frame

  • Interaction fragments(ํ”„๋ž˜๊ทธ๋จผํŠธ)์˜ ํ‘œํ˜„์‹ ์ •์˜
  • Interaction operators(์—ฐ์‚ฐ์ž)๋Š” ๋‚ด์šฉ์ด behavior๋ฅผ ์–ด๋–ป๊ฒŒ ๊ธฐ์ˆ ํ•˜๋Š”์ง€ ์ •์˜
  • Alt: ๊ฐ ์„น์…˜์ด ํ•˜๋‚˜์˜ alternative(๋Œ€์•ˆ). ์˜ˆ: alt [a>0]
  • Ref: ๋‹ค๋ฅธ Use Case ์ฐธ์กฐ
  • Loop: ๋ฐ˜๋ณต๋˜๋Š” behavior sequence ๋ช…์‹œ. ์˜ˆ: loop [1,5], loop [6]alt text

Referencing

  • ์ด๋ฏธ ์กด์žฌํ•˜๋Š” sequence diagram ์žฌ์‚ฌ์šฉ
  • ๋ถˆํ•„์š”ํ•œ duplication(์ค‘๋ณต) ๋ฐฉ์ง€

alt text

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(์ˆœ์„œ๋„)์™€ ์œ ์‚ฌ alt text alt text

Swimlane Diagrams

  • modeler(๋ชจ๋ธ๋Ÿฌ)๊ฐ€ ์–ด๋–ค Actor๊ฐ€ action์— ๋Œ€ํ•œ responsibility(์ฑ…์ž„)์ด ์žˆ๋Š”์ง€ ํ‘œ์‹œํ•˜๋„๋ก ํ—ˆ์šฉ alt text

State Machine Diagrams [10.30.(๋ชฉ)]

State Machine Diagrams

  • ๊ฐ Class์˜ object lifecycle์„ ๋ชจ๋ธ๋งํ•˜์—ฌ ์‹œ๊ฐ„์— ๋”ฐ๋ฅธ object์˜ ๋™์ ์ธ ๋™์ž‘ ๊ธฐ์ˆ 
  • ํ‘œ์‹œ ํ•ญ๋ชฉ
    • ํ•œ State์—์„œ ๋‹ค๋ฅธ state๋กœ์˜ transition๋ฅผ ์œ ๋ฐœํ•˜๋Š” ์‚ฌ๊ฑด
    • State ๋ณ€๊ฒฝ์œผ๋กœ ์ธํ•œ action alt text

States ์ƒํƒœ

  • State: object์˜ ์ˆ˜๋ช… ๋™์•ˆ์˜ condition(์กฐ๊ฑด) ๋˜๋Š” situation(์ƒํ™ฉ)
  • ์–ด๋–ค condition์„ ๋งŒ์กฑํ•˜๊ฑฐ๋‚˜, ์–ด๋–ค activity๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ฑฐ๋‚˜, ์–ด๋–ค event๋ฅผ ๊ธฐ๋‹ค๋ฆผ

Event and Action

  • Event: Object๊ฐ€ State๋ฅผ ๋ณ€๊ฒฝํ•˜๋„๋ก ์œ ๋ฐœํ•˜๋Š” Stimulus(์ž๊ทน)
  • Action: Signal ๋˜๋Š” operation call์˜ Output alt text

Transition

  • Event์— ์˜ํ•ด ์ด‰๋ฐœ๋˜์–ด ํ•œ state์—์„œ ๋‹ค๋ฅธ state๋กœ์˜ ๋ณ€๊ฒฝ
  • Guard Condition์ด true์ผ ๋•Œ๋งŒ ๋ฐœ์ƒ
  • Syntax: event(arguments)[condition]/actionalt text

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 all
exit/update field
character/ handle character
help[verbose]/ open help page
help[quiet]/ update status bar

Activity States

  • Regular activities
    • Instantaneous(์ˆœ๊ฐ„์ ์ธ) behavior
    • Interrupt(์ค‘๋‹จ)๋  ์ˆ˜ ์—†์Œ.
  • Normal state๋Š” ์กฐ์šฉํ•˜๋ฉฐ ๋‹ค์Œ event๋ฅผ ๊ธฐ๋‹ค๋ฆฐ ํ›„ ๋ฌด์–ธ๊ฐ€๋ฅผ ์ˆ˜ํ–‰
  • Do-activities(์ˆ˜ํ–‰-ํ™œ๋™)
    • Finite time(์œ ํ•œ ์‹œ๊ฐ„) ์†Œ์š”
    • Interrupt๋  ์ˆ˜ ์žˆ์Œ. (๋ฉˆ์ถœ ์ˆ˜ ์žˆ์Œ.)
  • Activity state(ํ™œ๋™ ์ƒํƒœ)๋Š” on-going work(์ง„ํ–‰ ์ค‘์ธ ์ž‘์—…)์„ ์ˆ˜ํ–‰ ์ค‘

alt text

Superstates

  • ์—ฌ๋Ÿฌ State๊ฐ€ ๊ณตํ†ต์˜ transition ๋ฐ Internal activity๋ฅผ ๊ณต์œ 
  • ๊ณต์œ ๋œ behavior๋ฅผ superstate๋กœ ์ด๋™
  • Behavior๊ฐ€ modular(๋ชจ๋“ˆ์‹)/hierarchical(๊ณ„์ธต์ ) ๋ฐฉ์‹์œผ๋กœ ํ‘œํ˜„๋  ์ˆ˜ ์žˆ์Œ.

alt text

Deployment Diagrams

Deployment Diagrams

  • Architecture ๋‚ด device, execution environment(์‹คํ–‰ ํ™˜๊ฒฝ), artifact์˜ runtime architecture ํ‘œ์‹œ
  • System topology์˜ ๋ฌผ๋ฆฌ์ ์ธ ์„ค๋ช…
  • Hardware unit์˜ ๊ตฌ์กฐ์™€ ๊ฐ ์œ ๋‹›์—์„œ ์‹คํ–‰๋˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ธฐ์ˆ 

alt text

  • Node
    • Artifact๊ฐ€ ์‹คํ–‰์„ ์œ„ํ•ด ๋ฐฐํฌ๋  ์ˆ˜ ์žˆ๋Š” Computational resource(์ปดํ“จํŒ… ์ž์›)
  • Communication path
    • Node ๊ฐ„์˜ connection ํ‘œ์‹œ
    • Stereotype์€ ํ†ต์‹  protocol์ด๋‚˜ ์‚ฌ์šฉ๋˜๋Š” network์— ์‚ฌ์šฉ ๊ฐ€๋Šฅ
  • Artifact
    • Software development process ๋˜๋Š” system์˜ ๋ฐฐํฌ ๋ฐ ์šด์˜์— ์˜ํ•ด ์‚ฌ์šฉ๋˜๊ฑฐ๋‚˜ ์ƒ์„ฑ๋˜๋Š” ๋ฌผ๋ฆฌ์  piece of information์˜ Specification(๋ช…์„ธ, ์‚ฌ์–‘)
    • ์˜ˆ: ๋ชจ๋ธ ํŒŒ์ผ, ์†Œ์Šค ํŒŒ์ผ, ์Šคํฌ๋ฆฝํŠธ, ๋ฐ”์ด๋„ˆ๋ฆฌ ์‹คํ–‰ ํŒŒ์ผ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œ์Šคํ…œ์˜ table, ๊ฐœ๋ฐœ ๊ฒฐ๊ณผ๋ฌผ, ์›Œ๋“œ ํ”„๋กœ์„ธ์‹ฑ ๋ฌธ์„œ, ๋ฉ”์ผ message
์ตœ๊ทผ ์ˆ˜์ •: 25. 11. 6. ์˜คํ›„ 12:07
Contributors: kmbzn
Prev
8. Architecture
Next
10. Object-Oriented Analysis

BUILT WITH

CloudflareNode.jsGitHubGitVue.jsJavaScriptVSCodenpm

All trademarks and logos are property of their respective owners.
ยฉ 2025 kmbzn ยท MIT License