4. Process Models
Learning Goals
- Process(νλ‘μΈμ€) κ³ λ € μ¬νμ νμμ± μ΄ν΄
- μ£Όμ΄μ§ project(νλ‘μ νΈ)μ μ ν©ν process(νλ‘μΈμ€) μ ν
- Iteration(λ°λ³΅)μ ν΅ν project(νλ‘μ νΈ) λ° engineering(μμ§λμ΄λ§) risks(μν) ν΄κ²°
- Process quality(νλ‘μΈμ€ νμ§) 보μ₯
The Waterfall Model
- [νν¬μ λͺ¨λΈ diagram]
Margaret Hamilton
The "V" Model(80s, 90s)
- [V λͺ¨λΈ diagram]
When is Waterfall Appropriate?
- Requirements(μꡬμ¬ν)κ° μ¬μ μ μλ €μ§
- cost(λΉμ©), schedule(μΌμ ), performance(μ±λ₯), safety(μμ ), security(보μ), user interfaces(μ¬μ©μ μΈν°νμ΄μ€), organizational impacts(μ‘°μ§μ μν₯) λ±μΌλ‘ μΈν λ―Έν΄κ²° κ³ μν risks(μν)κ° μꡬμ¬νμ μμ
- μꡬμ¬νμ nature(λ³Έμ§)μ΄ λ§μ΄ λ³κ²½λμ§ μμ
- μꡬμ¬νμ΄ λͺ¨λ μ£Όμ system stakeholders(μμ€ν μ΄ν΄κ΄κ³μ)μ κΈ°λμ νΈνλ¨
- μꡬμ¬ν ꡬνμ μν architecture(μν€ν μ²)κ° μ μ΄ν΄λ¨
- μμ°¨μ μΌλ‘ μ§ννκΈ°μ μΆ©λΆν μκ°μ΄ μμ
Key Challenge: Change
- Software(μννΈμ¨μ΄)λ λ³κ²½ κ°λ₯ν("soft") κ²μ²λΌ 보μ
- Developers(κ°λ°μ)λ λ³κ²½ λ° "μΆκ° features(κΈ°λ₯)"μ λΉ μ§κΈ° μ¬μ
- Customers(κ³ κ°)λ μ’ μ’ λ¬΄μμ΄ λ³κ²½νκΈ° μ½κ³ 무μμ΄ μ΄λ €μ΄μ§ μ΄ν΄νμ§ λͺ»ν¨
- "Good enough(μΆ©λΆν μ’μ)" vs. "optimal(μ΅μ )"
Early Improvement: Sequencing
- μ΄κΈ° μννΈμ¨μ΄ κ³ λ € μ¬ν κ°μ
- Waterfall(νν¬μ λͺ¨λΈ)μ 70λ λ TRW(ν곡 μ°μ£Ό μ λΆ κ³μ½μ)μμ(prototypes(νλ‘ν νμ )κ³Ό κ°μ) iteration(λ°λ³΅)μ μν λͺ κ°μ§ μΆκ° κΆμ₯ μ¬νκ³Ό ν¨κ» λμ λ¨
- μ ν΅μ μΈ engineering(μμ§λμ΄λ§)μ λͺ¨λΈλ‘ ν¨
- κ±΄μ€ μ Blueprints(μ²μ¬μ§)
- 무μμ λ§λ€μ§ κ²°μ , ꡬμΆ, ν μ€νΈ, λ°°ν¬
- λ³κ²½ κ°μ
- μΌμμ μΈ κ°λ°μ μν μ±κ³΅μ μΈ λͺ¨λΈ
- large scale(λκ·λͺ¨)μμ λ¬Έμ λ°μ
- Requirements(μꡬμ¬ν) -> Delays(μ§μ°) -> Surprise!(λλΌμ!)
A Natural Engineering Process?
- [μΌμͺ½ λ°μ€]
- 무μμ λ§λ€μ§ κ²°μ
- ꡬμΆ
- ν μ€νΈ
- λ°°ν¬
- [μ€λ₯Έμͺ½ λ°μ€]
- 무μμ λ§λ€μ§ 미리 μμ§ λͺ»ν¨
- μ΄λ»κ² λ§λ€μ§ λͺ¨λ μΈλΆ μ¬νμ μμ§ λͺ»ν¨
- testing(ν μ€νΈ) λ° evaluation(νκ°)μ μ΄λ €μ
- λ°°ν¬, evolve(μ§ν), μ¬λ°°ν¬
Iteration!
- μ΄κΈ° λ° λΉλ²ν feedback(νΌλλ°±)
- μ§μμ μΈ adaptation(μ μ) μ§μ
- Risks(μν) μ°μ ν΄κ²°
The Spiral Model(Barry Boehm)
- [λμ ν λͺ¨λΈ diagram]
Software Engineering Risks
- Project risks(νλ‘μ νΈ μν)
- νλ‘μ νΈ μ§μ°, buggy(λ²κ·Έ λ§μ), cost overruns(λΉμ© μ΄κ³Ό)
- System risks(μμ€ν
μν)
- Security(보μ) λ° safety(μμ ) λ¬Έμ
- μ: Toyota μ¬λ‘
- Engineering risks(μμ§λμ΄λ§ μν)
- λΆμ μ ν technology(κΈ°μ ) μ ν, validation(κ²μ¦) λ¬Έμ , usability(μ¬μ©μ±) λ¬Έμ , scalability(νμ₯μ±) λ¬Έμ β¦
Cone of Uncertainty
- [λΆνμ€μ±μ μλΏ]
- Steve McConnell. 1996. Rapid Development
Mitigation of Risk Through Process Interventions(Examples)
- Risk-driven process(μν μ£Όλ νλ‘μΈμ€)
- Prioritization(μ°μ μμ μ§μ ) λ° prototyping(νλ‘ν νμ΄ν)
- Architecture(μν€ν
μ²) λ° design(μ€κ³)
- Risks(μν) 격리/encapsulate(μΊ‘μν)
- μ κ³ standards(νμ€) μ€μ
- Design for assurance(보μ¦μ μν μ€κ³)
- Preventive engineering(μλ°© 곡ν)
- μμ€ν κ³Ό evidence(μ¦κ±°)μ Co-development(곡λ κ°λ°)
- Functionality(κΈ°λ₯μ±) λ° usability(μ¬μ©μ±)
- Prototypes(νλ‘ν νμ ), μ΄κΈ° usability labs(μ¬μ©μ± λ©)
Key: Iterative Processes
- Interleaving(μΈν°λ¦¬λΉ) λ° repeating(λ°λ³΅)
- Requirements engineering(μꡬμ¬ν 곡ν), Risk assessment(μν νκ°)
- Architecture(μν€ν μ²) λ° design(μ€κ³)
- Implementation(ꡬν)
- Quality assurance(νμ§ λ³΄μ¦)
- Deployment(λ°°ν¬)
- νμ§λ§ μΈμ , μ΄λ€ sequence(μμ)λ‘, μΌλ§λ μμ£Ό?
- κ²°μ μ λ΄λ¦¬κΈ° μν΄ μ΄λ€ measurements(μΈ‘μ )μ΄ νμνκ°?
Iteration Decision
- λ무 λλ¦° κ²½μ°?
- λ¦μ λ°μ, predictability(μμΈ‘ κ°λ₯μ±) κ°μ
- λ무 λΉ λ₯Έ κ²½μ°?
- Overhead(μ€λ²ν€λ), innovation(νμ ) κ°μ
- "Death spiral(μ£½μμ λμ )"
- deferred commitment(μ°κΈ°λ μ½μ), κ²°λ‘ μλ prototypes(νλ‘ν νμ ), missing feedback loops(νΌλλ°± 루ν λΆμ¬)
- -> risks(μν) λ° measurement data(μΈ‘μ λ°μ΄ν°) κΈ°λ°μΌλ‘ μΆμ§; project(νλ‘μ νΈ)λ³ κ²°μ
Process Quality
Process Evaluation
- μ°λ¦¬ project(νλ‘μ νΈ)λ μΌλ§λ predictable(μμΈ‘ κ°λ₯)νκ°?
- 33%μ μ‘°μ§μ΄ productivity(μμ°μ±) λ° efficiency(ν¨μ¨μ±) λ°μ΄ν° μμ§
- 8%κ° quality(νμ§) λ°μ΄ν° μμ§
- 60%λ process(νλ‘μΈμ€)λ₯Ό monitor(λͺ¨λν°λ§)νμ§ μμ
Process Improvement Loop
- [νλ‘μΈμ€ κ°μ 루ν diagram]
- High-level approaches(κ³ μμ€ μ κ·Ό λ°©μ):
- Opportunistic(κΈ°νμ£Όμμ ), double-loop learning(μ΄μ€ 루ν νμ΅) κΈ°λ°
- Analytic(λΆμμ ), measurement(μΈ‘μ ) + principles(μμΉ) κΈ°λ°
- Best practices(λͺ¨λ² μ¬λ‘) frameworks(νλ μμν¬)
- Documenting(λ¬Έμν)
- Training and enforcement(κ΅μ‘ λ° μν)
- Monitoring(λͺ¨λν°λ§)
- Analyzing difference(μ°¨μ΄ λΆμ)
- Acting(μ‘°μΉ)
Defect Prevention Process, IBM 1985
- mishap(μ¬κ³ ) λ°μ μ:
- Take corrective action(μμ μ‘°μΉ μν)
- Conduct root cause analysis(κ·Όλ³Έ μμΈ λΆμ μν)(Root cause(s)(κ·Όλ³Έ μμΈ): Management(κ²½μ), people(μ¬λ), process(νλ‘μΈμ€), equipment(μ₯λΉ), material(μμ¬), environment(νκ²½)):
- μ mishap(μ¬κ³ )μ΄ λ°μνλκ°? μ λ μΌμ° κ°μ§λμ§ μμλκ°?
- λ κ΄λ²μν λ¬Έμ λ₯Ό λνλ΄λ trend(μΆμΈ)κ° μλκ°? ν΄κ²°ν μ μλκ°?
- μ΄ λ§μ§λ§ λ¨κ³μμ 무μμ΄ μ λμλκ°? 무μμ΄ μλͺ»λμλκ°?
- team context(ν μν©) λ΄μμ preventive actions(μλ°© μ‘°μΉ) ꡬν
- μ±κ³΅μ μΈ λ³κ²½ μ¬νμ corporate level(κΈ°μ μμ€)μΌλ‘ μ νλ¨
Six Sigma, Motorola 1985
- "Six Sigma(μμ€ μκ·Έλ§)λ μμΈμ μλ³ λ° μ κ±°νκ³ variability(λ³λμ±)λ₯Ό μ΅μννμ¬ process outputs(νλ‘μΈμ€ μ°μΆλ¬Ό)μ quality(νμ§)λ₯Ό κ°μ νκ³ defects(κ²°ν¨)λ₯Ό 100λ§ κ°λΉ 3.4κ°λ‘ μ€μ΄λ κ²μ μΆκ΅¬ν¨. manufacturing(μ μ‘°) λ° services(μλΉμ€)μ μ μ© κ°λ₯ν¨. statistical methods(ν΅κ³μ λ°©λ²)λ₯Ό μ¬μ©νλ©°, μ‘°μ§ λ΄λΆμ μ λ¬Έκ°("Champions", "Black Belts", "Green Belts")λ€λ‘ ꡬμ±λ νΉλ³ν infrastructure(μΈνλΌ)λ₯Ό μμ±ν¨."
- DMAIC, Existing products and services(κΈ°μ‘΄ μ ν λ° μλΉμ€)
- Define(μ μ)
- Measure(μΈ‘μ )
- Analyze(λΆμ)
- Improve(κ°μ )
- Control(κ΄λ¦¬)
- DMADV & DFSS, New or redesigned products and services(μ κ· λλ μ¬μ€κ³λ μ ν λ° μλΉμ€)
- Define(μ μ)
- Measure(μΈ‘μ )
- Analyze(λΆμ)
- Design(μ€κ³)
- Verify(κ²μ¦)
Google SRE Process
- Blame-free postmortem culture(λΉλ μλ μ¬ν κ²ν λ¬Έν)
- "μ΄λ¬ν incidents(μ¬κ±΄)λ‘λΆν° λ°°μ°λ 곡μνλ process(νλ‘μΈμ€)κ° μλ€λ©΄, μ¬κ±΄λ€μ 무νμ μ¬λ°ν μ μμ."
Process Standards
- [μννΈμ¨μ΄ μΈ‘μ κ΄λ ¨ μ± νμ§]
- C. Ebert and R. Dumke, Software Measurement,: Establish β Extract β Evaluate β Execute, Springer, 2007
Capability Maturity Model(CMM)
- customer(κ³ κ°)λ μ‘°μ§μ΄ μνλ product(μ ν)λ₯Ό delivering(μ 곡)ν λ₯λ ₯μ΄ μλ€λ confidence(μ λ’°)λ₯Ό μ»μ΄μΌ ν¨
- US Department of Defense(λ―Έκ΅ κ΅λ°©λΆ)λ contractors(κ³μ½μ
체)λ₯Ό νκ°νκΈ°λ₯Ό μνμ
- Software processes(μννΈμ¨μ΄ νλ‘μΈμ€)μ maturity(μ±μλ)λ₯Ό νκ°ν framework(νλ μμν¬)κ° νμνμ
- 1986λ , Software Engineering Institute(SEI)λ CMMμ΄λΌ λΆλ¦΄ framework(νλ μμν¬) κ°λ° μμ
- CMM model(CMM λͺ¨λΈ)μμ, μ‘°μ§μ maturity level(μ±μλ μμ€)μ μ‘°μ§μ΄ low cost(μ λΉμ©), high quality(κ³ νμ§) μννΈμ¨μ΄λ₯Ό μΌλ§λ μ μμ°ν μ μλμ§λ₯Ό μλ €μ€
- νμ¬ maturity level(μ±μλ μμ€)μ μλ©΄, μ‘°μ§μ λ€μ μμ level(μμ€)μ λλ¬νκΈ° μν΄ λ
Έλ ₯ν μ μμ
- CMM model(CMM λͺ¨λΈ)μλ 5κ°μ maturity levels(μ±μλ μμ€)μ΄ μμ
SEI's Capability Maturity Model(Integration)
- Process(νλ‘μΈμ€)κ° μλ meta-process(λ©ν νλ‘μΈμ€)
- CMM(I)λ νμ¬κ° μ체 process(νλ‘μΈμ€)λ₯Ό μΌλ§λ μ measures(μΈ‘μ )νλμ§ μΈ‘μ
- μ£Όλ‘ US government(λ―Έκ΅ μ λΆ)κ° software vendors(μννΈμ¨μ΄ 곡κΈμ 체)μ estimates(견μ )λ₯Ό ν΅μ νκΈ° μν΄ μ¬μ©
- λ λκ³ μμ μ μΈ estimate(견μ )λ₯Ό μμ©νλ κ²μ μ νΈ
The CMMI Framework
- [CMMI νλ μμν¬ μμ€ diagram]
- Level 1 "Initial"(μ΄κΈ°): Processes(νλ‘μΈμ€) unpredictable(μμΈ‘ λΆκ°λ₯), poorly controlled(μ μ΄ λ―Έν‘) and reactive(λμμ )
- Level 2 "Managed"(κ΄λ¦¬): Process(νλ‘μΈμ€) characterized(νΉμ§ν) for projects(νλ‘μ νΈ) and is often reactive(λμμ )
- Level 3 "Defined"(μ μ): Process(νλ‘μΈμ€) characterized(νΉμ§ν) for the organization(μ‘°μ§) and is proactive(λ₯λμ ).(Projects(νλ‘μ νΈ)λ μ‘°μ§μ standard(νμ€)μμ process(νλ‘μΈμ€)λ₯Ό tailor(μ‘°μ )ν¨)
- Level 4 "Quantitatively Managed"(μ λμ κ΄λ¦¬): Process(νλ‘μΈμ€) measured(μΈ‘μ ) and controlled(μ μ΄)
- Level 5 "Optimizing"(μ΅μ ν): Focus on process improvement(νλ‘μΈμ€ κ°μ μ μ§μ€)
- Higher Risk - Lower Productivity/Quality(κ³ μν - μ μμ°μ±/νμ§) -> Lower Risk - Higher Productivity/Quality(μ μν - κ³ μμ°μ±/νμ§)
Key Practices of Each CMMI Level
- [CMMI μμ€λ³ Key Practices ν]
Capability Maturity Model(CMM)
- [CM μμ€λ³ Key Process Areas(KPA) diagram]
Capability Maturity Model(CMM)
- Common features of key practices(ν΅μ¬ νλν°μ€μ κ³΅ν΅ νΉμ§)
- λͺ¨λ key process area(ν΅μ¬ νλ‘μΈμ€ μμ)μ key practices(ν΅μ¬ νλν°μ€)λ common features(κ³΅ν΅ νΉμ§)λΌ λΆλ¦¬λ 5κ°μ§ categories(λ²μ£Ό)λ‘ κ΅¬μ±λ¨
- Common features(κ³΅ν΅ νΉμ§)λ Key Process Area(KPA)μ implementation(ꡬν)μ΄ effective(ν¨κ³Όμ ), repeatable(λ°λ³΅ κ°λ₯), lasting(μ§μμ )μΈμ§λ₯Ό λνλ΄λ key practices(ν΅μ¬ νλν°μ€)μ attributes(μμ±)μ
- 5κ°μ§ common features(κ³΅ν΅ νΉμ§) categories(λ²μ£Ό)λ λ€μκ³Ό κ°μ
- Commitment to perform(μν μμ§)
- Ability to perform(μν λ₯λ ₯)
- Activities performed(μν νλ)
- Measurement and analysis(μΈ‘μ λ° λΆμ)
- Verifying implementation(ꡬν κ²μ¦)
Capability Maturity Model(CMM)
- Application of the CMM(CMMμ μ μ©)
- μ‘°μ§μ΄ νΉμ maturity(μ±μλ) level(μμ€)μ λλ¬νκΈ° μν΄μλ, ν΄λΉ level(μμ€) λ° λͺ¨λ μ΄μ levels(μμ€)μ λͺ¨λ KPAs(ν΅μ¬ νλ‘μΈμ€ μμ)μ λͺ¨λ goals(λͺ©ν)κ° μΆ©μ‘±λμ΄μΌ ν¨
- μ: μ‘°μ§μ΄ Level 3μ λλ¬νλ €λ©΄, Level 2μ 6κ° KPAμ Level 3μ 7κ° KPAλ₯Ό λͺ¨λ μΆ©μ‘±ν΄μΌ ν¨
- SEIλ μ‘°μ§μ self-assessment(μ체 νκ°)λ₯Ό λκΈ° μν΄ Capability Maturity Model-Based Assessment Internal Process Improvement(CBA-IPI)λ₯Ό κ°λ°ν¨
- CBA-IPIλ CMMμ reference model(μ°Έμ‘° λͺ¨λΈ)λ‘ μ¬μ©νμ¬ μ΄λ€ KPAκ° μΆ©μ‘±λκ³ μκ³ μ΄λ€ κ²μ΄ κ°μ λμ΄μΌ νλμ§ μλ³ν¨μΌλ‘μ¨ μ‘°μ§μ process capability(νλ‘μΈμ€ λ₯λ ₯)λ₯Ό νκ°ν¨
- SEIλ μ‘°μ§μ formal evaluation(곡μ νκ°)λ₯Ό μν mechanism(λ©μ»€λμ¦)μ μ 곡νκΈ° μν΄ CMM Appraisal Framework(CAF)λ₯Ό κ°λ°ν¨
- CAFλ external assessors(μΈλΆ νκ°μ)κ° CAF-compliant evaluation methods(CAF μ€μ νκ° λ°©λ²)λ₯Ό μ€κ³ν λ μ¬μ©ν requirements(μꡬμ¬ν)μ guidelines(κ°μ΄λλΌμΈ)μ μ€λͺ ν¨
Final Check:
- All
##headings are in English only. - Bullets use
-. - Numbered lists use
1.. - Korean translation with
English(νκ΅μ΄)format for first occurrences of key terms within the body. - Noun endings used.
- No bolding.
- No horizontal lines.
- LaTeX formatting applied(none in this specific text).
- Backticks used for technical terms(none in this specific text,
CMM-SWis a name). - All content extracted.
Looks good.
Capability Maturity Model(CMM)
- Capability Maturity Model Integration(CMMI)
- Software(μννΈμ¨μ΄) λΆμΌ(CMM-SWλ‘ μλ €μ§)μμ CMMμ μ±κ³΅μ μΈ μ μ© μ΄ν, λ€λ₯Έ λΆμΌμ CMMλ κ°λ°λ¨
- Systems Engineering(μμ€ν 곡ν) CMM
- Integrated Product Development(ν΅ν© μ ν κ°λ°) CMM
- Electronic Industry Alliance(μ μ μ°μ μ°ν©) 731 CMM
- Software Acquisition(μννΈμ¨μ΄ νλ) CMM
- People(μΈλ ₯) CMM
- Supplier Source(곡κΈμ 체 μμ€) CMM
Process Tradeoffs
- (μ°Έκ³ : λ§μ μ°μ νκ²½(μ: μλμ°¨ μ°μ )μμμ μ±κ³΅ μ¬λ‘)
- Process(νλ‘μΈμ€) vs product quality(μ ν νμ§)
- Process Quality(νλ‘μΈμ€ νμ§)λ Product Quality(μ ν νμ§)μ μν₯μ λ―ΈμΉμ§λ§, 보μ₯νμ§λ μμ
- λ²μ λ°©μ΄ μ λ΅μΌλ‘μμ "best practices(λͺ¨λ² μ¬λ‘)" μ€μ
- "Check box compliance(체ν¬λ°μ€ μ€μ)"?
Summary
- Sequential process models(μμ°¨μ νλ‘μΈμ€ λͺ¨λΈ)μ "coding(μ½λ©) μ μκ°"μ κ°μ‘°
- μ’ μ’ λ무 rigid(κ²½μ§)λλ©°, requirements(μꡬμ¬ν)μ environments(νκ²½) λ³ν
- Risks(μν) ν΄κ²°μ μν Iteration(λ°λ³΅)
- Process(νλ‘μΈμ€) μΈ‘μ , μ§μμ μΈ process(νλ‘μΈμ€) κ°μ
