Chapter 1 INTRODUCTION TO STRUCTURED PROGRAM DESIGN IN COBOL COBOL for the 21st Century Stern, Stern, Ley COMPUTER PROGRAMMING: AN OVERVIEW COBOL for the 21st Century Stern, Stern, Ley Types of Computer Programs COBOL is one of the many languages used to write customized applications programs. COBOL for the 21st Century Stern, Stern, Ley Applications Programs Interactive vs. Batch Processing Interactive applications typically accept input data from a PC, workstation, or terminal. Batch Processing applications process large volumes of input at periodic intervals. COBOL for the 21st Century Stern, Stern, Ley Applications Programs Applications programs that are written for a specific user are called customized programs. Programs that are relatively standard are application packages that might be purchased. COBOL for the 21st Century Stern, Stern, Ley Machine Language Programs All programs executed by the computer must be in machine language. COBOL for the 21st Century Stern, Stern, Ley Symbolic Programs Symbolic Programs use Englishlike or symbolic instructions. – These programs must be translated or compiled into machine language. – COBOL is a symbolic programming language used for commercial applications. COBOL for the 21st Century Stern, Stern, Ley THE APPLICATIONS PROGRAM DEVELOPMENT PROCESS PROGRAM DEVELOPMENT PROCESS 1. Determine Program Specifications – Program Specifications consist of the following: Record layout forms to describe the input and output Printer spacing charts for printed output Screen layouts for interactive input/output COBOL for the 21st Century Stern, Stern, Ley PROGRAM DEVELOPMENT PROCESS 2. Design the Program Using Program Planning Tools using Common Tools: – Flowcharts A block diagram providing a pictorial representation of the logic to be used in a program – Pseudocode English-like expressions to depict the logic of the program – Hierarchy Charts Charts showing relationships among sections in a program COBOL for the 21st Century Stern, Stern, Ley PROGRAM DEVELOPMENT PROCESS 3. Code and Enter the Program 4. Compile the Program – The COBOL compiler checks the source code to insure there are no rule violations. – A syntax error is a type of error that is found if a programming rule is violated. COBOL for the 21st Century Stern, Stern, Ley PROGRAM DEVELOPMENT PROCESS 5. Test the Program – Programs are tested or debugged to ensure they have no errors. – A logic error is a type of error that the programmer may find only when the program is tested with sample or test data. 6. Document the Program – Procedure manuals for users and computer operators, called documentation, is prepared for use by the operating staff for regular production. COBOL for the 21st Century Stern, Stern, Ley PROGRAM DEVELOPMENT PROCESS ************************************************ Remember, coding is undertaken only after the program requirements have been fully specified and the logic has been carefully planned. ************************************************* COBOL for the 21st Century Stern, Stern, Ley DEBUGGING TECHNIQUES Desk Checking – Reviewing the program before and after keying Correcting Syntax Errors – Using the printed source list of the diagnostic messages to find and correct the errors COBOL for the 21st Century Stern, Stern, Ley DEBUGGING TECHNIQUES Program Walkthroughs – Manually stepping through the program with test data. Detecting Logic Errors by Executing the Program – Often the most difficult part of debugging. – The preparation of test data is an extremely critical aspect of debugging. COBOL for the 21st Century Stern, Stern, Ley THE NATURE OF COBOL COBOL is a Business-Oriented Language – COBOL, is one of the most widespread commercial applications languages in use today. – COBOL is an abbreviation for COmmon Business Oriented Language, COBOL is a Standard Language – COBOL is a common programming language available on most computers. COBOL for the 21st Century Stern, Stern, Ley THE NATURE OF COBOL COBOL is an English-like Language – All instructions can be coded using English words. – The rules conform to many rules for writing in English COBOL is a User-Friendly Language – Because users are able to understand the English-like instructions it is considered a user-friendly language. COBOL for the 21st Century Stern, Stern, Ley THE FUTURE OF COBOL COBOL is likely to remain an important language in the years ahead for three reasons: 1. Older, mainframe-based “legacy” systems will need to be maintained by maintenance programmers who know COBOL. 2. COBOL is still being used by many organizations for new application development. 3. It is a very efficient language. COBOL for the 21st Century Stern, Stern, Ley QUESTIONS?! COBOL for the 21st Century Stern, Stern, Ley SELF-TEST QUESTIONS 1. A program must be in _________ language to be executed or run. Solution: machine COBOL for the 21st Century Stern, Stern, Ley SELF-TEST QUESTIONS 2. Programs are typically written in a _______ language rather than in machine language because __________. Solution: symbolic; machine languages are very complex COBOL for the 21st Century Stern, Stern, Ley SELF-TEST QUESTIONS 3. Programs written in a language other than machine language must be _______ before execution can occur. Solution: translated or compiled COBOL for the 21st Century Stern, Stern, Ley SELF-TEST QUESTIONS 4. The process of converting a source program into machine language is called ___________. Solution: compilation or translation COBOL for the 21st Century Stern, Stern, Ley SELF-TEST QUESTIONS 5. The program written in a programming language such as COBOL is called the ________ program. Solution: source or applications COBOL for the 21st Century Stern, Stern, Ley SELF-TEST QUESTIONS 6. The object program is the _______. Solution: set of instructions that has been converted into machine language COBOL for the 21st Century Stern, Stern, Ley SELF-TEST QUESTIONS 7. A ______ converts a source program into a(n)_____ program. Solution: compiler or translator program: object or machine language COBOL for the 21st Century Stern, Stern, Ley SELF-TEST QUESTIONS 8. The errors that are detected during compilation denote ______; they are usually referred to as ________ errors. Solution: any violation of programming rules in the use of the symbolic programming language; syntax COBOL for the 21st Century Stern, Stern, Ley SELF-TEST QUESTIONS 9. Before executing a program with test data, the logic of the program can be checked manually using a technique called a ____________. Solution: program walkthrough COBOL for the 21st Century Stern, Stern, Ley SELF-TEST QUESTIONS 10. COBOL is an abbreviation for _________. Solution: Common Business Oriented Language COBOL for the 21st Century Stern, Stern, Ley SELF-TEST QUESTIONS 11. COBOL is a common language in the sense that ______. Solution: it can be used on many computers COBOL for the 21st Century Stern, Stern, Ley TECHNIQUES FOR IMPROVING PROGRAM DESIGN COBOL for the 21st Century Stern, Stern, Ley Structured Programming Using Modular Design for Coding Paragraphs The most important technique for improving the design of a program in any language is called structured programming. Structured Programming is a technique using logical control constructs that make programs easier to read, debug, and modify if changes are required.COBOL for the 21 Century st Stern, Stern, Ley Structured Programming Using Modular Design for Coding Paragraphs Structured programming is often called GO-TO-less programming since programmatic branches do not use GO TO statements. In COBOL this means writing programs using PERFORM statements COBOL for the 21st Century Stern, Stern, Ley Structured Programming Using Modular Design for Coding Paragraphs The typical structured program is divided into paragraphs or modules, where a main module calls in other modules as needed. – Each module can be tested independently. Paragraph, routine, module are used interchangeably COBOL for the 21st Century Stern, Stern, Ley The Top-Down Approach for Coding Modules Proper design is best achieved by developing major modules before minor ones. Main routines are coded first and are followed by intermediate routines and then minor ones. COBOL for the 21st Century Stern, Stern, Ley The Top-Down Approach Coding using the top-down manner gives the primary attention to the origination of the program. Details are deferred or saved for minor modules, which are coded last. COBOL for the 21st Century Stern, Stern, Ley A BRIEF OVERVIEW OF PROGRAM PLANNING TOOLS COBOL for the 21st Century Stern, Stern, Ley RULES FOR INTERPRETING PSEUDOCODE 1. A pseudocode begins with a START and ends with a STOP. 2. All instructions are read in sequence. 3. The instructions between the: PERFORM...END-PERFORM are executed repeatedly UNTIL there are no more records to process. COBOL for the 21st Century Stern, Stern, Ley HIERARCHY OR STRUCTURE CHART Structure charts identify WHAT each module does, and how it relates to other modules. – The following chart shows the relationships among modules in a program: 100-MAIN MODULE 200-WAGE ROUTINE COBOL for the 21st Century Stern, Stern, Ley CHAPTER SLIDES END HERE CHAPTER SUMMARY COMES NEXT COBOL for the 21st Century Stern, Stern, Ley CHAPTER SUMMARY A. The Nature of COBOL 1. It is the most widespread commercial programming language in use today. 2. COBOL is the abbreviation for Common Business Oriented Language. 3. It is an English-like language. COBOL for the 21st Century Stern, Stern, Ley SUMMARY B. Program Preparation and Debugging 1. Get program specifications from the analyst or prepare them yourself. 2. Use planning tools--flowcharts, pseudocode, hierarchy charts--for program design. 3. 4. 5. 6. Code the program. Compile the program and fix syntax errors. Test the program using debugging techniques. Document the program. COBOL for the 21st Century Stern, Stern, Ley SUMMARY C. Techniques for Improving Program Design 1. Structured Programming a. Referred to as GO-TO-less programming b. Structured programs are subdivided into modules or paragraphs. 2. Top-Down Programming a. Major modules are coded before minor ones. B. Similar to developing an outline before writing a report. COBOL for the 21st Century Stern, Stern, Ley SUMMARY D. The COBOL Divisions Identification Division a. Identifies the program to the computer system. b. May provide some documentation as well. c. PROGRAM-ID is the only required entry. Environment Division – Assigns a file-name to each file used. – Specifies the device that the file will use. COBOL for the 21st Century Stern, Stern, Ley SUMMARY Data Division a. Defines & describes all input, output & work area b. File-Section (1) Each file-name is described in an FD. (2) Each record format within every file is an 01 entry. (3) Record fields are described with a PICTURE clause that specifies the size & type. c. Working-Storage Section (1) Defines work areas (2) An end-of-file indicator is coded here. COBOL for the 21st Century Stern, Stern, Ley SUMMARY COBOL DIVISIONS Procedure Division a. Subdivided into paragraphs or modules. b. Includes all instructions to process input and produce output. c. All instructions are executed sequence. PERFORM...UNTIL... END-PERFORM is a loop. COBOL for the 21st Century Stern, Stern, Ley SUMMARY Procedure Division c. All instructions are executed sequence, unless there is a loop such as PERFORM UNTIL... ….. ….. END-PERFORM COBOL for the 21st Century Stern, Stern, Ley SUMMARY Procedure Division d. Main-module entries: – The following are typical entries in a main module: (1) Files are either INPUT or OUTPUT and activated in an OPEN statement. (2) A PERFORM... …. END-PERFORM is a loop that is executed until there are no more records. COBOL for the 21st Century Stern, Stern, Ley SUMMARY Main-module entries (continued): (3)Within the PERFORM we often code a READ... AT END... NOT AT END… END-READ. (4) A CLOSE statement deactivates all files. (5) STOP RUN ends processing. COBOL for the 21st Century Stern, Stern, Ley SUMMARY e. Calculation or processing paragraphs (1) These paragraphs are executed when a statement in the main module specifies a PERFORM paragraph name. (2) For example, logic for processing an input record may be contained in one or more paragraphs. COBOL for the 21st Century Stern, Stern, Ley