2120lec1.su06

advertisement
Introductory Remarks
COURSE OBJECTIVES: (TAKEN FROM PREFACE)
1. To teach students how to design programs so that they are
easy to read, debug, adapt, and maintain.
2. To provide students with the ability to write well-designed
elementary and intermediate structured COBOL programs
3. To familiarize students with information processing and
systems concepts that will help them interact with users and
systems analysts when designing programs;
4. To focus on the key elements of the most recent cobol
standards that facilitate and promote the writing of well-designed
structured programs.
5. To familiarize students with programming tools such as
pseudo-code and hierarchy charts that make program logic more
structured, modular, and top-down
FEATURES OF THE TEXT
1. Each chapter starts with A detailed chapter outline, and A list
of objectives.
2. Each chapter contains many self-tests (and solutions) for selfexamination. It is real important that you take these, as some
of the test questions may come from these questions within
the chapters.
3. Be sure to understand the key terms, and study the
debugging exercises. Note that the programming assignments
at the end of the chapter are in increasingly order of
complexity.
AN INTRODUCTION TO STRUCTURED PROGRAM
DESIGN IN COBOL
TYPES OF COMPUTER PROGRAMS
A program is a set of instructions that enable a computer to
process data.
1. Operating system programs (systems software) - control
the operations of the computer - such as overseeing the
operations, providing input-output, managing memory, devices,
processors, etc.; Operating systems programs (or systems
software) also includes utility routines that assist system as well
as application programmers, such as copy, format, dir, etc.
2. Applications programs - perform tasks required by users e.g., Payroll programs. (Functional programs)
Software - a term used to describe all types of programs.
Applications Program
• An applications program takes input data manipulates it
(processes the data) and produces Output data.
Therefore, we have the basic process: input - process - output
Example: given data of hours worked, rate of pay: compute pay
Input data:
1)number of hours, say 40, and
2)pay rate, say, 7.50
The Process is to take this data and multiply the two numbers to
produce a product. To do this, we write a "payroll program"
(pretty simple here, of course), that contains instructions to take
(read, retrieve) two numbers and multiply them together to
produce the product.
Output data is the product, or, $30.00.
Custom Program
Such an example is typical of applications programs and are
written by ‘applications programmers.’
If an applications programmer were to take a general
capability, such as a payroll program, and tailor it to a specific
user's need, then we are said to tailor or customize the
program.
Example: a specific user of a standard payroll program may afford
his/her employees some unique benefits, such as profit sharing or
buying a bond a month from his/her check, for example. Another user
may not. So to customize a payroll program (clearly a very simple
example), an applications programmer might be required to add
instructions in the program that subtracts $50.00 from an employees
gross pay before calculating federal tax. This program is now tailored
(or customized) to this users requirements.
Higher Level Languages
Higher-level languages. COBOL, Fortran, Ada, C, Java, and others
are said to be higher level languages, because they tend to be
English-like - to a greater or lesser degree.
Machine Language.
• Computer can only understand sequences of zeroes and ones,
which is called machine language.
• For the computer to understand your COBOL program, your
program must be translated from what you write into something
that the machine can understand.
• The conversion from your "source program" into the machine
language is called compilation (generically, ‘translation’), and a
compiler (an example of a ‘systems program’) provides the
translation for you.
Versions of Cobol
History
Department of Defense
IBM - PL/1
Cobol 68, 74, 85, 2002, etc.
THE PROGRAM DEVELOPMENT PROCESS
•
Requirements must be specified and understood. (Analysis)
. A ‘structured solution’ must be created from the specifications
accompanied by a careful set of detailed procedures (that is, the logic)
must be developed. This is the solution. (Design)
. Then, the design must be implemented in code (Programming)
. Then, after (and during) the coding itself, considerable testing must
take place - at various levels. (Testing)
. The program(s) must then be installed in user environment.
(Installation)
. Many other tasks are not included here such as Documentation
User training, Follow on maintenance, and much more.
. Let's look at each of these.
Specifications
After analyzing requirements, the business analyst or a system
analyst working with the user, will write the software
specifications.
.
. Specifications (among many other things) contain (typically) the
1. Input data formats (data items and their characteristics.)
2. Outputs required (updated master file; printed reports, ...
3. Narrative (this can take on many forms)
Text, models, decision tables, and combinations.
Note: input - process - output (again)
These are the ‘whats’ of the application.
Typical kinds of data...
Data Hierarchy
File: a collection of ‘records’ that serve as input or output to a
program. e.g. An employee file, an inventory file…
Can be ‘organized’ and ‘accessed’ in many ways.
Record: a collection of related ‘fields’ (data items) normally related
and forming a group of items that relate to the subject at hand.
e.g. An inventory record for a specific item in stock might
contain fields such as:
Stock number; Nomenclature; Unit cost;
Reorder point; Quantity on hand, and more.
Field: a collection of ‘characters,’ ‘numbers,’ etc. Such as a payrate, a name, an address, a ssan, etc.
Data Hierarchy
File
Record
Field
Character: (byte) a single character: alphabetic (letters of the
alphabet and space), numeric, alphanumeric, special characters
(e.g. For data transmission), non-printing characters, and more.
Bit (contraction of binary digit) a ‘1’ or ‘0’ that represents a ‘state’
- on/off; yes/no; true/false, etc. Characters are composed of
numbers of bits - usually seven or eight.
Character set: EBCDIC; ASCII ; others. (Much more later)
Input and Output Specifications
Normally contain:
1. Record layout forms - normally the typical input or output data
descriptions. (See textbook)
. Record layouts indicate data items (fields) within each
record;
. Location of items within record, size, numeric, positions,
fractional positions.
. (Empnum, reghrs, others, rate, code)
2. Printer Layout Charts
. report headers, column headers, precise print positions
for the computed / printed output (detail lines); any
summary or total lines, report numbers, page numbers,…
. Menus and menu layouts; hierarchy of menus.
. GUIs may be specified.
Design
Preliminary design
External design
Discussed earlier
Architectural design
Building blocks
Modules of application
Structure charts
All components of the application.
Detail design
Internal design
Algorithm design
The details of each module in application.
Detail (Program) design
. This is program design (algorithmic design)
. Must plan your logic. (Program blueprint)
. Planning tools
.. Flowcharts
.. Pseudo code
.. Hierarchy charts
Program Flowchart - conventional block diagram
. Shows the flow of logic (control) in a module
Sequence
Selection
Iteration
Pseudo-code English-like statements (textual)
Used for modeling logic
Careful conventions
Indentation
Language independence
Modeling an algorithm - the thinking!!
Program flowcharts
. Graphical language
. Used for modeling logic
. Indented; careful conventions and symbols
. Language independence
. Used to model the algorithm
Modeling the algorithm (design) is modeling a solution to
problem from the problem space (Specifications)
Hierarchy charts (HIPO) - Hierarchy plus input process output
. Show relationships between parts of a program
. Show dependencies
. Specifically divide all activities into inputs, or outputs or
processes.
. Show specifically which inputs are needed by which processes
to produce specific outputs.
Programming
Using the program logic shown via design, a programmer writes
instructions (source program) in a source language (here, source
language is Cobol.)
.
. Must be translated to machine language for computer to
understand. (Translated / compiled)
. All programmer-created source language statements are built
one at a time on disk and are entered into the computer via some
kind of editor.
. After the entire program is entered, we must now compile the
source program.
SOURCE LANGUAGES
TO DO:
ab=c
Fortran: c = a*b
COBOL: Multiply A BY B GIVING C
C and Java: c = a*b;
Assembler: (IBM Mainframe):
L
5,A
M
4,B
ST
5,C
Higher level languages............
Source Program: (HLL) Fortran, Cobol, C, PL/1, Pascal, Java, C, Ada, ...
Assembler Languages - One to one w/machine language instructions
Characteristics... Translators = compilers, assemblers, "interpreters"
TESTING THE PROGRAM
1. Syntax errors - compilation process. (Clean compile)
(95% done? Really, 10% done!)
2. Logic errors - execution process - runs your program.
The ‘real’ problems to debug Examples:
1. Comma versus period;
misspell keyword;
filename referred to not found...
2. Add instead of Multiply.
. Program may or may not still run - but not correctly
. May still go to EOJ!!!
3. Executing correctly-stated statements but not in the correct
‘order’ to get the job done.
. Can be difficult to find.
Eliminating compilation / execution (syntax / logic) errors is the norm.
Called debugging!!
This is really how one learns the language: program, program, program;
make errors; learn.
IDENTIFICATION DIVISION.
PROGRAM-ID. SAMPLE.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT EMPLOYEE-DATA ASSIGN TO “C:\COP2120\P4\JoeSchmuck\indata.txt”.
SELECT PAY-LISTING ASSIGN TO “C:\COP2120\P4/JoeSchmuck\report.txt”.
DATA DIVISION.
FILE SECTION.
FD
EMPLOYEE-DATA
LABEL RECORDS STANDARD.
01
EMPLOYEE-RECORD.
05
EMPLOYEE-NAME-IN
PIC X(20).
05
HOURS-WORKED-IN
PIC 99.
05
HOURLY-RATE-IN
PIC 9V99.
FD PAYROLL-LISTING
LABEL RECORDS ARE OMITTED.
01
PRINT-REC.
05
FILLER*
PIC X(20).
05
NAME-OUT
PIC X(20).
05
PIC X(10).
05
HOURS-OUT
PIC 99.
05
PIC X(8).
05
RATE-OUT
PIC 9.99.
05
PIC XXXXXX.
05
WEEKLY-WAGES-OUT
PIC 999.99.
WORKING-STORAGE SECTION.
01
ARE-THERE-MORE-RECS
PIC XXX VALUE ‘YES’.
PROCEDURE DIVISION.
100-MAIN-MODULE.
OPEN
INPUT EMPLOYEE-DATA
OUTPUT PAYROLL-LISTING.
READ EMPLOYEE-DATA
AT END
MOVE ‘NO’ TO ARE-THERE-MORE-RECS
END-READ.
PERFORM 200-WAGE-ROUTINE UNTIL ARE-THERE-MORE-RECS = ‘NO’.
CLOSE EMPLOYEE-DATA
PAYROLL-LISTING.
STOP RUN.
200-WAGE-ROUTINE.
MOVE SPACES TO PRINT-REC.
MOVE EMPLOYEE-NAME-IN TO NAME-OUT.
MOVE HOURS-WORKED TO HOURS-OUT.
MOVE HOURLY-RATE-IN TO RATE-OUT.
MULTIPLY HOURS-WORKED-IN BY HOURLY-RATE-IN
GIVING WEEKLY-WAGES-OUT.
WRITE PRINT-REC.
READ EMPLOYEE-DATA
AT END
MOVE ‘NO’ TO ARE-THERE-MORE-RECS
END-READ.
MUCH TO SAY....
.
Divisions, section, paragraphs, ‘areas.’
. Input ‘formats’ output ‘formats’
. See size and classification of data
. Input/output descriptions: movement of data
. Choices of data names; standards.
. Formatting standards
. Internal documentation
. Value clauses
COBOL PROGRAM FLOWCHART FOR SAMPLE PROGRAM
Download