您好,欢迎访问三七文档
1质量属性QualityAttribute2主要内容一、质量属性场景二、理解质量属性三、实现质量属性的战术四、设计架构质量属性的定义Aqualityattribute(QA)isameasurableortestablepropertyofasystemthatisusedtoindicatehowwellthesystemsatisfiestheneedsofitsstakeholders.质量属性是一个系统的可测量或可测试的属性,它被用来描述系统满足利益相关者需求的程度本章任务怎样描述质量属性怎样达成质量属性怎样应用质量属性(在架构决策时)3系统的架构、功能和质量属性软件开发时人们往往关注功能实情:导致软件系统修改的主因不是功能,而是系统难以维护、扩展、被黑客破坏等。系统的功能不能决定系统的架构质量是系统的属性,而功能是系统的目标45构架和质量属性之间的关系质量属性不完全依赖于设计、实现和部署易用性涉及构架和非构架两方面的问题-系统能否为用户提供取消操作?——这一类属于构架层次的问题-什么样的布局最直观?什么样的字体最清晰?——这属于详细设计的部分,不属于构架设计。可修改性:-划分功能的方式——这属于架构层次的问题-模块中的编码技巧——非架构层次问题系统性能:-组件间通讯数量、分配给每个组件的功能、资源共享的方式,等,这些都属于架构层次的问题-实现某功能采用的算法、如何编码这些算法,等,都会影响系统性能,但属于非构架层次的问题。6构架和质量属性之间的关系构架不能独自实现质量属性构架为质量属性的实现打下了基础,但不关注实现细节的话,这个基础就失去了意义。复杂系统中,不能孤立地实现质量属性例如,为了可靠性,增加冗余处理器和进程,保证不会因单点故障使系统崩溃。但这样对安全性不利,系统会有更多的地方可能会遭到入侵质量属性的来源:3类需求1.FunctionalrequirementsTheserequirementsaresatisfiedbyincludinganappropriatesetofresponsibilitieswithinthedesign.2.QualityattributerequirementsTheserequirementsaresatisfiedbythestructuresandbehaviorsofthearchitecture.3.Constraints:adesigndecisionthat’salreadybeenmade.satisfiedbyacceptingthedesigndecisionandreconcilingitwithotheraffecteddesigndecisions.78描述质量属性需求的6个部分刺激stimulus是到达系统的事件event刺激源stimulussource生成刺激的实体(计算机、人-可信或不可信)响应response刺激到达后采取的反应响应度量responsemeasure对响应效果进行度量环境:刺激发生时的各种条件制品:可能是系统,或系统的一部分核心9用如下方式描述质量属性场景刺激源刺激环境响应响应度量制品质量属性的一般场景1011可用性场景的一个例子外部系统未曾预料的消息正常操作进程通知操作员继续操作没有停机12可修改性场景的一个例子开发人员希望改变用户界面设计时代码修改不产生副作用3小时内一、质量属性场景1314我们通常考虑如下质量属性系统质量属性可用性Availability可修改性性能安全性可测试性易用性其他如商业属性(上市时间)、概念属性等,在本课程中不讨论15可用性AvailabilityAvailabilityreferstotheabilityofasystemtomaskorrepairfaultssuchthatthecumulativeserviceoutageperioddoesnotexceedarequiredvalueoveraspecifiedtimeinterval可用性,通常关注如下方面:系统故障发生的频度、出现故障时会发生什么情况(会出人命吗)、允许系统非正常运行多久、如何防止故障发生、发生故障时通知给哪里,等区分故障failure\错误error\过错、责任fault故障产生的原因即过错责任Fault和failure之间的状态,称之为error如果不进行纠正,错误会变成故障用户可以观察到故障、但看不到错误16可用性Availability通常,将可用性定义为平均正常工作时间(MTBF)平均正常工作时间(MTBF)+平均修复时间(MTTR)不计算正常停机时间whereMTBFreferstothemeantimebetweenfailuresandMTTRreferstothemeantimetorepair.α=Hazardanalysis:isatechniquethatattemptstocatalogthehazardsthatcanoccurduringtheoperationofasystem.Catastrophic灾难性Thiskindoffailuremaycauseacrash.Thisfailurerepresentsthelossofcriticalfunctionrequiredtosafelyflyandlandaircraft.Hazardous有危险Thiskindoffailurehasalargenegativeimpactonsafetyorperformance,orreducestheabilityofthecrewtooperatetheaircraftduetophysicaldistressorahigherworkload,orcausesseriousorfatalinjuriesamongthepassengers.Major显著Thiskindoffailureissignificant,buthasalesserimpactthanaHazardousfailure(forexample,leadstopassengerdiscomfortratherthaninjuries)orsignificantlyincreasescrewworkloadtothepointwheresafetyisaffected.Minor不显著Thiskindoffailureisnoticeable,buthasalesserimpactthanaMajorfailure(forexample,causingpassengerinconvenienceoraroutineflightplanchange).Noeffect无影响Thiskindoffailurehasnoimpactonsafety,aircraftoperation,orcrewworkload.17Asimplefaulttree18AvailabilityGeneralScenario19可用性的战术20DetectFaults错误检测-1Ping/echo节点间的异步“请求/回应”信息。检测可达性和往返延迟Monitor一个用来监视系统其他部分的组件Heartbeat监测者和被监测者之间交换的周期性信息TimestampSanitychecking健全性检查某项操作或输出的合理性ConditionmonitoringVoting(TMR)Replication:防止硬件错误,但避免不了逻辑错误Functionalredundancy功能性冗余防止设计或实施时的错误接收相同的输入,要给出相同的输出。但其内部实现要用不同的方法DetectFaults错误检测-2Analyticredundancy不仅限于组件的私有部分的多样性,而且在输入和输出方面也实现多样性。ExceptiondetectionSystemexceptions:被0除、总线地址失效等Parameterfence:防止对象的参数被覆盖Parametertyping参数限制timeout22RecoverfromFaultsActiveredundancy(hotspare热备份)Passiveredundancy(warmspare暖备份)Spare(coldspare冷备份)ExceptionhandlingRollbackSoftwareupgradeRetryIgnorefaultybehaviorDegradationReconfigurationShadowStateresynchronizationEscalatingrestart逐步重启Non-stopforwarding(NSF)直通23PreventFaultsRemovalfromserviceTransactions事务Atomic,Consistent,Isolated,andDurablePredictivemodelExceptionpreventionIncreasecompetenceset扩充能力集合isthesetofstatesinwhichitis“competent”tooperate.24ADesignChecklistforAvailability-125ADesignChecklistforAvailability-226ADesignChecklistforAvailability-327ADesignChecklistforAvailability-428互操作性InteroperabilityInteroperabilityisaboutthedegreetowhichtwoormoresystemscanusefullyexchangemeaningfulinformationviainterfacesinaparticularcontext.29互操作性一般场景30一个互操作性示例31互操作性战术32ChecklisttoSupporttheDesignandAnalysisProcessforInteroperability33ChecklisttoSupporttheDesignandAnalysisProcessforInteroperability-234ChecklisttoSupporttheDesignandAnalysisProcessforInteroperability-33536可修改性Modifiability什么可以改变?系统的任何部分:功能、平台、环境、质量、容量何时修改、由谁来修改?修改的代价可修改性一般场景37可修改性场景的一个例子38可修改性战术3940性能Performance:Anounceofperformanceisworthpoundsofpromises.性能最相关的即:时间Sampleconcreteperformancescenario一个具体的性能属性场景41性能属性的战术42ADesignChecklistforPerformance4344ADesignChecklistforPerformance-2ADesignChecklistforPerformance-346安全性Security:衡量系统在向合法用户提供服务的同时,阻止非授权使用的能力confidentiality,integrity,andavailability(CIA)ConfidentialityisthepropertythatdataorservicesareprotectedfromunauthorizedaccessIntegrityisthepropertythatdataorservicesarenotsubjectt
本文标题:软件质量属性
链接地址:https://www.777doc.com/doc-3679807 .html