系統發展生命周期
系統發展生命周期(英語:System Development Life Cycle,SDLC),也稱軟件生命周期,是系統工程、資訊系統和軟件工程中的術語,用於描述一個資訊系統從規劃、建立、測試到最終完成部署的全過程[1]。系統開發生命周期的概念對於硬件和軟件系統都是適用的,這些系統可能只由硬件或軟件組成,也可能兩者都有[2]。
概述
系統發展生命周期由一系列明確定義的不同工作階段組成,有助於系統工程師和系統開發人員利用對系統的設計、構建、測試和交付進行計劃。就像任何在生產裝配線上製造的東西一樣,SDLC的目標是根據客戶需求生產滿足或超越客戶的期望的高質素的系統。所發佈的系統經過了每一個工作階段,其中包括了時間時限和成本估計[3]。電腦系統是複雜的(尤其是近期興起的面向服務的體系結構),通常涉及到多個傳統系統,這些系統可能需要由不同的軟件供應商提供。管理這種級別的複雜性,許多SDLC模型或方法被建立,如「瀑布模型」、「螺旋模型」、「敏捷軟件開發」、「快速原型模型」、「增量模型」;和「同步及穩定」[4]。
SDLC可以看做一個快速迭代的過程。敏捷的方法,如XP和Scrum,專注於輕量級行程,這些輕量級行程在開發周期中允許快速的變化(不一定要按照SDLC的開發模型)。迭代法,例如統一軟件開發過程和動態系統開發方法,專注於有限的專案範圍並通過多個迭代來擴大或改善產品由。順序模型或預先大量設計模型(BDUF)、如瀑布模型、關注於完整和正確的規劃來指導大型專案、估計取得成功的風險,保證結果的可預測性。其他模式,如變形開發(Anamorphic development),傾向於由專案範圍和功能的迭代來指導系統開發。
在專案管理中一個專案既可以用專案生命周期(PLC)定義,也可以用SDLC定義,其中會有幾個步驟略有不同。根據泰勒(2004)所說,「專案生命周期包括了所有專案的內容,而系統開發生命周期關注於實現產品需求」[5]。
SDLC在開發IT專案時中被使用,它描述了完成專案所要涉及到的不同階段。
歷史
產品生命周期結構化地描述了資訊系統的構建過程,重申產品生命中的每一個階段。根據艾略特和斯特拉和雷德福(2004)所說,系統開發生命周期「起源於1960年代,用於在大型企業時代大規模地開發功能性商用系統。這些資訊系統的活動將涉及大規模的數據以及數據處理常式」。[6]
還有很多系統開發框架在一定程度上借鑑了SDLC的模型,如1980年代的結構化系統分析和設計方法(SSADM),用於生產英國政府商務辦公室系統。根據艾略特(2004)所說,「傳統的系統開發生命周期方法逐漸被其他方法和框架取代,這些方法試圖克服傳統SDLC模型的一些原生缺陷」[6]。
系統分析與設計
系統分析與設計(SAD)通過有效地使用硬件、軟件、數據、流程、和人力資源來支援公司的商業目標,是開發高效資訊系統(IS)的一個重要過程。系統分析和設計有助於做好開發前的準備和約束問題的範圍。系統分析與設計權衡在功能性和非功能性需求,並在兩者之間形成平衡。系統分析與設計和分散式企業架構、企業I.T.體系結構和業務體系結構有着緊密的聯絡, 要達到高等級的系統描述,很大程度上依賴於分割、介面、角色和部署建模。這個高水平描述可以被進一步分解為可以被分析、設計的組件和模組,這些組件和模組被分開構建,最終整合以實現業務目標。SDLC和SAD是系統規劃和生命完整產品的基礎。
優勢與劣勢
在現代電腦界很少人會在SDLC中嚴格使用瀑布模型,因為已經有很多的現代方法取代了這種想法。有些人會認為SDLC已經不再適用一些模型,比如敏捷開發,但它仍然是科技界的一個廣泛使用的術語。SDLC在系統開發的傳統模型上有優勢, 更適合結構化環境。SDLC方法的缺點在於,在專案需要迭代開發時,如:web開發、電子商務開發,專案組需要定期檢查軟件設計,SDLC就不實用了。與其說討論SDLC的優缺點,更重要的應該是借鑑SDLC的實踐模型,將其應用到現代軟件設計中。
SDLC的優勢與劣勢對比
SDLC的優勢與劣勢[7]:
- 優勢:控制;監控大型專案;步驟具體;預先評估成本和達成目標;文件完整;定義良好的用戶輸入;易於維護;標準化的設計和開發;能夠容忍開發團隊中的人員變化
- 劣勢:增加了開發時間;增加開發成本;系統必須預先定義;刻板;很難估計成本,導致專案超支;用戶輸入有時是受限的
快速應用程式開發(RAD)是SDLC的一個替代品,它結合原型模型,將應用程式開發和CASE工具的實現相結合。RAD的優點是速度快,降低了開發成本,並且使用戶更積極地參與開發過程。
參考資料
- ^ SELECTING A DEVELOPMENT APPROACH (頁面存檔備份,存於互聯網檔案館). Retrieved 17 July 2014.
- ^ Parag C. Pendharkara. Information and Software Technology 50 (12). Corresponding author contact information, E-mail the corresponding author, James A. Rodgerb, Girish H. Subramanian. Science Direct: 1181–1188. November 2008 [2015-05-29]. doi:10.1016/j.infsof.2007.10.019. (原始內容存檔於2015-09-24).
- ^ [ttp://foldoc.org/Systems+Development+Life+Cycle Systems Development Life Cycle from]. FOLDOC. [2013-06-14]. (原始內容存檔於2021-05-12).
- ^ Software Development Life Cycle (SDLC) (頁面存檔備份,存於互聯網檔案館), Power Point, – Powered by Google Docs
- ^ James Taylor (2004). Managing Information Technology Projects. p.39..
- ^ 6.0 6.1 Geoffrey Elliott & Josh Strachan (2004) Global Business Information Technology. p.87.
- ^ Post, G., & Anderson, D., (2006). Management information systems: Solving business problems with information technology. (4th ed.). New York: McGraw-Hill Irwin.