论文部分内容阅读
软件度量在软件工程中占着极其重要的地位。近年来,随着软件产品在各个领域得到了越来越广泛的应用,越来越多的人开始重视软件度量的研究。软件复杂性度量是软件度量的一个重要方面,它在软件开发中发挥着非常重要的作用,它可以减少整个开发周期的费用。软件复杂性是软件质量因素中的一个重要因素,它与软件产品的可靠性、可理解性和可维护性等质量因素密切相关。 当前,围绕着软件复杂性的研究,已经提出了许多软件复杂性度量方法和工具,但缺乏对基于某种特定的软件开发平台或编程语言开发的软件复杂性度量的方法。近年来,采用Struts框架开发的web应用软件逐渐增多,此类软件的大部分的业务逻辑是通过配置文件以及模块与页面之间的跳转来实现的,仅使用传统的度量指标不能准确的表征整个软件的复杂程度。因此,本文以基于Struts框架的Web应用软件为研究对象,对此类软件的复杂性度量方法进行了研究。 在分析和研究现有的多种软件复杂性度量方法的基础上,本文通过分析基于Struts框架的Web应用软件的特点,提出了适合于web-struts软件的三个方面的复杂性度量指标:3个通用度量指标、6个面向对象度量指标和7个web-struts度量指标,共同组成了一个由16个度量指标构成的web-struts软件复杂性度量指标体系。 通过对投影寻踪模型的分析和研究,本文把投影寻踪模型应用于web-struts软件复杂性度量模型中,利用投影寻踪模型可以把多个软件复杂性度量指标综合投影为一维投影值来表征各度量模块的复杂性。在求解web-struts软件复杂性度量模型中的优化问题上,本文采用了一种新型的智能优化算法—人工鱼群算法来求解最佳投影方向,通过该算法能够有效地找到最佳投影方向,从而获得最佳投影值,使复杂性度量结果更为准确。 最后选取了3个基于Struts框架的面向对象的Web软件作为实验对象,采用MATLAB进行编程,求出各样本的最佳投影方向和综合投影值,根据学习样本的投影值来获取各评价等级的对应区间,然后把测试样本的综合投影值与获得的评价等级区间进行比较,从而获得测试样本的综合评价结果。实验结果表明利用该方法度量web-struts软件的复杂性的结果与期望的结果是基本一致的,从实践上验证了该方法具有较强的可行性,为软件复杂性度量提供了一种新的思路。