Professional Documents
Culture Documents
Req Analysis
Req Analysis
- Requirements Analysis
- Communication Techniques
- Initiating the Process
- Facilitated Application Specification Techniques
- Analysis Principles
- Information Domain
- Modeling
- Partitioning
- Software Prototyping
- Selecting the Prototyping Approach
- Prototyping Methods and Tools
- The Software Requirements Specification
- Specification Principles
- Representation
Stages in RE
Inception
Elicitation
Elaboration
Negotiation
Specification
Validation
Management
2
Inception
ask a set of questions that establish
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
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
Validation
a review mechanism that looks for:
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
Requirements Analysis
A process of discovery, refinement, modeling, and specification.
The software scope initially established by system engineer and refined during
software project planning is refined in detail.
During the process, both the developers and customers take an active role.
Focus on:
system analysts
Requirements Analysis
Major tasks and efforts:
- Problem recognition (or system understanding)
- Discover and understand the system requirements
- Refine the requirements
- Evaluation and synthesis:
- what are the alternative solutions
- focus on what solution should be selected or used
instead of how to implement a solution.
-focuses on what not how
- Modeling: to represent the various aspects of the system
- the required data
- information and control flow
- operation behavior
- Specification of:
- software functions, and performance
- interfaces between system elements
- system constraints
-Review
Domain
understanding
Prioritization
Requirements
collection
Conflict
resolution
Classification
Communication Techniques
Requirement Analysis always begins with communication
Initiating the Process
Facilitated Application Specification Techniques(FAST)
Quality Function Deployment
Each subteam presents its mini specification to all FAST attendees for
discussion.
Development of mini specification may lead to new objects that will be added
to the original list.
Team may raise an issue that cannot be resolved. An issue list is maintained.
Validation criteria list is created by each attendee and give to the team
Finally one or more participant is assigned the job to complete the draft
specification.
- Expected requirements:
implicit requirements . Customer may not specify during meeting. But their
absence will cause dissatisfaction.
examples: ease of human-machine interaction
ease of software installation
- Exciting requirements:
Features go beyond the customers expectations
Analysis Principles
Each analysis method has a unique point of view.
All analysis methods are related by a set of operational principles:
- represent and understand the information domain
- define the functions that the software is to perform
- represent the behavior of the software
- use models to depict information, function, and behavior
--> uncover the details in a layered fashion.
- move from essential information toward to details
Modeling
During software requirements analysis, we create models of the system to be
built.
When entity to be built is software it must be capable of modeling the
information the software transforms , functions that enable transformations and
behavior.
The models focus on:
- what the system must do, not how it does it.
The models usually have a graphic notation to represent:
- information, processing, system behavior, and other features
The second and third operational analysis principles require:
- build models of function and behavior
- Functional models
Software transforms information. Three generic functions:
- input, processing, output
Begin with a single context level model. Over series of iterations more
functional
detail is provided.
- Behavior models
Most software responds to events from the outside world.
A behavior model creates a representation of the states of the software
and events that cause software to change state
Modeling approaches
26
Partitioning
Partitioning decomposes a problem into its constituent parts and establish interfaces
between parts
Establish a hierarchical representation of information (or function):
- exposing increasing detail by moving vertically in the hierarchy
- decomposing the problem by moving horizontally in the hierarchy.
Horizontal partition
SafeHome Software
Configure system
Vertical partition
Monitor sensors
Software Prototyping
Analysis should be conducted regardless of software engineering paradigm. But form of
analysis will vary.
In some cases, it is possible to apply operational analysis principles and derive a model of
software from which a design can be developed.
In some cases requirement gathering or other brainstorming techniques is conducted and
model of software is built called prototype is constructed for customer & developer
assessment.
In some cases prototype is constructed at the beginning of the analysis since model is the
only means through which requirements can be effectively derived. The model then evolves
into production software.
Software Specification
Specification principles:
- Separate functionality from implementation
- Develop a model of the desired behavior of a system
- Establish the context in which software operates
- Define the environment in which the system operates
- Create a cognitive model rather than a design or implementation
model
- Specification is an abstract model of a real system, so can be
incomplete.
- Establish the content and structure of a specification (easy to be
changed)
Guidelines for representation:
- Representation format and content should be relevant to the problem
- Information contained within the specification should be nested
-Diagrams and other notational forms should be restricted in number and
consistent in use.
- Representations should be revisable
I. Introduction
A. System Reference
B. Overall Description
C. Software Project Constraints
II. Information Description
A. Information Content Representation
B. Information Flow Representation
1. Data Flow
2. Control Flow
III. Functional Description
A. Functional partitioning
B. Functional Description
1. Processing Narrative
2. Restrictions/Limitations
3.Performance Requirements
4. Design Constraints
Supporting Diagrams
34
35
Introduction states goals and objectives of the software. Nothing more than
software scope of the planning document.
Information description- detailed description of the problem. Information
content & relationships, flow and structure are documented.
Functional description- description of each function
Behavioral description-examines the operation of the software as a
consequence of external events and internally generated control characteristics
Bibliography contains references to all documents that is related to the
software.
Specification Review
Review done by both customer & developer
Since specification forms the foundation for design & subsequent software
engineering activities
Review is first conducted at a macroscopic level.
Ensure that specification is complete, consistent and accurate.
Detailed level- to answer many of the questions that arise during the first
level.
Once review is complete SRS is signed off by customer & developer.
SRS becomes the contract for software development.
The specification is difficult to test in a meaningful way
Assessing the impact of specification changes is hard to do
37