一、軟件定制開發(fā)的需求階段
這個過程是整個軟件定制開發(fā)的開始階段,同時也是非常重要的階段,需要用戶和軟件廠商的緊密配合,包括需求的收集,需求的分析整理,需求的評審,需求的變更管理(一般在需求確定之后的設計、開發(fā)和維護階段發(fā)生)等過程。很多用戶在選擇了軟件開發(fā)廠商后,就只等軟件開發(fā)廠商交付軟件系統(tǒng),實際上這是非常錯誤的,沒有經過充分的需求溝通而交付的系統(tǒng)肯定是一個不能滿足用戶需要的系統(tǒng),用戶的滿意度也一定非常低。
需求的成功是軟件系統(tǒng)成功開發(fā)的基本保障。軟件需求的處理必須是以軟件廠商為主導,用戶配合的過程。
二、系統(tǒng)的設計
根據階段的收集整理的需求,進行系統(tǒng)的架構和設計,類似于建筑行業(yè)施工前的相關設計。軟件設計是系統(tǒng)開發(fā)的基礎,是整個系統(tǒng)的核心和靈魂,設計工作一般主要由軟件開發(fā)廠商的設計人員完成,界面的設計也在這個階段。
如果是基于軟件產品基礎上的定制開發(fā),那么需要考慮在現有產品的功能、設計和技術架構下進行設計,結合現有的業(yè)務需求,這就要求現有的軟件產品需要具有較好的架構和設計,擁有較好的擴展性和二次開發(fā)能力,同時需要考慮到個性化的開發(fā)不能夠破壞現有產品的設計,否則后續(xù)產品的升級需要重新整合和開發(fā),成本和工作量非常大(這點在很多的軟件產品中普遍存在,與軟件的架構和和設計水平有關)。
三、系統(tǒng)開發(fā)
軟件開發(fā)廠商根據系統(tǒng)的需求和設計,組織開發(fā)人員進行系統(tǒng)的代碼編寫,用戶一般很難將需求一次性完成的提出,開發(fā)過程中涉及到需求的問題需要對設計進行細節(jié)的調整。開發(fā)人員對需求的理解、編碼的規(guī)范和質量等,對軟件系統(tǒng)的質量和穩(wěn)定性、性等方面影響非常大。
四、系統(tǒng)測試
依據階段的需求對系統(tǒng)進行功能測試、性能測試(對使用用戶數非常多可能需要進行性能測試)、性檢測,功能測試一般由軟件開發(fā)廠商和用戶同時進行。
系統(tǒng)測試根據項目周期和功能的多少,可以迭代的進行,如果開發(fā)的內容多可以分步提交開發(fā)成果進行測試,實現開發(fā)和測試迭代進行。
對于測試中發(fā)現的問題,一般提交開發(fā)人員進行修改,再進行回歸測試(針對修改過的問題進行測試和驗證)。
系統(tǒng)的測試是軟件定制開發(fā)的一個重要環(huán)節(jié),需要軟件開發(fā)廠商和用戶的緊密配合,需要合理的規(guī)劃好時間(特別是工期非常緊的情況下),測試是高質量的軟件系統(tǒng)的根本保障。
五、系統(tǒng)部署和正式運行
系統(tǒng)開發(fā)完成后部署在用戶的正式運行環(huán)境,交付給用戶使用,同時需要對相關的人員進行培訓。這個環(huán)節(jié)中軟件的推廣和使用是重點,直接關系到軟件的應用效果。
六、系統(tǒng)的維護和服務
軟件在正式運行過程中會遇到bug(系統(tǒng)錯誤)、使用問題、功能的完善和修改等,軟件廠商需提供相應的服務確保*終用戶系統(tǒng)正常穩(wěn)定的運行。
從以上過程中可以看出,需求階段、測試階段是用戶和軟件廠商配合程度。軟件定制開發(fā)的周期和復雜程度是由用戶業(yè)務需求來決定的,對于業(yè)務需求比較簡單的某些環(huán)節(jié)可以省略、合并。一般情況下,軟件定制開發(fā)和軟件產品之間聯(lián)系是非常緊密的,當軟件產品不能夠滿足客戶要求時一般只能通過定制開發(fā)進行完善,而軟件產品也是在眾多的應用中通過定制開發(fā)進行積累和完善的。
軟件定制開發(fā)相對于單純的軟件產品實施,選擇軟件供應商更加重要,供應商的軟件定制開發(fā)經驗、技術水平、技術支持和服務等直接決定軟件定制開發(fā)的成敗