软件定制开发
一、软件定制开发的需求阶段
这个过程是整个软件定制开发的开始阶段,同时也是非常重要的阶段,需要最终用户和软件厂商的紧密配合,包括需求的收集,需求的分析整理,需求的评审,需求的变更管理(一般在需求确定之后的设计、开发和维护阶段发生)等过程。很多用户在选择了软件开发厂商后,就只等软件开发厂商交付软件系统,实际上这是非常错误的,没有经过充分的需求沟通而交付的系统肯定是一个不能满足用户需要的系统,用户的满意度也一定非常低。
需求的成功是软件系统成功开发的基本保障。软件需求的处理必须是以软件厂商为主导,最终用户配合的过程。
二、系统的设计
根据第一阶段的收集整理的需求,进行系统的架构和设计,类似于建筑行业施工前的相关设计。软件设计是系统开发的基础,是整个系统的核心和灵魂,设计工作一般主要由软件开发厂商的设计人员完成,界面的设计也在这个阶段。
如果是基于软件产品基础上的定制开发,那么需要考虑在现有产品的功能、设计和技术架构下进行设计,结合现有的业务需求,这就要求现有的软件产品需要具有较好的架构和设计,拥有较好的扩展性和二次开发能力,同时需要考虑到个性化的开发不能够破坏现有产品的设计,否则后续产品的升级需要重新整合和开发,成本和工作量非常大(这点在很多的软件产品中普遍存在,与软件的架构和和设计水平有关)。
三、系统开发
软件开发厂商根据系统的需求和设计,组织开发人员进行系统的代码编写,最终用户一般很难将需求一次性完成的提出,开发过程中涉及到需求的问题需要对设计进行细节的调整。开发人员对需求的理解、编码的规范和质量等,对软件系统的质量和稳定性、安全性等方面影响非常大。
四、系统测试
依据第一阶段的需求对系统进行功能测试、性能测试(对使用用户数非常多可能需要进行性能测试)、安全性检测,功能测试一般由软件开发厂商和用户同时进行。
系统测试根据项目周期和功能的多少,可以迭代的进行,如果开发的内容多可以分步提交开发成果进行测试,实现开发和测试迭代进行。
对于测试中发现的问题,一般提交开发人员进行修改,再进行回归测试(针对修改过的问题进行测试和验证)。
系统的测试是软件定制开发的一个重要环节,需要软件开发厂商和最终用户的紧密配合,需要合理的规划好时间(特别是工期非常紧的情况下),测试是高质量的软件系统的根本保障。
五、系统部署和正式运行
系统开发完成后部署在最终用户的正式运行环境,交付给最终用户使用,同时需要对相关的人员进行培训。这个环节中软件的推广和使用是重点,直接关系到软件的应用效果。
六、系统的维护和服务
软件在正式运行过程中会遇到BUG(系统错误)、使用问题、功能的完善和修改等,软件厂商需提供相应的服务确保最终用户系统正常稳定的运行。
从以上过程中可以看出,需求阶段、测试阶段是最终用户和软件厂商配合程度最高的阶段。软件定制开发的周期和复杂程度是由用户业务需求来决定的,对于业务需求比较简单的某些环节可以省略、合并。一般情况下,软件定制开发和软件产品之间联系是非常紧密的,当软件产品不能够满足客户要求时一般只能通过定制开发进行完善,而软件产品也是在众多的应用中通过定制开发进行积累和完善的。
软件定制开发相对于单纯的软件产品实施,选择软件供应商更加重要,供应商的软件定制开发经验、技术水平、技术支持和服务等直接决定软件定制开发的成败。