Software Design: Past and Present

Part of the Integrated Series in Information Systems book series (ISIS, volume 22)


The design of software has been one of the greatest challenges in the development of information systems. From its fairly primitive beginnings in the form of toggling on/off switches and punching holes in paper tapes, software has come to dominate the cost of all forms of information systems. Yet, instead of gaining increasing mastery over the processes of software design, we continue to be challenged by new software technologies, greater quality expectations, and higher complexities of integrated systems. Thus, software design remains an essentially wicked problem that is typically crafted to each software-intensive system developed.


Business Process Software Development Software Architecture Software Development Process Business Application 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. Agile Manifesto (2001) Manifesto for Agile Software Development,
  2. Bach, M. (1987) The Design of the UNIX Operating System, Prentice Hall, Englewood Cliffs, NJ.Google Scholar
  3. Backus, J. (1979) The history of FORTRAN I, II, and III, IEEE Annuals of the History of Computing 1 (1), pp. 21–37.Google Scholar
  4. Barrett, D., L. Clarke, P. Tarr, and A. Wise (1996) A framework for event-based software integration, ACM Transactions on Software Engineering and Methodology 5 (4), pp. 378–421.Google Scholar
  5. Baskerville, R. and J. Stage (1996) Controlling prototype development through risk analysis, MIS Quarterly 20 (4), pp. 481–504.Google Scholar
  6. Bass, L., P. Clements, and R. Kazman (2003) Software Architecture in Practice, 2nd edn, Addison-Wesley, Reading, MA.Google Scholar
  7. Beck, K. and C. Andres (2005) Extreme Programming Explained: Embrace Change, 2nd ed, XP Series, Addison-Wesley, Inc., Boston, MA.Google Scholar
  8. Bergin, T. and R. Gibson (eds) (1996) History of Programming Languages II, ACM Press, Addison-Wesley, Reading, MA.Google Scholar
  9. Boehm, B. (1988) A spiral model of software development and enhancement, IEEE Computer 21 (5), pp. 61–72.Google Scholar
  10. Boehm, B. and R. Turner (2004) Balancing Agility and Discipline: A Guide for the Perplexed, Addison-Wesley, Inc., Boston, MA.Google Scholar
  11. Boehm, C. and G. Jacopini (1966) Flow diagrams, turing machines, and languages with only two formation rules, Communications of the ACM 9 (5), pp. 366–371.Google Scholar
  12. Booch, G., R. Maksimchuk, M. Engel, B. Young, J. Conallen, and K. Houston, (2007) Object-Oriented Analysis and Design with Applications, 3rd edn, Addison-Wesley, Inc., Boston, MA.Google Scholar
  13. Brown, A. (2000) Large Scale Component Based Development, Prentice-Hall PTR, Upper Saddle River, NJ.Google Scholar
  14. Buxton, J. and B. Randell (1970) Software Engineering Techniques: Report on a Conference Sponsored by the NATO Science Committee, Rome, Italy, 1969, NATO.Google Scholar
  15. Campbell-Kelly, M. and W. Aspray (1996) Computer: A History of the Information Machine, Basic Books, New York.Google Scholar
  16. Codd, E. (1970) A relational model of data for large shared data banks, Communications of the ACM 13 (6), pp. 377–387.Google Scholar
  17. Cusumano, M. and D. Yoffie (1999) Software development on Internet time, IEEE Computer 32 (10), pp. 60–69.CrossRefGoogle Scholar
  18. Dijkstra, E. (1968) The Go-To statement considered harmful, Communications of the ACM 11 (3), pp. 147–148.Google Scholar
  19. Erl, T. (2005) Service-Oriented Architecture (SOA): Concepts, Technology, and Design, Prentice-Hall PTR, Upper Saddle River, NJ.Google Scholar
  20. Fitzgerald, B., N. Russo, and T. O’Kane (2003) Software development tailoring at Motorola, Communications of the ACM 46 (4), pp. 65–70.CrossRefGoogle Scholar
  21. Fitzgerald, B., G. Hartnett, and K. Conboy (2006) Customizing agile methods to software practices at Intel Shannon, European Journal of Information Systems 15 (2), pp. 200–213.Google Scholar
  22. Fowler, M. (2003) UML Distilled: A Brief Guide to the Standard Object Modeling Language, 3rd edn, Addison-Wesley, Inc., Boston, MA.Google Scholar
  23. Gerhart, S., D. Craigen, and A. Ralston (1993) Observation on industrial practice using formal methods, Proceedings of the 15 th International Conference on Software Engineering, Computer Society Press, Silver Spring, MD.Google Scholar
  24. Gosling, J., B. Joy, G. Steele, and G. Bracha (2005) The Java Language Specification, 3rd edn, Addison-Wesley, Boston, MA.Google Scholar
  25. Gray, J. (1996) Evolution of data management, IEEE Computer 29 (10), pp. 38–46.Google Scholar
  26. Haeckel, S. and R. Nolan (1996) Managing by Wire: Using IT to Transform a Business from “Make and Sell” to “Sense and Respond”,  Chapter 7 in J. Luftman (ed.) Competing in the Information Age: Strategic Alignment in Practice, Oxford University Press, Oxford.Google Scholar
  27. Harris, M., A. Hevner, and R. Collins (2009a) Controls in flexible software development, Communications of the Association for Information Systems 24 (43), pp. 757–776.Google Scholar
  28. Harris, M., R. Collins, and A. Hevner (2009b) Control of flexible software development under uncertainty, Information Systems Research: Special Issue on Flexible and Distributed Information Systems Development 20 (3), pp. 400–419.Google Scholar
  29. Henderson, J. and N. Venkatraman (1993) Strategic alignment: leveraging information technology for transforming organizations,” IBM Systems Journal 32 (1), pp. 4–16.Google Scholar
  30. Hevner, A. and D. Berndt (2000) Eras of Business Computing, in M. Zelkowitz (ed.) Advances in Computers, Vol. 52, Academic Press, Inc., San Diego, CA, pp. 1–90.Google Scholar
  31. Jacobson, I. and P. Ng (2005) Aspect-Oriented Software Development with Use Cases, Addison-Wesley, Inc., Boston, MA.Google Scholar
  32. Kast, F. and J. Rosenzweig (1972) General systems theory: applications for organization and management, Academy of Management Journal 15 (3), pp. 447–465.Google Scholar
  33. Kruchten, P. (2000) The Rational Unified Process: An Introduction, 2nd edn, Addison-Wesley, Inc., Reading, MA.Google Scholar
  34. Luqi and J. Goguen (1997) Formal methods: promises and problems, IEEE Software 14 (1), pp. 73–85.Google Scholar
  35. Martin, J. (1989) Information Engineering: Books 1-3, Prentice-Hall, Englewood Cliffs, NJ.Google Scholar
  36. Mills, H. (1986) Structured programming: retrospect and prospect, IEEE Software 3 (6), pp. 58–66.Google Scholar
  37. Mills, H., R. Linger, and A. Hevner (1986) Principles of Information Systems Analysis and Design, Academic Press, Inc., Boston, MA.Google Scholar
  38. Myers, B. (1998) A brief history of human-computer interaction technology, Interactions 5 (2), pp. 44–54.Google Scholar
  39. Naur, P. and B. Randell (1969) Software Engineering: Report on a Conference Sponsored by the NATO Science Committee, Garmisch, Germany, 1968, NATO.Google Scholar
  40. Orr, K. (1977) Structured Systems Development, Yourdon Press, Prentice-Hall, Englewood Cliffs, NJ.Google Scholar
  41. Paulk, M. (ed.) (1994) The Capability Maturity Model: Guidelines for Improving the Software Process, Addison-Wesley, Reading, MA.Google Scholar
  42. Peebles, R. and E. Manning (1978) System architecture for distributed data management, IEEE Computer 11 (1), pp. 40–47.Google Scholar
  43. Pfleeger, S. and L. Hatton (1997) Investigating the influence of formal methods, IEEE Computer 30 (2), pp. 33–43.Google Scholar
  44. Prowell, S., C. Trammell, R. Linger, and J. Poore (1999) Cleanroom Software Engineering: Technology and Process, Addison-Wesley, Inc., Reading, MA.Google Scholar
  45. Ritchie, D. and K. Thompson (1974) The UNIX time-sharing system, Communications of the ACM 17 (7), pp. 365–375.CrossRefGoogle Scholar
  46. Royce, W. (1970) Managing the development of large software systems: concepts and techniques, Proceedings of IEEE WESTCON, Los Angeles.Google Scholar
  47. Scherr, A. (1978) Distributed data processing, IBM Systems Journal 17 (4), pp. 324–343.Google Scholar
  48. Schwaber, K. (2004) Agile Project Management with Scrum, Microsoft Press, Inc, Redmond, WA.Google Scholar
  49. Shaw, M. and D. Garlan (1996) Software Architecture: Perspectives on an Emerging Discipline, Prentice-Hall, Englewood Cliffs, NJ.Google Scholar
  50. Stevens, W., G. Myers, and L. Constantine (1974) Structured design, IBM Systems Journal 13 (2), pp. 115–139.Google Scholar
  51. Stonebraker, M. (1996) Object-Relational DBMSs: The Next Great Wave, Morgan Kaufmann, San Francisco, CA.Google Scholar
  52. Taylor, R., N. Medvidovic, and E. Dashofy (2009) Software Architecture: Foundations, Theory and Practice, John Wiley & Sons, Hoboken, NJ.Google Scholar
  53. Trammell, C., M. Pleszkoch, R. Linger, and A. Hevner (1996) The incremental development process in cleanroom software engineering, Decision Support Systems 17 (1), pp. 55–71.Google Scholar
  54. Wexelblat, R. (ed.) (1981) History of Programming Languages I, Academic Press, Boston, MA.Google Scholar
  55. Wing, J. (1990) A Specifier’s introduction to formal methods, IEEE Computer 23 (9), pp. 10–23.Google Scholar
  56. Yourdon, E. (1989) Modern Structured Analysis, Yourdon Press, Prentice-Hall, Englewood Cliffs, NJ.Google Scholar
  57. Zachman, J. (1987) A framework for information systems architecture,” IBM Systems Journal 26 (3), pp. 276–292.Google Scholar

Copyright information

© Springer-Verlag US 2010

Authors and Affiliations

  1. 1.College of BusinessUniversity of South FloridaTampaUSA
  2. 2.School of Information Systems and TechnologyClaremont Graduate UniversityClaremontUSA

Personalised recommendations