知识卡片
三类架构评估技术对比
内容
架构评估的目的是判断架构是否实现了利益相关者的质量需求,通常做法是先把功能视图/并发视图/代码视图/开发视图/物理视图等设计视图细化,建立视图细节与特定质量属性之间的关系,再进行评估准备、识别利益相关者、组织评估小组、选择评估技术等工作。书中把评估技术分三大类,各自的客观性和适用范围不同。基于问卷调查或检查表的评估技术(如CMU/SEI的软件架构风险评估过程):问卷是一系列适用于各种架构评估的相关问题(涉及设计决策、文档、描述细节等),检查表则更注重细节、趋向检查特定质量属性(如实时系统性能检验会具体问”针对某请求的响应速度”“是否反复多次写同一硬盘区域”);这类技术自由灵活、可评估多种质量属性、可在架构设计的多个阶段使用,但评估结果高度依赖评估者的主观判断和经验,不同评估者可能得出不同甚至相反的结论——尽管如此,由于系统相关人员的经验知识本身就是评估架构的重要信息来源,它依然是目前完成架构分析与质量评估最有效的重要途径之一。基于场景的评估技术(如SAAM、ATAM):场景是利益相关者与系统交互的简短描述,把模糊难以分析的质量属性需求转化为具体易懂的表述;场景分直接场景(从设计到构建都在使用、代表系统外部视图,由系统接收外部激励及其处理实现导出)和间接场景(代表对现成架构的改变,如移植到新平台、增加新特性)两类,描述时用激励(怎样引发交互)、环境(激励发生时的情况)、响应(架构如何应对激励)三要素刻画;这类技术会考虑开发人员、维护人员、最终用户、管理人员、测试人员等所有相关人员的质量要求。基于度量的评估技术:度量是对软件制品某属性赋予数值的考察技术(如代码行数、方法调用层数、组件个数、扇入扇出数),涉及三个基本活动——建立质量属性与度量之间的映射原则、从架构文档获取度量信息、根据映射原则推导系统质量属性;这类技术能提供更客观量化的评估,但要求评估者对待评估架构和领域非常熟悉,且需要在架构设计基本完成后才能进行。三者中,问卷检查表和度量技术适合通用或特定领域系统,场景技术只适合特定领域系统;除度量技术较客观外,另两类都偏主观。