軟體開發的流程
軟體開發的流程有很多種模型,這裡講的一種軟體開發的流程是瀑布模型
瀑布模型是将軟體生存周期的各項活動規定為固定順序的若幹階段工作,最終得到軟體産品。
他的核心思想是按工序将問題化繁為簡,便于分工協作,采用結構化的分析與設計方法将邏輯實作
與實體實作分開。
瀑布模型的幾個階段如下:
一、問題定義
軟體要解決什麼問題,做什麼。例如:做類似京東的購物網站,做類似優酷的視訊網站
二、可行性分析
可行性分析是決定“做或者不做的”,有如下幾個分析:
1、技術可行性,分析技術層面能不能實作所要求的功能
2、經濟可行性,分析這個軟體件是否可以盈利
3、法律可行性,分析所要做的軟體系統是否符合法律标準
三、需求分析
需求分析是決定“做什麼,不做什麼”
這個階段需要需求分析師、項目經理找客戶談需求
四、概要設計
概要設計又叫總體設計,是設計師根據使用者互動過程和使用者需求來形成互動架構和視覺架構的過程
根據客戶的需求,把軟體分成若幹塊,最終畫出子產品圖。
五、詳細設計
對一個具體的功能如何實作進行詳細設計,例如:要實作使用者登入的功能
六、編碼
編碼這個過程一般叫coding,由程式員來完成
七、測試
程式員編碼完以後,要進行測試,測試通過了,軟體才可以正式上線運作。
測試在軟體開發中作用特别重要,而它也分四步進行
1、單元測試:
這一步是由程式員自己測試自己寫的代碼,主要作用是保證代碼的品質,保住自己的工作
2、內建測試:
把多個程式元的代碼放到一塊來測試,這一步主要由測試工程師來完成
3、系統測試:
軟體和硬體結合在一起,模拟一個使用者的真實使用環境進行測試
4、驗收測試:
根據在哪兒測誰來測,可以把這一步分為2步
(1)alpha 在軟體公司内部,由客戶當着項目經理面來測試,是由客戶來測的
(2)beta 在軟體公司外部,由最終的一小部分使用者來測試,我們使用的軟體經常就有一些beta的版本就是這一步
八、上線運作
在完成以上的步驟之後軟體就可以上線讓使用者來運作了
九、維護
維護不單單是對運作之後産生的Bug的修複,還包括後期添加的新功能。
維護在軟體開發過程中占的比重是最大的。
以上是瀑布模型的主要執行的一個過程。
凡是都有兩面性,瀑布模型不例外,有自己的優缺點
瀑布模型的優點有:(1)、為項目提供了按階段分的檢查點,軟體需要檢查的時候,可以根據檢查内容來找到一個具體的階段
(2)、目前一階段完成後,開發者隻需要将關注點放到後續階段,明确每一個階段的任務和目标
(3)、可以在疊代模型中使用瀑布模型
增量疊代應用于瀑布模型。疊代1解決最大的問題。每次疊代産生一個可運作的版本,同時增加更多的功能。每次疊代必須經過品質和內建測試。
(4)、它提供了一個模闆,這個模闆使得設計、分析、編碼、測試和支援的方法在這個模闆下有一個共同的指導。
瀑布模型的缺點有:(1)、各階段的劃分完全固定,階段之間産生了大量的文檔,極大的增加了工作量。
(2)、由于開發模型是線性的,使用者隻有在整個過程完成以後才能看到效果,因而增加了開發的風險性
(3)、通過過多的強制完成日期和裡程碑來跟蹤各個項目階段
(4)、瀑布模型最突出的階段是不适應使用者的需求的變更