Req and Specification.zip
Software Requirements Software Requirements
Analysis Analysis
U. Ungkawa U. Ungkawa
2
1 September 2
1
2
1 September 2
1
Introduction
Introduction
The main objective is to set up a working
The main objective is to set up a working agreement with the customer agreement with the customer
Delivers a list of technical requirements the
Delivers a list of technical requirements the
software must satisfy software must satisfy
Requirements should be traceable; they can
Requirements should be traceable; they can
be: be:- Easily identified
Easily identified
- Unambiguously described
Unambiguously described
- Tested
Tested
Specification Process Specification Process
Introduction
Introduction
Specification is a commitment between the
Specification is a commitment between the customer and the developer. customer and the developer.
It end with the SW Specification Review (SSR)
It end with the SW Specification Review (SSR) during which the customer approves or rejects during which the customer approves or rejects the list of requirements that must be satisfied the list of requirements that must be satisfied by the software. by the software.
It must guarantee – as much as possible – the
It must guarantee – as much as possible – the feasibility of the software product. feasibility of the software product.
Specification Process Specification Process
Process Model
Process Model
Modeling of functional requirements by
Modeling of functional requirements by Functional Decomposition. Functional Decomposition.
We wish to decompose our functional
We wish to decompose our functional requirements in a manner such that: requirements in a manner such that:
- Related functions are grouped together
Related functions are grouped together
- Unrelated functions are separated
Unrelated functions are separated
- Each function should be specified only once.
Each function should be specified only once.
Purpose of The Process Model Purpose of The Process Model
Process Model
Process Model
Context Diagram describes the system
Context Diagram describes the system function and defines the system scope. function and defines the system scope.
Only one process bubble.
Only one process bubble.
At least one input and one output
At least one input and one output
At least one terminator At least one terminator
All terminators are connected to at least one
All terminators are connected to at least one
input or output flow input or output flow No data exchanged between terminators
No data exchanged between terminators
Data Context Diagram
Data Context Diagram
Process Model
Process Model
Data Context Diagram Data Context Diagram
DFDs are used for process decomposition
DFDs are used for process decomposition
Every process is decomposed in other process Every process is decomposed in other process
(within a DFD) or in one PSPEC (outside a (within a DFD) or in one PSPEC (outside a
DFD) DFD)
Rule of 7 ± 2is used:
Rule of 7 ± 2is used:
- Balance between lack of information (4 or less) and
Balance between lack of information (4 or less) and too much (more than 9) too much (more than 9)
Up to 4 levels of decomposition
Up to 4 levels of decomposition
Each DFD specifies the decomposition of its Each DFD specifies the decomposition of its parent bubble parent bubble
Process Model
Process Model
Data Context Diagram (Cont.)
Data Context Diagram (Cont.) Processes are the active elements in the
Processes are the active elements in the model model
Process performs a transformation:
Process performs a transformation:
- If and only if ALL input information available
If and only if ALL input information available
- Production of all information is IMMEDIATE, i.e all
Production of all information is IMMEDIATE, i.e all proceeing is done in zero delay proceeing is done in zero delay
The output from the process should be a
The output from the process should be a function of the input to it function of the input to it
Data flow allow transit of data within the
Data flow allow transit of data within the system system
Store is place where information is preserved
Store is place where information is preserved
Process Model
Process Model
PSPEC PSPEC
PSPEC’s are the lowest abstraction level PSPEC’s are the lowest abstraction level
Make a PSPEC approximately ½ page long
Make a PSPEC approximately ½ page long
Shows the relation between process input and Shows the relation between process input and output flows output flows
Any form of specification mat be used:
Any form of specification mat be used:
- Drawings
Drawings
- Mathematical equations
Mathematical equations
- Structural English (Indonesian)
Structural English (Indonesian)
Process Model
Process Model
PSPEC PSPEC
Inputs: Inputs:
payment payment
: data in : data in price price
: data in : data in
Output: Output:
Change due Change due
: data out : data out
Sufficient payment: data out Sufficient payment: data out
Body Body :
: if payment ≥ price if payment ≥ price change due = payment – price change due = payment – price sufficient payment = yes sufficient payment = yes otherwise otherwise change due = payment change due = payment
Control Model
Control Model
Purpose of the Control Model
Purpose of the Control Model Describes the dynamic aspects of the software Describes the dynamic aspects of the software
Is an addition to the process model, uses the Is an addition to the process model, uses the hierarchical structure of the process model
hierarchical structure of the process model Controls the data processing
Controls the data processing Defines the operating modes and the events that
Defines the operating modes and the events that causes changes in the operating modes
causes changes in the operating modes Logic of the control flow is summarized in a Control
Logic of the control flow is summarized in a Control Specification (CSPEC)
Specification (CSPEC)
Control Model
Control Model
CCD
CCD
CCD describes the system function and defines the CCD describes the system function and defines the system scope (same as DCD) system scope (same as DCD) CCD defines the external control interface of the
CCD defines the external control interface of the system system
Control flow : Data flow : Carry information that is Carry information needed to be interpreted for by a process to perform changing system behavior transformations and/or activating processes
Control Model
Control Model
CFD CFD
CFD is coupled to the equivalent level DFD and shares CFD is coupled to the equivalent level DFD and shares the same processes. the same processes.
CFD shows control flows instead of data flows CFD shows control flows instead of data flows
The control processing is described in the Control The control processing is described in the Control
Specification (CSPEC) Specification (CSPEC) The CSPEC is represented by a bar.
The CSPEC is represented by a bar. At most one CSPEC for each DFD/CFD
At most one CSPEC for each DFD/CFD
CSPEC CSPEC
Control Model
Control Model
Use of the concept of Finite State Machine Use of the concept of Finite State Machine
The two types of FSM we distinguish are: The two types of FSM we distinguish are:
Combinational: has no memory, at any time it can only
Combinational: has no memory, at any time it can only produce its output directly from its input. produce its output directly from its input.
- Sequential: has memory, it can only handle the control that is
Sequential: has memory, it can only handle the control that is relevant in a certain state. relevant in a certain state.
Models used: Models used:
- PAT
PAT
- STD
STD
- Combination of two
Combination of two
Data Model
Data Model
Requirements Dictionary Requirements Dictionary
Is the principal tool that makes the method rigorous Is the principal tool that makes the method rigorous
It is a list of data and control flow names each with a It is a list of data and control flow names each with a definition in terms of its components and structure. definition in terms of its components and structure.
Every flow must be in the dictionary Every flow must be in the dictionary
Group names must be broken down, eventually into Group names must be broken down, eventually into their primitive (self-defining) elements. their primitive (self-defining) elements.
Primitive elements have attributes that define the Primitive elements have attributes that define the element like: units, range, accuracy, …
element like: units, range, accuracy, … In fact a database is necessary to support the
In fact a database is necessary to support the modeling in practice modeling in practice
Data Model
Data Model
Requirements Dictionary Requirements Dictionary
All possible data structures can be represented with: All possible data structures can be represented with:
= = composed of composed of
together with together with
{} {} iteration of iteration of
[..|..] [..|..] composed of composed of
() () optional item optional item
“ ” “ ” literal literal
gives additional insight into its meaning gives additional insight into its meaning
Building The Requirements Model
Building The Requirements ModelContext Diagram (CD) Context Diagram (CD)
CD establishes data and control exchange between the CD establishes data and control exchange between the system under study and environment
system under study and environment Terminators are shown on the CD of the system,
Terminators are shown on the CD of the system, because they are not part of the system
because they are not part of the system Stores are not shown on the CD because they are
Stores are not shown on the CD because they are considered to be part of the system
considered to be part of the system The CD is the highest level of the Data/Control Flow
The CD is the highest level of the Data/Control Flow Diagrams, it comprises:
Diagrams, it comprises:
- One process (the system)
One process (the system)
- Terminators
Terminators
- Data flows, control flows
Data flows, control flows
Building The Requirements Model
Building The Requirements Model
Context Diagram (CD) (cont.) Context Diagram (CD) (cont.)
When creating the CD for any system, remember that When creating the CD for any system, remember that establishing the system boundary is an iterative establishing the system boundary is an iterative process. process.
For complex systems it may be necessary to draw For complex systems it may be necessary to draw several data flow diagrams before a boundary can be several data flow diagrams before a boundary can be established. established.
It is very important that this boundary be established It is very important that this boundary be established and be modified if required, because at all times you and be modified if required, because at all times you should know: “What you are working on” and “What is should know: “What you are working on” and “What is your system” your system”
Building The Requirements Model
Building The Requirements Model
Separation of Data and Control
Separation of Data and Control
It is usually best to work on the data and data processing It is usually best to work on the data and data processing first, because:
first, because:
It is necessary to know It is necessary to know what what you are controlling before you you are controlling before you decide how to control it
decide how to control it
Data processing can and should be defined independently of
Data processing can and should be defined independently of how, why or when how, why or when they are activated
they are activated Our objective in defining systems will be to minimize control by
Our objective in defining systems will be to minimize control by finding finding as many as processes as many as processes as possible which can simplify as possible which can simplify data triggered data triggered and need no other control and need no other control
But be aware But be aware
Your model may need rework after you decide to introduce a
Your model may need rework after you decide to introduce a
control specification: control specification: requirements modeling is an iterative requirements modeling is an iterative process process
Building The Requirements Model
Building The Requirements Model
Separation of Data and Control (cont.)
Separation of Data and Control (cont.)
The following criteria are helpful in determine whether a The following criteria are helpful in determine whether a flow is a data flow or a control flow:
flow is a data flow or a control flow:
Continuous signals, and processes that act on them, are
Continuous signals, and processes that act on them, are
always always categorized as data. categorized as data. Discrete signals, and process that act on them, are Discrete signals, and process that act on them, are
usually usually
categorized as control categorized as control
Terms like Terms like
activate, turn on, engage activate, turn on, engage
and and
execute execute
are are usually associated with control requirements usually associated with control requirements
Building The Requirements Model
Building The Requirements Model
Something about Control
Something about Control
Each DFD/CFD pair decide: Each DFD/CFD pair decide:
Is control required at this level, i.e. may all processes operate Is control required at this level, i.e. may all processes operate concurrently and data triggered?
concurrently and data triggered? Do not control processes if they do not need controlling!
Do not control processes if they do not need controlling! If control at this level then the flow flow s into a CSPEC
If control at this level then the flow flow s into a CSPEC If control not at this level, flows are passed down to the
If control not at this level, flows are passed down to the appropriate level where control takes place
appropriate level where control takes place For those processes that need control decide which processes
For those processes that need control decide which processes may operate concurrently and which must be mutual exclusive may operate concurrently and which must be mutual exclusive
Let as many of your processes be Let as many of your processes be data triggered data triggered as possible as possible
Building The Requirements Model
Building The Requirements Model
Balancing and Leveling
Balancing and Leveling
The inputs and outputs of a decomposition of a process The inputs and outputs of a decomposition of a process into children must match those of its parent process, this into children must match those of its parent process, this is called is called
balancing balancing
The decomposition itself is called The decomposition itself is called
leveling leveling
When a process can not be broken down anymore, it is When a process can not be broken down anymore, it is called a called a
functional primitive functional primitive
and it will be described in and it will be described in a PSPEC
a PSPEC A rule of thumb is to stop when the process can be
A rule of thumb is to stop when the process can be described in about ½ page of specifications
described in about ½ page of specifications PSPEC are written for functional primitives only. However
PSPEC are written for functional primitives only. However it is good practice to write so called high-level PSPECs for it is good practice to write so called high-level PSPECs for each process at any level DFD each process at any level DFD
Building The Requirements Model
Building The Requirements Model
Requirement Model Balancing Rules
Requirement Model Balancing Rules
Every DFD/CFD must balance with each parent process Every DFD/CFD must balance with each parent process
Every PCPEC must balance with the functional primitive Every PCPEC must balance with the functional primitive process it describes
process it describes Every CSPEC must balance with its associated CFD
Every CSPEC must balance with its associated CFD Every CSPEC must only show activation and deactivation
Every CSPEC must only show activation and deactivation of processes on the DFD having the same number as the of processes on the DFD having the same number as the
CSPEC CSPEC The derivation of control signal from data signals (data
The derivation of control signal from data signals (data conditions) can only be specified in a PSPEC for a conditions) can only be specified in a PSPEC for a functional primitive process
functional primitive process Every data flow, control flow, and store must be defined,
Every data flow, control flow, and store must be defined, and must be decomposed to its primitive elements, in and must be decomposed to its primitive elements, in the requirements dictionary the requirements dictionary
Building The Requirements Model
Building The Requirements Model
Evaluation of the Requirements Model
Evaluation of the Requirements Model
Are all the level necessary? Are all the level necessary?
Are all the names clear? Are all the names clear?
Has control been isolated Has control been isolated
Is every component correctly named and are the Is every component correctly named and are the names understandable?
names understandable? Are any flows missing?
Are any flows missing? Do the processes satisfy the requirements?
Do the processes satisfy the requirements? Have unrelated functions been separated and are
Have unrelated functions been separated and are related functions grouped together?
related functions grouped together? …
… ?
?
Building The Requirements Model Building The Requirements Model
Summary Summary
Don’t be afraid to start over Don’t be afraid to start over
. It frequently happens . It frequently happens that preparing a child DFD will cause its parents to be that preparing a child DFD will cause its parents to be revised
revised You will not fully comprehend the process of putting
You will not fully comprehend the process of putting DFD’s together until
DFD’s together until
you have completed it you have completed it .
. It is only clear what a DFD means once it is completed
It is only clear what a DFD means once it is completed