论文部分内容阅读
软件体系结构(software architecture)作为软件系统的高层抽象,对于控制软件复杂性、提高软件系统质量、支持软件开发和复用起到关键作用。软件体系结构设计需要跨越从需求到实现之间的鸿沟,并且面临比低层设计更大的问题范围、更多的不确定性、更高的风险,因此具有特殊的困难和挑战。
传统的软件设计方法学尽管可以为体系结构设计提供支持,但是在专门针对更加复杂系统而提出的体系结构抽象层,需要更适应该层次特点要求的思想和方法,才能有效地完成体系结构设计,实现体系结构在软件工程中的预期角色。软件体系结构领域已经提出的一些设计方法主要限于过程描述和策略指南,而对设计者在实践中如何克服体系结构设计的复杂性和获得设计结果,所提供的辅助较少,并缺乏自动化的支持。另一方面,虽然软件体系结构领域近年来将体系结构设计决策(architectural design decisions)作为一个关注焦点,认为应当将其作为体系结构模型中的一阶实体,从而解决软件开发和演化中的“知识蒸发”、“设计腐化”等问题,但是当前的研究主要是对设计决策及其理由的表示,而缺乏与体系结构设计方法的集成,因此决策与理由的捕捉往往成为设计工作的额外负担而难以实用化,同时决策的概念也未能对体系结构设计本身起到应有的指导作用。
为此,本文在软件体系结构层次运用和特化软件工程的基本思想方法,提出了针对体系结构设计的“决策抽象(decision