软件体系结构软件体系结构的质量属性

上传人:1666****666 文档编号:42295095 上传时间:2021-11-25 格式:PPT 页数:86 大小:1.02MB
返回 下载 相关 举报
软件体系结构软件体系结构的质量属性_第1页
第1页 / 共86页
软件体系结构软件体系结构的质量属性_第2页
第2页 / 共86页
软件体系结构软件体系结构的质量属性_第3页
第3页 / 共86页
点击查看更多>>
资源描述
1软件体系结构质量属性张平健华南理工大学软件学院2Relationship of Functionality and Quality AttributesFunctionalityQuality3功能与体系结构lFunctionality and quality attributes are orthogonal. lFunctionality may be achieved through the use of any of a number of possible structures. 456l 软件体系结构技术的核心是在系统开发过程中尽可能早地处理相关质量问题。7l 可用性l 可修改性l 性能l 安全性l 可测试性l 易用性通过软件的执行才可见的质量因素通过软件的执行才可见的质量因素非执行可见的质量因素非执行可见的质量因素8l 中国地球系统科学数据共享网:提供科学数据共享服务的软件平台,要为科学数据共享提供广泛的技术环境支持。9特点:数据来源分散。l 科学数据的采集和获取,是从科学工作者的研究工作中一点一滴地收集起来的。它们掌握在各个科研院所、科研人员手中。因此,作为科学数据共享网的主要服务内容科学数据,可能是分布在全国各地,甚至还可能来自国外。10特点:数据的海量存储l 目前人们掌握的科学数据是经历了数年、数十年地收集整理而得到的。可以想象,数据量是相当庞大的;尤其是气象、地震、地学等学科领域的数据资源,更是巨大。显然,这需要借助海量存储技术对科学数据资源进行存储和管理。11特点:运算量大l 由于数据量的庞大,所以科学数据资源的收集、搜索方面的运算量是可观的。此外,科学数据共享网不仅仅提供数据共享的功能,还会提供科学数据计算等增值服务,这无形中也增加了系统的运算量。12特点:使用人员广泛l 科学数据有其广泛深远的研究价值、社会价值和经济价值。所以,对科学数据有使用需求的人员是来自各行各业的,既有科研单位和学者,也有政府机构和企业单位。13l 能够快捷地收集数据。科学数据分散在科研院所和科学家科学数据分散在科研院所和科学家当中。要设计开发一套收集数据的机制,使其能够快速地整当中。要设计开发一套收集数据的机制,使其能够快速地整合到系统中,提供数据共享服务。数据收集的途径主要通过合到系统中,提供数据共享服务。数据收集的途径主要通过网络媒介,而且不能影响系统所提供的网络服务的正常运行。网络媒介,而且不能影响系统所提供的网络服务的正常运行。l 有效存储和管理海量的数据,并快速定位数据。该系该系统能够提供目录服务,合理地管理数据;提供给用户查阅、统能够提供目录服务,合理地管理数据;提供给用户查阅、下载、使用数据的服务。当用户在系统中查找数据时,希望下载、使用数据的服务。当用户在系统中查找数据时,希望能够快速定位数据,提供服务,平均响应时间最长不超过能够快速定位数据,提供服务,平均响应时间最长不超过20秒。秒。l 保护数据版权,保证数据的安全性。科学数据存在着版科学数据存在着版权的问题。在数据使用上,需要版权保护。此外,由于一些权的问题。在数据使用上,需要版权保护。此外,由于一些数据有其时效性和保密性,所以在提供服务时需要对数据访数据有其时效性和保密性,所以在提供服务时需要对数据访问进行相应的安全控制。问进行相应的安全控制。14 质量属性 针对质量属性的需求 可用性可用性/可靠性可靠性 系统应能长期稳定地提供服务,近似系统应能长期稳定地提供服务,近似7 X 24小时工作强度;小时工作强度; 在负载过重或是系统崩溃的情况下,能保证用户请求不丢失;在负载过重或是系统崩溃的情况下,能保证用户请求不丢失; 当系统出现故障或崩溃时,恢复时间不超过两小时;当系统出现故障或崩溃时,恢复时间不超过两小时; 可维护性可维护性 修改某个子系统或服务时,不影响其他子系统或服务;修改某个子系统或服务时,不影响其他子系统或服务; 性能性能 高峰时系统的平均响应时间控制在高峰时系统的平均响应时间控制在20秒以内;秒以内; 系统能够满足系统能够满足100个并发的用户查询请求;个并发的用户查询请求; 系统至少能够支持系统至少能够支持2000个用户的在线服务;个用户的在线服务; 安全性安全性 对有保密性要求的数据实施安全控制;对有保密性要求的数据实施安全控制; 提供系统运行日志监控信息,供管理员了解系统运行状态;提供系统运行日志监控信息,供管理员了解系统运行状态; 商业属性商业属性 2005年中期完成系统,年底前投入正式使用;年中期完成系统,年底前投入正式使用; 能够利用现有系统的可利用资源;能够利用现有系统的可利用资源; 初期总共投资初期总共投资2000万,分别用于系统的集成建设和开发、共享万,分别用于系统的集成建设和开发、共享 数据标准的制定。数据标准的制定。15l 一般两种途径:l 用户直接主动地提供的需求。主要是一些功能性需求和领域知识。l 另一条是构架师设计“对话问题”,通过对用户提问,进一步与他们沟通,从而得到更明确的需求。(构架师以软件系统各方面的质量属性为索引,系统地启发用户谈出他们实际需要、 但没有表达出来或是表达不完全的内容。这些需求虽不是具体的功能,但是对系统设计和实现具有巨大的影响)16人,计算机系统或其它激励源可以是整个系统,或系统的一部分17l 刻画质量属性的手段,6部分组成:l 刺激源刺激源l 刺激刺激l 环境环境l 制品制品l 响应响应l 响应度量响应度量l 以一种统一规范的方式来表达“质量属性”的需求。1819l 可用性l 可修改性l 性能l 安全性l 可测试性l 易用性20l 与系统故障及其相关后果有关。l 所关注的方面:l 如何检测系统故障如何检测系统故障l 系统故障发生的频度系统故障发生的频度l 出现故障时会发生什么情况出现故障时会发生什么情况l 允许系统有多长时间非正常运行允许系统有多长时间非正常运行l 什么时候可以安全地消除故障什么时候可以安全地消除故障l 如何防止故障的发生以及发生故障时要求进行哪种通知如何防止故障的发生以及发生故障时要求进行哪种通知21场景的部分 可能的值l 源源 系统内部,系统外部系统内部,系统外部l 刺激刺激 缺陷:疏忽未响应、崩溃、时间错误、响应错误缺陷:疏忽未响应、崩溃、时间错误、响应错误l 制品制品 系统的处理器、通信通道、持久存储器、进程系统的处理器、通信通道、持久存储器、进程l 环境环境 正常操作、降级模式正常操作、降级模式l 响应响应 系统应该检测事件,并进行如下一个或多个活动系统应该检测事件,并进行如下一个或多个活动l 将其纪录下来;将其纪录下来;l 通知适当的各方,包括用户和其它系统;通知适当的各方,包括用户和其它系统;l 根据已定义的规则禁止导致错误或故障的事件源;根据已定义的规则禁止导致错误或故障的事件源; l 在一段预先指定的时间间隔内不可用,其中,时在一段预先指定的时间间隔内不可用,其中,时 间间隔取决于系统的关键程度;继续或降级运行。间间隔取决于系统的关键程度;继续或降级运行。l 响应度量响应度量 系统必须可用的时间间隔系统必须可用的时间间隔 可用时间可用时间 系统可在降级模式下运行的时间系统可在降级模式下运行的时间 修复时间修复时间22 这个属性对于一些安全性非常关键的系统是十分重要的,例如:飞机上的软件,医院使用的系统等等,如果系统“down”掉,会伤及人或有威胁生命危险的一些系统。 它是在系统、组件或是应用程序发生故障时快速恢复基本服务的系统管理策略。其目的是最大程度地减少服务中断,而不是容错。23l 是系统正常运行的时间比例。一般将系统可用性定义为:l 在计算可用性时,通常不考虑预定的停机时间l 可理解为计算机在任一时刻正常工作的概率。平均修复时间)(平均正常工作时间平均正常工作时间24设计决策或策略,实现质量属性所采用的方法或解决方案。l 可用性战术用于以下几方面:错误检测(错误检测( Fault Detection )错误恢复(错误恢复( Fault Recovery )错误预防(错误预防( Fault Prevention)l 可用性战术阻止错误发展成故障;或者把错误的影响限制在一定范围内,从而使修复成为可能。25 系统必须能够检测任何潜在的错误,从这些错误中恢复或在第一时间阻止它们的发生.避免错误发展成为故障。l 命令/响应l 心跳l 异常26命令/响应(ping/echo)l 类似于ping命令, 在客户和服务器之间发送一个packet来判断系统是否正常运行.这个战术一般用于网络系统。27心跳(Heartbeat monitor)l 类似于“命令/响应”, 所不同的是“心跳”一般用于软件组件之间。一个组件每隔一定的时间发出一个心跳消息,另一个组件收听该消息;利用这种方式告诉收听消息的组件它在正常运转。28例子:集群式服务器29例子:ATMl 自动柜员机可以定期向服务器发送上一次交易的日志。该消息不仅起到了心跳的作用,而且传送了要处理的数据。30异常(Exception)l 错误类:l 疏忽:组件未能对某个输入做出响应l 崩溃:组件不断遭受疏忽的错误l 时间:组件做出了响应,但做出响应的时间太早或太迟l 响应:组件用了一个不正确的值做出了响应 当识别出了上述错误类中的某一个时,就会出现异常,异常处理程序通常在引入该异常的相同进程中执行。例如:java和C+中的异常处理机制31异常(Exception) 当出现某些指定的硬件故障或软件错误时,系统仍能执行规定的一组程序,或者说程序不会因系统中的故障而中止或被修改,并且执行结果也不包含系统中故障所引起的差错。32Basic Input Value12341. Voter sends out simple 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 candidate does something bad, you might not vote for him/her!Process 1Process 2Process 3Voter同时也可用于错误检测33 版本版本1版本版本2版本版本N表表决决器器结果结果告警告警多数少数34 Do Some Action1231. Controller requests processes to do an action.2. Each process receives request and works on the action.3. A response is sent back from each 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 1Process 2Process 3Controller35 1. The main component receives new data. 2. The main component sends old data/state to backup components.3. If fault happens, decision has to be made to what backup component to switch. Main Component Data Backup1Old Data Backup2Old DataNew Data12336一般用于硬件/操作系统的解决方案l 出现故障时,必须将其重新启动为适当的软件配置,并对其状态进行初始化,一般用原来组件的数据和状态。37 设置出现故障的组件可以在短时间内以“Shadow模式”运行,以确保在恢复该组件之前,模仿工作组件的行为。38 Restore the new active component to that of the state of the previously active component dependent on downtime/upgrades/patches, etc. 一般用于主动/被动冗余.39l 在执行的程序中设置若干测试点,在每个测试点上检查输出结果。当测试程序检测出错误时,就认为正在执行的程序是一个错误运行的系统,这段程序要被重新执行,即程序的回滚。40Fault Preventionl Removal from service (via reboot, etc)l Transactions l Process monitor (kill the nonperforming process and create a new instance of it, initialized to some appropriate state as in the spare tactic. )41Summary of availability tactics 42Example: Availability tactics of an information systeml Fault detectionPing: about every 5 secondsHeartbeat: should receive a notice every 5 secondsException handlingl RecoveryHot restart/switch: redirect to backup serverBackup communication pathState resynchronization: backup db files, redo logl PreventionRemoval from service: keep only minimal servicesTransaction43l 有关变更的成本问题,它提出两个关注点:l (1)可以修改什么(制品)?)可以修改什么(制品)?l (2)何时进行变更以及由谁进行变更(环境)?)何时进行变更以及由谁进行变更(环境)?44场景的部分 可能的值l 源 最终用户,开发人员,系统管理员l 刺激 希望增加/删除/修改/改变功能、质量属 性、容量l 制品 系统用户界面、平台、环境或与目标系统 交互的系统l 环境 在运行时、编译时、构建时、设计时l 响应 查找构架中需要修改的位置,进行修改且 不会影响其它功能,对所做的修改进行测 试,部署所作的修改l 响应度量 根据所影响的元素的数量度量的成本、努 力、资金;该修改对其他功能或质量属性 所造成的影响程度45 局部化修改防止连锁反应推迟绑定时间46l “局部化”修改战术l “防止连锁反应”战术l “推迟绑定时间”战术47l 目标:把变更限制在一定范围内l 在“设计”期间为模块分配责任,以把预期变更限制在一定范围内。48l 维持语义的一致性l 预期期望的变更l 泛化该模块l 限制可能的选择49l 指模块中责任之间的关系;目标是确保这些责任协同工作。责任越单一越好。(Java类和方法的设计原则,Unix哲学)l 子战术:抽象出通用服务:例如:Visual Studio框架;中间件的使用。50l 考虑所预想变更的集合。l 战术目标是降低变更的影响,由于无法预期所有的变更,实践中很难单独应用,通常结合语义一致性来使用。l 例如虚函数void* 指针51泛化模块泛化模块l 模块越广泛,需要作的变更越有可能通过调整输入参数达到,而不用修改模块。l 例如:C+模板库、通用编程概念52限制可能的选择限制可能的选择l 如果修改的范围非常大,影响很多模块,则限制能进行的修改,从而降低影响。l 例如,软件产品线限制支持主流平台53l (1)语法(数据格式、服务签名)l (2)语义(数据、服务语义)l (3)顺序(数据顺序、时间约束)l (4)A的一个接口的身份l (5)A的位置l (6)A提供的数据/服务质量l (7)A的存在l (8)A的资源行为5455l 添加接口l 添加适配器l stub程序:如果修改要求删除A,且B依赖于A的签名,则为A提供一个stub程序可使B保持不变模块A适配器56l限制通信路径 reduce the number of modules that consume data produced by the given module and the number of modules that produce data consumed by it. l仲裁者的使用:管理依赖关系data (syntax). Repositories (both blackboard and passive) act as intermediaries between the producer and consumer of data to convert data format etc.57l 仲裁者的使用service (syntax). The facade, bridge, mediator, strategy, proxy, and factory patterns to convert interface.identity of an interface of A. A broker pattern to hide identity.location of A (runtime). A name server enables the location of A to be changed without affecting B. A resource manager is an intermediary that is responsible for resource allocation. existence of A. The factory pattern has the ability to create instances as needed. 58推迟绑定时间l 在运行时注册:即插即用l 配置文件:在启动时设置参数l 多态:允许方法调用的后期绑定l 组件更换:允许载入时间绑定l 遵守已定义的协议:允许独立进程的运行时绑定59Summary of modifiability tactics 60Example: modifiability tactics of DWl Localize changesSemantic coherence: modularizationAnticipated expected changes: interface/inheritanceGeneralize module: use STLAbstract common service: CWM, SOAP, MDXl Prevention of ripple effectInformation hiding: OOPUse intermediary: design patterns, factoryl Defer binding timeConfiguration fileAdherence to defined protocol: XMLA61性能(performance)l 性能与时间有关。性能与事件发生时,将要耗费多长时间做出响应有关。62性能的一般场景l 刺激源:刺激来自外部(有可能是多个)或内部源l 刺激: 刺激是事件到达。可以把到达模式刻画为周期性的、随机的或是偶然的。l 制品:总是系统的服务l 环境:系统可以处在各种操作模式下,如正常、紧急或超载模式l 响应:系统必须处理到达的事件。这可能会导致系统环境的变化。l 响应度量:响应度量就是系统处理到达的事件所用的时间(等待时间或必须处理事件的期限)、该时间的变化(抖动)、在某一特定时间间隔内可以处理的事件数量(吞吐量)或对不能处理的事件的描述(缺失率、 数据丢失)。63性能战术Three tactic categories l resource demandl resource managementl resource arbitration64Resource Demand Tacticsl Increase computational efficiency (improve algorithm)l Reduce computational overhead (pass-by-ref)l Manage event rate (reduce the sampling frequency)l Bound execution times (limit the number of iterations )l Bound queue sizes65Resource Management Tactics l Introduce concurrency l Maintain multiple copies of either data or computations (client cache)l Increase available resources 66Resource Arbitration Tactics-scheduling policiesl First-in/First-out l Fixed-priority scheduling (based on semantic importance, deadline monotonic or rate monotonic )l Dynamic priority scheduling (round robin, earliest deadline first )l Static scheduling (pre-emption points and the sequence of assignment to the resource are determined offline )67Summary of performance tactics 68Example: performance tactics of DWl Resource demandIncrease computation efficiency: new QC algorithmReduce computation overhead: various mappingsl Resource managementIntroduce concurrency: MPI based multithreadingMaintain multiple copies: result set cachel Resource arbitrationScheduling policy: timing + on-demand: FIFO69l 衡量系统向合法用户提供服务的同时,阻止非授权使用的能力。70安全性的一般场景安全性的一般场景l 刺激源:刺激源:攻击源可能是人,也可能是另一个系统。正确识别、非正确识别,可能来自内部/外部;经过了授权/未经授权l 刺激:刺激:刺激就是攻击或试图违反违反安全性。未经授权的人或系统试图显示信息、改变和/或删除信息、访问系统服务或降低系统服务的可用性。l 制品:制品:攻击的目标可能是系统提供的服务,也可能是系统中的数据。l 环境:环境:遇到攻击时有很多种可能的情形:在线或离线;联网或与网络断开;连接有防火墙或直接连到了网络上。l 响应:响应:对用户进行身份验证;隐藏用户的身份;阻止对数据和/或服务的访问;允许访问数据和/或服务;授予或收回对访问数据和/或服务的许可;根据身份记录访问/修改或试图访问/修改数据/服务;以一种不可读的格式存储数据;识别无法解释的对服务的高需求;通知用户或另外一个系统,并限制服务的可用性。l 响应度量:响应度量:用成功的概率表示、避开安全防范措施所需要的时间/努力/资源;检测到攻击的可能性、确定攻击或访问/修改数据和/或服务的个人的可能性;在拒绝服务攻击的情况下仍可以获得的服务的百分比;恢复数据/服务;被破坏的数据/服务和/或被拒绝的合法访问的范围71攻击l 试图突破安全防线的行为被称为攻击。l 例如未经授权试图访问数据或服务试图修改数据试图使系统拒绝向合法用户提供服务72Security Tactics resisting attacks l Goals: non-repudiation, confidentiality, integrity, and assurancel Authenticate users (CA)l Authorize users (roles)l Maintain data confidentiality (VPN, SSL)l Maintain integrity (checksum)l Limit exposure (limited services are available on each host)l Limit access (firewalls)73Security Tactics detecting attacksl Intrusion system: compare the access pattern to known attacking patternsl Recovering from attacksRestoration using availability tacticsIdentifying intruder using audit trail74Summary of tactics for security 75Example: Security tactics of an information systeml Detecting attacksIntrusion detection: via firewall, watch on db listening port and ftp portl Resisting attacksAuthenticate users: complex enough password for dbaAuthorize users: users cant modify dataLimit access: black list/white list 76l 通过测试揭示软件缺陷的容易程度77可测试性的一般场景l 刺激源:该测试由单元测试人员、集成测试人员、系统测试人 员或客户执行。可由其他开发人员或外部小组执行设 计测试。 刺激: 到达了开发过程中的一个里程碑。 制品: 设计过程、一段代码或整个系统。 环境: 测试可以在设计时、开发时、编译时或部署时进行 响应: 由于可测试性与可观察性和可控制性相关,因此所期望 的响应就是可以控制系统以执行所期望的测试,并可以 观察到对每个测试的响应。响应度量: 在某些测试中执行的语句的百分比。最长测试链的长度 (对执行测试的困难的度量)以及对发现额外的缺陷的可 能性的估计。78Testability Tacticsl Record/playback (capture input/output info across interface for testing suite)l Separate interface from implementation (test stub w/o skeleton)l Specialize access routes/interfaces (separated from required functionality)l Built-in monitors (A component can implement tactics based on internal state to support the testing process) 79Summary of testability tactics 80l 对用户来说完成某个期望的任务的容易程度和系统所提供的用户支持的种类。81场景的部分 可能的值l 源 最终用户l 刺激 想要学习系统特性、有效使用系统、使错误的影响 最低、适配系统、对系统满意l 制品 系统l 环境 在运行时、配置时l 响应 系统提供以下一个或多个响应来支持“学习系统特 性”; 帮助系统与环境联系紧密;界面为用户所熟悉;在 不熟悉的环境中,界面是可以使用的; 系统提供以下一个或多个响应来支持“有效使用系统”: 数据和/或命令的聚合;已经输入的数据和/或命令的 重用;支持在界面中的有效导航;具有一致操作的不 同视图;全面搜索;多个同时进行的活动 系统提供以下一个或多个响应来“使错误的影响最低” 撤销;取消;从系统故障中恢复;识别并纠正用户错 误;检索忘记的密码;验证系统资源 82易用性的一般场景 系统提供以下一个或多个响应来“适配系统” 定制能力;国际化 系统提供以下一个或多个响应来使用户对系统“满意” 显示系统状态;与用户的节奏合拍l 响应度量 任务时间、错误的数量、解决的问题的数量、用户满 意度、用户知识的获取、成功操作在总操作中所占的 比例、损失的时间/丢失的数据83Usability tacticsl Maintain a model of the task. (context about a task, auto completion, auto correction, context help)l Maintain a model of the user. (users behavior and capability: color/sound/motion) l Maintain a model of the system. (expected system behavior, internal state)l Separate the user interface from the rest of the application. 84Summary of runtime usability tactics 85l 上市时间l 成本和收益l 所希望的系统生命期的长短l 目标市场推出计划l 与老系统的集成86构架的质量属性l 概念完整性:是在各个层次上统一系统设计的根本指导思想。l 正确性和完整性:构架能够满足系统的各种需求及运行时的资源要求的必要条件。l 可构建性:保证能够由指定的开发小组在规定的时间里及时开发系统,并允许在开发过程中做某些更改。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸下载 > CAD图纸下载


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!