Chapter 1: The Essential of Software Requirement
1
© Karl E. Wiegers
Topics
1.1 Introduction
1.2 Difficulty of defining Requirements
1.3 Definition of Requirement
1.4 Types and levels of Requirement
1.5 Requirement Engineering
1.6 Critical Role of Requirement
(Bad and Good Requirement)
2
1.1 Introduction
Failure to understand
and
control requirements
is
the number 1 cause of project failure.
3
The single hardest part of building a software system is deciding precisely what to build. No other part of the work so cripples the resulting system if done wrong. No other part is more difficult to rectify later. Frederick Brooks in No Silver Bullet: Essence and Accidents of Software Engineering
4
? The Customers Frustration ? Using a product that doesnt support an essential
task.
? Being at the mercy of a developer whose priorities may not be yours
5
? The Developers Frustration
Learning of essential functions after system has been implemented Being requested to modify a feature that is exactly what was asked for
? It involves the largest number of stakeholders
6
– Customers – Users – Requirements analysts – Developers – Testers – Document writers – Managers – Legal staff – Manufacturing staff – Support staff (sales, help desk, )
1.2 Why is Difficult?
? Shortcomings of Requirements Gathering
? Informal gathering process
? Implied functionality
? Wrong or unspoken assumptions
? Inadequate (incomplete, ambiguous, conflicting) requirement specifications
? Casual change processdecisions not recorded, undesirable changes creep in
7
1.3 Definition of Requirement
?Informal Definitions
? External behavior and appearance of system
? What should be implemented.
? System property or attribute, perhaps a constraint.
8
More Formal Definitions (IEEE Glossary)
? Condition or capability needed by a user to solve a problem or achieve an objective
? Condition or capa
