軟件體系結構體系結構評審專家講座_第1頁
軟件體系結構體系結構評審專家講座_第2頁
軟件體系結構體系結構評審專家講座_第3頁
軟件體系結構體系結構評審專家講座_第4頁
軟件體系結構體系結構評審專家講座_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

軟件體系結構

體系結構評審

ArchitecturalReviews孫志崗sun@4/24/20231?sun@軟件體系結構體系結構評審專家講座第1頁ArchitecturalReviewsArchitecturalreviewsareakeystepinarchitecture-baseddevelopment.Theyincludeamethod(suchasSAAMorATAM),butthefullpracticeincludesmorethanthat.

體系結構評審是開發(fā)過程中一個主要步驟。有專門評審方法(SAAM、ATAM),但在實踐中并不但僅是這些Wewilldiscusscost/benefitsofarchitecturalreviewsdifferentarchitecturalreviewtechniquespreconditionsforanarchitecturalreviewarchitecturalreviewactivitiesoutputsfromanarchitecturalreview4/24/20232?sun@軟件體系結構體系結構評審專家講座第2頁CostsofArchitecturalReviewsTherearethreedifferenttypesofcostsofholdingregulararchitecturalreviews.directstaffcosts

直接員工開銷organizationaloverhead

組織管理開銷indirectstaffcosts

間接員工開銷4/24/20233?sun@軟件體系結構體系結構評審專家講座第3頁ExamplesofDirectStaffCostsAT&T300full-scalereviewsdoneonprojectsof700staff-daysorlonger

全方面評審了300個項目,每個項目標開發(fā)時間都是700人日以上averagecostperreview:70staffdays

每次評審平均開銷:70人日RationalSoftware30reviewsdoneonprojectswithatleast500KSLOCeach

評審了30個項目,每個項目最少500KSLOCaveragecostperreview:$50,000

評審平均花費:$50,0004/24/20234?sun@軟件體系結構體系結構評審專家講座第4頁ExamplesofDirectStaffCostsSAAMevaluations12reviewsdoneonprojectsrangingfrom100KSLOCto1,000KSLOC

12次評審,項目規(guī)模從100KSLOC到1,000KSLOCaveragecostperreview:14to20staff-days

平均花費:14到20人日ATAMevaluations12reviewsdoneonprojectsrangingfrom250KSLOCto2,500KSLOC

12次評審,項目規(guī)模從250KSLOC到2,500KSLOCaveragecostperreview:40to70staffdays

平均花費:40到70人日4/24/20235?sun@軟件體系結構體系結構評審專家講座第5頁ExampleofOrganizationalOverheadCostsofestablishingacorporatereviewunit

建立評審組開銷managementoverheadcommunicationexpensesstaffingtheunit

給評審組配置人手relocatingpersonneltoacentrallocationtraining4/24/20236?sun@軟件體系結構體系結構評審專家講座第6頁ExampleofIndirectStaffCostsUsingseniordesignersforevaluationsinsteadofdesigning

讓高級設計人員參加評審而不是設計lossofproductivity(duetoreassignmentofsuperiordesigners)

生產力下降(高級設計師被委派新任務)timespenttrainingstaffinreviewtechniques

培訓員工評審技術時間消耗4/24/20237?sun@軟件體系結構體系結構評審專家講座第7頁BenefitsofArchitecturalReviewsFivedifferenttypesofbenefitsresultfromholdingarchitecturalreviews.financialforcespreparationforreview

為評審做準備也是一個推進力earlydetectionofproblems

盡早地發(fā)覺問題validationofrequirements

確認需求improvedarchitectures

提升體系結構質量4/24/20238?sun@軟件體系結構體系結構評審專家講座第8頁FinancialBenefitsofReviewsAT&Testimatedthateachreviewedprojectsaves10%oftotalcostasaresultofthereview.Thus,a70-staff-dayreviewofprojectsof700staff-dayspaysforitself.

AT&T估算,每個被評審項目節(jié)約10%成本Consultantswhoperformarchitectureevaluationsreport80%repeatbusiness.

參加評審顧問匯報了80%重復項目4/24/20239?sun@軟件體系結構體系結構評審專家講座第9頁ForcesPreparationforReviewDocumentation/specificationsmustbeprovided,hencetheymustexistorbecreated.

文檔和說明書必須存在Somereviewsusestandardquestions,andthearchitectcanprepareaheadtoensurethatthearchitecturescoreswell.

評審有一些標準問題。體系結構師能夠事先準備,確保這個體系結構可能得高分Reviewsmakethecriteriaforevaluationexplicitbyprioritizingrequirementsorqualitygoals.

經過排定需求和質量目標次序,評審使評定標準變得清楚4/24/202310?sun@軟件體系結構體系結構評審專家講座第10頁EarlyDetectionofProblemsTheproblemsthatcanbefoundbyanarchitecturallevelinspectioninclude

在體系結構層進行檢驗能夠發(fā)覺問題unreasonablerequirementsperformanceproblemsproblemsassociatedwithpotentialfuturemodifications

與未來修改相關問題Theearlierinthelifecyclethatproblemsarefound,theeasieritistofixthem.4/24/202311?sun@軟件體系結構體系結構評審專家講座第11頁ValidationofRequirementsReviewsputstakeholdersinthesameroomwitheachother,oftenforthefirsttime.

評審使各種角色坐在同一個房間內。通常,這是第一次uncoversconflictsandtradeoffs

解開沖突和尋找折中providesaforumfornegotiatedresolutionofproblems

提供了一個論壇,來磋商問題處理方法Itoftenresultsinthegenerationofnewrequirementsortheclarificationofexistingrequirements.

結果通常會是產生新需求和凈化已經有需求4/24/202312?sun@軟件體系結構體系結構評審專家講座第12頁ImprovedArchitecturesDevelopmentorganizationsanticipatetypesofquestionsraisedatreviewsand

開發(fā)者預期在評審時會被發(fā)覺問題,然后designarchitectureswithquestionsinmind

在設計時,問題會時刻圍繞腦海preparedocumentationofthetypeneededatreview

準備評審時需要文檔giveexplicitconsiderationtoqualitiestobereviewed

對將被評審質量原因進行更深入考慮4/24/202313?sun@軟件體系結構體系結構評審專家講座第13頁ReviewTechniquesThereareavarietyoftechniquesforperformingarchitecturalreviews;eachhasadifferentcostandprovidesdifferentinformation.

有很各種評審技術。每種需要不一樣開銷,提供不一樣信息Thesetechniquesfallintooneoftwocategories.questioningtechniques:appliedtoevaluateanyaspectofanarchitectureforanygivenreason

提問技術:用來評價體系結構任何方面measuringtechniques:appliedtoanswerquestionsaboutaspecificquality

度量技術:回答關于某項質量問題4/24/202314?sun@軟件體系結構體系結構評審專家講座第14頁QuestioningTechniquesScenario-basedtechniquesdescribesaspecificinteractionbetweenstakeholdersandasystem

描述角色與系統(tǒng)交互過程example:SAAM,ATAM(partially)Questionnaire-basedtechniques(基于問卷技術)Somequestionsapplytoallarchitectures(especiallythoseinasingledomain).

有些問題被用于全部體系結構,尤其是在單一領域內Somequestionsaskaboutdetailsofaspecificarchitecture.

有些問題問詢一個特定結構細節(jié)Someaskaboutthedevelopmentprocess.“Isthereasinglearchitect?”“Howdoyouensureconformance?”

“你們怎樣確保一致性?”4/24/202315?sun@軟件體系結構體系結構評審專家講座第15頁QuestioningTechniquesQuestionnairesarereused;theyreflectmorematurityorexperiencewithinadomain.

問卷能夠重用;它們表達了在一個領域內成熟度和經驗是否豐富Scenariosmustbedevelopedanewforeachsystem.

場景必須為每個系統(tǒng)重新開發(fā)4/24/202316?sun@軟件體系結構體系結構評審專家講座第16頁MeasuringTechniquesMetrics:quantitativeinterpretationsofobservablemeasures

量度:可測質量定量說明complexitymetricsidentifyareaswheremodificationsmaybedifficult

復雜度測量指明在哪個區(qū)域修改會很困難performancemetricssuggestareaswherebottlenecksmayoccur

性能測量提醒瓶頸會在哪里發(fā)生Reviewstendtofocusonresultsofmetrics

度量結果assumptionsunderlyingtheinterpretationofthemetrics(e.g.,assumedeventdistribution)

對度量解釋中潛在假定4/24/202317?sun@軟件體系結構體系結構評審專家講座第17頁MeasuringTechniquesSimulations,prototypes,experiments:domainspecificmodelsofanarchitectureorperformancemodel

仿真、原型、試驗:建立體系模型或者性能模型areexpensivetocreateoftenexistaspartofdevelopmentanywayMayanswerissuesraisedbyquestioningtechnique

能夠回答提問技術提出問題“Whatevidencedoyouhavethatperformanceisadequate?”

“你憑什么說能夠到達這個性能?”4/24/202318?sun@軟件體系結構體系結構評審專家講座第18頁PropertiesofReviewTechniques評審技術通用性細節(jié)等級階段被評審對象提問技術問卷通用粗糙早期設計和過程場景特定系統(tǒng)中等中期設計度量技術度量通用或者特定領域好中期設計仿真原型試驗特定領域不定早期設計4/24/202319?sun@軟件體系結構體系結構評審專家講座第19頁ReviewProcessAnarchitecturalreviewhasthreemajorelements.preconditions:thesetofnecessaryassetsandconditionsthatmustbeinplacebeforeareviewcanbeperformedsuccessfully

前提:評審成功進行之前,必要資源和條件必須到位activitiesofthereviewitself

活動:評審本身outputs:thereportofreviewresults

輸出:評審結果匯報4/24/202320?sun@軟件體系結構體系結構評審專家講座第20頁ReviewPreconditionsUnderstandthecontextofthereview

了解評審上下文Assembletherightpeople

集合正確人Setorganizationalexpectationsandsupport

期望和支持Prepareforreview

為評審做準備Obtainrepresentationofthearchitecture

取得體系結構文檔4/24/202321?sun@軟件體系結構體系結構評審專家講座第21頁Preconditions:ContextPlannedreviewpartofnormaldevelopmentactivity

正常開發(fā)活動一部分non-adversarial(非敵對性)scheduledwellinadvance(事先安排好日程)builtintoproject’sscheduleandbudget

包含在項目日程和預算之內Unplannedusuallyoccurswhenprojectisintrouble

通常在項目出現問題時采取oftendevolvesintofinger-pointing

造成相互責備canbepainfulforprojectalreadystruggling

對于已經苦苦掙扎了很久項目而言,有些痛苦4/24/202322?sun@軟件體系結構體系結構評審專家講座第22頁Preconditions:ContextTimingofthereviewearly“architecturediscoveryreview”isdoneafterrequirementsareset,butbeforethearchitectureisfirm

需求分析之后,體系結構還沒有確定之前進行isusedtounderstandimplicationsofrequirementsonarchitecture

用來了解需求在體系結構方面隱含內容checksforrequirementsfeasibility(檢驗需求可行性)prioritizesarchitecturalgoals(為質量目標排序)fullarchitecturalreviewisdonewhenarchitecturaldocumentationisavailable

體系結構文檔可用時進行isusedtoevaluatequalitiesofproposedarchitecture

評價被評體系結構質量4/24/202323?sun@軟件體系結構體系結構評審專家講座第23頁Preconditions:PeopleRepresentativesofproject(項目代表)architectdesignersofmajormodulesstakeholders’representativesReviewteammembers(ideally,aseparateunit)

評審團組員(理想情況下是一個獨立組織)atleastonedomainexpertincluded

最少有一個領域教授someonetohandlelogistics(e.g.,meetingrooms,supplies)

后勤人員(會議室、茶水、食品)librariantoorganizedocumentation

文檔管理員“apprenticereviewer”forgrowth

成長中評審員學徒4/24/202324?sun@軟件體系結構體系結構評審專家講座第24頁Preconditions:ReviewTeamThereviewteammustbeassembledsothatmembersareperceivedasimpartial,objective,andrespected

組員要公正、客觀和被尊重membersdevotetheirfull-timeefforttothereview

組員全心加入評審membersarefluentinarchitectureandarchitecturalissues

組員要訓練有素而且口才好itislocatedclosetoartifactsbeingexamined

有足夠權限檢驗被評審材料4/24/202325?sun@軟件體系結構體系結構評審專家講座第25頁Preconditions:ReviewTeamTheteammusthaveaccesstoapplicabledomainknowledge(perhapsviaconsultantstotheteam)

適當領域知識designdocuments

設計文檔reviewcriteria

評審標準supportstaff

支持人員4/24/202326?sun@軟件體系結構體系結構評審專家講座第26頁Preconditions:Organizational

ExpectationsAcontractbetweenthereviewteamandthesponsorofthereviewmustbeestablished.Whowillbetoldwhatuponcompletion?

結束后,哪些內容能夠被告訴哪些人Whatwill(not)bethereviewcriteria?

什么是(不是)評審標準?What/whowillbemadeavailabletoteam?

哪些人和物是評審團能夠使用?Whatfollow-upisexpected?

希望評審結果怎樣?Howlongwillthereviewtake?

要評審多久?4/24/202327?sun@軟件體系結構體系結構評審專家講座第27頁Preconditions:Organizational

ExpectationsOrganizationalcultureandsupportmustbeconsidered.Arereviewspartofthestandardprojectlifecycle?

評審是項目標基本生命周期一部分嗎?Isservingonareviewteamconsideredgoodforone’scareer?

為評審團服務是份好差事嗎?Willtheorganizationallowitssuperiordesignerstimeofffromtheirprojectstoserveonreviewteams?

企業(yè)允許它高級設計師把他項目放在一邊來參加評審嗎?Isthereastandingrevieworganization(eventhoughmembersmayrotateonandoff)?

有常設評審組織嗎(即便組員常進進出出)?4/24/202328?sun@軟件體系結構體系結構評審專家講座第28頁Preconditions:Read-AheadMaterialForprojectbeingreviewedquestionnairesscenarios(Thesearecreatedaspartofthereview,buttimeshouldbeallowedforprojectmemberstodigesttheinformation.)ForreviewteamdescriptionofarchitecturerationaleforarchitectureIdeally,materialwilladdressthereviewquestions.(Passingthistestbecausethequestionswereknowninadvanceisnotcheating,butgoodengineering!)

理想情況,材料要能說明評審時問題4/24/202329?sun@軟件體系結構體系結構評審專家講座第29頁Preconditions:RankedQuality

andBehavioralRequirementsPlantoexaminethreetofivequalityandbehavioralrequirements.

計劃檢驗3到5個質量和行為需求Aparticularrepresentationmedium(language)forthearchitectureisnotnecessary.Aslongastheinformationcanbeextracted(usingprojectmembersasnecessary),theformoftherepresentationisnotimportant.

一個專門體系結構表述媒體(語言)當前并不是必須。由項目組員來講解信息,表述形式并不主要4/24/202330?sun@軟件體系結構體系結構評審專家講座第30頁ReviewActivitiesEvaluate“Run”thescenariosandaskthequestions,oranswertheitemsinthechecklist.

按場景執(zhí)行,并問詢相關問題;或者回答問卷里問題Performtheexperiments.(演示試驗)Executetheprototypesorsimulations.

運行原型或仿真程序Recordcriticalissueshighlightedinthereview

評審中發(fā)覺嚴重問題commentsofprojectmembersontheseissues

項目組員對這些問題說明4/24/202331?sun@軟件體系結構體系結構評審專家講座第31頁ReviewActivitiesRanktheissuesproject-threatening(生死攸關)majorminorEachissueraisedshouldbeaddressedintermsofchangingthearchitecturerelaxingtherequirements4/24/202332?sun@軟件體系結構體系結構評審專家講座第32頁ReviewActivitiesWarningsignsarchitectureforcedtomatchorganization

組織模式影響體系結構top-levelcomponentsnumberover25

頂層組件數超出25個onerequirementdrivesentiredesign

一項需求決定整個設計architecturedependsonalternativesintheoperatingsystem

體系受操作系統(tǒng)選擇影響4/24/202333?sun@軟件體系結構體系結構評審專家講座第33頁ReviewActivitiesWarningsignschoiceofsoftwarecomponentsisdictatedbyhardwarepersonnel

由硬件人員選擇軟件組件redundancynotneededforreliability

面對可靠性時,不考慮冗余伎倆designisexceptiondriven

零碎小事件影響設計noidentifiablearchitect

沒有確定架構師4/24/202334?sun@軟件體系結構體系結構評審專家講座第34頁OutputfromReviewSetofrankedissuessupportingdatacontainedinformalreportfeedbacktoprojectEnhancedsystemdocumentation

增強系統(tǒng)文檔Setofscenariosforfutureuse

未來會用到場景集Identificationofpotentiallyreusablecomponents

認定潛在可重用組件Estimationofcostsandbenefits

估算成本和收益4/24/202335?sun@軟件體系結構體系結構評審專家講座第35頁SAAM:SoftwareArchitectureAnalysisMethod

一個簡單基于場景評審技術4/24/202336?sun@軟件體系結構體系結構評審專家講座第36頁QualitiesAreTooVagueforAnalysisIsthefollowingsystemmodifiable?

這個系統(tǒng)含有適應性嗎?Backgroundcoloroftheuserinterfaceischangedmerelybymodifyingaresourcefile.

經過修改資源文件,能夠改變界面背景色Dozensofcomponentsmustbechangedtoaccommodateanewdatafileformat.

必須修改許多組件才能適應新文件格式Areasonableansweris

一個合理答案:yeswithrespecttochangingbackgroundcolor

有,從改變背景色角度來看nowithrespecttochangingfileformat

沒有,從改變文件格式角度來看4/24/202337?sun@軟件體系結構體系結構評審專家講座第37頁QualitiesAreTooVagueforAnalysisQualitiesonlyhavemeaningwithinacontext.

質量原因只在一定上下文里才有意義SAAMspecifiescontextthroughscenarios.

SAAM經過場景指定上下文4/24/202338?sun@軟件體系結構體系結構評審專家講座第38頁ScenariosAscenarioisabriefdescriptionofastakeholder’sinteractionwithasystem.

場景就是一個角色與系統(tǒng)交互過程簡單描述Whencreatingscenarios,itisimportanttoconsiderallstakeholders.

建立場景時候,一定要考慮到全部角色Customer、User、Developer、Maintainer、Attacker……ThescenariosthatareofmostinterestinaSAAMevaluationarechangescenarios.

SAAM最關心是改變場景4/24/202339?sun@軟件體系結構體系結構評審專家講座第39頁StepsofaSAAMEvaluationIdentifyandassemblestakeholders

確認和召集角色Developandprioritizescenarios

制訂場景,并排好優(yōu)先級Describecandidatearchitecture(s)

描述候選體系結構Classifyscenariosasdirectorindirect

把場景分類為直接場景和間接場景Performscenarioevaluation

進行場景評定Revealscenariointeractions

展現場景間相互影響Generateoverallevaluation

整體評定4/24/202340?sun@軟件體系結構體系結構評審專家講座第40頁Step1:IdentifyandAssembleStakeholdersStakeholderInterestCustomerScheduleandbudget;usefulnessofsystem;meetingcustomers’(ormarket’s)expectationsEndUserFunctionality,usabilityDeveloperClarityandcompletenessofarchitecture;highcohesionandlimitedcouplingofparts;clearinteractionmechanismsMaintainerMaintainability;abilitytolocateplacesofchange4/24/202341?sun@軟件體系結構體系結構評審專家講座第41頁Step1:IdentifyandAssembleStakeholdersStakeholderInterestSystemAdministratorEaseinfindingsourcesofoperationalproblemsNetworkAdministratorNetworkperformance,predictabilityIntergratorClarityandcompletenessofarchitecture;highcohesionandlimitedcouplingofparts;clearinteractionmechanisms4/24/202342?sun@軟件體系結構體系結構評審專家講座第42頁Step1:IdentifyandAssemble

StakeholdersStakeholderInterestTesterIntegrated,consistenterrorhandling;limitedcomponentcoupling;highcomponentcohesion;conceptualintegrityApplicationBuilderArchitecturalclarity,completeness;interactionmechanisms;simpletailoringmechanismsRepresentativeofthedomainInteroperability4/24/202343?sun@軟件體系結構體系結構評審專家講座第43頁Step2:StakeholdersDevelopand

PrioritizeScenariosScenariosshouldbetypicalofthekindsofevolutionthatthesystemmustsupport:

場景應該是系統(tǒng)必須支持各種演化經典:functionalitydevelopmentactivitieschangeactivitiesScenariosshouldrepresenttasksrelevanttoallstakeholders.

全部角色都應該能在場景中表達出來Ruleofthumb:10-15prioritizedscenarios

應該有10-15個優(yōu)先場景4/24/202344?sun@軟件體系結構體系結構評審專家講座第44頁Step3:DescribeCandidate

ArchitecturesItisfrequentlynecessarytoelicitappropriatearchitecturaldescriptions.

通常,對體系結構進行適當描述是非常主要Structureschosentodescribethearchitecturewilldependonthetypeofqualitiestobeevaluated.

以我們需要質量為依據,選擇用來描述體系結構結構4/24/202345?sun@軟件體系結構體系結構評審專家講座第45頁Step4:ClassifyScenariosTherearetwoclassesofscenarios.Directscenariosarethosethatcanbeexecu

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論