Chapter 4. Understanding Quality Attributes









AUTOSAR Layered Software Architecture

28 nov. 2006 The Microcontroller Abstraction Layer is the lowest software layer of the Basic Software. It contains internal drivers which are software.
AUTOSAR EXP LayeredSoftwareArchitecture


UNIT-I 1. The Architecture Business Cycle

The software architecture of a program or computing system is the structure or structures of the system which comprise software elements
SADP UNIT I


Reference Architectural Model Industrie 4.0 (RAMI 4.0) An Introduction

Software Updates. Instruction Manual. Maintenance Cycles … Maintenance. Usage. Instance. Production: Product. Data. Serial 
a schweichhart reference architectural model industrie . rami .


Business Models Business Strategy and Innovation

a particular business model that describes the design or architecture of the Freemium business models are also deployed by a large number of software ...
jig businessmodelsbusinessstrategy





View on 5G Architecture

5 juil. 2019 The 5G Architecture Working Group as part of the 5G PPP Initiative is ... centralized Software-Defined Radio Access Network (cSD-RAN).
G PPP G Architecture White Paper v . PublicConsultation


GUIDE D'AUDIT DES SYSTEMES D'INFORMATION

3 juil. 2015 Propriétaire (business owner) d'une application ou de données . ... revue de l'architecture technique pouvant conduire au.
guide d audit des si v


Chapter 4. Understanding Quality Attributes

26 mars 2008 As we have seen in the Architecture Business Cycle business ... relationship between quality attributes and software architecture by ...
Software Architecture in Practice nd Edition Chapter


DIGITAL TRANSFORMATION: A ROADMAP FOR BILLION-DOLLAR

2011 MIT Center for Digital Business and Capgemini Consulting. Contents Figure 4: Digital transformation creates a virtuous cycle of knowledge sharing ...
Digital Transformation A Road Map for Billion Dollar Organizations





Big Data & Analytics Reference Architecture

The most advanced usage of public cloud is where the business functionality is provided by the cloud provider (i.e. software-as-a-service). Public cloud might 
oracle wp big data refarch


Nist Cloud Computing Reference Architecture Ppt

Displaying powerpoint presentation software reference model
nist cloud computing reference architecture ppt


218861 Chapter 4. Understanding Quality Attributes [TeamLiB]

Chapter4.UnderstandingQuality

Attributes

withFelixBachmannandMarkKlein Note:FelixBachmannandMarkKleinareseniormembersofthetechnicalstaffattheSoftware

EngineeringInstitute.

"Cheshire-Puss,"[Alice]began,rathertimidly..."Wouldyoutellme,please,which wayIoughttogofromhere?""Thatdependsagooddealonwhereyouwanttogo to,"saidtheCat."Oh,Idon'tmuchcarewhere - "saidAlice.Thenitdoesn'tmatter whichwayyougo,"saidtheCat." - solongasIgetsomewhere,"saidAlice."Oh, you'resuretodothat,"saidtheCat,"ifonlyyouwalklongenough." - LewisCarroll,Alice'sAdventuresinWonderland. AswehaveseenintheArchitectureBusinessCycle,businessconsiderationsdeterminequalities thatmustbeaccommodatedinasystem'sarchitecture.Thesequalitiesareoverandabovethat offunctionality,whichisthebasicstatementofthesystem'scapabilities,services,and behavior.Althoughfunctionalityandotherqualitiesarecloselyrelated,asyouwillsee, functionalityoftentakesnotonlythefrontseatinthedevelopmentschemebuttheonlyseat. Thisisshort-sighted,however.Systemsarefrequentlyredesignednotbecausetheyare functionallydeficient - thereplacementsareoftenfunctionallyidentical - butbecausetheyare difficulttomaintain,port,orscale,oraretooslow,orhavebeencompromisedbynetwork hackers.InChapter2,wesaidthatarchitecturewasthefirststageinsoftwarecreationin whichqualityrequirementscouldbeaddressed.Itisthemappingofasystem'sfunctionality ontosoftwarestructuresthatdeterminesthearchitecture'ssupportforqualities.InChapter5 wediscusshowthequalitiesaresupportedbyarchitecturaldesigndecisions,andinChapter7 wediscusshowthearchitectcanmanagethetradeoffsinherentinanydesign. Hereourfocusisonunderstandinghowtoexpressthequalitieswewantourarchitectureto providetothesystemorsystemswearebuildingfromit.Webeginthediscussionofthe relationshipbetweenqualityattributesandsoftwarearchitecturebylookingcloselyatquality attributes.Whatdoesitmeantosaythatasystemismodifiableorreliableorsecure?This chaptercharacterizessuchattributesanddiscusseshowthischaracterizationcanbeusedto expressthequalityrequirementsforasystem. [TeamLiB] [TeamLiB]

4.1FunctionalityandArchitecture

Functionalityandqualityattributesareorthogonal.Thisstatementsoundsratherboldatfirst, butwhenyouthinkaboutityourealizethatitcannotbeotherwise.Iffunctionalityandquality attributeswerenotorthogonal,thechoiceoffunctionwoulddictatethelevelofsecurityor performanceoravailabilityorusability.Clearlythough,itispossibletoindependentlychoosea desiredlevelofeach.Now,thisisnottosaythatanylevelofanyqualityattributeisachievable withanyfunction.Manipulatingcomplexgraphicalimagesorsortinganenormousdatabase mightbeinherentlycomplex,makinglightning-fastperformanceimpossible.Butwhatis possibleisthat,foranyofthesefunctionsyourchoicesasanarchitectwilldeterminethe relativelevelofquality.Somearchitecturalchoiceswillleadtohigherperformance;somewill leadintheotherdirection.Giventhisunderstanding,thepurposeofthischapteris,aswitha

Página1de24

26/03/2008file://C:\DocumentsandSettings\Natalia\Configuraciónlocal\Temp\~hh1BC4.htm

goodarchitecture,toseparateconcerns.Wewillexamineeachimportantqualityattributein turnandlearnhowtothinkaboutitinadisciplinedway. Whatisfunctionality?Itistheabilityofthesystemtodotheworkforwhichitwasintended.A taskrequiresthatmanyormostofthesystem'selementsworkinacoordinatedmannerto completethejob,justasframers,electricians,plumbers,drywallhangers,painters,andfinish carpentersallcometogethertocooperativelybuildahouse.Therefore,iftheelementshavenot beenassignedthecorrectresponsibilitiesorhavenotbeenendowedwiththecorrectfacilities forcoordinatingwithotherelements(sothat,forinstance,theyknowwhenitistimeforthem tobegintheirportionofthetask),thesystemwillbeunabletooffertherequiredfunctionality. Functionalitymaybeachievedthroughtheuseofanyofanumberofpossiblestructures.In fact,iffunctionalityweretheonlyrequirement,thesystemcouldexistasasinglemonolithic modulewithnointernalstructureatall.Instead,itisdecomposedintomodulestomakeit understandableandtosupportavarietyofotherpurposes.Inthisway,functionalityislargely independentofstructure.Softwarearchitectureconstrainsitsallocationtostructurewhenother qualityattributesareimportant.Forexample,systemsarefrequentlydividedsothatseveral peoplecancooperativelybuildthem(whichis,amongotherthings,atime-to-marketissue, thoughseldomstatedthisway).Theinterestoffunctionalityishowitinteractswith,and constrains,thoseotherqualities. [TeamLiB] [TeamLiB]

4.2ArchitectureandQualityAttributes

Achievingqualityattributesmustbeconsideredthroughoutdesign,implementation,and deployment.Noqualityattributeisentirelydependentondesign,norisitentirelydependenton implementationordeployment.Satisfactoryresultsareamatterofgettingthebigpicture (architecture)aswellasthedetails(implementation)correct.Forexample: lUsabilityinvolvesbotharchitecturalandnonarchitecturalaspects.Thenonarchitectural aspectsincludemakingtheuserinterfaceclearandeasytouse.Shouldyouprovidea radiobuttonoracheckbox?Whatscreenlayoutismostintuitive?Whattypefaceismost clear?Althoughthesedetailsmattertremendouslytotheenduserandinfluenceusability, theyarenotarchitecturalbecausetheybelongtothedetailsofdesign.Whetherasystem providestheuserwiththeabilitytocanceloperations,toundooperations,ortore-use datapreviouslyenteredisarchitectural,however.Theserequirementsinvolvethe cooperationofmultipleelements. lModifiabilityisdeterminedbyhowfunctionalityisdivided(architectural)andbycoding techniqueswithinamodule(nonarchitectural).Thus,asystemismodifiableifchanges involvethefewestpossiblenumberofdistinctelements.ThiswasthebasisoftheA-7E moduledecompositionstructureinChapter3.Inspiteofhavingtheidealarchitecture, however,itisalwayspossibletomakeasystemdifficulttomodifybywritingobscure code. lPerformanceinvolvesbotharchitecturalandnonarchitecturaldependencies.Itdepends partiallyonhowmuchcommunicationisnecessaryamongcomponents(architectural), partiallyonwhatfunctionalityhasbeenallocatedtoeachcomponent(architectural), partiallyonhowsharedresourcesareallocated(architectural),partiallyonthechoiceof algorithmstoimplementselectedfunctionality(nonarchitectural),andpartiallyonhow thesealgorithmsarecoded(nonarchitectural).

Themessageofthissectionistwofold:

1.Architectureiscriticaltotherealizationofmanyqualitiesofinterestinasystem,and

thesequalitiesshouldbedesignedinandcanbeevaluatedatthearchitecturallevel.

Página2de24

26/03/2008file://C:\DocumentsandSettings\Natalia\Configuraciónlocal\Temp\~hh1BC4.htm

2.Architecture,byitself,isunabletoachievequalities.Itprovidesthefoundationfor

achievingquality,butthisfoundationwillbetonoavailifattentionisnotpaidtothe details.

Withincomplexsystems,qualityattributescan

neverbeachievedinisolation.Theachievement ofanyonewillhaveaneffect,sometimespositiveandsometimesnegative,ontheachievement ofothers.Forexample,securityandreliabilityoftenexistinastateofmutualtension:Themost securesystemhasthefewestpointsoffailure - typicallyasecuritykernel.Themostreliable systemhasthemostpointsoffailure - typicallyasetofredundantprocessesorprocessors wherethefailureofanyonewillnotcausethesystemtofail.Anotherexampleofthetension betweenqualityattributesisthatalmosteveryqualityattributenegativelyaffectsperformance. Takeportability.Themaintechniqueforachievingportablesoftwareistoisolatesystem dependencies,whichintroducesoverheadintothesystem'sexecution,typicallyasprocessor procedureboundaries,andthishurtsperformance. Let'sbeginourtourofqualityattributes.Wewillexaminethefollowingthreeclasses:

1.Qualitiesofthesystem.Wewillfocusonavailability,modifiability,performance,security,

testability,andusability.

2.Businessqualities(suchastimetomarket)thatareaffectedbythearchitecture.

3.Qualities,suchasconceptualintegrity,thatareaboutthearchitectureitselfalthoughthey

indirectlyaffectotherqualities,suchasmodifiability. [TeamLiB] [TeamLiB]

4.3SystemQualityAttributes

Systemqualityattributeshavebeenofinteresttothesoftwarecommunityatleastsincethe

1970s.Thereareavarietyofpublishedtaxonomiesanddefinitions,andmanyofthemhave

theirownresearchandpractitionercommunities.Fromanarchitect'sperspective,thereare threeproblemswithpreviousdiscussionsofsystemqualityattributes: lThedefinitionsprovidedforanattributearenotoperational.Itismeaninglesstosaythat asystemwillbemodifiable.Everysystemismodifiablewithrespecttoonesetofchanges andnotmodifiablewithrespecttoanother.Theotherattributesaresimilar. lAfocusofdiscussionisoftenonwhichqualityaparticularaspectbelongsto.Isasystem failureanaspectofavailability,anaspectofsecurity,oranaspectofusability?Allthree attributecommunitieswouldclaimownershipofasystemfailure. lEachattributecommunityhasdevelopeditsownvocabulary.Theperformancecommunity has"events"arrivingatasystem,thesecuritycommunityhas"attacks"arrivingata system,theavailabilitycommunityhas"failures"ofasystem,andtheusability communityhas"userinput."Allofthesemayactuallyrefertothesameoccurrence,but aredescribedusingdifferentterms. Asolutiontothefirsttwooftheseproblems(nonoperationaldefinitionsandoverlapping attributeconcerns)istousequalityattributescenariosasameansofcharacterizingquality attributes.Asolutiontothethirdproblemistoprovideabriefdiscussionofeachattribute - concentratingonitsunderlyingconcerns - toillustratetheconceptsthatarefundamentalto thatattributecommunity.

QUALITYATTRIBUTESCENARIOS

Página3de24

26/03/2008file://C:\DocumentsandSettings\Natalia\Configuraciónlocal\Temp\~hh1BC4.htm

Aqualityattributescenarioisaquality-attribute-specificrequirement.Itconsistsofsixparts. lSourceofstimulus.Thisissomeentity(ahuman,acomputersystem,oranyother actuator)thatgeneratedthestimulus. lStimulus.Thestimulusisaconditionthatneedstobeconsideredwhenitarrivesata system. lEnvironment.Thestimulusoccurswithincertainconditions.Thesystemmaybeinan overloadconditionormayberunningwhenthestimulusoccurs,orsomeothercondition maybetrue. lArtifact.Someartifactisstimulated.Thismaybethewholesystemorsomepiecesofit. lResponse.Theresponseistheactivityundertakenafterthearrivalofthestimulus. lResponsemeasure.Whentheresponseoccurs,itshouldbemeasurableinsomefashion [TeamLiB]

Chapter4.UnderstandingQuality

Attributes

withFelixBachmannandMarkKlein Note:FelixBachmannandMarkKleinareseniormembersofthetechnicalstaffattheSoftware

EngineeringInstitute.

"Cheshire-Puss,"[Alice]began,rathertimidly..."Wouldyoutellme,please,which wayIoughttogofromhere?""Thatdependsagooddealonwhereyouwanttogo to,"saidtheCat."Oh,Idon'tmuchcarewhere - "saidAlice.Thenitdoesn'tmatter whichwayyougo,"saidtheCat." - solongasIgetsomewhere,"saidAlice."Oh, you'resuretodothat,"saidtheCat,"ifonlyyouwalklongenough." - LewisCarroll,Alice'sAdventuresinWonderland. AswehaveseenintheArchitectureBusinessCycle,businessconsiderationsdeterminequalities thatmustbeaccommodatedinasystem'sarchitecture.Thesequalitiesareoverandabovethat offunctionality,whichisthebasicstatementofthesystem'scapabilities,services,and behavior.Althoughfunctionalityandotherqualitiesarecloselyrelated,asyouwillsee, functionalityoftentakesnotonlythefrontseatinthedevelopmentschemebuttheonlyseat. Thisisshort-sighted,however.Systemsarefrequentlyredesignednotbecausetheyare functionallydeficient - thereplacementsareoftenfunctionallyidentical - butbecausetheyare difficulttomaintain,port,orscale,oraretooslow,orhavebeencompromisedbynetwork hackers.InChapter2,wesaidthatarchitecturewasthefirststageinsoftwarecreationin whichqualityrequirementscouldbeaddressed.Itisthemappingofasystem'sfunctionality ontosoftwarestructuresthatdeterminesthearchitecture'ssupportforqualities.InChapter5 wediscusshowthequalitiesaresupportedbyarchitecturaldesigndecisions,andinChapter7 wediscusshowthearchitectcanmanagethetradeoffsinherentinanydesign. Hereourfocusisonunderstandinghowtoexpressthequalitieswewantourarchitectureto providetothesystemorsystemswearebuildingfromit.Webeginthediscussionofthe relationshipbetweenqualityattributesandsoftwarearchitecturebylookingcloselyatquality attributes.Whatdoesitmeantosaythatasystemismodifiableorreliableorsecure?This chaptercharacterizessuchattributesanddiscusseshowthischaracterizationcanbeusedto expressthequalityrequirementsforasystem. [TeamLiB] [TeamLiB]

4.1FunctionalityandArchitecture

Functionalityandqualityattributesareorthogonal.Thisstatementsoundsratherboldatfirst, butwhenyouthinkaboutityourealizethatitcannotbeotherwise.Iffunctionalityandquality attributeswerenotorthogonal,thechoiceoffunctionwoulddictatethelevelofsecurityor performanceoravailabilityorusability.Clearlythough,itispossibletoindependentlychoosea desiredlevelofeach.Now,thisisnottosaythatanylevelofanyqualityattributeisachievable withanyfunction.Manipulatingcomplexgraphicalimagesorsortinganenormousdatabase mightbeinherentlycomplex,makinglightning-fastperformanceimpossible.Butwhatis possibleisthat,foranyofthesefunctionsyourchoicesasanarchitectwilldeterminethe relativelevelofquality.Somearchitecturalchoiceswillleadtohigherperformance;somewill leadintheotherdirection.Giventhisunderstanding,thepurposeofthischapteris,aswitha

Página1de24

26/03/2008file://C:\DocumentsandSettings\Natalia\Configuraciónlocal\Temp\~hh1BC4.htm

goodarchitecture,toseparateconcerns.Wewillexamineeachimportantqualityattributein turnandlearnhowtothinkaboutitinadisciplinedway. Whatisfunctionality?Itistheabilityofthesystemtodotheworkforwhichitwasintended.A taskrequiresthatmanyormostofthesystem'selementsworkinacoordinatedmannerto completethejob,justasframers,electricians,plumbers,drywallhangers,painters,andfinish carpentersallcometogethertocooperativelybuildahouse.Therefore,iftheelementshavenot beenassignedthecorrectresponsibilitiesorhavenotbeenendowedwiththecorrectfacilities forcoordinatingwithotherelements(sothat,forinstance,theyknowwhenitistimeforthem tobegintheirportionofthetask),thesystemwillbeunabletooffertherequiredfunctionality. Functionalitymaybeachievedthroughtheuseofanyofanumberofpossiblestructures.In fact,iffunctionalityweretheonlyrequirement,thesystemcouldexistasasinglemonolithic modulewithnointernalstructureatall.Instead,itisdecomposedintomodulestomakeit understandableandtosupportavarietyofotherpurposes.Inthisway,functionalityislargely independentofstructure.Softwarearchitectureconstrainsitsallocationtostructurewhenother qualityattributesareimportant.Forexample,systemsarefrequentlydividedsothatseveral peoplecancooperativelybuildthem(whichis,amongotherthings,atime-to-marketissue, thoughseldomstatedthisway).Theinterestoffunctionalityishowitinteractswith,and constrains,thoseotherqualities. [TeamLiB] [TeamLiB]

4.2ArchitectureandQualityAttributes

Achievingqualityattributesmustbeconsideredthroughoutdesign,implementation,and deployment.Noqualityattributeisentirelydependentondesign,norisitentirelydependenton implementationordeployment.Satisfactoryresultsareamatterofgettingthebigpicture (architecture)aswellasthedetails(implementation)correct.Forexample: lUsabilityinvolvesbotharchitecturalandnonarchitecturalaspects.Thenonarchitectural aspectsincludemakingtheuserinterfaceclearandeasytouse.Shouldyouprovidea radiobuttonoracheckbox?Whatscreenlayoutismostintuitive?Whattypefaceismost clear?Althoughthesedetailsmattertremendouslytotheenduserandinfluenceusability, theyarenotarchitecturalbecausetheybelongtothedetailsofdesign.Whetherasystem providestheuserwiththeabilitytocanceloperations,toundooperations,ortore-use datapreviouslyenteredisarchitectural,however.Theserequirementsinvolvethe cooperationofmultipleelements. lModifiabilityisdeterminedbyhowfunctionalityisdivided(architectural)andbycoding techniqueswithinamodule(nonarchitectural).Thus,asystemismodifiableifchanges involvethefewestpossiblenumberofdistinctelements.ThiswasthebasisoftheA-7E moduledecompositionstructureinChapter3.Inspiteofhavingtheidealarchitecture, however,itisalwayspossibletomakeasystemdifficulttomodifybywritingobscure code. lPerformanceinvolvesbotharchitecturalandnonarchitecturaldependencies.Itdepends partiallyonhowmuchcommunicationisnecessaryamongcomponents(architectural), partiallyonwhatfunctionalityhasbeenallocatedtoeachcomponent(architectural), partiallyonhowsharedresourcesareallocated(architectural),partiallyonthechoiceof algorithmstoimplementselectedfunctionality(nonarchitectural),andpartiallyonhow thesealgorithmsarecoded(nonarchitectural).

Themessageofthissectionistwofold:

1.Architectureiscriticaltotherealizationofmanyqualitiesofinterestinasystem,and

thesequalitiesshouldbedesignedinandcanbeevaluatedatthearchitecturallevel.

Página2de24

26/03/2008file://C:\DocumentsandSettings\Natalia\Configuraciónlocal\Temp\~hh1BC4.htm

2.Architecture,byitself,isunabletoachievequalities.Itprovidesthefoundationfor

achievingquality,butthisfoundationwillbetonoavailifattentionisnotpaidtothe details.

Withincomplexsystems,qualityattributescan

neverbeachievedinisolation.Theachievement ofanyonewillhaveaneffect,sometimespositiveandsometimesnegative,ontheachievement ofothers.Forexample,securityandreliabilityoftenexistinastateofmutualtension:Themost securesystemhasthefewestpointsoffailure - typicallyasecuritykernel.Themostreliable systemhasthemostpointsoffailure - typicallyasetofredundantprocessesorprocessors wherethefailureofanyonewillnotcausethesystemtofail.Anotherexampleofthetension betweenqualityattributesisthatalmosteveryqualityattributenegativelyaffectsperformance. Takeportability.Themaintechniqueforachievingportablesoftwareistoisolatesystem dependencies,whichintroducesoverheadintothesystem'sexecution,typicallyasprocessor procedureboundaries,andthishurtsperformance. Let'sbeginourtourofqualityattributes.Wewillexaminethefollowingthreeclasses:

1.Qualitiesofthesystem.Wewillfocusonavailability,modifiability,performance,security,

testability,andusability.

2.Businessqualities(suchastimetomarket)thatareaffectedbythearchitecture.

3.Qualities,suchasconceptualintegrity,thatareaboutthearchitectureitselfalthoughthey

indirectlyaffectotherqualities,suchasmodifiability. [TeamLiB] [TeamLiB]

4.3SystemQualityAttributes

Systemqualityattributeshavebeenofinteresttothesoftwarecommunityatleastsincethe

1970s.Thereareavarietyofpublishedtaxonomiesanddefinitions,andmanyofthemhave

theirownresearchandpractitionercommunities.Fromanarchitect'sperspective,thereare threeproblemswithpreviousdiscussionsofsystemqualityattributes: lThedefinitionsprovidedforanattributearenotoperational.Itismeaninglesstosaythat asystemwillbemodifiable.Everysystemismodifiablewithrespecttoonesetofchanges andnotmodifiablewithrespecttoanother.Theotherattributesaresimilar. lAfocusofdiscussionisoftenonwhichqualityaparticularaspectbelongsto.Isasystem failureanaspectofavailability,anaspectofsecurity,oranaspectofusability?Allthree attributecommunitieswouldclaimownershipofasystemfailure. lEachattributecommunityhasdevelopeditsownvocabulary.Theperformancecommunity has"events"arrivingatasystem,thesecuritycommunityhas"attacks"arrivingata system,theavailabilitycommunityhas"failures"ofasystem,andtheusability communityhas"userinput."Allofthesemayactuallyrefertothesameoccurrence,but aredescribedusingdifferentterms. Asolutiontothefirsttwooftheseproblems(nonoperationaldefinitionsandoverlapping attributeconcerns)istousequalityattributescenariosasameansofcharacterizingquality attributes.Asolutiontothethirdproblemistoprovideabriefdiscussionofeachattribute - concentratingonitsunderlyingconcerns - toillustratetheconceptsthatarefundamentalto thatattributecommunity.

QUALITYATTRIBUTESCENARIOS

Página3de24

26/03/2008file://C:\DocumentsandSettings\Natalia\Configuraciónlocal\Temp\~hh1BC4.htm

Aqualityattributescenarioisaquality-attribute-specificrequirement.Itconsistsofsixparts. lSourceofstimulus.Thisissomeentity(ahuman,acomputersystem,oranyother actuator)thatgeneratedthestimulus. lStimulus.Thestimulusisaconditionthatneedstobeconsideredwhenitarrivesata system. lEnvironment.Thestimulusoccurswithincertainconditions.Thesystemmaybeinan overloadconditionormayberunningwhenthestimulusoccurs,orsomeothercondition maybetrue. lArtifact.Someartifactisstimulated.Thismaybethewholesystemorsomepiecesofit. lResponse.Theresponseistheactivityundertakenafterthearrivalofthestimulus. lResponsemeasure.Whentheresponseoccurs,itshouldbemeasurableinsomefashion