記錄軟體工程基礎的學習過程,第二篇:軟體生存週期過程及其模型。
軟體生存週期模型
軟體生存週期(software life circle)又稱軟體生命期,生存期。它是指從形成軟體開發概念開始,到軟體投入使用,再到軟體失去價值而消亡的整個過程。
軟體生存週期過程,是規定了獲取,**,開發,操作和維護軟體時,要實施的過程,活動和任務(見下文)。它旨在提供乙個公共的框架,方便使用「相同的語言」(可理解為相同的標準,規則)在自己的環境中創作和管理軟體。
國標將軟體生命週期可能執行的活動分為5個基本過程,9個支援過程,7個組織過程。每個過程可能會劃分出若干活動,每個活動又可能劃分出若干任務。
其中基本過程是不可或缺的,支援過程是支援基本過程的,而組織過程可以簡單地理解為組織管理人財物。
下面以國標gb/t8566-2007 和基本過程中的**過程為例。
從上文也應該知道了,軟體生存週期模型是選取了軟體生存週期過程中的部分活動。因為在實際軟體開發過程中,不能一味地照搬模板,而是要根據專案和應用的性質,採用合適的方法與工具,對軟體進行開發和維護。由此催生了各種軟體生存週期模型。
下方的所有都是來自老師給的ppt截圖,不是原創。
瀑布模型(最經典的模型)瀑布模型特點:
階段間具有有序性和依賴性。階段必須完成之後,才能進行下一階段。瀑布模型提出之前,軟體開發是無序化的,這就導致了開發效率低的問題,而瀑布模型的出現使得軟體開發變得有序,軟體的效率和質量都大大地提高。
推遲實現。其實真正編碼之前,會進行大量的分析與設計工作。在構建大型應用時,軟體的維護消耗的精力與物力遠遠超過開發。所以為了減少問題的產生,降低維護的代價,所以會做好分析與設計工作,推遲編碼。
文件驅動。每乙個階段都會產生文件。這樣有兩個好處,第一,每個階段結束前都會對文件進行審查,審查嚴格之後才會交給下一階段,這樣是質量得到了保證,也為以後維護提供了寶貴的資料。第二,每乙個階段開始前,開發人員可以參考前一階段的文件,快速開始本階段的工作。
瀑布模型缺點:
瀑布模型的缺點主要在於在實際開發中不可能不會出現問題,一旦出現問題之後,回溯到前面階段的代價實在太大,有可能會終止專案。
由於產品是一次**付給使用者,如果使用者的需求與實際的產品不符,同樣會產生上述回溯到前面階段代價太大的問題。
原型模型
基於使用者的需求和實際產品不相符的情況,那就出現了一種模型叫做原型模型。
原型模型特點:
不斷快速修改系統,以期盡早使用者見面,使用者提出意見後,又快速修改,交付給使用者檢視。
不注重維護和質量。
原型模型的缺點:
基於原型模型的特點,它是不可能作為最終系統交付給使用者的,原型系統最終可能會被廢棄,可以認為它的作用只是為了不斷明確使用者的請求。
不適合小型專案。簡單來說,用原型不斷修改以滿足使用者是需要代價的,如果是小型專案,受眾不廣,資金不足,只搞個原型估計就讓專案夭折了。
rad模型
基於前面兩個模型,你就知道這個模型是幹啥的了。我如果能集合原型模型和瀑布模型的優點,不是很好?
所以,rad模型具有如下特點:
開發周期短。(兼具原型快速的優勢)
產品質量高。(每個元件的開發其實就看得出來瀑布模型的影子)
但是,rad模型就完美了嗎?
不是 ,rad模型需要大量的人力和物力,軟體開發過程不止注重技術更看重管理。如果有乙個小組撂挑子,說我不幹了,那麼整個軟體的開發不就得推遲?所以,rad模型的這乙個特點就不滿足之前boehm提出的開發人員應該小而精的觀點。
上面所述的模型都有乙個顯著的特徵,即都是一次**付給使用者,這樣做是具有風險的,因為技術有革新,市場有變化,當你的產品開發出來之後,可能就不符合時代的需求了。所以,又有另外的模型被相繼地提出。
增量模型
增量模型的特點:
原型特點:由於是不開發增量,然後和客戶見面,開發增量,然後和客戶見面。這樣就能符合客戶的需求,順應市場變化。
rad特點:每項工作都有相應的小組。這樣就兼顧了快速的特點。
瀑布模型特點:這就不囉嗦了,基本每乙個模型都能或多或少看到瀑布模型的影子。
不需要大量的人力:這裡應該和前面的rad做出區別,這裡的增量並不是一次性共同開發,而是根據使用者需求逐次開發,所以上一階段個增量的開發小組仍可以接手下乙個增量的開發。
代價低:即時開發的增量不滿足使用者需求,那麼對乙個增量進行修改,相比對整個軟體進行修改的代價要小得多。
但是增量模型有缺點沒有?
還是有的,我們要考慮增加乙個增量時是否對原來的軟體造成影響,如果影響過大,那麼這個增量反而不好。
但是,採用增量模型是可取的,為了規避開發不合適的增量,那麼就得在設計上話功夫,但是這種犧牲是值得的。
螺旋模型
螺旋模型的特點:
瀑布模型特點:從環內到環外,可看到瀑布模型的特點。
增量模型特點:每一次螺旋可看做是一次增量。
螺旋模型的缺點:
螺旋模型是風險驅動的,專案越大,風險越大。原型進行風險分析是需要代價的,如果砸在風險分析的錢太多,那麼就可能導致專案終止。所以,螺旋模型適用於內部開發。
rup模型
總之,針對不同的開發應用場景,應當採用合適的模型進行開發。
點此到頂部top
軟體生存週期及其模型是什麼?
軟體生存週期 software life cycle 又稱為軟體生命期,生存期。是指從形成開發軟體概念起,所開發的軟體使用以後,知道失去使用價值消亡為止的整個過程。一般來說,整個生存週期包括計畫 定義 開發 執行 維護 三個時期,每個時期又劃分為若干個階段。每個階段有明確的任務。週期模型 典型的幾種...
軟體生存週期及其模型是什麼?
軟體生存週期 software life cycle 又稱為軟體生命期,生存期。是指從形成開發軟體概念起,所開發的軟體使用以後,知道失去使用價值消亡為止的整個過程。一般來說,整個生存週期包括計畫 定義 開發 執行 維護 三個時期,每個時期又劃分為若干個階段。每個階段有明確的任務。週期模型 典型的幾種...
軟體生存週期及其模型是什麼?
軟體生存週期 software life cycle 又稱為軟體生命期,生存期。是指從形成開發軟體概念起,所開發的軟體使用以後,知道失去使用價值消亡為止的整個過程。一般來說,整個生存週期包括計畫 定義 開發 執行 維護 三個時期,每個時期又劃分為若干個階段。每個階段有明確的任務。週期模型 典型的幾種...