軟件生存周期
軟件生存周期也叫軟件生命周期。是軟件的產生直到報廢或停止使用的生命周期。在國標,也就是國內標準中,被分成了下面8個階段。
這些階段咱們大家在平時工作中都在用,不再贅述,重點說一下可行性研究與計劃。不具備可行性不代表不能做,有可能是成本不可接受。
之前賈躍亭賈總為了制造智能汽車,幾乎賠上了整個樂視。其實那段時間想做智能汽車的不只是賈總,很多人都想做。但是其他人在可行性研究與計劃階段,估算出其成本遠高于收益,所以在可行性研究與計劃階段就放棄了。我個人因為之前也在樂視工作其實蒙受了不小的經濟損失,樂視現在還欠我十幾萬的專利費,當時還是我們總監出面幫我要回來一部分。其實我對賈總追求夢想的精神上還是很欽佩的。但是在可行性研究與計劃階段,我不贊同其為了自己的夢想放棄公司整體利益的行為。
常用的軟件過程模型
軟件過程模型是將軟件生存周期的各個階段組合的過程。就好像是各個階段是不同的菜,軟件過程模型是套餐,是一種組合方式。
瀑布模型
瀑布模型是將軟件生存周期的各項活動規定為按固定順序而連接的若干階段工作,形如瀑布流水,最終得到軟件產品。在瀑布模型之前,沒有模型的指導,開發是比較混亂的。
但是瀑布模型具有順序性和依賴性,必須等前一個階段完成才能進行下一個階段,前一個階段的輸出是下一個階段的輸入。所以,人們就提出推遲實現的思想,就是把程序物理實現推遲到最后,保證前期工作的扎實。相信,這也是實際工作中,很多團隊都反復強調的一點。
快速原型模型
快速原型模型是說要快速建立反映用戶主要需求的原型系統,反復由用戶評價修正,開發出最終產品。快速原型模型在確定需求上優于瀑布模型。
這種模型非常適用于非自主研發的、或者初創期的產品。比如一個初創公司要去拉投資,除了一堆設計理念的文檔,很多潛在的投資人都愿意看到產品的初始模型,再決定是否進行投資。
但是這種開發方式也有明顯的缺點:初期可能由于時間問題,代碼和設計底層都很粗糙,后期穩定性和架構優化會有很大的阻力。
增量模型
增量模型又叫漸增模型,將軟件產品作為一系列的增量構件進行設計、編碼、集成和測試。區別于瀑布模型和快速原型模型,增量模型是分批的而不是一次性將全部產品交付給用戶。
現在很多互聯網產品都是采用這種形式,開始時只提供基礎的功能,后期又不斷豐富。比如微信,剛開始只是一個IM即時通信工具。后來又開放了朋友圈、紅包、搜一搜等功能。
增量模型可以在較短的時間提供給用戶一個功能性產品,還給了用戶充裕的時間學習適應產品。但是增量模型對擴展性有很高的要求。
螺旋模型
螺旋模型基本的做法是在“瀑布模型”的每一個開發階段之前,引入非常嚴格的風險識別、風險分析和風險控制。直到采取了消除風險的措施之后,才開始計劃下一階段的開發工作。否則,項目就很可能被取消。
螺旋模型沿著螺線進行若干次迭代,圖中的四個象限代表了以下活動:
(1) 制定計劃:確定軟件目標,選定實施方案,弄清項目開發的限制條件;
(2) 風險分析:分析評估所選方案,考慮如何識別和消除風險;
(3) 實施工程:實施軟件開發和驗證;
(4) 客戶評估:評價開發工作,提出修正建議,制定下一步計劃。
螺旋模型由風險驅動,強調可選方案和約束條件從而支持軟件的重用,有助于將軟件質量作為特殊目標融入產品開發之中。但是,螺旋模型也有一定的限制條件,具體如下:
(1) 螺旋模型強調風險分析,但要求許多客戶接受和相信這種分析,并做出相關反應是不容易的,因此,這種模型往往適應于內部的大規模軟件開發。
(2) 如果執行風險分析將大大影響項目的利潤,那么進行風險分析毫無意義,因此,螺旋模型只適合于大規模軟件項目。
(3) 軟件開發人員應該擅長尋找可能的風險,準確地分析風險,否則將會帶來更大的風險
使用螺旋模型的代表是聯想文化,聯想文化的螺旋發展模型脫胎于競爭性文化價值模型。在聯想文化整理的過程中,對競爭性文化價值模型進行了改進和完善,逐漸形成了適合聯想文化的企業文化螺旋發展模型。
在我15年從業經驗中,對軟件產品的開發采用螺旋模型的,我并沒有見過。
敏捷過程模型
敏捷過程模型是指基于迭代開發的軟件開發方法。敏捷方法將任務分解為較小的迭代, 或者部分不直接涉及長期計劃。在開發過程的開始就確定了項目范圍和要求。事先明確定義了有關迭代次數, 每次迭代的持續時間和范圍的計劃。
每次迭代都被視為敏捷流程模型中的短時間”框架”, 通常持續一到四個星期。將整個項目分成較小的部分有助于最大程度地降低項目風險, 并減少總體項目交付時間要求。每次迭代都涉及一個團隊, 在整個軟件開發生命周期中進行工作, 包括計劃, 需求分析, 設計, 編碼和測試, 然后再向客戶展示有效產品。
敏捷開發應該在咱們平時工作中常用,一般項目制的產品經常采用這種過程模型。
如果文章對你有幫助,請點【在看】
如果文章你喜歡,請點【贊】
如果文章既沒有幫助又不喜歡,或者有其他建議,歡迎【留言】或者直接加我微信 brmayi 反饋。
反饋是你的思考,我的成長,我們同步的進步源泉~