13.07.2015 Views

Modeling Software Architectures in the Unified Modeling Language

Modeling Software Architectures in the Unified Modeling Language

Modeling Software Architectures in the Unified Modeling Language

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Model<strong>in</strong>g</strong> <strong>Software</strong> <strong>Architectures</strong> <strong>in</strong> UML • 3Categories and Subject Descriptors: D.2.2 [<strong>Software</strong> Eng<strong>in</strong>eer<strong>in</strong>g]: Design Tools and Techniques;D.2.11 [<strong>Software</strong> Eng<strong>in</strong>eer<strong>in</strong>g]: <strong>Software</strong> <strong>Architectures</strong>General Terms: Design, <strong>Language</strong>s, StandardizationAdditional Key Words and Phrases: C2, formal model<strong>in</strong>g, Object Constra<strong>in</strong>t <strong>Language</strong>, objectorienteddesign, Rapide, software architecture, <strong>Unified</strong> <strong>Model<strong>in</strong>g</strong> <strong>Language</strong>, Wright1. INTRODUCTION<strong>Software</strong> architecture is an aspect of software eng<strong>in</strong>eer<strong>in</strong>g directed at develop<strong>in</strong>glarge, complex applications <strong>in</strong> a manner that reduces developmentcosts, <strong>in</strong>creases <strong>the</strong> potential for commonality among different members ofa closely related product family, and facilitates evolution, possibly at systemruntime [Garlan and Shaw 1993; Perry and Wolf 1992]. The primary focusof architecture-based software development is shifted from l<strong>in</strong>es-of-code tocoarser-gra<strong>in</strong>ed architectural elements, <strong>the</strong>ir high-level <strong>in</strong>teractions, and <strong>the</strong>iroverall <strong>in</strong>terconnection structure. This enables developers to abstract away unnecessarydetails and focus on <strong>the</strong> “big picture”—system structure, high-levelcommunication protocols, assignment of software components and connectorsto hosts, development process, and so on [Garlan and Shaw 1993; Kruchten1995; Luckham and Vera 1995; Perry and Wolf 1992; Soni et al. 1995; Tayloret al. 1996]. The basic promise of software architecture research is that bettersoftware systems can result from model<strong>in</strong>g <strong>the</strong>ir important architectural aspectsthroughout, and especially early <strong>in</strong>, <strong>the</strong> development lifecycle. Choos<strong>in</strong>gwhich aspects to model and how to evaluate <strong>the</strong>m are two decisions that framesoftware architecture research [Medvidovic and Rosenblum 1997].To date, <strong>the</strong> software architecture research community has focused predom<strong>in</strong>antlyon analytic evaluation of architectural descriptions. Many researchershave come to believe that, to obta<strong>in</strong> <strong>the</strong> benefits of an explicit architecturalfocus, software architecture must be provided with its own body of specificationlanguages and analysis techniques [Garlan 1995; Garlan et al. 1995; Mageeand Perry 1998; Wolf 1996]. Such languages are needed to def<strong>in</strong>e and analyzeproperties of a system upstream <strong>in</strong> its development, thus m<strong>in</strong>imiz<strong>in</strong>g <strong>the</strong> costsof detect<strong>in</strong>g and remov<strong>in</strong>g errors. The languages are also needed to provideabstractions that are adequate for model<strong>in</strong>g a large system, while ensur<strong>in</strong>gsufficient detail for establish<strong>in</strong>g properties of <strong>in</strong>terest. A large number of architecturedescription languages (ADLs) have been proposed [Allen and Garlan1997; Garlan et al. 1994; Luckham and Vera 1995; Magee and Kramer 1996;Medvidovic et al. 1999; Medvidovic et al. 1996; Moriconi et al. 1995; Shaw,De L<strong>in</strong>e et al. 1995; Vestal 1996].Each ADL embodies a particular approach to <strong>the</strong> specification and evolutionof an architecture. Answer<strong>in</strong>g specific evaluation questions demands powerful,specialized model<strong>in</strong>g and analysis techniques that address specific systemaspects <strong>in</strong> depth. However, <strong>the</strong> emphasis on depth over breadth of <strong>the</strong> modelcan make it difficult to <strong>in</strong>tegrate <strong>the</strong>se models with o<strong>the</strong>r development artifactsbecause <strong>the</strong> rigor of formal methods draws <strong>the</strong> modeler’s attention awayfrom day-to-day development concerns. The use of special-purpose model<strong>in</strong>gACM Transactions on <strong>Software</strong> Eng<strong>in</strong>eer<strong>in</strong>g and Methodology, Vol. 11, No. 1, January 2002.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!