软件架构决策理由的捕获与运用
在软件设计领域,记录架构决策的理由是一个极具吸引力且潜力巨大的想法。它能为系统提供集体记忆,让利益相关者在系统的整个生命周期中,了解重要设计决策的原因、内容以及决策时考虑的替代方案。然而,目前在捕获和管理架构决策知识(ADK)方面,缺乏有效的指导和支持机制。
1. 软件架构的重要性
软件架构是软件的结构,包含软件元素、这些元素的外部可见属性以及它们之间的关系。外部可见属性包括功能(以职责表示)和质量属性,如执行时间、失败概率等。软件架构代表了一系列连贯的设计决策,这些决策塑造了系统及其开发项目。它对系统的许多重要质量属性,如性能、安全性和可靠性等,有着决定性的影响。同时,架构也是进行重大设计权衡、协商需求以及分配项目和系统资源的关键环节。
架构的重要性还体现在它是早期做出的、具有广泛影响的设计决策。这些决策一旦确定,后期很难更改,因为早期引入的缺陷可能比后期引入的缺陷成本高得多。例如,在许多组织中,架构代表了一项重大的资本投资,可以在整个相关系统家族中发挥杠杆作用。
2. 架构设计决策的本质
架构设计决策可以看作是架构状态从决策前到决策后的转变。这种转变可以是架构结构部分的细化、责任在结构元素之间的重新分配、结构元素的聚合,或者是元素属性的更改或添加。
以一个组合控制依赖图生成器(CCDGG)系统为例,已知需要一个客户端和服务器之间的连接器,这个需求被细化为使用TCP/IP连接器,这就是一个架构设计决策带来的转变。
常见的记录决策理由的方法基于论证表示。这种方法假设关键元素是问题,即需要做出决策的原因。它会列举支持和反对特定解决方案的论据,并得出决策结果。这种方法能够
超级会员免费看
订阅专栏 解锁全文
34

被折叠的 条评论
为什么被折叠?



