《软件体系结构的质量属性》由会员分享,可在线阅读,更多相关《软件体系结构的质量属性(44页珍藏版)》请在金锄头文库上搜索。
1、1 软件体系结构的质量属性 QualityCharacteristicsforSoftwareArchitecture 软件体系结构的质量属性2012 9 23 魏海芳2012 9 23 2 即将探讨的问题概念与方法案例个人体会 内容 软件体系结构的质量属性2012 9 23 3 1即将探讨的问题 软件体系结构究竟如何定义 虽然软件体系结构已经在软件工程领域中有着广泛的应用 但迄今为止还没有一个被大家所公认的定义 注意工程中的构件的复用是因为工程师只想集中精力做设计中真正创新的部分 为何不可照搬建筑工程的Architecture来解决软件工程里的Architecture 软件工程的确在朝着工程
2、学科发展的一般模式靠拢 但是大规模的复用才刚刚开始尝试 软件体系结构的质量属性2012 9 23 4 1即将探讨的问题 更直观的表象 失效曲线来自于设计或生产的缺陷与时间的函数关系 时间 年 时间 年 失效率 失效率 理想曲线 软件体系结构的质量属性2012 9 23 注意实际上更变的副作用从设计阶段就初现端倪 5 1即将探讨的问题 启发软件的质量问题暗示了设计缺陷或者从设计转化到机器代码的过程中产生的错误 关注前者 即软件体系结构 是否可以用高质量的设计来提高最终产品的质量 软件体系结构的质量属性2012 9 23 工具 方法 过程 质量关注点 软件工程层次图 6 1即将探讨的问题 在设计阶
3、段评估体系结构对于投资人 将赌注提前放在赢家对于用户 保证系统不偏离对于架构师 用一种好的方法验证经验 软件体系结构的质量属性2012 9 23 我们需要一种方法 以便让我们评估每个候选的体系结构 以确定哪种体系结构最适合解决问题 7 2概念与方法 软件体系结构的质量功能性需求是影响体系结构设计的核心 实际上大量的影响因素还包含在质量需求中 但是标准的OOA和OOD中 没有一个清晰的指导方法捕获这些需求 体系结构的设计也不是一个独立的过程 而是作为细化迭代的一个小块穿插在复杂的功能设计中 这就使得质量需求更加难以捕获了 软件体系结构的质量属性2012 9 23 8 2概念与方法 解决问题的途径
4、建立一种清晰的 可重用的框架来评估体系结构的质量 提炼出属性层和测量项 应用于评估当中 软件体系结构的质量属性2012 9 23 采用分解的方法评估 9 2概念与方法 体系结构的权衡分析方法ArchitectureTradeoffAnalysisMethod ATAM 收集场景引出需求 约束和环境描述列出所有的候选体系结构风格 模式单独考虑每个属性来评估质量属性针对特定的体系结构风格确定质量属性对各个候选项的敏感性使用第5步中的鉴定结果 软件体系结构的质量属性2012 9 23 注意上述步骤只是一次迭代 基于第5步和第6步的结果 某些候选体系结构被删除 其他可进一步细化再使用ATAM 10 2
5、概念与方法 体系结构的权衡分析方法 ATAM 还是存在问题ATAM使用效用树来将质量特性划分主次 但是这个效用树如何达到 为什么只有一层 甚至连质量特性的定义也不是很清晰 软件体系结构的质量属性2012 9 23 还有其他改进的方法吗 2概念与方法 基于ISO9126 1建立体系结构质量模型模型结构和ATAM类似 基于ISO9126 1构建 软件体系结构的质量属性2012 9 23 什么是ISO9126 1标准 SoftwareQualityCharacteristics更多资料可参阅 ISO IEC9126inpractice Whatdoweneedtoknow 11 2概念与方法 关于I
6、SO9126 1质量模型根据ISO9126 1 质量被描述为一组特性 用于评估其满足需求 显性和隐性 的能力 从用户角度 最终产品的质量从开发人员角度 不同开发人员提供的中间产品的质量从客户角度 市场的需求注意作为开发人员通常只考虑前两项 软件体系结构的质量属性2012 9 23 12 2概念与方法 关于ISO9126 1质量模型ISO9126 1广泛用于产品质量评估当中 作为评估质量的一个State of art标准 ISO9126 1包含六个高度独立的质量特性 质量特性在开发的各个阶段作为外部确认和内部审查的目标 一旦获得可测量的实体 就按照图中所示的过程精化 软件体系结构的质量属性201
7、2 9 23 特性 子特性 属性 度量分解过程 13 2概念与方法 ISO9126 1质量模型框架为了在开发中监控质量 外部的质量属性通常转换为中间产品的需求 这个过程实际上无章可循 所以提出ISO9126 1的标准 软件体系结构的质量属性2012 9 23 ISO9126 1质量模型的特性 14 2概念与方法 ISO9126 1质量模型框架 软件体系结构的质量属性2012 9 23 ISO9126 1质量模型的细化 15 2概念与方法 ISO9126 1质量模型框架应用于体系结构一个特定的体系结构可以视为一种高级组件 同样由连接器连接 按照ISO9126 1标准中的划分 组件每个特性的质量属
8、性都可以被度量 软件体系结构的质量属性2012 9 23 注意随着体系结构的确定 进一步分解体系结构是否可以增强结构的质量 这个问题的回答是肯定的 但是不是我们要讨论的问题范围 16 2概念与方法 ISO9126 1质量模型框架应用于体系结构质量的度量按直觉评价 一般方法是列出产品的特性 然后用一个属性组来描述它 只要达到预期的值 则认为是一个达标的产品 至于达标的值的界定 一般包含在需求当中 下面进一步解释如何细化属性并将其用于体系结构 软件体系结构的质量属性2012 9 23 注意我们假定这些特性都是彼此独立的 否则就太过复杂 无法讨论下去了 17 2概念与方法 1功能性适合性 Suita
9、bility 拥有符合特定任务需求的足够的功能 存在 任务已被详细说明正确 正确的解释任务的详细说明 从软件体系结构的层次上说明 系统的功能性必须被识别出来 在此种情况下 根据确定与否取值为1或0 由功能需求所获得的时序图必须被详细精化 在拥有一个体系结构说明书的情况下 特定的功能被分解成与构件有关的子功能 并且这些子功能合起来应满足系统的功能性需求 软件体系结构的质量属性2012 9 23 18 2概念与方法 1功能性准确性 Accuracy 以需要的精确程度来提供正确或相符的结果或效果 从代码层度量 从软件体系结构的层次上说明 识别负责该计算功能的组件 由公式 对该属性进行计算 软件体系结
10、构的质量属性2012 9 23 19 2概念与方法 1功能性互操作性 Interoperability 在一个系统内或多个系统间相互作用的能力 可替代性replaceability兼容性compatibility从软件体系结构的层次上说明 识别与外部特定系统进行交互的中间件 根据中间件的存在与否决定属性值为1或者0 软件体系结构的质量属性2012 9 23 20 2概念与方法 1功能性安全性 Security 防止未经授权访问程序或者数据的能力 从软件体系结构的层次上说明 应有一种机制或者设备 软件或硬件 来明显地完成这个任务 可以是组件 如中间件提供的一项服务 或集成在组件里的功能 根据机制
11、或者设备的存在与否决定属性值为1或者0 软件体系结构的质量属性2012 9 23 21 2概念与方法 1功能性依从性 Compliance 软件遵循有关标准 约定 法规或类似规定的能力 从软件体系结构的层次上说明 很笼统 无法直接应用到体系结构设计 根据要求的标准的应用与否决定属性值为1或者0 体系结构的依从性可以认为是对体系结构相关的约束的满足情况 软件体系结构的质量属性2012 9 23 22 2概念与方法 2可靠性成熟度 Maturity 软件产品避免因软件中错误发生而导致失效的能力 可在代码层被测定 平均失效时间MTTF 设备在规定的环境下 正常生产到下一次故障的平均时间 从软件体系结
12、构的层次上说明 该属性使用下式计算 NoticethattheMaturityattributeoftheCOTScomponentsisknownorshouldbe 软件体系结构的质量属性2012 9 23 23 2概念与方法 2可靠性容错性 Tolerance 在软件发生故障或违反指定接口的情况下 软件产品维持规定的性能水平的能力 从软件体系结构的层次上说明 它意味着拥有某种机制或软件设备 它可以是一个构件或被集成到构件中 如异常处理以及冗余 根据这种机制或设备的出现与否定义其值为1或者0 它可以被精确为一种属性 这种属性的值与机制或者设备相关 软件体系结构的质量属性2012 9 23
13、24 2概念与方法 2可靠性可恢复性 Recoverability 1 重建规定的性能水平的能力 2 恢复受影响的数据的能力 3 恢复所需的时间 从软件体系结构的层次上说明 软件中存在一种机制或者软件设备 其独自成为构件或被集成在构件中 其功能是重建或恢复数据 冗余就是一个典型的例子 如果这种机制存在 那么可恢复性就可被细化为一种和时间 代价相关的性能属性 每个支持此机制的组件都需计算出这样的属性 软件体系结构的质量属性2012 9 23 25 2概念与方法 3易用性易理解性 Understandability 是指软件产品使用户能理解软件产品是否合适以及如何能将软件用于特定的任务和使用环境的
14、能力 易学习性 Learnability 软件产品使用户能学习它的能力 易操作性 Operability 软件产品使用户能操控和控制它的能力 GUI 软件体系结构的质量属性2012 9 23 注意从软件体系结构的层次上说明 它们独立于体系结构 体系结构对用户来说是透明的 在此不予论述 26 2概念与方法 4效率时间特性 Timebehavior 在规定的条件下 软件产品在执行其功能时 提供适当的响应时间和处理时间以及吞吐率的能力 该属性的可在系统的各个功能上测定 从软件体系结构的层次上说明 对于各个功能 其测定如下式 软件体系结构的质量属性2012 9 23 27 2概念与方法 4效率资源利用
15、 Resourceutilization 在规定的条件下 软件产品执行其功能时 所使用的资源数量 类型及其使用时间 复杂性 complexity 从软件体系结构的层次上说明 每个功能都可以测量这个属性 时间和空间与组件密切相关 软件体系结构的质量属性2012 9 23 28 2概念与方法 5可维护性易分析性 Analyzability 软件产品可被诊断软件中的缺陷或失效原因 以及判定待修改部分的能力 易改变性 Changeability 软件产品使指定的修改可以被实现的能力 稳定性 Stability 软件产品避免软件避免由于软件修改而造成意外结果的能力 易测性 Testability 软件产
16、品使已做修改能被确认的能力 软件体系结构的质量属性2012 9 23 29 2概念与方法 6可移植性适应性 Adaptability 软件产品无需采用有别于为考虑该软件的目的而准备的活动或手段 就可以适应不同的指定的环境的能力 从软件体系结构的层次上说明 为适应而出现的机制 比如特定的类或者参数 度量根据机制的出现与否来决定其值为1或者0 软件体系结构的质量属性2012 9 23 31 2概念与方法 6可移植性可安装性 Installability 软件产品在指定环境下可被安装的能力 从软件体系结构的层次上说明 安装机制的存在 这个子特性根据机制的出现与否来决定其值为1或者0 软件体系结构的质量属性2012 9 23 32 2概念与方法 6可移植性可共存性 Co existence 软件产品在公共环境中同与其分享公共资源的其他独立软件共存的能力 从软件体系结构的层次上说明 为满足共存的设计的机制 这个子特性根据机制的出现与否来决定其值为1或者0 软件体系结构的质量属性2012 9 23 33 2概念与方法 6可移植性可替代性 Replaceability 是指软件产品在环境相同 目的相