软件体系结构作为软件产品的高层次抽象设计,其演化过程在软件系统演化中处于中心地位。在软件体系结构的演化过程中,各层次的需求如何参与和引导演化、如何提炼、描述和管理可复用的历史设计决策、如何支持整个软件演化的多个分支方向,都是软件体系结构演化基础研究中需要解决的问题。由于软件体系结构是一系列复杂设计决策过程的结晶,因此这一系列设计决策能够反映软件体系结构的演化历史,指导未来软件体系结构的演化方向,是软件体系结构演化过程中的重要资产。本项目拟从驱动软件体系结构演化的视角,基于设计决策,结合相关的语义模型,对软件体系结构演化过程中设计决策及其相互关系的描述和管理、各层次需求与软件体系结构演化的关系、历史设计决策的管理和复用、特定领域软件体系结构的建立进行深入研究,为优化软件体系结构演化管理、提高演化效率、控制复杂性提供理论和技术基础。
software architecture;design decision;evolution pattern;requirements traceability;software product line
软件体系结构的演化过程在软件系统的演化中处于中心地位。在长期的软件开发和维护过程中,往往由于软件设计决策的缺失而削弱了对软件体系结构演化的控制和管理,从而降低了软件产品的质量。为了理解、控制和管理软件体系结构演化过程,本项目从设计决策的研究入手,对软件体系结构设计决策的描述和记录、软件体系结构演化的模式、软件演化中质量演化的特性、软件需求演化和软件体系结构演化的关系、以及软件演化的相关语义模型的建立等方面进行了深入的研究,开发了相应的原型工具,并且对真实的软件产品线开发过程中软件体系结构的演化过程从需求到实现各方面展开了案例研究,取得了以下重要的成果。1)归纳总结了软件体系结构设计决策的描述元模型,设计实现了基于GIT版本管理的设计决策管理工具,并在此基础上提出了量化的体系结构设计决策评价方法。2)提出了基于多种软件模块化视图的分析评价和预测软件质量和重构风险的方法,为软件体系结构演化提供了决策依据。3)基于遗留代码分析技术,提出了一种软件框架恢复技术,作为从遗留软件创建软件体系结构的技术支撑。4)通过对真实软件产品线的长期演化历史的分析,识别出单个软件和软件产品线体系结构演化的基本模式,分析了需求演化和软件体系结构演化的关系,并对现有的软件开发模式给出了改进建议,并被相关的核心开发团队采纳。该项目的研究以软件体系结构设计决策的基本思想为出发点,以软件产品线开发实践为落脚点,形成了以体系结构演化为中心,涵盖需求演化、代码重构、质量演化分析的完整的系统成果,并为后续结合语义模型、展开进一步软件产品线开发的可追踪性研究奠定了基础。