Chapter 4A Technique for Architecture and Design文档格式.docx

上传人:b****6 文档编号:21085623 上传时间:2023-01-27 格式:DOCX 页数:14 大小:290.60KB
下载 相关 举报
Chapter 4A Technique for Architecture and Design文档格式.docx_第1页
第1页 / 共14页
Chapter 4A Technique for Architecture and Design文档格式.docx_第2页
第2页 / 共14页
Chapter 4A Technique for Architecture and Design文档格式.docx_第3页
第3页 / 共14页
Chapter 4A Technique for Architecture and Design文档格式.docx_第4页
第4页 / 共14页
Chapter 4A Technique for Architecture and Design文档格式.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

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页珍藏版)》请在冰豆网上搜索。

Chapter 4A Technique for Architecture and Design文档格式.docx

∙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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1