ACM Home Page
Please provide us with feedback. Feedback
A view of 20th and 21st century software engineering
Full text PdfPdf (329 KB)
Source International Conference on Software Engineering archive
Proceedings of the 28th international conference on Software engineering table of contents
Shanghai, China
SESSION: Keynote talks table of contents
Pages: 12 - 29  
Year of Publication: 2006
ISBN:1-59593-375-1
Author
Barry Boehm  University of Southern California, University Park Campus, Los Angeles
Sponsors
ACM: Association for Computing Machinery
SIGSOFT: ACM Special Interest Group on Software Engineering
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 282,   Downloads (12 Months): 2157,   Citation Count: 5
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1134285.1134288
What is a DOI?

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
 
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
 
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
 
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
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