在软件开发中很多的会涉及到“软件二次开发”或“软件定制开发”,软件通用产品的升级不能代替软件的二次开发和软件定制开发,这类开发是解决用户的个性化需求,存在于用户具体的项目中而非厂商通用的软件产品中,从广义上讲,软件定制开发包含软件二次开发,那么这两者有什么区别和联系呢?
软件二次开发和软件定制开发在企业信息化中普遍存在,如:
oa的二次开发和集成开发、crm客户管理的二次开发,针对用户具体行业需求的定制开发等。
什么是软件二次开发?
软件二次开发是在现有产品或系统的基础上进行的开发,一般是现有产品或系统功能不能满足用户的相关需求,需要进行个性化的补充开发或功能扩展,故而称之为“二次开发”。
什么是软件定制开发?
软件定制开发顾名思义,就是软件开发厂商根据用户的个性化需求进行的定制开发,软件定制开发可能是整个系统全新的开发,也有的是部分模块的定制开发。
二次开发和定制开发的相同点
1、都是根据最终用户的个性化需求进行的开发;
2、一般由软件开发厂商提供服务;
3、需要厂商提供后续的技术支持服务;
4、遵循软件开发的需求分析、设计、编码、测试等流程;
二次开发和定制开发的区别
1、软件定制开发的工作量、时间、成本代价和风险高于软件二次开发;
2、软件二次开发需要充分理解现有系统的功能、技术架构和设计,一般由原有软件系统的开发厂商来继续开发或处理。开发的时间和成本与现有软件系统的成熟度、扩展性及最终用户的需求息息相关。
3、软件二次开发必须遵循原有软件系统的设计和技术框架,大量的用于现有功能的扩展、接口集成开发等。
4、软件定制开发可以使用开发框架或定制开发平台进行开发,需要充分理解业务需求,需要有软件项目定制开发经验的团队。
二次开发和定制开发的相关建议
1、软件二次开发和软件定制开发是满足用户需求的常用措施,是解决用户个性化需求和深化应用的必要手段,既不能遏制合理的个性化需求,也不能没有控制的无限制放大开发需求,增加项目的风险和成本;
2、
尽量避免大量的定制开发,优先选择二次开发,大量定制开发成本高、风险大、周期长,也可以考虑通过分阶段开发降低定制开发的风险,如:先完成必要的功能开发,再依据使用的效果和需求规划后续开发;
3、二次开发和定制开发的需求管理、控制是关键;定制开发的项目用户需要具备一定的信息化经验,和厂商的配合要协调和顺畅,厂商团队需要有类似的经验和业务积累;
4、基于修改核心源代码的二次开发,是一种落后的软件开发模式,毕竟绝大多数具体实施的技术人员水平不高,可能错误的修改了软件系统的核心源码,会导致原有功能的错误和系统不稳定。此外,直接修改产品源码会导致被修改的部分后续不能进行产品升级,需要投入更多时间和成本重新进行整合。
5、基于软件平台平台的二次开发和定制开发有着较大的优势,大大降低开发的技术难度、降低开发的风险和成本、缩短开发周期;
软件平台在软件开发上的优势
基础软件平台的技术规范化、接口通用化,同时拥有良好的开放性、拓展性、稳定性、安全性和兼容性,软件开发平台更加有利于项目的实施、开发、管理、维护和软件升级,能够快速满足不同用户的个性化需求。由于统一了技术规范,降低了开发和维护的技术难度,在提升了软件服务效率和质量的同时,降低了软件服务的时间和成本,因此在实际项目中软件二次开发或软件定制开发被普遍采用。