0% found this document useful (0 votes)
159 views

"Chapter 8: First Steps in Modularisation": Simple Program Design

This document discusses modular program design and provides examples. Modular design means dividing a problem into subtasks or modules. The key steps are: 1) define the problem, 2) group activities into modules, 3) create a hierarchy chart showing relationships between modules, 4) develop the mainline module logic, 5) develop subordinate module logic, and 6) desk check the solution algorithm. Examples show applying these steps to problems like reading characters and calculating employee pay. Parameters and hierarchy charts are used to represent communication between modules.

Uploaded by

Arfa Malik
Copyright
© © All Rights Reserved
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
159 views

"Chapter 8: First Steps in Modularisation": Simple Program Design

This document discusses modular program design and provides examples. Modular design means dividing a problem into subtasks or modules. The key steps are: 1) define the problem, 2) group activities into modules, 3) create a hierarchy chart showing relationships between modules, 4) develop the mainline module logic, 5) develop subordinate module logic, and 6) desk check the solution algorithm. Examples show applying these steps to problems like reading characters and calculating employee pay. Parameters and hierarchy charts are used to represent communication between modules.

Uploaded by

Arfa Malik
Copyright
© © All Rights Reserved
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 19

Simple Program Design

"Chapter 8: First steps in


modularisation"
Chapter Outline
First steps in modularisation
Modularisation
Hierarchy charts or structure charts
Further modularisation
Communication between modules
Using parameters in program design
Steps in modularisation
Programming examples using modules Chapter summary
Programming problems

Modularisation
Modularisation means dividing a problem into
subtasks. As problems become more complicated,
the major task should be subdivided into subtasks to
make it easier to understand the problem. Suppose
the major task is to make an apple pie. Some
subtasks of making the pie are: buying the
ingredients, making the ingredients, and baking the
pie.

The modularisation process


Division of a problem into smaller subtasks, or
modules, is a relatively simple process. When
defining the problem, write down the activities or
steps to be performed. Group the activities into
subtasks or modules. Module names should tell the
task being done. For example.

The mainline
The mainline module controls the program by tieing
all the other modules together. With the use of good
module names, the mainline module becomes the
top level outline for the program.
Let's revisit two algorithms from chapter 4.

Example 8.1 Read three characters


Design a program to read three characters and print
them out in ascending order. The program contiues
to cycle until XXX is entered for the three numbers.
A Defining Diagram
Here is the IPO chart.

B Initial solution algorithm


Here is the original algorithm.

It is cumbersome and awkward. The sorting logic


gets in the way of understanding the program.
C Solution algorithm using a module
Now, let's move the sorting logic to another module.
Call it Sort_three_characters. The mainline module is
much easier to understand and the sort module is
easier to follow as well!. Here is the revised
algorithm.

Hierarchy Charts or Structure


Charts
THE BOOK OVER SIMPIFIEDS! Hierarchy charts show
the relation of modules from top to bottom. Structure
charts also show the control and data flow between
modules, including loops and decision! That is,
structure charts include all communications between
modules.
Here is a hierarchy charts showing a companies'
organization.

Here is the hierarchy chart for the


read_three_characters program.

Further modularisation
The above example could also have been designed
to use a mainline and three modules, one each of the
main processing steps in the defining diagram as
follows:
Read three characters
Sort three characters
Print three characters
A Defining Diagram
Here is the IPO chart.

B Solution algorithm
Here is the new solution algorithm

Here is the new hierarchy chart.

Communication Between
Modules
The fewer and simpler the communications between
modules, the better. This flow of information, called
intermodule communication, can be accomplished by
the scope of the variable (local or global data) or the
passing of [arameters.

Scope of a variable
The scope of a variable is the portion of the program
in which that variable has been defined and to which
it can be referred.

Global data
Global data can be accessed by every module in the
program. Not all data should be global!

Local data
Variables defined within a subordinate module are
called local variables. They can only be referenced by
this modules and modules called by this module.

Side effects
Side effects are where a module changes values of
variables in other parts of the program.

Passing parameters
Passing parameters means a calling module transfers
information to the called module. Under some
circumstanes, the called module also returns
information to the calling module. Structure charts
show this by using arrows

Using Parameters In Program


Design
Here is the Read_three_characters program again.
This time we show the communications between the
modules.

Examples 8.2 Read three characters


Design a program to read three characters and print
them out in ascending order. The program contiues
to cycle until XXX is entered for the three numbers.
A defining diagram
Here is the IPO chart.

B Group the activities into modules


There are two main activities:
Read_three_characters, and Sort_three_characters..
C Construct a hierarchy chart

Here is a partical hierarchy chart showing the


information interchange.

D Establish the logic of the solution algorithm


using pseudocode (mainline and subordinate
module)
Here is the algorithm including the parameters being
passed.

Steps In Modularisation

Here are the steps in top-down modular design.


1. Define the problem using the IPO chart.
2. Group activites into subtasks or functions.
3. Construct a hierarchy chart.
4. Establish the mainline algorithm.
5. Develope the algorithms for each successive modules.
6. Desk check the solution algorithm.

Programming Examples Using


Modules
Here are some sample program designs using
modules.

Example 8.3 Calculate employee's pay


The program is to read an employee record, calculate
weekly pay, and print out everything.
A Define the problem
Here is the IPO chart.

B Group the activities into modules


The modules are Compute_employee_pay,
Validate_input_fields, and Calculate_employee_pay.

C Construct a hierarchy chart


Here is the simple structure chart

D Establish the logic of the mainline of the


algorithm, using pseudocode
Here is the mainline algorithm.

E Develop the pseudocode for each successive


module in the hierarchy chart
Here is the algorithms for the rest of the modules.

F Desk check the solution algorithm


Now, we create some valid input test data, calculate
the expected results, and desk check the algorithms.
Input data
Here are four test cases, since EOF is a test case!

Expected results
Here are the expected results.

Desk check table


Here are the results of doing the desk checking.

Example 8.4 Produce orders report


A program is to read a product orders file and
produce an orders report. Here is a sample of the
output report.

A Define the problem


Here is the IPO chart.

B Group the activities into modules


The modules are Print_page_headings,
Calculate_total_amount_due, and the mainline of
Produce_orders_report.
C Construct a hierarchy chart
Here is a hierarchy chart! It really is!

D Establish the logic of the mainline of the


algorithm, using pseudocode
Here is the algorithm for the mainline module.

E Develop pseudocode for each successive


module in the hierarchy chart.
Here are the other two algorithms.

F Desk check the solution algorithm


input data
Here are four sets of test data.

Expected results
Here are the expected results with sample titles and
column headings.

Desk check table


Here are the results of desk checking the program.

You might also like