日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

重庆大学软件工程导论总结

發布時間:2024/8/1 编程问答 62 豆豆
生活随笔 收集整理的這篇文章主要介紹了 重庆大学软件工程导论总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

重慶大學軟件工程導論總結

一、軟件工程概述

1.1軟件以及軟件的特點

軟件 = 程序+數據+文檔

特點:

  • 一種邏輯實體,不具有物理實體,具有抽象性
  • 與硬件生產不同,是人類智力勞動的產物
  • 軟件在運行與使用過程中不存在磨損老化
  • 手工開發模式
  • 開發與運行必須依附于特定的計算機系統
  • 1.2軟件的分類

    按功能分:系統軟件,支撐軟件,應用軟件

    按服務對象分:通用軟件,定制軟件

    按規模分:小,中,大,超大

    按工作方式分:實時軟件,分時軟件,交互軟件,批處理軟件

    1.3軟件危機及表現:

    軟件危機:泛指軟件在計算機軟件的開發和維護過程中遇到的一系列嚴重的問題。

    軟件危機產生的原因:

  • 高級語言的出現
  • 操作系統的發展引起了計算機應用方式的變化
  • 大量 的數據處理導致第一代數據庫管理系統的誕生
  • 具體原因:

  • 用戶需求不明確
  • 缺乏正確的理論指導
  • 軟件開發規模越來越大
  • 軟件開發的復雜度越來越高
  • 軟件危機的具體表現:

  • 軟件開發進度難以預測
  • 軟件的開發成本難以控制
  • 開發的軟件產品不能滿足用戶的需求
  • 軟件產品質量無法保證
  • 軟件產品難以維護
  • 軟件缺乏適當的文檔資料
  • 1.4軟件工程

    軟件工程:①將系統化的、嚴格約束的、可量化的方法應用于軟件的開發、運行和維護,即將工程化應用于軟件;②對①中所述方法的研究

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

    軟件生存周期:就是軟件從產生到報廢或停止使用的過程

    階段

  • 軟件計劃
  • 需求分析
  • 軟件設計
  • 編碼
  • 軟件測試
  • 運行與維護
  • 退役
  • 1.5軟件開發模型

    1.瀑布模型:將軟件生存周期的各項活動規定為按固定順序而連接的若干工作階段,形如瀑布流水,最終的得到軟件產品。

    六項活動:制定計劃、需求分析、軟件設計、程序編寫、軟件測試、運行維護

    各個階段都生成說明書

    2.快速原型模型:使用快速開發工具,在較短時間拿出原型,讓客戶評價,然后在修改,直到客戶滿意,然后在進行開發。

    3.增量模型: = 瀑布模型*n

    以瀑布模型為基礎,每次只開發一部分,通過之后開發下一步分,每一次都是相同操作

    4.螺旋模型:原型+瀑布---->分四個任務區:制定計劃、風險分析、實施工程、評估

    5.噴泉模型

    二、軟件需求分析

    軟件需求:是指用戶對目標軟件系統在功能、行為、性能、設計約束等方面的期望

    主要任務:就是讓用戶和開發者公共明確將要開發的是一個什么樣的系統

    兩類任務

  • 分析和建模
  • 描述和表達
  • 2.1常用的分析方法

  • 面向數據流的結構化分析方法(SA)
  • 面向數據結構的Jackson方法
  • 邏輯構造法(LCP)
  • 面向對象的方法(ODA)
  • 步驟:調查研究->分析建模->需求描述->需求驗證

    2.2結構化分析方法

    定義:用抽象模型的概念,按照軟件內部數據傳遞、變化的關系,運用“抽象-分解”的基本手段,自頂向下逐層分解,直到滿足功能需要的所有細節為止

    建模要素

  • 數據模型->實體關系圖(E-R圖)

    主要成分:實體、關系、屬性

  • 功能模型->數據流圖(DFD圖)

    主要成分:數據流、數據加工活處理、數據存儲、外部實體

  • 行為模型->轉態轉換圖(STD)

    主要成分:時間、轉換、狀態(初態,終態)

  • 2.3數據詞典:

    3種數據:

  • 只含有一個數據的數據項
  • 由多個數據項組成的數據流
  • 數據數據文件或數據存儲
  • 3種方式:

  • 順序
  • 選擇
  • 重復
  • 包含信息:名稱、別名或編號、組成或組織結構的描述、類型、長度、取值范圍、何處使用

    三、軟件設計

    3.1軟件設計方法

  • 系統結構設計
  • 過程設計
  • 數據結構設計
  • 3.2軟件設計階段任務

  • 劃分模塊、確定軟件結構
  • 確定系統的數據結構
  • 設計用戶界面
  • 3.3軟件設計原則

  • 模塊化:把每個模塊劃分成可獨立命名具有獨立訪問的模塊,每個模塊完成一個問題
  • 有效模塊系統的能力標準
  • 可分解性
  • 可組裝性
  • 可理解性
  • 連續性
  • 保護性
  • 抽象
  • 逐步求精
  • 信息隱藏
  • 3.4軟件設計分類

    活動分類:

    從活動任務方面:對軟件的需求所進行的

  • 數據設計
  • 體系結構設計
  • 接口設計
  • 構件設計
  • 部署設計
  • 從過程管理方面

  • 詳細設計:
  • 過程設計
  • 數據設計
  • 接口設計
  • 總體設計(概要設計):
  • 目標系統的總體框架
  • 每個模塊和接口的之間的調用關系
  • 數據庫、數據定義和數據結構
  • 3.5模塊的獨立性

    定義:是指軟件系統中每個模塊只涉及軟件要求的具體子功能,而和軟件系統中其他模塊的接口是簡單的。

    較強 模塊應具有:

  • 高內聚
  • 低耦合
  • 耦合劃分等級:

  • 低耦合
  • 無直接耦合
  • 數據結構
  • 標記耦合
  • 中耦合:控制耦合
  • 較強耦合:外部耦合,公共耦合
  • 強耦合:內容
  • 內聚劃分等級

  • 低內聚:偶然,邏輯,時間
  • 中內聚:過程、通信
  • 高內聚:順序、功能
  • 啟發式規則:

  • 深度:表示軟件結構中從頂層到最底層的層數0->n
  • 寬度:表示控制總分布
  • 扇出:一個模塊的直接下屬模塊
  • 扇入:一個模塊的直接上屬模塊
  • 3.6軟件結構圖

    結構圖:主要構成

  • 模塊
  • 調用
  • 數據
  • 數據流圖

  • 變化型數據流->變化分析 輸入-處理-輸出
  • 事務型數據流->事務分析
  • 流程圖

  • 順序型
  • 選擇型
  • 先判斷循環
  • 后判斷循環
  • 多分支選擇
  • 盒圖(N-S圖),PAD圖,判定樹,判定表

    3.7數據結構設計

  • 概念結構設計
  • 邏輯結構設計
  • 物理結構設計
  • 3.8人機界面設計

    黃金原則

  • 置用戶與控制下
  • 減少用戶的記憶負擔
  • 保持界面一致
  • 四、軟件測試

    4.1基本概念

    軟件測試:是指利用人工或自動的方法執行和評價軟件各個模塊的過程

    測試目的:是以最少的人力、物力和時間,找出軟件中潛在的各種錯誤與缺陷,通過改正各種錯誤和缺陷,提高軟件質量

    軟件測試基本原則

  • 窮舉測試不可行
  • 測試是由風險的
  • 軟件測試只能證明軟件缺陷的存在
  • 軟件中存在的錯誤數與已知的錯誤成正比
  • 測試用例包括:非法輸入與合法輸入
  • 注意測試中的群集現象
  • 妥善保存測試計劃、測試用例
  • 盡早開始測試工作,并貫穿整體開發過程
  • 軟件測試分分類:

  • 根據開發階段不同:單元測試、集成測試、確認測試、系統測試、驗收測試
  • 根據實施組織不同:開發方測試、用戶測試、第三方測試
  • 根據技術不同:白盒測試、黑盒測試、灰盒測試
  • 根據測試內容不同:符合性、驗收、易用性、兼容性、可靠性、安全性、性能、壓力
  • 根據程序是否被執行:靜態測試、動態測試(常用黑盒、白盒)
  • 4.2白盒測試

    定義:測試者可以看到源代碼,知道軟件的內部結構和內部邏輯,并根據內部結構找到合適測試用例,以檢驗程序中的每條或關鍵元素是否都能按要求正確工作

    測試目標:是通過測試盡可能提高程序內部邏輯的覆蓋程度,已發現可能的潛在程序語句、判定、條件以及路徑的肯錯誤。

    測試方法:邏輯覆蓋法、基本路徑法

    邏輯覆蓋法

  • 定義:是通過對程序邏輯結構的遍歷實現程序覆蓋
  • 可分為:語句覆蓋、條件覆蓋、判定覆蓋和條件覆蓋 弱->強
  • 基本路徑法

  • 定義:是在程序控制流圖的基礎上,通過分析構造的環形復雜度,導出其基本可行路徑集合,從而設計測試用例的方法
  • 環形復雜度計算:可以確定獨立路徑數->測試用例數
  • V(G) = E-N+2 E邊數 N節點數
  • 判定節點數+1
  • 控制流圖的區域數
  • 4.3黑盒測試

    定義:把被測程序看做黑盒子,在不考慮軟件的內部邏輯和內部構造,測試者只需知道軟件的輸入輸出之間的關系或程序功能的情況哎,檢查程序是否符合他的功能說明。

    主要試圖發現

  • 功能性錯誤或遺漏
  • 性能錯誤
  • 初始化錯誤
  • 界面錯誤
  • 數據結構或外部數據庫訪問錯誤
  • 方法

  • 等價劃分法:有效等價類,無效等價類
  • 邊界值分析法: 步驟:確定邊界->選取測試程序
  • 錯誤推測法:列舉出程序中可能有的錯誤和容易發生的錯誤,并根據他們選擇測試用例
  • 4.4軟件測試基本過程

    單元測試:->大量使用白盒測試法

    • 目的:發現模塊的內部錯誤
    • 測試重點:模塊接口、局部數據結構、重要執行路徑、錯誤處理、邊界條件

    集成測試:->較多黑盒測試

    • 目的:用戶發現模塊組裝中肯出現的問題,最終構成一個符合要求的系統

    • 方法:非建增式測試法->全組測試

      ? 建增式測試法->一個加一個測試:自頂向下,自底向上

    確認測試:->通常采用黑盒測試法

    • 目的:檢查軟件的功能與性能是否滿足軟件需求規格說明書確定的指標相符合
    • 包括:有效性測試、軟件配置檢查

    系統測試:

    • 目的:把軟件、硬件和環境連接咋一起,在實際環境中運行
    • 分為:功能、安全、恢復、壓力、容量、文檔測試
    • 參加人員:系統測試專家、用戶代表、軟件系統分析員或設計員

    驗收測試

    • 目的:確保軟件就緒
    • α測試:是指在開發者現場進行,并且開發者對用戶指導
    • β測試:是由軟件用戶在實際使用環境下測試

    4.5軟件調試

    定義和目的:軟甲調試數確定軟件的額錯誤原因和位置,并且糾正錯誤的過程

    方法:硬性糾錯法、跟蹤法、演繹法、歸納法、試探法、對分查找法

    回歸測試

    • 定義:是指對軟件系統被修改或擴充后重新進行的測試
    • 目的:為了保證軟件修改后,沒有引入新的錯誤而反復進行的測試

    五、編碼及實現

    編碼任務:是為每個模塊編寫程序,即是將詳細設計的結果轉化為計算機語言。

    5.1選擇編程語言需要考慮的因素

  • 待開發系統的應用領域,即項目的應用范圍
  • 用戶要求
  • 開發人員喜好和能力
  • 系統的可移植性要求
  • 算法和數據結構的復雜性
  • 平臺支持
  • 5.2編碼風格

  • 程序內部文檔
  • 數據說明
  • 語句構造
  • 輸入輸出
  • 效率
  • 六、軟件維護

    定義:就是軟件運行維護階段,為了你改正軟件錯誤,或為了滿足客戶新的應用需求,而對軟件做出的修改,改錯或者進化的過程。

    維護類型

  • 改正性維護
  • 適應性維護
  • 完善性維護
  • 預防性維護
  • 副作用

  • 修改代碼副作用
  • 修改數據副作用
  • 修改文檔副作用
  • 實施過程

  • 首先確定維護類型
  • 對修改性維護從評價錯誤的嚴重性開始
  • 適應性和完善性維護,如果另一個開發工作一樣,建立每個請求優先權
  • 實施維護任務
  • 七、面向對象

    7.1基本概念

    對象:

  • 具有唯一標識的名字
  • 對外提供一組服務
  • 數據表示對象狀態
  • 特點:

  • 以數據為中心
  • 主動性
  • 實現數據了封裝性
  • 本質上具有并行性
  • 模塊獨立性好
  • :一組對象(相似)

    實例:一個具體的對象

    消息:接受消息的對象+消息選擇符+{變元}

    方法:類中定義的數據服務

    屬性:類中定義的數據

    封裝:把數據和實現操作的代碼集中放在對象內部

    繼承:子類自動共享父類中定義的數據和方法的機制

    多態性:子類對象可以想父類一樣使用

    重載:同一個作用域的若干參數特征不同函數可以使用同一個名字

    7.2面向對象建模

    對象模型:表示靜態的,結構化的“數據”性質

    通常采用統一建模語言MUL所提供的類圖

    動態模型:表示瞬時的,行為的系統的“控制”性質

    UML狀態圖

    功能模型:表示動態的系統的“功能”性質,指明系統做什么

    數據流圖

    7.3UML

    定義:統一建模語言,一種標準的圖形化建模語言->用于軟件的分析與設計

    作用

  • 適用于軟件開發的周期的每一個階段
  • 適用于面向對象的各種建模
  • 不涉及編程,與平臺無關
  • 用例圖:是對系統提供的功能性描述

    ? 應用于需求分析階段

    對象圖:類圖的實例

    轉態圖:描述一個特定對象所有可能的狀態以及引起狀態轉化的事件

    順序圖:描述對象之間動態交互關系,著重表現對象之間消息傳遞的時間順序

    活動圖:目的就是描述對象動作及動作的結果——對象的狀態變化(可以用泳道)

    協作圖、構件圖、部署圖

    八、敏捷開發

    敏捷開發是一種以人為核心、迭代、循序漸進的開發方法

    敏捷宣言:

    總結

    以上是生活随笔為你收集整理的重庆大学软件工程导论总结的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。