Skip to main content

Software Design: Past and Present

  • Chapter
  • First Online:
Design Research in Information Systems

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

  • 102k Accesses

Abstract

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.

A fact in itself is nothing. It is valuable only for the idea attached to it, or for the proof which it furnishes.

– Claude Bernard

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

eBook
USD 16.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 99.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 139.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  • Agile Manifesto (2001) Manifesto for Agile Software Development, http://agilemanifesto.org.

  • Bach, M. (1987) The Design of the UNIX Operating System, Prentice Hall, Englewood Cliffs, NJ.

    Google Scholar 

  • 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 

  • 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 

  • Baskerville, R. and J. Stage (1996) Controlling prototype development through risk analysis, MIS Quarterly 20 (4), pp. 481–504.

    Google Scholar 

  • Bass, L., P. Clements, and R. Kazman (2003) Software Architecture in Practice, 2nd edn, Addison-Wesley, Reading, MA.

    Google Scholar 

  • Beck, K. and C. Andres (2005) Extreme Programming Explained: Embrace Change, 2nd ed, XP Series, Addison-Wesley, Inc., Boston, MA.

    Google Scholar 

  • Bergin, T. and R. Gibson (eds) (1996) History of Programming Languages II, ACM Press, Addison-Wesley, Reading, MA.

    Google Scholar 

  • Boehm, B. (1988) A spiral model of software development and enhancement, IEEE Computer 21 (5), pp. 61–72.

    Google Scholar 

  • Boehm, B. and R. Turner (2004) Balancing Agility and Discipline: A Guide for the Perplexed, Addison-Wesley, Inc., Boston, MA.

    Google Scholar 

  • 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 

  • 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 

  • Brown, A. (2000) Large Scale Component Based Development, Prentice-Hall PTR, Upper Saddle River, NJ.

    Google Scholar 

  • 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 

  • Campbell-Kelly, M. and W. Aspray (1996) Computer: A History of the Information Machine, Basic Books, New York.

    Google Scholar 

  • Codd, E. (1970) A relational model of data for large shared data banks, Communications of the ACM 13 (6), pp. 377–387.

    Google Scholar 

  • Cusumano, M. and D. Yoffie (1999) Software development on Internet time, IEEE Computer 32 (10), pp. 60–69.

    Article  Google Scholar 

  • Dijkstra, E. (1968) The Go-To statement considered harmful, Communications of the ACM 11 (3), pp. 147–148.

    Google Scholar 

  • Erl, T. (2005) Service-Oriented Architecture (SOA): Concepts, Technology, and Design, Prentice-Hall PTR, Upper Saddle River, NJ.

    Google Scholar 

  • Fitzgerald, B., N. Russo, and T. O’Kane (2003) Software development tailoring at Motorola, Communications of the ACM 46 (4), pp. 65–70.

    Article  Google Scholar 

  • 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 

  • Fowler, M. (2003) UML Distilled: A Brief Guide to the Standard Object Modeling Language, 3rd edn, Addison-Wesley, Inc., Boston, MA.

    Google Scholar 

  • 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 

  • Gosling, J., B. Joy, G. Steele, and G. Bracha (2005) The Java Language Specification, 3rd edn, Addison-Wesley, Boston, MA.

    Google Scholar 

  • Gray, J. (1996) Evolution of data management, IEEE Computer 29 (10), pp. 38–46.

    Google Scholar 

  • 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 

  • 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 

  • 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 

  • Henderson, J. and N. Venkatraman (1993) Strategic alignment: leveraging information technology for transforming organizations,” IBM Systems Journal 32 (1), pp. 4–16.

    Google Scholar 

  • 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 

  • Jacobson, I. and P. Ng (2005) Aspect-Oriented Software Development with Use Cases, Addison-Wesley, Inc., Boston, MA.

    Google Scholar 

  • 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 

  • Kruchten, P. (2000) The Rational Unified Process: An Introduction, 2nd edn, Addison-Wesley, Inc., Reading, MA.

    Google Scholar 

  • Luqi and J. Goguen (1997) Formal methods: promises and problems, IEEE Software 14 (1), pp. 73–85.

    Google Scholar 

  • Martin, J. (1989) Information Engineering: Books 1-3, Prentice-Hall, Englewood Cliffs, NJ.

    Google Scholar 

  • Mills, H. (1986) Structured programming: retrospect and prospect, IEEE Software 3 (6), pp. 58–66.

    Google Scholar 

  • Mills, H., R. Linger, and A. Hevner (1986) Principles of Information Systems Analysis and Design, Academic Press, Inc., Boston, MA.

    Google Scholar 

  • Myers, B. (1998) A brief history of human-computer interaction technology, Interactions 5 (2), pp. 44–54.

    Google Scholar 

  • Naur, P. and B. Randell (1969) Software Engineering: Report on a Conference Sponsored by the NATO Science Committee, Garmisch, Germany, 1968, NATO.

    Google Scholar 

  • Orr, K. (1977) Structured Systems Development, Yourdon Press, Prentice-Hall, Englewood Cliffs, NJ.

    Google Scholar 

  • Paulk, M. (ed.) (1994) The Capability Maturity Model: Guidelines for Improving the Software Process, Addison-Wesley, Reading, MA.

    Google Scholar 

  • Peebles, R. and E. Manning (1978) System architecture for distributed data management, IEEE Computer 11 (1), pp. 40–47.

    Google Scholar 

  • Pfleeger, S. and L. Hatton (1997) Investigating the influence of formal methods, IEEE Computer 30 (2), pp. 33–43.

    Google Scholar 

  • Prowell, S., C. Trammell, R. Linger, and J. Poore (1999) Cleanroom Software Engineering: Technology and Process, Addison-Wesley, Inc., Reading, MA.

    Google Scholar 

  • Ritchie, D. and K. Thompson (1974) The UNIX time-sharing system, Communications of the ACM 17 (7), pp. 365–375.

    Article  Google Scholar 

  • Royce, W. (1970) Managing the development of large software systems: concepts and techniques, Proceedings of IEEE WESTCON, Los Angeles.

    Google Scholar 

  • Scherr, A. (1978) Distributed data processing, IBM Systems Journal 17 (4), pp. 324–343.

    Google Scholar 

  • Schwaber, K. (2004) Agile Project Management with Scrum, Microsoft Press, Inc, Redmond, WA.

    Google Scholar 

  • Shaw, M. and D. Garlan (1996) Software Architecture: Perspectives on an Emerging Discipline, Prentice-Hall, Englewood Cliffs, NJ.

    Google Scholar 

  • Stevens, W., G. Myers, and L. Constantine (1974) Structured design, IBM Systems Journal 13 (2), pp. 115–139.

    Google Scholar 

  • Stonebraker, M. (1996) Object-Relational DBMSs: The Next Great Wave, Morgan Kaufmann, San Francisco, CA.

    Google Scholar 

  • Taylor, R., N. Medvidovic, and E. Dashofy (2009) Software Architecture: Foundations, Theory and Practice, John Wiley & Sons, Hoboken, NJ.

    Google Scholar 

  • 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 

  • Wexelblat, R. (ed.) (1981) History of Programming Languages I, Academic Press, Boston, MA.

    Google Scholar 

  • Wing, J. (1990) A Specifier’s introduction to formal methods, IEEE Computer 23 (9), pp. 10–23.

    Google Scholar 

  • Yourdon, E. (1989) Modern Structured Analysis, Yourdon Press, Prentice-Hall, Englewood Cliffs, NJ.

    Google Scholar 

  • Zachman, J. (1987) A framework for information systems architecture,” IBM Systems Journal 26 (3), pp. 276–292.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Alan Hevner .

Rights and permissions

Reprints and permissions

Copyright information

© 2010 Springer-Verlag US

About this chapter

Cite this chapter

Hevner, A., Chatterjee, S. (2010). Software Design: Past and Present. In: Design Research in Information Systems. Integrated Series in Information Systems, vol 22. Springer, Boston, MA. https://doi.org/10.1007/978-1-4419-5653-8_8

Download citation

Publish with us

Policies and ethics