CSEB233: Fundamentals of Software Engineering Introduction to Software & Software Engineering.
Introduction to Requirements Engineering - SoberIT-Software Business … · 2008. 9. 18. ·...
Transcript of Introduction to Requirements Engineering - SoberIT-Software Business … · 2008. 9. 18. ·...
SoberITSoftware Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY 1
Introduction to Requirements Engineering
T-76.36014.4.2008
Qure, CORE & REflex projectsMarjo Kauppinen
SoberITSoftware Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY2
Goals of the session
Students knowwhat requirements engineering (RE) means
why RE is important
which RE practices are recommended.
SoberITSoftware Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY3
Agenda
Overview of requirements engineering
Different types and levels of requirements
A small set of good RE practices
Summary
SoberITSoftware Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY4
Basics of Requirements Engineering
requirements definition
specification & design & coding & module/integration/system testing
requirements management
acceptance testing
SoberITSoftware Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY5
Basics of Requirements Engineering
Requirements engineeringcovers all of the activities involved in discovering, documenting,
and maintaining a set of requirements for a system. The term
engineering implies that systematic and repeatable techniques
should be used to ensure that system requirements are complete,
consistent, relevant etc. [Som97]
SoberITSoftware Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY6
Basics of Requirements Engineering
Requirements engineeringcovers all of the activities involved in discovering, documenting, and maintaining a set of requirements for a system. The term engineering implies that systematic and repeatable techniquesshould be used to ensure that system requirements are complete, consistent, relevant etc. [Som97]
Requirements engineering means that requirements for a product are defined, managed and tested systematically The purpose of RE is to ensure that products satisfy customer and user needs i.e. provide value for customers and users [Qure, CORE & Reflex].
SoberITSoftware Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY7
Basics of Requirements Engineering
Requirements engineering
Requirements definition
Requirements management
Acceptance testing
Elicitation
Analysis
Representation
Validation
Change management
Status tracking
Document-based practices
Collaboration-based practices
SoberITSoftware Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY8
Benefits of RE [RE literature]
Well-documented requirements
are an agreement between the customers and suppliers on what is to be developed
provide the basis for specification and design
support testing
reduce rework
SoberITSoftware Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY9
Benefits of RE in real projects [Qure]
Without knowing customer needs, it is impossible to develop a good product.
Requirements
describe the collectively accepted objectives.
improve commitment and motivation of the project members.
improve communication outwards from the project.
are the basis for systematic product development.
are the basis for project planning.
SoberITSoftware Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY10
Different Types of Requirements
Requirement: A function, constraint or other property that the system must provide to fill the needs of the system’s intended user(s) [Abb86].
Functional requirement – A requirement that specifies a function or service that a system must be capable of performing.
Non-functional requirement – A requirement that describes the property of the system including performance, reliability, usability etc.
Constraint - Standards, software and hardware constraints etc
Typical view in the RE literature
SoberITSoftware Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY11
Levels and types of requirements
Business requirements
User requirements
Technical requirements
Func
tiona
l req
uire
men
ts
Non
-func
tiona
l req
uire
men
ts
Con
stra
ints
Customer and user
needs
SoberITSoftware Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY12
Different levels of requirements
User needs
User requirements
Technical requirements
Business requirements
Who uses and why?
Current problems and opportunities
What should the system do to satisfy user needs?
Users’ point of view
How is the system implemented?
Technical point of view
Scoping and guiding
Traceability
SoberITSoftware Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY13
State of the RE Practice
Business requirements
User requirements
Technical requirements
Functional requirements
Non-functional requirements
Constraints
The focus in many projects
Level of abstraction increases => number of details decreases
SoberITSoftware Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY14
Requirements Definition Process
requirements definition
specification & design & coding & module/integration/system testing
requirements management
acceptance testing
SoberITSoftware Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY15
Requirements Definition ProcessAn Iterative Model
Analysis
Representation
Validation
Elicitation
Business goals
An approved set of requirements
SoberITSoftware Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY16
Requirements Definition Process
Elicitation and analysis practices:Identify user groups
Discover customer and user needs actively by interviewing and observing
Prioritize needs i.e. identify essential needs from users’ point of view
SoberITSoftware Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY17
Requirements Definition Process
Representation practices:Apply use cases to document functional requirements
Use case diagrams for describing the overview of system
Use case descriptions for documenting functional requirements from users’ point of view
Use Case: xxxxx
Summary: yyyyy
Actors:
Preconditions:
Basic sequence:
Exceptions:
Postconditions:
SoberITSoftware Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY18
Requirements Definition Process
Validation practices:Use multi-disciplinary teams to review requirements
Organize informal inspections for a small set of requirements
SoberITSoftware Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY19
Agile methods: RE related practices in Scrum [Schwaber 2004]
Product BacklogThe list of prioritized requirements (??)
Product owner responsible for contents and prioritization (??)
Dynamic; management constantly changes the product backlog to identify what the product needs to be appropriate, competitive, and useful (??)
Sprint Backlog (a month)The tasks that a Team defines for turning the product backlog into an increment of shippable product functionality (??)
New functionality demonstrated at the end of Sprint (??)
?? How to perform these practices successfully in real product development projects?
SoberITSoftware Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY20
Good principles from agile methods
Customer involvement (XP)
Linking requirements and testing (XP)
Collaboration (Scrum)
Linking requirements and project planning (Scrum)
What about good old requirements practices?
SoberITSoftware Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY21
Summary: Good old RE practices
Elicitation
Analysis
Representation
Validation
Discover customer and user needs actively
Prioritize customer and user needs
Apply use cases for representing requirements
Use multi-disciplinary teams to review requirements
Do not forget the importance of communication and collaboration.
SoberITSoftware Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY22
Summary
Lessons learned from practice:
Deep understanding of user needs is essential and challenging.
Requirements improve
commitment and motivation of project members
communication.
Requirements are the basis for
systematic product development
project planning.
SoberITSoftware Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY23
Requirements Engineering:The Heart of Software Engineering
Useful and successful products and systems that provide value for customers and users
Requirements engineering
Deep understanding of customer and user needs
Product development and software engineering
SoberITSoftware Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY24
Glossary: Key conceptsUser: The person who operates directly with the system [IEE98].
Customer: The person who pays for the system and usually (but not necessarily) decides the requirements [IEE98] .
User needs refer to problems that hinder users in achieving their goals, or opportunities to improve the likelihood of users’ achieving their goals [Kuj02].
User requirement: A user requirement is an externally visible function, property or constraint that the system must provide to fill the needs of the system’s intended users.
SoberITSoftware Business and Engineering Institute
HELSINKI UNIVERSITY OF TECHNOLOGY25
References
[Abb86] R. Abbott, An Integrated Approach to Software Development, John Wiley,
New York, 1986.
[IEE98] IEEE Recommended Practice for Software Requirements Specifications,
IEEE Std 830-1998, the Institute of Electrical and Electronics Engineers, New York,
1998.
[Kuj02] S. Kujala, User Studies: A Practical Approach to User Involvement for
Gathering User Needs and Requirements. [PhD Thesis], Helsinki University of
Technology, Department of Computer Science and Engineering, (2002)
[Som97] I. Sommerville and P. Sawyer, Requirements Engineering - A Good
Practice Guide, John Wiley & Sons, New York, 1997.