Unformatted text preview:

Substantial net improvements in programming quality and productivity have been obtained through the use of formal inspections of design andof code Improvements are made possible by a systematic and eficient design and code verijicution process with well dejined roles for inspection participants The manner in which inspection data is categorized and made suitable for process analysis is an important factor in attaining the improvements It is shown that by using inspection results a mechanism f o r initial error reduction followed by ever improving error rates can be achieved Design and code inspections to reduce errors in program development by M E Fagan Successful management of any process requires planning measurement and control In programming development these requirements translate into defining the programming process in terms of a series of operations each operation having its own exit criteria Next there must be some means of measuring completeness of theproduct at any point of its development by inspections or testing And finally the measured data must be used for controlling the process This approach is not only conceptually interesting but has been applied successfully in several programming projects embracing systemsand applications programming both large and small It has not been found to get in the way of programming but has insteadenabled higher predictability than other means and the use of inspections has improved productivity and product quality The purpose of this paper is to explain the planning measurement and control functions as they areaffected by inspections in programming terms An ingredient that gives maximum play to the planning measurement and control elements is consistent and vigorous discipline Variable rules and conventions are the usual indicators of a lack of discipline An iron clad discipline on all rules which can stifle programming work is not required but instead there should be a clear understanding of the flexibility or nonflexibility of each of the rules applied to various aspects of the project An example of flexibility may be waiving the rule that all main paths will be tested for the case where repeated testing of a given path will logically do no more than add expense An example of necessary inflexibility would be that all code must be 182 FAGAN IBM SYST J The cost of reworking errors in programs becomes higher the later they are reworked in the process so every attempt should be made to find and fix errors as early in the process as possible This cost has led to the use of the inspections described later and to the descriptionof exit criteria which include assuring that all errors known at the end of the inspection of the new cleancompilation code for example have been correctly fixed So rework ofall known errors up toaparticular point must be complete before the associated checkpoint can be claimed to be met for any piece of code Where inspections are not used and errors are found during development or testing the cost of rework as a fraction of overall development cost can be suprisingly high For this reason errors should be found and fixed as close to their place of origin as possible Production studies have validated the expected quality and productivity improvements and have provided estimates of standard productivity rates percentage improvements due to inspections and percentage improvementsin error rates which are applicable in the context of large scale operating system program production The data related to operating system development contained herein reflect results achieved by IBM in applying the subject processes and methods to representative samples Since the results depend on many factors they cannot be considered representative of everysituation Theyarefurnished merely for thepurpose of illustrating whathas been achieved in sample testing The purpose of the test plan inspection IT shown in Figure 1 is to find voids in the functional variation coverage and other discrepancies in the test plan IT test case inspection of the test cases which are based on the test plan finds errors in the test cases The total effects of IT and IT are to increase the integrity of testing and hence the quality of thecompleted product And because there are less errors in the test cases to be debugged during the testing phase the overall project schedule is also improved A process of the kind depicted in Figure 1 installs all the intrinsic programming properties in the product as required in the statement of objectives Level 0 by the time the coding operation Level 5 has been completed except for packaging and publications requirements With these exceptions all later work is of a verification nature This verification of the product provides no contribution to the productduring the essential development Levels 1 to 5 it only adds error detection and elimination frequently at one half of the development cost I I and I inspections were developed to measure and influence intrinsic NO 3 1976 DESIGN AND CODE INSEPCTIONS I Figure 2 A study productivity of coding CODINGOPERATION Y REWORK REWORK I REWORK Y NET CODING PRODUCTIVITY II li l2 r 123 px x x0 112 L i DETECTION EFFICIENCY ASSUMED 100 SAMPLE SHOWED 23 NET INCREASE 122 IN POST STUDY SAMPLE FROM NORMAL PRODUCTION TO NORMALIZE FOR HAWTHORNE EFFECT 100 NET SAVINGS PROGRAMMER HOURS K DUE TO 11 94 12 51 13 20 REWORK PROGRAMMER HOURS K LOC FROM 11 78 12 36 QUALITY AN INSPECTION SAMPLE HAD 38 FEWER ERRORS K LOC THAN A WALK THROUGH SAMPLE DURING EQUIVALENT TESTING BETWEEN POST UNIT TEST AND SYSTEM TEST IN THIS STUDY quality error content in the early levels where error rework can be most economically accomplished Naturally the beneficial effect on quality is also felt in later operations of the development process and at the end user s site An improvement in productivity is the most immediate effect of purging errors from the product by the I I and I inspections This purging allows rework of these errors very near their origin early in the process Rework done at these levels is 10 to 100 times less expensive than if it is done in the last half of the process Since rework detracts from productive effort it reduces productivity in proportion to the time taken to accomplish the rework It follows then that finding errors by inspection and reworking them earlier in the process reduces theoverall rework time and increases productivity even within the early operations and even more over the total process


View Full Document

UMD CMSC 838P - Design and code inspections to reduce errors in program development

Download Design and code inspections to reduce errors in program development
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Design and code inspections to reduce errors in program development and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Design and code inspections to reduce errors in program development and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?