11.12.2012 Views

Model-Driven Evolution of Software Architectures - Software and ...

Model-Driven Evolution of Software Architectures - Software and ...

Model-Driven Evolution of Software Architectures - Software and ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

2.2. Architecture-<strong>Driven</strong>S<strong>of</strong>twareDevelopment 23<br />

Thesemotivationsforconsiderings<strong>of</strong>twarearchitecturedesignasaseparatephaseinthes<strong>of</strong>twaredevelopmentprocess,alsoillustratestheimportance<strong>of</strong>s<strong>of</strong>twareevolutiononthearchitecturallevel.Ifs<strong>of</strong>twareiscontinuouslyevolvedonlowerabstractionlevels,phenomenasuchasarchitecture<br />

drift<strong>and</strong>erosion[Perry<strong>and</strong>Wolf,1992](seealsoChapter1),decreasethe<br />

possibility<strong>of</strong>usingthes<strong>of</strong>twarearchitectureinthewaysdescribed.Atthat<br />

point,restoration<strong>of</strong>theintendedarchitectureormigrationtoanewarchitecture,again,bringsthebenefits<strong>of</strong>conceptualintegrity,earlyassessment<br />

<strong>of</strong>designdecisions,<strong>and</strong>reuse.<br />

Withrespecttotheprecedingdiscussionons<strong>of</strong>twarearchitecturethis<br />

thesispositionss<strong>of</strong>twarearchitectureinterms<strong>of</strong>structure<strong>and</strong>architecturalelements.Moreover,consideringtheimportance<strong>of</strong>s<strong>of</strong>twarestructurefors<strong>of</strong>twareevolution(seeSection2.1),weinvestigatehowtouse<strong>and</strong>manipulates<strong>of</strong>twarearchitecturesforthes<strong>of</strong>twareevolutiontasksweidentifiedinSection1.1.<br />

2.2.3 S<strong>of</strong>twareArchitectureDesign<br />

Thegoal<strong>of</strong>s<strong>of</strong>twarearchitecturedesignistodefinetheconstraintsforsubsequentdesign<strong>and</strong>implementationactivitiesthatresultinthedevelopment<strong>of</strong>asystemthatfulfilsitsfunctional<strong>and</strong>otherqualitygoals.Assuch,<br />

as<strong>of</strong>twarearchitectureisbothpermissive<strong>and</strong>restrictivewithrespectto<br />

thedecisionstakeninsubsequentactivities[Perry<strong>and</strong>Wolf,1992].<br />

Basedonexistingdesign<strong>and</strong>evaluationmethods,Kazmanetal.[2006]<br />

formulatethreeprinciplesthatareusefultounderst<strong>and</strong>howarchitectural<br />

constraintsaredefined: 1)anarchitectureshouldbedefinedinterms<strong>of</strong><br />

elementsthatarecoarseenoughforhumanintellectualcontrol<strong>and</strong>specificenoughformeaningfulreasoning,2)businessgoalsdeterminequality<br />

attributerequirements,<strong>and</strong>3)qualityattributerequirementsguidethe<br />

design<strong>and</strong>analysis<strong>of</strong>s<strong>of</strong>twarearchitectures.<br />

Similartootherengineeringdisciplines,theactualdesign<strong>of</strong>s<strong>of</strong>tware<br />

largelyremainsacreativeactivity. Consequently,thesuccess<strong>of</strong>s<strong>of</strong>tware<br />

projectsforalargepartdependsontheexperience<strong>and</strong>skills<strong>of</strong>thes<strong>of</strong>tware<br />

architects. Althoughs<strong>of</strong>twarearchitectureevaluationmethodscanhelp<br />

architectstoassessthequality<strong>of</strong>feredbythearchitecturetheydefined,<br />

suchmethodscanonlybeappliedafterithasbeendesigned.Weintroduce<br />

thesemethodsinSection2.2.5.<br />

Toalsoprovideguidanceduringthedesignprocessitself,theanalysis<br />

<strong>and</strong>codification<strong>of</strong>experiencesbycategorisingproblemtypes<strong>and</strong>recording<br />

<strong>and</strong>generalisingsuccessful(byexperience)solutions,is<strong>of</strong>greatimportance<br />

fors<strong>of</strong>twarearchitecturepractice.S<strong>of</strong>twarearchitecturalstyles,sometimes<br />

alsoreferredtoasarchitecturalpatterns,aresuchcodifications.

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

Saved successfully!

Ooh no, something went wrong!