软件重用是从现有软件系统创建软件系统的过程,而不是从头开始构建软件系统的过程。”
重用成熟度模型:
它基于软件开发组织内的经验以及与其他开发组织的经验和观察。
LEVEL-1:基于单个项目源的重用–
在最初的成熟度级别上,组织将所有源代码放置在一个项目中。之后,单个源代码池将容纳多个应用程序,如下图所示:
项目A是两个应用程序A和B的所在地。由于只有一个项目,因此无需将源文件或已编译文件从一个项目复制到另一个项目。但是,这种做法的扩展范围是有限的。当应用程序数量或开发人员数量增加时,维护单个源代码将变得困难。
第2级:基于多项目源的重用–
在此阶段,源代码分为多个项目,并在项目之间实践基于源的重用。在这种情况下,基于源的重用会将一个项目中开发的源复制到另一个项目中。这种重用的主要目标是实用程序,它可以在一个项目中开发,也可以在另一个项目中使用。如下图所示:
项目A是应用程序A的宿主,项目B是应用程序B的宿主。这两个项目通用的代码被复制到两个项目中。
问题在于,复制后,重用的源代码必须链接回原始文件。这将导致各种维护问题,因为必须将错误修复程序应用于每个重复使用复制代码的项目。另外,两个宿主项目会不断发展,重用代码也会随之发展,这使得维护更加困难。
第3级:临时二进制重用–
这是第2级之后的下一步。组织将升级到第2级,并将意识到第2级的缺点。在这种方法下,项目边界将重新调整,并且不再存在镜像边界。此级别的项目可以对应于应用程序。从以前的一个项目复制到另一个项目的实用程序源代码现在放在其自己的项目中,并具有独立于应用程序项目的生命周期。
应用程序项目包括实用程序项目的二进制工件,并在项目之间建立依赖关系。实用程序的维护项目大大简化了,因为与其维护多个不同的实用程序副本,还不需要维护单个版本。此外,应用程序还需要其他功能,因此使用实用程序的所有应用程序都可以使用应用程序功能,如下图所示:
但是在此,没有释放过程或依赖性管理过程。添加新功能使得不可能知道应用程序中使用的实用程序的确切版本。同样,通过这种方式,当发现错误时,很难知道哪个版本的基于代码的=包含了错误。实施修补程序后,很难知道最新版本是否与需要实用程序库的所有应用程序项目兼容。
第4级:受控的二进制复用和等效复用/释放原则–
它基于临时二进制重用。项目边界与应用程序项目和组件项目相同。在此级别上,使用版本号控制和跟踪项目的每个发行版。
在此级别,发现错误后,便可以识别出带有错误的组件的确切版本。