|
ABSTRACT
George Santayana's statement, "Those who cannot remember the past are condemned to repeat it," is only half true. The past also includes successful histories. If you haven't been made aware of them, you're often condemned not to repeat their successes.In a rapidly expanding field such as software engineering, this happens a lot. Extensive studies of many software projects such as the Standish Reports offer convincing evidence that many projects fail to repeat past successes.This paper tries to identify at least some of the major past software experiences that were well worth repeating, and some that were not. It also tries to identify underlying phenomena influencing the evolution of software engineering practices that have at least helped the author appreciate how our field has gotten to where it has been and where it is.A counterpart Santayana-like statement about the past and future might say, "In an era of rapid change, those who repeat the past are condemned to a bleak future." (Think about the dinosaurs, and think carefully about software engineering maturity models that emphasize repeatability.)This paper also tries to identify some of the major sources of change that will affect software engineering practices in the next couple of decades, and identifies some strategies for assessing and adapting to these sources of change. It also makes some first steps towards distinguishing relatively timeless software engineering principles that are risky not to repeat, and conditions of change under which aging practices will become increasingly risky to repeat.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
ISO. Standard for Information Technology - Software Life Cycle Processes. ISO/IEC 12207, 1995.
|
| |
2
|
ISO. Systems Engineering - System Life Cycle Processes. ISO/IEC 15288, 2002.
|
| |
3
|
FCIO (Federal CIO Council), A Practical Guide to Federal Enterprise Architecture, Version 1.0, FCIO, Washington, DC, February 2001. zaqi4.
|
| |
4
|
Alford, M.W., Software Requirements Engineering Methodology (SREM) at the Age of Four, COMPSAC 80 Proceedings, (October 1980) pp 366--374.
|
| |
5
|
Anthes, G., The Future of IT. Computerworld, (March 7, 2005) 27--36.
|
| |
6
|
Aron, J. Software Engineering, NATO Science Committee Report, January 1969.
|
| |
7
|
Arthur, W. B., Increasing Returns and the New World of Business. Harvard Business Review (July/August, 1996) 100--109.
|
 |
8
|
|
| |
9
|
Balzer, R.M. A Global View Of Automatic Programming, Proc. 3rd Joint Conference On Artificial Intelligence, August, 1973, pp. 494--499.
|
| |
10
|
Balzer, R. M., T. E. Cheatham, and C. Green, Software Technology in the 1990's: Using a New Paradigm, Computer, Nov. 1983, pp. 3945.
|
| |
11
|
|
| |
12
|
|
| |
13
|
|
| |
14
|
|
| |
15
|
Belady, L. A. and Lehman, M. M., Characteristics of large systems, in Research Directions in Software Technology, P.Wegner (editor), MIT-Press, Cambridge, Massachusetts, 1979.
|
| |
16
|
Benington, H. D., Production of Large Computer Programs, Proceedings of the ONR Symposium on Advanced Program Methods for Digital Computers, June 1956, pp. 15--27. Also available in Annals of the History of Computing, October 1983, pp. 350--361.
|
| |
17
|
Berners-Lee, T., World Wide Web Seminar. http://www.w3.org/Talks/General.html (1991).
|
 |
18
|
|
| |
19
|
Best Current Practices: Software Architecture Validation, AT&T Bell Labs, 1990.
|
| |
20
|
Stefan Biffl , Aybüke Aurum , Barry Boehm , Hakan Erdogmus , Paul Grünbacher, Value-Based Software Engineering, Springer-Verlag New York, Inc., Secaucus, NJ, 2005
|
| |
21
|
|
| |
22
|
Boehm, B., Software and its impact: a quantitative assessment. Datamation, pages 48--59, May 1973.
|
| |
23
|
Boehm, B. W., J. R. Brown, H. Kaspar, M. Lipow, G. J. MacLeod, M. J. Merritt, Characteristics of Software Quality, TRW Software Series TRW-SS-73-09, December 1973.
|
| |
24
|
Boehm, B., Software engineering. IEEE Trans. Computers, 100(25):1226--1241, 1976.
|
| |
25
|
|
| |
26
|
|
| |
27
|
Boehm, B., Standish, T. A. Software Technology in the 1990's: Using an Evolutionary Paradigm. IEEE Computer 16(11): 30--37 (1983).
|
| |
28
|
|
| |
29
|
Boehm B., An Early Application generator and Other Recollections, in Glass, R. L., In The Beginning: Recollections of Software Pioneers, IEEE CS Press, 1988.
|
| |
30
|
|
| |
31
|
|
| |
32
|
|
| |
33
|
|
| |
34
|
|
| |
35
|
Boehm, B., Brown, A.W, Basili, V. and Turner R., Spiral Acquisition of Software-Intensive Systems. CrossTalk, May 2004, pp. 4--9.
|
| |
36
|
|
| |
37
|
Boehm, B., Jain, A. An Initial Theory of Value-Based Software Engineering. In: Aurum, A., Biffl, S., Boehm, B., Er-dogmus, H., Gruenbacher, P. (eds.): Value-Based Software Engineering, Springer Verlag (2005).
|
| |
38
|
|
| |
39
|
Boehm, B. and Lane, J., 21st Century Processes for Acquiring 21st Century Software Intensive Systems of Systems, Cross Talk, May 2006 (to appear).
|
 |
40
|
|
| |
41
|
|
| |
42
|
|
| |
43
|
|
| |
44
|
|
| |
45
|
PDL/74 Program Design Language Reference Guide (Processor Version 3), Caine Farber Gordon Inc., 1977.
|
| |
46
|
|
 |
47
|
|
| |
48
|
Constantine, L. L. The Programming Profession, Programming Theory, and Programming Education. Computers and Automation 17,2 (Feb. 1968) pp. 14--19.
|
 |
49
|
|
| |
50
|
Cooper, J. D., Characteristics of the Average Coder, personal communication, May 1975.
|
| |
51
|
Conrow, E. H., Risk Management for Systems of Systems, CrossTalk, v. 18, n. 2 (February 2005), pages 8--12.
|
| |
52
|
|
| |
53
|
Cusumano, M., Selby, R.: Microsoft's Secrets. HarperCollins (1996).
|
| |
54
|
Dahl, O., and Nygaard, K. Simula: a language for programming and description of discrete event systems. Tech. rep., Norwegian Computing Center, 1967.
|
| |
55
|
|
| |
56
|
|
| |
57
|
Drexler, E.K.: Engines of Creation. Anchor Press (1986)
|
| |
58
|
Drexler, K.E., Peterson, C., Pergamit, G.: Unbounding the Future: The Nanotechnology Revolution. William Morrow & Co. (1991).
|
| |
59
|
Dreyfus, H., Dreyfus, S.: Mind over Machine. Macmillan (1986).
|
| |
60
|
Druffel, L.E.. and Buxton, J.N. Requirements for an Ada programming support environment: Rationale for STONEMAN. In Proceedings of COMPSAC 80. IEEE Computer Society, (Oct. 1980), 66--72.
|
| |
61
|
|
| |
62
|
|
 |
63
|
|
 |
64
|
Jacky Estublier , David Leblang , André van der Hoek , Reidar Conradi , Geoffrey Clemm , Walter Tichy , Darcy Wiborg-Weber, Impact of software engineering research on the practice of software configuration management, ACM Transactions on Software Engineering and Methodology (TOSEM), v.14 n.4, p.383-430, October 2005
[doi> 10.1145/1101815.1101817]
|
| |
65
|
|
| |
66
|
Friedman, T. L., The World Is Flat: A Brief History of the Twenty-First Century. Farrar, Straus & Giroux. New York. 2005.
|
| |
67
|
|
| |
68
|
Grant, E., and H. Sackman., An Exploratory Investigation of Programmer Performance Under On-Lineand Off-Line Conditions. Report SP-2581, System Development Corp., September 1966.
|
| |
69
|
|
 |
70
|
|
| |
71
|
|
| |
72
|
Floyd, C. Records and References in Algol-W, Computer Science Department, Stanford University, Stanford, California, 1969.
|
| |
73
|
Freiman, F. R. and Park, R. E., The PRICE Software Cost Model, RCA Price Systems, Cherry Hill, NJ, Feb. 1979.
|
| |
74
|
|
| |
75
|
|
| |
76
|
Halstead, M., Elements of Software Science, North Holland, 1977.
|
| |
77
|
Harned, D., Lundquist, J. "What Transformation Means for the Defense Industry". The McKinsey Quarterly, November 3, 2003: 57--63.
|
| |
78
|
Holtzmann, G, The SPIN Model Checker, Addison Wesley, 2004.
|
| |
79
|
Hofstede, G., Culture and Organizations. McGraw Hill (1997).
|
| |
80
|
Hosier, W. A., Pitfalls and Safeguards in Real-Time Digital Systems with Emphasis on Programming, IRE Trans. Engineering Management, EM-8, June, 1961.
|
| |
81
|
|
| |
82
|
|
| |
83
|
|
| |
84
|
|
| |
85
|
Joy, B.: Why the Future Doesn't Need Us: Wired (April, 2000).
|
| |
86
|
Kurzweil, R., The Age of Spiritual Machines. Penguin Books (1999).
|
| |
87
|
|
| |
88
|
Lane, J., Valerdi, R. "Synthesizing System-of-Systems Concepts for Use in Cost Estimation," IEEE SMC, 2005.
|
| |
89
|
|
| |
90
|
|
| |
91
|
Lim, W.C., Managing Software Reuse, Prentice Hall, 1998.
|
 |
92
|
|
| |
93
|
Littlewood, B. and Verrall, J. L., A Bayesian Reliability Growth Model for Computer Software, Appl. Statist., Vol. 22, pp. 332--346 (1973).
|
| |
94
|
Maier, M., Architecting Principles for Systems of Systems, Proceedings of the Sixth Annual International Symposium, International Council on Systems Engineering, Boston, 1996, pages 567--574.
|
| |
95
|
Marca, D. and Bock, G. eds., Groupware, IEEE CS Press, 1992.
|
| |
96
|
Joseph F. Maranzano , Sandra A. Rozsypal , Gus H. Zimmerman , Guy W. Warnken , Patricia E. Wirth , David M. Weiss, Architecture Reviews: Practice and Experience, IEEE Software, v.22 n.2, p.34-43, March 2005
[doi> 10.1109/MS.2005.28]
|
| |
97
|
|
| |
98
|
Maslow, A., Motivation and Personality, Harper and Row (1954).
|
| |
99
|
Matsumoto, Y., Evaluation of the digital prediction filter applied to control a class of sevomotor by microcomputers, IEEE Transactions on IECI, Vol. IECI-23, No.4, pp.359--363(Nov. 1976).
|
| |
100
|
McCabe, T., A Software Complexity Measure, IEEE Trans. Software Engineering Vol 2, No 12, 1976.
|
| |
101
|
McCracken, D.D. A maverick approach to systems analysis and design. In System Analysis and Design: A Foundation for the 1980's, W.W. Cotterman, J.D. Gouger, N.L. Enger, and F. Harold, Eds. North-Holland, Amsterdam, 1981, pp. 446--451.
|
| |
102
|
|
| |
103
|
|
| |
104
|
|
| |
105
|
|
| |
106
|
National Institute of Standards and Technology, Gaithersberg. Reference Model for Frameworks of Software Engineering Environments, draft version 1.5 edition, 1991.
|
| |
107
|
Naur, P. and Randell, B. (Eds.). Software Engineering: Report of a conference sponsored by the NATO Science Committee (7-11 Oct. 1968), Garmisch, Germany. Brussels, Scientific Affairs Division, NATO, 1969.
|
| |
108
|
Neighbors, J.M., The Draco Approach to constructing Software from reusable components, IEEE Trans. Software Engineering, vol.SE-10, No.5, pp.564--574, September, 1984.
|
| |
109
|
Nelson, E., Management Handbook for the Estimation of Computer Programming Costs, Systems Development Corporation, Oct. 1966.
|
| |
110
|
Nunamaker, J. et. al., "Lessons from a Dozen years of Group Support Systems Research: A Discussion of lab and Field Findings," J.MIS, vol. B, no.3 (1996-1997), pp. 163--207.
|
| |
111
|
|
 |
112
|
|
| |
113
|
Paulk, M., Weber, C., Curtis, B., Chrissis, M., The Capability Maturity Model. Addison Wesley (1994).
|
| |
114
|
CORPORATE Carnegie Mellon University , Mark C. Paulk , Charles V. Weber , Bill Curtis , Mary Beth Chrissis, The capability maturity model: guidelines for improving the software process, Addison-Wesley Longman Publishing Co., Inc., Boston, MA, 1995
|
 |
115
|
|
| |
116
|
Parnas, D. L. On the design and development of program families, IEEE Trans. Software Engineering 2(1), 1--9, 1976.
|
| |
117
|
Parnas, D. L. Designing software for ease of extension and contraction, IEEE Trans. Software Engineering SE-5(2), 128--138, 1979.
|
 |
118
|
|
| |
119
|
|
 |
120
|
|
 |
121
|
|
| |
122
|
PITAC (President's Information Technology Advisory Committee), Report to the President: Information Technology Research: Investing in Our Future (1999).
|
| |
123
|
Poore, J. H. and Carmen J. Trammell, Bringing Respect to Testing Through Statistical Science, American Programmer, Vol. 10, No. 8, August, 1997.
|
| |
124
|
Poulin, J.S., Measuring Software Reuse, Addison Wesley, 1997.
|
| |
125
|
Putnam, L. H., A General Empirical Solution to the Macro Software Sizing and Estimating Problem, IEEE Trans. Software Engineering, Vol 4, No 4, 1978.
|
| |
126
|
Putman, J. Architecting with RM-ODP. Prentice Hall, 2001.
|
| |
127
|
|
| |
128
|
|
| |
129
|
|
| |
130
|
Ross, D. Structured Analysis (SA): A Language for Communicating Ideas. IEEE Trans. Software Engineering, SE-3, 1 (Jan. 1977). 16--34.
|
| |
131
|
Royce, W. W., Managing the Development of Large Software Systems: Concepts and Techniques, Proceedings of WESCON, August 1970.
|
| |
132
|
|
 |
133
|
|
| |
134
|
Sage, A., Cuppan, C., On the Systems Engineering and Management of Systems of Systems and Federations of Systems, Information, Knowledge, and Systems Management, v. 2 (2001), pages 325--345.
|
| |
135
|
|
| |
136
|
|
| |
137
|
|
| |
138
|
Shooman, M.L., Probabilistic Models for Software Reliability Prediction. Statistical Computer Performance Evaluation, Academic Press, New York, pp. 485--502 (1972).
|
| |
139
|
|
| |
140
|
Standish Group, Extreme Chaos, http://www.standishgroup.com (2001).
|
| |
141
|
|
| |
142
|
Teichroew, D. and Sayani, H. Automation of system building. Datamation 17,16 (August 15, 1971), 25--30.
|
| |
143
|
The Open Road: A History of Free Software, http://www.sdmagazine.com/opensourcetimeline/sources.htm
|
| |
144
|
Toulmin, S., Cosmopolis, University of Chicago Press (1992).
|
 |
145
|
|
| |
146
|
Webster's Collegiate Dictionary, Merriam-Webster, 2002.
|
| |
147
|
|
| |
148
|
Wirth, N. The programming language Pascal. Acta Infformatica, 1:35--63, 1971.
|
| |
149
|
|
| |
150
|
Wulf, W. A., London, R., and Shaw, M., An Introduction to the Construction and Verification of Alphard Program. IEEE Trans. Software Engineering, SE-2, 1976, pp. 253--264.
|
| |
151
|
|
| |
152
|
Yang, Y., Boehm, B., and Port, D. A Contextualized Study of COTS-Based E-Service Projects. Proceedings, Software Process Workshop 2005 (May, 2005).
|
| |
153
|
Yourdon E. and Constantine, L. L., Structured Design. Yourdon Press, 1975.
|
| |
154
|
|
CITED BY 5
|
|
|
|
|
|
|
|
Huy N. Pham , Qusay H. Mahmoud , Alexander Ferworn , Alireza Sadeghian, Applying Model-Driven Development to Pervasive System Engineering, Proceedings of the 1st International Workshop on Software Engineering for Pervasive Computing Applications, Systems, and Environments, p.7, May 20-26, 2007
|
|
|
|
|
|
Willem-Jan van den Heuvel , Olaf Zimmermann , Frank Leymann , Patricia Lago , Ina Schieferdecker , Uwe Zdun , Paris Avgeriou, Software service engineering: Tenets and challenges, Proceedings of the 2009 ICSE Workshop on Principles of Engineering Service Oriented Systems, p.26-33, May 18-19, 2009
|
|