πŸŽ«μ†Œν”„νŠΈμ›¨μ–΄ 곡학 part01. Object-Oriented Analysis and Design

vincaΒ·2023λ…„ 1μ›” 2일
0

πŸ”„ Software engineering

λͺ©λ‘ 보기
2/17

β–  객체지ν–₯ 뢄석 및 섀계 기술(OOA/D)

μ†Œν”„νŠΈμ›¨μ–΄ μ»΄ν¬λ„ŒνŠΈλ“€μ— μ±…μž„μ„ ν• λ‹Ήν•˜λŠ” 것.

β–  UML (Unified Modeling Language) / μ•½μž μ™ΈμšΈ 것

μ†Œν”„νŠΈμ›¨μ–΄μ˜ λͺ¨λΈλ§μ„ μœ„ν•œ ν‘œμ€€ λ‹€μ΄μ–΄κ·Έλž¨ ν‘œκΈ°λ²•
객체지ν–₯ 뢄석 및 섀계 방법이 μ•„λ‹Œ, 단지 ν‘œκΈ°λ²•(Notation)이닀.

β–  UP(Unified Process) / μ•½μž μ™ΈμšΈ 것

- UML을 κ°€μž₯ 잘 ν™œμš©ν•  수 μžˆλŠ” 객체지ν–₯ 방법둠. 반볡적인(Iterative) 개발 κ³Όμ •
- UP κ°œλ°œλ‹¨κ³„ (λ„μž…-μ •λ ¨-ꡬ좕-전이)

β–  뢄석과 섀계

  • 뢄석(Analysis) - What

    • ν•΄κ²°μ±…(solution)λ³΄λ‹€λŠ” λ¬Έμ œμ™€ μš”κ΅¬μ‚¬ν•­(requirements)을 μ‘°μ‚¬ν•˜λŠ”λ° 쀑점을 λ‘”λ‹€.
    • ν˜„μ‹€ μ„Έκ³„μ˜ 문제λ₯Ό λΆ„μ„ν•΄μ„œ ν•„μš”ν•œ κΈ°λŠ₯을 ν™•μ •
    • 인문학적 μ†Œμ–‘μ΄ μ€‘μš”
  • 섀계(Design) - How

    • κ΅¬ν˜„(implementation)λ³΄λ‹€λŠ” μš”κ΅¬ 사항을 μ‹€ν˜„μ‹œν‚€λŠ” κ°œλ…μ  ν•΄κ²°μ±…(conceptual solution)에 쀑점
    • 기술적 즉, μ»΄ν“¨ν„°λ‘œ μ–΄λ–»κ²Œ ν•΄κ²°ν•  것인가에 λŒ€ν•œ μ „λž΅ 수립
    • 곡학적 μ†Œμ–‘μ΄ μ€‘μš”

β–  A bird eye View (UP의 흐름도)

  1. use-case μ •μ˜ (ν˜„μ‹€μ„Έκ³„μ—μ„œ λŒμ•„κ°€λŠ” ν”„λ‘œμ„ΈμŠ€λ₯Ό μ •μ˜ 함/ μ»΄ν“¨ν„°μ—μ„œ λŒμ•„κ°€λŠ”κ±° X)
  2. Define Domain Model(ν˜„μ‹€μ„Έκ³„μ˜ μ˜μ—­μ— λͺ¨λΈμ„ μ •μ˜ / μ»΄ν“¨ν„°μ™€λŠ” μ—°κ΄€ X)
  3. Define Interaction Diagrams (λ‚΄κ°€ ν•΄λ‹Ήν”„λ‘œκ·Έλž¨μ„ μ„€κ³„ν•˜κΈ° μœ„ν•΄μ„œ μ†Œν”„νŠΈμ›¨μ–΄ κ°„ κ°μ²΄κ°„μ˜ μƒν˜Έμž‘μš© μ •μ˜)
  4. Define design Class Diagrams

Use Case / Domain Model / Interaction Diagram / Design Class Diagram
( λΆ„ 석 ) ( μ„€ 계 )

β–  UMLμ΄λž€?

  • μ†Œν”„νŠΈμ›¨μ–΄ μ‚°μΆœλ¬Όμ„ λͺ…μ„Έν™”, κ°€μ‹œν™”, ꡬ좕, λ¬Έμ„œν™” ν•˜λŠ”λ° μ‚¬μš©λ˜λŠ” μ–Έμ–΄

[뢄석]

  • Use Case
    - μš”κ΅¬ 사항 뢄석 κ²°κ³ΌλŠ” Use Cases둜 ν‘œν˜„λœλ‹€.
    - μ‚¬μš©μžμ˜ μž…μž₯μ—μ„œ μ‹œμŠ€ν…œμ˜ κΈ°λŠ₯ 및 μ‚¬μš© 방법 등을 κΈ°μˆ ν•˜κΈ° μœ„ν•΄ μ‚¬μš©ν•œλ‹€.
  • Domain Model
    - 객체 κ΄€μ μ—μ„œ 도메인에 λŒ€ν•˜μ—¬ 기술
    - κ°œλ…, 속성, 관계 등을 식별함
    - 적용 μ˜μ—­
    - 컴퓨터가 μ•„λ‹Œ μ‹€ 세상

[섀계]

  • Interaction Diagram
    - μ†Œν”„νŠΈμ›¨μ–΄ 객체(software object)와 κ·Έλ“€ μ‚¬μ΄μ˜ ν˜‘λ™ 관계(collaborations)λ₯Ό κΈ°μˆ ν•œλ‹€.
    - 객체 μ‚¬μ΄μ˜ λ©”μ‹œμ§€ 전솑을 ν‘œν˜„ν•œλ‹€ β†’ μ±…μž„μ„ ν• λ‹Ήν•œλ‹€
  • Design Class Diagrams
    - ν΄λž˜μŠ€λ“€μ˜ 정적인 λ·°(Static view)λ₯Ό μ •μ˜ν•¨
    - 클래슀의 속성과 λ©”μ†Œλ“œλ₯Ό 보여쀀닀.
    - μ—¬κΈ°λΆ€ν„° 컴퓨터 μ„Έμƒμ΄λ―€λ‘œ μ„€κ³„μ˜ μ‹œμž‘μ΄λ‹€
    - 주의: ν”Œλ ˆμ΄μ–΄κ°€ 사라진닀

[κ΅¬ν˜„]

Class Diagramκ³Ό Interaction Diagram으둜 μ™„μ„±κ°€λŠ₯ν•˜λ‹€.

profile
뢉은 λ°° μ˜€μƒ‰ 딱닀ꡬ리 개발자 πŸ¦ƒCloud & DevOps

0개의 λŒ“κΈ€