Ada code reuse guidelines for design-for-reuse

The phenomenal growth in the costs of producing software over the last three decades has forced the computing industry to look for alternative strategies to that implied by the waterfall model of computer system development. One frequently observed solution is that of reusing the code from previously designed systems in the construction of new ones; this technique is known as software reuse. Ada language was developed as a tool to address the above problems and is believed to have many useful language features such as package and generics to produce reusable software. But programming in Ada does not guarantee the production of highly reusable software. Therefore guidelines for users are needed to maximise the benefits from using Ada. In this thesis, Ada code reuse guidelines are proposed, and as an attempt to prove the usefulness of them, reuse metrics are studied. The thesis concludes by stressing the novelty of the approach, the difficulties encountered, and enhancements to the proposed methods to overcome these shortcomings.

[1]  Grady Booch,et al.  Software engineering with Ada , 1983 .

[2]  Gary Ford Lecture Notes on Engineering Measurement for Software Engineers , 1993 .

[3]  Anthony Gargaro A brief introduction to Ada , 1993, HOPL-II.

[4]  W Butler Ricky,et al.  Formal Methods for Life-Critical Software , 1993 .

[5]  R. J. St. Dennis Reusable Ada software guidelines , 1988 .

[6]  Joseph Eugene Hollingsworth Software component design-for-reuse: a language-independent discipline applied to ADA , 1992 .

[7]  Muthupandi Ramachandran,et al.  An investigation into tool support for the development of reusable software , 1992 .

[8]  Thomas A. Standish An Essay on Software Reuse , 1984, IEEE Transactions on Software Engineering.

[9]  Roger S. Pressman,et al.  Software Engineering: A Practitioner's Approach , 1982 .

[10]  Shelby Stewman,et al.  National Software Capacity: Near-Term Study , 1990 .

[11]  Barry W. Boehm,et al.  Improving Software Productivity , 1987, Computer.

[12]  Narain H. Gehani,et al.  Ada, an advanced introduction , 1983 .

[13]  Peter J. L. Wallis,et al.  Portability and style in ADA , 1984 .

[14]  Yoshihiro Matsumoto,et al.  Some Experiences in Promoting Reusable Software: Presentation in Higher Abstract Levels , 1984, IEEE Transactions on Software Engineering.

[15]  Mark Lorenz,et al.  Object-oriented software metrics - a practical guide , 1994 .

[16]  Nell Dale,et al.  Programming and Problem Solving with Ada 95 , 1996 .

[17]  Barry W. Boehm,et al.  Software Engineering Economics , 1993, IEEE Transactions on Software Engineering.

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

[19]  M. F. Bott Programming and Problem Solving with Ada , 1995 .

[20]  Anas N. Al-Rabadi,et al.  A comparison of modified reconstructability analysis and Ashenhurst‐Curtis decomposition of Boolean functions , 2004 .

[21]  James W. Hooper,et al.  Software Reuse: Guidelines and Methods , 1991 .

[22]  Edward Stewart Garnett Software reclamation : upgrading code for reusability , 1990 .

[23]  Ellis Horowitz,et al.  An Expansive View of Reusable Software , 1984, IEEE Transactions on Software Engineering.

[24]  Watts S. Humphrey,et al.  Software Product Liability , 1993 .

[25]  Ruven E. Brooks,et al.  Towards a Theory of the Comprehension of Computer Programs , 1983, Int. J. Man Mach. Stud..

[26]  E. Burton Swanson,et al.  The dimensions of maintenance , 1976, ICSE '76.

[27]  R. Lyman Ott.,et al.  An introduction to statistical methods and data analysis , 1977 .

[28]  Norman E. Fenton,et al.  Software Metrics: A Rigorous Approach , 1991 .

[29]  Kate Ehrlich,et al.  Empirical Studies of Programming Knowledge , 1984, IEEE Transactions on Software Engineering.

[30]  T. Capers Jones Reusability in Programming: A Survey of the State of the Art , 1984, IEEE Transactions on Software Engineering.

[31]  Victor R. Basili,et al.  A Methodology for Collecting Valid Software Engineering Data , 1984, IEEE Transactions on Software Engineering.

[32]  Robert G. Lanergan,et al.  Software Engineering with Reusable Designs and Code , 1984, IEEE Transactions on Software Engineering.

[33]  Capers Jones,et al.  Programming Productivity , 1986 .

[34]  Noboru Akima,et al.  Industrializing software development: a Japanese approach , 1989, IEEE Software.

[35]  Ian Sommerville,et al.  Practical Guidelines for Ada Reuse in an Industrial Environment , 1995, Objective Software Quality.

[36]  H. E. Dunsmore,et al.  Software engineering metrics and models , 1986 .

[37]  Glenford J. Myers,et al.  Structured Design , 1974, IBM Syst. J..