1 ' G S COMPUTERS, INC.
TABLE OF CONTENTS
%vision Page
Chapter 1. General Information Data Processing Standards Scope o f Manual Manual: Care, Use, and Revision Equipment Specifications Software Programs
Chapter 2. Problem Analysis and P m g ~ a m Developnent Problem Definition Progran l k f i n i t im Pro~-pzi~n I dent i f i ca t ion Input-Output kyout
Card Layout P r in t e r Layout
Program Development Loge Design Coding Tes t Preparation Program Testing Docmentation
Chapter 3 . Programming Standards Logic Design-Flcw Charts
Flow Chart Symbols F h Chart Cmventions
Program Organization Coding Sheet Sequence Mmry Layout
Coding Qlaracter Writir.g Standards Labels
Standard Label Chart Standard Halts S t a ~ d a r d Nessages C m e n t Cards
Program Tes t i n g Test Plan Form C m n Coding E r r o r s Testing Procedure COBOL Pro;grarro;ling Standards
Chapter 4. bcunentat ion Cantents o f Program Manual Dispcxition o f Documentation and Progran Cards Program Abstract Sub-Routine Cocumentation
4GS COMPUTERS, INC.
Chapter 5. Opemting Standards Propam Library Pmgram Change Record
mapter 6 . Appendix Key Punch Program Card-general COBOL DmPn Card ALP Drum Card FORTRAN bun Card Fonns to be Used
' G S COMPUTERS, INC.
Chapter 1 Page 1
General Information
Data Processing Standards
Standards are rules s e t IQ and established by authority to provide rreaningful information i n a consistent, usable form. When complex and detailed problem are analyzed a d solved in a similar manner, standards are necessary for the useful exchange of infomation. Standards are used t o give us a guide f o r gathering pertinent information which is needed. From the i n i t i a l statement t o production operation, standards establ ish the procedures t o investigate, develop, and solve a problem. Standards are called f o r w h e n problem solving techniques o r groups of problem are related by a mman need. To those who must analyze and solve problems o r operate c ~ n p l e x machines, star~darc3s are the source f o r information m d ins t ruc t im t o carry out this w o r k .
In data processing and the use of computers, standards are necessary f o r the successful computer shop. Because of the many detailed s teps t o be taken before a problem is ready f o r production operation the need f o r gathering and recording pertinent information accurately and in suf f i c i en t de ta i l , b e a m s important. A programer in making an analysis gets in to rmnifications of a problem which, i n the days before computers, were the proper business o f several people. No one considered it necessary f o r a single person t o beame acquainted with all the ins and outs of a job be- cause the manual o r rre&anical operations formed t h e i r own division of re- sponsibili ty. ?he computer unifies a l l these aspects, thus the need t o know al l the de ta i l s which must be recorded in a useful manner.
In set tin^ Data Pmcessinp, Standards a method of operation is develoned .- w h i c h s e t s guide l ines f o r obt?,jkcinp. thennecessary information. This method. is the sequence of s teps foiicx;je; I- gatherim information and the techniques developed f o r using a c q u t e r t b jolve a Standards relieve the prograrraner of the m y l i t t l e bookkeeping decisions by establishing a uniform way of assiming program labels and organizing the program.
This manual o f Data Processing Standards, the fonda t ion f o r exchange of information among all people i n data processing, provides:
(1) a cornman frame of reference, ( 2 effect ive c~inmunication among people, ( 3) effect ive cmunica t ion be-be en people and machine, (4) c lea r cu t definitions of terms, ( 5 ) personnel responsibi l i t ies , and (6) procedures of operation.
The manual is the programnerls working tool* Tne pmgramner is asked to l e a m and understand the use of these standards, ?he sucoessful pmgmnmr masters these precepts.
'fGS COMPUTERS, INC. Chapter 2 Page 2
Scope of t h i s Manual of Data Processina Standards
The manual, designed to explain the de ta i l s o f p n o g r d g and operating standards is divided i n t o f ive major sec t ims.
Program Analysis and Problem &fini t ion
This section is an outline of steps taken t o solve a problem offering a description of developrent fm the or ig ina l problem defini t ion t o p m grammer, and a tabulation of information t o be recorded,
Prograunhg Standards
?he standards and mnventions o f p r o , m i n g a re defined here. 'he m c s t important reference is t o f l c w charts and labels. Each programing task is explained and related to logical program development.
Cocumen tat ion Standards
Cocumentation is the orderly collection and arrangement of information about a program. ?he P r o g m Manual gives the interested person information about every aspect of the ploblem and ref lec ts the care, understanding and ab i l i ty o f the p r o g r m r .
Operation Standards
Standard practice f o r machine use and tf.le function of the propam library are described.
Appendix
The appendix contains programing te&niques , and glossaries o f cmputer terms, Financial Pub l i sh i~ r ; % - y y terms and standard abbreviations f o r docmentation,
M- - - . , , , A , - : ;, C a r e -- -L dse
Additions and revisions t o t h i s manual w i l l be made only with approval of the head of 'che technical s t a f f , Suggestims may be directed to h i s at tent ion f o r review. Each pmgMmner w i l l be responsible for keeping this copy c u m t as additions are ma&.
You are expected t o understand and apply the standards established i n t h i s manual. Your success as a programer is measured by the success of your p r o g m , by the understanding, exposition and organization o f the in- formation in your program m u a l , and by the simplicity and c la r i ty of your operating ins tructions .
AGS COMPUTERS, INC.
Chapter 1 Page 3
General Information Equipment Specifications
Quipnent specifications m u s t be obtained f m n the c l ient by tfle lead prognmner on the project. ?he information must answer questions i n the follming categories :
CPU Configuration :
mdel , storage, storage protect Instruction s e t Nuher and type of channels
I I O Devices ( f o r each device the follcwing ie necessary) :
Device type Device Address ( es Control unit 5 p e and address System Standard symbolic address Specid features (by device): Printer: Speed, # characters
Universal ha rac t e r s e t Tapes : 7 and/or 9 track
Conversion f estures Simultaneous WW TAU
Disk units: F i l e Scan
T G S COMPUTERS, INC.
Chapter ll Page 1
Problan and Program D e v e l o p n t
A prcblem evolves into a program through a series of 6 steps:
(1) Problem Cefinition ( 2 Numerical h a l y sis ( 3 Program Definition ( 4) Program Identification ( 5 ) Input and Output B s i ~ (6) Program C c v e l o p n t
The f i r s t f ive s a p s ansist of gathering necessary fac t s and display- ing them i n reasonable order f o r use i n s t ep siw,.progranming. 'he logica l order of these steps should be fo l lmed in gatherzng f a c t s , developing in approach, and cataloguing the necessary informtion in a manner and form which permits both a check l ist and quick reference f o r needed information,
Problem Definition
A written deswiption of the problem defines the major considemtions and the special characteristics affect ing the problem solving approaching, Information included in is s tep w i l l include:
(1) Purpase ( 2 ) Input
Source, form, sample ( 3 ) Output
Fom, sample ( 4) Special Characteristics (5) Pmblem Glossary
Defines terms unique i n meaning t~ -this problem
This general statement of the prablm describes elements to be developed i n d e t a i l by the program definition,
N m r i c a l Analysis
Tne nunerical analysis of ari-thnetic operations show the factors , where they came from (input from card o r computed by program), the arilhnetic operat ims, and the intermediate and f i n a l resul ts . When a formula is used it should be s ta ted i n -the m o s t general f om, in the spec i f i c fonn to be used, and the transformation f r m one t o the o-ther. Equations using a representative example of the calculations show the actual arit-hmetic operat ims, Indicate fhe m g e s and l imits of the f a c b r s imposed f i r s t by the problem and secmd by the capacity allowed f o r i n the progmm. Show where adjusmnt in the
AGS COMPUTERS, INC.
Chapter ll Page 2
answer are made ; f o r example, the rounding 5 t o adjust half cents o r greater up t o the next cent. This is a f a c t gathering section; the sequence and manner to be used by the program is determined i n the P m g m Cefinition.
Program Cefinition
'Ihe developnent of prog.m specifications from the problem defini t ion produces a program definition. Several p r o g r w developed from a single problem definition form a progmm system. The program defini t ion is e x p l i c i t in the de ta i l information required, the mathmatical. techniques, the control, the inputs and outputs and its relationship to o the r similar programs. Step three w i l l mver the fo l la r ing information:
(1) Purpose (2) Input
describe. f ie lds on card layout forms ; type; source; composition; l i m i t s ; volume
(3) Output describe f i e l d on card layout and p r i n t layout f o m ; type , source ; compcsi t ion ; l i m i t s ; volun?e
(4) Factors examples of the calculations ; specif ical ly the sequenoe and manner the progran w i l l use i n calculations
( 5) Sped a1 considerations res t r ic t ions ; exep t ions ; e f fec t on current practice; relationship t o other pmgrans
(6) Pmgran glossary defines terms unique i n meaning to this Pmg-
P r o g m Identification
Identification n u h e r s w i l l be assigned t o a l l program. The assign- ment will be made when the exact definition has been established. The identification is a feu-character alphanumeric f i e l d in the following format:
A B C D Specific Module
Major mmponent of a systen
Sys tern and/or application
Major Application and/or c l i e n t
?he ident if icat ion nwber is pmched intn card column 73-76 m d appears
AGS COMPUTERS, INC. Chapter LL page 3
on the assembly l i s t i ng . If the source cards f o r one propam are used i n t h e developnent of a second program care should be exercised to g e t the o ld pmgran number o u t and the new one in .
'Ihe f o u ~ c h a r a c t e r mdu le I D is punched i n t o the ob jec t t e x t cards through use of the TITLE card. The module I D is a l so the nane by which the program is h a w n to the linkage e d i t o r throu* use of CSECT and START cards. Entry points -to a module w i l l be iden t i f i ed by a fif.th haracter.
Input- Output Layout
Layouts w i l l be prepared f o r the formats o f a l l inputs used and outputs produced by the program. 'Ihis s h a l l be done, without exception, before pro- gramming. The d e t a i l of these layouts may be changed during the design of program logic and reanalysis o f program specif icat ions, Neat, accurate docments r e f l ec t ing the current format o f inputs and outputs must be avail- able; i f a change is made they provide the p i n t of departure, Tnese layouts w i l l be i n a r p o m t e d i n the progran docunentation.
CARD Layout
On ?5e 1IY.I C a r d Layout form used to i l l u s t r a t e all card input and output f i e l d s , describe f i e lds by name, f i e l d limits by v e r t i c a l l i nes . In fne '
space on the form give the following information, i n as much detail as n e c e s s q :
Field Data C m is tency Column Size Name Description Source Type Limits
Alwa l imi t s o f f i e l d
Nuneric lirriits o f codes
limits of -ge
Describe b r i e f l y the card preparation procedures for each kind o f card,
AG S COMPUTERS, INC. I
Chapter 11 Page 4
Printer Layout
On the Program Planning and Testing Fornat f o r High Speed Pr in ter , i l l u s t r a t e a l l printed output, ident ify by the report name and the program number t h a t produces it. Show t h e f o l l w i n g on yaur p r in te r output layout:
Write in preprinted headings , underline Write i n einitted headings Write two sample l ines f o r each type of d e t a i l pr int ing Show punctuation f o r every edited f i e l d Indicate maximum value i n eaah f i e l d Show all total levels Shm en t i r e ver t ica l and horizontal dimension of form Ehit headings and ident if icat ion f o r output on blank paper
Program Ccvelopnent
Tne steps of problem analysis &scribed in the preceding pages provide the necessary information f o r developing a progrm. Propanning is ccmposed of -the f ive tasks : logic design, coding, t e s t preparation, p r o g m tes t ing , &cumentation, considered and executed sequentially. 'he importance, de ta i l and complexity of these tasks require standards defined in mapte r 3 , Pro- gramming Standards.
Logic Design
Three stages of propam logic m u s t be completely designed and documented before any subsequent p m g ~ m n i n g tasks an? begun.
1, Analy3 2 .; ~ J I C !. .-: , , 1 ~ , organization-analys is of -the progran definition t o es tablis$ s.,-e:l;L,~ 21. .qz f o r designing -the canputer oriented logic.
2. Design of the general fLow o f program logioMACR0 flow &art- the major logical elements, i l lus t ra ted in a flow chart, required t o meet program specifications .
3, Design of the speci f ic logical processes-MICW3 flow chart-the individual logical s teps, i l lus t ra ted in a flw chart , within each major logical element. Micro flw charts show the connecting linkage.
A th i rd level of flow charts, called the ABSOLUTE flow chart, represents each instructim by a separate symbol t o explain and i l l u s t r a t e a complicated b g i c a l s t r u c t u ~ .
A summary of the -three f l a w & a r t levels makes the following distinctions :
Macro F lm Chart - one symbol f o r each major logica l function; one symbol per routine,
Micro Flcrw Chart - one symbol f o r a series of instructim within a routine; me symbol for several instructions .
Absolute Flow Chart - one symbol f o r each instruction,
AGS COMPUTERS, INC. Chapter 11 Page 5
Coding
Coding is the statement, in machine-acceptable language, of the logic described in the flow chart. Coding must be wri t ten legibly and accurately to minimize key pun& errors. You w i l l follow t h i s sequence in which basic program components w i l l be organized t o permit the standardizat im of program cmtinuity :
P r o g m Description Standard Halts and Non-Standard H a l t s busekeeping Routines Input- Output Routines Main b g i c work Areas Special Subroutines
Test Preparation
Test data, used t o verify the accuracy and r e l i a b i l i t y of a program in meeting the requirements of program defini t ion, shall be developed during the f i r s t two p r o g r d n g tasks. As decisiors , logic tests and control functions are considered, test data s h a l l be prepared t o verify log ic and coding. Test data should be reviewed by someone famil iar w i t h the problem defini t ion to insure t h a t no obvious a n d i t i o n has been overlooked, Test cases s h a l l be used for desk checking the program logic. %e flow of l o g i c w i l l be checked by processing simple t e s t data i n the dry run mode. K e y punch, coding and logic e m r s can be detected in this way. You are responsible for preparing the test data and organizing the test plan.
Program Testing , "
6 ?-- --A
+ , - b A ~ i , at> hast aaia n;2 ~3;erating instructions is submitted t o the operatidns sec;tbn foe f e s t ( o r assemble o r l ist as the case may be). Sufficient past t e s t information should be cal led f o r to provide a clue tn your trouble i f the test fai led. This includes memory dwrp, reg i s t e r ad- dresses, and the output. You should, a f t e r each test, remrd the results =nd measure your progress with regard t o the overal l t e s t plan. When all requirements are met, the t e s t data and test output are retained in the pm- gram documentation. To be sure you have understood and sa t i s f i ed a l l the program specifications, review the test resul t s with the p r o p a director,
It is the responsibility of the lead p r o g r m r to establ ish regular access to the amputer f ac i l i ty .
; AGS COMPUTERS, INC.
chapter 11 Page 6
Descriptive material is compiled throughout problem analysis and program developnents. Tne f i n a l task is t o review, organize and e d i t f o r accuracy and l eg ib i l i t y a l l this information included in the permanent progrwn reoord. Important points of log ic should be clear ly defined; the purpose and capabi l i t ies of the program &scribed in non-technical language. A 1 this doamentation is collected i n a Pro- Manual, and includes:
Problem Definition Program Definition Flaw Charts Input, Output Layoul Formulas and Equations Assembled Listings Test Data and Test Results Operating Ins tmctxhn Program Abstract
A G S COMPUTERS, INC.
Chapter 111 Page 1
Prograrroning Standards
Programming standards , established in the amrncn progran areas of flow charts, organization, mding, test ing, provide consistent, r e l i ab le pro- graming techniques. These standards are the s t a r t i n g point f o r a g a d pro- gram.
Fla* chart t e d n o l c p y and practice, adapted f o r computer use, a q u i n s new meaning and application. Our symbol definitions when used intel legently gives the necessary i n f o m t i o n demanded of a flcw chart.
lhemmic o r uniquely systanatized l&beh are not b u i l t on the general, underlying principles required t o amomnodate a large n&er of varying labels. Standard labels eliminate the need f o r each p r o p m r t o build h i s own system. Private label systems are incomplete, quickly b e m meaningless, change be- tween programs, and defy the exchange of information, Private labels w i l l no t be used.
Logic Design-Flw &arts
A flow chart, the p i c t u x representation of a problem t o be put on a mmputer, and the basic flow of information shows the sequence of operations performed by a cmputer in the execution of a problem. An operation a u a l l y mnsis ts of a nLonber of program steps .
A f l c w chart must have a set of syn-bols to show the following:
(1) The kind of operations t o be p e r f o m d . (2) manges i n the seqEnce of opemtion as the result
of a t e s t , ( 3 ) Qlanges i n the sentrncc -. .-,lG.G.L,.. ; the wsult
of rrsdifying an ins t ruce- : : (4) Explana-toxy information and i n i t i a l and i t ions . (5) b e c t i o n links t o a pa r t of the problem which
is mntinued on another page,
?ko kinds of flow charts are referred to in t h i s manual. The macro flow chart shcws: the major operation synlbols i n t h e i r log ica l context within the general ans t ruc t ion of Lle pmblem; the major decision pints, inputs and outputs, major s t a r t s and ha l t s ; the o v e r a l l m i c i s r a t i o n s of the problem and how they t ie in and re la te t o each other. ?his is -the initial statement of what the problem is and haw t o solve it.
AGS COMPUTERS, INC. Chapter 1ll
Page 2
B e micro f l o w chart develops in deta i l the contents of each major operation symbol. A m j o r operation involves the logica l operations of arithmetic s toring, canparing, branching. 'he micro flow chart shows w i t h symbols and explanation the precise logic t o solve the problem. Each symbol and its contents must give the necessaq information so t h a t the program may be written direct ly from the micro flow chart. A well prepared micro w i l l be so clearly dram t h a t a programer m y wri te the program without hesita- t ion. B e work of a progrm is i n the f l m charts ; the coding is a matter of writing only.
A third level , referred t o as an absolute flow chart, shows each pro- gram s tep in a symbol. To explain a complex decision operaticn t h i s degree of de ta i l may be necessary.
A f l w chart ident if icat ion systen assigns an a l p h a n m r i c a d e to each symbol. ?his code becomes p a r t of the branch l a b e l to insure a d i rec t COP relat ian between mding labels and f h chart symbols, ?he m i m flow charts are developed at a l e v e l allowing the programer t o code d i rec t ly from it even though each symbol represents more than one instmcticn,
Flm Chart Symbols
The following f l w &art symbols s h a l l be used.
S t a r t Stop Syrfhl
This symbol is used to indicate s t a r t i n g and stopping points in the pmgr\am
Tdi '*nardH h a l t (no fur ther processing) , i t o amrw returns t o the cimle.
Test Symbol .. This symbol is used f o r all t e s t and branch instructions. It indicates a logica l choice in the program based upon a decision. Tie normal flow of logic should be from the top t o bottom, the exception going to -the r ight .
A special use o f t h i s symbol is to test t h e condition of a switch. The i n i t i a l s t a t e of the switch is shown in ( ) ins ide the symbol.
AGS COMPUTERS, INC.
Chapter I l l Page 3
"CO" Box
Tnis is -the all-purpose symbol t o i l l u s t r a t e spec i f i c operations.
Set Synbol
This symbol indicates se t t ing of switches, index regis ters , and address modification. It cbes not include within it the l imi t t e s t which n o m l l y follows o r preceder; this symbol.
Input-Output Symbo 1
Tnis symbol indicates a l l input-output operations : read, p r in t , punch.
Connectors
?his is a connector; the a m points generally in the direction of -the entry. Tie next operation is A16.
?he next operation is on page 3 , symbol C7.
Tnis is an entry, norrnally placed out of the main logic flow.
3 .
'in is symbol indicates t r ans fe r to a p r o m m d routine which includes the retum transfer badc t o tAe or ig ina l point o f e x i t in the flow- chart. In t h i s exanple, X2 is the start of a routine which, when completed, w i l l t ransfer back t o A3. 'he routine a t X2 may be large and complex.
Flags
This is an assertion box used t o provide mre information than is given in the flowchart s ~ o l s .
A C S COMPUTERS, INC. Chapter 111 !
Page 4
Symbols help t o graphically i l l u s t r a t e a problem and haw it is solved. Decision points and input-output operations are eas i ly found, s ince these are the most l ikely places f o r changes. The symbols are no t suff ic ient i n themselves, hwever, and pertinent &cumentation in the symbols, and f lags, must be used.
Flaw Chart Conventions
(1) Tne Standard Symbols s h a l l be used to describe logical functions.
( 2 ) Tne Standard f inancial and data processing notations and authorized .abbreviations sham i n the Appendix sha l l be used. A legend page must define all exceptions to a e s e standardr;.
( 3 ) A macro f lm chart sha l l be dram f o r every program. It s h a l l identify and i l l u s t r a t e every logical operation with a separate symbol. Each propam sha l l be divided into a t l e a s t f ive and no mre than 17 logica l operations ; the macro f lm chart s h a l l be diagramed on one sheet of 8 1 / 2 x 11 inch white bond paper.
(4) An alphabetic P r Z code s h a l l be assigned i n sequence t o each symbol on the macro f l o w chart. Tne following l e t t e r s w i l l not be used: I , 0, Q, U , and V. These are e i t h e r reserved f o r special purposes i n -the Standard Label System o r are r e s t r i c t ed because of the tendency to cmfuse them with o ther handwitten alphabetic o r numeric characters.
(5) A micro flow chart whall be dram f o r every s igni f icant operation shown on the general flow chart. It s h a l l i l l u s t r a t e the logical process t h a t occurs within each major operation. 'Ihis level o f flow chart s h a l l specify the l i n k e e between operat ims. Each micro chart rnqyi- c - i * ji- ;.? to a m ~ i m l m 03 99 symbolic figures and s h a l l be on r,,, side cf i)d,>r/2 x ,-'-:la hn-2 -----A
' : r . Z
.. . .
(6) Sacn micro f l a w chart s h a l l be identif ied by the alphabetic code of the symbol on me genera chart which it represents. Every symbol on the micro chart s h a l l be assigned a two-digit nuneric code 1-99. Every symbol i s identif ied by a three-digit n m e r i c code.
Digit 1 - Alphabetic code assimed to macro flow chart symbol
Digit 2-3 Numeric code assigned to micro f l w chart symbol
(7) Every page sha l l have an identif icat ion block (2" x 3") i n the upper right- hand comer of the page. It s h a l l contain
progran nane and number block l e t t e r and functional nane programer's name
1 4 G S COWIPUTERS, INC.
Chapter 111 Page 5
( 8) Both levels of f l o w charts must accurately and consistently repre- sent the program logic. Tney must be updated with all changes made.
(9) All connectors and entry points must be shown and identif ied. All input and output operations sha l l be sham as distinct:symbals on the macro flow chart a ~ d shown i n micro f lw chart form when other than a s ingle instruction is required.
(10) Each symbol s h a l l contain a br ief description of the log ic it represents. Standard notations and abbreviations s h a l l be used. (see Rule 2 )
(11) A c h s e d subroutine s h a l l be i l lus t ra ted as a separate operation.
(12) Fla* charts s h a l l read from top to bottom.
Program Organization
General groups of operations such as housekeeping, input, output, main logic, work areas, acolmulatols , counters, and constants which occur in every program, s h a l l be found i n the same place i n program coding sheets.
'he SF'S card allows b.ro d ig i t s f o r page nunbering: The following page numbers are assigned t o spec i f i c operations.
Coding Sheet Sequence
Page 00 C m e n t s : Program t i t l e and identif icat ion Propaminer name Asseqbly date and number of
assembly : C n n ~ ? i ~ : k_t up cmdi t iom
Components used, .punch , reader, p r in te r Radial stackers ~f other than normal Punch and norrral read Special 140 3 instruct ion
carriage control tape alpha numeric p r i n t chain 6 o r 8 inch ve r t i ca l spacing
Nessages identif ied by label , and cause
Comments cards desmibing the program a t sane length
Input cards identif ied by type, nane, code
( 2 ) Pages 01-10 Housekeeping Normalizing of counters, switches,
annectors , accunulators Print registrat ion mut ine
A G S COMPUTERS, INC.
&ap t e r I l l Page 6
( 3 ) Pages 11 - 20 Input ; cards read, tested f o r sequence o r mde and -the input stored in work areas
(4) P e e s 21-30 Output ; transferred f m n cc3npute work areas -to p r i n t areas, edited and printed
(5) Pages 31-70 M a i n Logic
( 6) Pages 71- 79 klork areas . A separate page f o r each category of work area should be used.
( 7) Page 80 ACCW%JLA?OEES and COUNTEFS are work areas s e t aside in which t o cb arithmetic operations.
(8) Pages 81-89 CONSTNJTS such as numbem, edit words and alphabetics t o be printed in the heading .
Pages 90-99 MESSSE Work areas
Coding
Ccding involves writing instructions fmm flaw charts; a s s i m g labels to branch points , areas, cans tants , h a l t s ; and writing c m n t s , punched in cards along with the instructions, to describe constants, s teps and opera- t ions in the p r o g m .
Character Writing Standards
Numbers and d a r a c t e r s may be misread by key punch operators when penciled coding sheets are being keypunched unless care i s used i n writing. The following s t y l e of writing numbers, alphabetics and special characters w i l l be used.
I AGS COMPUTERS, INC.
Chapter I l l Page 7
Numbers
Alphabetics
Special Characters (Tnese are c tar~clard on an 029 keypunch)
cent s ign period less . . -than open parenthesis Plus logical o r exclamation mark &Uar sign as ter i sk c l a e parenthesis S T - . - - 7 ..-m
Tne 6 b i t binary coded decimal arrangements permits 64 d i f ferent code patterns. Special characters are nmes given t o different code patterns, apart f m the numbers and the alphabet, which are usually odd multipunch co&s in the card. If punched into a card they w i l l be mad by the ma&-he.
i ' G S COMPUTERS, INC. Chapter 111
Page 8
?he follcwing l e t t e r s w i l l not be used to tag a flw &art symbol:
I too easily confused with 1 (one) 8 too eas i ly confused w i t h 0 ( zero) Q too easi ly m f u s e d with 0 (zero) U too eas i ly confused with V V too eas i ly confused with U
Labels
Labels identify program ent r ies i n coding. ALP allcws f o r an 8 d i g i t a l p h n m r i c label which b e a m s a machine address i n a subsequent operation. A l l of our labels w i l l be 6 digits.
Tie follcwing table , describing our label system, provides m a x i m u n in- formation about the referenced area, branch pint, message it is directly related to the flaw chart ident if icat ion; it provicks f o r every possible label.
i G S COMPUTERS, INC. Qlapter ll1 Page 9
Standard Label System
Character Char, I
%Read card area X-Index Regis T-Print area W-Work area
1 Area
7
2 . A-Accumulator GCounter P-Punch card area
1 3-4 1 S i z e o f c o n s t a n t
I
3- 4 Size o f area; posit ions o f core
h
5- 6 Sequence number
Branch 2 Block l e t t e r frcm macro f l o w &art !
3-4 1 Block nmber f r o m micro flow chart
/ 5- 6 Sequence nwber
Cons tan L
teral
H-absolute (hard), o r dead end ha l t ; S-intermediate, s o f t h a l t
Sequence nmber \
1
Character 1 2 3 4 5 6
' ~ r e a Z A 1 2 0 7
Branch pint B C 1 9 0 3
Cons tan t K A O 3 0 4
Message M H O O O 1
M
Message
s=ze ¶
value o cons tan
o r sequenc nunber
I )h-7"$"? ' I
5 I of i ' I
N
Nmeric
FIessage k I
Sequence NuDnber
Sequena,: &fi"L;
S
Switch
1
n u b e r 6
T
Table
Sequence Heading
X
Othe*
n w b e r l i n e No.
AGS COMPUTERS, INC. Chapter 111
Page 10
Area
An h is a section o f rrerr,o~/, defined by DW, DC, o r D6 statement, used f o r s tor ing input-output data, results of calculations, o r a f i e l d i n which to perform ari-thmetic.
An Area may cmpr ise :
ACCUMUL.4TOK to add, subtract , multiply, o r divide. CWNTEFS , a special form of accumulator, used f o r seauence
numbering and loop control. usually they G i l l be only of two o r three d i g i t capacity,
PUNCH CARD APSA, the storage area of a f i?ld p r i o r to being transferred t o a punch f ie ld . ?he l i n k q e between the pimch card area and the punch f i e l d would con- s t i t u t e a variable *ype of output format,
READ CARD AICA i s the storage area to which a f i e l d is t r a n s f e ~ red a f t e r card read and before processing.
PRINT AREA is the storage area of a f i e l d p r i o r t o being trans- femed t o a p r i n t f ie ld . The linkage bemeen the p r i n t area and the p r i n t f i e l d i n mlumns 201-332 a n s t i t u t e a variable type o f output format.
WORK AREA, the storage area f o r holding temporidly results of arithmetic OF rations.
SUBSCRIPT, a spec ia l type of comter.
Brand Point
A EIWM POINT is t h e instruct ion to kini& t h e program branches as the r e s u l t of a successful t e s t .
Character1 i s B . ,
2 i s the PC--.? -L,.: 31ar-t block l e t t e r 3-4 is the micro r ~ m chart block n*r 5;6 is the sequence nunber
Constants
A mnstant is a value o r f i e l d which is no t subject t o change. Tne exception t o this is a s w i t h which may be in one of severa l s t a t e s depend- ing on action taken as the result of a t e s t .
ADDFESS COlJSTANT is a 3 position core storage address defined by a E A
EDIT WORD i s the control f i e l d a n t a i n i n g the punctuation f o r the printed output data and the zero f o r automatic m n t r o l of zero suppression. KE 0821 b ,bbO.bb
READING is alphabetic and n m e r i c information f o r printing head- ings on blank paper p r io r -to t abular listings.
LITERAL is an alphanumeric mnstant .
/ - G S COMPUTERS, INC.
Chapter 1U Page ll
MESSAGE is alphabetic and numeric information which is subject t o pr in t under program control t o inform the operator of a ccndition such as " l a s t card has been pracessedVV, which can be determined by propam testing.
NUMERIC is a numeric cms tat. SWITCH is a one pcsition f i e l d which can be tested and al tered as
a r e s u l t of t e s t TABLE is a List o f valws in order by some a q g m n t t o be r e f e m d
t o f o r a par t icular value in the list. O'IFIERS which ds not f i t t h i s scheme, t o be ident i f ied by an X i n
h a r a c t e r 2 and the s i ze , o r value, o r name of the ccnstant i n character; 3-6. Any p ropam en-] whi& defies the standard l a b e l system may be assigned a KX xxxx label.
Canrent Cards
Comnent cards are to be used throughout the progran. A t the beginning they w i l l describe the problem, List options and switches, describe forms, input cards and stacker select ion, output punched cards and stacker selec tion. 'his w i l l a lso be p a r t o f the run manual. Do not abbreviate in mmment cards.
Interspersed i n the program, o o m n t cards w i l l describe segments of the program, and what loops go in o r ou t of the segment.
Tne switches indicated i n the f irst paragraph me the l a s t card swith and any internal switches s e t by a card,
. * I s l . ,
" " <--t cam, iippep.a~- only in the l i s t i n g , taking no space in menor:!. ?he l i e i s g I:%. ae pa r t of program &cmentaticn, the or ig ina l coding &;i?,eets w i l l not.
Carmen* cards, preceding the coding, w i l l specif ical ly describe the fallowing :
4 0 S COMPUTERS, INC. I
Chapter 111 Page 12
(1) Each routine represented by a macro flow char t symbol. (2 Special programming and mamematical techniques. ( 3 ) Each phase o f a multi-phase program, summarizing the
purpose and rela t ionship, (4) S i p p i f i c m t input , output, work areas. (5) Decision, c c n t m l and exception processing (6 ) 'Ihe f i rs t page o f coding w i l l contain the following information:
Program name and number Programmer n m Brief description of problem Brief description o f p r o m Formulas Special codes Special ins t ruct ions Input and o i ~ t p u t devicec used Ident i f ica t ion o f input Ident i f ica t ion o f output Restar t address Messages, cause and slnnary o f m r r e c t i v e act ion High-order posi t ion o f m e n o r y used Console s e t t i n g Estimated avemge m time
Program Testing
Program Test'r.; Z y s < i i l -'-;rc 2.3 questions: Have w e met the job re- quirements? F i a k 5.:e made ar: r - ~ ~ ? a t e t rans la t ion i n progrwnming? Testing . - is cbne f o r ( ij ?;:::-I__++ -such as wring keypunching, i n c o m c t constme-, insuf f ic ien t area m d co&ter capacity; (2 ) i n t e rp re t ive emrs i n mding from the flw chart; ( 3 ) l o g i c e m r s in the flow char t ; (4) v a l i d i t y e m = i n the or ig ina l mckrstanding and statement of the problem.
Clerical errors plague us all m d can b e s t be eliminated by careful wr i t ing and thorough preliminary planning o f all t h e f ac to r s involved i n arithmetic, s tomge , ed i t i ng and printing.
biGS COMPUTERS, INC. Chapter I l l Page 13
Interpretive e m r s ewlve from insuff ic ient documentation of micro flow charts. The micro chart should show enough de ta i l , in both words and symbols, t o permit coding direct ly without stopping t o work out fur ther logic. Elimination of t h i s kind of e r ro r comes with using and writing flow charts. A good f l aw chart explaining exactly what is to be done is d i f f i c u l t to draw,
b g i c e m r s result f r o m a misunderstanding about how an operation works o r how it t i e s in to subsequent operations. I t usually mmes from trying t o imply too much in an o p r a t i o n a l symbol of the miam o r , , jus t the opposite, from an absolute f l cw chart of every instruction which glves no clear-cut separation of operations. Complete certainty about the me rat ion and accurate diagmmming w i l l eliminate logic errors ,
Validity errors inmlve the ent i re problem log ic as distinguished fm the preceding errors which are concerned with program logic, Understanding of the en t i r e problem f i e l d and the re la t ive position of your propam in the f i e l d w i l l greatly ~ c l u c e the chance of t h i s kind of error,
Testing begins once a pmpm has been coded, Desk checking of each segment, SPS pre and post l ist, and label table are all f i r s t level aids in weeding out c ler ica l , label andinterpretive emom, Testing w i l l pro- gress along -the f l a ~ of macro logic. Take advantage of memry p r in t outs , interrogate memory, and s top a t the end of a macro log ic block to p r i n t out positions of core, Testing a program f o r accuracy and validity can take as mu& time as all the o ~ e r tasks,
Testing
Considerable care should be exercised in the preparation of sample data. Test cases should be mnstmcted t o allow progressive checking of each logical branch within the program, ..T+ is v i t a l thari test data include all necessary code punding and conTi . C1S , , The wlune of data should be held to a minimum t o f a c i l i t ~ r e " 1 i ~ +,?p: dual data should not be used u n t i l d f i c i a l test samples 16 correctly. Repetition of data should be avoided, as it wastes machine time and increases the time needed f o r prepara- t ion, The block diagram slaould be checked using cases prepared t o t e s t all pmsible conditions. These cases should then be used f o r test ing,
AlthouErjn the output of one run my b e a m the input t o a subsequent operation, it is unwise t o plan on using t h i s output, u n t i l the program is fu l ly tested,
location of program errors is not an exact science. It is a matter of applying logica l reasoning processes t o the available evidence determining which program steps did not acmmplish the expected resul t . The bes t approach
\ is to b c a t e a point a t which the program was functioning correctly, then check each succeeding s tep up the e r ro r ha l t , I n many cases, the real cause
1 -G S COMPUTERS, INC.
Chapter ll1 Page 1 4
of the e r ro r w i l l be found a t a point in the propam m& e a r l i e r than the stop. The e r r o r may have created a a n d i t i o n , such as unintention- a l ly changing an area of program storage, which caused a subsequent opera- tion t o be performed incorrectly.
A methodical approach w i l l accomplish far more than rancbm theorizing as t o possible causes. Examination of the m m r y printout w i l l usually give a quick answer as t o ~e incorrect condition causing the h a l t , The problem is -to find ou t what created the inmrrec t condition. Tracing the program stepby-step t o locate the e m r is a tedious task a d s m t i m e s quite frustrating. In rnanv cases , a person o the r than the pro&rammer can locate errors f a s t e r and easier. The bes t n i l e is t o assure t h a t every s tep is wrCmg u n t i l examination of the contents of storage proves otherwise. k f e r - ence t o the b h c k diagram and l i s t i n g of input simplifies the job.
Progressive checking s b u l d start with the simplest exanple of input chta t o pmve out the main Elm of lop,ic, Once w e have arrived a t the end with correct figures f o r the very simplest case we then progressively add, one a t a time, each c a d i t i o n planned f o r inl,the program. In the micro block this w i l l be a t e s t of both exi ts of a decision symbol. In the macro block t h i s w i l l show the variations of input and output.
A t e s t plan w i l l be used to focus your at tent ion on the s tepby-step sequence of operations t o be checked. Often, it is enough t o know you a~ rived a t a cer ta in address, Other times you w i l l need t o know the results of arithmetic. Work out a schedule based on success but with b e c k points along the w q l i s t i n g the address o r results you expect. Use -the test plan form, Record your progress. When the propun is completely tested, summarize the nwnber of t e s t s , the number of e r rors , and what they w e r e .
_ I .
. h 1 '
t- .i . i c r
:,.* r ~~~-1tr01 w o n i , ' . l7ter than f i e l d to be edi ted ( data f i e ld ) D i f few:.[ : length f ie lds when canparing Sidk ?~i.% -sit ion causing inmrrect canpare Signed f i e lds compared to unsigned f i e lds Key punch errors : 2 and Z , 5 and S, 1 and I, 0 and 0 Address arithmetic and character adjusment errors due t o faul ty counting o r promam revisions Underfined symbolic operands Incorrect labels on instructions causing wrong indexing in assembly Qnstant areas overlapped with program N u r e t o provide e x i t from a loop under all cmditions Confusion on Hi-lm-equal compare Arithmetic overflow Loop control counter off by one
AG S COMPUTERS, INC. Chapter 1ll Page 15
The following bcuments w i l l be complete, accurate, and available before any test data is run.
Flow charts Card, storage and p r i n t layouts Carriage control tape Operating instruct ion Sanple output data Ut i l i ty mutines nee&d Test data Test plan Source deck o r object deck f o r test