|
ABSTRACT
The purpose of this paper is to build the foundation for software architecture. We first develop an intuition for software architecture by appealing to several well-established architectural disciplines. On the basis of this intuition, we present a model of software architecture that consists of three components: elements, form, and rationale. Elements are either processing, data, or connecting elements. Form is defined in terms of the properties of, and the relationships among, the elements --- that is, the constraints on the elements. The rationale provides the underlying basis for the architecture in terms of the system constraints, which most often derive from the system requirements. We discuss the components of the model in the context of both architectures and architectural styles and present an extended example to illustrate some important architecture and style considerations. We conclude by presenting some of the benefits of our approach to software architecture, summarizing our contributions, and relating our approach to other current work.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
|
| |
2
|
|
| |
3
|
[3] G.D. Bergland, A Guided Tour of Program Design Methodologies, IEEE Computer, Vol. 14, No. 10, Oct. 1981, pp. 13-37.
|
| |
4
|
|
| |
5
|
|
| |
6
|
|
| |
7
|
|
| |
8
|
G Estrin , R S Fenchel , R R Razouk , M K Vernon, SARA (system architects apprentice): modeling, analysis, and simulation support for design of concurrent systems, IEEE Transactions on Software Engineering, v.12 n.2, p.293-311, Feb. 1986
|
| |
9
|
|
| |
10
|
|
| |
11
|
[11] F.C. Mish, Webster's Ninth New Collegiate Dictionary, Merriam Webster, Springfield, MA, 1983.
|
| |
12
|
|
| |
13
|
John D. Musa , Anthony Iannino , Kazuhira Okumoto, Software reliability: measurement, prediction, application (professional ed.), McGraw-Hill, Inc., New York, NY, 1989
|
 |
14
|
|
| |
15
|
[15] D.E. Perry, Industrial Strength Software Development Environments, Proc. IFIP Congress '89, The 11th World Computer Congress, San Francisco, CA, Aug. 1989.
|
 |
16
|
|
| |
17
|
[17] W.E. Riddle and J.C. Wileden, Tutorial on Software System Design: Description and Analysis, Computer Society Press, 1980.
|
 |
18
|
W. R. Rosenblatt , J. C. Wileden , Alexander L. Wolf, OROS: toward a type model for software development environments, Conference proceedings on Object-oriented programming systems, languages and applications, p.297-304, October 02-06, 1989, New Orleans, Louisiana, United States
|
| |
19
|
Erik Sandewall , Claes Strömberg , Henrik Sörensen, Software architecture based on communicating residential environments, Proceedings of the 5th international conference on Software engineering, p.144-152, March 09-12, 1981, San Diego, California, United States
|
 |
20
|
R. W. Schwanke , R. Z. Altucher , M. A. Platoff, Discovering, visualizing, and controlling software structure, Proceedings of the 5th international workshop on Software specification and design, p.147-154, April 1989, Pittsburgh, Pennsylvania, United States
|
| |
21
|
[21] M. Shaw, Larger Scale Systems Require Higher-Level Abstractions, Proc. Fifth Inter. Workshop on Software Specification and Design, Pittsburgh, PA, May 1989, appearing in ACM SIGSOFT Notes, Vol. 14, No. 3, May 1989, pp. 143-146.
|
 |
22
|
|
| |
23
|
|
CITED BY 261
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Antonio Carzaniga , Gian Pietro Picco , Giovanni Vigna, Designing distributed applications with mobile code paradigms, Proceedings of the 19th international conference on Software engineering, p.22-32, May 17-23, 1997, Boston, Massachusetts, United States
|
|
|
|
|
|
Ivan T. Bowman , Richard C. Holt , Neil V. Brewster, Linux as a case study: its extracted software architecture, Proceedings of the 21st international conference on Software engineering, p.555-563, May 16-22, 1999, Los Angeles, California, United States
|
|
|
|
|
|
David R. Harris , Howard B. Reubenstein , Alexander S. Yeh, Reverse engineering to the architectural level, Proceedings of the 17th international conference on Software engineering, p.186-195, April 24-28, 1995, Seattle, Washington, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Matthew B. Dwyer , Matthew J. Craig , Eric Runquist, An application-independent concurrency skeleton in Ada 95, Proceedings of the conference on TRI-Ada '96: disciplined software development with Ada, p.179-192, December 03-07, 1996, Philadelphia, Pennsylvania, United States
|
|
|
|
|
|
Harald Gall , Mehdi Jazayeri , René Klösch , Wolfgang Lugmayr , Georg Trausmuth, Architecture recovery in ARES, Joint proceedings of the second international software architecture workshop (ISAW-2) and international workshop on multiple perspectives in software development (Viewpoints '96) on SIGSOFT '96 workshops, p.111-115, October 16-18, 1996, San Francisco, California, United States
|
|
|
|
|
|
Richard N. Taylor , Nenad Medvidovic , Kenneth M. Anderson , E. James Whitehead, Jr. , Jason E. Robbins, A component- and message-based architectural style for GUI software, Proceedings of the 17th international conference on Software engineering, p.295-304, April 24-28, 1995, Seattle, Washington, United States
|
|
|
|
|
|
Dilip Soni , Robert L. Nord , Christine Hofmeister, Software architecture in industrial applications, Proceedings of the 17th international conference on Software engineering, p.196-207, April 24-28, 1995, Seattle, Washington, United States
|
|
|
|
|
|
|
|
|
A. Bertolino , F. Corradini , P. Inverardi , H. Muccini, Deriving test plans from architectural descriptions, Proceedings of the 22nd international conference on Software engineering, p.220-229, June 04-11, 2000, Limerick, Ireland
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Jason E. Robbins , Nenad Medvidovic , David F. Redmiles , David S. Rosenblum, Integrating architecture description languages with a standard design method, Proceedings of the 20th international conference on Software engineering, p.209-218, April 19-25, 1998, Kyoto, Japan
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
P. Devanbu , Y.-F. Chen , E. Gansner , H. Müller , J. Martin, CHIME: customizable hyperlink insertion and maintenance engine for software engineering environments, Proceedings of the 21st international conference on Software engineering, p.473-482, May 16-22, 1999, Los Angeles, California, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Robert T. Monroe , Andrew Kompanek , Ralph Melton , David Garlan, Architectural Styles, Design Patterns, and Objects, IEEE Software, v.14 n.1, p.43-52, January 1997
|
|
|
|
|
|
David Garlan , Dewayne Perry, Software architecture: practice, potential, and pitfalls, Proceedings of the 16th international conference on Software engineering, p.363-364, May 16-21, 1994, Sorrento, Italy
|
|
|
|
|
|
Jamieson M. Cobleigh , Leon J. Osterweil , Alexander Wise , Barbara Staudt Lerner, Containment units: a hierarchically composable architecture for adaptive systems, Proceedings of the 10th ACM SIGSOFT symposium on Foundations of software engineering, November 18-22, 2002, Charleston, South Carolina, USA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Phillipe Kruchten , Christopher J. Thompson, An object-oriented, distributed architecture for large-scale Ada systems, Proceedings of the conference on TRI-Ada '94, p.262-271, November 06-11, 1994, Baltimore, Maryland, United States
|
|
|
|
|
|
David Garlan , Robert Allen , John Ockerbloom, Architectural mismatch or why it's hard to build systems out of existing parts, Proceedings of the 17th international conference on Software engineering, p.179-185, April 24-28, 1995, Seattle, Washington, United States
|
|
|
|
|
|
Nenad Medvidovic , Peyman Oreizy , Richard N. Taylor, Reuse of off-the-shelf components in C2-style architectures, Proceedings of the 19th international conference on Software engineering, p.692-700, May 17-23, 1997, Boston, Massachusetts, United States
|
|
|
Hoda Fahmy , Ric Holt , Spiros Mancoridis, Repairing software style using graph grammars, Proceedings of the 1997 conference of the Centre for Advanced Studies on Collaborative research, p.6, November 10-13, 1997, Toronto, Ontario, Canada
|
|
|
Rick Kazman , Len Bass , Mike Webb , Gregory Abowd, SAAM: a method for analyzing the properties of software architectures, Proceedings of the 16th international conference on Software engineering, p.81-90, May 16-21, 1994, Sorrento, Italy
|
|
|
Eric M. Dashofy , Nenad Medvidovic , Richard N. Taylor, Using off-the-shelf middleware to implement connectors in distributed software architectures, Proceedings of the 21st international conference on Software engineering, p.3-12, May 16-22, 1999, Los Angeles, California, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Gordon S. Blair , Lynne Blair , Valéie Issarny , Petr Tuma , Apostolos Zarras, The role of software architecture in constraining adaptation incomponent-based middleware platforms, IFIP/ACM International Conference on Distributed systems platforms, p.164-184, April 03-07, 2000, New York, New York, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Lawrence Chung , Brian A. Nixon , Eric Yu, An approach to building quality into software architecture, Proceedings of the 1995 conference of the Centre for Advanced Studies on Collaborative research, p.13, November 07-09, 1995, Toronto, Ontario, Canada
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Simonetta Balsamo , Paola Inverardi , Calogero Mangano, An approach to performance evaluation of software architectures, Proceedings of the 1st international workshop on Software and performance, p.178-190, October 12-16, 1998, Santa Fe, New Mexico, United States
|
|
|
|
|
|
Alexander S. Yeh , David R. Harris , Melissa P. Chase, Manipulating recovered software architecture views, Proceedings of the 19th international conference on Software engineering, p.184-194, May 17-23, 1997, Boston, Massachusetts, United States
|
|
|
|
|
|
|
|
|
|
|
|
Ricard V. Solé , Ramon Ferrer-Cancho , Jose M. Montoya , Sergi Valverde, Selection, tinkering, and emergence in complex networks, Complexity, v.8 n.1, p.20-33, September 2002
|
|
|
|
|
|
Wolfgang Eixelsberger , Michaela Ogris , Harald Gall , Berndt Bellay, Software architecture recovery of a program family, Proceedings of the 20th international conference on Software engineering, p.508-511, April 19-25, 1998, Kyoto, Japan
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Richard N. Taylor , Nenad Medvidovic , Kenneth M. Anderson , E. James Whitehead, Jr. , Jason E. Robbins , Kari A. Nies , Peyman Oreizy , Deborah L. Dubrow, A Component- and Message-Based Architectural Style for GUI Software, IEEE Transactions on Software Engineering, v.22 n.6, p.390-406, June 1996
|
|
|
Mary Shaw , Robert DeLine , Daniel V. Klein , Theodore L. Ross , David M. Young , Gregory Zelesnik, Abstractions for Software Architecture and Tools to Support Them, IEEE Transactions on Software Engineering, v.21 n.4, p.314-335, April 1995
|
|
|
|
|
|
|
|
|
David Garlan , Robert Monroe , David Wile, Acme: an architecture description interchange language, Proceedings of the 1997 conference of the Centre for Advanced Studies on Collaborative research, p.7, November 10-13, 1997, Toronto, Ontario, Canada
|
|
|
|
|
|
David C. Luckham , John J. Kenney , Larry M. Augustin , James Vera , Doug Bryan , Walter Mann, Specification and Analysis of System Architecture Using Rapide, IEEE Transactions on Software Engineering, v.21 n.4, p.336-355, April 1995
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Peyman Oreizy , Michael M. Gorlick , Richard N. Taylor , Dennis Heimbigner , Gregory Johnson , Nenad Medvidovic , Alex Quilici , David S. Rosenblum , Alexander L. Wolf, An Architecture-Based Approach to Self-Adaptive Software, IEEE Intelligent Systems, v.14 n.3, p.54-62, May 1999
|
|
|
|
|
|
|
|
|
Dharini Balasubramaniam , Ron Morrison , Kath Mickan , Graham Kirby , Brian Warboys , Ian Robertson , Bob Snowdon , R. Mark Greenwood , Wykeen Seet, Support for feedback and change in self-adaptive systems, Proceedings of the 1st ACM SIGSOFT workshop on Self-managed systems, p.18-22, October 31-November 01, 2004, Newport Beach, California
|
|
|
|
|
|
Dharini Balasubramaniam , Ron Morrison , Graham Kirby , Kath Mickan , Brian Warboys , Ian Robertson , Bob Snowdon , R. Mark Greenwood , Wykeen Seet, A software architecture approach for structuring autonomic systems, ACM SIGSOFT Software Engineering Notes, v.30 n.4, July 2005
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Eugen C. Nistor , Justin R. Erenkrantz , Scott A. Hendrickson , André van der Hoek, ArchEvol: versioning architectural-implementation relationships, Proceedings of the 12th international workshop on Software configuration management, p.99-111, September 05-06, 2005, Lisbon, Portugal
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
William G. Griswold , Robert Boyer , Steven W. Brown , Tan Minh Truong, A component architecture for an extensible, highly integrated context-aware computing infrastructure, Proceedings of the 25th International Conference on Software Engineering, May 03-10, 2003, Portland, Oregon
|
|
|
|
|
|
|
|
|
|
|
|
Matthew J. Hawthorne , Dewayne E. Perry, Software engineering education in the era of outsourcing, distributed development, and open source software: challenges and opportunities, Proceedings of the 27th international conference on Software engineering, May 15-21, 2005, St. Louis, MO, USA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Jennifer Pérez , Nour Ali , Jose A. Carsı , Isidro Ramos , Bárbara Álvarez , Pedro Sanchez , Juan A. Pastor, Integrating aspects in software architectures: PRISMA applied to robotic tele-operated systems, Information and Software Technology, v.50 n.9-10, p.969-990, August, 2008
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Sam Malek , Chiyoung Seo , Sharmila Ravula , Brad Petrus , Nenad Medvidovic, Providing middleware-level facilities to support architecture-based development of software systems in pervasive environments, Proceedings of the 4th international workshop on Middleware for Pervasive and Ad-Hoc Computing (MPAC 2006), p.2, November 27-December 01, 2006, Melbourne, Australia
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Antonio Bucchiarone , Andrea Polini , Patrizio Pelliccione , Massimo Tivoli, Towards an architectural approach for the dynamic and automatic composition of software components, Proceedings of the ISSTA 2006 workshop on Role of software architecture for testing and analysis, p.12-21, July 17-20, 2006, Portland, Maine
|
|
|
Roshanak Roshandel , Somo Banerjee , Leslie Cheung , Nenad Medvidovic , Leana Golubchik, Estimating software component reliability by leveraging architectural models, Proceeding of the 28th international conference on Software engineering, May 20-28, 2006, Shanghai, China
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Yu Zhou , Jian Pan , Xiaoxing Ma , Bin Luo , Xianping Tao , Jian Lu, Applying ontology in architecture-based self-management applications, Proceedings of the 2007 ACM symposium on Applied computing, March 11-15, 2007, Seoul, Korea
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Chiyoung Seo , Sam Malek , George Edwards , Daniel Popescu , Nenad Medvidovic , Brad Petrus , Sharmila Ravula, Exploring the Role of Software Architecture in Dynamic and Fault Tolerant Pervasive Systems, Proceedings of the 1st International Workshop on Software Engineering for Pervasive Computing Applications, Systems, and Environments, p.9, May 20-26, 2007
|
|
|
R. Sundaravadivelu , R. J. White , A. C. Jones , W. A. Gray, Web based middleware framework for interoperability between heterogeneous, distributed biodiversity data resources, Proceedings of the 25th conference on IASTED International Multi-Conference: Software Engineering, p.142-147, February 13-15, 2007, Innsbruck, Austria
|
|
|
|
|
|
Kyo C. Kang , Sajoong Kim , Jaejoon Lee , Kijoo Kim , Euiseob Shin , Moonhang Huh, FORM: A feature-oriented reuse method with domain-specific reference architectures, Annals of Software Engineering, 5, p.143-168, 1998
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Salvador Trujillo , Maider Azanza , Oscar Diaz , Rafael Capilla, Exploring Extensibility of Architectural Design Decisions, Proceedings of the Second Workshop on SHAring and Reusing architectural Knowledge Architecture, Rationale, and Design Intent, p.10, May 20-26, 2007
|
|
|
|
|
|
|
|
|
Lothar Baum , Martin Becker , Lars Geyer , Georg Molter , Peter Sturm, Driving the composition of runtime platforms by architectural knowledge, Proceedings of the 8th ACM SIGOPS European workshop on Support for composing distributed applications, p.146-151, September 1998, Sintra, Portugal
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|