λ³Έ λ¬Έμλ μμ μκ°μ ν λ΄μ©μ λ°νμΌλ‘ μ¬ μ 리νμμ΅λλ€.νλ‘κ·Έλ¨μ νμ μΈμ΄(formal language)λ‘ ννλ μ§μ λ Έλμ κ²°κ³Όλ¬Όμ΄λ€.μμ°μ±μ΄ μΌμ νμ§ μμλ Όλ¦¬μ μΈ μμλ‘ κ΅¬μ±μ§μμ μΈ μ μ§ λ³΄μκ° μꡬμννΈμ¨μ΄ κ°λ°μ μλΉμ€ μ§κ΅°μ΄λ©°, μμ€ν μ μΈ κ΄μ μμ μ κ·Ό
μννΈμ¨μ΄ μ»΄ν¬λνΈλ€μ μ± μμ ν λΉνλ κ².μννΈμ¨μ΄μ λͺ¨λΈλ§μ μν νμ€ λ€μ΄μ΄κ·Έλ¨ νκΈ°λ²κ°μ²΄μ§ν₯ λΆμ λ° μ€κ³ λ°©λ²μ΄ μλ, λ¨μ§ νκΈ°λ²(Notation)μ΄λ€.λΆμ(Analysis) - Whatν΄κ²°μ± (solution)보λ€λ λ¬Έμ μ μꡬμ¬ν(requirements)μ
μννΈ μ¨μ΄μ κ°λ° μ£ΌκΈ°κ°λ° λ¨κ³μ μ λ ₯λ¬Ό : use case, Domain modelμ€κ³ λ¨κ³μ μΆλ ₯λ¬Ό : Interaction diagram Design class diagramνν¬μ λͺ¨ν : μ ν΅μ λ°©λ²νλ‘ν νμ΄ν λͺ¨ν : μ¬μ©μμ νΌλλ°±μ μ€μμ μ¦μ λͺ¨ν : μ
μννΈ μ¨μ΄μ κ°λ° μ£ΌκΈ°μ¬μ©μ μΈν°νμ΄μ€, μ΄ν리μΌμ΄μ λ‘μ§ λ° λλ©μΈ μ€λΈμ νΈ, ν ν¬λ컬 μλΉμ€Application Logic and Domain Objects : λ§€μΆ λ±λ‘ μ§λΆ λ± λ¬Έμ μμκ³Ό κ΄λ ¨λ κ°μ²΄λ€Technical Services: λ°μ΄ν° λ² μ΄μ€ API,
μꡬ μ¬ν(νΉν, κΈ°λ₯μ μꡬμ¬ν)μ λ°κ²¬νκ³ κΈ°λ‘νλλ° λ리 μ¬μ©λ¨ ν΄λΉ Usecaseμ κ΄λ ¨λ λΉκΈ°λ₯μ μΈ μΈ‘λ©΄λ ν¬ν¨λλ€.무μμΈκ° νλμ μ·¨νλ μ¬λ, μ»΄ν¨ν° μμ€ν λλ μ‘°μ§ μμ€ν λ°μ μ‘΄μ¬ μ: cashierActorμ μμ€ν μ¬μ΄μ μΌλ ¨μ
μμ€ν μ νμ§κ³Ό κ΄λ ¨ν μꡬμ¬ν. νλ‘μ νΈ μ±κ²©μ λ§κ² μ ννλ€.κΈ°λ₯μ μΈ μμ±μ ν΄λΉ μ μ€μΌμ΄μ€μ κΈ°μ νκ³ κΈ°ν FURPS+ μμ±μ 보좩λͺ μΈμ κΈ°μ .νμ§μμ±μ μ€κ³μ μ§λν μν₯μ μ€.λΉμ¦λμ€ κ·μΉμ μ ν리μΌμ΄μ μ μꡬμ¬νμ΄λ μμ€ν μ κΈ°λ₯μ΄ μλλΌ, μ 무μ μν λ°©λ²
λμΌν μ μ¦μΌμ΄μ€μ λνμ¬λ¬ λ²μ Iterationμ κ±ΈμΉ μ μ§μ κ°λ°μΌμ£ΌμΌ μ λ μνμμ± μ°μΆλ¬Ό : κ°λ¨, λΆμμ μꡬλΆμ λ¨κ³κ° μλ, κΈ°λ³Έμ μΈ μ€νκ°λ₯μ±, μν, λ²μ, λ μ‘°μ¬κ° νμνκ° λ±μ κ²ν (ex. μ΄λ€ μ»΄ν¬λνΈλ₯Ό ꡬ맀ν κ²μΈκ°? - μΈκΈ κ³μ° ν¨ν€μ§
Databaseμ μ μ¬νκ² λμ¨λ€. ERD(DB)μ κ°μ΄ μμμ±μ κ°λ κ²°κ³Όκ° λμ¨λ€.Class Diagramμμμ λ©μλκ° λ¬ΈμμΈ κ².concept -> μ°κ΄ -> μμ±1\. κΈ°μ‘΄ λͺ¨λΈμ κ²μνμ¬ μ΄λ₯Ό μ¬μ¬μ©νκ±°λ μμ νλ€. μ΄λ€ λͺ¨λΈμ΄ μ’μμ§ νλ¨ν μ μλ λ₯
μΈλΆ μν°κ° λ°μμν€λ μ΄λ²€νΈ, μ΄λ²€νΈμ μμλ₯Ό 보μ¬μ£Όλ κ·Έλ¦Όμ΄λ€. κ° μ μ¦ μΌμ΄μ€μ μ£Όμ μ±κ³΅ μλλ¦¬μ€ λ° μμ£Ό λ°μνκ±°λ 볡μ‘ν λμ μλλ¦¬μ€ λν΄μ κ°κ° SSDλ₯Ό κ·Έλ¦°λ€.μ΄λ»κ² λμνλκ° λ³΄λ€λ 무μμ νλκ°μ μ΄μ μ λ§μΆ μ€λͺ .UMLμλ βμνμ€ λ€μ΄μ΄κ·Έλ¨βμ
κ°μ²΄ μ€κ³ κΈ°μ κ³Ό UML νκΈ°λ² μ§μμ λ°°μ΄λ€.UPμ μ§μΉ¨μ λ°λΌ μꡬμ¬νμ 10%λ μ΄κΈ°μ μ μλμλ€.μ΄μ νμ μ κ΄μ μμ λ°λ³΅μ μν μ루μ μ μ€κ³ν΄λ³΄μ.μꡬ μ¬νκ³Ό κ°μ²΄ μ§ν₯ λΆμμ μ¬λ°λ₯Έ μΌμ νλ λ° μ΄μ μ λ§μΆ λ°λ©΄, μ€κ³λ μ¬λ°λ₯΄κ² μννλ κ²μ μ΄μ μ λ§
λμ κ°μ²΄ λͺ¨λΈλ§μ μν΄μ μΈν°λ μ λ€μ΄μ΄κ·Έλ¨μ μ¬μ©μ΄λ²μ₯μμλ UML μΈν°λ μ λ€μ΄μ΄κ·Έλ¨μ νκΈ°λ²μ λν΄μ μ€λͺ νλ€. μ λκ°μ~!λ λ€ λκ°μ κ²μ νννλ€. ν¨μλ₯Ό μ€νμν€λλ‘ νλ 주체(ν΄λμ€)κ° ν΄λΉ ν¨μμ μ± μ(ν¨μ)λ₯Ό κ°μ§κ³ μλ€.μ₯μ κ³Ό λ¨μ λμλ¬Έμλ‘ κ΅¬λΆ
/drivedAttribute -> μλλ μλ μμ±μΈλ°, κ³μ°λμ΄ μ λλ μ μλ μ΄νΈλ¦¬λ·°νΈ λλ©μΈ λͺ¨λΈμ λ©μλκ° μκ³ , λμμΈ λͺ¨λΈμ λ©μλκ° μλ€.λλ©μΈ λͺ¨λΈμ λ°©ν₯μ±μ΄ μκ³ , λμμΈ λͺ¨λΈμ λ°©ν₯μ±μ΄ μλ€. (μλ‘ κ°μ κ°μμ±μ΄ μλ€)μ°κ΄(ο )μ μμ±μΌλ‘ ννν
λΆμμ΄ λλκ³ κ°μ²΄λ₯Ό μ€κ³ν λ, μ΄λ¬ν λ Ένμ°λ₯Ό μ λ¦¬ν΄ λμ κ²μ΄ grasp! UMLμ μΈλΆμ¬νμ μ μλ€κ³ κ°μ²΄μ§ν₯μ μ€κ³λ₯Ό ν μ μλ κ²μ΄ μλλ€!μ± μμ μ΄μ©νμ¬ μ€κ³νλ κ²μ΄ μ€μνλ€.λΆμ λ¨κ³κ° λλ¬μ λ κ°μ²΄ μ€κ³λ₯Ό μν UML λͺ¨λΈλ§ (μΈν°λ μ λ€μ΄μ΄κ·Έλ¨
λ©μΈμ§λ₯Ό 보λ΄λ €λ©΄ (λ©μΈμ§λ₯Ό λ°μ)μμ κ°μ²΄λ₯Ό λ³Ό μ μμ΄μΌνλ€. μ¦, μμ κ°μ²΄μ λν μ°Έμ‘°λ ν¬μΈν°κ° νμνλ€λ λ»μ΄λ€. (κ°μμ±) γ΄ κ°μμ±μ μμ±μΌλ‘ μ μνλ€. γ΄ κ°μ₯ μΌλ°μ μ΄λ€. γ΄ λ§€κ°λ³μλ‘ μ λ¬νμ¬ κ°μμ±μ νν γ΄ μλμ μΌλ‘ μΌμμ μΈ κ°μμ±μ΄λ€. γ΄
μ ν΅μ μΈ ν μ€νΈμ λͺ©μ μ μλ¬λ₯Ό μ°Ύκ³ (Error detection) μ κ±°(removal)νλ κ²μ΄λ€.Test Planμ μ§μ ν μ€νΈλ₯Ό μννλ κ².Q. μ μ ν ν μ€νΈκ° μ§νλμ§ μμΌλ©΄ μ΄λ»κ² λ κΉ?κ³Όλν μ½λμμ μΌλ‘ μ€ν¨ν κ°λ₯μ±μ΄ 컀μ§λ€. μ¦, μ μ ν ν μ€νΈ νλμ
μ€μΌμΉλ‘μμ UML : λꡬλ₯Ό μ ν μ¬μ©νμ§ μλλ€.μ²μ¬μ§μΌλ‘μμ UML : (μ²μ¬μ§ : μ€κ³λ) λꡬλ₯Ό μ¬μ©νκ³ νλ‘κ·Έλλ°μ μΆκ°νλ‘κ·Έλλ° μΈμ΄λ‘μμ UML : λͺ¨λ κ²μ UMLλ‘ μ μνλ€.β κ°μλ‘ μ΄λ €μμ§λ―λ‘ 1. μ€μΌμΉλ‘μμ UML λ°©λ²μ μ¬μ©νλ κ²μ΄ κ°μ₯ λ¨μ
λκ° Adapyerλ₯Ό μμ±ν΄μΌ νλκ°? β κ΄μ¬ λΆλ¦¬μ μμΉμ λ°λΌ λμ μμ§λλ₯Ό κ°μ§λλ‘ νκΈ° μν΄μ Factoryκ°!Lazy initializationμ μ¬μ©νλ κ²μ΄ μ’λ€. μ¦, μ¬μ©μκ° νμν νλ©΄λ§ κ·Έλκ·Έλ λ§λ€μ΄μ€λ€.μκ³ λ¦¬μ¦μ λ°μΌλ‘ λΉΌμ, polymorph