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.
- {1} Design Research Society. ¿http://www.designresearchsociety.org/¿.Google Scholar
- {2} University of California, Irvine, Donald Bren School of Information and Computer Sciences, B.S. in Informatics . ¿http://www.ics.uci.edu/informatics¿.Google Scholar
- {3} Indiana University School of Informatics, B.S. of Informatics. ¿http://www.informatics.indiana.edu/¿.Google Scholar
- {4} University of Washington Information School, B.S. of Science in Informatics. ¿http://www.ischool.washington.edu¿.Google Scholar
- {5} Milwaukee School of Engineering, B.S. in Software Engineering. ¿http://www.msoe.edu/eecs/se/¿.Google Scholar
- {6} Rochester Institute of Technology Department of Software Engineering, B.S in Software Engineering. ¿http://www.se.rit.edu/degrees.html'.Google Scholar
- {7} d.school - The Hasso Plattner Institute of Design at Stanford. ¿http://www.stanford.edu/group/dschool/¿.Google Scholar
- {8} Abbott, R.J. Program Design by Informal English Descriptions. Communications of the ACM. 26(11), p. 882-894, 1983. Google ScholarDigital Library
- {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 ScholarDigital Library
- {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 ScholarCross Ref
- {11} Alexander, C. The Timeless Way of Building. Oxford University Press: New York, 1979.Google Scholar
- {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 ScholarDigital Library
- {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 Scholar
- {14} Baldwin, C. Y. and Clark, K. B. Design Rules: The Power of Modularity. 1, MIT Press: Cambridge, Mass., 2000. Google ScholarDigital Library
- {15} Balzer, R. Tolerating Inconsistency. Thirteenth International Conference on Software Engineering. p. 158-165, IEEE Computer Society Press. Austin, Texas, 1991. Google ScholarDigital Library
- {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 ScholarDigital Library
- {17} Booch, G. Object-Oriented Development. IEEE TSE. 12(2), p. 211-221, 1986. Google ScholarDigital Library
- {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 ScholarDigital Library
- {19} Brand, S. How Buildings Learn: What Happens After They're Built. Penguin Books, 1994.Google Scholar
- {20} Brooks, F. P. The Mythical Man-Month: Essays on Software Engineering. 2 ed., Addison-Wesley, 1995. Google ScholarDigital Library
- {21} Brooks Jr., F. P. The Mythical Man-Month: Essays on Software Engineering. Addison-Wesley, 1975. Google ScholarDigital Library
- {22} Clark, H. and Brennan, S. Grounding in Communication. Perspectives on Socially Shared Cognition. American Psychological Association, 1991.Google ScholarCross Ref
- {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 ScholarDigital Library
- {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 ScholarDigital Library
- {25} Eberhart, M. Why Things Break: Understanding the World by the Way It Comes Apart. Harmony Books: New York, 2003.Google Scholar
- {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 Scholar
- {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 ScholarDigital Library
- {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 ScholarDigital Library
- {29} Fischer, G. Communities of Interest: Learning through the Interaction of Multiple Knowledge Systems. User Modeling. 2001.Google Scholar
- {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 ScholarDigital Library
- {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 Scholar
- {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 Scholar
- {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 ScholarDigital Library
- {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 ScholarDigital Library
- {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 Scholar
- {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 Scholar
- {37} Hassan, A. E. and Holt, R. C. Architecture recovery of web applications. Twenty-fourth International Conference on Software Engineering. May, 2002. Google ScholarDigital Library
- {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 ScholarDigital Library
- {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 ScholarDigital Library
- {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 ScholarDigital Library
- {41} Jackson, M. System Development. Prentice Hall: Englewood Cliffs, N. J., 1983. Google ScholarDigital Library
- {42} Jackson, M. Problem Frames. Addison-Wesley Professional: Reading, MA, 2001.Google Scholar
- {43} Jackson, M. A. Principles of Program Design. Academic Press, 1975. Google ScholarDigital Library
- {44} Jones, J. C. Design Methods: Seeds of Human Futures. John Wiley & Sons, Ltd.: New York, 1970.Google Scholar
- {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 Scholar
- {46} Knuth, D. E. The Art of Computer Programming, Volume 3: Sorting and Searching. Addison-Wesley, 1973. Google ScholarDigital Library
- {47} Knuth, D. E. Literate Programming. CSLI Lecture Notes, no. 27., Stanford, California: Center for the Study of Language and Information, 1992. Google ScholarDigital Library
- {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 ScholarDigital Library
- {49} Kramer, J. Is Abstraction the Key to Computing? Communications of the ACM. 2007. To appear. Google ScholarDigital Library
- {50} Kruchten, P. The 4+1 View Model of Architecture. IEEE Software. 12(6), p. 42-50, November, 1995. Google ScholarDigital Library
- {51} Kruchten, P. The Rational Unified Process: An Introduction . Addison-Wesley: Reading, MA, 2000. Google ScholarDigital Library
- {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 ScholarDigital Library
- {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 ScholarDigital Library
- {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 ScholarDigital Library
- {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 ScholarDigital Library
- {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 ScholarDigital Library
- {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 ScholarDigital Library
- {58} Norman, D. A. The Design of Everyday Things. 1st Basic paperback ed., Basic Books: New York, 2002. Google ScholarDigital Library
- {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 ScholarDigital Library
- {60} Osterweil, L., Ghezzi, C., Kramer, J., and Wolf, A. Editorial ACM TOSEM. 14(4), p. 381-382, 2005. Google ScholarDigital Library
- {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 ScholarDigital Library
- {62} Parnas, D. L. On the Design and Development of Program Families. IEEE TSE. 2(1), p. 1-9, 1976.Google Scholar
- {63} Parnas, D. L. Designing Software for Ease of Extension and Contraction. IEEE TSE. 5(2), p. 128-137, 1979.Google ScholarDigital Library
- {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 Scholar
- {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 ScholarDigital Library
- {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 ScholarDigital Library
- {67} Petroski, H. To Engineer is Human. St. Martin's Press 1985.Google Scholar
- {68} Petroski, H. The Evolution of Useful Things. Alfred A. Knopf, Inc., 1992.Google Scholar
- {69} Petroski, H. Invention by Design: How engineers get from thought to thing. Harvard University Press, 1996. Google ScholarDigital Library
- {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 ScholarDigital Library
- {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 ScholarDigital Library
- {72} Schön, D. The Reflective Practitioner: How Professionals Think in Action., Basic Books, Inc. Publishers: New York, 1983.Google Scholar
- {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 ScholarDigital Library
- {74} Simon, H. A. The Sciences of the Artificial. 1st ed. The MIT Press, 1969. Google ScholarDigital Library
- {75} Simon, H. A. The Sciences of the Artificial. 2nd ed. The MIT Press, 1981. Google ScholarDigital Library
- {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 ScholarDigital Library
- {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 Scholar
- {78} Taylor, R. N., Medvidovic, N., and Dashofy, E. M. Software Architecture: Foundations, Theory, and Practice. John Wiley & Sons, 2008. In press. Google ScholarDigital Library
- {79} Tracz, W. DSSA (Domain-Specific Software Architecture): Pedagogical Example. ACM SIGSOFT Software Engineering Notes. 20(3), July, 1995. Google ScholarDigital Library
- {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 ScholarDigital Library
- {81} Yourdon, E. Techniques of Program Structure and Design. Prentice-Hall: Englewood Cliffs, N.J., 1975. Google ScholarDigital Library
- {82} Yourdon, E. and Constantine, L. L. Structured Design: Fundamentals of a Discipline of Computer Program and Systems Design. Prentice-Hall, Inc., 1979. Google ScholarDigital Library
Index Terms
- Software Design and Architecture The once and future focus of software engineering
Recommendations
Architecture prototyping in the software engineering environment
This technical essay presents a perspective on the evolution and problems of the software development craft and how software engineering techniques show promise to solve these problems. It introduces architecture prototyping as a program development ...
Development of software engineering: co-operative efforts from academia, government and industry
ICSE '06: Proceedings of the 28th international conference on Software engineeringIn the past 40 years, software engineering has emerged as an important sub-field of computer science. The quality and productivity of software have been improved and the cost and risk of software development been decreased due to the contributions made ...
A Software Engineering Ontology as Software Engineering Knowledge Representation
ICCIT '08: Proceedings of the 2008 Third International Conference on Convergence and Hybrid Information Technology - Volume 02This paper aims to present software engineering ontology as software engineering knowledge representation for a multi-site software development. It will not only facilitate the capturing of software engineering knowledge but also enhance the sharing of ...
Comments