Model-Driven Evolution of Software Architectures - Software and ...
Model-Driven Evolution of Software Architectures - Software and ...
Model-Driven Evolution of Software Architectures - Software and ...
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 21<br />
architectureconsisting<strong>of</strong>elements,form,<strong>and</strong>rationale. Themodeldistinguishesbetweenthreetypes<strong>of</strong>(design)elements:processing,data,<strong>and</strong><br />
connectingelements.Formincludestherelationshipsamongtheelements<br />
<strong>of</strong>anarchitecture.Rationaleprovidesthemotivationforthedecisionsthat<br />
yieldaparticularset<strong>of</strong>elements<strong>and</strong>form.Thethreeaspects<strong>of</strong>thismodel<br />
fors<strong>of</strong>twarearchitecturecanbefoundinvariousdefinitionsfors<strong>of</strong>tware<br />
architectureusedbylaterresearch(<strong>and</strong>practice).<br />
Garlan<strong>and</strong>Shaw[1993]enumerateaset<strong>of</strong>issuess<strong>of</strong>twarearchitecturesareconcernedwiththatincludesgrossorganisation,globalcontrolstructure,communicationprotocols,<strong>and</strong>assignment<strong>of</strong>functionalitytodesignelements.<br />
Amorerecentdefinition<strong>of</strong>s<strong>of</strong>twarearchitecturecanbefoundinIEEE-<br />
1471[2000]:<br />
Thefundamentalorganisation<strong>of</strong>asystemembodiedinitscomponents,<br />
theirrelationshipstoeachother,<strong>and</strong>totheenvironment,<strong>and</strong>theprinciples<br />
guidingitsdesign<strong>and</strong>evolution.<br />
Thisdefinitionnotonlyincludescomponents(elements)<strong>and</strong>theirrelations,butalsoprinciples,referringto,forinstance,theuse<strong>of</strong>aparticular<br />
architecturalstyle(seeSection2.2.3)ortheuse<strong>of</strong>particularconventions<br />
duringdesign<strong>and</strong>maintenance<strong>of</strong>as<strong>of</strong>twaresystem.<br />
AnalternativedefinitionthatisfrequentlyusedisgivenbyBassetal.<br />
[2003]:<br />
Thes<strong>of</strong>twarearchitecture<strong>of</strong>aprogramorcomputingsystemisthestructureorstructures<strong>of</strong>thesystem,whichcomprises<strong>of</strong>twareelements,theexternallyvisibleproperties<strong>of</strong>thoseelements,<strong>and</strong>therelationshipsamong<br />
them.<br />
This definition acknowledges the now common underst<strong>and</strong>ing that<br />
thereisnosuchthingasthestructure<strong>of</strong>as<strong>of</strong>twaresystem<strong>and</strong>thatdifferenttypes<strong>of</strong>structurescanbeusedtodescribethearchitecture<strong>of</strong>asingle<br />
system.<br />
Kruchten[1998]statesthats<strong>of</strong>twarearchitectureencompassesaset<strong>of</strong><br />
significantdecisionsregardingsystemorganisation,selection<strong>of</strong>elements,<br />
theircomposition,<strong>and</strong>selection<strong>of</strong>anarchitecturalstyletoguidethesedecisions.Inthisdefinition,architectureisthusconsideredasaset<strong>of</strong>decisions,aperspectivefurtherexploredbyJansen[2005].<br />
Insummary,s<strong>of</strong>twarearchitecturecanbeunderstoodinatleasttwo<br />
differentways:1)asaset<strong>of</strong>(architectural)designdecisions,or2)asthe<br />
structurethatistheresult<strong>of</strong>thosedecisions. Inthisthesisweoptfor<br />
thelatter,sinceweonlyconsiders<strong>of</strong>twarestructuresasprescribedbyan<br />
architecturespecificationorasimplementedinsourcecode.<br />
Unfortunately,throughtheuse<strong>of</strong>adjectiveslike“significant”,“fundamental”,“gross”,<strong>and</strong>“global”thedefinitionscitedabovedonotcompletely<br />
clarifywhichparts<strong>of</strong>adesignarearchitectural<strong>and</strong>whichpartsarenot.