Lesson 4
Lesson 4
Contents
4.0.Aims and Objectives
4.1.Introduction
4.2.The Software Requirement Specification
4.3.Formal Specification Techniques
4.4.Languages and Processors for requirements specification
4.5.Review Questions
4.6.Let us Sum up
4.7.Lesson End Activities
4.8.Points for Discussion
4.9.References
55
Requirements analysis provides the software engineer,
• Information of data, architectural and procedural design.
• Means to assess software quality, with the help of requirements
specification.
System
Engineering
Requirement
Analysis
Software
Design
56
Modeling: Developing a model for an industrial-strength software system prior
to its construction or renovation is as essential as having a blueprint for large
building. Good models are essential for communication among project teams
and to assure architectural soundness. As the complexity of systems increase,
so does the importance of good modeling techniques. The analyst creates
models of the system to better understand data and control flow, functional
processing, and behavioral operation. The model serves as a foundation for
software design and as the basis for the creation of a specification.
Specification: The final output of the requirements analysis is the creation of a
Software Requirements Specification (SRS) document. For simple problems the
specification activity might be the end result of the entire analysis. However in
most real life problems, the problem analysis and specification are done
concurrently. A good SRS should be understandable, complete, consistent, and
unambiguous.
Review: Requirements reviews are the most common method employed for
validating the requirements specifications. Reviews are used throughout
software development for quality assurance and data collection. Requirements
review is a review by a group of people to find out errors and point out other
matters of concern in the requirements specifications of a system.
4.1.1. Specification Principles
The list of basic specification principles given below will provide a basis for
representing software requirements.
1. Separate functionality from implementation.
2. Develop a model of the desired behavior of a system that encompasses
data and the functional responses of a system to various stimuli from the
environment.
3. Establish the context in which software operates by specifying the
manner in which other system components interact with software.
4. Define the environment in which the system operates and indicate how
“a highly twisted collection of agents react to stimuli in the environment
produced by those agents.
5. Create a cognitive (perception) model rather than design or
implementation model. The cognitive model describes a system as
perceived by its user community.
6. Recognize that “the specification must be tolerant of incompleteness and
augmentable”. A specification is always a model – an abstraction - of
some real situation that is normally quite complex. Hence it will be
incomplete and will exist at many levels of detail.
7. Establish the content and structure of a specification in a way that will
enable it to be amenable to change.
Check your progress
57
i. Requirements Analysis is a software engineering task that bridges the gap
between _______________ and ______________
ii. Requirements analysis enables the system engineer to _________, __________
and ____________
iii. Requirements analysis provides the software engineer to _________ and
____________
iv. Two types of formal specifications they are _________
Solutions
Ii
Iii
Iv
4. Functional Requirements
5. Performance Requirements
6. Exception Handling
58
8. Foreseeable Modifications and
Enhancements
9. Acceptance Criteria
59
Example:
Implicit equations, recurrence relations, algebraic axioms and regular
expressions.
State-Oriented Notations
he state of a system is the information required to summarize the status
of system entities at any particular point in time; given the current state and
the current stimuli, the next state can be determined. The execution history by
which the current state was attained does not influence the next state; it is only
dependent on the current state and current stimuli.
Example:
Decision tables, event tables, transition tables, finite-state mechanisms,
and Petri nets.
60
vi. System dynamics
vii. System properties
viii. Project management
PSL contains a number of types of objects and relationships to permit
description of these eight aspects. The system input/output flow aspect deals
with the iteration between a system and its environment.
The Problem Statement Analyzer (PSA) is an automated analyzer for
processing requirements stated in PSL.
b. RSL/REVS
The Requirements Statement Language (RSL) was developed by the TRW
Defense and Space Systems Group to permit brief and clear-cut specification of
requirements for real-time software systems. The Requirements Engineering
Validation Systems (REVS) processes and analyzes RSL statements; both RSL
and REVS are components of the Software Requirements Engineering
Methodology. Many of the concepts in RSL are based on PSL.
c. SADT
Structured Analysis and Design Technique (SADT) was developed by D.T.
Ross and Colleagues at Softech, Inc. SADT incorporates a graphical language
and set of methods and management guidelines for using the language. The
SADT language is called the language of Structured Analysis (SA). The SA
language and the procedures for using it are similar to the engineering
blueprint systems used in civil and mechanical engineering.
d. SSA
Structured System Analysis is used primarily in traditional data
processing environments. Like SADT, SSA uses a graphical language to build
models of systems. Unlike SADT, SSA uses graphical concepts; however, SSA
does not provide the variety of structural mechanisms available in SADT. There
are four basis features in SSA: data flow diagrams, data dictionaries, procedure
logic representation and data store structuring techniques. SSA data flow
diagrams are similar to SADT diagrams, but they do not indicate mechanism
and control, and an additional notation is used to show data stores.
e. GIST
Gist is a formal specification language developed at the USC/Information
Sciences Institute by R. Balzar and colleagues. Gist is a textual language based
on a relational model of objects and attributes. A Gist specification is a formal
description of valid behaviors of a system. A specification is composed of three
parts:
i. A specification of object types and relationships between these types.
This determines a set of possible states.
ii. A specification of actions and demons which define transitions
between possible states.
61
iii. A specification of constraints on states and state transitions.
4.5. REVIEW QUESTIONS
1. Define requirements analysis.
2. List requirements analysis tasks.
3. Discuss the problems with requirements analysis.
4. Discuss Balzer and Goldman’s specification principles.
5. List the different analysis methods.
62
4.9. REFERENCES
1. Pressman R., Software Engineering: A practitioner's Approach, (4th ed.),
McGraw-Hill, 1997
2. Sommerville I.,Software Engineering (5th ed.), Addison-Wesley, 1996.
3. IEEE Std 830-1988, IEEE Recommended Practice for Software
Requirements Specifications. IEEE Computer Society
4. www. Imappl.org/crest/environment.html.
63
64