Abstract
A variety of programming accidents, i.e., models, methods, artifacts, and tools, are examined to determine that each has a step that programmers find very painful. Consequently, they habitually avoid or postpone the step. This pain is generally where the programming accident meets requirements, the essence of software, and their relentless volatility. Hence, there is no silver bullet.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Principles: The Agile Alliance. The Agile Alliance (2001), http://www.agilealliance.org/
Ambler, S.W.: Requirements Modeling. The Official Agile Modeling (AM) Site (2001), http://www.agilemodeling.com/essays/agileRequirementsModeling.htm
Ambler, S.W.: Agile Software Development. The Official Agile Modeling (AM) Site (2001), http://www.agilemodeling.com/essays/agileSoftwareDevelopment.htm
Andriole, S.J.: Fast Cheap Requirements: Prototype or Else! IEEE Software 14(2), 85–87 (1994)
Balzer, R.M.: Transformational Implementation: AnExample. IEEE Transactions on Software Engineering SE-7(1), 3–14 (1981)
Beck, K.: Extreme Programming Explained: Embrace Change. Addison-Wesley, Reading (1999)
Belady, L.A., Lehman, M.M.: A Model of Large Program Development. IBM Systems Journal 15(3), 225–252 (1976)
Belady, L.A., Lehman, M.M.: Program System Dynamics or the Metadynamics of Systems in Maintenance and Growth. In: Lehman, M.M., Belady, L.A. (eds.) Program Evolution, Academic Press, London (1985)
Berry, D.M.: An Example of Structured Programming. UCLA Computer Science Department Quarterly 2(3) (July 1974)
Berry, D.M.: The Application of the Formal Development Methodology to Data Base Design and Integrity Verification. UCLA Computer Science Department Quarterly 9(4) (Fall 1981)
Berry, D.M.: Program Proofs Produced Practically. In: Tutorial Notes of Fifth International Conference on Software Engineering, San Diego, CA (March 1981)
Berry, D.M.: An Ina Jo Proof Manager for the Formal Development Method. In: Proceedings of Verkshop III, Software Engineering Notes (August 1985)
Berry, D.M., Lawrence, B.: Requirements Engineering. IEEE Software 15(2), 26–29 (1998)
Berry, D.M.: Software and House Requirements Engineering: Lessons Learned in Combating Requirements Creep. Requirements Engineering Journal 3(3 & 4), 242–244 (1998)
Boehm, B.W.: Software Engineering Economics. Prentice-Hall, Englewood Cliffs (1981)
Brooks Jr., F.P.: No Silver Bullet. In: Kugler, H.-J. (ed.) Information Processing 1986, IFIP. Elsevier Science Publishers B.V. North-Holland (1986)
Brooks Jr., F.P.: No Silver Bullet. Computer 20(4), 10–19 (1987)
Brooks Jr., F.P.: The Mythical Man-Month: Essays on Software Engineering, 2nd edn. Addison-Wesley, Reading (1995)
Burgess-Yakemovic, K.C., Conklin, J.: Report on Development Project Use of an Issue-Based Information System. In: Proceedings of the ACM Conference on CSCW, Los Angeles, CA (October 1990)
Carroll, J., Rosson, M.B., Chin, G., Koenemann, J.: Requirements Development in Scenario-Based Design. IEEETransactions on Software Engineering SE-24(12), 1156–1170 (1998)
CECOM: Requirements Engineering and Rapid Prototyping Workshop Proceedings. Eatontown, NJ, U.S. Army CECOM (1989)
Chan, W., Anderson, R.J., Beame, P., Burns, S., Modugno, F., Notkin, D., Reese, J.D.: Model Checking Large Software Specifications. IEEE Transactions on Software Engineering SE- 24(7), 498–520 (1998)
Dahl, O.-J., Dijkstra, E.W., Hoare, C.A.R.: Structured Programming. Academic Press, London (1972)
Daugulis, A.: Time Aspects in Requirements Engineering: or ‘Every Cloud has a Silver Lining. Requirements Engineering 5(3), 137–143 (2000)
Dunsmore, A., Roger, M., Wood, M.: Object-Oriented Inspection in the Face of Delocalization. In: Proceedings of the Twenty-Second International Conference on Software Engineering (ICSE 2000), Limerick, Ireland, June 2000, pp. 467–476 (2000)
Egyed, A.: A Scenario-Driven Approach to Traceability. In: Proceedings of the Twenty-Third International Conference on Software Engineering (ICSE 2001), Toronto, ON, Canada, June 2001, pp. 132–132 (2001)
Elspas, B., Levitt, K.N., Waldinger, R.J., Waksman, A.: An Assessment of Techniques for Proving Program Correctness. Computing Surveys 4(2), 81–96 (1972)
Elssamadisy, A., Schalliol, G.: Recognizing and Responding to “Bad Smells” in Extreme Programming. In: Proceedings of the Twenty-Fourth International Conference on Software Engineering (ICSE 2002), Orlando, FL (May 2001)
Fagan, M.E.: Design and Code Inspections to Reduce Errors in Program Development. IBM Systems Journal 15(3), 182–211 (1976)
Feldman, S.I.: Make—A Program for Maintaining Computer Programs. Software—Practice and Experience 9(4), 224–265 (1979)
Forsberg, K., Mooz, H.: System Engineering Overview. In: Thayer, R.H., Dorfman, M. (eds.) Software Requirements Engineering, 2nd edn., IEEE Computer Society, Washington (1997)
Gilb, T., Graham, D.: Software Inspection. AddisonWesley, Wokingham (1993)
Glass, R.L.: The Realities of Software Technology Payoffs. Communications of the ACM 42(2), 74–79 (1999)
Goguen, J.A., Tardo, J.: An Introduction to OBJ: A Language for Writing and Testing Formal Algebraic Program Specifications. In: Proceedings Conference on Specifications of Reliable Software, Boston (1979)
Gotel, O.C.Z., Finkelstein, A.C.W.: An Analysis of the Requirements Traceability Problem. In: Proceedings of the First International Conference on Requirements Engineering, pp. 94–101. IEEE Computer Society, Colorado Springs (1994)
Griswold, W.G., Yuan, J.J., Kato, Y.: Exploiting the Map Metaphor in a Tool for Software Evolution. In: Proceedings of the Twenty-Third International Conference on Software Engineering (ICSE 2001), Toronto, ON, Canada, June 2001, pp. 265–274 (2001)
Hall, A.: Using Formal Methods to Develop an ATC Information System. IEEE Software 13(2), 66–76 (1996)
Heiss, J.J.: The Poetry of Programming. An Interview of Richard Gabriel, java.sun.com Report December 3 (2002) , http://java.sun.com/features/2002/11/gabriel_qa.html
Hester, S.D., Parnas, D.L., Utter, D.F.: Using Documentation as a Software Design Medium. The Bell System Technical Journal 69(8) (October 1981)
Highsmith, J., Cockburn, A.: Agile Software Development: The Business of Innovation. IEEE Computer 34(9), 120–122 (2001)
Hoare, C.A.R.: An Axiomatic Basis for Computer Programming. Communications of the ACM 12(10), 576–580, 585 (1969)
Jackson, M.A.: The Role of Architecture in Requirements Engineering. In: Proceedings of the First International Conference on Requirements Engineering, April 18–22, p. 241. IEEE Computer Society, Colorado Springs (1994)
Kemmerer, R.A.: Formal Verification of the UCLA Security Kernel: Abstract Model, Mapping Functions, Theorem Generation, and Proofs. Ph.D. Dissertation, Computer Science Department, UCLA (1979)
Kemmerer, R.A.: Testing Formal Specifications to Detect Design Errors. IEEE Transactions on Software Engineering SE-11(1), 32–43 (1985)
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C.V., Loingtier, J.-M., Irwin, H.: Aspect-Oriented Programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)
Knuth, D.E.: The Art of Computer Programming: Fundamental Algorithms. Addison Wesley, Reading (1969)
Knuth, D.E.: The Art of Computer Programming: Seminumerical Algorithms. Addison Wesley, Reading (1971)
Knuth, D.E.: The Art of Computer Programming: Sorting and Searching. Addison Wesley, Reading (1973)
Knuth, D.E.: Theory and Practice. Theoretical Computer Science 90(1), 1–15 (1991)
Lehman, M.M.: Programs, Life Cycles, and Laws of Software Evolution. Proceedings of the IEEE 68(9), 1060–1076 (1980)
Lehman, M.M., Ramil, J.F.: The Impact of Feedback in the Global Software Process. Journal of Systems and Software 46(2-3), 123–134 (1999)
Leite, J.C.S.P., Franco, A.P.M.: A Strategy for Conceptual Model Acquisition. In: Proceedings of the First IEEE International Symposium on Requirements Engineering, San Diego, CA, January 1993, pp. 243–246 (1993)
Lientz, B.P., Swanson, E.B.: Characteristics of Application Software Maintenance. Communications of the ACM 21(6), 466–481 (1978)
Manna, Z., Waldinger, R.J.: Toward Automatic Program Synthesis. Communications of the ACM 14(3), 151–165 (1971)
McConnell, S.: Daily Build and Smoke Test. IEEE Software 13(4), 143–144 (1996)
Moriconi, M.S.: A Designer/Verifier’s Assistant. IEEE Transactions on Software Engineering SE-5(4), 387–401 (1979)
Myers, G.J.: The Art of Software Testing. Wiley-Interscience, NewYork (1979)
Müller, M.M., Tichy, W.F.: Case Study: Extreme Programming in a University Environment. In: Proceedings of the Twenty-Third International Conference on Software Engineering (ICSE 2001), Toronto, ON, Canada, June 2001, pp. 537–544 (2001)
Naur, P., Randell, B.: Software Engineering: Report on a Conference Sponsored by the NATO Science Commission, Garmisch, Germany, October 7–11 (1968); Scientific Affairs Division, NATO, Brussels, Belgium (January 1969)
Nuseibeh, B., Easterbrook, S.: Requirements Engineering: A Roadmap. In: Finkelstein, A. (ed.) The Future of Software Engineering, June 2000, ACM, Limerick (2000)
Parnas, D.L.: On the Criteria to be Used in Decomposing Systems into Modules. Communications of the ACM 15(2), 1053–1058 (1972)
Parnas, D.L., Clements, P.C.: A Rational Design Process: How and Why to Fake It. IEEE Transactions on Software Engineering SE-12(2), 196–257 (1986)
Paulk, M.C., Curtis, B., Chrissis, M.B., Weber, C.V.: Key Practices of the Capability Maturity Model. Technical Report, CMU/SEI-93-TR-25, Software Engineering Institute (February 1993)
Pressman, R.: Software According to Niccolò Machiavelli. IEEE Software 12(1), 101–102 (1995)
Raymond, E.: Linux and Open-Source Success. IEEE Software 26(1), 85–89 (1999)
Rochkind, M.J.: The Source Code Control System. IEEE Transactions on Software Engineering SE-1(4), 364–370 (1975)
Royce, W.W.: Managing the Development of Large Software Systems: Concepts and Techniques. In: Proceedings of WesCon (August 1970)
Schach, S.R.: Object-Oriented and Classical Software Engineering, 5th edn. McGraw-Hill, New York (2002)
Schwaber, K.: Agile Processes—Emergence of Essential Systems. The Agile Alliance (2002), http://www.agilealliance.org/articles/
Tichy, W.: RCS—A System for Version Control. Software—Practice and Experience 15(7), 637–654 (1985)
Weidenhaupt, K., Pohl, K., Jarke, M., Haumer, P.: Scenarios in System Development: Current Practice. IEEE Software 15(2), 34–45 (1998)
Weinberg, G.M.: The Psychology of Computer Programming. van Nostrand Reinhold, New York (1971)
Wieringa, R.: Software Requirements Engineering: the Need for Systems Engineering and Literacy. Requirements Engineering Journal 6(2), 132–134 (2001)
Wing, J.M.: A Specifier’s Introduction to Formal Methods. IEEE Computer 23(9), 8–24 (1990)
Wirth, N.: Program Development by Stepwise Refinement. Communications of the ACM 14(4), 221–227 (1971)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2004 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Berry, D.M. (2004). The Inevitable Pain of Software Development: Why There Is No Silver Bullet. In: Wirsing, M., Knapp, A., Balsamo, S. (eds) Radical Innovations of Software and Systems Engineering in the Future. RISSEF 2002. Lecture Notes in Computer Science, vol 2941. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-24626-8_4
Download citation
DOI: https://doi.org/10.1007/978-3-540-24626-8_4
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-21179-2
Online ISBN: 978-3-540-24626-8
eBook Packages: Springer Book Archive