Chapter 18 : Designing the Internals: Program and Process Design

Objectives
  1. Draw and explain a structure chart.
  2. Develop both transform-centered and transaction centered information system design.
  3. Tum a Data flow diagram into a structure chart using transform analysis.
  4. Refine an initial system design into a more detailed design.
  5. Explain and apply guidelines for good programming design.
  6. Differentiate between the five types of coupling and applying these in program design.
  7. Differentiate between the seven types of cohesion and apply these in program design.
  8. Represent the processing logic inside program modules using pseudocode and Nazi-Schneiderman diagram.


Chapter Overview
The purpose of this chapter is to introduce you to some of the key concepts and techniques of structured design, namely structure charts, transform analysis, transaction analysis, coupling, and cohesion. Structure charts provide a logical, hierarchically organized way to depict the structure of programs and systems. They show both transfer of control from one module to another as well as transfer of data. Transform analysis and transaction analysis both provide simple yet powerful methods for moving from data flow diagrams to first cut structure charts representing the systems being developed. Coupling and cohesion serve as goals for good system design, both of which can be applied to improve structure charts. The chapter also introduces you to Nassi-Shneiderman charts and pseudocode, which can represent programming logic in a more technical manner than can Structured English.

More than half of the chapter is devoted to structure charts, transform analysis, and transaction analysis. We begin with basic symbols and format and the differences between transform-centered DFDs and transaction-centered DFDs. The next focus of the chapter is on transform analysis, using a system from Pine Valley Furniture as an example. This is followed by a discussion of transaction analysis. Many CASE tools support structure charts, transform analysis, and transaction analysis. We end the chapter with an illustration using Oracle's Designer/2000 CASE tool.

We introduce coupling and cohesion as two of six guidelines for good design. Most of this discussion focuses on coupling and cohesion, however. We list and illustrate the five types of coupling and seven types of cohesion introduced by Page-Jones (1980). Coupling and cohesion remain relevant to good systems design, whether the system is written in COBOL or Visual Basic.

The basic components of structured programming are illustrated for both pseudocode and Nassi-Shneiderman charts. We provide one example of module content represented in both pseudocode and with a Nassi-Shneiderman chart. Other examples of pseudocode are included in the CASE example at the end of the chapter.

As has been the case with so many chapters in this book, this chapter presents specific tools and techniques you can use in class systems development projects and as methods for thinking about the development process. There are many other tools and techniques we have not included (such as Warnier-Orr diagrams and Jackson diagrams). The chapter can do little more than expose you to these techniques. The instructor can use the chapter or parts of it as starting points for more detailed explorations of particular techniques to be emphasized.

In general, our experience has been that the best way to teach these techniques is through hands-on learning by you. Either in class or for homework, you should practice drawing and refining structure charts in order to better understand them and how they can be useful tools. The same applies to gaining an understanding of how to use the principles of good design, writing effective pseudocode, and drawing useful Nassi-Shneiderman charts.

  1. Introduction.

  2. Design the Internals.

  3. Structure Charts

  4. Transaction-Centered & Transform-Centered Design.

  5. Transform Analysis.

  6. Transaction Analysis.

  7. Guidelines of Good Design.

  8. Five Types of Coupling.

  9. Seven Types of Cohesion.

  10. Specifying the Contents of Modules.

  11. CASE Tools in Designing Programs.


Introduction.
Once you know the input, the output, the interface, the dialogue, and database for an information systemare, you can design the inside of the system, the part that will make the interface operable, generate output, and access and update the organization's databases. (Internal design).

We will begin at an abstract level, taking what we already know about a system's processs, in the form of documented data flow diagrams, and converting them to structure charts. Structure charts graphically represent system design. The structure charts you create will form the basis for the structure of the system you design and build. Decisions you make at this point will heavily influence the overall design and implementation of your system information.



Return

Design the Internals:
The process of designing the internals.
You begin designing internals armed with a great deal of information about the system chosen for development and implementation. With the exception of the detailed physical file and database design, most of that information is at logical level. For the process that have been identified as part of the system, the information takes the form of dtat flow diagrams and mostly textual descriptions of what each process is supposed to accomplish. Your job now is to take the logical information and turn it into a blueprint for the physical information system that will be programmed.

Deliverables and Outcomes.
Table 18-1 page 685 shows the deliverables from the Design of System Internals.

Return

Structure Charts:


Structure charts: Heirarchical diagram that shows how information system is organized


Module: A self-contained component of a system defined by function


Data couple: A diagramatic representation of the data exchange between two modules in structure chart.


Flag: A diagramatic representation of a message passed between two modules.
Figure 18-2 An Illustration of the Hierarchy of a Structure Chart

Figure 18-3 Special Symbols Used in Structure Charts


Figure 18-4a How to Read a Structure Chart with Nonoverlapping Arrows

Figure 18-4b How to Read a Structure Chart with Overlapping Arrows



Return

Transaction-Centered & Transform-Centered Design:

Transaction-Centered System: An information system that has as its focus the dispatchof data to their appropriate locations for processing.

Transform-Centered : An information system that has as its focus the derivation of new information from existing information

Example: converting student grades and class hours to GPA.
Central transform: The area of a transform-centered information system where the most important derivation of new informationtakes place.

Afferent module: A module of structure chart related to input to the system.

Efferent module: A module of structure chart related to output to the system.

Figure 18-5 A Transaction-Centered System Design

Figure 18-6 A Central Transform in a Data Flow Diagram

Figure 18-7 A Transaction Center in a Data Flow Diagram





Return

Transform Analysis:

Transform Analusis: The process of turning data flow diagrams of transform-centered system into structure charts.

Figure 18-6 A Central Transform in a Data Flow Diagram


Figure 18-8 The Data Flow Diagram from Figure 18-6 with the Central Transform Circled



Top-level Design : The goal of top-level design is to create a structure chart that captures the essence of afferent central informationand efferent process in a DFD.
Fig 18-9 page 694 The top-level structure chart derived from the data flow diagram in fig 18-8

Detailed Design :
Figure 18-10 First refinement-the structure chart from previous figure with both afferent branch refines.

Figure 18-11 Complete first refinement of the structure chart from figure 18-9.
Figures from 18-12 to 18-17 for PVF Purchasing Fulfilment System.



Return

Transaction Analysis:


Transaction Analysis : The Process of turning data flow diagrams of a transaction centered system into structure chart
Figure 18-18 Generic Transaction-Centered Structure Chart



Return

Guidelines of Good Design:




Return

Five Types of Coupling:
Figure 18-19 Example of Data Coupling

Figure 18-20 Example of Stamp Coupling

Figure 18-21 Example of Control Coupling




Return

Seven Types of Cohesion:
Figure 18-22 Examples of Communicational Cohesion





Return

Specifying the Contents of Modules:
Algorithms.

Figure 18-25 Basic Symbols in Nassi-Schneiderman Charts

Figure 18-26 The Contents of the Module




Return

CASE Tools in Designing Programs:
Figure 18-27a Example CASE Tool Usage for Program Structure Design

Figure 18-27b Example CASE Tool Usage for Program Structure Design

Figure 18-27c Example CASE Tool Usage for Program Structure Design

Figure 18-27d Example CASE Tool Usage for Program Structure Design

Figure 18-27e Example CASE Tool Usage for Program Structure Design

Figure 18-27f Example CASE Tool Usage for Program Structure Design

Figure 18-27g Example CASE Tool Usage for Program Structure Design