基于模式的架构评审(2)

发表于:2012-06-01来源:InfoQ作者:Neil B. Harrison and点击数: 标签:软件测试架构
在评审结束后,评审者需要向整个团队做出总结。这应该可以进行的很快,因为多数问题已经在评审期间讨论或得到解决。(会议的全部过程可以在一个小

  在评审结束后,评审者需要向整个团队做出总结。这应该可以进行的很快,因为多数问题已经在评审期间讨论或得到解决。(会议的全部过程可以在一个小时内结束)
  评审和专注生产式实践
  表格1展示了专注生产式项目的典型实践以及PBAR和传统重量级评审将如何适应它们。这些实践也可以在很多敏捷和精益方法论中看到。请注意,并不是所有的专注生产式项目都支持敏捷方法论,反之,也并不是所有的敏捷项目都是专注生产式的。
专注生产式项目的通用实践和架构评审
专注生产式实践 PBAR 传统评审
频繁发布 [5], [6], [7]
 
在早期的多次发布中进行规划,简短的评审反馈周期可以很好的适应较小的发布窗口     在多次发布间没有实际意义;较长的计划-评审-反馈时间会跨越多次发布
 
随用户需求而变 [5], [7]   
 
专注于质量属性(稳定更胜于功能性需求);允许功能发生改变     需要保持需求的稳定性,包括功能性需求
轻量级文档 [5], [6] 不需要特定的文档;可以平衡好模式对应的架构质量保证问题     鼓励编写大量的架构文档;有部分文档必须编写,以供评审使用
“可行走的骨架”(Walking skeleton)[6] 在“可行走的骨架”的实现的反馈中进行规划     对于总体计划,需要根据需求建立基于日历的时间表
  频繁发布
  为了提高灵活性,一般的项目都可能会有较频繁的内部或外部发布。架构评审应该满足这样的场景:计划和评审本身都应该很简短。因为参与者不需要做任何准备,PBAR可以灵活地规划。它精巧的规模对于非常小的发布周期来说也只有很小的影响。
  随用户需求而变
  大多数的架构评审都基于需求说明书(通常以书面的形式)。但是由于需求常常变更,所以评审的功能被削弱了。而PBAR则关注于质量属性,它比功能性需求更加稳定。
  轻量级文档
  传统的评审都趋向基于全面的架构文档,但是这很容易让项目为了产出这些文档而多做很多工作。对于这种情况,PBAR是一种轻量级的选择。
  可行走的骨架(Walking Skeleton)
  “可行走的骨架”是早期一种贯穿始终的架构实现,经常被作为原型来用于证明架构概念。架构评审的一个完美时间点就是“可行走的骨架”完成之时。因为不需要很多的准备和精力,所以你可以在“可行走的骨架”实现后马上举办PBAR;而不需要像传统的评审那样,必须进行非常慎重的计划和前置工作。
  PBAR的经验
  我们曾在9个项目中使用了PBAR。虽然差不多有一半是学生的软件工程课程项目,但都是拥有真实客户的真实项目。在这些评审中,六个非常成功,有一个部分成功,而另外两个是失败的。那个部分成功和两个失败的评审帮助我们改善了评审过程。表格2简要列举了这些项目和结果;“主要问题”这一列包含了架构与重要质量属性之间主要的不协调情况。
基于模式的架构评审
系统 规模 项目阶段 项目描述
 
被找到的问题个数 主要问题个数 已被解决的主要问题个数 耗费的精力 (以员工小时计算[评审者/团队])
A 大型 实现阶段 流媒体数据的处理与分析 3 1 0 5 (5/0)
B 中型
 
架构阶段 计算机控制的过程控制 4 1 0 11 (6/5)
C 小型     已发布 嵌入式GPS平台应用 2 0 0 6 (4/2)
D 小型 实现早期 基于Web的定期跟踪系统 7 1 1 8 (3.5/4.5)
E 小型 实现早期 分布式订阅管理系统 3 2 1 9.5 (3.5/6)
F 小型 实现早期 电子商务库存管理系统 3 1 1 8 (3.5/4.5)
G 小型 实现早期 安卓手机应用 3 1 1 7.5 (3.5/4)
H 小型 实现早期 基于Web的游戏平台 5 0 0 7.5 (3.5/4)
I 小型 架构早期 基于Web的业务流程支持系统 0 0 0 4 (2/2)
  大多数项目都遵循前面描述的多数实践。大都需要开发人员之间的高度沟通,以及与客户之间高度的日常交流。大部分的项目罕有甚至没有架构文档,没有用文档记录甚至没有使用架构模式。大部分会有频繁的集成,少部分会有频繁的发布。大部分项目会更多地考虑用户的需求变更,并维护好一个灵活的排好优先级的功能列表,还有少部分会明确的创建“可行走的骨架”。

原文转自:http://www.ltesting.net