Process-Oriented Design

Automated Support Tools for Process-Oriented Design

Automated support in the form of CASE tools is also available, although fewer products support structured design than support structured analysis. Several entries provide Lower CASE support that begins with program specification or code generation (see Table 8-9).

TABLE 8-8 ABC Example Get Valid Customer Program Specification 

Identification:           Get Valid Customer, (ValidCus) 

Purpose:                    Retrieve Customer Record and verify credit worthiness 

Characteristics:         Focus Included module 

References:               See System Specification, Pseudo-code for CustMain 

DFD:                           Attached as Appendix 1 

Structure Chart:       Attached as Appendix 2 

Narrative: 

Accept CPhone 

Read Customer Using CPhone 

If read is successful 

If CCredit Ie '1' 

continue 

else 

Display "Customer has a credit problem; rating = <CCredit" 

Display "Override or cancel? : <&Custcredit" 

If &Custcredit eq 'C' 

include Cancel

Return 

else If &Custcredit eq '0' 

continue 

else 

include crediterr 

return 

else 

Include CreatCus. 

Set &&ValidCus to 'Yes'. 

Set global customer data to values for all fields. 

Return. 

Screen Interface 

Screen Design: None 

Dialog Design: None 

Error Messages: 

"Customer has a credit problem; rating = <CusCredit" "Override or cancel? : <&Custcredit" 

Application Interface         None

Input:                                    Customer File

User views                           Customer 

Internal data names:         Customer Contents in Data Dictionary

Tables and Internal Data 

Global fields correspond to all Customer File fields. Set all fields to customer record values upon successful processing. 

Reports:                               None 


TABLE 8-8 ABC Example Get Valid Customer Program Specification (Continued)




Appendix 3:      User View with Data Names

Table Customer  State  Char(2)  Not null, 
(Cphone  Char(lO)  Not null,  Zip  Char(lO)  Not null, 
Clast  VarChar(50)  Not null,  CCtype  Char(l)  Not null, 
Cfirst VarChar(25)  Not null,  Ccno  Char(l7)  Not null, 
Clinel VarChar(50)  Not null,  Ccexp  Date  Not null, 
Cline2  VarChar(50)  Not null,  CCredit  Char(l), 
City  VarChar(530)  Not null,  Primary key (Cphone)); 

TABLE 8-9 CASE Tools for Structured Design

Product  Company Technique 

Analyst/Designer Toolkit


Anatoool,

Blue/60,

MacDesigner

The Developer


Excelerator


IEW,ADW (PS/2 Version)


Maestro


MacAnalyst,

MacDesigner


Multi-Cam

Yourdon, Inc.
New York, NY

Advanced Logical SW
Beverly Hills, CA


ASYST Technology, Inc
Napierville, IL


Index Tech.
Cambridge, MA

Knowledgeware
Atlanta, GA

SoftLab
San Francisco, CA


Excel Software
Marshalltown, LA


AGS Mgmt Systems
King of Prussia, PA

Structure Chart


Structure Charts
Structured English


Structure Chart
Operations Process Diagram
Systems Flowchart

Structure Chart
Flowchart

Structure Chart


Nassi-Schneiderman
Hierarchical input-process-output
charts (HIPO)
User Defined Functions

Decision Table
Structured English
Structure Chart

Structure Chart


If one were to do an internet search of each tool listed in Table 8-9, one would find some tools widely used in the late 1980s and early 1990s for creating structure or programming flow diagrams. Today, several decades later, those tools are little known or used, and 'newer' tools are used for creating static and dynamic model diagrams to support design. 'Newer' is a relative perspective; current support tools for software design have added support for UML diagrams, analysis, code generation, team collaboration and communication, and integration with other phases of the SDLC. 

Current example tools are:

  • Microsoft Visio - for creating and presenting design diagrams
  • IBM Rational Rose Architect - a CASE (Computer Aided Software Engineering) tool for design and implementation
  • Microsoft Visual Studio - IDE (Integrated Development Environment) for transitioning design to code in a team collaborative environment
  • Eclipse - IDE for transitioning design to code in a team collaborative environment
We should expect that current tools will be replaced in the future. However, a new tool is not necessarily the best choice. It is important to understand not only the features a new tool adds but also the underlying process of the new tool to determine its compatibility with the processes and methods a company is currently invested in. We are currently on the verge of major technological advances for SDLC activities from AI (searching, learning, voice, image, and audio communication), integration of methodologies (e.g., dev ops), Big Data computing, and network and cloud resources.