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

下载本文档

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

文档简介

1 软件体系结构质量属性 张平健华南理工大学软件学院 2 relationshipoffunctionalityandqualityattributes functionality quality 3 功能与体系结构 functionalityandqualityattributesareorthogonal functionalitymaybeachievedthroughtheuseofanyofanumberofpossiblestructures 4 5 三类质量属性 系统的质量属性受构架影响的商业属性 例如 上市时间与构架本身相关的一些质量属性 概念完整性 6 质量因素从头考虑 软件体系结构技术的核心是在系统开发过程中尽可能早地处理相关质量问题 7 系统的质量属性 可用性可修改性性能安全性可测试性易用性 通过软件的执行才可见的质量因素 非执行可见的质量因素 8 例子 质量属性的分析 中国地球系统科学数据共享网 提供科学数据共享服务的软件平台 要为科学数据共享提供广泛的技术环境支持 9 特点 数据来源分散 科学数据的采集和获取 是从科学工作者的研究工作中一点一滴地收集起来的 它们掌握在各个科研院所 科研人员手中 因此 作为科学数据共享网的主要服务内容 科学数据 可能是分布在全国各地 甚至还可能来自国外 10 特点 数据的海量存储 目前人们掌握的科学数据是经历了数年 数十年地收集整理而得到的 可以想象 数据量是相当庞大的 尤其是气象 地震 地学等学科领域的数据资源 更是巨大 显然 这需要借助海量存储技术对科学数据资源进行存储和管理 11 特点 运算量大 由于数据量的庞大 所以科学数据资源的收集 搜索方面的运算量是可观的 此外 科学数据共享网不仅仅提供数据共享的功能 还会提供科学数据计算等增值服务 这无形中也增加了系统的运算量 12 特点 使用人员广泛 科学数据有其广泛深远的研究价值 社会价值和经济价值 所以 对科学数据有使用需求的人员是来自各行各业的 既有科研单位和学者 也有政府机构和企业单位 13 需求分析 能够快捷地收集数据 科学数据分散在科研院所和科学家当中 要设计开发一套收集数据的机制 使其能够快速地整合到系统中 提供数据共享服务 数据收集的途径主要通过网络媒介 而且不能影响系统所提供的网络服务的正常运行 有效存储和管理海量的数据 并快速定位数据 该系统能够提供目录服务 合理地管理数据 提供给用户查阅 下载 使用数据的服务 当用户在系统中查找数据时 希望能够快速定位数据 提供服务 平均响应时间最长不超过20秒 保护数据版权 保证数据的安全性 科学数据存在着版权的问题 在数据使用上 需要版权保护 此外 由于一些数据有其时效性和保密性 所以在提供服务时需要对数据访问进行相应的安全控制 14 非功能性需求 质量属性针对质量属性的需求可用性 可靠性系统应能长期稳定地提供服务 近似7x24小时工作强度 在负载过重或是系统崩溃的情况下 能保证用户请求不丢失 当系统出现故障或崩溃时 恢复时间不超过两小时 可维护性修改某个子系统或服务时 不影响其他子系统或服务 性能高峰时系统的平均响应时间控制在20秒以内 系统能够满足100个并发的用户查询请求 系统至少能够支持2000个用户的在线服务 安全性对有保密性要求的数据实施安全控制 提供系统运行日志监控信息 供管理员了解系统运行状态 商业属性2005年中期完成系统 年底前投入正式使用 能够利用现有系统的可利用资源 初期总共投资2000万 分别用于系统的集成建设和开发 共享数据标准的制定 15 系统需求的获取 一般两种途径 用户直接主动地提供的需求 主要是一些功能性需求和领域知识 另一条是构架师设计 对话问题 通过对用户提问 进一步与他们沟通 从而得到更明确的需求 构架师以软件系统各方面的质量属性为索引 系统地启发用户谈出他们实际需要 但没有表达出来或是表达不完全的内容 这些需求虽不是具体的功能 但是对系统设计和实现具有巨大的影响 16 质量属性场景 qualityattributescenario 人 计算机系统或其它激励源 可以是整个系统 或系统的一部分 17 质量属性场景 qualityattributescenario 刻画质量属性的手段 6部分组成 刺激源刺激环境制品响应响应度量以一种统一规范的方式来表达 质量属性 的需求 18 19 系统的质量属性 可用性可修改性性能安全性可测试性易用性 20 可用性 availability 与系统故障及其相关后果有关 所关注的方面 如何检测系统故障系统故障发生的频度出现故障时会发生什么情况允许系统有多长时间非正常运行什么时候可以安全地消除故障如何防止故障的发生以及发生故障时要求进行哪种通知 21 可用性一般场景 场景的部分可能的值源系统内部 系统外部刺激缺陷 疏忽未响应 崩溃 时间错误 响应错误制品系统的处理器 通信通道 持久存储器 进程环境正常操作 降级模式响应系统应该检测事件 并进行如下一个或多个活动将其纪录下来 通知适当的各方 包括用户和其它系统 根据已定义的规则禁止导致错误或故障的事件源 在一段预先指定的时间间隔内不可用 其中 时间间隔取决于系统的关键程度 继续或降级运行 响应度量系统必须可用的时间间隔可用时间系统可在降级模式下运行的时间修复时间 22 可用性说明 这个属性对于一些安全性非常关键的系统是十分重要的 例如 飞机上的软件 医院使用的系统等等 如果系统 down 掉 会伤及人或有威胁生命危险的一些系统 它是在系统 组件或是应用程序发生故障时快速恢复基本服务的系统管理策略 其目的是最大程度地减少服务中断 而不是容错 23 可用性定义 是系统正常运行的时间比例 一般将系统可用性定义为 在计算可用性时 通常不考虑预定的停机时间可理解为计算机在任一时刻正常工作的概率 24 实现可用性的战术 战术 设计决策或策略 实现质量属性所采用的方法或解决方案 可用性战术用于以下几方面 错误检测 faultdetection 错误恢复 faultrecovery 错误预防 faultprevention 可用性战术阻止错误发展成故障 或者把错误的影响限制在一定范围内 从而使修复成为可能 25 错误检测 系统必须能够检测任何潜在的错误 从这些错误中恢复或在第一时间阻止它们的发生 避免错误发展成为故障 命令 响应心跳异常 26 命令 响应 ping echo 类似于ping命令 在客户和服务器之间发送一个packet来判断系统是否正常运行 这个战术一般用于网络系统 27 心跳 heartbeatmonitor 类似于 命令 响应 所不同的是 心跳 一般用于软件组件之间 一个组件每隔一定的时间发出一个心跳消息 另一个组件收听该消息 利用这种方式告诉收听消息的组件它在正常运转 28 例子 集群式服务器 29 例子 atm 自动柜员机可以定期向服务器发送上一次交易的日志 该消息不仅起到了心跳的作用 而且传送了要处理的数据 30 异常 exception 错误类 疏忽 组件未能对某个输入做出响应崩溃 组件不断遭受疏忽的错误时间 组件做出了响应 但做出响应的时间太早或太迟响应 组件用了一个不正确的值做出了响应当识别出了上述错误类中的某一个时 就会出现异常 异常处理程序通常在引入该异常的相同进程中执行 例如 java和c 中的异常处理机制 31 异常 exception 当出现某些指定的硬件故障或软件错误时 系统仍能执行规定的一组程序 或者说程序不会因系统中的故障而中止或被修改 并且执行结果也不包含系统中故障所引起的差错 32 错误恢复战术 表决 voting basicinputvalue 1 2 3 4 1 votersendsoutsimplevaluetodifferentprocessesatsametime 2 eachprocessesdoesasimplecalculationontheinputvalue 3 theresultissentbacktothevoterprocess 4 ifaprocess resultisincorrect fault theprocessmaybeterminated restarted thinkaboutvotingforyourfavouritesportsstar ifonecandidatedoessomethingbad youmightnotvoteforhim her process1 process2 process3 voter 同时也可用于错误检测 33 表决 34 主动冗余 热启动 activeredundancy hotrestart dosomeaction 1 2 3 1 controllerrequestsprocessestodoanaction 2 eachprocessreceivesrequestandworksontheaction 3 aresponseissentbackfromeachprocess ifthereisafault arecoverywillbeveryfast thecontrollercouldsendoutrequeststocheckifaprocessisdownandexpectareceipttoshowprocessup process1 process2 process3 controller 35 被动冗余 暖重起 themaincomponentreceivesnewdata themaincomponentsendsolddata statetobackupcomponents 3 iffaulthappens decisionhastobemadetowhatbackupcomponenttoswitch maincomponent data backup1 olddata backup2 olddata newdata 1 2 3 36 备件 一般用于硬件 操作系统的解决方案出现故障时 必须将其重新启动为适当的软件配置 并对其状态进行初始化 一般用原来组件的数据和状态 37 恢复策略 shadow操作 设置出现故障的组件可以在短时间内以 shadow模式 运行 以确保在恢复该组件之前 模仿工作组件的行为 38 恢复策略 状态再同步 stateresynchronisation restorethenewactivecomponenttothatofthestateofthepreviouslyactivecomponent dependentondowntime upgrades patches etc 一般用于主动 被动冗余 39 恢复策略 检查点 回滚 checkpoint rollback 在执行的程序中设置若干测试点 在每个测试点上检查输出结果 当测试程序检测出错误时 就认为正在执行的程序是一个错误运行的系统 这段程序要被重新执行 即程序的回滚 40 faultprevention removalfromservice viareboot etc transactionsprocessmonitor killthenonperformingprocessandcreateanewinstanceofit initializedtosomeappropriatestateasinthesparetactic 41 summaryofavailabilitytactics 42 example availabilitytacticsofaninformationsystem faultdetectionping aboutevery5secondsheartbeat shouldreceiveanoticeevery5secondsexceptionhandlingrecoveryhotrestart switch redirecttobackupserverbackupcommunicationpathstateresynchronization backupdbfiles redologpreventionremovalfromservice keeponlyminimalservicestransaction 43 可修改性 modifiability 有关变更的成本问题 它提出两个关注点 1 可以修改什么 制品 2 何时进行变更以及由谁进行变更 环境 44 可修改性的一般场景生成 场景的部分可能的值源最终用户 开发人员 系统管理员刺激希望增加 删除 修改 改变功能 质量属性 容量制品系统用户界面 平台 环境或与目标系统交互的系统环境在运行时 编译时 构建时 设计时响应查找构架中需要修改的位置 进行修改且不会影响其它功能 对所做的修改进行测试 部署所作的修改响应度量根据所影响的元素的数量度量的成本 努力 资金 该修改对其他功能或质量属性所造成的影响程度 45 可修改性 局部化修改 防止连锁反应 推迟绑定时间 46 可修改性战术 局部化 修改战术 防止连锁反应 战术 推迟绑定时间 战术 47 局部化 修改战术 目标 把变更限制在一定范围内在 设计 期间为模块分配责任 以把预期变更限制在一定范围内 48 局部化 修改战术 维持语义的一致性预期期望的变更泛化该模块限制可能的选择 49 维持语义的一致性 指模块中责任之间的关系 目标是确保这些责任协同工作 责任越单一越好 java类和方法的设计原则 unix哲学 子战术 抽象出通用服务 例如 visualstudio框架 中间件的使用 50 预期期望的变更 考虑所预想变更的集合 战术目标是降低变更的影响 由于无法预期所有的变更 实践中很难单独应用 通常结合语义一致性来使用 例如虚函数void 指针 51 泛化模块 模块越广泛 需要作的变更越有可能通过调整输入参数达到 而不用修改模块 例如 c 模板库 通用编程概念 52 限制可能的选择 如果修改的范围非常大 影响很多模块 则限制能进行的修改 从而降低影响 例如 软件产品线限制支持主流平台 53 防止连锁反应的战术 模块之间的依赖性 b依赖于a 1 语法 数据格式 服务签名 2 语义 数据 服务语义 3 顺序 数据顺序 时间约束 4 a的一个接口的身份 5 a的位置 6 a提供的数据 服务质量 7 a的存在 8 a的资源行为 54 防止连锁反应的战术 信息隐藏 将变更隔离在一个模块内 与预期期望的变更有很大的关系 维持现有的接口如果b依赖于a的一个接口的名字和签名 则维持该接口及其语法能够使b保持不变 55 维持现有的接口 添加接口添加适配器stub程序 如果修改要求删除a 且b依赖于a的签名 则为a提供一个stub程序可使b保持不变 模块a 适配器 56 防止连锁反应的战术 限制通信路径reducethenumberofmodulesthatconsumedataproducedbythegivenmoduleandthenumberofmodulesthatproducedataconsumedbyit 仲裁者的使用 管理依赖关系data syntax repositories bothblackboardandpassive actasintermediariesbetweentheproducerandconsumerofdatatoconvertdataformatetc 57 防止连锁反应的战术 仲裁者的使用service syntax thefacade bridge mediator strategy proxy andfactorypatternstoconvertinterface identityofaninterfaceofa abrokerpatterntohideidentity locationofa runtime anameserverenablesthelocationofatobechangedwithoutaffectingb aresourcemanagerisanintermediarythatisresponsibleforresourceallocation existenceofa thefactorypatternhastheabilitytocreateinstancesasneeded 58 推迟绑定时间 在运行时注册 即插即用配置文件 在启动时设置参数多态 允许方法调用的后期绑定组件更换 允许载入时间绑定遵守已定义的协议 允许独立进程的运行时绑定 59 summaryofmodifiabilitytactics 60 example modifiabilitytacticsofdw localizechangessemanticcoherence modularizationanticipatedexpectedchanges interface inheritancegeneralizemodule usestlabstractcommonservice cwm soap mdxpreventionofrippleeffectinformationhiding oopuseintermediary designpatterns factory deferbindingtimeconfigurationfileadherencetodefinedprotocol xmla 61 性能 performance 性能与时间有关 性能与事件发生时 将要耗费多长时间做出响应有关 62 性能的一般场景 刺激源 刺激来自外部 有可能是多个 或内部源刺激 刺激是事件到达 可以把到达模式刻画为周期性的 随机的或是偶然的 制品 总是系统的服务环境 系统可以处在各种操作模式下 如正常 紧急或超载模式响应 系统必须处理到达的事件 这可能会导致系统环境的变化 响应度量 响应度量就是系统处理到达的事件所用的时间 等待时间或必须处理事件的期限 该时间的变化 抖动 在某一特定时间间隔内可以处理的事件数量 吞吐量 或对不能处理的事件的描述 缺失率 数据丢失 63 性能战术 threetacticcategoriesresourcedemandresourcemanagementresourcearbitration 64 resourcedemandtactics increasecomputationalefficiency improvealgorithm reducecomputationaloverhead pass by ref manageeventrate reducethesamplingfrequency boundexecutiontimes limitthenumberofiterations boundqueuesizes 65 resourcemanagementtactics introduceconcurrencymaintainmultiplecopiesofeitherdataorcomputations clientcache increaseavailableresources 66 resourcearbitrationtactics schedulingpolicies first in first outfixed priorityscheduling basedonsemanticimportance deadlinemonotonicorratemonotonic dynamicpriorityscheduling roundrobin earliestdeadlinefirst staticscheduling pre emptionpointsandthesequenceofassignmenttotheresourcearedeterminedoffline 67 summaryofperformancetactics 68 example performancetacticsofdw resourcedemandincreasecomputationefficiency newqcalgorithmreducecomputationoverhead variousmappingsresourcemanagementintroduceconcurrency mpibasedmultithreadingmaintainmultiplecopies resultsetcacheresourcearbitrationschedulingpolicy timing on demand fifo 69 安全性 security 衡量系统向合法用户提供服务的同时 阻止非授权使用的能力 70 安全性的一般场景 刺激源 攻击源可能是人 也可能是另一个系统 正确识别 非正确识别 可能来自内部 外部 经过了授权 未经授权刺激 刺激就是攻击或试图违反违反安全性 未经授权的人或系统试图显示信息 改变和 或删除信息 访问系统服务或降低系统服务的可用性 制品 攻击的目标可能是系统提供的服务 也可能是系统中的数据 环境 遇到攻击时有很多种可能的情形 在线或离线 联网或与网络断开 连接有防火墙或直接连到了网络上 响应 对用户进行身份验证 隐藏用户的身份 阻止对数据和 或服务的访问 允许访问数据和 或服务 授予或收回对访问数据和 或服务的许可 根据身份记录访问 修改或试图访问 修改数据 服务 以一种不可读的格式存储数据 识别无法解释的对服务的高需求 通知用户或另外一个系统 并限制服务的可用性 响应度量 用成功的概率表示 避开安全防范措施所需要的时间 努力 资源 检测到攻击的可能性 确定攻击或访问 修改数据和 或服务的个人的可能性 在拒绝服务攻击的情况下仍可以获得的服务的百分比 恢复数据 服务 被破坏的数据 服务和 或被拒绝的合法访问的范围 71 攻击 试图突破安全防线的行为被称为攻击 例如未经授权试图访问数据或服务试图修改数据试图使系统拒绝向合法用户提供服务 72 securitytactics resistingattacks goals non repudiation confidentiality integrity andassuranceauthenticateusers ca authorizeusers roles maintaindataconfidentiality vpn ssl maintainintegrity checksum limitexposure limitedservicesareavailableoneachhost limitaccess firewalls 73 securitytactics detectingattacks intrusionsystem comparetheaccesspatterntoknownattackingpatternsrecoveringfromattacksrestorationusingavailabilitytacticsidentifyingintruderusingaudittrail 74 summaryoftacticsforsecurity 75 example securitytacticsofaninformationsystem detectingattacksintrusiondetection viafirewall watchondblisteningportandftpportresistingattacksauthenticateusers complexenoughpasswordfordbaauthorizeusers userscan tmodifydatalimitaccess blacklist whitelist 76 可测试性 testability 通过测试揭示软件缺陷的容易程度 77 可测试性的一般场景 刺激源 该测试由单元测试人员 集成测试人员 系统测试人员或客户执行 可由其他开发人员或外部小组执行设计测试 刺激 到达了开发过程中的一个里程碑 制品 设计过程 一段代码或整个系统 环境 测试可以在设计时 开发时 编译时或部署时进行响应 由于可测试性与可观察性和可控制性相关 因此所期望的响应就是可以控制系统以执行所期望的测试 并可以观察到对每个测试的响应 响应度量 在某些测试中执行的语句的百分比 最长测试链的长度 对执行测试的困难的度量 以及对发现额外的缺陷的可能性的估计 78 testabilitytactics record playback captureinput outputinfoacrossinterfacefortestingsuite separateinterfacefromimplementation teststubw oskeleton specializeaccessroute

温馨提示

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

评论

0/150

提交评论