【系統分析師之路】第五章 軟件工程記憶敲出

【系統分析師之路】第五章 軟件工程記憶敲出

1. 信息系統生命週期

  • 信息系統生命週期由四個階段組成:簡稱爲"花開雲散"。
  • 立項規劃階段,開發階段,運維階段,消亡階段。而信息系統開發生命週期包括在了開發階段。
  • 信息系統開發生命週期又分爲五個階段:總體規劃,系統分析,系統設計,系統實施,系統驗收。簡稱爲"劃分即實驗"。
  • 在總體規劃階段的主要輸出爲:系統設計任務書,它包括了系統建設方案和實施計劃。
  • 初步的用戶手冊,系統測試計劃,需求規格說明書等主要是系統分析階段的產出物。

2. 統一開發過程的概念

  • 它的簡稱爲RUP,Rational Unified Process,它是統一軟件開發的過程,一般使用在面向對象或者面向服務的系統開發過程當中。
  • 它有三個基本的特徵:以用例驅動,以架構爲中心,增量與迭代。
  • 它有四個過程所組成:初始過程,細化過程,構建過程和交付過程。
  • 在初始階段,我們需要明確項目範圍和邊界,估算大體的工作量和安排工作進度計劃,對項目的風險進行有效的評估,因爲是用例驅動的開發,在初始階段還要選出系統的關鍵用例
    該階段的主要輸出是:項目計劃和用例模型
  • 在細化階段,主要的工作就是分析系統的問題域,基於需求分析的結果,對系統進行架構的設計,對於高風險的元素,進行規避處理
    該階段的主要輸出是:項目架構設計資料
  • 在構建階段,主要的工作就是對系統進行建設,做成項目可交付成果,並對其進行測試
    該階段的主要輸出是:UML模型(設計模型),測試用例。這裏特別需要留意的是設計模型的做成不在細化階段而在此階段
  • 在最後的交付階段,對可交付成果實施驗收與測試,製作相應的用戶文檔,對用戶操作實施培訓活動
    該階段的主要輸出是:可運行的軟件產品,用戶手冊,用戶支持計劃。

3. 淨室軟件工程的概念

  • 淨室軟件工程是一種基於應用數學與統計學理論的一種軟件工程技術,它主要的思想就是通過嚴格的工程化來達到零缺陷或者接近零缺陷;它要求在軟件的規約和設計過程中消除錯誤,這樣就以淨的方式推進項目,降低開發風險,並以合理的成本開發出高質量的軟件。
  • 淨室軟件的特徵就是太理想化,基於複雜的數據模型所以一般也比較難以實現。
  • 淨室軟件工程象形式化方法技術一樣,淨室過程強調在規約和設計上的嚴格性。
  • 在傳統的思維模式中,測試是發現Bug的最主要的方法,其實不然如果在上流工程最好健壯性可靠性設計,加強各個階段評審的作用,比如CodeReview也可以發現錯誤,根據Bug分佈與實際代碼修正行數的關係,也就是採用品質會計的方式,分析並改善品質,這樣哪怕不用測試就可以保證質量了。

4. 逆向工程的概念

  • 逆向工程也叫反向工程。在面向對象的開發領域,一般是先UML設計,然後用工具生成代碼,這個叫正向工程;相應的,從代碼生成UML設計圖叫做逆向工程。
  • 軟件的逆向工程是一個恢復設計的過程,它的特點是從已有的系統功能中抽取數據結構,體系結構和程序設計信息,進而得到有用設計的過程。在文檔缺乏的遺留系統中,採用逆向工程特別的有用處。因爲通過逆向工程之後可以得到遺留系統的功能需求,這樣就可以獲取遺留系統既有的功能需求了。從這個角度來講,逆向工程的思想和需求跟蹤矩陣中的逆向跟蹤的思想比較接近。

5. CBSD基於構件的軟件開發模型

  • CBSD的全稱爲Component-Based Software Development。構件組裝模型是在螺旋模型的基礎上,得到了相應的改進。它主要可以用於面向對象的開發方法中。構件組件模型最大的特徵就是軟件的複用,通過複用可以爲項目帶來的好處有:開發週期的縮短,開發成本的下降;當然構件組裝模型中構件庫的健壯性直接決定了軟件的複用程序和開發成本。
  • 基於構件的開發模型中需要對構件庫進行有效的管理,構件庫包括了構件獲取和構件管理。
  • 標識出候選類,如果已經存在的話,就從庫中直接提取出來複用;如果標識出來的候選類不在構件庫中,就採用面向對象方法開發;完成了這個開發工作以後,就回到螺旋模型。

6. 瀑布模型,V模型,W模型的概念與區別

  • 結構化開發方法對應V模型和瀑布模型。瀑布模型也是最早出現的開發模型。它最大的缺陷就是需求分析或系統設計階段隱藏的問題一直到後期驗收測試才被發現。
  • V模型是瀑布模型的一種變種,是從瀑布模型中發展而來的,它在瀑布模型的基礎上加強了測試。在V模型中需要提前作測試計劃和做測試用例。讓測試工作貫穿於始終。
  • W模型是在V模型的基礎上進行的一個變種,V模型強調的是測試貫穿始終,而W模型則強調開發和測試並行同步的實行。
  • V模型的缺點就是和瀑布模型一樣,對於需求變更的響應能力不高,會忽視測試對需求分析,系統設計的驗證,一直到後期的驗收測試才被發現。

7. 螺旋模型的概念

  • 螺旋模型綜合了三個模型的特點:原型模型,迭代模型,瀑布模型。簡稱:原型迭代的瀑布。除了引入了以上三個模型,還在螺旋模型中加入了風險分析過程。
  • 螺旋模型由四個過程組成:制定計劃,風險評估,實施工程,客戶評估
  • 對於需求不是十分明確的項目,可以使用螺旋模型,方便需求變更和風險控制。
  • 螺旋模型的特點:以小的分段來構建大型系統,更加適合應用於大型項目開發中。
  • 螺旋模型的缺點就是很難讓用戶覺得這種演化的方式是可以控制的,所以經常出現軟件開發完畢後,和當前的技術水平有了較大的差距,無法滿足當前用戶需求。我的系統分析師備考計劃也是按照螺旋模型,分多輪進行,每輪設定一個目標,針對目標實施風險分析,分析完成之後實施,實施完了後再總體進行回顧與評價。唯一美中不足的就是目前還不知道還需要實施多少輪迭代纔可以。

8. 原型模型的概念

  • 原型模型適合於需求不夠明確的項目。原型可以分爲兩種類別:拋棄式和演化式。
  • 比如做成幾張靜態網頁,然後和客戶確認是不是他們想要的,這就是原型模型。
  • 拋棄式原型法是在靜態網頁確認完畢後,記錄下用戶的需求並拋棄靜態的圖。
  • 演化式原型法是在靜態網頁確認完畢後,記錄下需求,並在原來的靜態網頁基礎之上再增加一些頁面,然後再去和客戶確認。
  • 在收集需求的工具與技術中。情節串聯版就是和原型模型是相互有關係的。

9. 測試工程的五種模型:

  • V模型:瀑布模型的一種變種。
  • W模型:V模型的一種變種,它強調開發與測試相互獨立且並行執行。
  • X模型:也是V模型的改進版,它強調對專門的代碼片段實施編碼與測試,它還加入了探索型測試。
  • H模型:將測試從開發中完全獨立出來,形成一個單獨獨立的流程。軟件測試是一個獨立的過程,它需要和其他流程併發的執行。測試代碼完全獨立於開發代碼。
  • 前置測試模型:將測試與開發緊密的結合起來整合在一起,它以編碼測試編碼這種反覆迭代的方式推進測試。敏捷開發中的TDD就是前置測試模型的一個應用把。

10. 噴泉模型(fountain model)的概念

  • 是一種以用戶需求爲動力,以對象爲驅動,適用於面向對象開發的一種模型。 它的形狀就像噴泉一樣因此而得名。
  • 各個階段沒有明顯的邊界也就是沒有間隙,它的特點爲自下而上各項活動之間相互的迭代。
  • 噴泉模型不同於瀑布模型,需要一個階段所有的活動都結束並且評審通過以後才進入下一個階段,所以瀑布模型更加的靈活,可以比瀑布模型有更高的效率。
  • 噴泉模型的缺點也十分的明顯,噴泉模型中各個階段無明顯間隔,還包含有面向對象複用的概念在裏面,而且在開發過程中需要大量的開發人員,如何管理好項目進度與成本就變得比較困難了。

11. RAD-快速應用開發-(Rapid Application Development)

  • 它叫做快速應用開發,顧名思義,它和原型開發類似,對開發的速度:“快速”有特別的要求。
  • 它綜合了瀑布模型,基於構件的模型的特點,所以它一般使用專門的可視化開發環境,進行面向對象的開發。
  • 它包括:業務建模,數據建模,過程建模,應用生成和測試與交付這五個過程。業務建模(數據流圖),數據建模(數據模型,ER圖),過程建模(細化數據流圖),應用程序生成,測試與交付(只做總體測試,因爲大量的複用)
  • RAD只能用於信息系統開發,不適合技術風險很高的情況。

12. 增量模型的概念

強調先做一塊 找客戶確認,再做一塊,再做一塊。它最大的好處就是風險比瀑布模型小很多,像搭積木一樣。每一個增量都是一個可操作的產品。它是原型+瀑布的思想。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章