软件质量属性.ppt_第1页
软件质量属性.ppt_第2页
软件质量属性.ppt_第3页
软件质量属性.ppt_第4页
软件质量属性.ppt_第5页
已阅读5页,还剩136页未读 继续免费阅读

下载本文档

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

文档简介

1、A,1,质量属性 Quality Attribute,A,2,主要内容,一、质量属性场景 二、理解质量属性 三、实现质量属性的战术 四、设计架构,A,3,质量属性的定义,A quality attribute (QA) is a measurable or testable property of a system that is used to indicate how well the system satisfies the needs of its stakeholders. 质量属性是一个系统的可测量或可测试的属性,它被用来描述系统满足利益相关者需求的程度 本章任务 怎样描述质量属性

2、 怎样达成质量属性 怎样应用质量属性(在架构决策时),A,4,系统的架构、功能和质量属性,软件开发时人们往往关注功能 实情:导致软件系统修改的主因不是功能,而是系统难以维护、扩展、被黑客破坏等。 系统的功能不能决定系统的架构 质量是系统的属性,而功能是系统的目标,A,5,构架和质量属性之间的关系,质量属性不完全依赖于设计、实现和部署 易用性涉及构架和非构架两方面的问题 系统能否为用户提供取消操作?这一类属于构架层次的问题 什么样的布局最直观?什么样的字体最清晰?这属于详细设计的部分,不属于构架设计。 可修改性: 划分功能的方式这属于架构层次的问题 模块中的编码技巧非架构层次问题 系统性能: 组

3、件间通讯数量、分配给每个组件的功能、资源共享的方式,等,这些都属于架构层次的问题 实现某功能采用的算法、如何编码这些算法,等,都会影响系统性能,但属于非构架层次的问题。,A,6,构架和质量属性之间的关系,构架不能独自实现质量属性 构架为质量属性的实现打下了基础,但不关注实现细节的话,这个基础就失去了意义。 复杂系统中,不能孤立地实现质量属性 例如,为了可靠性,增加冗余处理器和进程,保证不会因单点故障使系统崩溃。但这样对安全性不利,系统会有更多的地方可能会遭到入侵,A,7,质量属性的来源:3类需求,1. Functional requirements These requirements are

4、 satisfied by including an appropriate set of responsibilities within the design. 2. Quality attribute requirements These requirements are satisfied by the structures and behaviors of the architecture. 3. Constraints:a design decision thats already been made. satisfied by accepting the design decisi

5、on and reconciling it with other affected design decisions.,A,8,描述质量属性需求的6个部分,刺激stimulus 是到达系统的事件event 刺激源stimulus source 生成刺激的实体(计算机、人-可信或不可信) 响应response 刺激到达后采取的反应 响应度量response measure 对响应效果进行度量 环境: 刺激发生时的各种条件 制品: 可能是系统,或系统的一部分,核心,A,9,用如下方式描述质量属性场景,刺激源,刺激,环境,响应,响应度量,制品,A,10,质量属性的一般场景,A,11,可用性场景的一个

6、例子,外部系统,未曾预料的消息,正常操作,进程,通知操作员继续操作,没有停机,A,12,可修改性场景的一个例子,开发人员,希望改变用户界面,设计时,代码,修改不产生副作用,3小时内,A,13,一、质量属性场景,A,14,我们通常考虑如下质量属性,系统质量属性 可用性Availability 可修改性 性能 安全性 可测试性 易用性 其他如商业属性(上市时间)、概念属性等,在本课程中不讨论,A,15,可用性Availability,Availability refers to the ability of a system to mask or repair faults such that t

7、he cumulative service outage period does not exceed a required value over a specified time interval 可用性,通常关注如下方面: 系统故障发生的频度、出现故障时会发生什么情况(会出人命吗)、允许系统非正常运行多久、如何防止故障发生、发生故障时通知给哪里,等 区分故障failure错误error过错、责任fault 故障产生的原因即过错责任 Fault和failure之间的状态,称之为error 如果不进行纠正,错误会变成故障 用户可以观察到故障、但看不到错误,A,16,可用性Availabilit

8、y,通常,将可用性定义为 平均正常工作时间(MTBF) 平均正常工作时间(MTBF)+平均修复时间(MTTR) 不计算正常停机时间 where MTBF refers to the mean time between failures and MTTR refers to the mean time to repair.,=,A,17,Hazard analysis:is a technique that attempts to catalog the hazards that can occur during the operation of a system.,Catastrophic灾难

9、性 This kind of failure may cause a crash. This failure represents the loss of critical function required to safely fly and land aircraft. Hazardous有危险 This kind of failure has a large negative impact on safety or performance, or reduces the ability of the crew to operate the aircraft due to physical

10、 distress or a higher workload, or causes serious or fatal injuries among the passengers. Major显著 This kind of failure is significant, but has a lesser impact than a Hazardous failure (for example, leads to passenger discomfort rather than injuries) or significantly increases crew workload to the po

11、int where safety is affected. Minor 不显著 This kind of failure is noticeable, but has a lesser impact than a Major failure (for example, causing passenger inconvenience or a routine flight plan change). No effect 无影响 This kind of failure has no impact on safety, aircraft operation, or crew workload.,A

12、,18,A simple fault tree,A,19,Availability General Scenario,A,20,可用性的战术,A,Detect Faults错误检测 - 1,Ping/echo 节点间的异步“请求/回应”信息。检测可达性和往返延迟 Monitor 一个用来监视系统其他部分的组件 Heartbeat 监测者和被监测者之间交换的周期性信息 Time stamp Sanity checking健全性检查 某项操作或输出的合理性 Condition monitoring Voting (TMR) Replication:防止硬件错误,但避免不了逻辑错误 Function

13、al redundancy功能性冗余 防止设计或实施时的错误 接收相同的输入,要给出相同的输出。但其内部实现要用不同的方法,A,22,Detect Faults错误检测 - 2,Analytic redundancy 不仅限于组件的私有部分的多样性,而且在输入和输出方面也实现多样性。 Exception detection System exceptions:被0除、总线地址失效等 Parameter fence:防止对象的参数被覆盖 Parameter typing 参数限制 timeout,A,23,Recover from Faults,Active redundancy (hot sp

14、are热备份) Passive redundancy (warm spare暖备份) Spare (cold spare冷备份) Exception handling Rollback Software upgrade Retry Ignore faulty behavior Degradation Reconfiguration Shadow State resynchronization,Escalating restart 逐步重启 Non-stop forwarding (NSF) 直通,A,24,Prevent Faults,Removal from service Transact

15、ions事务 Atomic, Consistent, Isolated, and Durable Predictive model Exception prevention Increase competence set 扩充能力集合 is the set of states in which it is “competent” to operate.,A,25,A Design Checklist for Availability - 1,A,26,A Design Checklist for Availability - 2,A,27,A Design Checklist for Avai

16、lability - 3,A,28,A Design Checklist for Availability - 4,A,29,互操作性Interoperability,Interoperability is about the degree to which two or more systems can usefully exchange meaningful information via interfaces in a particular context.,A,30,互操作性一般场景,A,31,一个互操作性示例,A,32,互操作性战术,A,33,Checklist to Support

17、 the Design and Analysis Process for Interoperability,A,34,Checklist to Support the Design and Analysis Process for Interoperability -2,A,35,Checklist to Support the Design and Analysis Process for Interoperability -3,A,36,可修改性Modifiability,什么可以改变? 系统的任何部分:功能、平台、环境、质量、容量 何时修改、由谁来修改? 修改的代价,A,37,可修改性一

18、般场景,A,38,可修改性场景的一个例子,A,39,可修改性战术,A,40,性能Performance:An ounce of performance is worth pounds of promises.,性能最相关的即:时间,A,41,Sample concrete performance scenario 一个具体的性能属性场景,A,42,性能属性的战术,A,43,A Design Checklist for Performance,A,44,A Design Checklist for Performance-2,A,A Design Checklist for Performanc

19、e-3,A,46,安全性Security:衡量系统在向合法用户提供服务的同时,阻止非授权使用的能力,confidentiality, integrity, and availability (CIA) Confidentiality is the property that data or services are protected from unauthorized access Integrity is the property that data or services are not subject to unauthorized manipulation Availability

20、is the property that the system will be available for legitimate use. Authentication verifies the identities of the parties to a transaction and checks if they are truly who they claim to be Nonrepudiation guarantees that the sender of a message cannot later deny having sent the message, and that th

21、e recipient cannot deny having received the message Authorization grants a user the privileges to perform a task,A,47,安全性一般场景1,A,48,安全性一般场景2,A,49,一个安全性场景实例,A,50,安全性战术,A,51,安全性设计清单1,A,52,安全性设计清单2,A,53,安全性设计清单3,A,54,可测试性testability:Testing leads to failure, and failure leads to understanding,通过测试揭示软件缺

22、陷的容易程度 在开发设计良好的系统成本中,至少有30-50%用在了测试上。 测试由各种开发人员、测试人员、验证人员、用户进行。 对设计、代码、整个系统进行测试,A,55,可测试性的通用场景,A,56,一个可测试性的实例,A,57,可测试性的战术,A,58,可测试性的设计策略清单-1,A,59,可测试性的设计策略清单-2,A,60,可测试性的设计策略清单-3,A,61,易用性Usability:it takes a genius to make something simple.,对用户来说,完成某个期望任务的容易程度和系统所提供的用户支持的种类。 许多易用性问题属于质量属性 系统构建完成后,最

23、难添加的特性,往往属于架构内容 关于什么是架构方面的内容、什么不是,往往基于对问题的表面分析;深入分析会发现:到处都有应该在架构方面考虑的问题。,A,62,易用性一般场景,A,63,一个易用性场景实例,A,64,易用性战术,A,65,易用性设计策略,A,易用性设计策略-2,A,其他质量属性,Variability可变性 特殊的可修改性 It refers to the ability of a system and its supporting artifacts such as requirements, test plans, and configuration specification

24、s to support the production of a set of variants that differ from each other in a preplanned fashion. 用于软件产品线的维护 Portability 易于做改变,用于另外一种平台,A,68,其他质量属性,Development Distributability 支持分布式软件开发 Scalability horizontal scalability adding more resources to logical units vertical scalability adding more re

25、sources to a physical unit Deployability可部署性 Mobility deals with the problems of movement and affordances of a platform(大小、显示器类型、输入设备类型、带宽、电池等),A,69,其他质量属性,Monitorability deals with the ability of the operations staff to monitor the system while it is executing. Safety Software safety is about the s

26、oftwares ability to avoid entering states that cause or lead to damage, injury, or loss of life to actors in the softwares environment, and to recover and limit the damage when it does enter into bad states,A,70,ISO/IEC FCD 25010 product quality standard,A,71,三、实现质量属性的战术,如果不顾及所有的质量属性,每一个好的质量属性都是有害的,

27、A,72,可用性战术,刺激,响应,战术,返回,A,73,错误检测,命令/响应:ping/echo 一个组件发送ping,期望在预期时间内收到被审查组件的相应 心跳:heartbeat 组件定期发送消息(心跳),如果另一个组件没有收到,则通知纠错组件。 心跳同时还可以传输数据 异常:exceptions 异常处理的程序 前二者运行在不同进程上,异常处理通常在同一进程上,看图,A,74,错误恢复检测和修复,表决 冗余处理器的每个进程都有相同的输入,它们计算并发送给表决者一个输出值。(如果检测到某个错误,就停止该处理器) 表决规则可以是“多数规则”或“首选组件”等 注意多样性问题冗余组件运行不同算法

28、 主动冗余(热重启) 所有冗余组件都以并行的方式对事件做出反应(仅用其一) 发生错误,就切换到某一个组件 利用可靠传输协议,将传递给任何一个冗余组件的消息,都传递给其他所有组件 被动冗余(暖重启/多重冗余) 由一个组件负责对事件作出相应,并通知其他组件更新状态 出错后,在继续提供服务之前,确保备用状态是最新的 可以经常切换“主组件”,保持新状态 备件 替换各种的出现故障的组件 定期对备件进行备份、设定检查点,出错后重新初始化。 恢复时间可能稍长,看图,A,75,错误恢复重新引入,影子Shadow 以前出现故障的物体,在恢复之前,模仿工作组件的内容 状态再同步 组件重新提供服务之前,需要更新其状

29、态 检查点/回滚 使用上一个一致的检查点,,看图,A,76,错误预防,从服务中删除 执行某些活动,防止预期可能发生的错误 重启,防止内存泄露 事务 将一些有序的步骤绑定为事务,以备需要 进程监视器 利用监视进程检查进程中存在的错误,监视进程可以删除没有在运行的进程。,看图,A,77,可修改性战术,返回,刺激,响应,战术,A,78,局部化变更,维持语义一致性 语义,指的是模块内各责任之间的关系 要确保这些责任能够协调一致地工作,而不过多地依赖其他模块 耦合、内聚的程度是度量一致性的一个指标 同时还应该根据是否支持预期的变更,来判断一致性程度 预期可能的变更 在实践中,往往很难预期所有重要的变更

30、(经验) 泛化该模块 使模块能根据输入计算更广泛的功能 可以把输入看作是为该模块定义了一种语言,对其进行解释 限制可能的选择 实际中可选范围往往很大,可能会影响很多模块 例如,处理器的变更,可以限制使用相同家族的成员 正交,看图,A,79,防止连锁反应:一个模块对另一个模块的依赖性,有8种,一、语法 数据:由A产生并由B使用的数据,必须与B所假定的数据类型一致 服务:由A产生并由B使用的服务的特征,必须与B所假定的类型一致 二、语义 数据:由A产生并由B使用的数据的语义,必须与B的假定的一致 服务:由A产生并由B使用的服务的语义,必须与B的假定的一致 三、顺序 数据:要使B正确运行,必须以一个

31、固定的顺序接收A产生的数据 控制:要使B正确运行,A必须在一定时限内执行 四、A的一个接口的身份 A可有多个接口,要使B正确运行,该接口必须与B的假定一致,修改A会导致修改B,Int object,1 交0空 0交1 空,大头序 小头序,接口1输出 接口2输出,看图,A,80,防止连锁反应:一个模块对另一个模块的依赖性,有8种,五、A的位置 要使B正确运行,A运行时的位置必须与B的假定一致 例如,B假定A位于同一处理器的不同进程上 六、A提供的服务/数据的质量 要使B正确运行,A提供的服务/数据的质量必须与B的假定一致 七、A的存在性 要使B正确运行,A必须存在 如果B请求A的服务,A必须存在

32、或能动态地创建 八、A的资源行为 要使B正确运行, A的资源行为必须与B的假定一致,修改A会导致修改B,看图,A,81,防止连锁反应:PREVENT RIPPLE EFFECTS,信息隐藏 信息隐藏,就是把某个实体的责任分解为更小的部分,并选择使哪些信息成为公有的,哪些私有 目的是使变更被隔离在一个模块内 维持现有接口 语法依赖性容易用这种方法屏蔽变更,但语义、质量、资源等的依赖性,很难通过维持接口来屏蔽 创建抽象接口,与具体实现相分离 添加接口:提供最新的服务或数据 添加适配器:给A添加适配器,把A包装起来,提供原始A的信息 提供一个占位程序A:如果变更删除了A,就提供一个占位A,向B提供A

33、的签名,而B不用修改(如果只需要A的签名的话) 限制通信路径 限制与给定模块A贡享数据的模块。即减少两类模块的数量,1,使用由A生产的数据的模块数量。2,给A提供数据的模块的数量,看图,A,82,防止连锁反应:PREVENT RIPPLE EFFECTS,仲裁者的使用:对于非语义型的依赖,可以在A、B间插入一个仲裁者,管理与该依赖相关的活动。仲裁者是: 数据(语法):存储库充当数据生产和使用者之间的仲裁者。一些库例子: 某些订阅-发布模式,将语法转换为B的语法 MVC和PAC模式把一种形式的数据(输入)转换为另一种形式的数据(抽象组件中的格式) 服务(语法): 桥、调停者、代理和工厂模式都提供

34、了把服务语法从一种形式转换到另一种形式的仲裁者。防止A的变化扩散到B A的接口的身份: 可以使用经纪人模式屏蔽一个接口中身份的变化。让经纪人与A的新身份进行连接,B不变 A的位置(运行时) 由A负责在名称注册服务器中,注册其位置,B则检索此位置 A的资源行为 让一个资源管理器来管理A所涉及的资源 A的存在性 工厂模式可以根据需要创建实例,因此,B对A的依赖性由该工厂的操作来满足,看图,A,83,推迟绑定时间:支持部署时(变更)及非开发人员的修改,运行时注册 即插即用。但需要额外的管理注册的开销 配置文件 在开机启动时,根据其设置参数 多态 允许方法调用的后期绑定 组件更换 允许载入时绑定 遵守

35、已定义的协议 允许各个独立进程在运行时绑定,看图,A,84,性能战术,返回最近,刺激,响应,战术,A,85,资源需求,提高计算效率 改进关键算法。用一种资源换取另一种资源 减少计算开销 例如删除一些仲裁者 管理事件速率 降低对环境监视的强度 控制采样频率 限制执行时间 限制队列的大小,A,86,资源管理,引入并发 不同的线程上处理不同的事件流 维持数据或计算的多个副本(注意一致性) 例:高速缓存。 增加可用资源 提供额外的处理器、内存、速度更快的网络。等。,A,87,资源仲裁:对竞争的资源进行调度,常见的调度策略 FIFO:适用于相同优先级 固定优先级调度:可能使低优先级请求等待过多时间。常见

36、优先级策略为: 语义重要性 时限时间:时限短(到期)的请求优先级高 速率单调:对于周期任务,选择周期短的优先级高 动态优先级 轮转 时限优先 静态(脱机)调度 系统执行前,基于被调度任务的时间参数来安排调度 适用具有确定性时间要求的系统,例如空管。,A,88,安全性战术,刺激,响应,战术,A,89,抵抗攻击,对用户身份进行验证 确保用户或计算机是它所声称的用户或计算机 密码、数字证书 对用户进行授权 经过身份验证的用户,有什么样的访问权限 访问控制 维护数据的机密性 加密数据,VPN,SSL 维护完整性 限制暴露信息 限制访问 防火墙根据消息源或目的端口,来限制访问,北斗,A,90,检测攻击,

37、将网络通信模式与数据库中的进行对比 检测攻击的“传感器” 将各传感器进行融合 记录日志 分析工具和控制台,A,91,从攻击中恢复,恢复状态(防守性) 维持重要副本数据 识别攻击者(惩罚性) 维持审计追踪,A,92,可测试性战术,刺激,响应,战术,A,93,可测试性战术:,管理输入输出 记录/回放:捕获跨接口的信息,将其作为测试专用软件的输入 将接口和实现分离 占位程序可以使得系统剩余部分得到检测 特化访问路线/接口 测试工具独立地捕获某些变量值 内部监视 内置监视器,A,94,易用性战术,刺激,响应,战术,A,95,易用性战术,运行时 用户主动:撤销 混合主动:提供进展指示器 系统主动:预测与

38、用户相关的某些信息 维持任务的一个模型 维持用户的一个模型 维持系统的一个模型 设计时 将用户接口(可能频繁改变)与应用的其余部分分离开 支持该战术的架构模式:MVC、PAC。Seeheim、Arch/Slinky,A,96,Seeheim简介,Seeheim模型将软件体系结构分为4个部分:核心模块(Functional Core),核心应用接口(Functional Core Adapter),对话控制器(Dialogue Contro1ler),界面构件(Presentation Component)。Function Core对领域应用进行建模。Functional Core Adapt

39、er为用户界面与核心应用之间建立一个缓冲区,以减少二者之间的耦合。它通过一些交互协议为用户界面与核心应用之间提供同步或者异步的数据交换。Dialogue Controller是Seeheim模型中的核心部分。它通过界面构件接收来自用户的各种输入请求,通过转换后利用核心应用接口与核心模块进行数据交换,保证多个视图间的一致性,以完成特定的用户任务在Dialogue Contro11er中可以嵌套定义Seeheim子模型。这样可以从不同粒度上对GUI系统进行建模。Presentation Component对界面构件的具体交互动作和输入输出进行设计。,A,97,战术与构架模式(风格)的关系,设计师会

40、选择一个精心设计的模式或模式集合,来实现一个或多个战术 根据战术,创建构架模式和策略 选择了战术之后,设计师的任务才开始 任何设计都使用多个战术 对设计师来说,分析过程包括理解在实现中所应用的战术;明智地选择战术组合来实现系统的目标 例:海战-制空:飞机-航母,A,98,四、空中交通管制: 高可用性设计方案分析,A,99,高可用性设计案例分析:空中交通管制(Air Traffic Control),ATC: 对实时性和安全性要求极高 由FAA(联邦航空局)管理客户 从顺利起飞到安全抵达整个过程,飞机都要受ATC某个部分的管理:地面控制部分负责管理飞机在机场地面的运动;控制塔台控制飞机在该终端控

41、制区域空间的飞行;该系统有多个中途中心; 我们要讨论的系统叫ISSS(Initial Sector Suite System)初始区段组系统:对22个中途中心的软硬件进行升级。,A,从A港到B港的飞行控制示意,A,101,各中途控制中心管辖,A,102,ISSS需求与质量分析,两个最重要的质量属性 极高的可用性:不正常状态只能持续极短时间 高性能:必须在不丢失任何数据的情况下,对大量数据(每中心最大飞机数量2440)进行处理。通信网络必须能处理这种负载,软件必须快速带预测性地进行计算 其他重要属性 开放性 能够提交该系统的子集 能够更改功能、处理软硬件的升级 能够与众多外部系统相接并协同工作

42、必须满足众多涉众的要求,特别是控制人员的需求。,A,某区段组的控制台,一个中心可以有多个区段,雷达控制员:监视雷达数据,与机组人员联系,保证飞机安全隔离 数据控制员:获取每一架飞机的数据(飞行计划等),A,104,ISSS系统的规模,每个中途中心支持210个控制台,每个控制台都有工作站级的CPU:IBM RS/6000 要求每个中心能同时管理400-2440架飞机 每个场站需要16-40台雷达 一个中途中心可能需要60-90个控制位置,每控制位置需要一个或多个控制台 ISSS系统要求使用Ada语言(源代码超过100万行),A,105,ISSS系统必须完成如下功能,获取存储在现有ATC系统主计算

43、机(HCS)中的雷达目标数据 转换雷达报告,以供显示,将其广播给所有的控制台。每个控制台选择自己需要的数据,每控制台都能显示任何方位的数据 处理冲突警告(撞机)或其他计算机发来的数据 提供与HCS的接口,用于输入及查询飞行计划 提供网络管理等多方面的监控信息,允许场站管理人员重新配置所安装的系统 提供记录能力,以供事后回放 在控制台提供图形界面。特殊功能(如一定透明性) 当主计算机、主通信网络、主雷达传感器出现故障时,提供后备功能,A,106,ISSS的架构解决方案,可用性:一年内停机时间不能超过5分钟,这个质量属性决定了整个架构的决策 下面给出一些主要视图,并说明其战术 ISSS的物理视图

44、模块分解视图 进程视图 客户机服务器视图 分层视图 组件连接器视图,A,物理视图,A,108,物理视图,主计算机HCS是中途中心的核心 每个中心有两台主计算机,一台负责常规处理,一台在前者出现故障时接管处理。 主计算机负责对监控数据和飞行计划数据处理 通用控制台Common Consoles是空管人员的工作站。1区段有1-4台控制台 本地通信网LCN是ISSS系统的主要网络。每台主机都通过双LCN接口单元(每一个都叫做LIU-H)与LCN相连 LCN由4个并行的令牌环网组成,以提供冗余能力并平衡总负载 一个把监控数据广播到各个处理器,第2个实现处理器间的点到点通信,第3个把显示数据从通用控制台

45、发送到数据记录部件备用;第4个是备用的,A,109,物理视图,增强直接访问雷达信道(EDARC), 提供飞机方位的后备信息,并将飞行数据块信息限定显示在控制台上 使用EDARC是为了防止主机发送的信息丢失。 EDARC实质上提供了原始雷达数据、到ESI(外部系统接口)处理器的接口 后备通信网(BCN)是采用TCP/IP协议的以太网 LCN、BCN都有相应的监控控制台(M&C) 测试与培训子系统提供了在不影响正常操作情况下,对新的软硬件测试以及对用户进行培训的功能 中央处理器采用大型机上的处理器。在ISSS系统的早期版本中用以提供数据存储和回放的功能,A,110,模块分解视图,ISSS的模块被称

46、为计算机软件配置项(CSCI)。按照美政府软件开发标准定义。每个CSCI都围绕一个中心问题展开 显示管理 通用系统服务:提供实用程序 记录、分析、回放:捕捉会话,事后分析 全国空域系统修改:对驻留主机的软件做相应修改 IBM AIX操作系统 分解视图反映了几个可修改战术 语义一致性:为每个CSCI分配定义良好不重叠的责任 抽象通用服务战术:通用系统服务 记录回放战术: 预期变更、泛化模块、维持接口稳定战术:仔细设计软件的接口,A,111,进程视图,A,112,进程视图,ISSS按多处理器环境设计,处理器在逻辑上组成处理器组。成组的目的是要分别运行一个或多个应用程序的副本,容错、可用性。 PAS

47、:主地址空间 SAS:备用地址空间 一个主地址空间和x相应备用地址空间集合被称为操作单元。操作单元驻留在同一地址处理器组的处理器中 未以这种容错方式实现的ISSS的其它部分,则在不同的处理器上独立运行。称为功能组FG 该视图反应的可用性战术 状态再同步、shadowing、主动冗余、从服务中删除,A,113,进程视图,各应用程序之间按C/S模式进行交互 操作单元内PAS将状态变化通知给SAS SAS等待超时,或其他标志PAS、SAS自身失效的消息,以便接替PAS。有以下步骤: 某SAS提升为新PAS PAS重新设定与本操作单元中各客户机的关系,然后通知各客户机,原操作单元故障 启动某个新SAS

48、,替换原来的PAS 新SAS向新PAS通告自己的存在,新PAS将状态通知给SAS,使其保持最新 如果SAS内部错误,则在另外的处理器上启动新SAS,新SAS与PAS协调,并接收状态数据,A,114,进程视图,如果需要添加新操作单元,采用如下步骤 确定必要的输入数据及所在位置 确定哪些操作单元需要用到新操作单元的数据 以一种避免死锁的方式,将新操作单元的通信加入到整个通信拓扑结构中 设计消息,实现所期望的数据流 确定在评审时必须要用的内部状态数据,以及在从PAS到SAS的更新通信中必须包括的状态数据 将状态数据划分为能够很好地适应网络要求的消息 定义必须用到的消息类型 规划PAS失效时的切换 保

49、证切换时的数据一致性 保证各个处理步骤能够在不超过一次“心跳”的时间内完成 规划与其他操作单元的数据共享和数据锁定协议。,A,115,客户机服务器视图:,A,116,客户机服务器视图,应用程序以此方式和系统交互, 精心设计了接口,使用简单的消息协议 反映了如下战术 维持接口的稳定性 组件更换 遵守已定义协议,A,117,软件架构的分层视图,A,118,保证容错的组件-连接器视图,A,119,容错,PAS/SAS模式捕获单个应用程序内的错误,并从中恢复。容错层次,则捕获应用程序间交互的错误,并从中恢复。 ISSS系统提供了多种不同层次的错误检测和恢复机制。每个层次上都能异步地: 检测自身、同级实

50、体和低层实体的错误 处理来自低层的例外情况 诊断、恢复、报告或提交例外情况,A,120,容错,每一层次都要在下层所产生的可用性的基础上进一步提高系统的可用性。层次包括: 物理层 操作系统 运行时环境 应用程序 本地可用性 组可用性 全局可用性 系统监视与控制 在每一层上都要做错误检测和隔离工作 除常规可用性战术外,容错视图还使用了“命令和响应”“心跳”作为检测故障的方法。将错误过滤到适当的地方以进行纠正;过滤到备件上,已进行恢复。,A,121,将视图彼此关联起来,一个视图的元素,可能在其他视图中以另一种形式出现 通过分析视图彼此间的关系映射,更深入地了解系统,A,ATC系统如何实现其质量属性,

51、A,123,ISSS后记,ISSS系统使用寿命长、成本高、规模大、作用重要且受各方面关注 通过包括硬件、软件冗余以及分层错误检测在内的标准容错机制(和代码模板),以及采用消息传递的分布式计算,该架构能满足复杂的、广泛的使用要求 由一流专家组成的小组对ISSS构架进行了大量的软件审核;遍历几个更改场景、测试了其可修改性: 对监控(M&C)的人机界面做重大修改 在ISSS系统中引入第三方开发的ATC应用程序 在系统中添加新的空中交通管制图 用一个具有类似功能的芯片更换RS/6000处理器 删除ISSS中对支持电子飞行条的要求 把系统的飞行跟踪能力提供50% 结果表明,修改能直接了当地进行,说明架构

52、经过精心的设计 美国政府放弃ISSS,转向一个功能更简单、成本更低的方案,A,124,五、设计架构,几乎在我们遇到的所有成功面向对象系统中都具有、但失败的系统中缺少的两个特性是: 存在一个强大的构想 应用管理良好的迭代式增量开发周期 Grady Booch,主要内容: 生命期中的架构 设计构架 形成团队结构及其与构架的关系 创建骨架系统,A,演变交付生命期,软件概念,初步需求分析,构架和系统核心设计,开发一个版本,交付最终版本,交付该版本,获取客户反馈,汇总客户反馈,A,126,7类设计决策:用于指导质量设计 seven categories of design decisions,Alloc

53、ation of responsibilities Coordination model Data model Management of resources Mapping among architectural elements Binding time decisions Choice of technology,架构就是一系列设计决策,A,127,Discussion questions - 1,What is the relationship between a use case and a quality attribute scenario? If you wanted to a

54、dd quality attribute information to a use case, how would you do it? Do you suppose that the set of tactics for a quality attribute is finite or infinite? Why? Discuss the choice of programming language (an example of choice of technology) and its relation to architecture in general, and the design

55、decisions in the other six categories? For instance, how can certain programming languages enable or inhibit the choice of particular coordination models? We will be using the automatic teller machine as an example throughout the chapters on quality attributes. Enumerate the set of responsibilities

56、that an automatic teller machine should support and propose an initial design to accommodate that set of responsibilities. Justify your proposal.,A,128,Discussion questions - 2,Think about the screens that your favorite automatic teller machine uses. What do those screens tell you about binding time

57、 decisions reflected in the architecture? Consider the choice between synchronous and asynchronous communication (a choice in the coordination mechanism category). What quality attribute requirements might lead you to choose one over the other? Consider the choice between stateful and stateless comm

58、unication (a choice in the coordination mechanism category). What quality attribute requirements might lead you to choose one over the other? Most peer-to-peer architecture employs late binding of the topology. What quality attributes does this promote or inhibit?,A,129,设计架构,基于质量属性驱动的设计(ADD) ADD把一组质量属性场景看作是输入、基于对质量属性与构架之间的关系的了解,进行构架设计 ADD可看作是对某些开发方法,如RUP的扩展:将ADD集成到构架设计中,然后遵循RUP过程,A,130,Attribute Driven Design,ADD是一种定义软件架构的方法,该方法将分解过程建立在软件必须满足的质量属性之上。 ADD是一个递归的分解过程,在递归的每一个阶段,都选择战术和架构模式来满足一组质量属性需求。 在软件生命期中,ADD位于需求分析之后,在知道(当前分解阶段的)构架驱动因素之后,ADD就可以开始了,A,131,Attribute Driven Design,ADD

温馨提示

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

评论

0/150

提交评论