Software Specification Tools
Software Specification Tools
SOFTWARE
SPECIFICATION TOOLS
C
ASE tools turn traditional systems approaches upside down.
The set of software known as CASE – for computer-aided
software engineering – tools goes beyond the concept of
prototyping and has become a significant factor in the
development of systems. CASE tools provide an automated means
of designing and changing systems. In fact, integrated CASE tools
can automate most of the systems development life cycle.
CASE tools, however, are not cure-alls. To begin with, they really
only have value for new systems; an estimated 80 percent of
computer organization time is devoted to the maintenance of
existing systems. Also, CASE standards have not been established,
and the result is a hodgepodge of methodologies from a variety of
vendors. Keep in mind, also, that no CASE tool, or any other tool,
will help if you do not know what you are doing. Good tools do not
necessarily create good systems.
Data Dictionary
In the early 1970s system analysts realized that they needed more
systematic and logical methods of describing systems. The
proliferation of computers and the collection of large amounts of
information in databases often led to a great deal of confusion and
inconsistency.
Next on the hierarchy are the data stores, data model entities and
data flows. Data store describes the files that hold data, data model
entities define what records and elements will be treated as a unit
and data flows specify pathways for moving information.
Storage Type C
Characters left of decimal 3 Characters right of decimal 2
Prompt PRICE
Column Header PART PRICE
Short Header PRICE
Base or Derived D
Data Class AMOUNT
Source MASTER PRICE LIST
Default
Data
Dictionary
entry
Screen Design
Entity List
Data Element
Data Record
Data
hierarchy
A data dictionary
places all
Data Model
information in a Data Stores Data Flows
Entity
hierarchical
structure.
43
The Gantt Chart
In the early years of the century systems analysts were often called
efficiency experts. They sought to documents diagram systems so
they could improve operations. In 1914 one of these efficiency
experts Henry L. Gantt introduces a scheduling chart that later
became known as a Gantt Chart. It is a fundamental planning tool
of the analyst. Down the left-hand column are listed the tasks or
activities to be performed. The right-hand portion of the chart has
horizontal bars that show the duration of each activity. If a complex
task is broken down into several sub-tasks,
The chart marks off time periods in days, weeks or months. Thus we
can see at a glance what activities are to be performed, when each
begins, and when each terminates. But much like a calendar the
Gantt Chart is based upon time intervals and does not show the
logical flow of information throughout a system. However, it
remains a useful tool for documenting systems work.
Planning
Problem Definition
System Analysis
Interviews
Direct Observation
System Design
Prototype Terminals
Output Design
File Design
System Development
Select Vendors
Train Staff
Gantt Prepare Documentation
CHART System Implementation
Changeover
The chart shows System Evaluation
when activities
begin
0 1 2and3 end.
4 5 6 7 8 9 10 11 12 13 14
TIME IN WEEKS/MONTHS
Decision Trees
Systems analysts are often faced with documenting complex
systems that involve making many decisions. The decision tree is a
tool that is particularly well suited for illustrating such systems. It is
read from left to right, showing decision to be made. Tasks such as
granting credit, approving a purchase or handling customer
complaints, which involve making decisions, can be illustrated on
this type of chart.
Decision trees sometimes include numbers that express the probability of an event at each
decision. One course of action may have a 30 percent probability of occurring and another 70
percent. By placing values at each juncture, an analyst can better assess the overall 44
probability of certain events taking place.
Air
Prepare How to Freight
Invoice Ship?
Truck
Goods in Customer
stock Yes Pickup
Manufacture Prepare
No Goods Invoice
Yes
_________________________________________________________________
Decision Software Project
Management Raw Materials
tree No
Available?
Order Raw Manufacture
The tree is read Materials Goods
from left to right.
Lesson 5: Software Specification Tools
_____________________________________________________________
Decision Tables
Systems Analysts often use a design diagram known as decision
table. Decision tables are charts in the form of matrices that
graphically display conditions, options and alternatives to be dealt
with when making business decisions. A decision table is composed
of several parts. The condition stub lists all possible conditions that
could arise in making a decision. The action stub lists all possible
actions that may be taken. The condition entry lists all possible
combinations of conditions that may occur and the action entry
describes what actions will be followed for each set of conditions.
The entry sections are lined off in vertical columns called rules.
Each rule specifies what actions are to be taken for each set of
conditions.
Decision
Condition
table Condition Entry
Stub
Parts of Decision
Table: Condition, Action Action
Stub, Condition Stub Entry
Entry, Action Stub
and Action Entry.
Figure above illustrates a decision table used in an order-processing
system. It defines the various ways to handle orders for items that
are low in stock. The analysts begins by completing the upper left
quadrant, the condition stub, listing a variety of conditions such as
supply out of stock, supply adequate and item discontinued. Next
the analyst completes the lower left quadrant, the action stub
listing the possible actions that may be taken. For instance a stock
pick order a purchase requisition or an invoice may be prepared.
The lower right section, the action entry is completed last. Action
entries define which actions will be taken in light of each rule. The
analyst enters an x, meaning that those actions are to be taken in
Software Project Management
_________________________________________________________________
___________________________________________________ Software Engineering: A Computer
Science Approach
Decision tables enable the analyst to layout a complex variety of conditions and to specify
how each set of conditions should be handled. The rules developed in a decision table can be
used as a basis of procedures manual for employees, to teach them how to handle various
situations and to ensure consistent treatment. Decision tables are also used when designing
computer programs. They describe all possible options in a problem and the specifications
that the computer must execute for each set of conditions.
RULES
1 1 1 1 1 1 1 1
1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7
Supply-adequate Y N N N N N N N N N N N N N N N N
Supply-below minimum N Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y
Supply-out of stock N N N N N N N N N N N N N Y Y Y N
Item discontinued N N N N N N N N N N N N N N N Y
Purchase requisition made Y N Y N Y N Y N Y N Y N Y N
Old account Y Y Y Y Y Y N N N N N N
Large order Y Y Y Y N N Y Y N N N N
Sale item N N Y Y Y Y N N
Write pick order X X X X X X X X
Made purchase requisition X X X X X X X
Cancel order X
Write order confirmation X X X X X X X X
Prepare invoice X X X X X X X X
Decision table
example
A decision table
that might be used
in an order-
processing system.
Decision tables have several advantages they lessen the possibility of omitting essential
elements and ensure that a given set of conditions will be handled consistently. They are
easier to understand than lengthy verbal descriptions of choices. As do other tools they
require the analyst to refine his/her thinking and to clarify details. The decision table cannot
be completed until the analyst has explicitly defined all the conditions and actions involved.
Flowcharts
Flowcharts as punched cards and unit records equipment came into
use in 1940’s system designers found it necessary to describe and
define systems in mew ways. This led to the development of the
flowchart as a major means of documenting information flow. The
flowchart was widely used as a design tool until 1970s when it lost
popularity to some of the newer structured tools. 46
It is a graphical representation of the steps in the solution of a
problem, in which symbols represent operations, data flow,
hardware and the system plan. It can document either business
systems or computer programs.
Time
Cards
Verif
y
Time
Card
Enter Payroll
Transactions
Payroll
Master
File
Compute
Payroll Using
Computer
flowchart
A graphic
representation of
the information Print Payroll Print
flow in a Register Paychecks
Software Project Management
system.
_________________________________________________________________
___________________________________________________ Software Engineering: A Computer
Science Approach
Data Flow
diagram
Symbols are
connected to show
the flow of data
through a system.
_________________________________________________________________ Software Project
Management
Lesson 5: Software Specification Tools
_____________________________________________________________
The detail and complexity of a data flow diagram varies with the
system being described. As you work with systems, you will find
yourself continually relying upon diagrams such as these to show
points where data originates, is processed or transformed and is
output.
Context Diagrams
It is often helpful to illustrate systems using a broad-brush,
undifferentiated data flow figure known as a context diagram. The
context diagram shows the entire system as one general element. It
is the most overall view we can obtain of a system. All sources and
49 sinks of data are linked to this one entity, using flow lines or pipes.
Order
Customer
0
Context Bill Request Billing
Order Dept.
diagram System
2 2 2
This diagram shows Ship Request
Shipping
an order system in Dept.
its most generalized Ship Confirm
3 3 3 3
_________________________________________________________________ Software Project
Management
3
Lesson 5: Software Specification Tools
_____________________________________________________________
exploded
diagram
Each succeeding
level of the
diagram shows a 50
greater amount
Let’s put the concepts and symbols we have discussed to use and
see how a set of data flow diagrams are prepared. Suppose we are
designing a payroll system that will generate paychecks and tax
reports. We begin by drawing a context diagram of the system. The
entire system (Figure below) is shown in one symbol labeled
“Payroll System”. Connected to this process are the external
entities “Employees” and “Government”.
Time Cards
Employees
0 Paychecks
Employees
Payroll
System
Payroll
system
Reports
Context
diagram
Govern
ment
“Employees” and
“Government” are
Let us now refine the level of detail. The figure below illustrates a
level 1 diagram of the system. The employees’ time cards are
drawn as a source (external entity). Hours worked are verified
against information in the time card file. Computations of
employees’ salaries require accessing a tax table file. Tax reports
Software Project Management
_________________________________________________________________
___________________________________________________ Software Engineering: A Computer
Science Approach
1.0 1.1
1.2
Time Cards
Verify Compute Paychecks
Employee Prepare Employee
Hours Salary
Paycheck
Worked Deductions
Payroll
system
level 1 1.6
diagram Prepare Reports Governmen
Tax t Agency
51 The employees’
time cards are
1.5 Check Stub Reports
drawn as a source
Each process symbol can be broken down into lower levels of detail.
For federal income tax withholding and payments to credit unions.
This would result in one or more second-level diagrams, which could
be further, exploded to a third level of detail.
1.1.1 1.3.1
_________________________________________________________________
1.2.1 1.2.2 Software Project
Management State Report
Federal
Report Credit Write Program
Program Union Paycheck
Program Program
Lesson 5: Software Specification Tools
_____________________________________________________________
Visual table
of contents
(VTOC)
Structured English
Up to this point we have been dealing with diagrams that are visual
or pictorial in nature. To actually write a program for the steps
illustrated in an IPO chart or a data flow diagram, we must prepare
a detailed sequence of instructions in programming language.
Structured English is written in a terse sentence from resembling an outline. Steps in the
program are listed in sequence. Items are indented to show subordination. Once completed, a
set of pseudocode instructions provides an easy bridge to programming. It becomes a
communication tool used by both the programmer and the systems analyst.
IDENTIFICATION DIVISION
53 PROGRAM ID. LISTING1
ENVIRONMENT DIVISION
CONFIGURATION SECTION
SOURCE COMPUTER. CYBER-170-720
OBJECT COMPUTER. CYBER-170-720
SPECIAL-NAMES.
INPUT-OUTPUT SECTION.
FILE CONTROL.
SELECT IN-FILE ASSIGN TO INPUT
SELECT OUT-FILE ASSIGN TO OUTPUT.
DATA DIVISION.
FILE SECTION.
* DEFINE INPUT OF THE PROGRAM
FD IN-FILE
LABEL RECORDS ARE OMITTED.
1 RECORDS-IN PIC X (80).
* DEFINE OUTPUT OF THE PROGRAM.
FD OUT-FILE
LABEL RECORDS ARE OMITTED
1 RECORD-OUT.
02 FILLER PIC X (01).
02 DATA OUT PIC X (80).
PROCEDURE DIVISION.
LETS-GO
OPEN INPUT IN-FILE
OPEN OUTPUT OUT-FILE.
MOVE SPACES TO RECORD-OUT
WRITE RECORD-OUT AFTER PAGE.
READ-AND-WRITE.
Cobol
_________________________________________________________________ Software Project
language
Management
54
Warnier-Orr Diagrams
Programmers and systems analysts sometimes use another form of
design diagram known as Warnier-Orr diagram. Named for its
creator, Jean Dominique Warnier and Ken Orr, who further
developed it, the diagram resembles a visual table of contents
placed on its side.
Many analysts prefer the Warnier-Orr diagram over the VTOC because the Warniier-Orr
chart can be drawn without templates or artists’ instruments and shows at a glance each level
in the hierarchy.
Nassi-Shneiderman Charts
In the early 1970s, Isaac Nassi and Ben Shneiderman developed a
form of programming chart that closely resembles the control
structures used by programmers.
Input Deductions
Hourly or Salary?
Hourly Salary
Credit Union
Deductions?
NASSI- Yes No
SHNEIDERMAN Compute Net Pay less
Credit Union Deductions Compute Net Pay
CHART
Print Out Paycheck
This type of chart
clearly illustrates
program logic
The Nassi-Shneiderman chart shown below describes the data flow through a computer
program. Analysts and programmers use these charts, sometimes known as structured
flowhcharts, because they clearly show the logic in a program.
EXERCISES
1. Describe how adding personnel to a project that is behind
schedule might make the project completion date even later.