物件導向建模分析(一)

weixin_33866037發表於2017-12-18

物件導向分析方法

軟體的錯誤是怎樣產生的?軟體工程的挑戰有哪些

  1. 交付的軟體不是使用者需要的
  2. 使用者需求的變化
  3. 風險沒有管理
  4. 無力的團隊管理

軟體

軟體是一種特別的產品,隨著規模和複雜性的進步以及應用領域的擴大逐漸形成了工程。
是計算機中與硬體相互依存的另一部分,包括程式、資料和說明文件。

程式是按照設計要求和效能指標設計的指令序列

資料是程式能夠正常操縱資訊的資料結構

說明文件是用於開發和維護軟體程式的各種圖文資料。

軟體工程

軟體工程是軟體的工程性方法,涵蓋了所有生命週期,並提供了一整套工程性方法來指導軟體開發。

軟體工程是一門研究如何用系統化、規範化、數量化等工程原則和方法去進行軟體的開發和維護的學科。

包含:1. 軟體開發技術 2. 軟體專案管理

軟體工程三要素:方法、工具、過程

軟體工程應包括的知識(10個):軟體需求、軟體設計、軟體構建、軟體維護、軟體配置管理、軟體工程管理、軟體工程過程、軟體工程工具和方法、軟體質量

軟體的發展歷程經歷了哪幾個階段,每個階段的特點是什麼?

  • 第一階段:程式設計階段
    • 個人英雄主義的開發、軟體開發就是程式設計、不考慮通用型
    • 文件不全
    • 只有程式的概念,沒有軟體的概念。
    • 採用組合語言、機器語言應對計算機效能問題
  • 第二階段:軟體設計階段
    • 程式規模增大、需小組協作生產
    • 由小組執行、維護
    • 程式重要性提升,不再被視作硬體的附屬成分。
    • 在計算機系統的開發過程中與硬體工程師共同起主導作用。
  • 第三階段:傳統軟體工程階段
    • 採用工程化生產方式
    • 軟體產業興起
    • 軟體開發成功率、質量大大提升。
    • 軟體工程併發環境及併發環境湧現,度量問題得到重視。
  • 第四階段:現代軟體工程階段
    • OOP廣泛使用
    • 軟體開發技術逐漸成熟

軟體危機

指計算機軟體的開發和維護過程中所遇到了一系列嚴重問題。

軟體生命週期

包括分析、設計、實現、測試和維護等。

軟體工程的框架

軟體工程目標:正確性、可用性、費用合算

軟體工程活動:需求、設計、實現、確認、支援

軟體工程原則:適宜開發範型、合適設計方法、高質量工程支援

軟體過程

是為了獲得高質量軟體所需要完成的一系列步驟。

生命週期模型把生命週期劃分成那些階段以及執行順序,也稱為軟體過程模型。

常見模型:瀑布模型、快速原型模型、增量模型、螺旋模型

瀑布模型

5617469-7c113c0f38095316.jpg
瀑布模型.jpg

應用場景:大型軟體專案;需求明確;需求變化少

特點:

  • 階段間具有順序性和依賴性
  • 推遲實現的觀點。
  • 質量保證的觀點

優點:

  • 嚴格規定了必須提交的文件
  • 按活動劃分的檢查點
  • 當前階段完成後,只需關注後續階段

缺點:

  • 階段劃分固定、階段間大量文件增加工作量
  • 開發模型線性,只有在過程結束才能看到成果,增加風險
  • 早期的錯誤可能要等到末期測試才能發現,帶來嚴重後果

快速原型模型

5617469-910c5279f56299dc.jpg
快速原型模型.jpg

應用領域:客戶不熟悉軟體、溝通理解困難

優點:

  • 減少需求不明確帶來的開發風險
  • 更好和客戶溝通
  • 減少技術、應用風險,縮小成本,提高產品質量

缺點

  • 儘可能快速建造原型、限制開發人員創新
  • 所選技術工具不一定主流,效率低
  • 可能導致產品設計差
  • 客戶確定真正需求、原型可能被拋棄

增量模型(演化模型)

5617469-7540c98ec24b4304.jpg
增量模型.jpg

適用範圍:需求比較明確、架構穩定

優點:

  • 及時反饋、適應變化好
  • 客戶看到不斷變化的軟體,降低開發風險
  • 團隊士氣的鼓舞

缺點:

  • 需要開放式的體系結構,維護難度大
  • 容易退化為邊做邊改模型、使軟體過程控制失去整體性

螺旋模型

5617469-a0d7885fbe7f587c.jpg
螺旋模型.jpg

適用範圍:大型複雜的系統

優點:

  • 強調可選方案以及約束條件支援軟體重用
  • 有助於提升軟體質量

缺點:

  • 要求客戶接受相信風險分析
  • 風險分析成本過大則無意義
  • 需善於識別風險且準確

結構化方法(面向功能、資料流軟體開發方法,結構化生命週期法)

五個階段:規劃、分析、設計、實施、執行維護
Jackson方法的表示:順序、選擇、重複

物件導向軟體開發方法

自底向上的歸納、自頂向下的分解,儘可能運用人類自然思維方式

要點:

  • 客觀世界由各種物件組成
  • 所有物件劃分為類
  • 類具有登記
  • 物件之間通過訊息互動

三大重要特徵:封裝、繼承、多型

基本概念:物件、類、封裝...

核心概念:物件、類

相關文章