1 Introduction
1 Introduction
Engineering
Motivation
• The beginning is the most important part of the
work.1
• Requirements engineering can greatly reduce the
amount of rework needed later in the life of the
software and can cost-effectively improve various
qualities of the system.
• Too often systems engineers forego sufficient
requirements engineering activity either because they
do not understand how to do requirements engineering
properly, or because there is a rush to start coding.
• One team used the metric system while the other used
the English system for a key function…
3
GIRES
• GIRES1 (Gestion intégrée des ressources)
– Integrated management of resources
– To replace >1000 existing systems
– In 140 organisations / departments
– Affecting 68000 employees!
• 8-year project of the Quebec government, started 1998
• $80 million budget
• Could not cope with changes to the requirements…
– Cost of $400 millions after 5 years, and very late
– Project cancelled in 2003
[1] http://radio-canada.ca/nouvelles/Index/nouvelles/200303/04/012-GIRES.shtml
4
Definition and Importance of
Requirements
What is Requirements Engineering
• Is the branch of engineering concerned with
the real-world goals for, functions of, and
constraints on systems.
• It is also concerned with the relationship of
these factors to precise specifications of
system behavior and to their evolution over
time.
What is Requirements
• A fundamental challenge for the requirements
engineer is recognizing that customers often
confuse requirements and goals (and
engineers sometimes do too).
• Goals are high-level objectives of a business,
organization, or system,
• A requirement specifies how a goal should be
accomplished by a proposed system.
• A requirement is:
• Capturing the purpose of a system
Requirements Engineering
Source: Larry Boldt, Trends in Requirements Engineering People-Process-Technology, Technology Builders, Inc., 2001
About these RE Activities…
• Inception
• Start the process (business need, market opportunity, great idea, ...), business
case, feasibility study, system scope, risks, etc.
• Requirements elicitation
• Requirements discovered through consultation with stakeholders
• Requirements analysis and negotiation
• Requirements are analyzed and conflicts resolved through negotiation
• Requirements specification
• A precise requirements document is produced
• Requirements validation
• The requirements document is checked for consistency and completeness
• Requirements management
• Needs and contexts evolve, and so do requirements!
General Problems with the Requirements Process
• Lack of the right expertise (software engineers, domain
experts, etc.)
Code
Code Other Design
Requirements 1%
7% Other Requirements 4% 13%
56% 10% 82%
Design
27%
34
Domain requirements Problems
1. Understandability: domain requirement are expressed in
the language of the application domain, this is often not
understood by software engineers.
2. Implicitness: Domain specialists understand the area so
well that they do not think of making the domain
requirements explicit.
35
Requirement Engineer
• Requirement Engineer: responsible for creating
requirement document, and make sure
documented requirement are met through stages
od project.
• Requirement Engineer must have knowledge in:
– Using CASE tools.
– Using general Modeling techniques.
– Using modeling languages and ability to choose the best
one for a given problem.
– Using management and traceability tools.
36
Requirement Engineering Process
• The goal of Requirements Engineering Process
is to create and maintain a system
requirement document.
• The overall process include four high-level
requirement engineering sub-process:
– Feasibility study.
– Elicitation and analysis.
– Specification.
– Validation.
37
Requirement Engineering Process
38
Requirement Engineering Process
• The Requirements Engineering Process involve
the following activities:
– Feasibility Study.
– Requirement Elicitation.
– Requirement Analysis.
– Requirement Documentation.
– Requirement Validation.
– Requirement Management.
39
Feasibility Studies
• A feasibility study decides whether or not the
proposed system is worthwhile.
• Is defined as an evaluation or analysis of the
potential impact of proposed project or
program.
40
Feasibility Studies
A feasibility Study aims to answer the following
questions:
1. does the system contributes to the overall
organizational objectives?
2. Can the system can be engineered using
current technology and within budget?
3. Can the system can be integrated with other
systems that are used?
41
Feasibility Studies
Feasibility Study involve:
1. information assessment.
2. information collection.
3. report writing.
42
Feasibility Studies
Questions for people in the organization:
1. How would the organization cope if this system was not implemented?
2. What are the problems with current processes and how would a new
system help alleviate them?
3. What direct contribution will the system make to the business
objectives and requirements?
4. Can information be transferred to and from other organizational
systems?
5. Does the system require technology that has not previously been used
in the organization?
6. What must be supported by the system and what need not be
supported?
43
Different Aspects of Conducting Feasibility
Study
A Feasibility Study can be divided as following:
1. Economic Feasibility.
2. Technical Feasibility.
3. Legal Feasibility.
4. Organizational Feasibility.
44
Different Aspects of Conducting Feasibility
Study
1. Economic Feasibility: give the economical
justification for new system.
2. Technical Feasibility:
a. Understand the different technologies involved.
b. Find out if the organization current process
requires technology
c. Fid out if the necessary experise exist to use
technology
45
Different Aspects of Conducting Feasibility
Study
3. Legal Feasibility: be ascertained wither the
new system may result in any infringement,
violation, contracts or liabilities.
4. Organizational Feasibility: what are the issues
in hand and what are the management
expectations.
46
Documentation of Feasibility Study
Feasibility report contains: 3.2 Criteria used in selecting the final
approach.
1. Introduction.
1.1 Statement of Problem 4. System description:
1.2 Implementation Environment. 4.1 abbreviated statement of scope
1.3 Constraints. 4.2 feasibility of allocated elements.
2. Management summery and 5. Cost benefit analysis
Recommendations 6. Evaluation of technical risk
2.1 Important findings. 7. Legal ramifications.
2.2 comments. 8. Other project specific topics
2.3 Recommendations.
2.4 Impacts
3. Alternatives:
3.1 alternative system configurations.
47
Requirements Elicitation/Discovery
• Requirements elicitation/discovery involves
uncovering what the customer needs and wants.
• While some requirements will be obvious many
requirements will need to be extricated from the
customer through well-defined approaches.
• Also involves discovering who the stakeholders
are; for example, are there any hidden
stakeholders?
• Elicitation also involves determining the NFRs,
which are often overlooked
Requirements Analysis and Agreement
• Requirements analysis and requirements agreement
involves techniques to deal with a number of problems
with requirements in their “raw” form, that is, after they
have been collected from the customers.
• Problems with raw requirements include the following:
They don’t always make sense.
They often contradict one another
They may be inconsistent.
They may be incomplete.
They may be vague or just wrong.
They may interact and be dependent on each other
Many of the elicitation techniques that we will discuss subsequently are intended
to avoid or alleviate these problems
Requirement Analysis Process
50
Requirement Analysis Process
Requirement process Activities are
1. Domain understanding
2. Requirements collection
3. Classification
4. Conflict resolution
5. Prioritization
6. Requirements checking
51
Requirement Documentation
• Requirement documentation is written after
elicitation and analysis, document called
software requirement specification (SRS).
• SRS is specifications of a system that describes
the system functionalities, performance and
constraints of the system.
52
Requirements Representation
• Requirements representation (or modeling) involves
converting the requirements processed raw
requirements into some model (usually natural
language, mathematics, and visualizations).
• Proper representations conversion into a system
architecture and design.
• Various techniques are used for requirements
representation:
• informal (e.g., natural language, sketches, and diagrams),
• formal (mathematically sound representations),
• and semiformal
• Usually some combination of these is employed in requirements
representation
Requirements Validation
• Validation is the process of determining if
the specification is a correct representation
of the customers’ needs.
• Validation answers the question “Am I
building the right product?”
• Requirements validation involves various
semiformal and formal methods, text-based
tools, visualizations, inspections, and so on.
Requirements Management
• One of the most overlooked aspects of requirements engineering,
requirements management involves managing the realities of
changing requirements over time.
• It also involves fostering traceability (ability to track and
understand how different requirements are interconnected and
how they relate to each other)
• Managers also need to learn the skills to intelligently push back
when scope creep occurs.
• Using tools to track changes and maintain traceability can
significantly ease the burden of requirements management.
• Tools such as:
– IBM Engineering Requirements Management DOORS
– Jira
– ….
Rule of Customer
• Helping the requirements engineer understand what they
need and want
• (elicitation and validation)
• Helping the requirements engineer understand what they
don’t want
• Providing domain knowledge when necessary and possible
• Alerting the requirements engineer quickly and clearly
when they discover that they or others have made
mistakes
• Alerting the requirements engineer quickly when they
determine that changes are necessary (really necessary)