按照重要活动是否跨越相似性较小少的多个应用领域,软件重用可区别为横向和纵向重用。横向重用(horizontalreuse)是指重用不同应用领域中的软件元素,例如数据结构、分类算法、人机界面构件等。标准函数库是一种典型的、原始的横向重用机制。纵向重用是指在一类具有较多公共性的应用领域之间进行软部件重用。因为在两个截然不同的应用领域之间实施软件重用的潜力不大,所以纵向重用才广受瞩目,并成为软件重用技术的真正所在。不难理解纵向重用活动的主要关键点即是域分析;根据应用领域的特征及相似性预测软部件的可重用性。一旦根据域确认了软部件的重用价值,机可进行软部件的开发并对具有重用价值的软部件进行一般化,以便它们能够适应新的类似的应用领域。然后,软部件及其文档即可进入软部件库,成为可供后续开发项目使用的可重用资源。这些部件构成软部件构造活动。显然,它是一个软部件不断积累、不断完善的渐进过程。随着软部件的不断丰富,软部件库的规模会不断扩大,因此,库的组织结构将直接影响软部件的检索效应,特别是当检索手段并不局限于标准函数库所采用的简单名字匹配方法时。可供侯选的软部件从库中别检索出来以后,用户还必须理解其功能及行为,以判别它是否真正适用于当前项目。必要时可考虑对某个与期望的功能/行为匹配程度最佳的软部件进行稍许修改,甚至可以将修改后的软部件加进软部件以替代原有软部件。当然,这要求修改后的软部件比原有软部件具有更高的重用价值。上述软件重用方法的
显然,软件重用过程可借助计算机的帮助。支持软件重用的CASE工具的主要任务是,用某种组织结构实现软部件库的存储,提供友好的人机界面,帮助用户浏览、检索和修改软部件库,并且读用户赶兴趣的问题进行解释。事实上,现在几乎所有的软件重用活动都是在CASE工具的帮助下进行的。
使用重用技术可以减少软件开发活动中大量的重复性工作,这样就能够提高软件的生产率,减低开发成本,缩短开发周期。同时,由于软部件大都经过严格的质量认证,并在实际运行环境中得到检验,因此,重用软部件有助于改善软件质量。此外,大量使用软部件,软件的灵活性和标准化程度也渴望得到提高。