Chapter 4A Technique for Architecture and Design文档格式.docx
《Chapter 4A Technique for Architecture and Design文档格式.docx》由会员分享,可在线阅读,更多相关《Chapter 4A Technique for Architecture and Design文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
∙Inputs,Outputs,andDesignSteps
∙IdentifyArchitectureObjectives
∙KeyScenarios
∙ApplicationOverview
∙KeyIssues
∙CandidateSolutions
∙WhattoDoNext
∙ReviewingYourArchitecture
∙RepresentingandCommunicatingYourArchitectureDesign
Overview
Thischapterdescribesaniterativetechniquethatyoucanusetothinkaboutandsketchoutyourpotentialarchitecture.Itwillhelpyoutobringtogetherthekeydecisionsdiscussedinthisguide;
includingqualityattributes,architecturestyles,applicationtypes,technologies,anddeploymentdecisions.
Thetechniqueincludesaseriesoffivemainsteps,eachofwhichbreaksdownintoindividualconsiderationsexplainedthroughouttheremainderoftheguide.Theiterativeprocesswillhelpyoutoproducecandidatesolutionsthatyoucanfurtherrefinebyrepeatingthesteps,finallycreatinganarchitecturedesignthatbestfitsyourapplication.Attheendoftheprocess,youcanreviewandcommunicateyourarchitecturetoallinterestedparties.
Dependingonyourorganization'
sapproachtosoftwaredevelopment,youmayrevisityourarchitecturemanytimesduringthelifetimeofaproject.Youcanusethistechniquetorefineyourarchitecturefurther,buildingonwhatyouhavelearnedintheinterveningperiodofspiking,prototyping,andactualdevelopment.
Itisalsoimportanttorealizethatthisisjustonepossibleapproach.Therearemanyothermoreformalapproachestodefining,reviewing,andcommunicatingyourarchitecture.Somearediscussedbrieflyattheendofthischapter.
Inputs,Outputs,andDesignSteps
Theinputstoyourdesigncanhelpyoutoformalizetherequirementsandconstraintsthatyourarchitecturemustaccommodate.Commoninputsareusecasesandusagescenarios,functionalrequirements,non-functionalrequirements(includingqualityattributessuchasperformance,security,reliability,andothers),technologicalrequirements,thetargetdeploymentenvironment,andotherconstraints.
Duringthedesignprocess,youwillcreatealistofthearchitecturallysignificantusecases,thearchitectureissuesthatrequirespecialattention,andthecandidatearchitecturesolutionsthatsatisfytherequirementsandconstraintsdefinedinthedesignprocess.Acommontechniqueforrefiningthedesignovertime,untilitsatisfiesalloftherequirementsandadherestoalloftheconstraints,isaniterativetechniqueconsistingofthefivemajorstagesshowninFigure1.
Figure1
Theiterativestepsforcorearchitecturedesignactivities
Thesteps,describedinmoredetailinthefollowingsections,are:
1.IdentifyArchitectureObjectives.Clearobjectiveshelpyoutofocusonyourarchitectureandonsolvingtherightproblemsinyourdesign.Preciseobjectiveshelpyoutodeterminewhenyouhavecompletedthecurrentphase,andwhenyouarereadytomovetothenextphase.
2.KeyScenarios.Usekeyscenariostofocusyourdesignonwhatmattersmost,andtoevaluateyourcandidatearchitectureswhentheyareready.
3.ApplicationOverview.Identifyyourapplicationtype,deploymentarchitecture,architecturestyles,andtechnologiesinordertoconnectyourdesigntotherealworldinwhichtheapplicationwilloperate.
4.KeyIssues.Identifykeyissuesbasedonqualityattributesandcrosscuttingconcerns.Thesearetheareaswheremistakesaremostoftenmadewhendesigninganapplication.
5.CandidateSolutions.Createanarchitecturespikeorprototypethatevolvesandimprovesthesolutionandevaluateitagainstyourkeyscenarios,issues,anddeploymentconstraintsbeforebeginningthenextiterationofyourarchitecture.
Thisarchitecturalprocessismeanttobeaniterativeandincrementalapproach.Yourfirstcandidatearchitecturewillbeahigh-leveldesignthatyoucantestagainstkeyscenarios,requirements,knownconstraints,qualityattributes,andthearchitectureframe.Asyourefineyourcandidatearchitecture,youwilllearnmoredetailsaboutthedesignandwillbeabletofurtherexpandkeyscenarios,yourapplicationoverview,andyourapproachtoissues.
Youshouldnottrytobuildyourarchitectureinasingleiteration.Eachiterationshouldaddmoredetail.Donotgetlostinthedetails,butinsteadfocusonthemajorstepsandbuildaframeworkonwhichyoucanbaseyourarchitectureanddesign.Thefollowingsectionsprovideguidelinesandinformationoneachofthesteps.
IdentifyArchitectureObjectives
Architectureobjectivesarethegoalsandconstraintsthatshapeyourarchitectureanddesignprocess,scopetheexercise,andhelpyoudeterminewhenyouarefinished.Considerthefollowingkeypointsasyouidentifyyourarchitectureobjectives:
∙Identifyyourarchitecturegoalsatthestart.Theamountoftimeyouspendineachphaseofarchitectureanddesignwilldependonthesegoals.Forexample,areyoubuildingaprototype,testingpotentialpaths,orembarkingonalong-runningarchitecturalprocessforanewapplication?
∙Identifywhowillconsumeyourarchitecture.Determineifyourdesignwillbeusedbyotherarchitects,ormadeavailabletodevelopersandtesters,operationsstaff,andmanagement.Considertheneedsandexperienceofyouraudiencetomakeyourresultingdesignmoreaccessibletothem.
∙Identifyyourconstraints.Understandyourtechnologyoptionsandconstraints,usageconstraints,anddeploymentconstraints.Understandyourconstraintsatthestartsothatyoudonotwastetimeorencountersurpriseslaterinyourapplicationdevelopmentprocess.
ScopeandTime
Basedonthehigh-levelgoalsforyourarchitecture,youcanscopetheamountoftimetospendoneachofyourdesignactivities.Forexample,aprototypemightonlyrequireafewdaystodesign,whileacompleteandfullydetailedarchitectureforacomplexapplicationcouldpotentiallytakemonthstocomplete—andmayinvolvearchitectureanddesignovermanyiterations.Useyourunderstandingoftheobjectivestodeterminehowmuchtimeandenergytospendoneachstep,togainanunderstandingofwhattheoutcomewilllooklike,andtodefineclearlythepurposeandprioritiesofyourarchitecture.Possiblepurposesmightinclude:
∙Creatingacompleteapplicationdesign.
∙Buildingaprototype.
∙Identifyingkeytechnicalrisks.
∙Testingpotentialoptions.
∙Buildingsharedmodelstogainanunderstandingofthesystem.
Eachofthesewillresultinadifferentemphasisondesign,andavaryingtimecommitment.Forexample,ifyouwanttoidentifykeyrisksinyourauthenticationarchitecture,youwillspendmuchofyourtimeandenergyidentifyingauthenticationscenarios,constraintsonyourauthenticationarchitecture,andpossibleauthenticationtechnologychoices.However,ifyouareintheearlystagesofconsideringtheoverallarchitectureforanapplication,authenticationwillbeonlyoneofmanyotherconcernsforwhichyouaddressanddocumentsolutions.
Someexamplesofarchitectureactivitiesarebuildingaprototypetogetfeedbackontheorder-processingUIforaWebapplication,testingdifferentwaystomaplocationdatatosearchresults,buildingacustomerorder-trackingapplication,anddesigningtheauthenticationandauthorizationarchitectureforanapplicationinordertoperformasecurityreview.
KeyScenarios
Inthecontextofarchitectureanddesign,a
usecase
isadescriptionofasetofinteractionsbetweenthesystemandoneormoreactors(eitherauseroranothersystem).A
scenario
isabroaderandmoreencompassingdescriptionofauser'
sinteractionwiththesystem,ratherthanapaththroughausecase.Whenthinkingaboutthearchitectureofyoursystem,thegoalshouldbetoidentifyseveralkeyscenariosthatwillhelpyoutomakedecisionsaboutyourarchitecture.Thegoalistoachieveabalancebetweentheuser,business,andsystemgoals(asshowninFigure1ofChapter1"
WhatisSoftwareArchitecture?
"
).
Keyscenariosarethosethatareconsideredthemostimportantscenariosforthesuccessofyourapplication.Keyscenarioscanbedefinedasanyscenariothatmeetsoneormoreofthefollowingcriteria:
∙Itrepresentsanissue—asignificantunknownareaoranareaofsignificantrisk.
∙Itreferstoanarchitecturallysignificantusecase(describedinthefollowingsection).
∙Itrepresentstheintersectionofqualityattributeswithfunctionality.
∙Itrepresentsatradeoffbetweenqualityattributes.
Forexample,yourscenarioscoveringuserauthenticationmaybekeyscenariosbecausetheyareanintersectionofaqualityattribute(security)withimportantfunctionality(howauserlogsintoyoursystem).Anotherexamplewouldbeascenariothatcenteredonanunfamiliarornewtechnology.
ArchitecturallySignificantUseCases
Architecturallysignificantusecaseshaveanimpactonmanyaspectsofyourdesign.Theseusecasesareespeciallyimportantinshapingthesuccessofyourapplication.Theyareimportantfortheacceptanceofthedeployedapplication,andtheymustexerciseenoughofthedesigntobeusefulinevaluatingthearchitecture.Architecturallysignificantusecasesare:
∙BusinessCritical.Theusecasehasahighusagelevelorisparticularlyimportanttousersorotherstakeholderswhencomparedtootherfeatures,oritimplieshighrisk.
∙HighImpact.Theusecaseintersectswithbothfunctionalityandqualityattributes,orrepresentsacrosscuttingconcernthathasanend-to-endimpactacrossthelayerandtiersofyourapplication.AnexamplemightbeaCreate,Read,Update,Delete(CRUD)operationthatissecurity-sensitive.
Afteryouhavedetermine