软件重用,是指在两次或多次不同的软件开发过程中重复使用相同或相似软件元素的过程。软件元素包括程序代码、测试用例、设计文档、设计过程、需求分析文档甚至领域知识。通常,可重用的元素也称作软构件,可重用的软构件越大,重用的粒度越大。
重用层次
(1)知识重用(例如,软件工程知识的重用)。
(2)方法和标准的重用(例如,面向对象方法或国家制定的软件开发规范的重用)。
(3)软件成分的重用。
使用软件重用技术可以减少软件开发活动中大量的重复性工作,提高软件生产率,降低开发成本,缩短开发周期。同时,由于软构件大都经过严格的质量认证,并在实际运行环境中得到校验,因此,重用软构件有助于改善软件质量。此外,大量使用软构件,软件的灵活性和标准化程度也可望得到提高。
按照重用活动是否跨越相似性较少的多个应用领域,软件重用可以区别为横向重用(水平式重用)和纵向重用(垂直式重用)。
横向重用是指重用不同应用领域中的软件元素,例如数据结构、分类算法和人机界面构建等。标准函数库是一种典型的、原始的横向重用机制。
纵向重用是指在一类具有较多公共性的应用领域之间进行软部件重用。由于存在许多共性或相似性,因此重用面较广,且有助于获得系统的通用模型。主要关键点是域分析:根据应用领域的特征及相似性预测软部件的可重用性。
重用层次
(1)知识重用(例如,软件工程知识的重用)。
(2)方法和标准的重用(例如,面向对象方法或国家制定的软件开发规范的重用)。
(3)软件成分的重用。
使用软件重用技术可以减少软件开发活动中大量的重复性工作,提高软件生产率,降低开发成本,缩短开发周期。同时,由于软构件大都经过严格的质量认证,并在实际运行环境中得到校验,因此,重用软构件有助于改善软件质量。此外,大量使用软构件,软件的灵活性和标准化程度也可望得到提高。
按照重用活动是否跨越相似性较少的多个应用领域,软件重用可以区别为横向重用(水平式重用)和纵向重用(垂直式重用)。
横向重用是指重用不同应用领域中的软件元素,例如数据结构、分类算法和人机界面构建等。标准函数库是一种典型的、原始的横向重用机制。
纵向重用是指在一类具有较多公共性的应用领域之间进行软部件重用。由于存在许多共性或相似性,因此重用面较广,且有助于获得系统的通用模型。主要关键点是域分析:根据应用领域的特征及相似性预测软部件的可重用性。