skip to main content
10.1109/FOSE.2007.21guideproceedingsArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
Article
Free Access

Software Design and Architecture The once and future focus of software engineering

Published:23 May 2007Publication History

ABSTRACT

The design of software has been a focus of software engineering research since the field's beginning. This paper explores key aspects of this research focus and shows why design will remain a principal focus. The intrinsic elements of software design, both process and product, are discussed: concept formation, use of experience, and means for representation, reasoning, and directing the design activity. Design is presented as being an activity engaged by a wide range of stakeholders, acting throughout most of a system's lifecycle, making a set of key choices which constitute the application's architecture. Directions for design research are outlined, including: (a) drawing lessons, inspiration, and techniques from design fields outside of computer science, (b) emphasizing the design of application "character" (functionality and style) as well as the application's structure, and (c) expanding the notion of software to encompass the design of additional kinds of intangible complex artifacts.

References

  1. {1} Design Research Society. ¿http://www.designresearchsociety.org/¿.Google ScholarGoogle Scholar
  2. {2} University of California, Irvine, Donald Bren School of Information and Computer Sciences, B.S. in Informatics . ¿http://www.ics.uci.edu/informatics¿.Google ScholarGoogle Scholar
  3. {3} Indiana University School of Informatics, B.S. of Informatics. ¿http://www.informatics.indiana.edu/¿.Google ScholarGoogle Scholar
  4. {4} University of Washington Information School, B.S. of Science in Informatics. ¿http://www.ischool.washington.edu¿.Google ScholarGoogle Scholar
  5. {5} Milwaukee School of Engineering, B.S. in Software Engineering. ¿http://www.msoe.edu/eecs/se/¿.Google ScholarGoogle Scholar
  6. {6} Rochester Institute of Technology Department of Software Engineering, B.S in Software Engineering. ¿http://www.se.rit.edu/degrees.html'.Google ScholarGoogle Scholar
  7. {7} d.school - The Hasso Plattner Institute of Design at Stanford. ¿http://www.stanford.edu/group/dschool/¿.Google ScholarGoogle Scholar
  8. {8} Abbott, R.J. Program Design by Informal English Descriptions. Communications of the ACM. 26(11), p. 882-894, 1983. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. {9} Abowd, G., Allen, R., and Garlan, D. Using Style to Understand Descriptions of Software Architecture. ACM SIGSOFT '93 Symposium on the Foundations of Software Engineering. p. 9-20, ACM Press. Redondo Beach, CA, December, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. {10} Agrawala, A., Krause, J., and Vestal, S. Domain-specific software architectures for intelligent guidance, navigation and control. 1992 IEEE Symposium on Computer-Aided Control System Design. p. 110- 116, March, 1992.Google ScholarGoogle ScholarCross RefCross Ref
  11. {11} Alexander, C. The Timeless Way of Building. Oxford University Press: New York, 1979.Google ScholarGoogle Scholar
  12. {12} Bajcharya, S., Ngo, T., and Lopes, C.V. On Using Net Options Value as a Value Based Design Framework. Seventh International Workshop on Economics-Driven Software Engineering Research at ICSE'05. May, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. {13} Baker, A. and van der Hoek, A. Examining Software Design from a General Design Perspective. Institute for Software Research, University of California, Irvine, Technical Report UCI-ISR-06-15, October, 2006.Google ScholarGoogle Scholar
  14. {14} Baldwin, C. Y. and Clark, K. B. Design Rules: The Power of Modularity. 1, MIT Press: Cambridge, Mass., 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. {15} Balzer, R. Tolerating Inconsistency. Thirteenth International Conference on Software Engineering. p. 158-165, IEEE Computer Society Press. Austin, Texas, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. {16} Binkley, D. Source Code Analysis: A Road Map. Future of Software Engineering 2007 Briand, L. and Wolf, A. eds. IEEE-CS Pres, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. {17} Booch, G. Object-Oriented Development. IEEE TSE. 12(2), p. 211-221, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. {18} Bowman, I. T., Holt, R. C., and Brewster, N. V. Linux as a Case Study: Its Extracted Software Architecture. Twenty-first International Conference on Software Engineering. Los Angeles, May 16-22, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. {19} Brand, S. How Buildings Learn: What Happens After They're Built. Penguin Books, 1994.Google ScholarGoogle Scholar
  20. {20} Brooks, F. P. The Mythical Man-Month: Essays on Software Engineering. 2 ed., Addison-Wesley, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. {21} Brooks Jr., F. P. The Mythical Man-Month: Essays on Software Engineering. Addison-Wesley, 1975. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. {22} Clark, H. and Brennan, S. Grounding in Communication. Perspectives on Socially Shared Cognition. American Psychological Association, 1991.Google ScholarGoogle ScholarCross RefCross Ref
  23. {23} Conklin, J. and Begeman, M.L. gIBIS: A Hypertext Tool for Exploratory Policy Discussion. ACM Transactions on Information Systems: 6(4), p. 303- 331 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. {24} Dwyer, M., Hatcliff, J., Pasareanu, C., Robby, and Visser, W. Formal Software Analysis: Emerging Trends in Software Model Checking. Future of Software Engineering 2007 Briand, L. and Wolf, A. eds. IEEE-CS Press, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. {25} Eberhart, M. Why Things Break: Understanding the World by the Way It Comes Apart. Harmony Books: New York, 2003.Google ScholarGoogle Scholar
  26. {26} Egyed, A. Consistent Adaptation and Evolution of Class Diagrams during Refinement. Seventh International Conference on Fundamental Approaches to Software Engineering. p. 37-53, Barcelona, Spain, 2005.Google ScholarGoogle Scholar
  27. {27} Fielding, R. T. and Taylor, R. N. Principled Design of the Modern Web Architecture. ACM Transactions on Internet Technology. 2(2), p. 115-150, May, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. {28} Finkelstein, A., Gabbay, D., Hunter, A., Kramer, J., and Nuseibeh, B. Inconsistency Handling in Multiperspective Specifications. IEEE TSE. 20(8), p. 569- 578, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. {29} Fischer, G. Communities of Interest: Learning through the Interaction of Multiple Knowledge Systems. User Modeling. 2001.Google ScholarGoogle Scholar
  30. {30} France, R. and Rumpe, B. Model-driven Development of Complex Systems: A Research Roadmap. Future of Software Engineering 2007 Briand, L. and Wolf, A. eds. IEEE-CS Press, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. {31} Freeman, P. The Central Role of Design in Software Engineering. Software Engineering Education Freeman, P. and Wasserman, A. eds. Springer-Verlag: New York, 1976.Google ScholarGoogle Scholar
  32. {32} Freeman, P. The Central Role of Design in Software Engineering: Implications for Research. In Software Engineering: Research Directions. p. 121-132, Academic Press, 1980.Google ScholarGoogle Scholar
  33. {33} Gamma, E., Helm, R., Johnson, R., and Vlissides, J. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Professional Computing Series. Addison-Wesley: Reading, MA, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. {34} Garlan, D., Allen, R., and Ockerbloom, J. Exploiting Style in Architectural Design Environments. ACM SIGSOFT '94 Second Symposium on the Foundations of Software Engineering. p. 175-188, ACM Press. New Orleans, LA, December, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. {35} Greenbaum, J. and Madsen, K. H. Small Changes: Starting a Participatory Design Process by Giving Participants a Voice. Participatory Design: Principles and Practices Schuler, D. and Namioka, A. eds. Lawrence Erlbaum Associates: Hillsdale, New Jersey, 1993.Google ScholarGoogle Scholar
  36. {36} Gröne, B., Knöpfel, A., and Kugel, R. Architecture recovery of Apache 1.3 -- A case study. 2002 International Conference on Software Engineering Research and Practice. Las Vegas, 2002.Google ScholarGoogle Scholar
  37. {37} Hassan, A. E. and Holt, R. C. Architecture recovery of web applications. Twenty-fourth International Conference on Software Engineering. May, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. {38} Hayes-Roth, B., Pfleger, K., Lalanda, P., Morignot, P., and Balabanovic, M. A domain-specific software architecture for adaptive intelligent systems. IEEE TSE. 21(4), p. 288-301, April, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. {39} Herbsleb, J. Global Software Engineering: The Future of Socio-technical Coordination. Future of Software Engineering 2007 Briand, L. and Wolf, A. eds. IEEE-CS Press, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. {40} Issarny, V., Caporuscio, M., and Georgantas, N. A Perspective on the Future of Middleware-Based Software Engineering Future of Software Engineering 2007 Briand, L. and Wolf, A. eds. IEEE-CS Press, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. {41} Jackson, M. System Development. Prentice Hall: Englewood Cliffs, N. J., 1983. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. {42} Jackson, M. Problem Frames. Addison-Wesley Professional: Reading, MA, 2001.Google ScholarGoogle Scholar
  43. {43} Jackson, M. A. Principles of Program Design. Academic Press, 1975. Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. {44} Jones, J. C. Design Methods: Seeds of Human Futures. John Wiley & Sons, Ltd.: New York, 1970.Google ScholarGoogle Scholar
  45. {45} Kelley, T., Littman, J., and Peters, T. The Art of Innovation: Lessons in Creativity from IDEO, America's Leading Design Firm. Currency/Doubleday: New York, 2001.Google ScholarGoogle Scholar
  46. {46} Knuth, D. E. The Art of Computer Programming, Volume 3: Sorting and Searching. Addison-Wesley, 1973. Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. {47} Knuth, D. E. Literate Programming. CSLI Lecture Notes, no. 27., Stanford, California: Center for the Study of Language and Information, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. {48} Kramer, J. and Magee, J. Self-Managed Systems: An Architectural Challenge Future of Software Engineering 2007 Briand, L. and Wolf, A. eds. IEEE-CS Press, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. {49} Kramer, J. Is Abstraction the Key to Computing? Communications of the ACM. 2007. To appear. Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. {50} Kruchten, P. The 4+1 View Model of Architecture. IEEE Software. 12(6), p. 42-50, November, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  51. {51} Kruchten, P. The Rational Unified Process: An Introduction . Addison-Wesley: Reading, MA, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. {52} Larman, C. Applying UML and Patterns. An introduction to object-oriented analysis and design and the Unified Process. 2nd ed. Prentice-Hall PTR, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. {53} Lethbridge, T., Diaz-Herrera, J., LeBlanc, R., and Thompson, J. Improving Software Practice through Education: Challenges and Future Trends Future of Software Engineering 2007 Briand, L. and Wolf, A. eds. IEEE-CS Press, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  54. {54} Lopes, C. V., Kiczales, G., Mendhekar, A., Maeda, C., Loingtier, J.-M., and Irwin, J. Aspect-Oriented Programming. European Conference on Object-Oriented Programming. Finland, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  55. {55} Mark, G., Abrams, S., and Nassif, N. Group-to-Group Distance Collaboration: Examining the "Space Between". Eighth European Conference of Computer-Supported Cooperative Work. p. 99-118, Helsinki, Finland, September 14-18, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  56. {56} Medvidovic, N. and Taylor, R. N. A Classification and Comparison Framework for Software Architecture Description Languages. IEEE TSE. 26(1), p. 70-93, January, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  57. {57} Medvidovic, N., Dashofy, E., and Taylor, R. N. Moving Architectural Description from Under the Technology Lamppost. Information and Software Technology. 49(1), p. 12-31, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  58. {58} Norman, D. A. The Design of Everyday Things. 1st Basic paperback ed., Basic Books: New York, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  59. {59} Ommering, R. v., Linden, F. v. d., Kramer, J., and Magee, J. The Koala Component Model for Consumer Electronics Software. IEEE Computer. 33(3), p. 78-85, March, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  60. {60} Osterweil, L., Ghezzi, C., Kramer, J., and Wolf, A. Editorial ACM TOSEM. 14(4), p. 381-382, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  61. {61} Parnas, D. L. On the Criteria to be Used in Decomposing Systems into Modules. Communications of the ACM. 15(12), p. 1053-1058, 1972. Google ScholarGoogle ScholarDigital LibraryDigital Library
  62. {62} Parnas, D. L. On the Design and Development of Program Families. IEEE TSE. 2(1), p. 1-9, 1976.Google ScholarGoogle Scholar
  63. {63} Parnas, D. L. Designing Software for Ease of Extension and Contraction. IEEE TSE. 5(2), p. 128-137, 1979.Google ScholarGoogle ScholarDigital LibraryDigital Library
  64. {64} Parnas, D. L., Clements, P. C., and Weiss, D. M. The Modular Structure of Complex Systems. IEEE TSE. 11(3), p. 259-266, March, 1985.Google ScholarGoogle Scholar
  65. {65} Parnas, D. L. and Clements, P. C. A Rational Design Process: How and Why to Fake It. IEEE TSE. 12(2), p. 251-257, February, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  66. {66} Perry, D. E. and Wolf, A. L. Foundations for the Study of Software Architecture. ACM SIGSOFT Software Engineering Notes. 17(4), p. 40-52, October, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  67. {67} Petroski, H. To Engineer is Human. St. Martin's Press 1985.Google ScholarGoogle Scholar
  68. {68} Petroski, H. The Evolution of Useful Things. Alfred A. Knopf, Inc., 1992.Google ScholarGoogle Scholar
  69. {69} Petroski, H. Invention by Design: How engineers get from thought to thing. Harvard University Press, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  70. {70} Pohl, K., Böckle, G., and van der Linden, F. J. Software Product Line Engineering: Foundations, Principles and Techniques. 1 ed., Springer, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  71. {71} Sarkar, S., Rama, G.M., and Kak, A.C. API-Based and Information-Theoretic Metrics for Measuring the Quality of Software Modularization. IEEE TSE. 33(1), p. 14-32, January, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  72. {72} Schön, D. The Reflective Practitioner: How Professionals Think in Action., Basic Books, Inc. Publishers: New York, 1983.Google ScholarGoogle Scholar
  73. {73} Shaw, M., DeLine, R., Klein, D. V., Ross, T. L., Young, D.M., and Zelesnik, G. Abstractions for Software Architecture and Tools to Support Them. IEEE TSE. 21(4), p. 314-335, April, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  74. {74} Simon, H. A. The Sciences of the Artificial. 1st ed. The MIT Press, 1969. Google ScholarGoogle ScholarDigital LibraryDigital Library
  75. {75} Simon, H. A. The Sciences of the Artificial. 2nd ed. The MIT Press, 1981. Google ScholarGoogle ScholarDigital LibraryDigital Library
  76. {76} Spector, A. and Gifford, D. A Computer Science Perspective of Bridge Design. Communications of the ACM. 29(4), p. 267-283, April, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  77. {77} Sullivan, K.J., Chalasani, P., Jha, S., and Sazawal, V. Software Design as an Investment Activity: A Real Options Perspective. Real Options and Business Strategy: Applications to Decision Making Trigeorgis, L. ed. Risk Books, 1999.Google ScholarGoogle Scholar
  78. {78} Taylor, R. N., Medvidovic, N., and Dashofy, E. M. Software Architecture: Foundations, Theory, and Practice. John Wiley & Sons, 2008. In press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  79. {79} Tracz, W. DSSA (Domain-Specific Software Architecture): Pedagogical Example. ACM SIGSOFT Software Engineering Notes. 20(3), July, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  80. {80} Van Duyne, D. K., Landay, J. A., and Hong, J. I. The Design of Sites : Patterns, Principles, and Processes for Crafting a Customer-centered Web Experience. Addison-Wesley: Boston, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  81. {81} Yourdon, E. Techniques of Program Structure and Design. Prentice-Hall: Englewood Cliffs, N.J., 1975. Google ScholarGoogle ScholarDigital LibraryDigital Library
  82. {82} Yourdon, E. and Constantine, L. L. Structured Design: Fundamentals of a Discipline of Computer Program and Systems Design. Prentice-Hall, Inc., 1979. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Software Design and Architecture The once and future focus of software engineering

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in
        • Published in

          cover image Guide Proceedings
          FOSE '07: 2007 Future of Software Engineering
          May 2007
          382 pages
          ISBN:0769528295

          Publisher

          IEEE Computer Society

          United States

          Publication History

          • Published: 23 May 2007

          Qualifiers

          • Article

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader