《软件体系结构课件(第七课)质量属性.ppt》由会员分享,可在线阅读,更多相关《软件体系结构课件(第七课)质量属性.ppt(64页珍藏版)》请在三一办公上搜索。
1、理解质量属性,问题:,1.描述一下基于构架的设计过程。2.什么叫构架商业周期?3.构架的需求受哪些因素的影响?4.系统的质量属性都有哪几种?它们的含义是什么?举例说明。5.什么叫质量属性场景?为什么要使用质量属性场景?,基于体系结构的开发过程,导出体系结构需求,设计体系结构,文档化体系结构,分析体系结构,实现体系结构,维护体系结构,迭代过程,每一步都包括:,其中每个步骤包括:,输入构造活动验证活动输出,问题:,1.描述一下基于构架的设计过程。2.什么叫构架商业周期?3.构架的需求受哪些因素的影响?4.系统的质量属性都有哪几种?它们的含义是什么?举例说明。5.什么叫质量属性场景?为什么要使用质量
2、属性场景?,导出体系结构需求,成本要低,人人都得干活,特性突出,能很快投放市场,成本低,能与同类产品相匹敌,行为、性能、安全性、可靠性、易用性,可修改性,成本低、及时交付、不要改动的太频繁,哦,我权衡权衡吧,与构架有关的影响因素,需求(质量属性),构架,系统,构架商业周期(ABC),软件构架是技术、商业和社会等诸多因素作用的结果,而软件构架的存在反过来又会影响技术、商业和社会环境,从而影响未来的构架。我们把这种相互影响的周期-从环境到构架又返回到环境-称作构架商业周期。,问题:,1.描述一下基于构架的设计过程。2.什么叫构架商业周期?3.构架的需求受哪些因素的影响?有哪几类需求?4.系统的质量
3、属性都有哪几种?它们的含义是什么?举例说明。5.什么是质量属性场景?为什么要使用质量属性场景?,需求,功能需求 往往为数众多,可以分成多个不同的抽象层次,并具体表示为用例。质量需求,上一张,三类质量属性,系统的质量属性受构架影响的商业属性:例如:上市时间与构架本身相关的一些质量属性:概念完整性,继 续,上一张,质量因素从头考虑,软件体系结构技术的核心是在系统开发过程中尽可能早地处理相关质量问题。,系统的质量属性,可用性可修改性性能安全性可测试性易用性,通过软件的执行才可见的质量因素,非执行可见的质量因素,例子:质量属性的分析,中国地球系统科学数据共享网:提供科学数据共享服务的软件平台,要为科学
4、数据共享提供广泛的技术环境支持。,特点:数据来源分散。,科学数据的采集和获取,是从科学工作者的研究工作中一点一滴地收集起来的。它们掌握在各个科研院所、科研人员手中。因此,作为科学数据共享网的主要服务内容科学数据,可能是分布在全国各地,甚至还可能来自国外。,特点:数据的海量存储,目前人们掌握的科学数据是经历了数年、数十年地收集整理而得到的。可以想象,数据量是相当庞大的;尤其是气象、地震、地学等学科领域的数据资源,更是巨大。显然,这需要借助海量存储技术对科学数据资源进行存储和管理。,特点:运算量大,由于数据量的庞大,所以科学数据资源的收集、搜索方面的运算量是可观的。此外,科学数据共享网不仅仅提供数
5、据共享的功能,还会提供科学数据计算等增值服务,这无形中也增加了系统的运算量。,特点:使用人员广泛。,科学数据有其广泛深远的研究价值、社会价值和经济价值。所以,对科学数据有使用需求的人员是来自各行各业的,既有科研单位和学者,也有政府机构和企业单位。,需求分析,能够快捷地收集数据。科学数据分散在科研院所和科学家当中。要设计开发一套收集数据的机制,使其能够快速地整合到系统中,提供数据共享服务。数据收集的途径主要通过网络媒介,而且不能影响系统所提供的网络服务的正常运行。有效存储和管理海量的数据,并快速定位数据。该系统能够提供目录服务,合理地管理数据;提供给用户查阅、下载、使用数据的服务。当用户在系统中
6、查找数据时,希望能够快速定位数据,提供服务,平均响应时间最长不超过20秒。保护数据版权,保证数据的安全性。科学数据存在着版权的问题。在数据使用上,需要版权保护。此外,由于一些数据有其时效性和保密性,所以在提供服务时需要对数据访问进行相应的安全控制。,非功能性需求简要,质量属性 针对质量属性的需求 可用性/可靠性 系统应能长期稳定地提供服务,近似7 X 24小时工作强度;在负载过重或是系统崩溃的情况下,能保证用户的请求不丢失;当系统出现故障或崩溃时,恢复时间不超过两小时;可维护性 修改某个子系统或服务时,不影响其他子系统或服务;性能 高峰时系统的平均响应时间控制在20秒以内;系统能够满足100个
7、并发的用户查询请求;系统至少能够支持2000个用户的在线服务;安全性 对有保密性要求的数据实施安全控制;提供系统运行日志监控信息,供管理员了解系统的运行和安全状态;商业属性 2005年中期完成系统,年底前投入正式使用;能够利用现有系统的可利用资源;初期总共投资2000万,分别用于系统的集成建设和开发、共享数据 标准的制定。,系统需求的获取,一般两种途径:用户直接主动地提供的需求。主要是一些功能性需求和领域知识。另一条是构架师设计“对话问题”,通过对用户提问,进一步与他们沟通,从而得到更明确的需求。(构架师以软件系统各方面的质量属性为索引,系统地启发用户谈出他们实际需要、但没有表达出来或是表达不
8、完全的内容。这些需求虽不是具体的功能,但是对系统设计和实现具有巨大的影响),质量属性场景,问题:,1.描述一下基于构架的设计过程。2.什么叫构架商业周期?3.构架的需求受哪些因素的影响?有哪几类需求?4.系统的质量属性都有哪几种?它们的含义是什么?举例说明。5.什么是质量属性场景?为什么要使用质量属性场景?,质量属性场景(quality attribute scenario),人,计算机系统或其它激励源,可以是整个系统,或系统的一部分,质量属性场景(quality attribute scenario),刻画质量属性的手段,6部分组成:刺激源刺激环境制品响应响应度量以一种统一规范的方式来表达“
9、质量属性”的需求。,系统的质量属性,可用性可修改性性能安全性可测试性易用性,可用性(availability),与系统故障及其相关后果有关。所关注的方面:如何检测系统故障系统故障发生的频度出现故障时会发生什么情况允许系统有多长时间非正常运行什么时候可以安全地消除故障如何防止故障的发生以及发生故障时要求进行哪种通知,可用性一般场景,场景的部分 可能的值 源 系统内部,系统外部 刺激 错误:疏忽、崩溃、时间、响应 制品 系统的处理器、通信通道、持久存储器、进程 环境 正常操作、降级模式 响应 系统应该检测事件,并进行如下一个或多个活动 将其纪录下来 通知适当的各方,包括用户和其它系统 根据已定义的
10、规则禁止导致错误或故障的事件源 在一段预先指定的时间间隔内不可用,其中,时 间间隔取决于系统的关键程度 响应度量 系统必须可用的时间间隔 可用时间 系统可在降级模式下运行的时间 修复时间,可用性说明,这个属性对于一些安全性非常关键的系统是十分重要的,例如:飞机上的软件,医院使用的系统等等,如果系统“down”掉,会伤及人或有威胁生命危险的一些系统。它是在系统、组件或是应用程序发生故障时快速恢复基本服务的系统管理策略。其目的是最大程度地减少服务中断,而不是容错。,可用性定义,是系统正常运行的时间比例。一般将系统可用性定义为:在计算可用性时,通常不考虑预定的停机时间可理解为计算机在任一时刻正常工作
11、的概率。,实现可用性的战术,战术:设计决策或策略,实现质量属性所采用的方法或解决方案。可用性战术用于以下几方面:错误检测(Fault Detection)错误恢复(Fault Recovery)错误预防(Fault Prevention),错误检测,错误检测,系统必须能够检测任何潜在的错误,从这些错误中恢复或在第一时间阻止它们的发生.避免错误发展成为故障。命令/响应心跳异常,命令/响应(ping/echo),类似于ping命令,在客户和服务器之间发送一个packet来判断系统是否正常运行.这个战术一般用于网络系统。,心跳(Heartbeat monitor),类似于“命令/响应”,所不同的是“
12、心跳”一般用于软件组件之间。一个组件每隔一定的时间发出一个心跳消息,另一个组件收听该消息;利用这种方式告诉收听消息的组件它在正常运转。,例子:集群式服务器,在一个客户服务器系统中,采用服务器集群可以显著提高服务器的整体性能。在这样的系统中,为了使得负载平衡,即选择可用性更高的服务器处理客户请求,防止服务器阻塞或服务失败,可采用“服务器状态算法”,此时可以采用心跳算法来对服务器状态进行定时跟踪;当客户请求到达时,将负载最轻的服务器地址映射给客户。,例子:,自动柜员机可以定期向服务器发送上一次交易的日志。该消息不仅起到了心跳的作用,而且传送了要处理的数据。,异常(Exception),错误类:疏忽
13、:组件未能对某个输入做出响应崩溃:组件不断遭受疏忽的错误时间:组件做出了响应,但做出响应的时间太早或太迟响应:组件用了一个不正确的值做出了响应 当识别出了上述错误类中的某一个时,就会出现异常,异常处理程序通常在引入该异常的相同进程中执行。例如:java和C+中的异常处理机制,异常(Exception),当出现某些指定的硬件故障或软件错误时,系统仍能执行规定的一组程序,或者说程序不会因系统中的故障而中止或被修改,并且执行结果也不包含系统中故障所引起的差错。,错误恢复,错误恢复-表决(Voting),Basic Input Value,1,2,3,4,1.Voter sends out simpl
14、e value to different processes at same time.2.Each processes does a simple calculation on the input value.3.The result is sent back to the voter process.4.If a process result is incorrect(fault),the process may be terminated/restarted.Think about voting for your favourite sports star,if one candidat
15、e does something bad,you might not vote for him/her!,Process 1,Process 2,Process 3,Voter,同时也可用于错误检测,表决,主动冗余(热启动)Active Redundancy(hot restart),Do Some Action,1,2,3,1.Controller requests processes to do an action.2.Each process receives request and works on the action.3.A response is sent back from e
16、ach process.If there is a fault,a recovery will be very fast.The controller could send out requests to check if a process is down and expect a receipt to show process up.,Process 1,Process 2,Process 3,Controller,被动冗余(暖重起),The main component receives new data.The main component sends old data/state t
17、o backup components.3.If fault happens,decision has to be made to what backup component to switch.,Main Component,Data,Backup1,Old Data,Backup2,Old Data,New Data,1,2,3,备件,一般用于硬件/操作系统的解决方案出现故障时,必须将其重新启动为适当的软件配置,并对其状态进行初始化,一般用原来组件的数据和状态。,Shadow操作,以前出现故障的组件可以在短时间内以“Shadow模式”运行,以确保在恢复该组件之前,模仿工作组件的行为。,状态
18、再同步(State Resynchronisation),Return the new active component to that of the state of the previously active component dependent on upgrades/patches etc.一般用于主动/被动冗余.,检查点/回滚(Checkpoint/Rollback),在执行的程序中设置若干测试点,在每个测试点上检查输出结果。当测试程序检测出错误时,就认为正在执行的程序是一个错误运行的系统,这段程序要被重新执行,即程序的回滚。,可修改性(Modifiability),有关变更的成本
19、问题,它提出两个关注点:(1)可以修改什么(制品)?(2)何时进行变更以及由谁进行变更(环境)?,可修改性的一般场景生成,场景的部分 可能的值 源 最终用户,开发人员,系统管理员 刺激 希望增加/删除/修改/改变功能、质量属性、容量 制品 系统用户界面、平台、环境或与目标系统交互的系统 环境 在运行时、编译时、构建时、设计时 响应 查找构架中需要修改的位置,进行修改且不会影响其 他功能,对所做的修改进行测试,部署所作的修改 响应度量 根据所影响的元素的数量度量的成本、努力、资金;该修改对其他功能或质量属性所造成的影响程度,性能(performance),性能与时间有关。性能与事件发生时,将要耗
20、费多长时间做出响应有关。,性能的一般场景,刺激源:刺激来自外部(有可能是多个)或内部源刺激:刺激是事件到达。可以把到达模式刻画为周期性的、随机的或是偶然的。制品:总是系统的服务环境:系统可以处在各种操作模式下,如正常、紧急或超载模式响应:系统必须处理到达的事件。这可能会导致系统环境的变化。响应度量:响应度量就是系统处理到达的事件所用的时间(等待时间或必须处理事件的期限)、该时间的变化(抖动)、在某一特定时间间隔内可以处理的事件数量(吞吐量)或对不能处理的事件的描述(缺失率、数据丢失)。,安全性(Security),衡量系统向合法用户提供服务的同时,阻止非授权使用的能力。,安全性的一般场景,刺激
21、源:攻击源可能是人,也可能是另一个系统。正确识别、非正确识别,可能来自内部/外部;经过了授权/未经授权刺激:刺激就是攻击或试图违反违反安全性。刻画为未经授权的人或系统试图显示信息、改变和/或删除信息、访问系统服务或降低系统服务的可用性。制品:攻击的目标可能是系统提供的服务,也可能是系统中的数据。环境:遇到攻击时有很多种可能的情形:在线或离线;联网或与网络断开;连接有防火墙或直接连到了网络上。响应:对用户进行身份验证;隐藏用户的身份;阻止对数据和/或服务的访问;允许访问数据和/或服务;授予或收回对访问数据和/或服务的许可;根据身份记录访问/修改或试图访问/修改数据/服务;以一种不可读的格式存储数
22、据;识别无法解释的对服务的高需求;通知用户或另外一个系统,并限制服务的可用性。响应度量:用成功的概率表示、避开安全防范措施所需要的时间/努力/资源;检测到攻击的可能性、确定攻击或访问/修改数据和/或服务的个人的可能性;在拒绝服务攻击的情况下仍可以获得的服务的百分比;恢复数据/服务;被破坏的数据/服务和/或被拒绝的合法访问的范围,攻击,试图突破安全防线的行为被称为攻击。例如:未经授权试图访问数据或服务 试图修改数据 试图使系统拒绝向合法用户提供服务,可测试性(testability),通过测试揭示软件缺陷的容易程度,可测试性的一般场景,刺激源:该测试由单元测试人员、集成测试人员、系统测试人 员或
23、客户执行。可由其他开发人员或外部小组执行设 计测试。刺激:到达了开发过程中的一个里程碑。制品:设计过程、一段代码或整个系统。环境:测试可以在设计时、开发时、编译时或部署时进行 响应:由于可测试性与可观察性和可控制性相关,因此所期望 的响应就是可以控制系统以执行所期望的测试,并可以 观察到对每个测试的响应。响应度量:在某些测试中执行的语句的百分比。最长测试链的长度(对执行测试的困难的度量)以及对发现额外的缺陷的可 能性的估计。,易用性(usability),对用户来说完成某个期望的任务的容易程度和系统所提供的用户支持的种类。,易用性的一般场景,场景的部分 可能的值 源 最终用户 刺激 想要学习系
24、统特性、有效使用系统、使错误的影响 最低、适配系统、对系统满意 制品 系统 环境 在运行时、配置时 响应 系统提供以下一个或多个响应来支持“学习系统特 性”;帮助系统与环境联系紧密;界面为用户所熟悉;在 不熟悉的环境中,界面是可以使用的;系统提供以下一个或多个响应来支持“有效使用系统”:数据和/或命令的聚合;已经输入的数据和/或命令的 重用;支持在界面中的有效导航;具有一致操作的不 同视图;全面搜索;多个同时进行的活动 系统提供以下一个或多个响应来“使错误的影响最低”撤销;取消;从系统故障中恢复;识别并纠正用户错 误;检索忘记的密码;验证系统资源,易用性的一般场景,系统提供以下一个或多个响应来“适配系统”定制能力;国际化 系统提供以下一个或多个响应来使用户对系统“满意”显示系统状态;与用户的节奏合拍 响应度量 任务时间、错误的数量、解决的问题的数量、用户满 意度、用户知识的获取、成功操作在总操作中所占的 比例、损失的时间/丢失的数据,商业质量属性,上市时间成本和收益所希望的系统生命期的长短目标市场推出计划与老系统的集成,构架的质量属性,概念完整性:是在各个层次上统一系统设计的根本指导思想。正确性和完整性:构架能够满足系统的各种需求及运行时的资源要求的必要条件。可构建性:保证能够由指定的开发小组在规定的时间里及时开发系统,并允许在开发过程中做某些更改。,