论文部分内容阅读
软件系统的运行时可变性是指在一定上下文中,该软件系统在运行时作出有效改变(扩展、配置、调整)的能力。当前许多软件所面临的需求和环境的持续变化,要求其运行时可变性具备动态演化特征。如何实现运行时可变性的动态演化,是软件工程领域需要迫切解决的一项挑战性问题。本文围绕该问题,就运行时可变性模型、演化机制、支持演化的软件体系结构、不一致检测等方面开展研究,旨在掌握该类演化的特点和规律,并为元变软件(具有可动态演化的运行时可变性的软件系统的简称)的开发、维护和演化提供关键技术和支撑环境。论文所取得的主要研究成果概述如下。1.提出了基于类型和基数的运行时可变性模型及演化机制,以揭示运行时可变性及其动态演化的特点和规律,为研究工作奠定了理论基础。针对可变性要素的类型、以及可变性要素之间关系的基数特性,论文提出了元变软件的运行时可变性模型,以反映运行时可变性的特点。在此基础上又提出了运行时可变性的演化机制,以展示此类演化的规律。以上工作为运行时可变性动态演化的研究提供了理论基础。2.为支持运行时可变性的动态演化,也为支持元变软件的设计,提出了元变软件的体系结构,并在此基础上提出了演化机制的实现算法。针对可变性要素在实现层面上的特点,根据可变性要素与软件体系结构之间的关系,论文提出了支持运行时可变性动态演化,同时也支持元变软件设计和实现的体系结构。该体系结构包含表示层、基础层和同步层,分别支持对运行时可变性的管理和维护、实现元变软件的业务逻辑和运行时可变性、在演化过程中同步运行时可变性的模型表示和实现。在上述体系结构的基础上,论文设计了运行时可变性演化机制的实现算法。该算法通过在运行时同步表示层和基础层,达到动态演化元变软件的运行时可变性的目的。3.针对动态演化可能在运行时可变性模型中带来的不一致问题,提出了模型应当满足的一致性约束,并设计和实现了不一致检测算法。运行时可变性的动态演化可能会在模型表示、模型协调性、模型配置和可变性要素的可访问性四个方面为运行时可变性模型引入不一致。这些不一致反映了软件的缺陷,并可能导致运行异常。本文针对这四个方面提出了相应的一致性约束,包括合式约束、协调性约束、自包含约束和可访问性约束,用以定义一致的运行时可变性模型需要满足的必要条件。基于这些一致性约束,本文提出了不一致检测算法,用以判断运行时可变性模型在这四个方面是否遵从一致性约束,进而发现和定位不一致。4.设计和实现了支持元变软件开发、运行和演化的支撑环境DERVF,物化了演化实现的关键技术。本文基于.Net Framework设计和实现了支持元变软件开发、运行和运行时可变性动态演化的支撑环境DERVF。该支撑环境提供了运行时可变性类库、元变软件开发工具集、元变软件运行例程库和运行时可变性集成演化环境,物化了运行时可变性的模型表示、演化机制、元变软件的体系结构、不一致检测算法等关键技术。论文还基于DERVF,针对一个具体的社会技术系统,开展了应用案例开发,以展示本文所提出的关键技术的可行性和有效性。