Barry Boehm "Industrial Software Metrics: A Top-Ten List," IEEE Software, Volume 4, Number 5, September 1987, pp. 84-85 (pdf)
I am always fascinated by Top-Ten lists. So, when Vincent Shen asked me to write this column, I thought I would present my candidate Top-Ten list of software metric relationships, in terms of their value in industrial situations.
Added June 13th, 2008
Barry Boehm, "Improving Software Productivity," IEEE Computer, Volume 20, Issue 9, September 1987, pp. 43-57 (pdf)
Computer hardware productivity continues to increase by leaps and bounds, while software productivity seems to be barely holding its own. Central processing units, random access memories, and mass memories improve their price-performance ratios by orders of magnitude per decade, while software projects continue to grind out production-engineered code at the same old rate of one to two delivered lines of code per man-hour.
Yet, if software is judged by the same standards as hardware, its productivity looks pretty good. One can produce a million copies of Lotus 1-2-3 at least as cheaply as a million copies of the Intel 286. Database management systems that cost $5 million 20 years ago can now be purchased for $99.95.
The commodity for which productivity has been slow to increase is custom software. Clearly, if you want to improve your organization's software price-performance, one major principle is "Don't build custom software where mass-produced software will satisfy your needs. " However, even with custom software, a great deal is known about how to improve its productivity, and even increasing productivity by a factor of 2 will make a significant difference for most organizations.
This article discusses avenues of improving productivity for both custom and mass-produced software. Its main sections cover the following topics:
• The importance of improving software productivity: some national, international, and organizational trends indicating the significance of improving software productivity.
• Measuring software productivity: some of the pitfalls and paradoxes in defining and measuring software productivity and how best to deal with them.
• Analyzing software productivity: identifying factors that have a strong productivity influence and those that have relatively little influence, using such concepts as software productivity ranges, the software value chain, and the software productivity opportunity tree.
• Improving software productivity: using the opportunity tree as a framework for describing specific productivity improvement steps and their potential payoffs.
• Software productivity trends and conclusions.
Added June 18th, 2008
Richard N. Taylor, Deborah A. Baker, Frank C. Belz, Barry Boehm, Lori A. Clarke, David A. Fischer, Leon J. Osterweil, Richard Selby, Jack C. Wileden, Alexander L. Wolf, Michal Young, "Next Generation Software Environment: Principles, Problems, and Research," Dep. Inform. Comput. Sci., Univ. Calif., Irvine, CA, Tech. Rep. 87-16, July 1987, also issued as Arcadia Doc. UCI-87-10, Univ. Colorado Tech. Rep. CU-CS-370- 87, Univ. Mass., Amherst, Tech. Rep. 87-63, and Incremental Systems Corp. Tech. Rep. 87-7-1 (pdf)
The past decade has seen a burgeoning of research and development in software environments. Conferences have been devoted to the topic of practical environments, journal papers produced, and commercial systems sold. Given all the activity, one might expect a great deal of consensus on issues, approaches, and techniques. This is not the case, however. Indeed, the term "environment" is still used in a variety of conflicting ways. Nevertheless substantial progress has been made and we are at least nearing consensus on many critical issues.
The purpose of this paper is to characterize environments, describe several important principles that have emerged in the last decade or so, note current open problems, and describe some approaches to these problems, with particular emphasis on the activities of one large-scale research program, the Arcadia project. Consideration is also given to two related topics: empirical evaluation and technology transition. That is, how can environments and their constituents be evaluated, and how can new developments be moved effectively into the production sector?
Added June 18th, 2008
Barry Boehm, "Software Process Management: Lessons Learned from History," Proceedings of the 9th international conference on Software Engineering, International Conference on Software Engineering, Monterey, California, 1987, pp. 296-298 (pdf)
Regarding history, George Santayana once said, "Those who cannot remember the past are condemned to repeat it."
I have always been dissatisfied with that statement. It is too negative. History has positive experiences too. They are the ones we would like both to remember and to repeat.
The three papers in this session are strong examples of positive early experiences in large-scale software engineering. The papers are:
H.D. Benington, "Production of Large Computer Programs," Proceedings, ONR Symposium, June 1956.
W.A. Hosier, "Pitfalls and Safeguards in Real-Time Digital Systems with Emphasis on Programming," IRE Transactions on Engineering Management, June, 1961.
W.W. Royce, "Managing the Development of Large Software Systems: Concepts and Techniques," Proceedings, WESCON, August 1970.
Given the short lifespan of the software field, they can certainly be called "historic." Indeed, since many people date the software engineering field from the NATO Garmisch conference in 1968, two of them can even be called "prehistoric." They are certainly sufficiently old that most people in the software engineering field have not been aware of them. The intent of this session is to remedy this situation by reprinting them in the Conference Proceedings, and by having the authors (or, in one case, Hosier's colleague J.P. Haverty) discuss both the lessons from their papers which are still equally valid today, and the new insights and developments which have happened in the interim.
Added June 18th, 2008
Copyright 2008 The University
of Southern California
The written material, text,
graphics, and software available on this page and all related
pages may be copied, used, and distributed freely as long as the
University of Southern California as the source of the material,
text, graphics or software is always clearly indicated and such
acknowledgement always accompanies any reuse or redistribution
of the material, text, graphics or software; also permission to
use the material, text, graphics or software on these pages does
not include the right to repackage the material, text, graphics
or software in any form or manner and then claim exclusive proprietary
ownership of it as part of a commercial offering of services or
as part of a commercially offered product.