軟件開發流程中的問題解析
確定需要
軟件開發的思想來源是豐富的。這些想法可以來自市場研究,包括潛在新客戶的人口統計,現有客戶,產品的銷售前景,其他內部軟件開發人員或創意第三方。軟件產品的想法通常首先由營銷人員評估經濟可行性,以適應現有渠道分布,對現有產品線可能產生的影響,所需特征,並符合公司的營銷目標。在營銷評估階段,評估成本和時間假設。在第一階段早期就是否根據營銷和開發人員產生的更詳細信息,是否應進一步推進該項目作出決定。
工程專業的學生學習工程,很少接觸金融或營銷。營銷學生學習營銷,很少接觸金融或工程。我們大多數人只在一個領域成為專家。更復雜的是,我們很少有人在勞動力中遇到跨學科的人,因此很少有人能夠模仿。然而,軟件產品規劃對於開發成功至關重要,並且絕對需要多學科的知識。
由於軟件開發可能涉及妥協或超出客戶要求,軟件開發項目可能會偏離較少的技術問題,如人力資源,風險管理,知識產權,預算,危機管理等。這些過程也可能導致業務開發與軟件開發重疊的作用。
規劃
規劃是每項活動的具體需要做的事情,我們希望發現屬於項目的事物。創建軟件程序的一個重要任務是提取需求或需求分析。客戶通常對他們想要的最終結果有一個抽象的概念,但不知道應該做什麽軟件。熟練且經驗豐富的軟件工程師此時會認識到不完整,含糊不清甚至相互矛盾的要求。經常演示實時代碼可能有助於降低需求不正確的風險。
“雖然在需求階段付出了很多努力來確保需求是完整和一致的,但很少是這種情況;在受到最小化新的或不斷變化的需求影響時,將軟件設計階段作為最有影響力的階段。具有一項挑戰性的工作,因為它們影響未來或已經在開發的努力。
一旦從客戶收集了一些要求,就應確定並明確說明對開發範圍的情況。這通常稱為範圍文檔。
設計
一旦建立了要求,就可以在軟件設計文檔中建立軟件的設計。這涉及主要模塊的初步或高級設計,以及部件如何配合在一起的整體圖片(例如框圖)。此時應該都需要語言,操作系統和硬件組件。然後創建詳細或低級設計,可能將原型設計作為概念驗證或確定要求。
實施,測試和記錄
軟件測試是軟件開發過程中不可或缺的重要階段。該過程的這一部分確保盡快識別缺陷。在一些通常稱為測試驅動開發的過程中,可以在實現之前開發測試,並作為實現正確性的指導。
記錄軟件的內部設計為將來的維護和增強軟件功能提供基礎。這也可能包括編寫API,無論是外部還是內部。開發團隊選擇的軟件工程流程將確定需要多少內部文檔(如果有的話)。計劃驅動的模型(例如,瀑布)通常比敏捷模型產生更多的文檔。
部署和維護
在對代碼進行適當測試,批準發布,銷售或以其他方式分發到生產環境之後,直接開始部署。這可能涉及安裝,定制(例如通過將參數設置為客戶的值),測試以及可能的延長評估期。
軟件培訓和支持非常重要,因為軟件只有在正確使用時才有效。
維護和增強軟件以應對新發現的故障或要求可能需要花費大量時間和精力,因為錯過的要求可能迫使重新設計軟件。
軟件開發流程中的問題解析