• Mindscape ๐Ÿ”ฅ
    • Playlist ๐ŸŽง
  • ๐Ÿค– Artifical Intelligence

    • 1. Basics; Linear Algebra
    • 2. Basics; Linear Algebra (2), Search (1)
    • 3. Search (2)
    • 4. Knowledge and Logic (1)
    • 5. Knowledge and Logic (2)
    • 6. Probability
    • 7. Information Theory
    • 8. Probabilitc Reasoning (2)
    • 9. Probabilitc Reasoning (3)
    • 10. Machine Learning (1)
    • 11. Machine Learning (2)
    • 12. Machine Learning (3)
    • 13. Linear Models
    • 14. Other Classic ML Models (1)
    • 15. Other Classic ML Models (2)
  • ๐Ÿ”’ Computer Security

    • 01. Overview
    • 02. ์ •๋ณด๋ณด์•ˆ์ •์ฑ… ๋ฐ ๋ฒ•๊ทœ
    • 03. Cryptographic Tools
    • 04. User Authentication
    • 05. Access Control
    • 06. Database Security
    • 07. Malicious Software
    • 08. Firmware Analysis
  • ๐Ÿ—„๏ธ Database System

    • 1. Introduction
    • 2. Relational Model
    • 3. SQL
    • 6. E-R Model
    • 7. Relational Database Design (1)
    • 7. Relational Database Design (2)
    • 13. Data Storage Structures
    • 14. Indexing
    • 15. Query Processing
  • ๐Ÿ“ Software Engineering

    • 2. Introduction to Software Engineering
    • 3. Process
    • 4. Process Models
    • 5. Agile
    • 6. Requirements
    • 7. Requirements Elicitation and Documentation
    • 8. Architecture
    • 9. Unified Modelling Language
    • 10. Object-Oriented Analysis
    • Object-Oriented Design
  • ๐Ÿง  Algorithm

    • Python ์‹œ๊ฐ„ ์ดˆ๊ณผ ๋ฐฉ์ง€๋ฅผ ์œ„ํ•œ ํŒ
    • C++ std::vector ์‚ฌ์šฉ๋ฒ• ์ •๋ฆฌ
    • Vim ์‚ฌ์šฉ ๋งค๋‰ด์–ผ
    • 1018๋ฒˆ: ์ฒด์ŠคํŒ ๋‹ค์‹œ ์น ํ•˜๊ธฐ
    • 1966๋ฒˆ: ํ”„๋ฆฐํ„ฐ ํ

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(์Šคํƒ ๋””์‹œ ๊ทธ๋ฃน)์— ์˜ํ•ด ์œ ์‚ฌํ•œ ๊ฒฐ๊ณผ ๋ณด๊ณ ๋จ.
  • ์›์ธ
  1. Incomplete requirements(๋ถˆ์™„์ „ํ•œ ์š”๊ตฌ์‚ฌํ•ญ)(13.1%)
  2. Lack of user involvement(์‚ฌ์šฉ์ž ์ฐธ์—ฌ ๋ถ€์กฑ)(12.4%)
  3. Lack of resources(์ž์› ๋ถ€์กฑ)(10.6%)
  4. Unrealistic expectations(๋น„ํ˜„์‹ค์ ์ธ ๊ธฐ๋Œ€)(9.9%)
  5. Lack of executive support(๊ฒฝ์˜์ง„ ์ง€์› ๋ถ€์กฑ)(9.3%)
  6. Changing requirements and specifications(์š”๊ตฌ์‚ฌํ•ญ ๋ฐ ๋ช…์„ธ ๋ณ€๊ฒฝ)(8.7%)
  7. Lack of planning(๊ณ„ํš ๋ถ€์กฑ)(8.1%)
  8. 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

๋‘ ๊ฐ€์ง€ โ€œ์ง€์ƒ ์ฐฉ์ง€โ€ ์กฐ๊ฑด์ด ์žˆ์Œ:

  1. ์–ด๋А ์ชฝ์ด๋“  ์ถฉ๊ฒฉ ํก์ˆ˜ ์žฅ์น˜๊ฐ€ 6300 kg์˜ ํ•˜์ค‘์„ ๊ฒฌ๋”ค
  2. ์–‘์ชฝ ๋ฐ”ํ€ด๊ฐ€ 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(ํ• ๋‹น)

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(์ •ํ˜• ๋ช…์„ธ)
์ตœ๊ทผ ์ˆ˜์ •: 25. 11. 6. ์˜คํ›„ 12:07
Contributors: kmbzn
Prev
5. Agile
Next
7. Requirements Elicitation and Documentation

BUILT WITH

CloudflareNode.jsGitHubGitVue.jsJavaScriptVSCodenpm

All trademarks and logos are property of their respective owners.
ยฉ 2025 kmbzn ยท MIT License