0% found this document useful (0 votes)
116 views20 pages

"Writing Down The Requirements": TCS2411 Software Engineering 1

This document discusses different methods for specifying software requirements, including using natural language, diagrams, mathematical methods, and advanced techniques. It provides examples of decision tables and trees to represent logic and conditions. Good requirements are correct, complete, consistent, unambiguous, functional, verifiable, traceable, and easily changed. Traceability ensures each requirement can be linked to related requirements.

Uploaded by

Amlesh Kumar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
116 views20 pages

"Writing Down The Requirements": TCS2411 Software Engineering 1

This document discusses different methods for specifying software requirements, including using natural language, diagrams, mathematical methods, and advanced techniques. It provides examples of decision tables and trees to represent logic and conditions. Good requirements are correct, complete, consistent, unambiguous, functional, verifiable, traceable, and easily changed. Traceability ensures each requirement can be linked to related requirements.

Uploaded by

Amlesh Kumar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 20

Software Requirements

Specification

“Writing down the requirements”

TCS2411 Software Engineering 1


Lecture Objectives

To describe different methods of specifying


the software requirements
To illustrate the use of technical methods
for specifying certain types of requirements
To describe the properties of good software
requirement specifications

TCS2411 Software Engineering 2


Software Requirements
Specification

From our understanding of the problem,


we now write down what the customer
wants from the software
Documentation of what the software is
supposed to be
Many companies regard it as ‘contract’
between customer and developer
The basis for validation and verification
TCS2411 Software Engineering 3
Using Natural Language

More than 50% of the content of the


specifications are usually written using
plain English, Bahasa, Chinese, etc.
Easy to produce
Easy for customer to understand
Can be improved by using structured
form, using fields and description placed
in fields
TCS2411 Software Engineering 4
Examples of
Specifications

The printout of outstanding creditors are


done monthly at the end of each month.
Purchase orders are automatically
generated when the item quantity reaches
below the reorder level.
Usually the report is produced based on
the code given.

TCS2411 Software Engineering 5


Problems of Natural
Language

Lack of clarity
Words such as “some”, “usually”, “probably”
Ambiguity
Some words have more than one meaning
Context dependency
Same word in different sentences have
different meaning
Depends on whole
paragraph/page/document
TCS2411 Software Engineering 6
Using Diagrams

Graphical representation of the analysis


can present the information better using:
Entity-Relationship Diagrams
Data Flow Diagrams
State Transition Diagrams
event table, action table
Decision Tables
Decision Trees
TCS2411 Software Engineering 7
Decision Tables

Representation of logic that is part of the


processing
Based on a set of conditions, different
actions will be performed
Can be simplified by removing impossible
actions

TCS2411 Software Engineering 8


Structure of Decision
Table

Decision rules
Rule 1 Rule 2 Rule 3 Rule 4

(condition stub) (Condition entries)

(action stub) (Action entries)

TCS2411 Software Engineering 9


Example of Decision
Table

Conditions/ R u l e s
Actions 1 2 3 4 5 6
Employee Type S H S H S H
Hours worked <40 <40 40 40 >40 >40
Pay base salary X X X
Calculate Hourly wage X X X
Calculate Overtime X
Produce Absence Report X

TCS2411 Software Engineering 10


Constructing Decision
Table

Name the conditions and the values each


condition can assume
Name all possible actions that can occur
List all possible rules
Define the actions for each rule
Simplify the decision table

TCS2411 Software Engineering 11


Simplified Decision
Table

Conditions/ Rules
Actions 1 2 3 4
Employee Type S H H H
Hours worked - <40 40 >40
Pay base salary X
Calculate Hourly wage X X X
Calculate Overtime X
Produce Absence Report X

TCS2411 Software Engineering 12


Decision Trees

Graphical technique representing


decisions using a series of nodes and
branches
Each node is a decision point - a choice
has to be made
Each branch has a corresponding value to
the decision choice
Subsequent action is the result
TCS2411 Software Engineering 13
Example of Decision
Tree
Yes
1 Pay base salary

No Yes
2 Pay hourly wage;
Absence report
No
Yes
Legend: 3 Pay hourly wage
1) Salaried?
No
2) Hours worked < 40? Pay hourly wage;
3) Hours worked > 40? Pay overtime wage
TCS2411 Software Engineering 14
Mathematical Methods

Implicit Equations
Specific equations relevant to software
Includes other equation details e.g. data type, matrix
size, algorithm
Regular Expressions
To specify syntactic structure of string codes
Example: <id> ::= <yr><course><number>
<number> ::= <digit><digit><digit><digit>
<digit> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

TCS2411 Software Engineering 15


Mathematical Methods
(Continued)

Recurrence Relations
Consist of initial part and one or more
recursive parts
Example: Fibonacci sequence
F(0) = 1
F(1) = 1
F(N) = F(N-1) + F(N-2) N>=2
Useful for generation of repeated items, e.g.
account number
TCS2411 Software Engineering 16
Advanced Mathematical
Methods
Axiomatic Definition
specify basic system properties (axioms) and
how the system generate new properties
Example:
REPLACE(stk,itm) = if EMPTY(stk) then error else
(PUSH(POP(stk),itm)
Formal specifications
Use of mathematically based techniques
Sets, Operators, Sequences, Logic Operators
TCS2411 Software Engineering 17
Good Specifications
Correct
Complete
Consistent
Unambiguous
Functional
Verifiable
Traceable
Easily changed
TCS2411 Software Engineering 18
Traceability Methods

All requirements should be assigned a


unique number
Requirements should explicitly identify
related requirements by referring to their
number
Each requirement should contain a cross-
reference matrix showing related
requirements
TCS2411 Software Engineering 19
References
“Software Engineering: A Practitioner’s
Approach” 5th Ed. by Roger S. Pressman,
Mc-Graw-Hill, 2001
“Software Engineering” by Ian Sommerville,
Addison-Wesley, 2001
“Modern Systems Analysis and Design” by
Jeffrey A. Hoffer, Joey F. George & Joseph
S. Valacich, Benjamin/Cummings, 1996

TCS2411 Software Engineering 20

You might also like