week 5 - lecture 1 - fundamental of re
TRANSCRIPT
8/13/2019 Week 5 - Lecture 1 - Fundamental of RE
http://slidepdf.com/reader/full/week-5-lecture-1-fundamental-of-re 1/24
Requirements Engineering
CT056-3-2
Fundamentals of Requirements
EngineeringLecture 5
8/13/2019 Week 5 - Lecture 1 - Fundamental of RE
http://slidepdf.com/reader/full/week-5-lecture-1-fundamental-of-re 2/24
CT056-3-2 Requirements Engineering Fundamentals of Requirements Engineering
Topic & Structure of the lesson
• Subcomponents of Requirements Engineering
• Consequences of Good and Bad requirements
• Attributes of requirements specifications
• Good Practices of Requirements Engineering
‹#›
8/13/2019 Week 5 - Lecture 1 - Fundamental of RE
http://slidepdf.com/reader/full/week-5-lecture-1-fundamental-of-re 3/24
8/13/2019 Week 5 - Lecture 1 - Fundamental of RE
http://slidepdf.com/reader/full/week-5-lecture-1-fundamental-of-re 4/24
CT056-3-2 Requirements Engineering Fundamentals of Requirements Engineering
Key Terms you must be able to use
• If you have mastered this topic, you should
be able to use the following terms correctly
in your assignments and exams:
– RE management
– RE development
• Elicitation
• Analysis
• Specification
• validation
‹#›
8/13/2019 Week 5 - Lecture 1 - Fundamental of RE
http://slidepdf.com/reader/full/week-5-lecture-1-fundamental-of-re 5/24
CT056-3-2 Requirements Engineering Fundamentals of Requirements Engineering
Subcomponents of requirements
engineering
Requirements Engineering
Requirements
Development
Requirements Mgt
Elicitation Analysis Specification Validation
‹#›
8/13/2019 Week 5 - Lecture 1 - Fundamental of RE
http://slidepdf.com/reader/full/week-5-lecture-1-fundamental-of-re 6/24
8/13/2019 Week 5 - Lecture 1 - Fundamental of RE
http://slidepdf.com/reader/full/week-5-lecture-1-fundamental-of-re 7/24
8/13/2019 Week 5 - Lecture 1 - Fundamental of RE
http://slidepdf.com/reader/full/week-5-lecture-1-fundamental-of-re 8/24CT056-3-2 Requirements Engineering Fundamentals of Requirements Engineering
Every Projects Has Requirements
"The hardest single part of building a software system is deciding
precisely what to build. No other part of the conceptual work is as
difficult as establishing the detailed technical requirements, including
all the interfaces to people, to machines, and to the software
systems. No other part of the work so cripples the resulting system ifdone wrong. No other part is more difficult to rectify later".
Fred Brooks, "No Silver Bullet :Essence and Accidents of SE",
IEEE Computer,1987 Author of The Mythical Man-mon
‹#›
8/13/2019 Week 5 - Lecture 1 - Fundamental of RE
http://slidepdf.com/reader/full/week-5-lecture-1-fundamental-of-re 9/24CT056-3-2 Requirements Engineering Fundamentals of Requirements Engineering
Consequences of bad requirements
• Reworks – redoing something, can cost 30 – 50% of
total development cost (Boehm and Papaccio 1998)
• Requirements errors account for 70 -85% of rework cost
(Leffingwell 1997)• Bad requirements pose risks to project success
‹#›
8/13/2019 Week 5 - Lecture 1 - Fundamental of RE
http://slidepdf.com/reader/full/week-5-lecture-1-fundamental-of-re 10/24CT056-3-2 Requirements Engineering Fundamentals of Requirements Engineering
Common requirements risk
• Insufficient user involvement – Developers don’t stress the importance of user involvement
• Creeping User requirements – Additional requirements far exceeds what were not budgeted or planned for
• Ambiguous requirements – Requirement statements can be interpreted in many ways
• Gold plating – Developer adds functionalities which were not in the original requirements specification
• Minimal Specification – Outlined specs, lacking details
• Overlooked user classes – Some users needs overlooked
• Inaccurate Planning – Vaguely defined requirements, results in optimistic estimates
‹#›
8/13/2019 Week 5 - Lecture 1 - Fundamental of RE
http://slidepdf.com/reader/full/week-5-lecture-1-fundamental-of-re 11/24CT056-3-2 Requirements Engineering Fundamentals of Requirements Engineering
Benefits of good requirements
• Fewer requirements defects
• Reduced development reworks
• Fewer unnecessary features
• Lower enhancement costs
• Faster development
• Fewer miscommunications
• Reduced scope creep
‹#›
8/13/2019 Week 5 - Lecture 1 - Fundamental of RE
http://slidepdf.com/reader/full/week-5-lecture-1-fundamental-of-re 12/24CT056-3-2 Requirements Engineering Fundamentals of Requirements Engineering
Characteristics of Excellent
Requirements statements
• Requirements statements must be:-
– Complete – fully describe functionality
– Correct – accurately describe functionality to be built
– Feasible – possible to implement, attainable – Necessary –really needed by the customer
– Prioritized – implementation priority for requirements
– Unambiguous – requirements with one single
interpretation
– Verifiable – tests can be devised or other forms
verification available
‹#›
8/13/2019 Week 5 - Lecture 1 - Fundamental of RE
http://slidepdf.com/reader/full/week-5-lecture-1-fundamental-of-re 13/24CT056-3-2 Requirements Engineering Fundamentals of Requirements Engineering
Requirements specification characteristics
• Complete –no missing requirements or
necessary information
• Consistent – no conflict among requirements
• Modifiable – requirements revisions possible
and history of revision maintained.
• Traceable – traceable requirements can be
linked backward to its origins and forward to thedesign element
‹#›
8/13/2019 Week 5 - Lecture 1 - Fundamental of RE
http://slidepdf.com/reader/full/week-5-lecture-1-fundamental-of-re 14/24CT056-3-2 Requirements Engineering Fundamentals of Requirements Engineering
Requirements from theCustomer’s Perspective
‹#›
8/13/2019 Week 5 - Lecture 1 - Fundamental of RE
http://slidepdf.com/reader/full/week-5-lecture-1-fundamental-of-re 15/24CT056-3-2 Requirements Engineering Fundamentals of Requirements Engineering
Requirements from customers
perspective
• Who are customers?
– Individuals or organization who have benefits from a
product
• The one who request, specify, select , use, receive outputsfrom a software product
• They provide the business requirements
• Effectively collaborate with developers to derive successful
products
• Ones who sign off indicating approval of requirements
‹#›
8/13/2019 Week 5 - Lecture 1 - Fundamental of RE
http://slidepdf.com/reader/full/week-5-lecture-1-fundamental-of-re 16/24CT056-3-2 Requirements Engineering Fundamentals of Requirements Engineering
Good Practices for RE
There are approximately 50 practices grouped into seven
categories :-
1. Knowledge
2. Requirements Management3. Project Management
4. Elicitation
5. Analysis
6. Specification
7. Validation
‹#›
8/13/2019 Week 5 - Lecture 1 - Fundamental of RE
http://slidepdf.com/reader/full/week-5-lecture-1-fundamental-of-re 17/24CT056-3-2 Requirements Engineering Fundamentals of Requirements Engineering
Good Practices for RE
-Knowledge
• Train requirements analyst
• Educate user reps and manager
about requirements
• Train developers in application
domain
• Create a glossary
‹#›
8/13/2019 Week 5 - Lecture 1 - Fundamental of RE
http://slidepdf.com/reader/full/week-5-lecture-1-fundamental-of-re 18/24
CT056-3-2 Requirements Engineering Fundamentals of Requirements Engineering
• Define change control process
• Establish change control board
• Perform change impact analysis• Baseline and control versions of requirements
• Maintain change history
• Track requirements status
• Measure requirements volatility
• Use a requirements management tool
• Create requirements traceability matrix
Good Practices for RE
-Req. Management
‹#›
8/13/2019 Week 5 - Lecture 1 - Fundamental of RE
http://slidepdf.com/reader/full/week-5-lecture-1-fundamental-of-re 19/24
CT056-3-2 Requirements Engineering Fundamentals of Requirements Engineering
• Select the appropriate life cycle
• Base plans on requirements
• Renegotiate commitments
• Manage requirements risk
• Track requirements efforts
• Review past lessons learned
Good Practices for RE
-Project Management
‹#›
8/13/2019 Week 5 - Lecture 1 - Fundamental of RE
http://slidepdf.com/reader/full/week-5-lecture-1-fundamental-of-re 20/24
CT056-3-2 Requirements Engineering Fundamentals of Requirements Engineering
• Define requirements evelopment process
• Define vision and scope
• Identify user classes
• Select product champions• Establish focus groups
• Identify use case
• Identify system events and responses
• Hold facilitated elicitation workshops
• Observe user performing jobs
• Examine problem reports
• Reuse requirements
Good Practices for RE
-Elicitation
‹#›
8/13/2019 Week 5 - Lecture 1 - Fundamental of RE
http://slidepdf.com/reader/full/week-5-lecture-1-fundamental-of-re 21/24
8/13/2019 Week 5 - Lecture 1 - Fundamental of RE
http://slidepdf.com/reader/full/week-5-lecture-1-fundamental-of-re 22/24
CT056-3-2 Requirements Engineering Fundamentals of Requirements Engineering
• Adopt SRS templates
• Identify sources of requirements
• Uniquely label each requirement• Record business rules
• Specify quality attributes
Good Practices for RE
-Specification
‹#›
8/13/2019 Week 5 - Lecture 1 - Fundamental of RE
http://slidepdf.com/reader/full/week-5-lecture-1-fundamental-of-re 23/24
CT056-3-2 Requirements Engineering Fundamentals of Requirements Engineering
Good Practices for RE
-Validation
• Inspect requirements document
• Test the requirements
• Define acceptance criteria
‹#›
8/13/2019 Week 5 - Lecture 1 - Fundamental of RE
http://slidepdf.com/reader/full/week-5-lecture-1-fundamental-of-re 24/24
References
• Software Requirements; Karl E. Wiegers;
2nd Edition; 2003