軟件工程 考試重點

結構化分析

考慮數據和處理的需求分析方法,稱為結構分析方法(SA)

結構化分析基于 分解、抽象 的基本思想

分解:對于復雜的系統,為將復雜度降低到可以掌握的程度,可以把大問題分解為若干個小問題,然后分別解決

最頂層:自頂向下 逐層分解

表示軟件系統最本質的屬性的方法:抽象

結構化分析是面向數據流的需求分析方法,數據作為獨立實體轉換,數據流定義了數據的屬性和關系,操作數據的處理建模表明當數據在系統流動時處理如何轉換數據。

結構化分析的基本步驟:
1)建立當前系統的“具體模型”
2)抽象出當前系統的邏輯模型
3)建立目標系統的邏輯模型
4)為了對目標系統進行完整的描述,還需要考慮人機界面和其他一些問題

結構化分析模型的核心:數據字典

”數據流圖“指出當數據在軟件系統中移動時怎樣被變換,并描述變換數據流的功能和子功能,用于功能建模
”實體-關系圖“(E-R圖)描繪數據對象之間的關系,用于數據建模
”狀態轉換圖“指明了作為外部事件結果的系統行為,用于行為建模

數據流圖的表示符號:
1)外部實體
2)數據流
3)數據變換
4)數據存儲

環境圖(系統頂層數據流圖 / 0層數據流圖),僅包含一個數據處理過程-要開發的目標系統
環境圖的作用:確定系統在環境中的位置,通過確定系統的輸入、輸出與外部實體的關系確定邊界
基本思想:自頂向下、從外到內、逐層分解

數據流圖的導出是 逐步求精 的過程

數據建模思想:在較高的抽象層次(概念層)上對數據庫結構進行建模
用實體關系圖表示

E-R圖的三個基本概念概括數據的基本結構:實體、關系、屬性
實體:矩形框
屬性:橢圓形
實體與屬性用 無向邊 連接,實體由若干個屬性組成
關系:菱形
E-R圖不具有唯一性

狀態轉換圖:描述系統對內部 / 外部事件響應的行為模型
適合描述實時系統,這類系統大多由外部環境的激勵而驅動

狀態是可以被觀察的系統行為模型
初態:每張只有一個
終態:可沒有,可多個

狀態變遷由事件觸發

數據字典以系統化的方式定義在分析模型中出現的數據對象及控制信息的特性

最底層數據流圖的數據處理 / 基本加工 / 原子加工,對每一個基本加工都須進一步說明,稱為加工規格說明
主要表達”做什么“,而不是”怎么做“
用結構化語言(PDL / 偽代碼)、判定表、判定樹 來表述

結構化設計

結構化軟件設計的任務從軟件需求規格說明書出發,設計整體結構,形成具體設計方案,解決”怎么做“。

概要設計:將軟件需求轉化為數據結構和系統結構
詳細設計:也稱過程設計

結構化設計:面向數據流、面向數據結構

面向數據流:概要設計階段
數據流:變換型、事務型
變換:將輸入數據處理后轉變為另外的輸出數據
事務:非數據變換的處理

通過變換將數據流圖映射為變換結構

面向數據結構:Jackson、Warnier
Jackson把數據結構分為:順序、選擇、循環

概要設計中的接口設計用于子系統 / 模塊之間或內部系統和外部系統進行各種交互

數據設計將需求分析階段定義的數據對象(E-R圖、數據字典)轉換為設計階段的數據結構和數據庫

流程圖:數據、程序、系統流程圖、程序網格圖、系統資源圖
程序流程圖的5中基本的控制結構:順序、選擇型、先判定、后判定型循環、多分支選擇型

N-S圖:又稱盒圖

PAD圖:又稱問題分析圖

面向對象分析

面向對象分析以用例模型為基礎
用例模型;用例圖+相關文字描述
用例:系統中的一個功能單元,描述參與者與系統之間的一次交互,常用來收集用戶需求
可把參與者執行的每一個系統功能都看做一個用例

目標系統類:邊界類、控制類、實體類

對象或類之間的關系:依賴、關聯、聚合、組合、泛化、實現
1)依賴:”非結構化“,短暫,一個對象會影響另一個對象
2)關聯:”結構化“,對象之間的連接
3)聚合和組合:特殊的關聯,強調整體和部分之間的從屬性,組合是聚合的一種,組合的整體和部分具有很強的歸屬關系和一致的生命周期
4)泛化和類間的繼承相似
5)實現針對類與接口的關系

面向對象分析的基礎:對象模型
對象模型:問題域中對象+相互關系

面向對象建模:描述系統數據結構對象模型、描述系統控制結構的動態模型、描述系統功能的功能模型

對象和關系的生命周期用動態模型來描述

功能模型:數據之間的依賴關系+數據處理功能,由一組數據流圖組成

用例之間的關系:擴展、包含、泛化

面向對象設計

類中封裝 屬性+方法

面向對象分析到面向對象設計是平滑的過渡

面向對象設計原則:
1)模塊化
2)抽象化
3)信息隱藏
4)低耦合
5)高內聚
6)復用性

動態模型:若干張狀態圖組成
每張狀態圖描繪一個對象的生命周期

狀態圖中狀態轉換=功能模型中數據流圖

黑盒測試

軟件測試:靜態、動態
靜態測試:審查、走查
動態:黑盒
靜態:白盒

黑盒測試:將軟件系統看作黑盒子,不關心盒子的內部結構和特性,只關注軟件的輸入數據和輸出結果
大的功能模塊
等價類劃分法、邊界值分析法、錯誤推測法、因果圖法、正交實驗設計法
等價類劃分法:有效、無效等價類
邊界值分析法:選擇等價類邊界的測試用例
錯誤推測法:直覺+經驗
因果圖法:輸入條件的各種組合方式、各個輸入條件之間的相互制約關系

白盒測試

又稱玻璃盒測試,將被觀測程序看作透明盒子,關注軟件產品的內部細節、邏輯結構
小的構件
邏輯覆蓋測試方法、基本路徑測試

代碼檢查法:桌面檢查、代碼審查、走查

靜態結構分析法:以圖的形式表現程序的內部i結構

程序代碼結構方式是白盒測試的主要依據

程序插樁技術: 插入打印語句,通過打印有關信息了解程序執行時的動態特性。

邏輯覆蓋法:語句、分支、條件、分支-條件、條件組合、路徑覆蓋
語句覆蓋:設計若干測試樣例,運行被測試程序,每個可執行程序至少執行一次
分支覆蓋:每個判斷的取真、取假分支至少執行一次
條件覆蓋:每個判斷的所有邏輯條件的每種可能取值至少執行一次
分支-條件覆蓋:同時滿足分支覆蓋和條件覆蓋的要求
條件組合覆蓋:每個判斷語句的所有邏輯條件的可能取值組合至少執行一次
路徑覆蓋:覆蓋被測試程序中所有可能的路徑

路徑覆蓋的覆蓋率最高,語句覆蓋的覆蓋率最低

基本路徑法:在程序控制流程圖的基礎上,通過分析控制構造的環路復雜度,導出基本可執行程序的路徑集合,從而設計測試用例的方法
設計出的用例測試用例在每條可執行語句中至少執行一次
用軟件的控制流圖表達

環路復雜度為程序邏輯復雜度性提供定量測度的軟件度量

白盒測試方法:
先靜后動,先進行代碼檢查和靜態結構分析,在進行覆蓋檢查
利用靜態分析的結果作引導,通過代碼檢查和動態測試的方法對靜態分析的結果進一步確認
覆蓋測試是白盒測試的重點,用基本路徑測試法達到語句覆蓋標準,對于軟件的重點模塊,應使用多種軟件覆蓋標準衡量測試的覆蓋度。
單元測試:代碼檢查、覆蓋測試
集成測試:靜態結構分析
系統測試:根據黑盒測試的結果,采用相應的白盒測試方法

白盒測試成本比黑盒測試高

灰盒測試介于白盒測試和黑盒測試之間

軟件測試步驟:
單元測試、集成測試、系統測試、驗收測試

單元測試是軟件測試的基礎
側重模塊的內部處理邏輯、數據結構,利用構件級設計描述作為指南,測試重要的控制路徑以發現模塊內的錯誤
測試用例設計與復審設計結合,根據設計規則選取數據

集成測試:多個單元的集合,單元組合成模塊,模塊聚合成子系統 / 系統
體系結構設計、模塊設計、接口設計、集成測試策略分析
非增量式集成測試、增量式集成測試
非增量式集成測試:”一步到位“
增量式集成測試:自頂向下、自底向上

最后的測試是:α、β測試
α測試:開發人員+測試人員
β測試:用戶,最主觀的

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/209429.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/209429.shtml
英文地址,請注明出處:http://en.pswp.cn/news/209429.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【go-zero】go-zero使用ent框架 如何使用源生sql完成查詢

背景 本篇教程我們采用的是go-zero的快速腳手架工具 simple-admin 框架的開發 github地址:https://github.com/suyuan32/simple-admin-core 因為框架推薦使用Ent 這篇教程我們則對Ent的基本使用的幾種形式進行一個總結 一、開啟ent的源生sql 1、simple-admin生成rpc 【go-…

QT 中 線程池 (備查)

QRunnable類 API 1)在Qt中使用線程池需要先創建任務,添加到線程池中的每一個任務都需要是一個 QRunnable 類型,因此在程序中需要創建子類繼承 QRunnable 這個類。 2)然后重寫 run() 方法,在這個函數中編寫要在線程池中…

RabbitMQ使用指南

介紹主要特點常用插件使用RabbitMQ的插件常用插件列表 應用場景Kafka與RabbitMq的區別主要優缺點安裝步驟插件安裝步驟 使用RabbitMqJava代碼示例拓展 介紹 RabbitMQ是由Erlang語言開發的,基于AMQP(高級消息隊列協議)協議實現的開源消息代理…

元宇宙紅色展廳VR虛擬展館提高受訓者的參與感

生活在和平年代的新一代青少年,可能對革命先烈英勇事跡難以有很深的體會,無法切實感受到中國共產黨無畏犧牲、誓死保家衛國的紅色精神,因此借助VR虛擬現實制作技術,讓參觀者們走近革命先烈中,感受老一輩無產階級革命家…

搜索引擎和網絡瀏覽器之間的區別

術語“搜索引擎”和“網絡瀏覽器”與互聯網有關。搜索引擎基本上是用于通過 Internet 搜索信息的工具,而 Web 瀏覽器是用于加載網頁等 HTML 文件的應用軟件。 閱讀本文以了解有關搜索引擎和網絡瀏覽器以及它們之間的區別的更多信息。 什么是搜索引擎? …

TrustZone之SMC異常

作為支持兩個安全狀態的一部分,該架構包括了Secure Monitor Call(SMC)指令。執行SMC會引發Secure Monitor Call異常,該異常目標是EL3。 通常,SMC用于請求服務,可以是來自駐留在EL3中的固件,也可…

微信小程序適配方案:rpx(responsive pixel響應式像素單位)

小程序適配單位:rpx 規定任何屏幕下寬度為750rpx 小程序會根據屏幕的寬度自動計算rpx值的大小 Iphone6下:1rpx 1物理像素 0.5css 小程序編譯后,rpx會做一次px換算,換算是以375個物理像素為基準,也就是在一個寬度…

迭代器失效及解決辦法

當使用迭代器遍歷容器并刪除元素時&#xff0c;迭代器可能會失效。 對于vector來說&#xff0c;如果使用普通迭代器&#xff08;例如std::vector<int>::iterator&#xff09;進行遍歷和刪除操作&#xff0c;當你刪除一個元素后&#xff0c;后面的元素會向前移動填補空缺…

服務器如何保證數據安全_Maizyun

服務器如何保證數據安全 在當今的數字化時代&#xff0c;數據安全已經成為企業和社會組織必須面對的重要問題。服務器作為存儲和處理大量數據的核心組件&#xff0c;必須采取有效的措施來確保數據的安全。本文將探討服務器如何保證數據安全。 一、訪問控制和身份認證 訪問控…

nvm,node,npm,yarn相關安裝報錯問題記錄

問題一&#xff1a; yarn : 無法加載文件 D:\jsPackage\nodejs\node_global\yarn.ps1&#xff0c;因為在此系統上禁止運行腳本。 解決&#xff1a; 步驟1,powerShell以管理員運行后&#xff0c;輸入命令: get-ExecutionPolicy 查看權限, 會看到它的返回值是 Restricted , 意…

計算一組x和y(一維數組)

輸入30個整數a1,a2,a3,…,a30&#xff0c;計算所有的x與y。已知&#xff1a; 輸入格式: 30個整數 輸出格式: 計算得到的x1, x2,.......,x10 計算得到的y1, y2,.......,y10 所有輸出精確到小數點后3位。 注意&#xff1a; 1、輸出的每個“”左右各有一個空格&#xff0c;輸出…

堅鵬:興業銀行EAST5.0政策解讀及數據質量提升方案培訓

興業銀行股份有限公司&#xff08;簡稱“興業銀行”&#xff09;成立于1988年8月&#xff0c;2022年總資產9.27萬億元&#xff0c;是經國務院、中國人民銀行批準成立的首批股份制商業銀行之一&#xff0c;總行設在福州市。現已發展成為橫跨境內外&#xff0c;線上線下結合&…

12.8 作業

1&#xff0c; 使用手動連接&#xff0c;將登錄框中的取消按鈕使用qt4版本的連接到自定義的槽函數中&#xff0c;在自定義的槽函數中調用關閉函數 將登錄按鈕使用qt5版本的連接到自定義的槽函數中&#xff0c;在槽函數中判斷ui界面上輸入的賬號是否為"admin"&#…

什么是git pr

“Git PR” 指的是 Git 中的 Pull Request&#xff0c;是一種協作開發的工作流程。Pull Request 提供了一種將代碼從一個分支&#xff08;通常是開發者個人的分支&#xff09;合并到另一個分支&#xff08;通常是主分支&#xff09;的機制&#xff0c;并在合并前進行代碼審查和…

FLStudio中文2024中文最新漢化安裝包下載

FLStudio中文21最新版本以其使用速度而聞名&#xff0c;是一個高度復雜的音樂制作環境。FL Studio免費&#xff0c;聯合國音序器音頻和MIDI每個復合編輯都是音樂。現代的DAW是一種非凡的野獸。首先&#xff0c;它在很大程度上把自己放在了(幾乎)每個人記錄過程的核心。其次&…

探索 SNMPv3 魔法:armbian系統安裝snmp服務并通過SNMPV3進行連接控制

文章目錄 說明SNMP服務的安裝本機連接SNMPV3操作MIB Browser連接SNMPV3問題總結密碼過短權限配置錯誤&#xff0c;導致OID不存在 說明 工具 建議嘗試專業版ireasoning MIB brower&#xff0c;因為只有專業版支持SNMP v3的連接。當然&#xff0c;也可以嘗試其他SNMP客戶端工具 …

[足式機器人]Part4 南科大高等機器人控制課 Ch03 Operator View of Rigid-Body Transformation

本文僅供學習使用 本文參考&#xff1a; B站&#xff1a;CLEAR_LAB 筆者帶更新-運動學 課程主講教師&#xff1a; Prof. Wei Zhang 南科大高等機器人控制課 Ch03 Operator View of Rigid-Body Transformation 1. Rotation Operation via Differential Equation1.1 Skew Symmetr…

Java第21章網絡通信

網絡程序設計基礎 網絡程序設計編寫的是與其他計算機進行通信的程序。Java 已經將網絡程序所需要的元素封 裝成不同的類&#xff0c;用戶只要創建這些類的對象&#xff0c;使用相應的方法&#xff0c;即使不具備有關的網絡支持&#xff0c;也可 以編寫出高質量的網絡…

kennard-stone算法實現樣本集劃分(ks算法)

目錄 一、 Kennard-Stone算法原理&#xff08;KS算法&#xff09; 二、Kennard-Stone算法作用 三、代碼 四、對選出來的train樣本使用T-SNE算法進行繪制 五、參考鏈接 一、 Kennard-Stone算法原理&#xff08;KS算法&#xff09; KS算法原理&#xff1a;把所有的樣本都看…

測試學習筆記1:@SpringbootTest測試注解詳解

SpringBootTest是一個用于在springboot應用程序中啟動完整應用的測試環境注解。它主要用于集成測試&#xff0c;可以啟動一個嵌入式的數據庫&#xff0c;加載完整的spring上下文&#xff0c;并自動裝配測試類的ApplicationContext。 以下是SpringBootTest的關鍵特性&#xff1a…