6. Requirements
Learning Goals
- Software engineering(์ํํธ์จ์ด ๊ณตํ)์์ requirements(์๊ตฌ์ฌํญ)์ ์ค์์ฑ๊ณผ ์ด๋ ค์ ์ค๋ช
- ์๊ตฌ์ฌํญ์ด ์ด๋ป๊ฒ ๊ทธ๋ฆฌ๊ณ ์ ์ํ๋ ์์คํ ๊ณผ ๊ทธ ํ๊ฒฝ ๊ฐ์ ๊ด๊ณ๋ฅผ ๋ช ํํ ํ๋์ง ์ค๋ช . Assumptions(๊ฐ์ ) ์๋ณ.
- Functional requirements(๊ธฐ๋ฅ์ ์๊ตฌ์ฌํญ)์ quality requirements(ํ์ง ์๊ตฌ์ฌํญ) ๊ฐ์ ๊ตฌ๋ณ ๋ฐ ์์ ์ ๊ณต; ๋น๊ณต์์ ๊ธฐ์ ๊ณผ verifiable requirements(๊ฒ์ฆ ๊ฐ๋ฅํ ์๊ตฌ์ฌํญ) ๊ฐ์ ๊ตฌ๋ณ ๋ฐ ์์ ์ ๊ณต.
- ํ์ง ์๊ตฌ์ฌํญ์ ์ธก์ ๊ฐ๋ฅํ ๋ฐฉ์์ผ๋ก ๊ธฐ์
Overly Simplified Definition
์๊ตฌ์ฌํญ์ ์์คํ ์ด ๋ฌด์์ ํ ๊ฒ์ธ์ง(What)๋ฅผ ๋งํจ (์ด๋ป๊ฒ(How) ํ ๊ฒ์ธ์ง๊ฐ ์๋).
Fred Brooks, on Requirements
- ์ํํธ์จ์ด ์์คํ ๊ตฌ์ถ์์ ๊ฐ์ฅ ์ด๋ ค์ด ๋จ์ผ ๋ถ๋ถ์ ์ ํํ ๋ฌด์์ ๋ง๋ค์ง ๊ฒฐ์ ํ๋ ๊ฒ์.
- ์์ธํ ๊ธฐ์ ์ ์๊ตฌ์ฌํญ์ ์๋ฆฝํ๋ ๊ฒ๋งํผ ์ด๋ ค์ด ๊ฐ๋ ์์ ์ ์์...
- ์๋ชป ์ํ๋์์ ๋ ๊ฒฐ๊ณผ ์์คํ ์ ๊ทธํ ๋ก ์ฌ๊ฐํ๊ฒ ์์์ํค๋ ๋ค๋ฅธ ๋ถ๋ถ์ ์์.
- ๋์ค์ ๋ฐ๋ก์ก๊ธฐ ๋ ์ด๋ ค์ด ๋ถ๋ถ์ ์์.
A Problem That Stands the Test of Timeโฆ
- 350๊ฐ ๊ธฐ์
์ 8000๊ฐ ํ๋ก์ ํธ์ ๋ํ 1994๋
์ค๋ฌธ์กฐ์ฌ ๊ฒฐ๊ณผ: 31%์ ํ๋ก์ ํธ๊ฐ ์๋ฃ ์ ์ทจ์; 16%์ ํ๋ก์ ํธ๊ฐ ์์ฐ ๋ด ์ ์ ๋ฉํ
- ์ดํ Standish group(์คํ ๋์ ๊ทธ๋ฃน)์ ์ํด ์ ์ฌํ ๊ฒฐ๊ณผ ๋ณด๊ณ ๋จ.
- ์์ธ
- Incomplete requirements(๋ถ์์ ํ ์๊ตฌ์ฌํญ)(13.1%)
- Lack of user involvement(์ฌ์ฉ์ ์ฐธ์ฌ ๋ถ์กฑ)(12.4%)
- Lack of resources(์์ ๋ถ์กฑ)(10.6%)
- Unrealistic expectations(๋นํ์ค์ ์ธ ๊ธฐ๋)(9.9%)
- Lack of executive support(๊ฒฝ์์ง ์ง์ ๋ถ์กฑ)(9.3%)
- Changing requirements and specifications(์๊ตฌ์ฌํญ ๋ฐ ๋ช ์ธ ๋ณ๊ฒฝ)(8.7%)
- Lack of planning(๊ณํ ๋ถ์กฑ)(8.1%)
- System no longer needed(์์คํ ์ด ๋ ์ด์ ํ์ํ์ง ์์)(7.5%) .
Why Is This Hard?
Communication Problem
- ๋ชฉํ: ๋ฌด์์ ๋ง๋ค์ด์ผ ํ๋์ง ํ์ .
- ์ฌ๋ฐ๋ฅธ ๊ฒ์ด ๋ง๋ค์ด์ง๋๋ก ๊ทธ ์์ด๋์ด๋ค์ ํํ.
Overall Problems
- ๊ด๋ จ๋ ํ์ ๋ฌธ์ ?
- ํ์ ๊ธฐ๋ฅ?
- ์์ผ๋ฉด ์ข์ ๊ธฐ๋ฅ?
- ๊ธฐ๋๋๋ ํ์ง?
- ์ด๋ค ํ์ง๊ณผ ๊ฐ๊ฒฉ์ผ๋ก ์ผ๋ง๋ ๋นจ๋ฆฌ ์ ๊ณต?
Examples of Requirements
[suspicious link removed]
User Stories(์ฌ์ฉ์ ์คํ ๋ฆฌ)
The Card
- โ[์ญํ ]๋ก์, [๊ฐ์น]๋ฅผ ์ํด [๊ธฐ๋ฅ]์ ์ํ๋คโ
- 3x5 ์นด๋์ ๋ง์์ผ ํจ
How to Evaluate User Story?
http://dev.one80services.com/user-stories/writing-good-user-stories-hint-its-not-about-writing/
INVESTS ์์น
Independent(๋ ๋ฆฝ์ )
- ์์์ ๊ด๊ณ์์ด ์ผ์ ๊ณํ ๊ฐ๋ฅ.
- ๊ฐ๋ ์ ์ผ๋ก ์ค๋ณต๋์ง ์์
- ํญ์ ๊ฐ๋ฅํ ๊ฒ์ ์๋
Negotiable(ํ์ ๊ฐ๋ฅ)
- ์ธ๋ถ ์ฌํญ์ ๊ฐ๋ฐ ์ค์ ํ์๋จ
- ์ข์ ์คํ ๋ฆฌ๋ ์ธ๋ถ ์ฌํญ์ด ์๋ ๋ณธ์ง์ ํฌ์ฐฉ
Valuable(๊ฐ์น ์๋)
- ์ด ์คํ ๋ฆฌ๋ ๋๊ตฐ๊ฐ(๊ฐ๊ธ์ ๊ณ ๊ฐ)์๊ฒ ๊ฐ์น๊ฐ ์์ด์ผ ํจ
- ํนํ ์ด์๋ฅผ ๋ถํ ํ ๋ ๊ด๋ จ๋จ
Estimable(์ถ์ ๊ฐ๋ฅํ)
- ํฌ๊ธฐ๋ฅผ ์๊ฒ ์ ์งํ๋ ๋ฐ ๋์
- ์ฐ๋ฆฌ๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ํ์ํ๋์ง ํ์ธ
- โ๊ณํ์ ์๋ฌด๊ฒ๋ ์๋๋ฉฐ, ๊ณํํ๋ ๊ฒ์ด ์ ๋ถ๋คโ - ๋์์ดํธ D. ์์ด์ ํ์
Small(์์)
- 3x5 ์นด๋์ ๋ง์
- ์ต๋ 2 person-weeks(์ธ-์ฃผ)์ ์์ ๋
- ๋๋ฌด ํผ == ์ถ์ ๋ถ๊ฐ๋ฅ
Testable(ํ ์คํธ ๊ฐ๋ฅํ)
- ์์ ์ ๋ํ ์ดํด ๋ณด์ฅ
- ์ธ์ ์์ ์ โ์๋ฃโ๋ก ํ์ํ ์ ์๋์ง ์
- ํ ์คํธ ๋ถ๊ฐ๋ฅ == ์ดํดํ์ง ๋ชปํจ
Requirements in Software Projects
Less Simplified Definition: Online Shopping
- Stories: Scenarios(์๋๋ฆฌ์ค), Use Cases(์ ์ค ์ผ์ด์ค), User Stories
- โ๊ณ ๊ฐ์ด ๊ตฌ๋งค ์ ๋ณด๋ฅผ ์ ์ถํ๊ณ ๊ฒฐ์ ๊ฐ ์ ์๋ ํ, ์ฃผ๋ฌธ์ด ์ฒ๋ฆฌ๋์ด ๊ณ ๊ฐ์ ๋ฐฐ์ก ์ฃผ์๋ก ๋ฐฐ์ก๋ฉ๋๋ค.โ
- Optative statements(ํฌ๋ง์ ๊ธฐ์ )
- ์์คํ ์ ๊ณ ๊ฐ์๊ฒ ๋ฐฐ์ก ์ํ๋ฅผ ์๋ ค์ผ ํจ(shall)
- Domain Properties(๋๋ฉ์ธ ์์ฑ) ๋ฐ Assumptions
- ๋ชจ๋ ์ ํ์๋ ๊ณ ์ ํ ์ ํ ์ฝ๋๊ฐ ์์
- ๊ฒฐ์ ๋ ์น์ธ ํ ์ ์๋ ๊ฒ์
What is Requirements Engineering?
- Knowledge acquisition(์ง์ ํ๋) โ ์์คํ
์ ๋ํ ๊ด๋ จ ์ธ๋ถ ์ ๋ณด๋ฅผ ์ด๋ป๊ฒ ํฌ์ฐฉํ๋๊ฐ?
- ๊ทธ ์ง์์ ์์ ํ๊ณ ์ผ๊ด์ฑ์ด ์๋๊ฐ?
- Knowledge representation(์ง์ ํํ) โ ์ผ๋จ ํฌ์ฐฉ๋๋ฉด, ์ด๋ป๊ฒ ๊ฐ์ฅ ํจ๊ณผ์ ์ผ๋ก ํํํ๋๊ฐ?
- ๋๊ตฌ๋ฅผ ์ํด ํํํ๋๊ฐ?
- ๋ค๋ฅธ ์ฌ๋๋ค์๊ฒ ์ผ๊ด๋๊ฒ ์ ๋ฌ๋๋๊ฐ?
- ๋๋๋ก requirements definition(์๊ตฌ์ฌํญ ์ ์)๊ณผ requirements specification(์๊ตฌ์ฌํญ ๋ช ์ธ)์ ๊ตฌ๋ณํ๋ ๊ฒ์ ๋ณผ ์ ์์.
Functional Requirements
- ๊ธฐ๊ณ๊ฐ ํด์ผ ํ ์ผ
- Input(์ ๋ ฅ)
- Output(์ถ๋ ฅ)
- Interface(์ธํฐํ์ด์ค)
- Response to events(์ด๋ฒคํธ์ ๋ํ ์๋ต)
- ๊ธฐ์ค:
- Completeness(์์ ์ฑ): ๋ชจ๋ ์๊ตฌ์ฌํญ์ด ๋ฌธ์ํ๋จ
- Consistency(์ผ๊ด์ฑ): ์๊ตฌ์ฌํญ ๊ฐ ์ถฉ๋ ์์
- Precision(์ ํ์ฑ): ์๊ตฌ์ฌํญ์ ๋ชจํธํจ ์์
Quality/Non-functional Requirements
- ์์คํ ์ ๊ธฐ๋ฅ์ด ์๋๋ผ, ๊ทธ ๊ธฐ๋ฅ์ ์ ๋ฌํ๋ ํ์ง์ ๋ช ์.
- Functional requirements๋ณด๋ค ๋ ์ค์ํ ์ ์์
- ๋๋ฝ๋ ๊ธฐ๋ฅ์ ์ฐํํ์ฌ ์์ ๊ฐ๋ฅ
- ํ์ง์ด ๋ฎ์ ์์คํ ์ ์ฌ์ฉ ๋ถ๊ฐ๋ฅํ ์ ์์
Environment and the Machine
Pamela Zave & Michael Jackson, โFour Dark Corners of Requirements Engineering,โ ACM Transactions on Software Engineering and Methodology, 6(1): 1-30, 1997.
Example: Automobile
Airbus Braking System
- Airbus A320-200 ๋นํ๊ธฐ์๋ ์ํํธ์จ์ด ๊ธฐ๋ฐ ์ ๋ ์์คํ
์ด ์์:
- Ground spoilers(์ง์ ์คํฌ์ผ๋ฌ)(์๋ ฅ์ ์ค์ด๊ธฐ ์ํด ํผ์ณ์ง๋ ๋ ๊ฐํ)
- Reverse thrusters(์ญ์ถ์ง ์ฅ์น)
- ์ฃผ ์ฐฉ๋ฅ ์ฅ์น์ ํ ๋ธ๋ ์ดํฌ
- ์ ๋ ์์คํ ์ ์๋์ํค๋ ค๋ฉด ๋นํ๊ธฐ ๋ฐํด๊ฐ ์ง๋ฉด์ ๋ฟ์์ผ ํจ.
Lufthansa Flight 2904
Lufthansa Flight 2904
๋ ๊ฐ์ง โ์ง์ ์ฐฉ์งโ ์กฐ๊ฑด์ด ์์:
- ์ด๋ ์ชฝ์ด๋ ์ถฉ๊ฒฉ ํก์ ์ฅ์น๊ฐ 6300 kg์ ํ์ค์ ๊ฒฌ๋ค
- ์์ชฝ ๋ฐํด๊ฐ 72 knots(133.3 km/h) ์ด์์ผ๋ก ํ์
- Ground spoilers๋ ์กฐ๊ฑด 1 ๋๋ 2์ ํ์ฑํ
- Reverse thrust๋ ์์ชฝ ์ฃผ ์ฐฉ๋ฅ ์ฅ์น์์ ์กฐ๊ฑด 1์ ํ์ฑํ
- ํ ๋ธ๋ ์ดํฌ ํ์ฑํ๋ ํ์ ๊ฒ์ธ๊ณผ ์กฐ๊ฑด 2์ ๋ฐ๋ผ ๋ค๋ฆ
Why Didnโt It Stop?
- ์ ๋ ์์คํ
์ด ํ์ฑํ๋์ง ์์
- ์ฒซ ๋ฒ์งธ ์ง์ ์ ๋นํ๊ธฐ๊ฐ(์ธกํ์ ๋์ํ๊ธฐ ์ํด) ๊ธฐ์ธ์ด์ ธ ์ฐฉ๋ฅํ๊ธฐ ๋๋ฌธ์ ์ถฉ์กฑ๋์ง ์์.
- ๋ฐ๋ผ์ ์์ชฝ ์ฐฉ๋ฅ ์ฅ์น์ ํ์ํ ์๋ ฅ์ ๋๋ฌํ์ง ๋ชปํจ.
- ๋ ๋ฒ์งธ ์ง์ ์ ์ ์ ํ์ฃผ๋ก์์์ hydroplaning(์๋ง ํ์) ํจ๊ณผ๋ก ์ธํด ์ถฉ์กฑ๋์ง ์์.
- ์กฐ์ข ์ฌ๊ฐ ์ํํธ์จ์ด ๊ฒฐ์ ์ ์๋์ผ๋ก ๋ฌด์ํ ๋ฐฉ๋ฒ์ด ์์
Implementation Bias(๊ตฌํ ํธํฅ)
์๊ตฌ์ฌํญ์ ์์คํ ์ด ๋ฌด์์ ํ ๊ฒ์ธ์ง(What)๋ฅผ ๋งํจ(์ด๋ป๊ฒ(How) ํ ๊ฒ์ธ์ง๊ฐ ์๋).
Why not โHowโ?
Avoiding Implementation Bias
- ์๊ตฌ์ฌํญ์ ํ๊ฒฝ-๊ธฐ๊ณ ์ธํฐํ์ด์ค์์ ๊ด์ฐฐ ๊ฐ๋ฅํ ๊ฒ์ ๊ธฐ์ .
- Indicative mood(์ง์ค๋ฒ)๋ ํ๊ฒฝ์(์๋ ๊ทธ๋๋ก, as-is) ๊ธฐ์
- Optative mood๋ ๊ธฐ๊ณ๊ฐ ํฌํจ๋ ํ๊ฒฝ์(๋ ๋ชจ์ต, to-be) ๊ธฐ์ .
This Can Be Subtle
- โ์ฌ์ ์ ํด์ ํ ์ด๋ธ์ ์ ์ฅ๋์ด์ผ ํ๋ค(shall)โ vs. โ์ํํธ์จ์ด๋ 5์ด ์ด๋ด์ ์์ฒญ์ ์๋ตํด์ผ ํ๋ค(shall).โ
- โwhatโ vs. โhowโ ๋์ , โ์ด ์๊ตฌ์ฌํญ์ด ๊ธฐ๊ณ ๋๋ฉ์ธ๋ง์ ์์ฑ์ธ๊ฐ?โ๋ผ๊ณ ์ง๋ฌธ.
Quality Requirements
Functional Requirements
- ๊ธฐ๊ณ๊ฐ ํด์ผ ํ ์ผ
- Input
- Output
- Interface
- Response to events
- ๊ธฐ์ค:
- Completeness: ๋ชจ๋ ์๊ตฌ์ฌํญ์ด ๋ฌธ์ํ๋จ
- Consistency: ์๊ตฌ์ฌํญ ๊ฐ ์ถฉ๋ ์์
- Precision: ์๊ตฌ์ฌํญ์ ๋ชจํธํจ ์์
Quality/Non-functional Requirements
- ์์คํ ์ ๊ธฐ๋ฅ์ด ์๋๋ผ, ๊ทธ ๊ธฐ๋ฅ์ ์ ๋ฌํ๋ ํ์ง์ ๋ช ์.
- Functional requirements๋ณด๋ค ๋ ์ค์ํ ์ ์์
- ๋๋ฝ๋ ๊ธฐ๋ฅ์ ์ฐํํ์ฌ ์์ ๊ฐ๋ฅ
- ํ์ง์ด ๋ฎ์ ์์คํ ์ ์ฌ์ฉ ๋ถ๊ฐ๋ฅํ ์ ์์
Here is the thing
- ๋๊ฐ ๋๋ฆฌ๊ณ , ๋นํจ์จ์ ์ด๋ฉฐ, ์ ์ง๋ณด์ํ๊ธฐ ์ด๋ ค์ด ์์คํ ์ ์๊ตฌํ๊ฒ ๋๊ฐ?
- ํ์ง ์๊ตฌ์ฌํญ์ ์๊ฐํ๋ ๋ ์ข์ ๋ฐฉ๋ฒ์ ๋์์ ์ธ ๊ตฌํ ์ค์์ ์ ํํ๋ ๋ฐ ๋์์ด ๋๋ design criteria(์ค๊ณ ๊ธฐ์ค)๋ก ๋ณด๋ ๊ฒ.
- ์ง๋ฌธ: ์ ํ์ด ํ์ฉ ๊ฐ๋ฅํ ์์ค์ด ๋๋ ค๋ฉด ์ด๋ฌํ ์๊ตฌ์ฌํญ์ ์ด๋ ์ ๋๊น์ง ๋ง์กฑํด์ผ ํ๋๊ฐ?
Quality Requirements Examples
- ์น์์ ๋น๋์ค ํ๋งค?
Expressing Quality Requirements
- ์๊ตฌ์ฌํญ์ ๊ณ์ฝ์ ์ญํ ์ ํจ: ํ ์คํธ ๊ฐ๋ฅ/๋ฐ์ฆ ๊ฐ๋ฅํด์ผ ํจ.
- Informal goal(๋น๊ณต์์ ๋ชฉํ): ์ฌ์ฉ ํธ์์ฑ๊ณผ ๊ฐ์ ์ผ๋ฐ์ ์ธ ์๋.
- ์์คํ ์ฌ์ฉ์์ ์๋๋ฅผ ์ ๋ฌํ๋ฏ๋ก ๊ฐ๋ฐ์์๊ฒ ์ฌ์ ํ ์ ์ฉํ ์ ์์.
- Verifiable non-functional requirement: ๊ฐ๊ด์ ์ผ๋ก ํ ์คํธํ ์ ์๋ ์ผ๋ถ ์ธก์ ๊ธฐ์ค์ ์ฌ์ฉํ ๊ธฐ์ .
Examples
- Confidentiality(๊ธฐ๋ฐ์ฑ) ์๊ตฌ์ฌํญ: ์ง์์ด ์๋ ์ด์ฉ์๋ ๋ค๋ฅธ ์ฌ๋์ด ์ด๋ค ์ฑ ์ ๋น๋ ธ๋์ง ์ ๋ ์ ์ ์์.
- Privacy(์ฌ์ํ) ์๊ตฌ์ฌํญ: ์ฐธ๊ฐ์์ ์ผ๊ธฐ๋ ๋ณธ์ธ์ ๋์ ์์ด ๋ค๋ฅธ ์ด๋ ์ฐธ๊ฐ์์๊ฒ ์ ๋ ๊ณต๊ฐ๋ ์ ์์.
- Integrity(๋ฌด๊ฒฐ์ฑ) ์๊ตฌ์ฌํญ: ๋์ ๋ฐ๋ฉ์ ๋์๊ด ์ง์์ ์ํด์๋ง ์ ํํ๊ฒ ์ธ์ฝ๋ฉ๋์ด์ผ ํจ.
- Availability(๊ฐ์ฉ์ฑ) ์๊ตฌ์ฌํญ:
- ๋ถ๋ ์ด์ฉ์ ๋ธ๋๋ฆฌ์คํธ๋ ๋์๊ด ์ง์์ด ์ธ์ ๋ ์ง ์ฌ์ฉํ ์ ์์ด์ผ ํจ.
- ์ด์ฐจ ์์น ์ ๋ณด๋ ์ธ์ ๋ ์ง ์ค์์ญ ์ปดํจํฐ์์ ์ฌ์ฉํ ์ ์์ด์ผ ํจ.
- Reliability(์ ๋ขฐ์ฑ) ์๊ตฌ์ฌํญ: ์ด์ฐจ ๊ฐ์ ์ ์ด ์ํํธ์จ์ด๋ 100์๊ฐ ๋จ์์ mean time between failures(ํ๊ท ๊ณ ์ฅ ๊ฐ๊ฒฉ)๋ฅผ ๊ฐ์ ธ์ผ ํจ.
- Accuracy(์ ํ์ฑ) ์๊ตฌ์ฌํญ:
- ๋์ ๋์ถ ์ํํธ์จ์ด๋ ์ฑ ์ด ์ค์ ๋ก ๋์๊ด ์๊ฐ์ ์ด์ฉ ๊ฐ๋ฅํ ๊ฒฝ์ฐ์๋ง, ๊ทธ๋ฆฌ๊ณ ๊ทธ ๊ฒฝ์ฐ์๋ง ์ด์ฉ ๊ฐ๋ฅํ๋ค๊ณ ๋ช ์ํด์ผ ํจ.
- ์ด์ฐจ ๊ด์ ์ฌ๊ฐ ์ฌ์ฉํ๋ ์ด์ฐจ ์์น ์ ๋ณด๋ ์ค์ ์ด์ฐจ ์์น๋ฅผ ์ต๋ 4๋ฏธํฐ ์ด๋ด๋ก ์ ํํ๊ฒ ๋ฐ์ํด์ผ ํจ.
- ํ์ ์ค์ผ์ค๋ฌ๊ฐ ์ฌ์ฉํ๋ ์ ์ฝ ์กฐ๊ฑด์ ์ด๋๋ ์ฐธ๊ฐ์์ ์ค์ ์ ์ฝ ์กฐ๊ฑด์ ์ ํํ๊ฒ ๋ฐ์ํด์ผ ํจ.
- Performance(์ฑ๋ฅ) ์๊ตฌ์ฌํญ:
- ์์ง ์ ๋ณด ์ง์์ ๋ํ ์๋ต์ 2์ด ๋ฏธ๋ง์ด์ด์ผ ํจ.
- ๊ฐ์ ๋ช ๋ น์ 3์ด๋ง๋ค ๋ชจ๋ ์ด์ฐจ์ ๋ฐํ๋์ด์ผ ํจ.
- ํ์ ์ค์ผ์ค๋ฌ๋ ์ต๋ 9๊ฐ์ ์์ฒญ์ ๋ณ๋ ฌ๋ก ์ฒ๋ฆฌํ ์ ์์ด์ผ ํจ.
- ์๋ก์ด e-๊ตฌ๋ ๊ธฐ๋ฅ์ 30%์ ๋น์ฉ ์ ๊ฐ์ ๋ณด์ฅํด์ผ ํจ.
- Interface(์ธํฐํ์ด์ค) ์๊ตฌ์ฌํญ, interoperability(์ํธ์ด์ฉ์ฑ) ์๊ตฌ์ฌํญ, compliance(์ค์์ฑ) ์๊ตฌ์ฌํญ, architectural(์ํคํ ์ฒ) ์๊ตฌ์ฌํญ, development(๊ฐ๋ฐ) ์๊ตฌ์ฌํญ ๋ฑ.
Informal vs. Verifiable Example
- ๋น๊ณต์์ ๋ชฉํ: โ์์คํ ์ ์๋ จ๋ ๊ด์ ์ฌ๊ฐ ์ฌ์ฉํ๊ธฐ ์ฌ์์ผ ํ๋ฉฐ, ์ฌ์ฉ์ ์ค๋ฅ๊ฐ ์ต์ํ๋๋๋ก ๊ตฌ์ฑ๋์ด์ผ ํจ.โ
- ๊ฒ์ฆ ๊ฐ๋ฅํ ๋น๊ธฐ๋ฅ์ ์๊ตฌ์ฌํญ: โ์๋ จ๋ ๊ด์ ์ฌ๋ ์ด 2์๊ฐ์ ๊ต์ก ํ์ ๋ชจ๋ ์์คํ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์ด์ผ ํจ. ์ด ๊ต์ก ํ, ์๋ จ๋ ์ฌ์ฉ์๊ฐ ์ ์ง๋ฅด๋ ํ๊ท ์ค๋ฅ ์๋ ํ๋ฃจ ํ๊ท 2๊ฐ๋ฅผ ์ด๊ณผํ์ง ์์์ผ ํจ.โ
Requirement Metrics(์๊ตฌ์ฌํญ ์ธก์ ๊ธฐ์ค)
Activities of Requirements Engineering
What is Requirements Engineering(RE)?
- Knowledge acquisition โ ์์คํ
์ ๋ํ ๊ด๋ จ ์ธ๋ถ ์ ๋ณด๋ฅผ ์ด๋ป๊ฒ ํฌ์ฐฉํ๋๊ฐ?
- ๊ทธ ์ง์์ ์์ ํ๊ณ ์ผ๊ด์ฑ์ด ์๋๊ฐ?
- Knowledge representation โ ์ผ๋จ ํฌ์ฐฉ๋๋ฉด, ์ด๋ป๊ฒ ๊ฐ์ฅ ํจ๊ณผ์ ์ผ๋ก ํํํ๋๊ฐ?
- ๋๊ตฌ๋ฅผ ์ํด ํํํ๋๊ฐ?
- ๋ค๋ฅธ ์ฌ๋๋ค์๊ฒ ์ผ๊ด๋๊ฒ ์ ๋ฌ๋๋๊ฐ?
- ๋๋๋ก requirements definition๊ณผ requirements specification์ ๊ตฌ๋ณํ๋ ๊ฒ์ ๋ณผ ์ ์์.
Why, What, Who of RE
- System-as-is(ํ์ฌ ์์คํ
)
- ๋ฌธ์ , ๊ธฐํ, ์์คํ ์ง์
- System-to-be(๋ฏธ๋ ์์คํ
)
- ์๊ตฌ์ฌํญ, ์ ์ฝ, ๊ฐ์
- Objectives(๋ชฉํ)
- Why
- ์ ์๋ก์ด ์์คํ ์ธ๊ฐ?
- What
- ์ด๋ค ์๋น์ค?
- Who
- ๋๊ฐ ๋ฌด์์ ์ฑ ์์ง ๊ฒ์ธ๊ฐ?
- satisfy(์ถฉ์กฑ)
- assignment(ํ ๋น)
- Why
The WHY Dimension
- System-to-be์ Objectives ์๋ณ, ๋ถ์, ๊ตฌ์ฒดํ
- System-as-is์ ๋ถ์๋ ๊ฒฐํจ์ ํด๊ฒฐํ๊ธฐ ์ํด
- ๋น์ฆ๋์ค ๋ชฉํ์ ๋ง์ถฐ
- ๊ธฐ์ ๊ธฐํ๋ฅผ ํ์ฉํ์ฌ
- ์: ๊ณตํญ ์ด์ฐจ ์ ์ด โ๋ ๋ง์ ์น๊ฐ ์๋โ โํฐ๋ฏธ๋ ๊ฐ ํ์น ์๊ฐ ๋จ์ถโ
- ์ด๋ ค์
- ๋๋ฉ์ธ ์ง์ ํ๋
- ๋์ ํ๊ฐ(์: ๋์ผํ ๋ชฉํ๋ฅผ ๋ง์กฑ์ํค๋ ๋์์ ๋ฐฉ๋ฒ)
- ๋ฌธ์ -๊ธฐํ ์ฐ๊ฒฐ ๋ฐ ํ๊ฐ: ์ํฅ, ๊ด๋ จ ์ํ
- ์์ถฉํ๋ ๋ชฉํ ์ฒ๋ฆฌ Objectives
The WHAT Dimension
- System-to-be์ ๊ธฐ๋ฅ์ ์๋น์ค(์ํํธ์จ์ด ์๋น์ค, ๊ด๋ จ ์๋ ์ ์ฐจ) ์๋ณ ๋ฐ ์ ์
- ์๋ณ๋ ๋ชฉํ๋ฅผ ๋ง์กฑ์ํค๊ธฐ ์ํด
- ํ์ง ์ ์ฝ(๋ณด์, ์ฑ๋ฅ ๋ฑ)์ ๋ฐ๋ผ
- ํ๊ฒฝ์ ๋ํ ํ์ค์ ์ธ ๊ฐ์ ์ ๊ธฐ๋ฐํ์ฌ
- ์: ๊ณตํญ ์ด์ฐจ ์ ์ด โ์์ ํ ์ด์ฐจ ๊ฐ์ ๊ณ์ฐโ โ์ด์ฐจ ๋ด ์น๊ฐ์ ์ํ ์ ์ฉํ ์ ๋ณด ํ์โ
- ์ด๋ ค์
- ์ฌ๋ฐ๋ฅธ ๊ธฐ๋ฅ ์งํฉ ์๋ณ
- ๋ชจ๋ ๋น์ฌ์๊ฐ ์ดํดํ ์ ์๋๋ก ์ ํํ๊ฒ ๋ช ์
- ์์คํ ๋ชฉํ์ ๋ํ backward traceability(์ญ์ถ์ ์ฑ) ๋ณด์ฅ ์๊ตฌ์ฌํญ, ์ ์ฝ, ๊ฐ์
The WHO Dimension
- System-to-be ๊ตฌ์ฑ ์์ ๊ฐ์ ๋ชฉํ, ์๋น์ค, ์ ์ฝ์ ๋ํ ์ฑ
์ ํ ๋น
- ๊ทธ๋ค์ ์ญ๋๊ณผ ์์คํ ์ ๋ชฉํ์ ๊ธฐ๋ฐํ์ฌ
- ์ํํธ์จ์ด-ํ๊ฒฝ ๊ฒฝ๊ณ๋ฅผ ์ฐ์ถ
- ์: ๊ณตํญ ์ด์ฐจ ์ ์ด
- โ์์ ํ ์ด์ฐจ ๊ฐ์โ... software-to-be(๊ฐ๋ฐ๋ ์ํํธ์จ์ด)์ ์ง์ ์ ์ธ ์ฑ ์ ํ์(๋ฌด์ธ ์ต์ ) ๋๋ ์ํํธ์จ์ด ์ง์๋ฅผ ๋ฐ๋ฅด๋ ์ด์ ์ ์ฑ ์ ํ์?
- โ์ด์ฐจ ์๋/์์น ์ ํํ ์ถ์ โ... ์ถ์ ์์คํ ์ฑ ์ ํ์ ๋๋ ์ ํ ์ด์ฐจ ์ฑ ์ ํ์?
- ์ด๋ ค์
- ์ฌ๋ฐ๋ฅธ ์๋ํ ์์ค์ ๊ฒฐ์ ํ๊ธฐ ์ํด ๋์ ํ๊ฐ
Typical Steps(Iterative)
- Identifying stakeholders(์ดํด๊ด๊ณ์ ์๋ณ)
- Domain understanding(๋๋ฉ์ธ ์ดํด)
- Requirements elicitation(์๊ตฌ์ฌํญ ๋์ถ)(์ธํฐ๋ทฐ ๋ฑ)
- Evaluation and agreement(ํ๊ฐ ๋ฐ ํฉ์)(์ถฉ๋, ์ฐ์ ์์ ์ง์ , ์ํ ๋ฑ)
- Documentation/specification(๋ฌธ์ํ/๋ช ์ธํ)
- Consolidation / quality assurance(ํตํฉ / ํ์ง ๋ณด์ฆ)
Target Qualities for RE Process
- Objectives, requirements, assumptions์ Completeness
- Requirements Document(RD)(์๊ตฌ์ฌํญ ๋ฌธ์) ํญ๋ชฉ์ Consistency
- ์๊ตฌ์ฌํญ, ๊ฐ์ , domain props(๋๋ฉ์ธ ์์ฑ)์ Adequacy(์ ์ ์ฑ)
- RD ํญ๋ชฉ์ Unambiguity(๋ช ํ์ฑ)
- ์๊ตฌ์ฌํญ, ๊ฐ์ ์ Measurability(์ธก์ ๊ฐ๋ฅ์ฑ)
- ์๊ตฌ์ฌํญ, ๊ฐ์ ์ Pertinence(๊ด๋ จ์ฑ)
- ์๊ตฌ์ฌํญ์ Feasibility(์คํ ๊ฐ๋ฅ์ฑ)
- RD ํญ๋ชฉ์ Comprehensibility(์ดํด ๊ฐ๋ฅ์ฑ)
- RD์ Good structuring(์ข์ ๊ตฌ์กฐํ)
- RD ํญ๋ชฉ์ Modifiability(์์ ๊ฐ๋ฅ์ฑ)
- RD ํญ๋ชฉ์ Traceability(์ถ์ ์ฑ)
Types of RE Errors & Flaws
- Omission(๋๋ฝ)
- Contradiction(๋ชจ์)
- Inadequacy(๋ถ์ ์ ์ฑ)
- Ambiguity(๋ชจํธ์ฑ)
- Unmeasurability(์ธก์ ๋ถ๊ฐ๋ฅ์ฑ)
- Noise(๋ ธ์ด์ฆ), overspecification(๊ณผ์ ๋ช ์ธ)
- Unfeasibility(์คํ ๋ถ๊ฐ๋ฅ์ฑ)(ํฌ๋ง ์ฌํญ)
- Unintelligibility(์ดํด ๋ถ๊ฐ๋ฅ์ฑ)
- Poor structuring(๊ตฌ์กฐ ๋ถ๋), forward reference(์ ๋ฐฉ ์ฐธ์กฐ), remorse(ํํ)
- Opacity(๋ถํฌ๋ช
์ฑ)
- Errors(์ค๋ฅ)
- Flaws(๊ฒฐํจ)
Errors in a Requirements Document
- Omission: ๋ฌธ์ ์ธ๊ณ(problem world)์ ํผ์ฒ๊ฐ RD ํญ๋ชฉ์ ๊ธฐ์ ๋์ง ์์
- ์: ๋น์ ์ ์ง ์ ์ด์ฐจ ๋ฌธ ์ํ์ ๋ํ ์๊ตฌ์ฌํญ ์์
- Contradiction: RD ํญ๋ชฉ๋ค์ด ๋ฌธ์ ์ธ๊ณ ํผ์ฒ๋ฅผ ํธํ๋์ง ์๋ ๋ฐฉ์์ผ๋ก ๊ธฐ์
- โ๋ฌธ์ ํ๋ซํผ ์ฌ์ด์์ ํญ์ ๋ซํ ์์ด์ผ ํจโ
- ๊ทธ๋ฆฌ๊ณ โ๋น์ ์ ์ง ์ ๋ฌธ์ด ์ด๋ ค์ผ ํจโ
- Inadequacy: RD ํญ๋ชฉ์ด ๋ฌธ์ ์ธ๊ณ ํผ์ฒ๋ฅผ ์ ์ ํ๊ฒ ๊ธฐ์ ํ์ง ๋ชปํจ
- โ์ด์ฐจ ๋ด๋ถ ํจ๋์ ๋ค์ ์ ๋ฅ์ฅ์์ ์๋น์ค๋๋ ๋ชจ๋ ํญ๊ณตํธ์ ํ์ํด์ผ ํจโ
- Ambiguity: RD ํญ๋ชฉ์ด ๋ฌธ์ ์ธ๊ณ ํผ์ฒ๋ฅผ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ํด์ํ ์ฌ์ง๋ฅผ ๋
- โ์ด์ฐจ๊ฐ ํ๋ซํผ์ ์ ์งํ์๋ง์ ๋ฌธ์ด ์ด๋ ค์ผ ํจโ
- Unmeasurability: RD ํญ๋ชฉ์ด ์ต์
๋น๊ต๋ ์๋ฃจ์
ํ
์คํธ๋ฅผ ๋ฐฐ์ ํ๋ ๋ฐฉ์์ผ๋ก ๋ฌธ์ ์ธ๊ณ ํผ์ฒ๋ฅผ ๊ธฐ์
- โ์ด์ฐจ ๋ด๋ถ ํจ๋์ ์ฌ์ฉ์ ์นํ์ ์ด์ด์ผ ํจโ
Flaws in a Requirements Document
- Noise: ๋ฌธ์ ์ธ๊ณ ํผ์ฒ์ ๋ํ ์ ๋ณด๋ฅผ ์ ๊ณตํ์ง ์๋ RD ํญ๋ชฉ(๋ณํ: ํต์ ๋์ง ์๋ ์ค๋ณต)
- โ๊ธ์ฐ ํ์งํ์ ์ด์ฐจ ์ฐฝ๋ฌธ์ ๋ถ์ฐฉํด์ผ ํจโ
- Overspecification: ๋ฌธ์ ์ธ๊ณ๊ฐ ์๋ ๊ธฐ๊ณ ์๋ฃจ์
์ ํผ์ฒ๋ฅผ ๊ธฐ์ ํ๋ RD ํญ๋ชฉ
- โ
Alarm๋ฉ์์ง ์์ ์setAlarm๋ฉ์๋๋ฅผ ํธ์ถํด์ผ ํจโ
- โ
- Unfeasibility: ์์ฐ/์ผ์ ๋ด์ ๊ตฌํํ ์ ์๋ RD ํญ๋ชฉ
- โ์ด์ฐจ ๋ด ํจ๋์ ๋ค์ ์ ๋ฅ์ฅ์ ๋ชจ๋ ์ง์ฐ๋ ํญ๊ณตํธ์ ํ์ํด์ผ ํจโ
- Unintelligibility: RD ํญ๋ชฉ์ ์ฌ์ฉํด์ผ ํ๋ ์ฌ๋์ด ์ดํดํ ์ ์์
- 5๊ฐ์ ์ฝ์ด๋ฅผ ํฌํจํ๋ ์๊ตฌ์ฌํญ ๊ธฐ์
- Poor structuring: ํฉ๋ฆฌ์ ์ด๊ณ ๊ฐ์์ ์ธ ๊ตฌ์กฐํ ๊ท์น์ ๋ฐ๋ผ ๊ตฌ์ฑ๋์ง ์์ RD ํญ๋ชฉ
- ๊ฐ์ ์ ์ด์ ์ด์ฐจ ์ถ์ ๋ฌธ์ ์ ๋ค์์
- Forward reference: ์์ง ์ ์๋์ง ์์ ๋ฌธ์ ์ธ๊ณ ํผ์ฒ๋ฅผ ์ฌ์ฉํ๋ RD ํญ๋ชฉ
- ์ต์ ์ ๊ฒฝ์ฐ ์ ์ง ๊ฑฐ๋ฆฌ ๊ฐ๋ ์ด RD์์ ๋ช ํ์ด์ง ๋ค์ ์ ์๋๊ธฐ ์ ์ ์ฌ๋ฌ ๋ฒ ์ฌ์ฉ๋จ
- Remorse: ๋ฌธ์ ์ธ๊ณ ํผ์ฒ๋ฅผ ๋ฆ๊ฒ ๋๋ ๋ถ์์ ์ผ๋ก ๊ธฐ์ ํ๋ RD ํญ๋ชฉ
- ์ ์๋์ง ์์ ์ต์ ์ ๊ฒฝ์ฐ ์ ์ง ๊ฑฐ๋ฆฌ ๊ฐ๋ ์ ์ฌ๋ฌ ๋ฒ ์ฌ์ฉํ ํ, ๋ง์ง๋ง ์ฌ์ฉ์์ ๊ดํธ ์์ ๋ถ์์ ์ธ ์ ์๊ฐ ๋ฐ๋ก ์ด์ด์ง
- Poor modifiability(๋ฎ์ ์์ ์ฉ์ด์ฑ): ๋ณ๊ฒฝ ์ฌํญ์ด RD ์ ์ฒด์ ์ ํ๋์ด์ผ ํ๋ RD ํญ๋ชฉ
- ๋ณ๊ฒฝ๋ ์ ์๋ ์๋์ ๋ํด ๊ณ ์ ๋ ์ซ์ ๊ฐ ์ฌ์ฉ
- Opacity: ๊ทผ๊ฑฐ, ์์ฑ์ ๋๋ ์ข
์์ฑ์ด ๋ณด์ด์ง ์๋ RD ํญ๋ชฉ
- โ๋ช ๋ น๋ ์ด์ฐจ ์๋๋ ํญ์ ๋ฌผ๋ฆฌ์ ์๋๋ณด๋ค ์ต์ 7 mph ๋์์ผ ํจโ์ด๋ผ๋ ๊ธฐ์ ์ ๋ํ ๊ทผ๊ฑฐ ์ค๋ช ์์
Documenting Requirements
- Free unrestricted text(์์ ๋ก์ด ๋น์ ํ ํ ์คํธ)
- Structured text(๊ตฌ์กฐํ๋ ํ ์คํธ)
- Diagrams(๋ค์ด์ด๊ทธ๋จ)
- Formal specifications(์ ํ ๋ช ์ธ)
