物件導向建模分析(一)
物件導向分析方法
軟體的錯誤是怎樣產生的?軟體工程的挑戰有哪些
- 交付的軟體不是使用者需要的
- 使用者需求的變化
- 風險沒有管理
- 無力的團隊管理
軟體
軟體是一種特別的產品,隨著規模和複雜性的進步以及應用領域的擴大逐漸形成了工程。
是計算機中與硬體相互依存的另一部分,包括程式、資料和說明文件。
程式是按照設計要求和效能指標設計的指令序列
資料是程式能夠正常操縱資訊的資料結構
說明文件是用於開發和維護軟體程式的各種圖文資料。
軟體工程
軟體工程是軟體的工程性方法,涵蓋了所有生命週期,並提供了一整套工程性方法來指導軟體開發。
軟體工程是一門研究如何用系統化、規範化、數量化等工程原則和方法去進行軟體的開發和維護的學科。
包含:1. 軟體開發技術 2. 軟體專案管理
軟體工程三要素:方法、工具、過程
軟體工程應包括的知識(10個):軟體需求、軟體設計、軟體構建、軟體維護、軟體配置管理、軟體工程管理、軟體工程過程、軟體工程工具和方法、軟體質量
軟體的發展歷程經歷了哪幾個階段,每個階段的特點是什麼?
-
第一階段:程式設計階段
- 個人英雄主義的開發、軟體開發就是程式設計、不考慮通用型
- 文件不全
- 只有程式的概念,沒有軟體的概念。
- 採用組合語言、機器語言應對計算機效能問題
-
第二階段:軟體設計階段
- 程式規模增大、需小組協作生產
- 由小組執行、維護
- 程式重要性提升,不再被視作硬體的附屬成分。
- 在計算機系統的開發過程中與硬體工程師共同起主導作用。
-
第三階段:傳統軟體工程階段
- 採用工程化生產方式
- 軟體產業興起
- 軟體開發成功率、質量大大提升。
- 軟體工程併發環境及併發環境湧現,度量問題得到重視。
-
第四階段:現代軟體工程階段
- OOP廣泛使用
- 軟體開發技術逐漸成熟
軟體危機
指計算機軟體的開發和維護過程中所遇到了一系列嚴重問題。
軟體生命週期
包括分析、設計、實現、測試和維護等。
軟體工程的框架
軟體工程目標:正確性、可用性、費用合算
軟體工程活動:需求、設計、實現、確認、支援
軟體工程原則:適宜開發範型、合適設計方法、高質量工程支援
軟體過程
是為了獲得高質量軟體所需要完成的一系列步驟。
生命週期模型把生命週期劃分成那些階段以及執行順序,也稱為軟體過程模型。
常見模型:瀑布模型、快速原型模型、增量模型、螺旋模型
瀑布模型
應用場景:大型軟體專案;需求明確;需求變化少
特點:
- 階段間具有順序性和依賴性
- 推遲實現的觀點。
- 質量保證的觀點
優點:
- 嚴格規定了必須提交的文件
- 按活動劃分的檢查點
- 當前階段完成後,只需關注後續階段
缺點:
- 階段劃分固定、階段間大量文件增加工作量
- 開發模型線性,只有在過程結束才能看到成果,增加風險
- 早期的錯誤可能要等到末期測試才能發現,帶來嚴重後果
快速原型模型
應用領域:客戶不熟悉軟體、溝通理解困難
優點:
- 減少需求不明確帶來的開發風險
- 更好和客戶溝通
- 減少技術、應用風險,縮小成本,提高產品質量
缺點
- 儘可能快速建造原型、限制開發人員創新
- 所選技術工具不一定主流,效率低
- 可能導致產品設計差
- 客戶確定真正需求、原型可能被拋棄
增量模型(演化模型)
適用範圍:需求比較明確、架構穩定
優點:
- 及時反饋、適應變化好
- 客戶看到不斷變化的軟體,降低開發風險
- 團隊士氣的鼓舞
缺點:
- 需要開放式的體系結構,維護難度大
- 容易退化為邊做邊改模型、使軟體過程控制失去整體性
螺旋模型
適用範圍:大型複雜的系統
優點:
- 強調可選方案以及約束條件支援軟體重用
- 有助於提升軟體質量
缺點:
- 要求客戶接受相信風險分析
- 風險分析成本過大則無意義
- 需善於識別風險且準確
結構化方法(面向功能、資料流軟體開發方法,結構化生命週期法)
五個階段:規劃、分析、設計、實施、執行維護
Jackson方法的表示:順序、選擇、重複
物件導向軟體開發方法
自底向上的歸納、自頂向下的分解,儘可能運用人類自然思維方式
要點:
- 客觀世界由各種物件組成
- 所有物件劃分為類
- 類具有登記
- 物件之間通過訊息互動
三大重要特徵:封裝、繼承、多型
基本概念:物件、類、封裝...
核心概念:物件、類
相關文章
- 物件導向及建模物件
- 物件導向與領域建模物件
- 物件導向建模 = 面向賓語建模 != 主語思維物件
- golang物件導向分析Golang物件
- 物件導向建模與資料表建模兩種分析設計方法的比較的思考物件
- 物件導向-物件導向思想物件
- iOS 開發之 OOA (物件導向分析) & OOD (物件導向設計)& OOP (物件導向程式設計)iOS物件OOP程式設計
- Java物件導向(一)Java物件
- C++ 物件導向 一C++物件
- python物件導向一Python物件
- python物件導向(一)Python物件
- 如何理解物件導向(一)物件
- JavaScript 物件導向精要(一)JavaScript物件
- 【軟體工程】物件導向的分析軟體工程物件
- JAVA(一)JAVA基礎/物件導向基礎/高階物件導向Java物件
- 程式導向與物件導向物件
- 物件導向與程式導向物件
- “程序導向”和“物件導向”物件
- 物件導向物件
- JS物件導向程式設計(一):物件JS物件程式設計
- 一、Java物件導向面試題Java物件面試題
- 物件導向——類設計(一)物件
- 物件導向,搞定物件物件
- PHP 物件導向 (九)物件導向三大特徵PHP物件特徵
- JAVA物件導向基礎--物件導向介紹Java物件
- 物件導向分析與設計(OOAD)物件
- 從程式導向到物件導向物件
- 物件導向(下)物件
- 物件導向 -- 反射物件反射
- PHP物件導向PHP物件
- Java — 物件導向Java物件
- JavaScript 物件導向JavaScript物件
- JS物件導向JS物件
- 物件導向(上)物件
- scala物件導向物件
- 物件導向--下物件
- 物件導向(oop)物件OOP
- 物件導向trick物件