1. 程式人生 > >軟件工程知識點總結

軟件工程知識點總結

角色 事件 缺點 問題 類型 方法學 開發需求 方案 簡化

軟件的概念: 軟件是計算機系統中與硬件相互依存的另一部份,是程序、數據、以及相關文件的完整集合。程序是事先設計的功能要求執行的序列。數據是使得程序能征程操作信息的數據結構。文檔是程序開發,維護和利用的有關圖文和材料。軟件的表現形式分為有形和無形,軟件的有形表現在軟件的的文檔、程序、代碼、用戶界面、輸出表報、等。軟件的無形部分表現在:軟件的內部邏輯,是軟件自身的設計思想。

軟件危機:軟甲危機是軟甲開發和軟件維護。具體產生的原因有對軟件的成本和進度的估計不是準確,項目管理經驗缺乏。用戶對已完成的軟件系統不是很滿意,模糊的設計需求、閉門造車、盲與編程、交付日期沒有保證。軟件的產品質量靠不住。存在bug。軟件設計不可維護。軟甲沒有適當的文檔資料,缺少設計資料,難以維護。軟件系統過於龐大,成本過高,軟甲開發效率過低,技術水平不好。避免軟件危機的方法,註意結合實踐經驗的積累,利用成熟的開發工具。引入軟件工程學,軟甲工程學的重要目的就是提高軟件的可維護性,減少軟件的維護成本,縮短軟件的開發周期。

軟件工程:是軟件開發中系統思想的具體實現 ,軟甲工程是開發、運行、維護、和修復的系統方法,是一門工程學科,即運用工程的概念、原理、技術、方法來開發和維護軟件。

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

傳統的結構化方法:也叫做生命周期方法學,采用結構化分析、結構化設計、結構化實現。

面向對象方法學的4個要點: 對象+類+繼承+用消息通信 簡化了軟件開發和維護,提高了軟件的可重用性。

軟件生命周期: 定義(問題的可行性、可行性研究、需求分析) 開發(總體設計、詳細設計、編碼&測試單元、綜合測試)維護(運行&維護)

分析系統的數據要求: 通常采用建立數據模型的方法 (E-R圖)

設計階段:總體設計(結構設計) 可以列出很多種解決方案 ,把各項需求轉換成軟件的體系結構。詳細設計(過程設計)對每一個模塊要完成的工作進行具體的描述,為源程序編寫代碼打下基礎。

模塊設計的目標:強內聚、低耦合。

軟件設計的重要性:軟件設計是後續開發步驟和維護工作的基礎。如果沒有軟甲設計,只能建立一個不穩定的軟件體系結構。

編碼階段: 編碼程序應當具有結構良好,清晰易讀。且與設計相一致。 程序的質量基本取決於設計的質量。

測試階段:黑盒測試&白盒測試 測試的策略:單元測試、集成測試、確認測試、系統測試、驗收測試。

運行和維護階段: 改正性維護:運行中發現了軟件中的bug,需要改正; 適用性維護:為了適應變化偶爾軟件的工作環境,需要適當的改變;完善性維護:為了增強軟件的功能需求變更;預防性維護:為了改進未來軟件的可維護性或者可靠性,主動的對正在使用的軟件系統完善其功能。

軟件過程模型:軟件過程是為了獲得高質量的軟件所需要完成的一系列任務的框架,他規定了完成各項任務的工作,是一個將用戶需求轉換成軟件系統所需的活動集合 即 項目管理+軟件開發=軟件開發過程

軟件過程模型:瀑布模型----文檔驅動型 快速原型模型--------原型驅動 增量模型-------構建驅動 螺旋模型------風險+原型驅動

瀑布模型:計劃--需求分析--設計--編碼--測試--運行--評價--計劃-- 瀑布模型的特點: 順序性、依賴性 推遲程序的物理實現--按照步驟進行 質量保證 易於組織,缺點是:階段文檔驅動 開發可能失敗。需求發生變化後引起的代價將提高,維護難。適合在軟件開發需求比較明確,開發技術比較成熟。工程管理比較嚴格的場合下使用,如 產品軟件。

快速原型模型:采用叠代求精的方法 ,首先系統分析人員對用戶的需求的理解,利用先進的軟甲工具快速的構建一個可以子啊計算機上運行的軟件原型系統。然後,讓用戶試用原型系統,並收集用戶的反饋意見,獲取用戶的真實需求。遵循邊開發邊使用的原則

原型系統僅包括未來系統的主要功能,以及系統的重要的接口。 為了盡快的像用戶提供原型,應盡量縮短開發時間,特點是:用戶實時參與,便於交流,比較適合大型,復雜的軟件系統。

噴泉型模型:是一種以用戶需求為都動力,一對象為驅動的叠代模型,主要用於面向對象的軟件開發過程。

現代軟件的開發模式:基於組件的開發方法 、面向領域的軟件開發方法、極限模型

極限模型:軟件團隊為了避免陷入需求不斷增長的過程泥潭,概括除了敏捷的軟件開發方法,極限模型開發階段分成四個部分(分析、設計、編碼、測試)在全過程中使用叠代增量開發,反饋修正和反復測試。

軟件開發的基本目標:低成本,高效率,滿足用戶需求、易於移植、低維護、按時交付。

軟件體系結構:定義了軟件局部和總體設計計算部件的構成,以及這些部件之間的相互作用。從整體上看買軟件體系結構是由結構和功能各異、相互作用的部件集合、並按照層次構成。

胖客戶機:客戶機上同顯示邏輯和應用邏輯 瘦客戶機:客戶機上只顯示顯示邏輯 , 服務器上顯示邏輯處理,

通過UML圖可以清楚的表達設計思想,並為代碼實現提供框架 ,針對的數據類型 類的定義

類擁有自己的數據和行為,能夠完成自身的工作職責,過程是類的組成部分,為類提供行為。通過類的對象之間的寫作完成系統功能。

結構化思維: 結構化思維是利用過程刻畫數據之間的關系,對象思維是直接利用類表達數據之間的關系。結構化中是si的。數據是死的,全部依賴算法操作。對象思維中數據是活的,他知道自己的屬性,並能完成自己的工作,結構化思維更像是一個人解決問題,對象思維是一個團隊在工作。

面向對象的開方法:是從現實世界的客觀對象入手解決問題,盡量運用人的思維方式送多個方面來構造軟件系統,

UML方法:是指具有指定的建模元素,楊的語法,明確的語義的建模語言,是面向對象技術領域內占德威的標準建模語言,

對象:是一個實體,一個事件、一個名詞、可以獲得某種東西,可以想象有自己的標識,狀態,和行為的客觀世界中的任何事物。

類:類是一系列對象的抽象描述,這些對象共享相同的屬性,操作、關系、和語義,一個具體的對象是該類的一個實例,類抽象的過程就是具體對想到額特征和行為進行參數,分別用類和操作類表示,類分為三個部分,類名、屬性、操做

傳統的軟件建模方法,建立申訴局模型、功能模型、行為模型。並監視分解原則。

建模的必要性: 降低復雜度,交流工具,可視化。

常見模型分類:業務模型:對業務過程、工作流、組織的建模、描述業務; 需求模型:對捕獲的需求進行整理和分析的工具,輔助開發人員與用戶進行溝通,分析業務; 設計模型:包含高層設計和詳細設計模型,用於統一開發人員,溝通設計信息,設計軟件; 數據庫設計模型: 設計數據庫的結構、表格以及應用系統的交互,管理數據; 實現模型:用來清理軟禁組成、部署方案、為安裝與維護人員的工作提供指導,系統實施

UML是一個標準的建模語言,對任何具有靜態結構的和動態結構行為的軟件系統進行建模。UML系統適用於不同的階段,需求階段用用例,分析階段用類圖,實現階段用交互圖,構造階段用編程語言。

構造塊: 事物:結構、行為、分組、註釋

關系:: 依賴、關聯、泛化、實現、

圖: 靜態模型:類圖、對象圖、構建圖、部署圖、包圖、組合結構圖、外廓圖、

動態模型: 順序圖、通信圖、時間圖、交互縱覽圖、狀態機圖、用例圖、

類圖:類與類之間的相互關系,對象圖: 對象與對象之間的相互關系 ;;; 構件圖:構建及其相互依賴關系 部署圖: 構建在各個節點上的部署。順序圖:強調時間順序交互圖。通信圖:強調對象之間協作的交互圖,狀態機圖:類所經歷的各種狀態,活動圖:對工作流建模:用例圖:需求捕獲,測試數據。

類圖:是軟件的藍圖,詳細描述了系統各個對象之間的相互關系,以及這些類與類之間的靜態關系。 類、接口、依賴、關聯、泛化、實現、

對象圖:表示某一時刻類的對象靜態結構和行為 對象、鏈接、多重新、

包圖:展現由模型本身分解而成的組織單元,以及他們的依賴關系。 組織結構圖、部件、端口、協議、

組織結構圖: 描述系統中某一部分的內部結構,包括該部分與其他系統部分的相互點。

順序圖:用來顯示多個對象間的交互活動,關註對象之間的消息傳送的時間順序,核心概念:對象、生命線、交互、消息。交互階段、

交互縱覽圖:活動圖和順序圖的混合物,直觀的表達一組相關順序圖之間的流轉邏輯,存在兩種形式,一種是以活動圖為主線;對活動中某些重要活動節點進行細化,即用一些夏普的順序圖對重要活動節點進行細化,描述活動節點內部對象之間的交互。 另一種是以順序入為主線,用活動圖細化順序入中的某些重要對象,即,用活動圖描述重要對象的額活動細節。

通信圖: 表示兩個對象之間關系以及交互活動 核心概念; 對象,協作角色 ; 協作:交互 消息

時間圖:也是一種交互圖,展現了消息跨越不同對象或角色的實際時間信息。 可描述單個火哥多個對象變化的時間點一會維持特定狀態的時間片段 ,是表示交互時間的主要手段

核心概念: 時間約束 持續時間約束 生命線 狀態 條件、事件 、

繼承機制:LSP原則 、OCP原則、SRP原則、ISP原則、DIP依賴倒置原則

設計模式:設計模式就是解決方案

敏捷過程模型: 是一個漸進開發過程,將開放階段的4個活動,分析、設計、編碼、和測試結合在一起,消除了軟件過程中的不必要的步驟和提交物,在全過程中采用叠代增量開發,反饋修正和反復測試的策略。敏捷軟件開發生存中期畫風為用戶和體系結構,腹部計劃、交互、接受測試和小型發布幾個階段。

軟件工程知識點總結