Download as pdf or txt
Download as pdf or txt
You are on page 1of 35

What is Software Design?

Introduction
Software design consists of two components, modular design and packaging. Modular design is the decomposition of a program into modules. A module is a group of executable instructions with a single point of entry and a single point of exit. Packaging is the assembly of data, process, interface, and geography design specifications for each module.

Structured Design Introduction


Structured design was developed by Ed Yourdon and Larry Constantine. This technique deals with the size and complexity of a program by breaking up a the program into a hierarchy of modules that result in a computer program that is easier to implement and maintain.

INFO RM ATIO N SYSTEM S FRAM EW O RK

FO C U S O N SYSTEM D ATA

FO C U S O N SYSTEM PR O C ESSES

FO C U S O N SYSTEM IN TER FAC ES

FO C U S O N SYSTEM G EO G R APH Y

SYSTEM O W N ER S (scope)

Business Processes
rejected order Customers credit Check credit

S Y S T E M A N A L Y S T S

SYSTEM U SER S
order

customer number

order with valid products

approved order

Validate customer

valid order

Validate products

Orders

(requirem ents)

order without valid customer

prices

approved order

picking quantity Products in stock Release order ticket

Chapters 5, 7 Application Schem a


Order Processing Program Initiation Routine Process an Order Shutdown Routine

SYSTEM D ESIG N ER S (specification)


Check Customer Credit

Get an Order

Validate an Order

File an Order

(facilitation)

Check Product Data

Check Credit Data

Release an Order

Customers

Products

Orders

Chapters 11, 16

SYSTEM BU ILD ER S (com ponents)

Software (and Hardware) Technology

Interface Technology

Structured Design Structure Charts


The primary tool used in structured design is the structure chart. Structure charts are used to graphically depict a modular design of a program.
Specifically, they show how the program has been partitioned into smaller more manageable modules, the hierarchy and organization of those modules, and the communication interfaces between modules. Structure charts, however, do not show the internal procedures performed by the module or the internal data used by the module.

Structured Design Structure Charts


Structure chart modules are depicted by named rectangles. Structure chart modules are presumed to execute in a top-tobottom, left-to-right sequence. An arc shaped arrow located across a line (representing a module call) means that the module makes iterative calls. A diamond symbol located at the bottom of a module means that the module calls one and only one of the other lower modules that are connected to the diamond. Program modules communicate with each other through passing of data.

Structured Design Structure Charts


Programs may also communicate with each other through passing of messages or control parameters, called flags. Library modules are depicted on a structure chart as a rectangle containing an vertical line on each side.

SYSTEM MODULE

2
DATA A

DATA B

5
MODULE A MODULE B

6 5
DATA A

FLAG A

4 4
DATA B DATA C FLAG B FLAG B

6
DATA D DATA B AND C/D

MODULE C

MODULE D

MODULE E

MODULE F

MODULE G

DATA B

7
LIBRARY MODULE A

Structured Design Data Flow Diagrams of Programs


Structured design requires that data flow diagrams (DFDs) first be drawn for the program. Processes appearing on the logical, elementary DFDs may represent modules on a structure chart. Logical DFDs need to be revised to show more detail in order to be used by programmers The following revisions may be necessary: Processes appearing on the DFD should do one function. Processes need to be added to handle data access and maintenance. DFDs must be revised to include editing and error handling processes, and processes to implement internal controls.

DATA STORE A

DATA A

P PROCESS A (DO NOT EXPAND) FINAL TOTALS OF DATA A & C BOUNDARY B

P BOUNDARY A DATA C PROCESS WITH MANY INPUTS & OUTPUTS

SUM OF DATA A AND DATA C

P D DATA STORE B SCREENED DATA B RELEASED DATA D PROCESS B (DO NOT EXPAND) REVISED XYZ STATUS

DATA B

DATA STORE C

EXPANDED (OR REPLACED BY)

DATA STORE A

DATA A P P SUM OF DATA A AND DATA C PROCESS A FINAL TOTALS OF DATA A & C BOUNDARY B

BOUNDARY A

DATA C

NEW PROCESS A

P NEW PROCESS B SCREENED DATA B

P PROCESS B

RELEASED DATA D

DATA STORE B

DATA B

REVISED XYZ STATUS

DATA STORE C

DATA STORE A

A DETAILS

P NEW B DETAILS PROCESS X UPDATED C DETAILS D DATA STORE C D DATA STORE B

BOUNDARY A

B DETAILS

DELETED D DETAILS

DATA STORE D

NEW B DETAILS TO BE ADDED P A DETAILS READ A DETAILS

P ADD NEW B DETAILS NEW B DETAILS D DATA STORE B

P C DETAILS TO UPDATE UPDATED C DETAILS D BE UPDATED C DETAILS DATA STORE C

P D DATA STORE A A DETAILS FOR PROCESSING PROCESS X

P BOUNDARY A B DETAILS D DETAILS TO BE DELETED DELETE D DETAILS DELETED D DETAILS D DATA STORE D

Structured Design Transform Analysis


One approach used to derive a program structure chart from program DFD is transform analysis. Transform analysis is an examination of the DFD to divide the processes into those that perform input and editing, those that do processing or data transformation (e.g., calculations), and those that do output.
The portion consisting of processes that perform input and editing is called the afferent. The portion consisting of processes that do actual processing or transformations of data is called the central transform. The portion consisting of processes that do output is called the efferent.

BOUNDARY A

P A INPUT FUNCTION A

Central Transform

OUTPUT

UNCTION A

BOUNDARY B

Afferent
C D DATA STORE B

K P

INPUT

E P

UNCTION B

Efferent

OUTPUT

UNCTION B

P B

P F T ANSFORM FUNCTION A J D DATA STORE E

INPUT

UNCTION C

D DATA STORE D P D P

P I

INPUT

UNCTION D

TRANSFORM FUNCTION B

OUTPUT

UNCTION C

Structured Design Transform Analysis


The strategy for identifying the afferent, central transform, and efferent portions of a begins by first tracing the sequence of processing for each input. There may be several sequences of processing. A sequence of processing for a given input may actually split to follow different paths.

Structured Design Transform Analysis


Once sequence paths have been identified, each sequence path is examined to identify process along that path that are afferent processes. The steps are as follows:
Step 1 - Beginning with the input data flow, the data flow is traced through the sequence until it reaches a process that does processing (transformation of data) or an output function. Step 2 - Beginning with an output data flow from a path, the data flow is traced backwards through connected processes until a transformation processes is reached (or a data flow is encountered that first represents output). Step 3 - All other processes are then considered to be part of the central transform!

BOUNDARY A

P A INPUT FUNCTION A

P OUTPUT FUNCTION A L BOUNDARY B

START OR TRACING INPUT A


C

K P INPUT FUNCTION B E P OUTPUT FUNCTION B P F TRANSFORM FUNCTION A J D DATA STORE E

DATA STORE B

FINISH POINTS FOR TRACING INPUTS A & B

P B INPUT FUNCTION C

START OR TRACING INPUT B


D DATA STORE D

P D INPUT FUNCTION D

P I OUTPUT FUNCTION C

TRANSFORM FUNCTION B

START OR TRACING INPUT D

FINISH POINT FOR TRACING INPUT D

Structured Design Transform Analysis


Once the DFD has been partitioned, a structure chart can be created that communicates the modular design of the program. Step 1 - Create a process that will serve as a commander and chief of all other modules.
This module manages or coordinates the execution of the other program modules.

Step 2 - The last process encountered in a path that identifies afferent processes becomes a second-level module on the structure charts. Step 3 - Beneath that module should be a module that corresponds to its preceding process on the DFD. This would continue until all afferent processes in the sequence path are included on the structure chart.

BOSS

E F G

INPUT FUNCTION B

INPUT FUNCTION C

INPUT FUNCTION D

INPUT FUNCTION A

Structured Design Transform Analysis


Step 4 - If there is only one transformation process, it should appear as a single module directly beneath the boss module.
Otherwise, a coordinating module for the transformation processes should be created and located directly above the transformation process..

Step 5 - A module per transformation process on the DFD should be located directly beneath the controller module.

BOSS

E F G E, F,

INPUT FUNCTION B

INPUT FUNCTION C

INPUT FUNCTION D

CENTRAL TRANSFORM CONTROLLER

F J I

INPUT FUNCTION A

TRANSFORM FUNCTION A

TRANSFORM FUNCTION B

Structured Design Transform Analysis


Step 6 - The last process encountered in a path that identifies efferent processes becomes a second-level module on the structure chart. Step 7 - Beneath the module (in step 6) should be a module that corresponds to the succeeding process appearing on the sequence path.
Likewise any process immediately following that process would appear as a module beneath it on the structure chart.

BOSS

E J F G E, F, G J I I

INPUT FUNCTION B

INPUT FUNCTION C

INPUT FUNCTION D

CENTRAL TRANSFORM CONTROLLER

OUTPUT FUNCTION C

OUTPUT FUNCTION B

F J G I

INPUT FUNCTION A

TRANSFORM FUNCTION A

TRANSFORM FUNCTION B

OUTPUT FUNCTION A

MEMBER D MEMBER ORDER DETAILS MEMBER DETAILS

P READ MEMBER ORDER MEMBER ORDER ACTIVITY

ACTIVITY REPORT FILE

P D READ MEMBER MEMBER ORDER MEMBER ORDER DETAILS P

WRITE REPORT ACTIVITY DETAILS P MEMBER DETAILS GET D PRODUCT ON AN ORDER P PRODUCT ON AN ORDER PRODUCT ON AN ORDER DETAILS READ PRODUCT CONTAINED ON ORDER P CALCULATE ORDER VOLUMES UNFORMATTED ACTIVITY DETAILS DETAILS CUSTOMER AND ORDER DETAILS P FORMAT MEMBER ACTIVITY DETAILS ORDER DETAILS FORMATED ACTIVITY DETAILS

MAINTAIN MEMBER

CUST OMER AND ORDER DET AILS CUST OMER AND ORDER DET AILS

UNFORMAT ED ACTI ITY DET AILS UNFORMAT ED ACTI ITY DET AILS

FORMAT ED ACTI ITY DET AILS

FORMAT ED ACTI ITY DET AILS

GET ORDER DETAILS

CALCULATE ORDER OLUMES

FORMAT MEMBER ACTI ITY DETAILS

WRITE REPORT ACTI ITY DETAILS

MEMBER DET AILS MEMBER ORDER DET AILS PRODUCT ON AN ORDER DET AILS

MEMBER NUMBER

ORDER NUMBER

READ MEMBER

READ MEMBER ORDER

READ PRODUCT CONTAINED ON ORDER

Structured Design Transaction Analysis


An alternative structured design strategy for developing structure charts is called transaction analysis. Transaction analysis is the examination of the DFD to identify processes that represent transaction centers.
A transaction center is a process that does not do actual transformation upon the incoming data (data flow); rather, it serves to route the data to two or more processes. You can think of a transaction center as a traffic cop that directs traffic flow. Such processes are usually easy to recognize on a DFD, because they usually appear as a process containing a single incoming data flow to two or more other processes.

BOUNDARY A

TRANSACTION

BOUNDARY B

P INPUT FUNCTION A VALID TRANSACTION TRANSACTION TYPE A

P PROCESS TRANSACTION TYPE A

TYPE A RESULT

RESULT

P PROCESS TRANSACTION TYPE B TYPE B RESULT

P DISPLAY RESULT

P TRANSACTION CENTER A

TRANSACTION TYPE B

TRANSACTION TYPE C

TYPE C RESULT P PROCESS TRANSACTION TYPE C

BOSS

TRANSACTION TYPE A B OR C RESULT VALID TRANSACTION TYPE A B OR C RESULT

INPUT FUNCTION A

TRANSACTION CENTER

DISPLAY RESULT

TYPE A RESULT

TYPE C RESULT

TRANSACTION TYPE A

TRANSACTION TYPE B

TYPE B RESULT

TRANSACTION TYPE C PROCESS TRANSACTION TYPE C

PROCESS TRANSACTION TYPE A

PROCESS TRANSACTION TYPE B

Structured Design Transaction Analysis


The primary difference between transaction analysis and transform analysis is that transaction analysis recognizes that modules can be organized around the transaction center rather than a transform center.

Structured Design Structure Chart Quality Assurance Checks


Coupling: In structured design, the decomposition of a program in manageable modules should be done in such a way that the modules are independent as possible from one another. In structured design programs appearing on a structure chart are evaluated relative to their degree coupling. Coupling refers to the level of dependency that exists between modules. Loosely coupled modules are less likely to be dependent on one another.

Structured Design Structure Chart Quality Assurance Checks


Coupling: Types of coupling: (from best to worst)
Data coupling two modules are said to be data coupled if their dependency is based on the fact that they communicate by passing of data. Stamp coupling two modules are said to be stamp coupled if their communication of data is in the form of an entire data structure or record. Control coupling two modules are said to be control coupled if their dependency is based on the fact that they communicate by passing of control information or flags. Common coupling modules are said to be common coupled if they refer to the same global data area.

Structured Design Structure Chart Quality Assurance Checks


Coupling: Types of coupling: (continued)
Content coupling two modules are said to be content coupled (also referred to as hybrid coupled) when one module actually modifies the procedural contents of another module.

Structured Design Structure Chart Quality Assurance Checks


Cohesion: Cohesion refers to the degree to which a module's instructions are functionally related. Highly cohesive modules contain instructions that collectively work together to solve a specific task. The goal is to ensure that modules exhibit a high degree of cohesiveness. Programs that are implemented with highly cohesive modules tend to be easier to understand, modify, and maintain.

Structured Design Structure Chart Quality Assurance Checks


Cohesion: There are seven types or levels of cohesion and they are as follows: (from most desirable to least desirable)
Functional cohesion are modules whose instruction are related because they collectively work together to accomplish a single well-define function. Sequential cohesion are modules whose instructions are related because the output data from one instruction is used as input data to the next instruction. Communicational cohesion are modules whose instructions accomplish tasks that utilize the same piece(s) of data. Procedural cohesion are modules whose instructions accomplish different tasks, yet have been combined because there is a specific order in which the tasks are to be completed.

Structured Design Structure Chart Quality Assurance Checks


Cohesion: There are seven types or levels of cohesion and they are as follows: (continued)
Temporal cohesion are modules whose instructions appear to have been grouped together into a module because of time. Logical cohesion are modules that contain instructions that appear to be related because they fall into the same logical class of functions. Coincidental cohesion are modules that contain instructions that have little or no relationship to one another.

Packaging Program Specifications

Introduction
As an systems analyst, you are responsible for packaging that set of design documentation into a format suitable for the programmer. This package is called a technical design statement. The technical design statement should include all data, process, interface, and geography building block specifications developed by the designer.

IN FO R M ATIO N S Y S TE M S FR AM E W O R K

FOCUS ON S YS T E M DATA

FOCUS ON S YS T E M PROCESSES

FOCUS ON S YS T E M IN T E R F A C E S

FOCUS ON S YS T E M GEOGRAPHY

S YS T E M OW NERS (sc o p e )

S Y S T E M A N A L Y S T S

S YS T E M USERS (re q u ire m e n ts)

D atabase S cehm a
CUSTOMER customer_no [Alpha (10)] INDEX customer_name [Alpha(32)] customer_rating [Alpha(1)] INDEX balance_due [Real(5,2)] PRODUCT product_no [Alpha(10)] INDEX product_name [Alpha(32)] unit_of_measure [Alpha(2)] unit_price [Real(3,2)] quantity_available [Integer(4)]

A pplication S chem a
Order Processing Program Logon

Interface S chem a
New Customer Customer Form Order Accepted Change

N etw ork S chem a


Communications Controller St. Louis Mainframe

S YS T E M D E S IG N E R S

Initiation Routine

Process an Order

Shutdown Routine

of New Order Address

NT Server LA Get an Order Validate an Order File an Order Order Help Complete Order Form First Order PBX Request Product Lookup Help + Request Product Lookup Help Indy AIX Server Product Lookup Client PC Client PC Enternet LAN AIX/Lan Manager Client PC Client PC Ethernet LAN/NT NT Server NY Ethernet LAN/NT Request Order Help

(fa c ilita tio n )

(sp e c ific a tio n )

ORDER order_no [Alpha(12)] INDEX order_date [Date(mmddyyyy) CUSTOMER.customer_no

ORDER_PRODUCT ORDER.order_no PRODUCT.product_no quantity_ordered [Integer(2)

Check Customer Credit

Check Product Data

Check Credit Data

Release an Order

Customers

Products

Orders

Product Lookup Help Complete

C hapter 12

C hapters 11, 16

C hapters 11, 13, 14, 15

C hapter 11

S YS T E M B U IL D E R S (c o m p o n e n ts)

You might also like