CHAPTER THREE
Requirements analysis and specification -
modeling techniques
1
Stages in RE
• Inception
• Elicitation
• Elaboration
• Negotiation
• Specification
• Validation
• Management
2
Inception
• ask a set of questions that establish …
– basic understanding of the problem
– the people who want a solution
– the nature of the solution that is desired
– the effectiveness of preliminary communication
and collaboration between the customer and the
developer
3
Elicitation
• elicit requirements from all stakeholders
– address problems of scope
– address problems of understanding
• customers are not sure about what is needed,
skip “obvious” issues, have difficulty
communicating with the software engineer,
have poor grasp of problem domain
– address problems of volatility (changing
requirements)
4
Elaboration and negotiation
• Elaboration: create an analysis model that identifies data,
function, features, constraints and behavioral requirements
• Negotiation: agree on a deliverable system that is realistic for
developers and customers
– rank requirements by priority (conflicts arise here …)
– identify and analyze risks assoc. with each requirement
– “guestimate” efforts needed to implement each requirement
– eliminate, combine and / or modify requirements to make
project realistic
5
Specification
• can be any one (or more) of the following:
– A written document
– A set of models
– A formal mathematical model
– A collection of user scenarios (use-cases)
– A prototype
6
Validation
• a review mechanism that looks for:
– errors in content or interpretation
– areas where clarification may be required
– missing information
– inconsistencies (a major problem when large
products or systems are engineered)
– conflicting or unrealistic (unachievable)
requirements
– tests for requirements
7
Management
• involves managing change:
– Feature traceability: how requirements relate to
observable system/product features
– Source traceability: identifies source of each
requirement
– Dependency traceability: how requirements are
related to each other
– Subsystem traceability: categorizes requirements
by the sub system (s) they govern
– Interface traceability: how requirements relate to
both external and internal system interfaces
8
Methods and tools
many of them available
• lists
– elicitation question list
– checklists for validation
• graphical diagrams, good for communication
• formal methods
– e.g. UML for elaboration and specification
9
Quality Function Deployment
A technique of translating customer needs into technical
system requirements:
• Normal requirements: reflect stated customer goals
and objectives
• Expected requirements: implicit to the product or
system; their absence will cause significant customer
dissatisfaction
• Exciting requirements: featured going beyond
customer expectations, causing customer euphoria (;-)
• concentrate on maximizing customer satisfaction
10
Cont…
• Function deployment: determines the “value” (as
perceived by the customer) of each function required
of the system
• Information deployment: identifies data objects and
events, ties them to functions
• Task deployment: examines the behavior of the
system
• Value analysis: determines the relative priority of
requirements
11
Modeling approaches
12
Requirements Analysis
13
Requirements Analysis, determining whether the
stated requirements are clear, complete, consistent
and unambiguous.
Requirements Analysis
14
Stakeholder Identification
Stakeholders are people or organizations that have a valid
interest in the system. They may be affected by it directly or
indirectly.
Stake holders may include:
Anyone who operates the system
Anyone who benefits from the system
Anyone involved in purchasing or procuring the system
People opposed to the system (negative stakeholders)
Organizations responsible for the system
Requirements Analysis
15
Stakeholder Interviews
Interviews are a common technique used in requirement
analysis.
This technique can serve as a means of obtaining the highly
focused knowledge from different stakeholders perspectives
Requirements Analysis
16
Types of Requirements:
Customer Requirements:
Operational distribution or deployment: Where will the system be
used?
Mission profile or scenario: How will the system accomplish its
mission objective?
Performance and related parameters: What are the critical system
parameters to accomplish the mission?
Utilization environments: how are the various system components
to be used?
Effectiveness requirements: How effective or efficient must the
system be in performing its mission?
Operational life cycle: How long will the system be in use by the
user?
Environment: what environments will the system be expected to
operate in an effective manner?
Requirements Analysis
17
Types of Requirements:
Architectural Requirements:
A formal description and representation of a system, organized
in a way that support reasoning about the structure of the
system which comprises system components, the externally
visible properties of those components, the relationships and
the behavior between them, and provides a plan from which
products can be procured and systems developed, that will work
together to implement the overall system.
Requirements Analysis
18
Types of Requirements:
Functional Requirements:
Defines functions of a software system or its components. They
may be calculations, technical details, data manipulation and
processing and other specific functionality that define “what a
system is supposed to accomplish?”
They describe particular results of a system.
Functional requirements are supported by Non-functional
requirements.
Requirements Analysis
19
Types of Requirements:
Non-Functional Requirements:
They are requirements that specify criteria that can be used to judge
the operation of a system, rather than specific behavior.
Functional requirements define what the system is supposed to do,
whereas non-functional requirements define how a system is
supposed to be.
Non-functional requirements can be divided into two main
categories:
Execution qualities, such as security and usability, which are
observable at runtime.
Evolution qualities, such as testability, maintainability and
scalability.
Requirements Specifications
20
Requirements Specification is the direct result of a
requirement analysis and can refer to:
Software Requirements Specification
Hardware Requirements Specification
Requirements Specifications
21
A Software Requirements Specification (SRS) –is a
complete description of the behavior of a system to
be developed.
It includes a set of use cases that describe all the
interactions the users will have with the software. In
addition to use cases, the SRS also contains non-
functional requirements (such as performance
requirements, quality standards, or design
constraints)
Requirements Specifications
22
A Software Requirements Specification (SRS)
The software requirement specification document enlists all
necessary requirements for project development. To derive the
requirements we need to have clear and thorough understanding of
the products to be developed.
A general organization of an SRS is as follows:
Introduction
Purpose, Scope, Definitions, System Overview, References
Overall Description
Product Perspective, Product functions, User characteristics,
constraints, assumptions and dependencies.
Specific Requirements
External Interface requirements, functional requirements,
performance requirements, design constraints, logical database
requirement, software system attributes.
Requirements Validation and Verification
23
Validation (& Verification), is the process of checking
whether the requirements, as identified, do not
contradict the expectations about the system of
various stakeholders and do not contradict each
other.
It is Requirements Quality Control
Validation Vs. Verification
24
Validation: “Am I building the right product?”
checking a work product against higher-level work
products or authorities that frame this particular
product.
Requirements are validated by stakeholders
Verification: “Am I building the product right?”
checking a work product against some standards and
conditions imposed on this type of product and the
process of its development.
Requirements are verified by the analysts mainly
Requirements management
25
Requirements management is the process of
managing changing requirements during the
requirements engineering process and system
development
Requirements are inevitably incomplete and
inconsistent
New requirements emerge during the process as business
needs change and a better understanding of the system is
developed
Different viewpoints have different requirements and these are
often contradictory
Requirements change
26
The priority of requirements from different
viewpoints changes during the development process
System customers may specify requirements from a
business perspective that conflict with end-user
requirements
The business and technical environment of the
system changes during its development
Requirements evolution
27
Initial Changed
understanding understanding
of problem of problem
Initial Changed
requirements requir ements
Time
Requirement Management
28
Set of activities that help project team to identify, control, and track
requirements and changes as project proceeds
Requirements begin with identification. Each requirement is assigned a unique
identifier. Once requirement have been identified, traceability table are
developed.
Traceability Table:
Features traceability table - shows how requirements relate to customer
observable features
Source traceability table - identifies source of each requirement
Dependency traceability table - indicate relations among requirements
Subsystem traceability table - requirements categorized by subsystem
Interface traceability table - shows requirement relations to internal and
external interfaces
It will help to track, if change in one requirement will affect different aspects of
the system.
System models
29
Different models may be produced during the
requirements analysis activity
Requirements analysis may involve three
structuring activities which result in these
different models
Partitioning. Identifies the structural (part-of)
relationships between entities
Abstraction. Identifies generalities among entities
Projection. Identifies different ways of looking at a
problem
The analysis model is composed of three individual
models: 30
1. Functional model , represented by use cases and scenarios
2. Analysis object model , represented by class and object diagrams
3. Dynamic model , represented by statechart and sequence
diagrams.
Fig. The analysis model is composed of the functional model, the
object model, and the dynamic model.
Analysis Model
31
Use case diagram
Derived from use-case study scenarios. It is an
overview of use cases, actors, and their
communication relationships to demonstrate how the
system reacts to requests from external users. It is
used to capture system requirements.
Sequence diagram
Describes time sequence of messages passed among
objects in a timeline
Cont.…
32
Collaboration Diagram
Describes the sequence of message passing among objects in
the system. Equivalent to sequence diagram , except that it
focuses on the object—s role.
Each communication link is associated with a sequence order
number plus the passed messages.
Class Diagram
Class diagrams can be derived from use-case diagrams or
from text analysis of the given problem domain. A class
diagram is
generated by system analysts and designers and will be
iteratively refined in the subsequent phases during the
software development life cycle.
Cont.
33
Activity Diagram
Outline of activity—s data and control flow among
related objects. An activity is an action for a system
operation or a business process, such as those
outlined in the use-case diagram.
It also covers decision points and threads of complex
operation processes. It describes how activities are
orchestrated to achieve the required functionality.
Design Models
34
State chart diagram
Describes the life cycle of objects using a finite state
machine.
The diagram consists of states and the transitions between
states. Transitions are usually caused by external stimuli or
events. They can also represent internal moves by the
object.
Component diagram
It is an Describes all components in a system, their
interrelationships, interactions, and the interface of the
system. It is an outline of the composition structure of
components or modules
Cont.
35
Deployment Diagram
Describes system hardware, software, and network
connections for distributed computing.
It covers server configuration and network
connections between server nodes in real-world
setting.
Use case Diagram
36
Sequence Diagram
37
Collaboration diagram
38
Class Diagram
39
Activity Diagram
40
State Diagram
41
Component Diagram
42
Deployment Diagram
43
SEG3101 (Fall 2010)
User Requirements Notation (URN)
Introduction to the User Requirements
Notation (URN)
URN Overview (1)
URN is a semi-formal, lightweight graphical language for
modeling and analyzing requirements in the form of
goals and scenarios and the links between them
Combines two existing notations
Goal-oriented Requirement Language (GRL)
Use Case Maps (UCMs)
Support for the elicitation, analysis, specification, and
validation of requirements
Allows systems, software, and requirements engineers to
discover and specify requirements for a proposed system
or an evolving system, and analyse such requirements for
correctness and completeness
46
URN Overview (2)
URN models can be used to specify and analyze
various types of reactive systems, business processes,
and telecommunications standards
jUCMNav
URN editor & analysis tool
Eclipse plug-in
Open source project
47
URN Overview
vision (3)
GRL Model business goals, called
stakeholders’ priorities, alternative strategies,
compared
solutions, rationale, and decisions with GRL
evaluation
traceability mechanis
with URN extensible
with m
links metadata
with UCM
traversal
UCM Model & test use cases; mechanis
m based
investigate high level architecture; on UCM
transform to more detailed models scenario
definitions
more detailed models
A GRL / UCM model visually communicates business objectives and
constraints / high-level functional requirements to all stakeholders
Combination of Goals and Scenarios
URN combines two complementary parts:
The Goal-oriented Requirement Language (GRL)
For modelling goals and other intentional concepts (mainly for non-
functional requirements and quality attributes.
The Use Case Map (UCM) notation
For modelling scenario concepts (mainly for operational
requirements, functional requirements, and performance and
architectural reasoning)
URN offers concepts for the specification of stakeholders,
goals, non-functional requirements, rationales,
behaviour, scenarios, scenario participants (actors), and
high-level architectural structure
49
URN – Main Objectives
Focus on early stages of development with goals and
scenarios
From user requirements to functional and non-
functional system requirements
No messages, components, or component states required
Reusability
of argumentations (goal patterns and analysis)
of scenarios (patterns and architectural alternatives)
Early performance analysis
Traceability and transformations to other languages
Particularly MSC, SDL, TTCN, and UML
Also to LQN, LOTOS, and others
50
About ITU-T
International Telecommunication Union
United Nations organization
191 countries + hundreds of member companies
Free access to the definition of many standard languages
http://www.itu.int/ITU-T/studygroups/com17/index.html
Question 13 (Formal languages and telecommunication software) of
Study Group 17 (Security)
Z.15x User Requirements Notation (URN)
Also SDL, MSC, and profiles
Other international bodies standardize languages
ANSI (C, C++), W3C (HTML, XML), IEEE (VHDL), ISO (LOTOS),
OMG (UML), OASIS (XACML), etc.
51
ITU Languages
SDL: Specification and Description Language
For defining and executing complete reactive systems
MSC: Message Sequence Charts
For defining message-oriented scenarios
ASN.1: Abstract Syntax Notation One
For defining data types/packets
TTCN-3: Testing and Test Control Notation
For defining test cases and test environments
URN: User Requirements Notation
Goal-oriented Requirements Language (GRL)
Use Case Map notation (UCM)
For defining abstract goals, scenarios, and requirements
UML 2.0 profiles for some of these languages on their way…
52
Transformations
Transformations connect URN models to other models
Some transformations discussed in publications or
implemented in jUCMNav’s predecessor UCMNav have not
yet been implemented in jUCMNav Requirements
Management
Test Cases (Fitnesse, TTCN) (Telelogic DOORS)
UML activity/sequence/state/use case diagrams
SDL
Textual Use Cases User Requirements Notation Core Scenario
(jUCMNav) Model
(UCEd *)
(CSM)
(for performance modeling)
Message Sequence
Charts
(MSC Viewer)
Summary
The User Requirements Notation (URN) is an ITU-T standard
Modeling with the Goal-oriented Requirement Language
Focuses on answering “why” questions
Intentions, functional / non-functional requirements, rationales
Modeling with Use Case Maps
Focuses on answering “what” questions
Scenarios, services, architectures
While modelling with URN as a whole, goals are
operationalized into tasks, and tasks are elaborated in
scenarios (mapped to UCM path elements)
Moving towards answering “how” questions
Can guide the selection of an architecture or scenarios
Enables the elicitation/specification of systems, standards, &
products, analysis from various angles, & transformations
54
GRL Editor with Strategy Evaluation
Toolba
r
Navigator Editor
view
Outline
view
Palett
e
Propertie
Scenarios and s
Strategies view
view
UCM Editor with Scenario Traversal Perspectiv
e
Graphica
l Outline
Problem
s view
Integrated MSC Viewer for Exported UCM Scenarios
MSC
viewer
Outline
view
SOFTWARE DOCUMENTATION
Discussion Topics
1. Introduction
2. Documentation Requirements
3. Process and Product Documentation
4. Document Quality
5. Standards
Introduction
This class provides an overview of the
Reasons for software documentation
Types of software documentation
Documentation Requirements
General requirements of all software documentation
Should provide for communication among team members
Should act as an information repository to be used by
maintenance engineers
Should provide enough information to management to allow
them to perform all program management related activities
Should describe to users how to operate and administer the
system
Documentation Requirements
In all software projects some amount of
documentation should be created prior to any code
being written
Design docs, etc.
Documentation should continue after the code has
been completed
User’s manuals, etc.
The two main types of documentation created are
Process and Product documents
Process Documentation
Used to record and track the development process
Planning documentation
Cost, Funding tracking
Schedules
Standards
Etc.
This documentation is created to allow for successful
management of a software product
Product Documentation
Describes the delivered product
Must evolve with the development of the software
product
Two main categories:
System Documentation
User Documentation
Product Documentation
System Documentation
Describes how the system works, but not how to operate it
Examples:
Requirements Spec
Architectural Design
Detailed Design
Commented Source Code
Including output such as JavaDoc
Test Plans
Including test cases
V&V plan and results
List of Known Bugs
Product Documentation
User Documentation has two main types
End User
System Administrator
In some cases these are the same people
The target audience must be well understood!
Product Documentation
There are five important areas that should be
documented for a formal release of a software
application
These do not necessarily each have to have their own
document, but the topics should be covered thoroughly
1. Functional Description of the Software
2. Installation Instructions
3. Introductory Manual
4. Reference Manual
5. System Administrator’s Guide
Document Quality
Providing thorough and professional documentation
is important for any size product development team
The problem is that many software professionals lack
the writing skills to create professional level
documents
Document Structure
All documents for a given product should have a similar
structure
A good reason for product standards
The IEEE Standard for User Documentation lists such a
structure
It is a superset of what most documents need
The authors “best practices” are:
1. Put a cover page on all documents
2. Divide documents into chapters with sections and
subsections
3. Add an index if there is lots of reference information
4. Add a glossary to define ambiguous terms
Standards
Standards play an important role in the
development, maintenance and usefulness of
documentation
Standards can act as a basis for quality
documentation
But are not good enough on their own
Usually define high level content and organization
Standards
IEEE
Has a published standard for user documentation
Provides a structure and superset of content areas
Many organizations probably won’t create documents
that completely match the standard
Standard Templates
71
Ensures that all the essential information is included
A number of different large organizations such as the US
Department of Defense and IEEE have defined standards for
requirements documents
Probably the most acceptable of these standards is the IEEE/ANSI
830-1993
The standard recognizes differences between systems, and allows
for some variations in the structure.
There is a list of stable and variant parts:
Stable parts
Variant parts
IEEE/ANSI 830 - 1993
72
1. Introduction:
Purpose of the requirements document
Scope of product
Definitions, acronyms and abbreviations
References
Overview of the remainder of the document
2. General Description:
Product perspective
Product functions
User characteristics
General constraints
Assumptions and dependencies
IEEE/ANSI 830 - 1993
3. Specific Requirements
Covering functional, non functional & interface requirements,
these should document
External interfaces
Functionality
Performance requirement,
Logical database requirement,
Design constraints,
System attributes
Quality characteristics
IEEE/ANSI 830 - 1993
4. Appendices
5. index
75
Thank You!
Q?