软件重用应考虑可重用构件的粒度大小对复用效率的影响

软件重用是最佳软件工程实践,也是GJB5000B非常重要的实践——实施GJB5000B三级的组织应当在需求、设计、测试等各项活动中实施软件重用。

虽然GJB5000B给出了软件重用的一些原则和方法(如领域分析(自上而下)与逆向提取(自下而上)相结合的方法),指出了软件重用的途径,但是仍然有些细节需要注意。比如:构件库中软件可重用构件的粒度大小对复用效率的影响。

我们都知道,开发一个可重用构件,是基于共性需求的分析,但是究竟是基于一个较小的功能点来开发构件,还是基于一个较大的包含多个功能点的功能来开发构件,是值得研究的。因为它们对复用效率有着不同的影响。

基于一个较大的共性功能需求开发出来的可重用构件粒度较大,所提供的功能也较多,软件可能只需要很少的几个构件就可以组装起来,构件间的接口较少,集成也会很快,复用效率很高;但是这样的构件很难完全复用,多半都需要根据需求进行适应性修改,构件的复用度很低,也不好维护。

而如果是基于较小的功能需求甚至单一的功能需求(功能点)来开发可重用构件,只要软件具备这个共性需求,就可以无需修改完全复用,这样的构件便于搜集和查找,复用度很高;但是由于这种构件粒度小,提供的功能单一,软件需要很多个这样的构件来组成,构件间的接口较多,集成测试也多,复用效率会很低。

所以,开发可重用构件时,要充分考虑构件的粒度,根据组织共性需求的实际情况开发出粒度合适的构件。

一般来说,构件粒度的大小与业务需求中共性需求的大小和稳定性相关

如果共性需求是个较大的包含多个功能点的功能模块,那么就可以开发出粒度较大的可重用构件;如果共性需求是较小的功能点,那么就只能开发出粒度很小的可重用构件。

而如果共性需求是比较稳定的需求,那么应该尽可能地开发粒度较大的可重用构件;如果共性需求不稳定,那么只能开发出粒度较小的可重用构件,以免降低复用度。

所以,在推荐软件重用的过程中,组织也应尽可能地保证业务架构和需求的稳定性。

总之,软件重用应考虑开发可重用构件的粒度大小,在复用效率和复用度中取得平衡,更好地实施软件重用。

这正是:

软件重用要推行,构件粒度应平衡

太大效率会很高,太小完全可重用

参考书目:软件构件技术,作者:夏榆滨,出版社:清华大学出版社


作者简介:王小双,长期从事GJB5000推广、实施、评价、改进的工作,创建《软件工程之思》微信公众号,一直在《软件工程之思》分享GJB5000、CMMI、软件工程的知识和感悟。现致力于GJB5000咨询以及软件过程改进、软件工程能力提升的研究工作。

发表评论

登录后才能评论
网站客服
网站客服
申请收录 侵权处理
分享本页
返回顶部