软件重用应考虑可重用构件的粒度大小对复用效率的影响
软件重用是最佳软件工程实践之一,也是CMMI非常重要的实践——实施CMMI三级的组织应当在需求、设计、测试等各项活动中实施软件重用。
虽然CMMI给出了软件重用的一些原则和方法(如 领域分析(自上而下)与逆向提取(自下而上)相结合的方法 ),指出了软件重用的途径,但是仍然有些细节需要注意。比如:构件库中软件可重用构件的粒度大小对复用效率的影响。
我们都知道,开发一个可重用构件,是基于共性需求的分析,但是究竟是基于一个较小的功能点来开发构件,还是基于一个较大的包含多个功能点的功能来开发构件,是值得研究的。因为它们对复用效率有着不同的影响。
基于一个较大的共性功能需求开发出来的可重用构件粒度较大,所提供的功能也较多,软件可能只需要很少的几个构件就可以组装起来,构件间的接口较少,集成也会很快,复用效率很高;但是这样的构件很难完全复用,多半都需要根据需求进行适应性修改,构件的复用度很低,也不好维护。
而如果是基于较小的功能需求甚至单一的功能需求(功能点)来开发可重用构件,只要软件具备这个共性需求,就可以无需修改完全复用,这样的构件便于搜集和查找,复用度很高;但是由于这种构件粒度小,提供的功能单一,软件需要很多个这样的构件来组成,构件间的接口较多,集成测试也多,复用效率会很低。
所以,开发可重用构件时,要充分考虑构件的粒度,根据组织共性需求的实际情况开发出粒度合适的构件。
一般来说, 构件粒度的大小与业务需求中共性需求的大小和稳定性相关 。
如果共性需求是个较大的包含多个功能点的功能模块,那么就可以开发出粒度较大的可重用构件;如果共性需求是较小的功能点,那么就只能开发出粒度很小的可重用构件。
而如果共性需求是比较稳定的需求,那么应该尽可能地开发力度较大的可重用构件;如果共性需求不稳定,那么只能开发出粒度较小的可重用构件,以免降低复用度。
所以,在推荐软件重用的过程中,组织也应尽可能地保证业务架构和需求的稳定性。
总之, 软件重用应考虑开发可重用构件的粒度大小,在复用效率和复用度中取得平衡 ,更好地实施软件重用。