Inspecting module interface specifications

Despite dramatic changes in computing in the two decades since the term software engineering was coined, problems of deficient quality and unmanageable costs continue to afflict the software industry. Improvements in the software engineering process are vital to bringing software quality and costs under control. Module interface specification is a mature software engineering technology that, like many other proposed methodological improvements, has not significantly penetrated industrial practice. The inspection technique is well accepted for dealing with program code and pseudo‐code, but its potential for application to other work products is largely unrealized. This paper describes a successful pilot project in jointly transferring these two technologies to the software workplace. A central theme of the project was purposeful customization of the technology to a particular industrial setting. Such adaptation is important for success in the notoriously difficult process of diffusing software engineering methodology in industry.

[1]  Ram Chillarege,et al.  Defect type and its impact on the growth curve (software development) , 1991, [1991 Proceedings] 13th International Conference on Software Engineering.

[2]  William E. Riddle,et al.  Software technology maturation , 1985, ICSE '85.

[3]  John C. Kelly,et al.  An analysis of defect densities found during software inspections , 1992, J. Syst. Softw..

[4]  John N. Buxton,et al.  Software technology transfer , 1991, Softw. Eng. J..

[5]  Victor R. Basili,et al.  The Future Engineering of Software: A Management Perspective , 1991, Computer.

[6]  Robert G. Mays,et al.  Experiences with Defect Prevention , 1990, IBM Syst. J..

[7]  Bertrand Meyer,et al.  Applying 'design by contract' , 1992, Computer.

[8]  Michael E. Fagan Advances in software inspections , 1986, IEEE Transactions on Software Engineering.

[9]  Hartmut Ehrig,et al.  Fundamentals of Algebraic Specification 1 , 1985, EATCS Monographs on Theoretical Computer Science.

[10]  Daniel Hoffman,et al.  Trace Specifications: Methodology and Models , 1988, IEEE Trans. Software Eng..

[11]  Watts S. Humphrey,et al.  Managing the software process , 1989, The SEI series in software engineering.

[12]  Victor R. Basili,et al.  Software errors and complexity: an empirical investigation , 1993 .

[13]  Glen W. Russell,et al.  Experience with inspection in ultralarge-scale development , 1991, IEEE Software.

[14]  David Lorge Parnas,et al.  A Rational Design Process: How and Why to Fake It , 1985, TAPSOFT, Vol.2.

[15]  J. Michael Spivey,et al.  Understanding Z : A specification language and its formal semantics , 1985, Cambridge tracts in theoretical computer science.

[16]  Victor R. Basili,et al.  The cleanroom case study in the Software Engineering Laboratory: Project description and early analysis , 1990 .

[17]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[18]  David Lorge Parnas,et al.  The Modular Structure of Complex Systems , 1984, IEEE Transactions on Software Engineering.

[19]  Michael Dyer The Cleanroom Approach to Quality Software Development , 1992, Int. CMG Conference.

[20]  Edward Yourdon Decline and Fall of the American Programmer , 1992 .

[21]  David Lorge Parnas,et al.  Using traces to write abstract specifications for software modules , 1977 .

[22]  Priscilla J. Fowler In-process inspections of workproducts at AT&T , 1986, AT&T Technical Journal.

[23]  Harlan D. Mills,et al.  Structured programming - theory and practice , 1979, The systems programming series.

[24]  E. P. Doolan,et al.  Experience with Fagan's inspection method , 1992, Softw. Pract. Exp..

[25]  James A. Hager,et al.  Software Cost Reduction Methods in Practice , 1989, IEEE Trans. Software Eng..

[26]  A. Frank Ackerman,et al.  Software inspections: an effective verification process , 1989, IEEE Software.

[27]  Donald R. Chand,et al.  Diffusing software-engineering methods , 1989, IEEE Software.

[28]  Tom Gilb,et al.  Principles of software engineering management , 1988 .

[29]  James H. Dobbins,et al.  Application of software inspection methodology in design and code , 1984 .

[30]  Paul Clements,et al.  Enhancing reusability with information hiding , 1989 .

[31]  James J. Horning,et al.  The Larch Family of Specification Languages , 1985, IEEE Software.

[32]  Victor R. Basili,et al.  Software errors and complexity: an empirical investigation0 , 1984, CACM.

[33]  John McLean,et al.  A Formal Method for the Abstract Specification of Software , 1984, JACM.

[34]  Stephen J. Goldsack ADA for Specification: Possibilities and Limitations , 1985 .

[35]  Hitoshi Kume,et al.  A Case History Analysis of Software Error Cause-Effect Relationships , 1991, IEEE Trans. Software Eng..