定制类软件复用主要涉及以下几种策略和方法:
代码基线管控策略
建立一条主干代码,持续维护下去。
面对客户的新需求,拉一条临时分支来满足需求,然后将稳定后的临时分支代码成果回归到主干。
这样可以确保所有研发成果在一个代码分支上进行追溯,后期如有类似需求,可以快速满足,节约人力成本。
共享和重用基础模块(CBB)
共用基础模块是不同产品系统间共用的零部件、模块、技术等成果。
通过模块化拆分,以组件、服务的形式打造共用基础模块,方便插拔到各个地方进行重新组合。
针对客户定制化的需求,通过“胶水”代码去调用组件,装配工作留给交付现场。
代码段复用
最基本的软件复用是代码段复用,主要应用在一些常用的软件功能里。
配合代码生成器生成代码段,然后放到软件中使用,减少测试等问题。
模块复用
模块复用主要体现在一个DLL的使用,直接将该DLL的源码或者打包生成好的软件模块放到软件中进行使用。
模块复用比代码段复用更进了一步,在UML组件中成为独立的一个模块,以便其他模块能够进行调用。
架构复用
架构复用的作用是在某个软件产品上,比如电商平台或微服务架构等,直接将该架构进行复用。
需要该软件的功能相似,这样另一个软件的架构和底层模块才能够进行复用。
开发平台复用
开发平台复用主要体现在一个软件产品上,比如jQuery EasyUI,直接就是一个软件库,通过修改即可复用。
这种方式适合CMS等系统,修改产品名称或进行二次定制开发,不需要关注底层功能开发。
白盒复用与黑盒复用
黑盒复用指对已有产品或构件不需作任何修改,直接进行复用,基于二进制代码的复用。
白盒复用指根据用户需求对已有产品进行适应性修改后才可使用,一般为源代码一级的复用。
按抽象程度划分复用级别
代码的剪贴复制:利用编辑器减少抄写代码的人力成本。
数据结构的复用:直接复用现有系统中的数据结构。
分析的复用:复用现有系统的分析构件,适用于问题域的抽象解法。
库级复用和系统层面复用
库级复用:一组提供可重用功能的类和方法(API)。
系统层面复用:应用框架,包含接口、抽象类和具体类,使用时需要补充所需的设计元素。
通过以上策略和方法,可以有效地实现定制类软件的复用,提高开发效率,减少重复开发,节约资源。建议在实际项目中根据具体需求和团队情况选择合适的复用策略,并注意责权利的划分,以确保复用模块的成熟度和稳定性。