软件体系结构软件体系结构的质量属性_第1页
软件体系结构软件体系结构的质量属性_第2页
软件体系结构软件体系结构的质量属性_第3页
软件体系结构软件体系结构的质量属性_第4页
软件体系结构软件体系结构的质量属性_第5页
已阅读5页,还剩80页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件体系结构软件体系结构的质量属性演示文稿1目前一页\总数八十五页\编于五点2优选软件体系结构软件体系结构的质量属性目前二页\总数八十五页\编于五点Relationshipof

FunctionalityandQualityAttributesFunctionalityQuality目前三页\总数八十五页\编于五点功能与体系结构Functionalityandqualityattributesareorthogonal.Functionalitymaybeachievedthroughtheuseofanyofanumberofpossiblestructures.目前四页\总数八十五页\编于五点目前五页\总数八十五页\编于五点三类质量属性系统的质量属性受构架影响的商业属性:例如:上市时间与构架本身相关的一些质量属性:概念完整性目前六页\总数八十五页\编于五点质量因素从头考虑软件体系结构技术的核心是在系统开发过程中尽可能早地处理相关质量问题。目前七页\总数八十五页\编于五点系统的质量属性可用性可修改性性能安全性可测试性易用性通过软件的执行才可见的质量因素非执行可见的质量因素目前八页\总数八十五页\编于五点例子:质量属性的分析中国地球系统科学数据共享网:提供科学数据共享服务的软件平台,要为科学数据共享提供广泛的技术环境支持。目前九页\总数八十五页\编于五点特点:数据来源分散。科学数据的采集和获取,是从科学工作者的研究工作中一点一滴地收集起来的。它们掌握在各个科研院所、科研人员手中。因此,作为科学数据共享网的主要服务内容——科学数据,可能是分布在全国各地,甚至还可能来自国外。目前十页\总数八十五页\编于五点特点:数据的海量存储目前人们掌握的科学数据是经历了数年、数十年地收集整理而得到的。可以想象,数据量是相当庞大的;尤其是气象、地震、地学等学科领域的数据资源,更是巨大。显然,这需要借助海量存储技术对科学数据资源进行存储和管理。目前十一页\总数八十五页\编于五点特点:运算量大由于数据量的庞大,所以科学数据资源的收集、搜索方面的运算量是可观的。此外,科学数据共享网不仅仅提供数据共享的功能,还会提供科学数据计算等增值服务,这无形中也增加了系统的运算量。目前十二页\总数八十五页\编于五点特点:使用人员广泛科学数据有其广泛深远的研究价值、社会价值和经济价值。所以,对科学数据有使用需求的人员是来自各行各业的,既有科研单位和学者,也有政府机构和企业单位。目前十三页\总数八十五页\编于五点需求分析能够快捷地收集数据。科学数据分散在科研院所和科学家当中。要设计开发一套收集数据的机制,使其能够快速地整合到系统中,提供数据共享服务。数据收集的途径主要通过网络媒介,而且不能影响系统所提供的网络服务的正常运行。有效存储和管理海量的数据,并快速定位数据。该系统能够提供目录服务,合理地管理数据;提供给用户查阅、下载、使用数据的服务。当用户在系统中查找数据时,希望能够快速定位数据,提供服务,平均响应时间最长不超过20秒。保护数据版权,保证数据的安全性。科学数据存在着版权的问题。在数据使用上,需要版权保护。此外,由于一些数据有其时效性和保密性,所以在提供服务时需要对数据访问进行相应的安全控制。目前十四页\总数八十五页\编于五点非功能性需求

质量属性针对质量属性的需求

可用性/可靠性系统应能长期稳定地提供服务,近似7X24小时工作强度;

在负载过重或是系统崩溃的情况下,能保证用户请求不丢失;当系统出现故障或崩溃时,恢复时间不超过两小时;

可维护性修改某个子系统或服务时,不影响其他子系统或服务;

性能高峰时系统的平均响应时间控制在20秒以内;系统能够满足100个并发的用户查询请求;系统至少能够支持2000个用户的在线服务;

安全性对有保密性要求的数据实施安全控制;提供系统运行日志监控信息,供管理员了解系统运行状态;商业属性2005年中期完成系统,年底前投入正式使用;能够利用现有系统的可利用资源;初期总共投资2000万,分别用于系统的集成建设和开发、共享 数据标准的制定。目前十五页\总数八十五页\编于五点系统需求的获取一般两种途径:用户直接主动地提供的需求。主要是一些功能性需求和领域知识。另一条是构架师设计“对话问题”,通过对用户提问,进一步与他们沟通,从而得到更明确的需求。(构架师以软件系统各方面的质量属性为索引,系统地启发用户谈出他们实际需要、但没有表达出来或是表达不完全的内容。这些需求虽不是具体的功能,但是对系统设计和实现具有巨大的影响)目前十六页\总数八十五页\编于五点质量属性场景(qualityattributescenario)人,计算机系统或其它激励源可以是整个系统,或系统的一部分目前十七页\总数八十五页\编于五点质量属性场景(qualityattributescenario)刻画质量属性的手段,6部分组成:刺激源刺激环境制品响应响应度量以一种统一规范的方式来表达“质量属性”的需求。目前十八页\总数八十五页\编于五点目前十九页\总数八十五页\编于五点系统的质量属性可用性可修改性性能安全性可测试性易用性目前二十页\总数八十五页\编于五点可用性(availability)与系统故障及其相关后果有关。所关注的方面:如何检测系统故障系统故障发生的频度出现故障时会发生什么情况允许系统有多长时间非正常运行什么时候可以安全地消除故障如何防止故障的发生以及发生故障时要求进行哪种通知目前二十一页\总数八十五页\编于五点可用性一般场景场景的部分可能的值

源系统内部,系统外部刺激缺陷:疏忽未响应、崩溃、时间错误、响应错误制品系统的处理器、通信通道、持久存储器、进程环境正常操作、降级模式响应系统应该检测事件,并进行如下一个或多个活动

将其纪录下来;通知适当的各方,包括用户和其它系统;根据已定义的规则禁止导致错误或故障的事件源;在一段预先指定的时间间隔内不可用,其中,时间间隔取决于系统的关键程度;继续或降级运行。

响应度量系统必须可用的时间间隔可用时间系统可在降级模式下运行的时间修复时间目前二十二页\总数八十五页\编于五点可用性说明

这个属性对于一些安全性非常关键的系统是十分重要的,例如:飞机上的软件,医院使用的系统等等,如果系统“down”掉,会伤及人或有威胁生命危险的一些系统。它是在系统、组件或是应用程序发生故障时快速恢复基本服务的系统管理策略。其目的是最大程度地减少服务中断,而不是容错。目前二十三页\总数八十五页\编于五点可用性定义是系统正常运行的时间比例。一般将系统可用性定义为:在计算可用性时,通常不考虑预定的停机时间可理解为计算机在任一时刻正常工作的概率。目前二十四页\总数八十五页\编于五点实现可用性的战术战术:设计决策或策略,实现质量属性所采用的方法或解决方案。可用性战术用于以下几方面:错误检测(FaultDetection

)错误恢复(FaultRecovery

)错误预防(FaultPrevention)可用性战术阻止错误发展成故障;或者把错误的影响限制在一定范围内,从而使修复成为可能。目前二十五页\总数八十五页\编于五点错误检测系统必须能够检测任何潜在的错误,从这些错误中恢复或在第一时间阻止它们的发生.避免错误发展成为故障。命令/响应心跳异常目前二十六页\总数八十五页\编于五点命令/响应(ping/echo)类似于ping命令,在客户和服务器之间发送一个packet来判断系统是否正常运行.这个战术一般用于网络系统。目前二十七页\总数八十五页\编于五点心跳(Heartbeatmonitor)类似于“命令/响应”,所不同的是“心跳”一般用于软件组件之间。一个组件每隔一定的时间发出一个心跳消息,另一个组件收听该消息;利用这种方式告诉收听消息的组件它在正常运转。目前二十八页\总数八十五页\编于五点例子:集群式服务器目前二十九页\总数八十五页\编于五点例子:ATM自动柜员机可以定期向服务器发送上一次交易的日志。该消息不仅起到了心跳的作用,而且传送了要处理的数据。目前三十页\总数八十五页\编于五点异常(Exception)错误类:疏忽:组件未能对某个输入做出响应崩溃:组件不断遭受疏忽的错误时间:组件做出了响应,但做出响应的时间太早或太迟响应:组件用了一个不正确的值做出了响应

当识别出了上述错误类中的某一个时,就会出现异常,异常处理程序通常在引入该异常的相同进程中执行。例如:java和C++中的异常处理机制目前三十一页\总数八十五页\编于五点异常(Exception)

当出现某些指定的硬件故障或软件错误时,系统仍能执行规定的一组程序,或者说程序不会因系统中的故障而中止或被修改,并且执行结果也不包含系统中故障所引起的差错。目前三十二页\总数八十五页\编于五点错误恢复战术-表决(Voting)

BasicInputValue12341.Votersendsoutsimplevaluetodifferentprocessesatsametime.2.Eachprocessesdoesasimplecalculationontheinputvalue.3.Theresultissentbacktothevoterprocess.4.Ifaprocess’resultisincorrect(fault),theprocessmaybeterminated/restarted.Thinkaboutvotingforyourfavouritesportsstar,ifonecandidatedoessomethingbad,youmightnotvoteforhim/her!Process1Process2Process3Voter同时也可用于错误检测目前三十三页\总数八十五页\编于五点表决

版本1版本2版本N表决器结果告警多数少数目前三十四页\总数八十五页\编于五点主动冗余(热启动)ActiveRedundancy(hotrestart)

DoSomeAction1231.Controllerrequestsprocessestodoanaction.2.Eachprocessreceivesrequestandworksontheaction.3.Aresponseissentbackfromeachprocess.Ifthereisafault,arecoverywillbeveryfast.Thecontrollercouldsendoutrequeststocheckifaprocessisdownandexpectareceipttoshowprocessup.Process1Process2Process3Controller目前三十五页\总数八十五页\编于五点被动冗余(暖重起)

Themaincomponentreceivesnewdata.Themaincomponentsendsolddata/statetobackupcomponents.3.Iffaulthappens,decisionhastobemadetowhatbackupcomponenttoswitch.

MainComponent

Data

Backup1OldData

Backup2OldDataNewData123目前三十六页\总数八十五页\编于五点备件一般用于硬件/操作系统的解决方案出现故障时,必须将其重新启动为适当的软件配置,并对其状态进行初始化,一般用原来组件的数据和状态。目前三十七页\总数八十五页\编于五点恢复策略-Shadow操作

设置出现故障的组件可以在短时间内以“Shadow模式”运行,以确保在恢复该组件之前,模仿工作组件的行为。目前三十八页\总数八十五页\编于五点恢复策略-状态再同步(StateResynchronisation

Restorethenewactivecomponenttothatofthestateofthepreviouslyactivecomponent–dependentondowntime/upgrades/patches,

etc.一般用于主动/被动冗余.目前三十九页\总数八十五页\编于五点恢复策略-检查点/回滚(Checkpoint/Rollback

)在执行的程序中设置若干测试点,在每个测试点上检查输出结果。当测试程序检测出错误时,就认为正在执行的程序是一个错误运行的系统,这段程序要被重新执行,即程序的回滚。目前四十页\总数八十五页\编于五点FaultPreventionRemovalfromservice(viareboot,etc)TransactionsProcessmonitor(killthenonperformingprocessandcreateanewinstanceofit,initializedtosomeappropriatestateasinthesparetactic.)目前四十一页\总数八十五页\编于五点Summaryofavailabilitytactics

目前四十二页\总数八十五页\编于五点Example:AvailabilitytacticsofaninformationsystemFaultdetectionPing:aboutevery5secondsHeartbeat:shouldreceiveanoticeevery5secondsExceptionhandlingRecoveryHotrestart/switch:redirecttobackupserverBackupcommunicationpathStateresynchronization:backupdbfiles,redologPreventionRemovalfromservice:keeponlyminimalservicesTransaction目前四十三页\总数八十五页\编于五点可修改性(Modifiability)有关变更的成本问题,它提出两个关注点:(1)可以修改什么(制品)?(2)何时进行变更以及由谁进行变更(环境)?目前四十四页\总数八十五页\编于五点可修改性的一般场景生成场景的部分可能的值源最终用户,开发人员,系统管理员刺激希望增加/删除/修改/改变功能、质量属 性、容量制品系统用户界面、平台、环境或与目标系统 交互的系统环境在运行时、编译时、构建时、设计时响应查找构架中需要修改的位置,进行修改且 不会影响其它功能,对所做的修改进行测 试,部署所作的修改响应度量根据所影响的元素的数量度量的成本、努 力、资金;该修改对其他功能或质量属性 所造成的影响程度目前四十五页\总数八十五页\编于五点可修改性

局部化修改防止连锁反应推迟绑定时间目前四十六页\总数八十五页\编于五点可修改性战术“局部化”修改战术“防止连锁反应”战术“推迟绑定时间”战术目前四十七页\总数八十五页\编于五点“局部化”修改战术目标:把变更限制在一定范围内在“设计”期间为模块分配责任,以把预期变更限制在一定范围内。目前四十八页\总数八十五页\编于五点“局部化”修改战术维持语义的一致性预期期望的变更泛化该模块限制可能的选择目前四十九页\总数八十五页\编于五点维持语义的一致性指模块中责任之间的关系;目标是确保这些责任协同工作。责任越单一越好。(Java类和方法的设计原则,Unix哲学)子战术:抽象出通用服务:例如:VisualStudio框架;中间件的使用。目前五十页\总数八十五页\编于五点预期期望的变更考虑所预想变更的集合。战术目标是降低变更的影响,由于无法预期所有的变更,实践中很难单独应用,通常结合语义一致性来使用。例如虚函数void*指针目前五十一页\总数八十五页\编于五点泛化模块模块越广泛,需要作的变更越有可能通过调整输入参数达到,而不用修改模块。例如:C++模板库、通用编程概念目前五十二页\总数八十五页\编于五点限制可能的选择如果修改的范围非常大,影响很多模块,则限制能进行的修改,从而降低影响。例如,软件产品线限制支持主流平台目前五十三页\总数八十五页\编于五点防止连锁反应的战术模块之间的依赖性(B依赖于A)(1)语法(数据格式、服务签名)(2)语义(数据、服务语义)(3)顺序(数据顺序、时间约束)(4)A的一个接口的身份(5)A的位置(6)A提供的数据/服务质量(7)A的存在(8)A的资源行为目前五十四页\总数八十五页\编于五点防止连锁反应的战术信息隐藏:将变更隔离在一个模块内,与预期期望的变更有很大的关系。维持现有的接口如果B依赖于A的一个接口的名字和签名,则维持该接口及其语法能够使B保持不变。目前五十五页\总数八十五页\编于五点维持现有的接口添加接口添加适配器stub程序:如果修改要求删除A,且B依赖于A的签名,则为A提供一个stub程序可使B保持不变模块A适配器目前五十六页\总数八十五页\编于五点防止连锁反应的战术限制通信路径

reducethenumberofmodulesthatconsumedataproducedbythegivenmoduleandthenumberofmodulesthatproducedataconsumedbyit.仲裁者的使用:管理依赖关系data(syntax).Repositories(bothblackboardandpassive)actasintermediariesbetweentheproducerandconsumerofdatatoconvertdataformatetc.目前五十七页\总数八十五页\编于五点防止连锁反应的战术仲裁者的使用service(syntax).Thefacade,bridge,mediator,strategy,proxy,andfactorypatternstoconvertinterface.identityofaninterfaceofA.Abrokerpatterntohideidentity.locationofA(runtime).AnameserverenablesthelocationofAtobechangedwithoutaffectingB.Aresourcemanagerisanintermediarythatisresponsibleforresourceallocation.existenceofA.Thefactorypatternhastheabilitytocreateinstancesasneeded.目前五十八页\总数八十五页\编于五点推迟绑定时间在运行时注册:即插即用配置文件:在启动时设置参数多态:允许方法调用的后期绑定组件更换:允许载入时间绑定遵守已定义的协议:允许独立进程的运行时绑定目前五十九页\总数八十五页\编于五点Summaryofmodifiabilitytactics

目前六十页\总数八十五页\编于五点Example:modifiabilitytacticsofDWLocalizechangesSemanticcoherence:modularizationAnticipatedexpectedchanges:interface/inheritanceGeneralizemodule:useSTLAbstractcommonservice:CWM,SOAP,MDXPreventionofrippleeffectInformationhiding:OOPUseintermediary:designpatterns,factory…DeferbindingtimeConfigurationfileAdherencetodefinedprotocol:XMLA目前六十一页\总数八十五页\编于五点性能(performance)性能与时间有关。性能与事件发生时,将要耗费多长时间做出响应有关。目前六十二页\总数八十五页\编于五点性能的一般场景刺激源:刺激来自外部(有可能是多个)或内部源刺激:刺激是事件到达。可以把到达模式刻画为周期性的、随机的或是偶然的。制品:总是系统的服务环境:系统可以处在各种操作模式下,如正常、紧急或超载模式响应:系统必须处理到达的事件。这可能会导致系统环境的变化。响应度量:响应度量就是系统处理到达的事件所用的时间(等待时间或必须处理事件的期限)、该时间的变化(抖动)、在某一特定时间间隔内可以处理的事件数量(吞吐量)或对不能处理的事件的描述(缺失率、数据丢失)。目前六十三页\总数八十五页\编于五点性能战术

Threetacticcategoriesresourcedemandresourcemanagementresourcearbitration目前六十四页\总数八十五页\编于五点ResourceDemandTacticsIncreasecomputationalefficiency(improvealgorithm)Reducecomputationaloverhead(pass-by-ref)Manageeventrate(reducethesamplingfrequency)Boundexecutiontimes(limitthenumberofiterations)Boundqueuesizes目前六十五页\总数八十五页\编于五点ResourceManagementTacticsIntroduceconcurrencyMaintainmultiplecopiesofeitherdataorcomputations(clientcache)Increaseavailableresources

目前六十六页\总数八十五页\编于五点ResourceArbitrationTactics-schedulingpoliciesFirst-in/First-outFixed-priorityscheduling(basedonsemanticimportance,deadlinemonotonicorratemonotonic)Dynamicpriorityscheduling(roundrobin,earliestdeadlinefirst)Staticscheduling(pre-emptionpointsandthesequenceofassignmenttotheresourcearedeterminedoffline)目前六十七页\总数八十五页\编于五点Summaryofperformancetactics

目前六十八页\总数八十五页\编于五点Example:performancetacticsofDWResourcedemandIncreasecomputationefficiency:newQCalgorithmReducecomputationoverhead:variousmappingsResourcemanagementIntroduceconcurrency:MPIbasedmultithreadingMaintainmultiplecopies:resultsetcacheResourcearbitrationSchedulingpolicy:timing+on-demand:FIFO目前六十九页\总数八十五页\编于五点安全性(Security)衡量系统向合法用户提供服务的同时,阻止非授权使用的能力。目前七十页\总数八十五页\编于五点安全性的一般场景刺激源:攻击源可能是人,也可能是另一个系统。正确识别、非正确识别,可能来自内部/外部;经过了授权/未经授权刺激:刺激就是攻击或试图违反违反安全性。未经授权的人或系统试图显示信息、改变和/或删除信息、访问系统服务或降低系统服务的可用性。制品:攻击的目标可能是系统提供的服务,也可能是系统中的数据。环境:遇到攻击时有很多种可能的情形:在线或离线;联网或与网络断开;连接有防火墙或直接连到了网络上。响应:对用户进行身份验证;隐藏用户的身份;阻止对数据和/或服务的访问;允许访问数据和/或服务;授予或收回对访问数据和/或服务的许可;根据身份记录访问/修改或试图访问/修改数据/服务;以一种不可读的格式存储数据;识别无法解释的对服务的高需求;通知用户或另外一个系统,并限制服务的可用性。响应度量:用成功的概率表示、避开安全防范措施所需要的时间/努力/资源;检测到攻击的可能性、确定攻击或访问/修改数据和/或服务的个人的可能性;在拒绝服务攻击的情况下仍可以获得的服务的百分比;恢复数据/服务;被破坏的数据/服务和/或被拒绝的合法访问的范围目前七十一页\总数八十五页\编于五点攻击试图突破安全防线的行为被称为攻击。例如未经授权试图访问数据或服务试图修改数据试图使系统拒绝向合法用户提供服务目前七十二页\总数八十五页\编于五点SecurityTactics–resistingattacksGoals:non-repudiation,confidentiality,integrity,andassuranceAuthenticateusers(CA)Authorizeusers(roles)Maintaindataconfidentiality(VPN,SSL)Maintainintegrity(checksum)Limitexposure(limitedservicesareavailableoneachhost)Limitaccess(firewalls)目前七十三页\总数八十五页\编于五点SecurityTactics–detectingattacksIntrusionsystem:comparetheaccesspatterntoknownattackingpatternsRecoveringfromattacksRestorationusingavailabilitytacticsIdentifyingintruderusingaudittrail目前七十四页\总数八十五页\编于五点Summaryoftacticsforsecurity

目前七十五页\总数八十五页\编于五点Example:SecuritytacticsofaninformationsystemDetectingattacksIntrusiondetection:viafirewall,watchondblisteningportandftpportResistingattacksAuthenticateusers:complexenoughpasswordfordbaAuthorizeusers:userscan’tmodifydataLimitaccess:blacklist/whitelist目前七十六页\总数八十五页\编于五点可测试性(testability)通过测试揭示软件缺陷的容易程度目前七十七页\总数八十五页\编于五点可测试性的一般场景刺激源:该测试由单元测试人员、集成测试人员、系统测试人员或客户执行。可由其他开发人员或外部小组执行设计测试。刺激:到达了开发过程中的一个里程碑。制品:设计过程、一段代码或整个系统。环境:测试可以在设计时、开发时、编译时或部署时进行响应:由于可测试性与可观察性和可控制性相关,因此所期望的响应就是可以控制系统以执行所期望的测试,并可以观察到对每个测试的响应。响应度量:在某些测试中执行的语句的百分比。最长测试链的长度(对执行测试的困难的度量)以及对发现额外的缺陷的可能性的估计。目前七十八页\总数八十五页\编于五点TestabilityTacticsRecord/playback(captureinput/outputinfoacrossinterfacefortestingsuite)Separateinterfacefromimplementation(teststubw/oskeleton)Specializeaccessroutes/interfaces(separatedfromrequiredfunctionality)Built-inmonitors(Acomponentcanimplementtacticsbasedoninternalstatetosupportthetestingprocess)目前七十九页\总数八十五页\编于五点Summaryoftestabilitytactics目前八十页\总数八十五页\编于五点易用性(usability)对用户来说完成某个期望的任务的容易程度和系统所提供的用户支持的种类。目前八十一页\总数八十五页\编于五点易用性的一般场景场景的部分

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论