您的当前位置:首页正文

设计模式对软件可复用性影响的定量研究

来源:华佗健康网
龙源期刊网 http://www.qikan.com.cn

设计模式对软件可复用性影响的定量研究

作者:刘伟

来源:《电子技术与软件工程》2016年第18期

摘 要

设计模式是软件设计经验的总结,合理使用设计模式有助于改善软件系统的质量,包括软件的可复用性和可维护性等质量属性。软件可复用性是面向对象软件系统的重要质量属性之一,本文选取类的可复用性度量指标,结合具体实例研究应用设计模式前后度量指标的变化情况,定量分析设计模式对软件可复用性的影响。 【关键词】设计模式 软件可复用性 度量指标 1 引言

设计模式(Design Pattern)是一套被反复使用、多数人知晓、经过分类编目的代码设计经验的总结,是在特定环境下为解决某一通用软件设计问题提供的一套定制的解决方案。设计模式来源于众多专家的经验和智慧,它们是从许多优秀的软件系统中总结出的成功的、能够实现可维护性复用的设计方案,合理使用设计模式可以提高软件系统的可复用性、可维护性和代码的可靠性。

软件的可复用性(Software Reusability)是指软件能够被重复使用的难易程度,通过利用已有的功能模块或程序代码,在不修改或者较少修改的情况下进行复用以达到增加新功能的目的,合理的复用既可以提高软件开发效率,还可以提高软件系统的质量,因此,软件可复用性是评价软件质量的重要质量属性之一。

大部分设计模式都有助于提高软件系统的可复用性,让软件开发人员可以很好地重用一些已有的设计方案、功能模块甚至一个完整的软件系统,从而避免经常做一些重复的设计、编写一些重复的代码。近年来,有一些研究人员在设计模式对软件质量的影响上开展相关研究工作,包括设计模式对软件可复用性的影响,但是大部分都集中在定性研究上,定量研究较少。本文将结合软件可复用性度量指标,定量研究和分析应用设计模式对软件可复用性的影响,探求各种设计模式与软件可复用性之间的关系。 2 软件可复用性度量指标

本文在定量研究设计模式对软件可复用性影响的过程中,采用了Bansiya和Davis等所提出的具有层次结构的面向对象设计质量评估方法QMOOD(Quality Model for Object-Oriented Design),首先选取软件可复用性度量指标,然后分别计算应用某一设计模式前后度量指标的值,最后通过对这些值的改变进行分析来定量研究该设计模式对软件可复用性的影响。

龙源期刊网 http://www.qikan.com.cn

本文采用Judith Barnard给出的类可复用性计算方法,在该方法中,将一个类的可复用性记为Re usabilityc,其计算公式如下: (1)

其中,Rc为接口可复用性,计算公式如下: Rc=(MDc+MNc)/(CBO+DIT+1) (2) Rm(i)为类中方法的可复用性,计算公式如下: (3)

在公式3中,Rp(k)为方法参数的可复用性,计算公式如下: Rp(k)=MNp(k)/(PCp(k)+1) (4) Ra(j)为类中属性的可复用性,计算公式如下: Ra(j)=MNa(j)/(ACa(j)+1) (5)

在公式(1)至公式(5)的计算中用到了一系列面向对象度量因子,这些因子的描述如表1所示。

通过公式1不难得知,如果一个类的方法个数为零且属性个数也为零,那么该类的可复用性为零。类的可复用性计算值越大说明类的可复用性越好。在这些度量因子中包含一些主观度量指标,例如有意义的类描述信息(注释)、有意义的类名等,一般取值在1-5之间,由度量人员主观评价给出,5为最有意义的名称,1为无意义的命名,在本文中,这些度量指标统一取值为5,此外方法的功能点个数NFm(i)也是主观度量值,本文中取值为1。 3 实验及结果分析 3.1 实验数据

根据设计模式的使用频率和重要性,本文选取10种常用的软件设计模式作为研究对象,分别为工厂方法模式(Factory Method Pattern, FMP)、抽象工厂模式(Abstract Factory Pattern, AFP)、适配器模式(Adapter Pattern, AP)、代理模式(Proxy Pattern, PP)、外观模式(Facade Pattern, FP)、桥接模式(Bridge Pattern, BP)、观察者模式(Observer Pattern, OP)、策略模式(Strategy Pattern, SrP)、状态模式(State Pattern, SaP)和模板方法模式(Template Method Pattern, TMP)。每种设计模式提供5个程序规模相差不大的实例,对于每个实例,提供两个版本的程序代码,分别为使用设计模式的代码版本,简记为DP

龙源期刊网 http://www.qikan.com.cn

(Design Pattern),以及不使用设计模式的代码版本,简记为NDP(Non-Design Pattern),这些实例主要来自文献[2]。通过对这些设计模式使用前后类可复用性指标的平均值进行计算和比较,定量分析设计模式对软件可复用性的影响。 3.2 实验结果及分析

对每一种设计模式以程序实例为单位,计算前文所述的类可复用性度量指标的平均值,然后再取5个实例的平均值,得到设计模式使用前后度量因子的平均值,计算结果如表2所示。 在表2中,平均类可复用性度量指标计算值越大说明类的可复用性越好。绘制设计模式使用前后可复用性度量指标的对比图如图1所示,从图1中可以看出,除外观模式(FP)和状态模式(SaP)两种设计模式外,其余8种设计模式的使用均使得平均类的可复用性度量指标升高,但由于实验项目代码规模不大,部分设计模式的使用效果不显著。由此可见,大部分设计模式的使用有助于提高软件的可复用性。 4 结束语

设计模式作为针对特定软件设计问题提出的成功且有效的解决方案在软件开发中得以广泛应用。本文结合类的可复用性度量指标定量研究设计模式与软件可复用性之间的关系。定量计算及分析结果表明,大部分设计模式的使用有助于提高面向对象软件的可复用性。在后续工作中将引入更多测试实例和其他可复用性定量评价指标,研究更多设计模式对软件可复用性的影响。 参考文献

[1]Gamma E,Helm R,Johnson R,et al. Design patterns:elements of reusable object-oriented software[M]. Addison-Wesley Longman Publishing Co.Inc,1995.

[2]刘伟.设计模式的艺术——软件开发人员内功修炼之道[M].北京:清华大学出版社,2013.

[3]Frakes W B.Software Reuse:Advances in Software Reusability [M].Springer Berlin Heidelberg,2000.

[4]Apostolos Ampatzoglou,Georgia Frantzeskou,Ioannis Stamelos.A methodology to assess the impact of design patterns on software quality [J].Information and Software Technology,2012,54(04):331-346.

[5]Bansiya J,Davis C G.A hierarchical model for object-oriented design quality assessment [J].IEEE Transactions on Software Engineering,2002,28(28):4-17.

龙源期刊网 http://www.qikan.com.cn

[6]Judith Barnard.A new reusability metric for object-oriented software [J].Software Quality Control,1998, 7(01):35-50.

龙源期刊网 http://www.qikan.com.cn

龙源期刊网 http://www.qikan.com.cn

因篇幅问题不能全部显示,请点此查看更多更全内容