7. Requirements Elicitation and Documentation
Learning Goals
- Stakeholders(μ΄ν΄κ΄κ³μ) μ μ λ° μλ³
- ν¨κ³Όμ μΈ requirements interviews(μꡬμ¬ν μΈν°λ·°) μνμ λν κΈ°λ³Έ λ₯λ ₯ μμ°
- Use cases(μ μ¦μΌμ΄μ€) λ° user stories(μ¬μ©μ μ€ν 리)λ₯Ό μ¬μ©ν μꡬμ¬ν λ¬Έμν
- μ°μ μμμ λ°λ₯Έ conflicts(μΆ©λ) μΈμ λ° ν΄κ²°
Requirement Elicitation
Typical Steps
- μ΄ν΄κ΄κ³μ μλ³
- Understand the domain(λλ©μΈ μ΄ν΄)
- Analyze artifacts(μ°μΆλ¬Ό λΆμ), μ΄ν΄κ΄κ³μμμ μνΈμμ©
- Discover the real needs(μ€μ μꡬ νμ
)
- μ΄ν΄κ΄κ³μ μΈν°λ·°
- μꡬλ₯Ό ν΄κ²°νκΈ° μν λμ νμ
Question
- μ΄ μμ€ν μ λꡬλ₯Ό μν κ²μΈκ°?
- μ΄ν΄κ΄κ³μ:
- End users(μ΅μ’ μ¬μ©μ)
- System administrators(μμ€ν κ΄λ¦¬μ)
- Engineers maintaining the system(μμ€ν μ μ§λ³΄μ μμ§λμ΄)
- Business managers(λΉμ¦λμ€ κ΄λ¦¬μ)
- ...λ λκ° μμκΉ?
Stakeholder
- μμ€ν μ μν΄ μ§κ°μ μ μΌλ‘ μν₯μ λ°μ λͺ¨λ κ°μΈ λλ κ·Έλ£Ή.
- μ΄ν΄κ΄κ³μλ€μ μκ²¬μ΄ λ€λ₯Ό μ μμ.
- Requirements process(μꡬμ¬ν νλ‘μΈμ€)λ μΆ©λμ ν΄κ²°νκΈ° μν negotiation(νμ)μ μ΄λ°ν΄μΌ ν¨.
Defining Actors/Agents
- An actor(μ‘ν°)λ μ΄λ²€νΈλ₯Ό μλ£ν λͺ©μ μΌλ‘ μμ€ν
κ³Ό μνΈμμ©νλ entity(κ°μ²΄) [Jacobson, 1992].
- μ΄ν΄κ΄κ³μλ§νΌ κ΄λ²μνμ§ μμ.
- μ‘ν°λ μ¬μ©μ, μ‘°μ§, μ₯μΉ λλ an external system(μΈλΆ μμ€ν )μΌ μ μμ.
Stakeholder Analysis: Criteria for Identifying Relevant Stakeholders
- μ‘°μ§ λ΄ κ΄λ ¨ μ§μ
- μμ€ν μ λν μμ¬ κ²°μ μ μμ΄ ν¨κ³Όμ μΈ μν
- Level of domain expertise(λλ©μΈ μ λ¬Έμ± μμ€)
- μΈμ§λ λ¬Έμ μ λν λ ΈμΆ
- Influence in system acceptance(μμ€ν μμ©μ λ―ΈμΉλ μν₯λ ₯)
- κ°μΈμ μΈ λͺ©ν λ° conflicts of interest(μ΄ν΄ μμΆ©)
Stakeholders: A NASA example
Interviews
Interview Trade-offs
- Strengths(κ°μ )
- μ΄ν΄κ΄κ³μκ° λ¬΄μμ νκ³ , λλΌκ³ , μ νΈνλμ§
- κ·Έλ€μ΄ μμ€ν κ³Ό μ΄λ»κ² μνΈμμ©νλμ§
- νμ¬ μμ€ν μ λ¬Έμ μ
- Weaknesses(μ½μ )
- Subjective(μ£Όκ΄μ ), inconsistencies(λΉμΌκ΄μ±)
- Capturing domain knowledge(λλ©μΈ μ§μ ν¬μ°©)
- Familiarity(μΉμμ±)
- Technical subtlety(κΈ°μ μ λ―Έλ¬ν¨)
- Organizational issues(μ‘°μ§μ λ¬Έμ ), μ: μ μΉ
- μΈν°λ·° μ§νμμ κΈ°μ μ μ’μ°λ¨
Interview Process
- κ΄μ¬ μλ μ΄ν΄κ΄κ³μ λ° μμ§ν λμ μ 보 μλ³.
- μΈν°λ·° μν. -(structured(ꡬ쑰μ )/unstructured(λΉκ΅¬μ‘°μ ), individual/group)
- μΈν°λ·° λ Ήμ + μ μ¬
- μ€μν λ°κ²¬ μ¬ν λ³΄κ³ .
- μΈν°λ·° λμμμ λ³΄κ³ μμ νλΉμ± νμΈ.
Example: Identifying Problems
- μΌμ μ
무μμ μ΄λ€ λ¬Έμ μ λΆλͺνλκ°? νμ€μ μΈ ν΄κ²° λ°©λ²μ΄ μλκ°, νΉμ workaround(μ°¨μ μ±
)λ₯Ό μ¬μ©νλκ°?
- μ΄κ²μ΄ μ λ¬Έμ μΈκ°? νμ¬λ κ·Έ λ¬Έμ λ₯Ό μ΄λ»κ² ν΄κ²°νλκ°? μ΄μμ μΌλ‘λ μ΄λ»κ² ν΄κ²°νκ³ μΆμκ°?
- μΈν°λ·° λμμκ° μ€λͺ ν λ¬Έμ κ° λ μ΄μ μμ λκΉμ§ νμ μ§λ¬Έ(βλ€λ₯Έ λ¬Έμ λ μλκ°?β, βλΉμ μ κ΄΄λ‘νλ λ€λ₯Έ κ²λ€μ΄ μλκ°?β)μ κ³μ μ§λ¬Έ.
- κ·Έλ λ€λ©΄, μ κ° μ΄ν΄νκΈ°λ‘λ λ€μκ³Ό κ°μ λ¬Έμ /μꡬλ₯Ό κ²ͺκ³ κ³μ κ² κ°μ
- μΈν°λ·° λμμμ λ¬Έμ μ μꡬλ₯Ό μμ μ λ§λ‘ μ€λͺ β μ’ μ’ λΉμ μ΄ λμΌν κ·Έλ¦Όμ 곡μ νμ§ μλλ€λ κ²μ λ°κ²¬ν κ²μ.
- μ²μμλ μλ‘ μ΄ν΄νλ€κ³ μκ°νλλΌλ μ€μ λ‘λ κ·Έλ μ§ μμ κ²½μ°κ° λ§€μ° νν¨
- νμΈ μ°¨μμμ, μ κ° νμ¬ μ루μ μ λν΄ λΉμ μ΄ κ°μ§ λ¬Έμ λ€μ μ¬λ°λ₯΄κ² μ΄ν΄νλκ°?
- κ²ͺκ³ μλ λ€λ₯Έ λ¬Έμ κ° μλκ°? μλ€λ©΄, 무μμΈκ°?
Example Questions: The User Environment
- μμ€ν μ μ¬μ©μλ λκ° λ κ²μΈκ°?
- μ¬μ©μμ κ΅μ‘ μμ€μ΄λ νλ ¨ μ λλ μ΄λ νκ°?
- μ¬μ©μλ μ΄λ€ μ»΄ν¨ν° κΈ°μ μ κ°μ§κ³ μλκ°?
- μ¬μ©μκ° μ΄λ° μ νμ IT μμ€ν μ μ΅μνκ°?
- νμ¬ μ΄λ€ technical platforms(κΈ°μ νλ«νΌ)λ₯Ό μ¬μ©νκ³ μλκ°?
- ν₯ν μμ€ν μ΄λ νλ«νΌμ λν κ³νμ μκ³ μλκ°?
- μ‘°μ§μ΄ νμ¬ μ¬μ© μ€μΈ λ€λ₯Έ IT μμ€ν μ€ μ μμ€ν κ³Ό μ°κ²°λμ΄μΌ νλ κ²μ 무μμΈκ°?
- System usability(μμ€ν μ¬μ©μ±)μ λν κΈ°λμΉλ μ΄λ νκ°?
- ν₯ν μμ€ν μ λν΄ μ΄λ€ κ΅μ‘ μꡬλ₯Ό μμνλκ°?
- μ΄λ€ μ’ λ₯μ documentation(λ¬Έμν)λ₯Ό κΈ°λνλκ°?
Capturing vs Synthesizing
- μμ§λμ΄λ λ§μ μΆμ²λ‘λΆν° μꡬμ¬νμ νλ
- μ΄ν΄κ΄κ³μλ‘λΆν° λμΆ
- Policies(μ μ± ) λλ λ€λ₯Έ λ¬Έμλ‘λΆν° μΆμΆ
- μ μ¬νλ€ + estimation(μΆμ ) λ° invention(μ°½μ)μΌλ‘λΆν° synthesize(μ’ ν©)
- μ΄ν΄κ΄κ³μκ° νμ μμ μ΄ λ¬΄μμ μνλμ§ μλ κ²μ μλκΈ° λλ¬Έμ, μμ§λμ΄λ...
- μ΄ν΄κ΄κ³μμ μꡬμ κΈ°λμ μΆ©μ€ν΄μΌ ν¨
- μΆκ°μ μΈ μꡬμ risks(μν)λ₯Ό μμΈ‘ν΄μΌ ν¨
- βμΆκ°μ μΈ μꡬβκ° νμνκ±°λ λ°λμ§νμ§ validate(κ²μ¦)ν΄μΌ ν¨
Interview Advice
- μ¬μ μ μΈν°λ·° λμμμ λν κΈ°λ³Έ μ 보(μν , μ± μ λ±)λ₯Ό νμ
- μΈν°λ·° μ μ μΈν°λ·° μ§λ¬Έ κ²ν
- ꡬ체μ μΈ μ§λ¬Έ, μ μμΌλ‘ ꡬ체μ μΌλ‘ μμ; prototype(νλ‘ν νμ
) λλ scenario(μλ리μ€)λ₯Ό ν΅ν΄ μμ
- ν΄λΉλλ κ²½μ°, νμ¬ μμ€ν κ³Ό μ°κ΄.
- κ°λ°©μ μΈ νλλ₯Ό μ μ§; μμ°μ€λ½κ² λ°μνλ μΆκ° μ΄μ νμ. λ¨, μμ€ν μ κ³μ μ§μ€.
- νμ¬ μμ€ν /λμκ³Ό λμ‘°. μΆ©λ λ° priorities(μ°μ μμ) νμ
- νμ μ§λ¬Έ κ³ν
Guidelines for Effective Interviews
- λ¬Έμ μ μ 체 λ²μλ₯Ό λ€λ£¨κΈ° μν΄ μ μ ν μΈν°λ·° λμμ μν μλ³
- λ€μν μ± μ, μ λ¬Έμ±, κ³Όμ , λ¬Έμ λ ΈμΆ
- μ μ ν μκΈ°μ μ μ ν λ¬Έμ μ μ§μ€ν μ μλλ‘ μ€λΉλ μνλ‘ μν¨
- λ°°κ²½ μ°κ΅¬ μ°μ μν
- ν΄λΉ μΈν°λ·° λμμλ₯Ό μν μ§λ¬Έ μμ μ¬μ μ€κ³
- μΈν°λ·° λμμμ μ 무μ κ΄μ¬μ¬μ μΈν°λ·°μ μ΄μ μ λ§μΆ€
- μΈν°λ·°μ λν ν΅μ λ ₯ μ μ§
- μΈν°λ·° λμμλ₯Ό νΈμνκ² λ§λ¦
- μμ: μ΄μν¨ ν΄μ, λκΈ° λΆμ¬, μ¬μ΄ μ§λ¬Έ
- μν λΏλ§ μλλΌ μ¬λ μ체λ κ³ λ €
- νμ μ λ’°ν μ μλ ννΈλλ‘ λ³΄μ¬μΌ ν¨
- μ§μ€νκ³ , κ°λ°©ν μ§λ¬Έμ λ§μ§λ§μ ν¨
- μμμΉ λͺ»ν λ΅λ³μ λλΉν΄ κ°λ°©μ μ΄κ³ μ μ°ν νλ μ μ§
- λΆμΎκ°μ μ£Όμ§ μμΌλ©΄μ μ(why) μ§λ¬Έμ ν¨
- νΉμ μ νμ μ§λ¬Έ ννΌ...
- μ견 λλ biased(νΈν₯λ) μ§λ¬Έ
- Affirmative(κΈμ /λΆμ ) μ§λ¬Έ(μ/μλμ€ μ§λ¬Έ)
- ν΄λΉ μΈν°λ·° λμμμκ² λͺ λ°±νκ±°λ λΆκ°λ₯ν λ΅λ³μ μ§λ¬Έ
- κΈ°μ΅μ΄ μμν λ μΈν°λ·° μ μ¬λ³Έ νΈμ§ λ° κ΅¬μ‘°ν
- κ°μΈμ μΈ λ°μ, νλ λ± ν¬ν¨
- μΈν°λ·° λμμκ° κ³μ μ°Έμ¬νλλ‘ ν¨
- κ²μ¦ λ° refinement(κ°μ )μ μν΄ μΈν°λ·° μ μ¬λ³Έ 곡λ κ²ν
Prototypes, Mockups, Stories
Wireframe, Mockup, and Prototype
- WIREFRAME(μμ΄μ΄νλ μ)
- Purpose(λͺ©μ ): Communicate structure and get early feedback(ꡬ쑰 μ λ¬ λ° μ΄κΈ° νΌλλ°± ν보)
- Fidelity(μΆ©μ€λ): Low
- Functionality(κΈ°λ₯μ±): No
- Skill requirement(νμ κΈ°μ ): Low
- Resources(μμ): Minimal
- Time needed(μμ μκ°): Very low
- Product cycle stage(μ ν μ£ΌκΈ° λ¨κ³): Discovery
- MOCKUP(λͺ©μ
)
- Purpose: Showcase design(λμμΈ μμ°)
- Fidelity: High
- Functionality: No
- Skill requirement: High
- Resources: Design tool
- Time needed: Medium
- Product cycle stage: Design
- PROTOTYPE(νλ‘ν νμ
)
- Purpose: Showcase design and functionality(λμμΈ λ° κΈ°λ₯μ± μμ°)
- Fidelity: High
- Functionality: Yes
- Skill requirement: High
- Resources: Design tool
- Time needed: High
- Product cycle stage: Prototyping and testing
Mockups, Prototypes, Stories
- μΈκ°: λ°±μ§μνμμ λ¬Έμ λ₯Ό ν΄κ²°νλ κ²λ³΄λ€ ν΄κ²°μ± μ΄ μ¬λ°λ₯Έμ§ μΈμνλ λ° λ λ₯μν¨.
- Mock-ups/prototypesλ μꡬμ¬νμ uncertainty(λΆνμ€μ±)μ νμνλ λ° λμ.
- μ°λ¦¬κ° μ¬λ°λ₯Έ μꡬμ¬νμ κ°μ‘λμ§ κ²μ¦.
- μμ€ν μ βκ²½κ³βμ μλ μꡬμ¬ν λμΆ.
- μ루μ 곡κ°μ feasibility(μ€ν κ°λ₯μ±) μ£Όμ₯.
- ν보 μ루μ μ λν νΌλλ°± νλ.
- β보면 μκ² λ κ²μ΄λ€(Iβll know it when I see it)β
Storyboarding and Scenarios
Story
- Who(λκ°) νλ μ΄μ΄μΈκ°
- What(무μμ΄) κ·Έλ€μκ² μΌμ΄λλκ°
- How(μ΄λ»κ²) νΉμ μνΌμλλ₯Ό ν΅ν΄ μΌμ΄λλκ°
- Why(μ) μ΄κ²μ΄ μΌμ΄λλκ°
- What if(λ§μ½) μ΄λ¬ν μ΄λ²€νΈκ° λ°μνλ€λ©΄
- What(무μμ΄) κ²°κ³Όμ μΌλ‘ μλͺ»λ μ μλκ°
Storyboards
- Storyboards(μ€ν 리보λ)λ μλ리μ€λ₯Ό μ€λͺ
: μ묡μ μΈ λͺ©νλ₯Ό μΆ©μ‘±νλ μμ€ν
ꡬμ±μμ κ°μ μΌλ°μ μΈ μνΈμμ© μμ.
- μ€ν 리보λλ μ΅μν λκ°, 무μμ, μ΄λ»κ² νλμ§λ₯Ό λͺ μμ μΌλ‘ λ€λ£Έ.
- λ€λ₯Έ μ ν:
- Positive(κΈμ μ ) vs negative(λΆμ μ )(μΌμ΄λμΌ νλ κ²κ³Ό μΌμ΄λμ§ μμμΌ νλ κ²)
- Normal(μ μ) vs abnormal(λΉμ μ)
- λμΆμ μΌλΆλ‘μ:
- μ€μ λλ κ°μμ μμλ₯Ό λ°λΌ νμ¬ λλ μ μλ μμ€ν μ λν΄ νμ΅
- ꡬ체μ μΈ μ§λ¬Έ κ°λ₯
- κ·Όλ³Έμ μΈ λͺ©ν λμΆ, μνλ νλ λͺ¨λΈλ‘ μΌλ°ν.
- μΆ©λ μλ³ λ° ν΄κ²°
- μ₯μ : ꡬ체μ , μμ μ μ€λͺ μ§μ
- λ¨μ : inherently partial(λ³Έμ§μ μΌλ‘ λΆλΆμ ).
Storyboard Example
Documenting Requirements
Many Different Forms
- Informal(λΉκ³΅μμ ) vs formal(μ νμ )
- Unstructured(λΉκ΅¬μ‘°μ ) vs structured(ꡬ쑰μ )
- Text(ν μ€νΈ) vs diagrams(λ€μ΄μ΄κ·Έλ¨)
- ꡬ쑰νλ ν μ€νΈκ° μ€μ νμ μμ μΌλ°μ
- Traceability(μΆμ μ±) λ° process integration(νλ‘μΈμ€ ν΅ν©)μ μν΄ λꡬ μ§μλ¨
Software Requirements Specification(SRS)
- ꡬ쑰νλ μꡬμ¬ν λ¬Έμ
- μ¬λ¬ standards(νμ€) μ‘΄μ¬
- ISO/IEC/IEEE 29148:2018 Systems and software engineering βLife cycle processes βRequirements engineering
- μ’ μ’ contracts(κ³μ½)μ κΈ°λ°μ΄ λ¨
Activity Diagrams
- Activity diagrams(μ‘ν°λΉν° λ€μ΄μ΄κ·Έλ¨)(λλ flow charts)μ κ·Έλν νκΈ°λ²μΌλ‘ λ‘μ§μ νν
Sequence Diagrams
- Sequence diagrams(μνμ€ λ€μ΄μ΄κ·Έλ¨)μ κ·Έλν νκΈ°λ²μΌλ‘ μνΈμμ©μ νν
Formal Specifications
- κΈ°κ³ μΈν°νμ΄μ€μμμ 곡μ λ λμμ λν λ Όλ¦¬μ νν
- λλ©μΈ μμ±κ³Ό νμμ νλμ pre-and post-conditions(μ¬μ λ° μ¬ν 쑰건)λ‘ μ°κ²°νλ κ² ν¬ν¨
Grounding Formal Specifications
- Alice: λ κ°μ§ μ€μν κΈ°λ³Έ μ νμ
studentμcourse. λν μ΄μ§ κ΄κ³enrolledκ° μμ - Aliceλ μ΄λ¬ν μμλ€μ λ€μκ³Ό κ°μ΄ μ μν¨:
- Bob: νμλ§ κ³Όλͺ©μ λ±λ‘νλκ°? κ·Έλ μ§ μμ κ² κ°μ.
- Alice: νμ§λ§ κ·Έκ²μ΄ λ΄κ°
studentλΌκ³ μλ―Έν λ°μ!
Designations as Explanations
- λ§μ½ μ¬λμ΄ κ³Όλͺ©μ λ±λ‘νλ€λ©΄, κ·Έ μ¬λμ
studentμ: - μ¬λμ, νμμ΄ λ±λ‘λ κ³Όλͺ©μ΄ μλ κ²½μ°μλ§, κ·Έλ¦¬κ³ κ·Έ κ²½μ°μλ§
studentμ
Use Case
- λͺ©νλ₯Ό λ¬μ±νκΈ° μν΄ μμ€ν μ μ¬μ©νλ μ‘ν°μ λν ν μ€νΈ μ€ν 리.
- μ μ¦μΌμ΄μ€λ λ€μ΄μ΄κ·Έλ¨μ΄ μλλΌ, ν μ€νΈμ.
- μ£Όλ‘ functional requirements(κΈ°λ₯μ μꡬμ¬ν) μν μ ν¨(βμμ€ν μ ~ν΄μΌ νλ€βλ κΈ°μ κ³Ό λμ‘°/κ²°ν©).
Use Case Name(Title)
- Scope(λ²μ): System under design(μ€κ³ μ€μΈ μμ€ν )
- Level(μμ€): User level, subprocess level
- Primary actor(μ£Όμ μ‘ν°):(μ‘ν°λ primary(μ£Όμ), supporting(μ§μ), or offstage(무λ λ°)μΌ μ μμ)
- Stakeholder, interests(μ΄ν΄κ΄κ³): μ€μ! μ μ¦μΌμ΄μ€λ μ΄ν΄κ΄κ³μμ μ΄μ΅μ μΆ©μ‘±μν€λ λ° νμν λͺ¨λ κ²μ ν¬ν¨ν΄μΌ ν¨.
- Preconditions(μ¬μ 쑰건): μλ리μ€κ° μμλκΈ° μ μ νμ μ°Έμ΄μ΄μΌ νλ κ². ν μ€νΈλμ§ μμ; κ°μ λ¨. 무μλ―Έν λ Έμ΄μ¦λ‘ μ±μ°μ§ λ§ κ².
- Success guarantees(μ±κ³΅ 보μ₯): Postconditions(μ¬ν 쑰건)μ΄λΌκ³ λ ν¨
- Main success scenario(μ£Όμ μ±κ³΅ μλ리μ€): Basic flow(κΈ°λ³Έ νλ¦), βhappy pathβ(ν볡 κ²½λ‘), typical flow. λͺ¨λ 쑰건μ νμ₯μΌλ‘ μ°κΈ°. λ¨κ³ κΈ°λ‘: μ‘ν° κ°μ μνΈμμ©, μ ν¨μ± κ²μ¬, μμ€ν μ μν μν λ³κ²½.
- Extensions(νμ₯): Alternate flows(λμ νλ¦)λΌκ³ λ ν¨. μ’ μ’ ν μ€νΈμ λλΆλΆμ μ°¨μ§. λλλ‘ λ€λ₯Έ μ μ¦μΌμ΄μ€λ‘ λΆκΈ°λ¨.
- Special requirements(νΉλ³ μꡬμ¬ν): Non-functional/quality requirements(λΉκΈ°λ₯/νμ§ μꡬμ¬ν)κ° μμΉνλ κ³³.
- Technology and data variations list(κΈ°μ λ° λ°μ΄ν° λ³ν λͺ©λ‘): νΌν μ μλ κΈ°μ μ μ½; I/O κΈ°μ λ‘ νμ νλλ‘ λ Έλ ₯.
- Frequency of occurrence(λ°μ λΉλ):
- Miscellaneous(κΈ°ν): SafeHomeProduct
Example of Use Case for SafeHome
Use-case: InitiateMonitoring
Primary actor: Homeowner
Goal in context: μ§μ£ΌμΈμ΄ μ§μ λ λκ±°λ λ΄λΆμ 머무λ₯Ό λ μΌμλ₯Ό λͺ¨λν°λ§νλλ‘ μμ€ν μ μ€μ νκΈ° μν¨
Preconditions: μμ€ν μ΄ μνΈ λ° λ€μν μΌμ μΈμμ μν΄ νλ‘κ·Έλλ°λμμ
Trigger(νΈλ¦¬κ±°): μ§μ£ΌμΈμ΄ μμ€ν μ βμ€μ βνκΈ°λ‘ κ²°μ , μ¦ μλ κΈ°λ₯ μΌ¬
Scenario:
- Homeowner: μ μ΄ν κ΄μ°°
- Homeowner: μνΈ μ λ ₯
- Homeowner: βstayβ λλ βawayβ μ ν
- Homeowner: SafeHomeμ΄ μλλμμμ λνλ΄λ λΉ¨κ°μ μλ λΆλΉ κ΄μ°°
Exceptions(μμΈ):
- 1a. μ μ΄νμ΄ μ€λΉλμ§ μμ: μ§μ£ΌμΈμ΄ λͺ¨λ μΌμλ₯Ό νμΈνμ¬ μ΄λ κ²μ΄ μ΄λ €μλμ§ νμ ; λ«μ
- 2a. μνΈκ° μ ννμ§ μμ
Priority: Essential(νμ), λ°λμ ꡬνλμ΄μΌ ν¨
When available: first increment(첫 λ²μ§Έ μ¦λΆ)
Frequency of use: ν루μ μ¬λ¬ λ²
Channel to actor: μ μ΄ν μΈν°νμ΄μ€λ₯Ό ν΅ν΄
Secondary actors: Support technician(μ§μ κΈ°μ μ)
Channels to secondary actors: μ§μ κΈ°μ μ: μ νμ
Open issues(λ―Έν΄κ²° λ¬Έμ ):
- μνΈ μ λ ₯μ μκ°μ νμ λμ΄μΌ νλκ°?
Use Case
- μ°λ¦¬λ different granularities(λ€μν μΈλΆμ±)μ λ§μ μ νμ λν΄ μ΄μΌκΈ°ν¨:
- Full use case model(μ 체 μ μ¦μΌμ΄μ€ λͺ¨λΈ)(μ 체 μμ€ν , μμ μμ€)
- βAgileβ use case: ꡬνλ μμ€ν κΈ°λ₯μ μκ³ κ΅¬μ²΄μ μΈ μ‘°κ°(λλλ‘ βμ¬μ©μ μ€ν 리βμ νΌμ©λ¨)
- μ¬λ¬ λ¨κ³μμ μ¬μ©λ¨:
- Requirements elicitation(μꡬμ¬ν λμΆ)(μ€λͺ , κ²μ¦, μꡬμ¬ν; μΆ©λ κ°μ‘°, μꡬμ¬ν μ°μ μμ μ§μ λ±)
- Requirements documentation(μꡬμ¬ν λ¬Έμν).
- Concrete design(ꡬ체μ μΈ μ€κ³): UML λ€μ΄μ΄κ·Έλ¨
User Stories
- ꡬν μμ μΈ, μ¬μ©μκ° κ°μΉ μκ² μ¬κΈ°λ κΈ°λ₯μ λν λΉκ³΅μμ μ€λͺ
- μΈλΆ μ¬νμ λμ€μ κ³ κ°κ³Όμ νμμ μν΄ λ¨κ²¨λκ±°λ μ€μ μꡬμ¬νμ λν ν¬μΈν°
- μΌλ°μ μΈ agile development(μ μμΌ κ°λ°) νλν°μ€
- Template(ν νλ¦Ώ): β<μν >λ‘μ, <νν>μ μ»κΈ° μν΄ <κΈ°λ₯>μ μνλ€β
User Stories Example
- μ¬μ©μλ‘μ, λ΄ μ 체 νλ λλΌμ΄λΈλ₯Ό λ°±μ ν μ μμ
- λ무 νΌ, λΆν :
- νμ μ μ λ‘μ, νμΌ ν¬κΈ°, μμ± λ μ§, μμ λ μ§λ₯Ό κΈ°λ°μΌλ‘ λ°±μ ν νμΌμ΄λ ν΄λλ₯Ό μ§μ ν μ μμ.
- μ¬μ©μλ‘μ, λ°±μ λλΌμ΄λΈκ° νμ μλ κ²λ€λ‘ μ±μμ§μ§ μλλ‘ λ°±μ νμ§ μμ ν΄λλ₯Ό νμν μ μμ.
Use of User Stories
- μ¬μ©μ μ€ν 리 보λλ₯Ό μ μ§νκ³ , βepics(μν½)βμΌλ‘ κ·Έλ£Ήν
Industrial Requirements Tools
Resolving Conflicts
Types of Inconsistency
- Terminology clash(μ©μ΄ μΆ©λ): λμΌν κ°λ
μ΄ λ€λ₯Έ κΈ°μ μμ λ€λ₯΄κ² λͺ
λͺ
λ¨
- μ: λμκ΄ κ΄λ¦¬: βborrowerβ vs. βpatronβ
- Designation clash(λͺ
μΉ μΆ©λ): λ€λ₯Έ κ°λ
μ λν΄ λ€λ₯Έ κΈ°μ μμ λμΌν μ΄λ¦ μ¬μ©
- μ: βλμκ΄ μ΄μ©μβ vs. βλμκ΄ μννΈμ¨μ΄ μ¬μ©μβμ λν΄ βuserβ μ¬μ©
- Structure clash(ꡬ쑰 μΆ©λ): λμΌν κ°λ
μ΄ λ€λ₯Έ κΈ°μ μμ λ€λ₯΄κ² ꡬ쑰νλ¨
- μ: βlatest return dateβκ° μμ (μ: κΈμμΌ μ€ν 5μ) vs. μκ° κ°κ²©(μ: κΈμμΌ)
- Strong conflict(κ°ν μΆ©λ): ν¨κ» λ§μ‘±λ μ μλ κΈ°μ λ€
- μ: βμ°Έκ°μ μ μ½ μ‘°κ±΄μ λ€λ₯Έ λꡬμκ²λ 곡κ°λ μ μμβ vs. βνμ κ°μμλ μ°Έκ°μ μ μ½ μ‘°κ±΄μ μμμΌ ν¨β
- Weak conflict(divergence)(μ½ν μΆ©λ(λΆμΌμΉ)): μΌλΆ boundary condition(κ²½κ³ μ‘°κ±΄) νμμ ν¨κ» λ§μ‘±λ μ μλ κΈ°μ λ€
- μ: βμ΄μ©μλ Xμ£Ό μ΄λ΄μ λΉλ¦° λμλ₯Ό λ°λ©ν΄μΌ ν¨β vs βμ΄μ©μλ νμν λ§νΌ λΉλ¦° λμλ₯Ό μμ§ν΄μΌ ν¨βμ βνμν > Xμ£ΌβμΈ κ²½μ°μλ§ λͺ¨μ
Handling Inconsistencies
- μ©μ΄, λͺ μΉ, ꡬ쑰: Build glossary(μ©μ΄μ§), domain model(λλ©μΈ λͺ¨λΈ) ꡬμΆ
- μ½ν, κ°ν μΆ©λ: νμ νμ
- μμΈ: μ΄ν΄κ΄κ³μλ€μ λ€λ₯Έ λͺ©ν => μꡬμ¬ν μΈλΆμμ ν΄κ²°
- μμΈ: quality tradeoffs(νμ§ μ μΆ©) => μ νΈλ νμ
Resolution Strategies
- μΆ©λμ μλ³νκ³ ν΄κ²°νκΈ° μν λ€μν νΉμ νλ‘μΈμ€, heuristics(ν΄λ¦¬μ€ν±), techniques(κΈ°λ²) μ‘΄μ¬.
Requirement Traceability
- μꡬμ¬ν κ°μ μ°κ²° μ μ§
- 무μμ΄ λ¬΄μμΌλ‘λΆν° λΉλ‘―λλκ°
Requirement Prioritization
- λΉμ©, μκ° λ° κΈ°ν μ ν
- μꡬμ¬ν κ°μ μμ‘΄μ±
- μμΌλ©΄ μ’μ κ²(Nice to have)
- Value contribution(κ°μΉ κΈ°μ¬)μ κΈ°λ°ν μ λ΅
