论文部分内容阅读
日益革新的技术和不断变更的业务需求使越来越多的软件系统成为遗留系统。由于替换和修改成本过高,遗留系统在软件系统中占据很大比例。因此,解决遗留系统中存在的问题具有重要的现实意义。软件再工程是对软件系统进行分析、重构和再开发的过程,由反向工程、重构和正向工程三个阶段组成,是演化遗留系统的主要手段。本文对遗留系统再工程的若干问题展开研究,主要工作包括以下几方面:围绕各研究问题,提出遗留系统再工程的解决方案,由过程模型和支持过程模型的各组成部分构成。该解决方案具有一定的扩展性,可用于处理遗留系统的其他问题。在反向工程阶段,针对软件聚类缺乏考虑实体和特征的针对性和灵活性的问题,提出基于凝聚式信息瓶颈的加权层次聚类(ABWHC)方法。有针对性的选取实体和特征,提出特征的加权策略,采用信息丢失度作为相似度测度,为实体和簇构造标签元组,并选取和提出软件聚类的客观和主观评估准则。实验结果表明与目前效果较好的方法相比,ABWHC具有更高的内聚度,更少的主观判定数,能够灵活的调整软件聚类的关注点,并辅助获得准确度更高的系统划分。在重构阶段,探讨遗留系统在访问控制方面存在的问题。在角色工程方面,从遗留系统的需求出发,引入FermaT维护环境的广谱语言和转换理论,提出访问控制策略的重组方法。方法定义重组的相关概念和基于WSL的访问控制策略语言,设计访问控制策略的转换规则,分析转换规则的管理成本,提出转换方法,并给出管理规则。案例分析表明方法是可行的。相比主要的角色挖掘方法,该方法的角色挖掘过程保持访问控制策略的外部行为不变,构造的角色易于演化,角色层次完整且不冗余,产生的管理开销必要且最低。在访问控制策略的集成方面,提出基于GUI的访问控制策略及其集成方法。案例分析表明方法是可行的,比其他方法更适用于GUI软件、且易于控制和演化。在正向工程阶段,针对GUI测试的高重用成本和测试用例爆炸问题,以GUI测试的知识密集性和敏感性为基础,提出基于本体的GUI测试方法。方法使用本体对GUI测试的客观事实建模。以GUI测试人员的主观经验为依据,定义GUI组件之间的基本关系,提出测试序列的生成规则和测试用例的生成方法。案例分析表明将知识工程引入GUI测试是可行的。相比主要的GUI测试方法,建立的通用GUI本体为GUI测试提供了形式化的GUI模型,能够提高GUI测试的重用性和可维护性。将测试人员的经验保留为测试序列的生成规则,能够简化测试用例,提升GUI测试的智能性。