轻量级评估的关键是在正确的时间评估正确的事物。我知道有两种方法可以有效地做到这一点。通过基于方案的评估,您可以使用质量属性方案和用例来驱动评估,而仅着眼于高优先级的质量属性。通过基于风险的评估,您可以识别风险,并让识别出的风险驱动您的架构设计活动。
我可以推荐两本书来探讨这两种(有点相关)的方法。
安东尼·拉坦兹(Anthony Lattanze)的软件密集型系统架构师介绍了以架构为中心的设计方法论,并涵盖了基于轻量场景的评估。您可能会在SEI的“质量属性”研讨会上认识到Lattanze,并且涉及类似的想法。
足够的软件体系结构:乔治·费尔班克斯(George Fairbanks)的风险驱动方法介绍了一种风险驱动方法,用于设计和评估软件系统的体系结构。如果您想预览,也可以在他的网站上找到一些免费章节。尽管本书中的原理可以立即应用,但是该方法并没有特定的方法,因此您需要结合其他领域的想法。我强烈推荐SEI的持续风险管理方法来识别/确定风险的优先级。
这些方法的基本思想是通过进行评估而不是等到最后就可以减少评估(和设计)的成本。虽然这肯定比在白板上讲话要重得多,但它的成本与完全成熟的ATAM相比并不昂贵。并且,如果您感到舒适,则可以挑选满足您特定需求的方法。
无论您使用哪种方法进行评估,总体思路都是相同的。
在你开始之前:
- 优先考虑质量属性方案或风险(如果您所拥有的只是非正式的)
- 明确定义可继续执行/不继续进行的决策(您如何知道架构“足够好”)
- 最新的架构描述(您正在评估的工件)
参加评估会议:
- 建筑师介绍了体系结构的概述
- 浏览视图,显示方案或风险如何得到满足
- 记录问题以便以后修复
- 角色和一般程序与Fagan检查(建筑师或作者,主持人,记录员)所使用的相似。
- 根据系统的大小,会话可能只花一两个小时。
会话结束后:
- 查看已发现的问题,并确定是否满足通过/不通过的条件。通常,需要进行大约3条评论才能得出所有结论。如果不满足,请继续完善和试验(或降低体系结构风险)。
- 这不是“全有还是全无”的评估-体系结构的不同部分可能“通过”,而其他部分仍需要改进。
为了帮助您了解基于场景的方法的外观,我在研究生院工作的一个顶峰项目提供了一些公共文档。该文档有些粗略,但是可以在ACDM上下文中提供一些基于方案的方法的示例。我们是一个由5人组成的团队,构建了一个典型的基于Web的应用程序,大约35个KLOC Java / GWT。