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 2007 Publication 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/¿.
[2]
{2} University of California, Irvine, Donald Bren School of Information and Computer Sciences, B.S. in Informatics . ¿http://www.ics.uci.edu/informatics¿.
[3]
{3} Indiana University School of Informatics, B.S. of Informatics. ¿http://www.informatics.indiana.edu/¿.
[4]
{4} University of Washington Information School, B.S. of Science in Informatics. ¿http://www.ischool.washington.edu¿.
[5]
{5} Milwaukee School of Engineering, B.S. in Software Engineering. ¿http://www.msoe.edu/eecs/se/¿.
[6]
{6} Rochester Institute of Technology Department of Software Engineering, B.S in Software Engineering. ¿http://www.se.rit.edu/degrees.html'.
[7]
{7} d.school - The Hasso Plattner Institute of Design at Stanford. ¿http://www.stanford.edu/group/dschool/¿.
[8]
{8} Abbott, R.J. Program Design by Informal English Descriptions. Communications of the ACM. 26(11), p. 882-894, 1983.
[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.
[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.
[11]
{11} Alexander, C. The Timeless Way of Building. Oxford University Press: New York, 1979.
[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.
[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.
[14]
{14} Baldwin, C. Y. and Clark, K. B. Design Rules: The Power of Modularity. 1, MIT Press: Cambridge, Mass., 2000.
[15]
{15} Balzer, R. Tolerating Inconsistency. Thirteenth International Conference on Software Engineering. p. 158-165, IEEE Computer Society Press. Austin, Texas, 1991.
[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.
[17]
{17} Booch, G. Object-Oriented Development. IEEE TSE. 12(2), p. 211-221, 1986.
[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.
[19]
{19} Brand, S. How Buildings Learn: What Happens After They're Built. Penguin Books, 1994.
[20]
{20} Brooks, F. P. The Mythical Man-Month: Essays on Software Engineering. 2 ed., Addison-Wesley, 1995.
[21]
{21} Brooks Jr., F. P. The Mythical Man-Month: Essays on Software Engineering. Addison-Wesley, 1975.
[22]
{22} Clark, H. and Brennan, S. Grounding in Communication. Perspectives on Socially Shared Cognition. American Psychological Association, 1991.
[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.
[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.
[25]
{25} Eberhart, M. Why Things Break: Understanding the World by the Way It Comes Apart. Harmony Books: New York, 2003.
[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.
[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.
[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.
[29]
{29} Fischer, G. Communities of Interest: Learning through the Interaction of Multiple Knowledge Systems. User Modeling. 2001.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[37]
{37} Hassan, A. E. and Holt, R. C. Architecture recovery of web applications. Twenty-fourth International Conference on Software Engineering. May, 2002.
[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.
[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.
[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.
[41]
{41} Jackson, M. System Development. Prentice Hall: Englewood Cliffs, N. J., 1983.
[42]
{42} Jackson, M. Problem Frames. Addison-Wesley Professional: Reading, MA, 2001.
[43]
{43} Jackson, M. A. Principles of Program Design. Academic Press, 1975.
[44]
{44} Jones, J. C. Design Methods: Seeds of Human Futures. John Wiley & Sons, Ltd.: New York, 1970.
[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.
[46]
{46} Knuth, D. E. The Art of Computer Programming, Volume 3: Sorting and Searching. Addison-Wesley, 1973.
[47]
{47} Knuth, D. E. Literate Programming. CSLI Lecture Notes, no. 27., Stanford, California: Center for the Study of Language and Information, 1992.
[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.
[49]
{49} Kramer, J. Is Abstraction the Key to Computing? Communications of the ACM. 2007. To appear.
[50]
{50} Kruchten, P. The 4+1 View Model of Architecture. IEEE Software. 12(6), p. 42-50, November, 1995.
[51]
{51} Kruchten, P. The Rational Unified Process: An Introduction . Addison-Wesley: Reading, MA, 2000.
[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.
[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.
[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.
[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.
[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.
[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.
[58]
{58} Norman, D. A. The Design of Everyday Things. 1st Basic paperback ed., Basic Books: New York, 2002.
[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.
[60]
{60} Osterweil, L., Ghezzi, C., Kramer, J., and Wolf, A. Editorial ACM TOSEM. 14(4), p. 381-382, 2005.
[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.
[62]
{62} Parnas, D. L. On the Design and Development of Program Families. IEEE TSE. 2(1), p. 1-9, 1976.
[63]
{63} Parnas, D. L. Designing Software for Ease of Extension and Contraction. IEEE TSE. 5(2), p. 128-137, 1979.
[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.
[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.
[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.
[67]
{67} Petroski, H. To Engineer is Human. St. Martin's Press 1985.
[68]
{68} Petroski, H. The Evolution of Useful Things. Alfred A. Knopf, Inc., 1992.
[69]
{69} Petroski, H. Invention by Design: How engineers get from thought to thing. Harvard University Press, 1996.
[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.
[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.
[72]
{72} Schön, D. The Reflective Practitioner: How Professionals Think in Action., Basic Books, Inc. Publishers: New York, 1983.
[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.
[74]
{74} Simon, H. A. The Sciences of the Artificial. 1st ed. The MIT Press, 1969.
[75]
{75} Simon, H. A. The Sciences of the Artificial. 2nd ed. The MIT Press, 1981.
[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.
[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.
[78]
{78} Taylor, R. N., Medvidovic, N., and Dashofy, E. M. Software Architecture: Foundations, Theory, and Practice. John Wiley & Sons, 2008. In press.
[79]
{79} Tracz, W. DSSA (Domain-Specific Software Architecture): Pedagogical Example. ACM SIGSOFT Software Engineering Notes. 20(3), July, 1995.
[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.
[81]
{81} Yourdon, E. Techniques of Program Structure and Design. Prentice-Hall: Englewood Cliffs, N.J., 1975.
[82]
{82} Yourdon, E. and Constantine, L. L. Structured Design: Fundamentals of a Discipline of Computer Program and Systems Design. Prentice-Hall, Inc., 1979.

Cited By

View all
  • (2022)An Ontology to support Knowledge Management Solutions for Human-Computer Interaction DesignProceedings of the XXI Brazilian Symposium on Software Quality10.1145/3571473.3571502(1-10)Online publication date: 7-Nov-2022
  • (2022)Design-Space Exploration for Decision-Support SoftwareProceedings of the 37th IEEE/ACM International Conference on Automated Software Engineering10.1145/3551349.3559502(1-6)Online publication date: 10-Oct-2022
  • (2022)Software architecture for deformable linear object manipulationProceedings of the 4th International Workshop on Robotics Software Engineering10.1145/3526071.3527520(9-16)Online publication date: 9-May-2022
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

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

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)36
  • Downloads (Last 6 weeks)9
Reflects downloads up to 02 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2022)An Ontology to support Knowledge Management Solutions for Human-Computer Interaction DesignProceedings of the XXI Brazilian Symposium on Software Quality10.1145/3571473.3571502(1-10)Online publication date: 7-Nov-2022
  • (2022)Design-Space Exploration for Decision-Support SoftwareProceedings of the 37th IEEE/ACM International Conference on Automated Software Engineering10.1145/3551349.3559502(1-6)Online publication date: 10-Oct-2022
  • (2022)Software architecture for deformable linear object manipulationProceedings of the 4th International Workshop on Robotics Software Engineering10.1145/3526071.3527520(9-16)Online publication date: 9-May-2022
  • (2020)Revealing the Social Aspects of Design DecayProceedings of the XXXIV Brazilian Symposium on Software Engineering10.1145/3422392.3422443(364-373)Online publication date: 21-Oct-2020
  • (2018)Maintaining Architecture-Implementation Conformance to Support Architecture CentralityACM Transactions on Software Engineering and Methodology10.1145/322904827:2(1-52)Online publication date: 27-Jun-2018
  • (2018)Integrating social values into software design patternsProceedings of the International Workshop on Software Fairness10.1145/3194770.3194777(8-14)Online publication date: 29-May-2018
  • (2018)Identifying design problems in the source codeProceedings of the 40th International Conference on Software Engineering10.1145/3180155.3180239(921-931)Online publication date: 27-May-2018
  • (2016)Architecture-centric derivation of products in a software product lineProceedings of the 8th International Workshop on Modeling in Software Engineering10.1145/2896982.2896988(27-33)Online publication date: 14-May-2016
  • (2015)Borrowing from the crowdProceedings of the 37th International Conference on Software Engineering - Volume 110.5555/2818754.2818823(551-562)Online publication date: 16-May-2015
  • (2014)Sketch-based gradual model-driven developmentProceedings of the International Workshop on Innovative Software Development Methodologies and Practices10.1145/2666581.2666595(100-105)Online publication date: 16-Nov-2014
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media