CHAPTER 1

 

AN INTRODUCTION TO STRUCTURED

PROGRAM DESIGN IN COBOL

 

 

CHAPTER OBJECTIVES

 

After completion of this chapter, the student should be able to:

 

1.         Define the terms "program" and "software."

 

2.         Distinguish between system software and application software.

 

3.         Distinguish between interactive and batch processing.

 

4.         Distinguish between packaged software and customized software.

 

5.         Explain the difference between machine language programs and symbolic programs.

 

6.         Explain the program development process.

 

7.         Explain what documentation is and what it is used for

 

8.         Describe the purpose of record layout forms and printer spacing charts.

           

9.         Explain what flowcharts and psuedocode are and describe their purpose.

 

10.       Explain what hierarchy or structure charts are and describe their purpose.

 

11.       Explain how a programmer enters a source program.

 

12.       Explain the term "debugging."

 

13.       Explain the difference between syntax errors and logic errors.

 

14.       Explain how program testing can be accomplished.

 

15.       Explain the nature of COBOL and its background

 

16.       Explain the different techniques used to debug a program.

 

17.       Identify the four divisions of a COBOL program.

 

19.       Describe the source of the Year 2000 Problem.


LECTURE OUTLINE

 

I.          Computer Programming: An Overview

 

            A.        Types of Computer Programs

 

1.         A program is a set of instructions that enable a computer to process data.  Software is the term used to describe all types of programs.

 

2.         There are two types of computer programs:

a.         Operating system programs, which control the overall operations of the computer, and

b.         Applications programs, which actually perform tasks required by users.

 

3.         An application program operates on input data and converts it to meaningful output information.

 

4.         The set of instructions in an applications program is written by a computer professional called an applications programmer or software developer.

 

B.         Applications Programs

 

1.         The job of creating application programs is performed by a programmer.

 

2.         One purpose of application programs is to read input, process it, and produce information or output that is requested by the users.

 

3.         Application programs are generally used to computerize business procedures.  A set of computerized business procedures in an application area is called an information system.

 

4.         The two modes of computer processing are interactive and batch processing.

a.         Interactive processing is used when data must be current at all times and output is required immediately after processing.

b.         Batch applications process large volumes of input at periodic intervals.

 


5.         Packaged software and customized software differ as follows:

a.         Packaged programs are written by commercial software vendors to meet the needs of a wide range of users.

b.         Customized software is specially tailored and written to meet the unique needs and specifications of a company.

 

C.        Machine Language Programs

 

1.         All programs to be executed by the computer must be in machine language.

 

2.         Machine language is very difficult to learn and use.

 

D.        Symbolic Programs

 

1.         Programming languages using English-like or symbolic instructions were developed to make the programming task easier.

 

2.         Symbolic programming languages must be translated into machine language before they can be executed on the computer.  A special program called a compiler is used to translate the symbolic program into a machine program.

 

3.         Examples of symbolic programming languages are COBOL, Visual Basic, Pascal, and C+ +.

 

II.         The Applications Program Development Process

 

            A.        Overall

 

1.         Well written programs are those that are written after the program requirements have been fully specified, typically by the systems analyst, and the logic to be used has been carefully planned.

 

2.         A program is written, tested, and documented using the program development process.

 

B.         Determine Program Specifications

 

1.         In large or medium-sized companies a systems analyst will work with the user to determine the program requirements.  In smaller companies, however, it may be the role of the Programmer Analyst, who interacts with the user, to determine the requirements of the project.

 


2.         Program specifications which are given to the programmer by the Systems Analyst or designed by the Programmer Analyst should include the following:

a.         Record layout forms that describe the format of input and output data.

b.         Printer Spacing Charts that describe the format of printed output reports.

 

C.        Design the Program Using Program Planning Tools

 

1.         Before a programmer begins to code the program he or she should plan the logic of the program.  Planning the logic ahead of time will reduce the possibility of errors when the actual program is coded and tested. 

 

2.         The three most common planning tools used are pseudocode, flowcharts, and hierarchy charts.

 

3.         A flowchart is a conventional block diagram providing a pictorial representation of the logic to be used in a program.

 

4.         Pseudocode is written with English-like expressions rather than diagrams and is specifically suited for depicting logic in a structured program.

 

5.         Hierarchy or structure charts are used to show the relationships among sections in a program.

 

6.         Today, more software developers use pseudocode and hierarchy charts in place of flowcharts to plan a program’s logic.

 

D.        Code and Enter the Program

 

1.         After the logic of a program has been designed, the programmer writes the program, which is then keyed into the computer and typically stored on disk.

 

2.         The set of instructions written by the programmer in a symbolic programming language is called the source program.

 

E.         Compile the Source Program

 

1.         A source program cannot run until it is translated into a machine language program called an object program.

 


2.         A system software program called a compiler translates a source program into an object program which is then ready for execution.

 

3.         The compiler will typically create the following output:

a.         A source listing.

b.         A list of diagnostic messages.

c.         The object program.

 

F.         Test the Program

 

1.         After a program has been written, it is compiled; syntax errors that have occurred in the program must be debugged.

 

2.         The process of detecting and correcting syntax and logic errors in programs is called "debugging." A "bug" is any error in the program.

 

3.         COBOL has its own set of syntax rules; if these rules are violated the program will not compile and thus will not produce an object program.  Many syntax errors are caused by typographical errors (AD instead of ADD); some are caused by misunderstanding instruction formats.

 

4.         The COBOL compiler will detect syntax errors and list them on the compiler or source listing or display them on the screen.  More serious errors result from faulty logic and may produce unusable or incorrect output information.  Usually the only evidence of a logic error is that the program has produced incorrect output.

 

5.         The compiler will detect syntax errors, but the programmer must detect any logic errors.  Logic errors are detected by the programmer when the program is tested.

 

6.         Program testing involves running a program with different sets of data to determine whether correct results are produced.  The programmer checks the output to be sure it is correct.  If it is not correct, a logic error has occurred.

 

7.         Test data should be carefully constructed to test every possible condition that the program is likely to encounter under operating conditions.

 

8.         Program walkthroughs in which the programmer manually steps through the logic of the program using test data can help minimize logic errors and debugging time.  Program walkthroughs can help find logic errors before execution begins.


G.        Document the Program

 

1.         Programs must be fully documented before they are turned over to the user.

 

2.         Documentation includes a formal, written set of procedures which explain how the program is to be executed and how the output is to be used.

 

III.       The Nature of COBOL

 

A.        COBOL Is a Business-Oriented Language

 

1.         COBOL is an abbreviation for Common Business Oriented Language.

 

2.         As a business-oriented language, COBOL is designed specifically for commercial applications that typically operate on a large volume of data.

 

B.         COBOL Is a Standard Language

 

1.         COBOL is a common programming language, meaning that COBOL compilers are available in a standard form for most computers.

 

2.         COBOL is a standard language, which means that all compilers, regardless of the computers on which they run, have the same syntax rules.

 

C.        COBOL Is an English-Like Language

 

1.         COBOL is an English-like language, which makes it self-documenting and easy to understand.

 

2.         English words are used when coding COBOL instructions.  For example, the word ADD can be used when adding two numbers together.

 

D.        COBOL Is a Relatively Easy to Understand

 

Because of its English-like characteristics, users are able to understand its instructions, and thus consider it relatively easy to understand

 


IV.       A History of COBOL and the ANS Versions

 

A.        When it Began

 

1.         COBOL was developed in 1959 by the Conference on Data Systems Languages (CODASYL).

 

2.         Their objective was to develop a standard business-oriented language for which all major computer manufacturers would produce compilers.

 

B.         The American National Standards (ANS) Versions of COBOL

 

1.         The American National Standards Institute (ANSI) oversees development of COBOL standards to minimize variations among COBOL compilers.

 

2.         ANSI versions of COBOL were released in 1968, 1974, and 1985.  A new version is planned for the early 2000s.

 

3.         An individual COBOL compiler may include enhancements, which provide the programmer with additional options not necessarily part of the standard.

 

C.        The Future of COBOL: Lessons Learned from the Year 2000 Problem

 

1.         COBOL will remain an important language in the years ahead for two reasons: 

a.                   Older, mainframe-based “legacy” systems will need to be maintained by maintenance programmers who know COBOL.

b.                  COBOL is still being used by many organizations for new application development.

 

2.                  The Year 2000 Problem

a.                   The Year 2000 (Y2K) Problem occurred because older programs used two-digit year codes rather than four-digit year codes.

b.                  The Y2K Problem would have caused many computer applications to fail or work incorrectly when January 1, 2000 arrived.

c.                   Since many of the older programs were written in COBOL, there was a great need for COBOL programmers to correct those programs that were not Y2K compliant.

d.                  The program code in this text is Y2K compliant.

 


V.        Techniques for Improving Program Design

 

A.        Structured Programming Using Modular Design for Coding Paragraphs

 

1.         In the early stages of programming, the primary goal was to develop a program that worked.

 

2.         Today, important programming goals include writing programs that are easy to read, debug, and modify, as well as work.

 

3.         Structured programming is a standard for creating programs as series of interrelated modules.  This technique uses logical control constructs that make programs easier to read, debug, and modify.

 

4.         Structured programming simplifies debugging by eliminating branch points (GO TO statements) in a program.

 

5.         The typical structured program is subdivided into paragraphs or modules, where a main module calls in other modules as needed.

 

B.         Top-Down Approach for Coding Modules

 

1.         Structured programs are composed of modules that can be written and debugged independently.  A main module calls in other modules as needed.

 

2.         Modules should be developed in a top-down manner, beginning with major (general) modules and working down to minor (detailed) modules.

 

VI.       A Sample Program

 

A.        Batch vs. Interactive Processing

            1.         Batch programs have data collected and processed later.

 

            2.         Interactive programs process data immediately.

 

B.         Overview of the Four Divisions

 

1.         IDENTIFICATION DIVISION

 

Identifies the program to the computer and provides documentation about the program.


2.         ENVIRONMENT DIVISION

 

Defines the file-names and describes the specific computer equipment that will be used by the program.

 

3.         DATA DIVISION

 

Describes the input and output formats to be used by the program.  It also defines any constants and work areas necessary for the processing of data.

 

4.         PROCEDURE DIVISION

 

Contains the instructions necessary for reading input, processing it, and creating output.

 

C.        Definition of the Problem

 

Explain the problem definition as described in the text.

 

D.        Input Layout

 

1.         Explain the use of the input record layouts illustrated in the text.

 

2.                  Explain the following terms: alphanumeric, numeric, implied decimal point.

 

3.         Emphasize the meanings of and relationships among the following: file, record, field.

 

E.         Output Layout

 

Describe the output layout as illustrated in the text.

 

F.         The Program Illustrated

 

1.         Explain the input and output specifications as discussed in this section.

 

2.         Explain the four DIVISIONs of the illustrated program as discussed in this section.

 


G.        A Brief Overview of Program Planning Tools

 

1.         Program planning tools are used to help design the program logic prior to coding.

 

2.         Flowcharts are composed of symbols that denote specific operations.  A note within the symbol describes the function.  Flowcharts are read from top to bottom.

 

3.         Pseudocode, like a flowchart, can be used to plan a program's logic.  Pseudocode consists of English-like statements that are read in sequence.

 

4.         Either a flowchart or pseudocode should be used to plan a program.

 

5.         Hierarchy or structure charts illustrate the modules of a program and show the relationships among the modules.

 

            H.        Text's Definition for Batch and Interactive Programs

 

            I.          Summary of COBOL as a Language for Both Batch and Interactive Processing

 

VII.      Entering and Running a COBOL Program on Your Computer

 

1.                  Discuss how COBOL programs are entered and updated on your computer system.  Specific items that are likely to be unique to a particular computer include:

a.                   Column restrictions.

b.                  The format of the SELECT statement.

 

2.                  Discuss/demonstrate the features of the text editor your students will be using.

 

3.         Discuss/demonstrate how to compile and execute a COBOL program on your computer system.


SOLUTIONS TO REVIEW QUESTIONS

 

I.          True-False Questions

 

1.         F          The compiler does not detect logic errors.

 

2.         F          All symbolic programs need to be compiled in order to create a machine-                                  language program ready for execution.

 

3.         F          Other languages are more suitable for scientific applications.

 

4.         F          The sequence is IDENTIFICATION, ENVIRONMENT, DATA, and

                        PROCEDURE.

 

5.         F          It is the ENVIRONMENT DIVISION that specifies the computer device

                        to be used.

 

6.         T

 

7.         T

 

8.         T

 

9.         T

 

10.       T

 

II.      General Questions

 

1.         a.         A program is a set of instructions that enables a computer to process data.

b.         A compiler is a system software program that translates a symbolic language source program into a machine language object program.

c.         A source program is a set of symbolic language instructions written by a programmer, which must be converted into machine language before it can be executed.

d.         An object program is a set of machine language instructions which is produced by a compiler, that is ready for execution by the computer.

            e.         A batch program is a program that processes files only.

            f.          An interactive program is a program that has data entered from a keyboard

and/or displayed on a screen.

 

2.         A symbolic programming language consists of English-like instructions or symbolic phrases, whereas machine language utilizes complex binary instructions and memory addresses.  Symbolic programs must be translated into machine language prior to execution.


3.         COBOL has become a popular language because of its English-like style which makes it easy to learn and code.  Also, its English-like style makes COBOL easy to understand and relatively self-documenting.  It is well suited for commercial applications and thus popular among business environments.  Some people prefer other languages because COBOL can be somewhat wordy and because some other languages may have features better suited to a particular application.

 

4.         Structured programming is a standard approach to program design and development that creates programs as a set of interrelated modules.  Debugging is simplified because branch points (GO TOs) are eliminated from programs.

 

5.         ANS COBOL is the standardized version of the COBOL language.  The American National Standards Institute is the supporting body for COBOL standards and oversees development of new releases of the COBOL language.  COBOL 85 refers to the set of standards adopted in 1985.

 

6.         Operating system software is software supplied by the manufacturer of the computer to control the overall operations of the computer.  This software is the interface between users of the computer and the hardware itself.  Application software is software designed by application programmers which is specially developed to perform particular tasks required by users.

 

7.         A syntax error is a violation of the rules of the programming language.  A run-time error is one that occurs during the running of a program because the computer was instructed to do something it could not do.

 

8.         The PICTURE clause defines the size and type of each field being used by a program.

 

9.         The SELECT statement assigns a name to a file and specifies the device on which the file is located.

 

10.       The WORKING-STORAGE SECTION defines and describes all work areas and data fields which are not part of input or output files but are required for processing.  This section can also be used to define separate areas for input and output files.

 

III.    Internet/Critical Thinking Questions

 

1.        

 

Search Engine:              yahoo.com>Computers & Internet>

Keywords:                   COBOL Standards

URL:                            http://www.cobolstandards.com/

Contents:                      Links to information on COBOL standards

 

 

 

 

Search Engine:              lycos.com>

Keywords:                   +COBOL+standard

URL:                            http://www.cobolreport.com/columnists/don/02192001

Contents:                      links to COBOL standard

 

Search Engine:              hotbot.com>

Keywords:                   +COBOL+standard

URL:                            http://www.microfocus.com/whitepapers/developmentcobolstandard.asp

Contents:                      Links to various COBOL related sites

 

2.

 

Search Engine:  yahoo.com>Computers & Internet

Keywords:                   COBOL  future

URL:                            http://www.microfocus.com/

Contents:                      Views about COBOL's future

 

Search Engine:  yahoo.com>Compilers & Internet

Keywords:                   COBOL  future

URL:                            http://objectz.com/cobolreport/archives/view_townsend.htm

Contents:                      Views about COBOL's future

 

Search Engine:  hotbot.com

Keywords:                   +COBOL+future

URL:                            http://www.cobolportal.com/developer/future.asp

Contents:                      What professionals think of the future of COBOL

 


3.         The Internet site http://www.wiley.com/college/stern is designed to provide assistance, supplements, and up-to-date information for teachers and students who use this textbook. 

 

            The site was not yet ready when this Instructor's Manual was written.  However, the site from the ninth edition of the text was still active and may be found at http://www.wiley.com/cobol.  The contents of the site for the tenth edition should be similar.

 

The following topics and links are available at the web site:

 

·        Links to Y2K and COBOL Web Sites

·        Solutions to Programming Exercises

·        Instructor's Manual

·        Chapter Objectives

·        Chapter Outlines

·        Solutions to End-of-Chapter Exercises

·        Transparency Masters

·        Test Bank

·        Powerpoint Presentations

·        Faculty FAQs

·        Student FAQs

·        Student Disk

·        Syntax Guide

·        Supplementary Topics

·        About the Authors

·        New Features

·        List of Supplements

·        Table of Contents

·        Information about Requesting a Review Copy

·        News Updates

·        COBOL Compilers