重庆大学软件工程导论总结
重慶大學軟件工程導論總結
一、軟件工程概述
1.1軟件以及軟件的特點
軟件 = 程序+數據+文檔
特點:
1.2軟件的分類
按功能分:系統軟件,支撐軟件,應用軟件
按服務對象分:通用軟件,定制軟件
按規模分:小,中,大,超大
按工作方式分:實時軟件,分時軟件,交互軟件,批處理軟件
1.3軟件危機及表現:
軟件危機:泛指軟件在計算機軟件的開發和維護過程中遇到的一系列嚴重的問題。
軟件危機產生的原因:
具體原因:
軟件危機的具體表現:
1.4軟件工程
軟件工程:①將系統化的、嚴格約束的、可量化的方法應用于軟件的開發、運行和維護,即將工程化應用于軟件;②對①中所述方法的研究
三要素:過程、方法、工具
軟件生存周期:就是軟件從產生到報廢或停止使用的過程
階段:
1.5軟件開發模型
1.瀑布模型:將軟件生存周期的各項活動規定為按固定順序而連接的若干工作階段,形如瀑布流水,最終的得到軟件產品。
六項活動:制定計劃、需求分析、軟件設計、程序編寫、軟件測試、運行維護
各個階段都生成說明書
2.快速原型模型:使用快速開發工具,在較短時間拿出原型,讓客戶評價,然后在修改,直到客戶滿意,然后在進行開發。
3.增量模型: = 瀑布模型*n
以瀑布模型為基礎,每次只開發一部分,通過之后開發下一步分,每一次都是相同操作
4.螺旋模型:原型+瀑布---->分四個任務區:制定計劃、風險分析、實施工程、評估
5.噴泉模型
二、軟件需求分析
軟件需求:是指用戶對目標軟件系統在功能、行為、性能、設計約束等方面的期望
主要任務:就是讓用戶和開發者公共明確將要開發的是一個什么樣的系統
兩類任務:
2.1常用的分析方法
步驟:調查研究->分析建模->需求描述->需求驗證
2.2結構化分析方法
定義:用抽象模型的概念,按照軟件內部數據傳遞、變化的關系,運用“抽象-分解”的基本手段,自頂向下逐層分解,直到滿足功能需要的所有細節為止
建模要素:
數據模型->實體關系圖(E-R圖)
主要成分:實體、關系、屬性
功能模型->數據流圖(DFD圖)
主要成分:數據流、數據加工活處理、數據存儲、外部實體
行為模型->轉態轉換圖(STD)
主要成分:時間、轉換、狀態(初態,終態)
2.3數據詞典:
3種數據:
3種方式:
包含信息:名稱、別名或編號、組成或組織結構的描述、類型、長度、取值范圍、何處使用
三、軟件設計
3.1軟件設計方法
3.2軟件設計階段任務
3.3軟件設計原則
3.4軟件設計分類
活動分類:
從活動任務方面:對軟件的需求所進行的
從過程管理方面:
3.5模塊的獨立性
定義:是指軟件系統中每個模塊只涉及軟件要求的具體子功能,而和軟件系統中其他模塊的接口是簡單的。
較強 模塊應具有:
耦合劃分等級:
內聚劃分等級:
啟發式規則:
3.6軟件結構圖
結構圖:主要構成
數據流圖:
流程圖:
盒圖(N-S圖),PAD圖,判定樹,判定表
3.7數據結構設計
3.8人機界面設計
黃金原則:
四、軟件測試
4.1基本概念
軟件測試:是指利用人工或自動的方法執行和評價軟件各個模塊的過程
測試目的:是以最少的人力、物力和時間,找出軟件中潛在的各種錯誤與缺陷,通過改正各種錯誤和缺陷,提高軟件質量
軟件測試基本原則:
軟件測試分分類:
4.2白盒測試
定義:測試者可以看到源代碼,知道軟件的內部結構和內部邏輯,并根據內部結構找到合適測試用例,以檢驗程序中的每條或關鍵元素是否都能按要求正確工作
測試目標:是通過測試盡可能提高程序內部邏輯的覆蓋程度,已發現可能的潛在程序語句、判定、條件以及路徑的肯錯誤。
測試方法:邏輯覆蓋法、基本路徑法
邏輯覆蓋法:
基本路徑法:
4.3黑盒測試
定義:把被測程序看做黑盒子,在不考慮軟件的內部邏輯和內部構造,測試者只需知道軟件的輸入輸出之間的關系或程序功能的情況哎,檢查程序是否符合他的功能說明。
主要試圖發現:
方法:
4.4軟件測試基本過程
單元測試:->大量使用白盒測試法
- 目的:發現模塊的內部錯誤
- 測試重點:模塊接口、局部數據結構、重要執行路徑、錯誤處理、邊界條件
集成測試:->較多黑盒測試
-
目的:用戶發現模塊組裝中肯出現的問題,最終構成一個符合要求的系統
-
方法:非建增式測試法->全組測試
? 建增式測試法->一個加一個測試:自頂向下,自底向上
確認測試:->通常采用黑盒測試法
- 目的:檢查軟件的功能與性能是否滿足軟件需求規格說明書確定的指標相符合
- 包括:有效性測試、軟件配置檢查
系統測試:
- 目的:把軟件、硬件和環境連接咋一起,在實際環境中運行
- 分為:功能、安全、恢復、壓力、容量、文檔測試
- 參加人員:系統測試專家、用戶代表、軟件系統分析員或設計員
驗收測試:
- 目的:確保軟件就緒
- α測試:是指在開發者現場進行,并且開發者對用戶指導
- β測試:是由軟件用戶在實際使用環境下測試
4.5軟件調試
定義和目的:軟甲調試數確定軟件的額錯誤原因和位置,并且糾正錯誤的過程
方法:硬性糾錯法、跟蹤法、演繹法、歸納法、試探法、對分查找法
回歸測試:
- 定義:是指對軟件系統被修改或擴充后重新進行的測試
- 目的:為了保證軟件修改后,沒有引入新的錯誤而反復進行的測試
五、編碼及實現
編碼任務:是為每個模塊編寫程序,即是將詳細設計的結果轉化為計算機語言。
5.1選擇編程語言需要考慮的因素
5.2編碼風格
六、軟件維護
定義:就是軟件運行維護階段,為了你改正軟件錯誤,或為了滿足客戶新的應用需求,而對軟件做出的修改,改錯或者進化的過程。
維護類型:
副作用:
實施過程:
七、面向對象
7.1基本概念
對象:
特點:
類:一組對象(相似)
實例:一個具體的對象
消息:接受消息的對象+消息選擇符+{變元}
方法:類中定義的數據服務
屬性:類中定義的數據
封裝:把數據和實現操作的代碼集中放在對象內部
繼承:子類自動共享父類中定義的數據和方法的機制
多態性:子類對象可以想父類一樣使用
重載:同一個作用域的若干參數特征不同函數可以使用同一個名字
7.2面向對象建模
對象模型:表示靜態的,結構化的“數據”性質
通常采用統一建模語言MUL所提供的類圖
動態模型:表示瞬時的,行為的系統的“控制”性質
UML狀態圖
功能模型:表示動態的系統的“功能”性質,指明系統做什么
數據流圖
7.3UML
定義:統一建模語言,一種標準的圖形化建模語言->用于軟件的分析與設計
作用:
用例圖:是對系統提供的功能性描述
? 應用于需求分析階段
對象圖:類圖的實例
轉態圖:描述一個特定對象所有可能的狀態以及引起狀態轉化的事件
順序圖:描述對象之間動態交互關系,著重表現對象之間消息傳遞的時間順序
活動圖:目的就是描述對象動作及動作的結果——對象的狀態變化(可以用泳道)
協作圖、構件圖、部署圖
八、敏捷開發
敏捷開發是一種以人為核心、迭代、循序漸進的開發方法
敏捷宣言:
總結
以上是生活随笔為你收集整理的重庆大学软件工程导论总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C# 使用Microsoft.Repor
- 下一篇: android 百度输入法表情,百度输入