A Classification Scheme for Software Development Methods

Abstract : Software development methods are used to assist with the process of designing software for real-time systems. Many such methods have come into practice over the last decade, and new methods are emerging. These new methods are more powerful than the old ones, especially with regard to real-time aspects of the software. This report describes a classification scheme for software development methods, includes descriptions of the major characteristics of such methods, and contains some words of advice on choosing and applying such methods. A major challenge in any engineering endeavor is taking a poorly structured, ambiguous, inconsistent, incomplete, and oversimplified requirements specification and turning it into a well-structured design. It is especially difficult in software engineering a new field with few standards and procedures to act as guidelines for designers. This report is one of a series concerning the classification, assessment, and evaluation of software development methods and tools. Its purpose is to describe a classification scheme for software development methods and provide relevant background material about these methods. In a second report, the assessment criteria for software development methods are developed, and a third report describes both a classification scheme for tools and evaluation criteria for selecting appropriate ones. Future reports will apply the classification scheme and assessment criteria to particular methods and tools.

[1]  Meir M. Lehman,et al.  Approach to a disciplined development process - the ISTAR integrated project support environment , 1986, SOEN.

[2]  Douglas T. Ross,et al.  Structured Analysis for Requirements Definition , 1977, IEEE Transactions on Software Engineering.

[3]  Stephen S. Yau,et al.  A survey of software design techniques , 1986, IEEE Transactions on Software Engineering.

[4]  S. Zeldin,et al.  High order software - A methodology for defining software , 1975 .

[5]  C. J. Date An Introduction to Database Systems , 1975 .

[6]  Michael Jackson,et al.  Principles of program design , 1975 .

[7]  Hassan Gomaa Software development of real-time systems , 1986, CACM.

[8]  Ian J. Hayes,et al.  Specification case studies , 1987 .

[9]  Trevor N. Mudge,et al.  Object-Based Computing and the Ada Programming Language , 1985, Computer.

[10]  Christiane Floyd,et al.  A Comparative Evaluation of System Development Methods , 1986, Information Systems Design Methodologies: Improving the Practice.

[11]  Peter Pepper,et al.  Program Transformation and Programming Environments , 1984, NATO ASI Series.

[12]  David Notkin,et al.  Gandalf: Software development environments , 1986, IEEE Transactions on Software Engineering.

[13]  Tom DeMarco,et al.  Structured Analysis and System Specification , 1978 .

[14]  Dines Bjørner,et al.  Formal specification and software development , 1982 .

[15]  Alfred V. Aho,et al.  Data Structures and Algorithms , 1983 .

[16]  James F. Stay HIPO and Integrated Program Design , 1976, IBM Syst. J..

[17]  Glenn D. Bergland,et al.  A Guided Tour of Program Design Methodologies , 1981, Computer.

[18]  John Ostgaard,et al.  Architecture Specification for PAVE PILLAR Avionics , 1987 .

[19]  Douglas T. Ross,et al.  Structured Analysis (SA): A Language for Communicating Ideas , 1977, IEEE Transactions on Software Engineering.

[20]  W. W. Royce,et al.  Managing the development of large software systems: concepts and techniques , 1987, ICSE '87.

[21]  Mack W. Alford SREM at the Age of Eight; The Distributed Computing Design System , 1985, Computer.

[22]  Ernest A. Hershey,et al.  PSL/PSA: A Computer-Aided Technique for Structured Documentation and Analysis of Information Processing Systems , 1976, IEEE Transactions on Software Engineering.

[23]  Ralf Steinbrüggen,et al.  Program Transformation Systems , 1983, CSUR.

[24]  B Boehm A spiral model of software development and enhancement , 1986, SOEN.

[25]  Cliff B. Jones,et al.  Systematic software development using VDM , 1986, Prentice Hall International Series in Computer Science.

[26]  Wolfgang Hesse,et al.  A systematics of software engineering: Structure, terminology and classification of techniques , 1984 .

[27]  Thomas Reps,et al.  The why and wherefore of the Cornell Program Synthesizer , 1981 .

[28]  J. C. Kelly,et al.  A comparison of four design methods for real-time systems , 1987, ICSE '87.

[29]  Paul Ward,et al.  Structured Development for Real-Time Systems , 1986 .

[30]  William E. Rzepka,et al.  A Case Study of SREM , 1985, Computer.

[31]  James E. Archer,et al.  Rational's experience using Ada for very large systems , 1986 .

[32]  S. Zeldin,et al.  Higher Order Software—A Methodology for Defining Software , 1976, IEEE Transactions on Software Engineering.

[33]  William E. Riddle Proceedings of the 9th international conference on Software Engineering , 1987 .

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

[35]  David Lorge Parnas,et al.  A rational design process: How and why to fake it , 1986, IEEE Transactions on Software Engineering.

[36]  Brad J. Cox Message/Object Programming: An Evolutionary Change in Programming Technology , 1984, IEEE Software.

[37]  Robert Balzer,et al.  A 15 Year Perspective on Automatic Programming , 1985, IEEE Transactions on Software Engineering.

[38]  A. Nico Habermann,et al.  Software Development Environments , 1987, Computer.

[39]  C. A. R. Hoare,et al.  Communicating Sequential Processes (Reprint) , 1983, Commun. ACM.

[40]  Frederick P. Brooks,et al.  No Silver Bullet: Essence and Accidents of Software Engineering , 1987 .

[41]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.

[42]  Richard E. Fairley,et al.  Software engineering concepts , 1985, McGraw-Hill series in software engineering and technology.

[43]  Ian Thomas,et al.  The object management system of PCTE as a software engineering database management system , 1987, SDE 2.

[44]  David R. Barstow A Perspective on Automatic Programming , 1984 .

[45]  Nancy G. Leveson,et al.  Analyzing Software Safety , 1983, IEEE Transactions on Software Engineering.

[46]  Mary K. Vernon,et al.  SARA (System ARchitects Apprentice): Modeling, analysis, and simulation support for design of concurrent systems , 1986, IEEE Transactions on Software Engineering.

[47]  Paul T. Ward,et al.  The transformation schema: An extension of the data flow diagram to represent control and timing , 1986, IEEE Transactions on Software Engineering.

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

[49]  Pamela Zave,et al.  Salient features of an executable specification language and its environment , 1986, IEEE Transactions on Software Engineering.

[50]  Catherine W. McDonald,et al.  Stars methodology area summary: volume II: preliminary views on the software life cycle and methodology selection , 1986, SOEN.

[51]  Douglas R. Smith,et al.  Research on Knowledge-Based Software Environments at Kestrel Institute , 1985, IEEE Transactions on Software Engineering.

[52]  Ernest A. Hershey,et al.  A computer-aided technique for structured documentation , 1976, DATB.