论文部分内容阅读
在现代软件开发和维护过程中,软件项目的需求往往处于持续的演化过程中。传统的瀑布模型所要求的固化的需求通常不能适应激烈的软件行业竞争和软件开发现状。因此,面对软件开发过程中需求的持续演化,需要有规范的需求管理策略进行控制。同时由于需求的变更,软件的设计也可能需要做相应的修改与之适应。然而,现有的软件开发过程往往不要求明确记载对软件设计的更改,也因此忽略了导致这些修改的源头——需求的变更。软件架构师在凭借自己的经验和直觉对软件体系结构给出新的设计决策的同时,也往往会丢失整个决策过程。这导致了设计决策与引发这些决策的需求之间的脱节,也导致了软件体系结构决策的随意性和不可重现性,增加了软件后期维护和演化过程中做决策的成本。为了解决需求持续演化过程中软件体系结构设计决策的获取问题,首先给出了需求的演化模式。我们将需求演化的过程看成是系统运行上下文变化和客户期望变化两方面共同影响的结果。因此功能需求、质量要求和运行上下文形成了一种相互影响、并可能相互转化的格局。与此同时,客户对功能需求与质量要求的重视程度也可能有所不同。例如,有时解决方案只要能满足必要的功能需求,而可以不满足某些质量要求;或者,只要满足重要的质量要求而可以忽略某些次要的功能需求。在软件开发和维护过程中,这些具体的需求演化情况将对软件体系结构设计决策带来指导性的作用。本文结合一个项目开发的实例,对实际的需求演化过程进行了分析。在分析了需求演化模式及其实例的基础上,本文还给出了一个基于质量属性和软件体系结构决策历史的决策优选方法框架,来支持需求持续演化过程中软件体系结构设计修改决策的描述、记录和选择。该方法框架将演化的需求分解成多个正交问题(子需求)的集合,根据需求所处的上下文环境差异及关注的质量属性不同,组织涉众对质量属性的重要性值、期望值、正交问题的重要性值进行评价,再将不同的设计者针对这些问题提出的局部解决方案组合成满足约束的总体备选方案,最后根据综合评价值给出总体备选方案的推荐排序,作为适合当前需求的软件体系结构决策。论文将该方法框架应用于一个实际的工业应用项目开发过程中,并讨论了实际应用的效果和可能的改进。