按照重要活动是否跨越相似性较小少的多个应用领域,软件重用可区别为横向和纵向重用。横向重用(horizontalreuse)是指重用不同应用领域中的软件元素,例如数据结构、分类算法、人机界面构件等。标准函数库是一种典型的、原始的横向重用机制。纵向重用是指在一类具有较多公共性的应用领域之间进行软部件重用。因为在两个截然不同的应用领域之间实施软件重用的潜力不大,所以纵向重用才广受瞩目,并成为软件重用技术的真正所在。不难理解纵向重用活动的主要关键点即是域分析;根据应用领域的特征及相似性预测软部件的可重用性。一旦根据域确认了软部件的重用价值,机可进行软部件的开发并对具有重用价值的软部件进行一般化,以便它们能够适应新的类似的应用领域。然后,软部件及其文档即可进入软部件库,成为可供后续开发项目使用的可重用资源。这些部件构成软部件构造活动。显然,它是一个软部件不断积累、不断完善的渐进过程。随着软部件的不断丰富,软部件库的规模会不断扩大,因此,库的组织结构将直接影响软部件的检索效应,特别是当检索手段并不局限于标准函数库所采用的简单名字匹配方法时。可供侯选的软部件从库中别检索出来以后,用户还必须理解其功能及行为,以判别它是否真正适用于当前项目。必要时可考虑对某个与期望的功能/行为匹配程度最佳的软部件进行稍许修改,甚至可以将修改后的软部件加进软部件以替代原有软部件。当然,这要求修改后的软部件比原有软部件具有更高的重用价值。上述软件重用方法的图示见下图。 |