论文部分内容阅读
软件开发方法与技术一直是软件工作者的主要研究方向,随着以计算机软件为核心的信息时代的来临,软件开发技术受到了越来越多的关注。近年来软件领域研究的一个重要进展就是软件构件化。基于构件的软件开发方法(Component-Based Software Development, CBSD)将已有的构件集成到具体应用环境中来构建面向特定应用的软件系统,不仅能提高生产效率,降低开发成本,还能显著提高软件的可靠性。因此,构件技术已成为当前软件领域的研究热点。拥有大量可重用构件的构件库是支撑CBSD的前提条件。然而,一方面传统的构件描述方法缺乏对构件功能的形式化描述,导致用户难以从海量构件中快速、准确地检索到满足用户功能需求的构件;另一方面,为了确保构件系统的质量,构件入库前必须进行全面、充分的测试,由于构件固有的封装性、平台独立性,以及接口组装等特性,使现有的软件测试方法并不适合于海量构件的测试环境,因此,必须开发适合构件特性的自动化测试方法和工具,以对构件进行有效的测试;此外,在组装的构件数量较多的情况下,构件用户难以预料组装后的构件接口和行为特征,导致构件组装的结果往往难以符合设计需求。上述问题极大地限制了CBSD的实际应用。如何描述构件的动态行为以准确地检索到所需求的构件,如何自动化地产生构件测试用例以支持构件的充分测试,如何组装己有的构件以满足系统的应用需求并对组装的系统端口和行为进行规约成为当前此领域的研究热点和难点。形式化方法因其精确性和严密性,能较好的满足构件功能描述与接口规约的要求,CBSD与形式化方法的融合对于开发构件软件系统具有重要的理论价值和实际意义。本文将形式化方法和遗传算法应用于构件检索、构件测试,以及构件组装等构件软件开发的关键步骤,旨在有效地支持构件软件系统的开发。本文的研究成果及核心内容归纳为如下三个方面:本文首先参照3C构什模型,提出一种基于形式化方法的,可扩展的构件描述模型,包括构件的功能描述、接口描述、环境依赖描述等,并保留了构件关键字、非功能属性等描述项。在此描述模型基础上根据心理学认知理论提出了构件的多模糊级分步检索法,以方便用户对构件的检索,并保证了检索的准确性和有效性。其次,为了提高构件自动化测试效率,本文提出了一种基于遗传算法的构件内置测试用例生成方法,设计了测试点的染色体编码方法,以及基于构件刻面描述的测试数据自动产生方法;为了提高测试用例的生成质量,并加快遗传算法的收敛速度,我们改进了算法的适应度函数的计算方法,适应度函数不仅考虑了用例对路径的覆盖率,而且考虑了路径覆盖率的增加速率,从而有效地提高了路径的覆盖率,同时降低了用例产生代价。本文第三部分的工作提出了六种构件组装机制:构件顺序组装机制,构件选择组装机制、构件循环组装机制、构件并行组装机制、构件同步组装机制、构件中断组装机制。并对如何根据多个构件的语义规约推导出复合构件的语义规约等相关问题进行了研究,提出了基于CSP的构件端口和行为规约描述方法以及相关推导算法,并通过实例对方法的有效性进行了验证。