知识卡片
SAAM方法的六步骤与直接/间接场景
内容
SAAM(基于场景的架构分析法,1993年由SEI的Len Bass等提出)是几乎所有后续架构分析方法的共同起点:让系统的风险承担者列举出若干场景(代表已知或未来很可能发生的变化),把场景与架构相应部分对应起来,这种对应能直接暴露架构问题——如果许多差别很大的场景都影响到同一个或几个组件,说明架构过于复杂;如果某一场景会导致许多组件同时发生变化,说明重要设计细节散布在整个架构中、没有被恰当封装。SAAM分六个步骤:场景开发(要覆盖最终用户、客户、维护人员等各类相关人员的任务);架构描述(用参与者都能理解的形式,同时说明静态特征和动态特征,与场景开发交替进行、互相促进);场景分类和优先级确定(每个风险承担者分到约为场景总数30%的选票、自行分配投票);单个场景评估;场景交互评估;形成总体评估(给每个场景设置权值,权值确定要允许公开讨论辩论)。SAAM最核心的概念区分是直接场景与间接场景:直接场景是现有架构不需要任何修改就能直接支持的场景,能增进对架构的理解、促进对性能可靠性等质量属性的研究;间接场景是需要对架构做出修改(更改组件、添加组件、建立新联系、删除组件或联系、更改接口等)才能支持的场景,是衡量架构能否适应未来演化的关键。当两个或多个间接场景要求更改架构同一组件时,就称这些场景在该组件上存在”相互作用”——场景相互作用多的地方,往往就是功能分离不够好、缺陷更容易出现的地方,这条判断把”架构复杂度”这个抽象概念,转化成了”有多少场景会撞在同一个组件上”这个可以数出来的具体信号。
参考来源
- 位置:《软件架构理论与实践》第15章《软件架构分析与测试》"15.2.1 SAAM"节(源文件:_epub-src/OEBPS/text00122.html)
- 结论依据:原文说明"直接场景就是按照现有架构开发出来的系统能够直接实现的场景……间接场景就是需要对现有架构做些修改才能支持的场景",并说明"场景交互比较多的地方很可能就是功能分离不够好的地方……场景相互作用的多少很可能与最终产品中缺陷的多少密切相关",直接支撑本卡片结论。
- 原始内容:这种对应将显现出问题所在,即架构过于复杂的地方(如果许多差别很大的场景都影响到某一个或几个组件)或重要设计细节散布在整个架构中而没有封装的地方(如果某一场景会导致许多组件发生变化的话)。