知识卡片

腐蚀最小化的三个策略

普通读书笔记卡

内容

腐蚀最小化方法包含三个策略。面向过程的架构一致性策略认为一致性对减少腐蚀至关重要,架构腐蚀往往与人为因素有关(设计文档匮乏、设计规则被误解、开发者技术缺陷),因此统一开发过程要保障架构满足用户需求、设计符合架构指导、变更需求经过审核、修改符合预定规则这几类一致性,具体落到四个子策略:架构设计文档(糟糕的文档是腐蚀主因之一,描述方法分形式化——定义明确但过于复杂——与非形式化——直观易懂但缺乏明确定义,容易引起误解反而加剧腐蚀两类);架构分析(用ATAM等评估复查方法比较预期架构与用户需求、质量属性、设计决策的差别);架构依从性监控(用反射模型技术比较架构师提供的高层模型与源代码实现的区别,或用特定领域语言说明检验架构约束);依赖性分析(揭示违背架构规则的具体情况,如分层系统中某组件未经过中间层直接调用了不该调用的层)。书中明确指出这一策略的局限:仅采用文档化不会阻止腐蚀,设计和代码审查这类过程活动也只能识别检测不合格的架构,”采用面向过程的一致性只能在一定程度上减少腐蚀,并不是根本解决办法”。架构演化管理策略把架构和系统看作一个整体,研究两者的共同演化来控制腐蚀,主要靠软件配置管理(SCM)工具跟踪记录架构及其实现的变化——SCM最初只是版本控制系统,后续研究不断扩展其功能以实现更全面的控制,随着Eclipse和Subversion的出现,这类管理在工业界得到更广泛应用。架构设计实施策略采用形式化或半形式化方法对目标系统建模、引导设计和编程活动(模型驱动架构MDA是典型应用),子策略包括代码生成(从需求规格生成代码桩或基础类,但难以完全自动化,需要程序员协助)、架构模式(提供已有解决方案和背后依据,如管道-过滤器、MVC、黑板模式,让开发人员沟通更明确、最大程度减少腐蚀可能性)、架构框架(提供可重用扩展的核心功能工具集,Spring和Struts是应用最广泛的两个例子)。

参考来源

- 位置:《软件架构理论与实践》第17章《软件架构的腐蚀和对策》"17.3.1 腐蚀最小化方法"节(源文件:_epub-src/OEBPS/text00139.html) - 结论依据:原文说明"软件架构腐蚀最小化(minimize)方法包含三个主要策略:面向过程的架构一致性(process-oriented architecture conformance)策略、架构演化管理(architecture evolution management)策略和架构设计实施(architecture design enforcement)策略",并逐一说明各策略的子策略与局限,直接支撑本卡片结论。 - 原始内容:因为良好的适用性,到目前为止,面向过程的架构一致性方法在工业界已经得到广泛的应用。但是,仅仅采用文档化不会阻止架构的腐蚀……总而言之,采用面向过程的一致性只能在一定程度上减少腐蚀,并不是根本解决办法。