軟體工程知識點

2022-09-15 19:24:05 字數 3360 閱讀 1581

(3)軟體工程原則:抽象、資訊隱蔽、模組化、區域性化、確定性、一致性、完備性和可驗證性。

1)抽象:2)資訊隱蔽:3)模組化:4)區域性化:5)確定性:6)一致性:7)完備性:8)可驗證性:

3.2 結構化分析方法

1、需求分析

需求分析方法有:1)結構化需求分析方法;2)物件導向的分析方法。

2、結構化分析方法

結構化分析方法是結構化程式設計理論在軟體需求分析階段的應用。

結構化分析方法的實質:著眼於資料流,自頂向下,逐層分解,建立系統的處理流程,以資料流圖和資料字典為主要工具,建立系統的邏輯模型。

結構化分析的常用工具:1)資料流圖(dfd);2)資料字典(dd);3)判定樹;4)判定表。

資料流圖的基本圖形元素:

加工**換):輸入資料經加工變換產生輸出。

資料流:沿箭頭方向傳送資料的通道,一般在旁邊標註資料流名。

儲存檔案(資料來源):表示處理過程中存放各種資料的檔案。

源,潭:表示系統和環境的介面,屬系統之外的實體。

3.3 結構化設計方法

1、軟體設計的基礎

從技術觀點來看,軟體設計包括軟體結構設計、資料設計、介面設計、過程設計。

從工程角度來看,軟體設計分兩步完成,即概要設計和詳細設計。

概要設計:又稱結構設計,將軟體需求轉化為軟體體系結構,確定系統級介面、全域性資料結構或資料庫模式。

詳細設計:確定每個模組的實現演算法和區域性資料結構,用適當方法表示演算法和資料結構的細節。

軟體設計的基本原理包括:抽象、模組化、資訊隱蔽和模組獨立性。

1)抽象。抽象是一種思維工具,就是把事物本質的共同特性提取出來而不考慮其他細節。

2)模組化。解決乙個複雜問題時自頂向下逐步把軟體系統劃分成乙個個較小的、相對獨立但又不相互關聯的模組的過程。

3)資訊隱蔽。每個模組的實施細節對於其他模組來說是隱蔽的。

4)模組獨立性。軟體系統中每個模組只涉及軟體要求的具體的子功能,而和軟體系統中其他的模組的介面是簡單的。

*:模組分解的主要指導思想是資訊隱蔽和模組獨立性。

模組的耦合性和內聚性是衡量軟體的模組獨立性的兩個定性指標。

內聚性:是乙個模組內部各個元素間彼此結合的緊密程度的度量。

*:按內聚性由弱到強排列,內聚可以分為以下幾種:偶然內聚、邏輯內聚、時間內聚、過程內聚、通訊內聚、順序內聚及功能內聚。

耦合性:是模組間互相連線的緊密程度的度量。

*:按耦合性由高到低排列,耦合可以分為以下幾種:內容耦合、公共耦合、外部耦合、控制耦合、標記耦合、資料耦合以及非直接耦合。

乙個設計良好的軟體系統應具有高內聚、低耦合的特徵。

在結構化程式設計中,模組劃分的原則是:模組內具有高內聚度,模組間具有低耦合度。

2、總體設計(概要設計)和詳細設計

(1)總體設計(概要設計)

軟體概要設計的基本任務是:1)設計軟體系統結構;2)資料結構及資料庫設計;3)編寫概要設計文件;4)概要設計文件評審。

常用的軟體結構設計工具是結構圖,也稱程式結構圖。程式結構圖的基本圖符:

模組用乙個矩形表示,箭頭表示模組間的呼叫關係。在結構圖中還可以用帶注釋的箭頭表示模組呼叫過程中來回傳遞的資訊。還可用帶實心圓的箭頭表示傳遞的是控制資訊,空心圓箭心表示傳遞的是資料資訊。

(2)詳細設計

詳細設計是為軟體結構圖中的每乙個模組確定實現演算法和區域性資料結構,用某種選定的表達工具表示演算法和資料結構的細節。

常用的過程設計(即詳細設計)工具有以下幾種:

圖形工具:程式流程圖、n-s(方盒圖)、pad(問題分析圖)和hipo(層次圖+輸入/處理/輸出圖)。

**工具:判定表。

語言工具:pdl(偽碼)

3.4 軟體測試

1、軟體測試定義:使用人工或自動手段來執行或測定某個系統的過程,其目的在於檢驗它是否滿足規定的需求或是弄清預期結果與實際結果之間的差別。

軟體測試的目的:盡可能地多發現程式中的錯誤,不能也不可能證明程式沒有錯誤。軟體測試的關鍵是設計測試用例,乙個好的測試用例能找到迄今為止尚未發現的錯誤。

2、軟體測試方法:靜態測試和動態測試。

靜態測試:包括**檢查、靜態結構分析、**質量度量。不實際執行軟體,主要通過人工進行。

動態測試:是基於計算機的測試,主要包括白盒測試方法和黑盒測試方法。

(1)白盒測試

白盒測試方法也稱為結構測試或邏輯驅動測試。它是根據軟體產品的內部工作過程,檢查內部成分,以確認每種內部操作符合設計規格要求。

白盒測試的基本原則:保證所測模組中每一獨立路徑至少執行一次;保證所測模組所有判斷的每一分支至少執行一次;保證所測模組每一迴圈都在邊界條件和一般條件下至少各執行一次;驗證所有內部資料結構的有效性。

*:白盒測試法的測試用例是根據程式的內部邏輯來設計的,主要用軟體的單元測試,主要方法有邏輯覆蓋、基本路徑測試等。

a、邏輯覆蓋。邏輯覆蓋泛指一系列以程式內部的邏輯結構為基礎的測試用例設計技術。通常程式中的邏輯表示有判斷、分支、條件等幾種表示方法。

語句覆蓋:選擇足夠的測試用例,使得程式中每乙個語句至少都能被執行一次。

路徑覆蓋:執行足夠的測試用例,使程式中所有的可能的路徑都至少經歷一次。

判定覆蓋:使設計的測試用例保證程式中每個判斷的每個取值分支(t或f)至少經歷一次。

條件覆蓋:設計的測試用例保證程式中每個判斷的每個條件的可能取值至少執行一次。

判斷-條件覆蓋:設計足夠的測試用例,使判斷中每個條件的所有可能取值至少執行一次,同時每個判斷的所有可能取值分支至少執行一次。

*:邏輯覆蓋的強度依次是:語句覆蓋《路徑覆蓋《判定覆蓋《條件覆蓋《判斷-條件覆蓋。

b、基本路徑測試。其思想和步驟是,根據軟體過程性描述中的控制流程確定程式的環路複雜性度量,用此度量定義基本路徑集合,並由此匯出一組測試用例,對每一條獨立執行路徑進行測試。

(2)黑盒測試

黑盒測試方法也稱為功能測試或資料驅動測試。黑盒測試是對軟體已經實現的功能是否滿足需求進行測試和驗證。

黑盒測試主要診斷功能不對或遺漏、介面錯誤、資料結構或外部資料庫訪問錯誤、效能錯誤、初始化和終止條件錯誤。

黑盒測試不關心程式內部的邏輯,只是根據程式的功能說明來設計測試用例,主要方法有等價類劃分法、邊界值分析法、錯誤推測法等,主要用軟體的確認測試。

3、軟體測試過程一般按4個步驟進行:單元測試、整合測試、確認測試和系統測試。

3.5 程式的除錯

程式除錯的任務是診斷和改正程式中的錯誤,主要在開發階段進行,除錯程式應該由編制源程式的程式設計師來完成。

程式除錯的基本步驟:(1)錯誤定位;(2)糾正錯誤;(3)回歸測試。

軟體的除錯後要進行回歸測試,防止引進新的錯誤。

軟體除錯可分為靜態除錯和動態除錯。靜態除錯主要是指通過人的思維來分析源程式**和排錯,是主要的除錯手段,而動態除錯是輔助靜態除錯。

對軟體主要的除錯方法可以採用:

(1)強行排錯法。

(2)回溯法。

(3)原因排除法。

軟體工程導論知識點

軟體是程式 資料及相關文件的完整集合。其中,程式是能夠完成預定功能和效能的可執行的指令序列 資料是使程式能夠適當地處理資訊的資料結構 文件是開發 使用和維護程式所需要的 資料。開發軟體時,對於提高軟體開發人員工作效率至關重要的是開發程式人員數量。軟體工程中描述軟體生存週期的瀑布型別一般包括計畫 需求...

軟體工程 知識點2019

各單元教學內容及基本要求 第1單元軟體工程概述 1 教學內容 1.1軟體的發展和軟體危機 1.2軟體工程的目標和原則 1.3軟體生命週期及軟體開發過程模型 2 教學要求 1 理解什麼是軟體危機和軟體危機的典型表現。2 理解軟體工程概念 軟體工程層次圖 3 理解軟體過程組成 4 理解軟體開發過程典型模...

軟體工程重要知識點

1.軟體工程的定義 將系統的 規範的 可度量的工程化方法應用於軟體開發 執行和維護的全過程及上述方法的研究。軟體工程包括3個要素,即方法 工具和過程。2.軟體工程原則 抽象 資訊隱藏 模組化 區域性化 一致性 完整性和可驗證性。3.軟體工程開發模型 瀑布型 結構化 原型 物件導向 螺旋型。4.計算機...