Software Engineering: An Emerging Discipline

Software engineering is an emerging discipline whose goal is to produce reliable software products in cost-effective manner. This discipline is evolving rapidly as the challenges faced by its practitioners keep extending their skills. This paper gives a quick tour of the main ideas and thrusts that have driven software engineering in its first 25 years and attempts to look ahead at the next set of advances.

[1]  Michael Fagan Design and Code Inspections to Reduce Errors in Program Development , 1976, IBM Syst. J..

[2]  James M. Neighbors,et al.  The Draco Approach to Constructing Software from Reusable Components , 1984, IEEE Transactions on Software Engineering.

[3]  Joan M. Morrissey,et al.  On Software Engineering-An Economic Perspective , 1979, ICSE.

[4]  Edsger W. Dijkstra,et al.  The structure of the “THE”-multiprogramming system , 1968, CACM.

[5]  Jr. Frederick P. Brooks,et al.  The Mythical Man-Month: Essays on Softw , 1978 .

[6]  Gerald M. Weinberg,et al.  Psychology of computer programming , 1971 .

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

[8]  Richard C. Waters The Programmer's Apprentice: A Session with KBEmacs , 1985, IEEE Transactions on Software Engineering.

[9]  Victor R. Basili,et al.  Experimentation in software engineering , 1986, IEEE Transactions on Software Engineering.

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

[11]  Barry W. Boehm Software Engineering , 1976, IEEE Transactions on Computers.

[12]  Ronald A. Radice,et al.  A Programming Process Architecture , 1985, IBM Syst. J..

[13]  E. B. Swanson,et al.  Software maintenance management , 1980 .

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

[15]  Corrado Böhm,et al.  Flow diagrams, turing machines and languages with only two formation rules , 1966, CACM.

[16]  Robert Goldberg,et al.  Strategic Planning Systems Analysis and Database Design: The Continuous Flow Approach , 1983 .

[17]  Donald O'Neill The Management of Software Engineering. Part II: Software Engineering Program , 1980, IBM Syst. J..

[18]  Lawrence H. Putnam,et al.  Tutorial, software cost estimating and life-cycle control : getting the software numbers , 1980 .

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

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

[21]  Niklaus Wirth,et al.  Program development by stepwise refinement , 1971, CACM.

[22]  Gill Ringland Software engineering in a development group , 1984, Softw. Pract. Exp..

[23]  Joel D. Aron,et al.  Program Development Process: The Individual Programmer , 1974 .

[24]  Meir M. Lehman Programs, life cycles, and laws of software evolution , 1980 .

[25]  Harlan D. Mills,et al.  Data structured programming: Program design without arrays and pointers , 1986, IEEE Transactions on Software Engineering.

[26]  Glenford J. Myers,et al.  Composite Structure Design , 1978 .

[27]  A. Nico Habermann,et al.  The Engineering Institute: Bridging Practice and Potential , 1985, IEEE Software.

[28]  Harvey K. Hallman,et al.  Quality Emphasis at IBM's Software Engineering Institute , 1985, IBM Syst. J..

[29]  Edsger W. Dijkstra,et al.  Letters to the editor: go to statement considered harmful , 1968, CACM.

[30]  Rudy Bazelmans Evolution of configuration management , 1985, SOEN.

[31]  M. Schaul Design using software engineering principles: overview of an educational program , 1985, ICSE '85.

[32]  Michael J. Flaherty Programming Process Productivity Measurement System for System/370 , 1985, IBM Syst. J..

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

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

[35]  Tom DeMarco,et al.  Controlling Software Projects , 1982 .

[36]  Mehdi T. Harandi Applying Knowledge-Based Techniques to Software Development. , 1986 .

[37]  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.

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

[39]  Meir M. Lehman,et al.  A Model of Large Program Development , 1976, IBM Syst. J..

[40]  C. V. Ramamoorthy,et al.  METRICS GUIDED METHODOLOGY. , 1985 .

[41]  C. A. R. Hoare,et al.  An axiomatic basis for computer programming , 1969, CACM.

[42]  Barry W. Boehm,et al.  Prototyping Versus Specifying: A Multiproject Experiment , 1984, IEEE Transactions on Software Engineering.

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

[44]  Peter V. Norden Curve Fitting for a Model of Applied Research and Development Scheduling , 1958, IBM J. Res. Dev..

[45]  Victor R. Basili,et al.  An Investigation of Human Factors in Software Development , 1979, Computer.

[46]  M. Chandrasekharan,et al.  Requirements-based testing of real-time systems: Modeling for testability , 1985, Computer.