Escolar Documentos
Profissional Documentos
Cultura Documentos
Table of Contents
Failures
Requirements Definition/Importance
Requirements Types
Development Process
Requirements Activities
One team used the metric system while the other used the
English system for a key function
Failures
Requirements Definition/Importance
Requirements Types
Development Process
Requirements Activities
Qubecs GIRES
[1] http://radio-canada.ca/nouvelles/Index/nouvelles/200303/04/012-GIRES.shtml
4
Failures
Requirements Definition/Importance
Requirements Types
Development Process
Requirements Activities
Failures
Requirements Definition/Importance
Requirements Types
Development Process
Requirements Activities
[1]
https://www.thestar.com/news/canada/2016/08/24/cost-of-fixing-flawed-phoenix-pay-systemhits-25m-minister-says.html
6
Failures
Requirements Definition/Importance
Requirements Types
Development Process
Requirements Activities
A requirement is:
Capturing the purpose of a system
An expression of the ideas to be embodied in the system or
application under development
A statement about the proposed system that all stakeholders agree
must be made true in order for the customers problem to be
adequately solved
Short and concise piece of information
Says something about the system
All the stakeholders have agreed that it is valid
It helps solve the customers problem
Failures
Requirements Definition/Importance
Requirements Types
Development Process
Requirements Activities
Requirements
Requirements Engineering
Engineering is
is aa
set
set of
of activities
activities concerned
concerned with
with
eliciting,
eliciting, analyzing
analyzing and
and
communicating
communicating the
the purpose
purpose of
of
aa (software-intensive)
(software-intensive) system,
system,
and
and the
the contexts
contexts in
in which
which it
it will
will
be
be used.
used. Hence,
Hence, RE
RE acts
acts as
as the
the
bridge
bridge between
between the
the real
real world
world
needs
needs of
of stakeholders,
stakeholders, affected
affected
by
by the
the system-to-be,
system-to-be, and
and the
the
capabilities
capabilities and
and opportunities
opportunities
afforded
afforded by
by (software-intensive)
(software-intensive)
technologies
technologies
Need to identify all the
stakeholders - not just
customers and users
Designers need
to
know how and
where
the system will
be used
Requirements
are
partly about
what
is needed
and partly
about
what is possible
Failures
Requirements Definition/Importance
Requirements Types
Development Process
Requirements Activities
11
Failures
Requirements Definition/Importance
Requirements Types
Development Process
Requirements Activities
Requirements
Inception
Elicitation
Requirements
Development
Analysis
Requirements
Management
Specification
Verification
Source: Larry Boldt, Trends in Requirements Engineering People-Process-Technology, Technology Builders, Inc., 2001
12
Failures
Requirements Definition/Importance
Requirements Types
Development Process
Requirements 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 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!
13
Failures
Requirements Definition/Importance
Requirements Types
Development Process
Requirements Activities
http://www.computer.org/portal/web/swebok/html/ch2
14
Failures
Requirements Definition/Importance
Requirements Types
Development Process
Requirements Activities
Change management
15
Failures
Requirements Definition/Importance
Requirements Types
Development Process
Requirements Activities
Requirements
56%
Code
7%
Other
10%
Requirements
82%
Code
Other
1%
4%
Design
13%
Design
27%
Failures
Requirements Definition/Importance
Requirements Types
Development Process
Requirements Activities
https://www.infoq.com/articles/standish-chaos-2015
17
Failures
Requirements Definition/Importance
Requirements Types
Development Process
Requirements Activities
Failures
Requirements Definition/Importance
Requirements Types
Development Process
Requirements Activities
https://www.infoq.com/articles/standish-chaos-2015
19
Failures
Requirements Definition/Importance
Requirements Types
Development Process
Requirements Activities
https://www.infoq.com/articles/standish-chaos-2015
20
Failures
Requirements Definition/Importance
Requirements Types
Development Process
Requirements Activities
Agile vs Waterfall
Notes:
https://www.infoq.com/articles/standish-chaos-2015
21
Failures
Requirements Definition/Importance
Requirements Types
Development Process
Requirements Activities
22
Types of Requirements
Failures
Requirements Definition/Importance
Requirements Types
Development Process
Requirements Activities
Failures
Requirements Definition/Importance
Requirements Types
Development Process
Requirements Activities
Failures
Requirements Definition/Importance
Requirements Types
Development Process
Requirements Activities
26
Failures
Requirements Definition/Importance
Requirements Types
Development Process
Requirements Activities
Functional Requirements
27
Failures
Requirements Definition/Importance
Requirements Types
Development Process
Requirements Activities
The system shall provide access to a PDF viewer for the user
to read documents in the document store.
Note: not all requirements on this and following slides are high quality requirements but are typical requirements found too often in documents
28
Failures
Requirements Definition/Importance
Requirements Types
Development Process
Requirements Activities
[1] Lethbridge and Laganire, Object Oriented Software Engineering: Practical Software Development using UML and Java, 2005
29
Failures
Requirements Definition/Importance
Requirements Types
Development Process
Requirements Activities
30
Failures
Requirements Definition/Importance
Requirements Types
Development Process
Requirements Activities
Product
requir ements
Ef ficiency
requir ements
Reliability
requir ements
Usability
requirements
Performance
requirements
Or ganizational
requir ements
Portability
requirements
Delivery
requirements
Space
requir ements
External
requirements
Interoperability
requirements
Implementation
requir ements
Ethical
requirements
Standards
requirements
Legislative
requirements
Privacy
requirements
Safety
requirements
Source: Gerald Kotonya and Ian Sommerville, Requirements Engineering Processes and Techniques, Wiley, 1998
31
Failures
Requirements Definition/Importance
Requirements Types
Development Process
Requirements Activities
Product requirement
It shall be possible for all necessary communication between the
system and the user to be expressed in the standard ISO Latin 1
character set.
Process requirement
The system development process and deliverable documents shall
conform to the process and deliverables defined in MIL-STD-498.
Security requirement
The system shall not disclose any personal information about
customers apart from their name and reference number to the
operators of the system.
32
Failures
Requirements Definition/Importance
Requirements Types
Development Process
Requirements Activities
Robustness
Portability
Measure
Processedtransactions/second
User/Eventresponsetime
Screenrefreshtime
KBytes
NumberofRAMchips
Trainingtime
Numberofhelpframes
Meantimetofailure
Probabilityofunavailability
Rateoffailureoccurrence
Availability
Timetorestartafterfailure
Percentageofeventscausingfailure
Probabilityofdatacorruptiononfailure
Percentageoftargetdependentstatements
Numberoftargetsystems
Source: Gerald Kotonya and Ian Sommerville, Requirements Engineering Processes and Techniques, Wiley, 1998
33
Failures
Requirements Definition/Importance
Requirements Types
Development Process
Requirements Activities
Goals
A Goal
Conveys the intention or the objective of one or many stakeholders
Can guide the discovery of verifiable non-functional requirements that
can be tested objectively
34
Failures
Requirements Definition/Importance
Requirements Types
Development Process
Requirements Activities
A system goal
The system should be easy to use by experienced controllers and
should be organized in such a way that user errors are minimized.
35
Failures
Requirements Definition/Importance
Requirements Types
Development Process
Requirements Activities
Application-Domain Requirements
36
Failures
Requirements Definition/Importance
Requirements Types
Development Process
Requirements Activities
Library system
The system interface to the database must comply with
standard Z39.50.
37
Failures
Requirements Definition/Importance
Requirements Types
Development Process
Requirements Activities
Domain constraints
. Tags are attached to the fur of seals
. Seals lose their fur every 9 months!!!
38
Failures
Requirements Definition/Importance
Requirements Types
Development Process
Requirements Activities
Understandability
Requirements are expressed in the language of the application
domain
This is often not understood by software engineers developing the
system
39
Failures
Requirements Definition/Importance
Requirements Types
Development Process
Requirements Activities
Emergent Properties
Reliability
Maintainability
Performance
Usability
Security
Safety
40
Failures
Requirements Definition/Importance
Requirements Types
Development Process
Requirements Activities
42
Failures
Requirements Definition/Importance
Requirements Types
Development Process
Requirements Activities
Failures
Requirements Definition/Importance
Requirements Types
Development Process
Requirements Activities
Source: http://www.telelogic.com/download/paper/SystemsEngineeringSandwich.pdf
44
Failures
Requirements Definition/Importance
Requirements Types
Development Process
Requirements Activities
Failures
Requirements Definition/Importance
Requirements Types
Development Process
Requirements Activities
What?
How?
Time
Design Solutions
TIME
Who?
When?
If-Then
Does It?
Where?
46
Failures
Requirements Definition/Importance
Requirements Types
Development Process
Requirements Activities
Failures
Requirements Definition/Importance
Requirements Types
Development Process
Requirements Activities
Requirements Inception
Involves
Building a business case
Preliminary feasibility assessment
Preliminary definition of project scope
Stakeholders
Business managers, marketing people, product managers...
Examples of techniques
Brainstorming, Joint Application Development (JAD) meeting
49
Failures
Requirements Definition/Importance
Requirements Types
Development Process
Requirements Activities
Gathering of information
About problem domain
About problems requiring a solution
About constraints related to the problem or solution
More than just collecting Need to evoke and provoke!
Failures
Requirements Definition/Importance
Requirements Types
Development Process
Requirements Activities
Failures
Requirements Definition/Importance
Requirements Types
Development Process
Requirements Activities
[ISO/IEC/IEEE 29148:2011]
52
Failures
Requirements Definition/Importance
Requirements Types
Development Process
Requirements Activities
53
Failures
Requirements Definition/Importance
Requirements Types
Development Process
Requirements Activities
Requirements Analysis
Objectives
Detect and resolve conflicts between requirements (e.g., through
negotiation)
Discover the boundaries of the system / software and how it must
interact with its environment
Elaborate system requirements to derive software requirements
Failures
Requirements Definition/Importance
Requirements Types
Development Process
Requirements Activities
Requirements Specification
Specification Document
A document that clearly and precisely describes, each of the essential
requirements (functions, performance, design constraints, and quality
attributes) of the software and the external interfaces
Each requirement being defined in such a way that its achievement is
capable of being objectively verified by a prescribed method (e.g.,
inspection, demonstration, analysis, or test)
Different guidelines and templates exist for requirements specification
55
Failures
Requirements Definition/Importance
Requirements Types
Development Process
Requirements Activities
Simple checks
Formal reviews
Logical analysis
Prototypes and enactments
Design of functional tests
56
Failures
Requirements Definition/Importance
Requirements Types
Development Process
Requirements Activities
Validation vs Verification
57
Failures
Requirements Definition/Importance
Requirements Types
Development Process
Requirements Activities
Requirements Management
Requirements
document
Goals
rationale
1.1 XXXX
.... because
1.2 YYYY
Design
document
....due to
requirement 1.2
58
Failures
Requirements Definition/Importance
Requirements Types
Development Process
Requirements Activities
Requirements Documents
Requirements document
System requirements document
Software requirements document
59
Failures
Requirements Definition/Importance
Requirements Types
Development Process
Requirements Activities
xxxx
xxxxxxx
xxx
xxxxxxxxxxx
xxxxx
xxxxxxxxxxxxx
xxxxxxx
xxx
xxxxxxxxxxxxxxx
subsystem 1
Requirements
Requirements
xxxx
xxxxxxx
xxx
xxxxxxxxxxx
xxxxx
xxxxxxxxxxxxx
xxxxxxx
xxx
xxxxxxxxxxxxxxx
Definition
xxxx
xxxxxxx
Requirements
xxx
xxxxxxxxxxx
Specification
xxxxx
xxxx
xxxxxxxxxxxxx
xxxxxxx xxxxxxx
xxx
xxx
xxxxxxxxxxx
xxxxxxxxxxxxxxx
xxxxx
xxxxxxxxxxxxx
xxxxxxx
xxx
xxxxxxxxxxxxxxx
sub-subsystems
Requirements
Requirements
Definition
Definition
Definition
xxxx
xxxx
xxxx
xxxxxxx
xxxx
xxxxxxx
Requirements
xxxxxxx
xxx
Requirements
xxxxxxx
Requirementsxxx
xxx
xxxxxxxxxxx
xxx
xxxxxxxxxxx
Requirements
Specification
xxxxxxxxxxx
xxxxxxxxxxx
Specification xxxxx Specificationxxxxx xxxx
xxxxxxxxxxxxx
xxxxx Specificationxxxxx xxxx
xxxxxxxxxxxxx
xxxx
xxxxxxxxxxxxx
xxxxxxx xxxxxxx
xxxxxxxxxxxxx
xxxx
xxxxxxx xxxxxxx
xxx
xxxxxxx xxxxxxx
xxx
xxxxxxx xxxxxxx
xxx
xxx
xxx
xxxxxxxxxxx
xxx
xxx
xxx
xxxxxxxxxxx xxxxxxxxxxxxxxx
xxxxxxxxxxx xxxxxxxxxxxxxxx
xxxxx
xxxxxxxxxxxxxxx
xxxxxxxxxxx xxxxxxxxxxxxxxx
xxxxx
xxxxx
xxxxxxxxxxxxx
xxxxx
xxxxxxxxxxxxx
xxxxxxxxxxxxx
xxxxxxx
xxxxxxxxxxxxx
xxxxxxx
xxxxxxx
xxx
xxxxxxx
xxx
xxx
xxxxxxxxxxxxxxx
xxx
xxxxxxxxxxxxxxx
xxxxxxxxxxxxxxx
xxxxxxxxxxxxxxx
Requirements
Definition
subsystem 2
Requirements
sub-subsystems
Requirements
Requirements
Definition
Definition
Definition
xxxx
xxxx
xxxx
xxxxxxx
xxxx
xxxxxxx
Requirements
xxxxxxx
xxx
xxx
Requirements
xxxxxxx
Requirements
xxx
xxxxxxxxxxx
xxx
xxxxxxxxxxx
Requirements
Specification
xxxxxxxxxxx
xxxxxxxxxxx
Specification xxxxx Specification xxxxx xxxx
xxxxxxxxxxxxx
xxxxx Specificationxxxxx xxxx
xxxxxxxxxxxxx
xxxx
xxxxxxxxxxxxx
xxxxxxx xxxxxxx
xxxxxxxxxxxxx
xxxx
xxxxxxx xxxxxxx
xxx
xxxxxxx xxxxxxx
xxx
xxxxxxx xxxxxxx
xxx
xxx
xxx
xxxxxxxxxxx
xxx
xxx
xxx
xxxxxxxxxxx xxxxxxxxxxxxxxx
xxxxxxxxxxx xxxxxxxxxxxxxxx
xxxxx
xxxxxxxxxxxxxxx
xxxxxxxxxxx xxxxxxxxxxxxxxx
xxxxx
xxxxx
xxxxxxxxxxxxx
xxxxx
xxxxxxxxxxxxx
xxxxxxxxxxxxx
xxxxxxx
xxxxxxxxxxxxx
xxxxxxx
xxxxxxx
xxx
xxxxxxx
xxx
xxx
xxxxxxxxxxxxxxx
xxx
xxxxxxxxxxxxxxx
xxxxxxxxxxxxxxx
xxxxxxxxxxxxxxx
Requirements
Definition
Requirements
60
Failures
Requirements Definition/Importance
Requirements Types
Development Process
Requirements Activities
b.
c.
d.
e.
f.
IEEE (1998) Recommended Practice for Software Requirements Specifications. IEEE Std
830-1998, NY, USA.
SWEBOK 2013
63
Main References
a.
b.
c.
Soren Lauesen: Software Requirements - Styles and Techniques, Addison Wesley, 2002
d.
e.
f.
g.
h.
i.
RE Professional Titles
https://www.ireb.org/
Certified Professional
for Requirements
Engineering (CPRE)
http://www.iiba.org/
Certification of
Competency in
Business Analysis
(CCBA)
Certified Business
Analysis Professional
65
RE Conferences
International Requirements Engineering Conference (RE; since 1993):
http://www.requirements-engineering.org
Int. Working Conf. on Requirements Engineering Foundation for Software
Quality (REFSQ; since 1995): http://refsq.org/
http://wer.inf.puc-rio.br/
Asia Pacific Requirements Engineering Symposium (APRES; since
2014): http://www.apres2014.org
ACM Symposium on Applied Computing (SAC), RE Track( since 2008):
http://www.cin.ufpe.br/~sac17-re/
Dozens of satellite workshops and special tracks elsewhere.
66
Quiz
1.
What is a requirement?
2.
3.
4.
5.
6.
67