1. 程式人生 > >軟體工程章節總結

軟體工程章節總結

第一章 軟體工程概述

1. 軟體的特點:1)無形的2)邏輯思維、智慧活動和技術水平是生產軟體產品的關鍵3)不會老化4)依賴於特定的計算機系統環境5)可複用性

2. 按功能不同分為:系統軟體、支撐軟體、應用軟體。按服務物件不同分為通用軟體和定製軟體

3. 軟體危機:落後的軟體生產方式無法滿足迅速增長的計算機軟體需求,從而導致軟體開發與維護過程中出現一系列嚴重問題的現象。表現:1)開發的軟體不能完全滿足使用者的需求2)軟體產品的質量難以得到保證3)軟體的開發週期、經費難以估計4)隨著技術更新和使用者需求的擴大,以往的軟體往往難以適應環境的變換5)軟體文件不完備,並且存在軟體的文件內容與軟體產品不符的情況。

4. 軟體危機原因:1)複雜的工程,要有科學的工程化思想2)沒有完善的質量保證體系3)軟體文件的重要性沒有得到軟體開發人員和使用者的重視4)從事軟體開發的專業人員對這個產業認識不充分,缺乏經驗5)軟體獨有的特點也給軟體的開發與維護帶來困難

5. 軟體工程:為了經濟的獲取可靠的和能在實際機器上高效執行的軟體而建立和使用的健全的工程規則。

6. 軟體工程的主要目標:1)使成本能夠控制在預計的合理範圍2)使功能和效能能滿足使用者需求3)提高軟體產品的質量4)提高可靠性5)使易於移植、維護、升級和使用6)使開發週期能夠控制在預計的合理時間內

7. 瀑布模型:1)線性的軟體開發模型,回溯性差。只有一個階段的活動完成後,才會進入下一個階段2)基於里程碑的階段過程模型,有益於發現產品缺陷3)強調開發過程的階段性,每個階段完成特定的任務

8. 增量模型:將待開發的軟體系統模組化和元件化。優點:1)可以分批的提交軟體產品,使使用者及時瞭解軟體專案的進展2)以元件為單位進行開發,降低軟體開發的風險3)開發順序靈活。缺點:如果待開發的系統很難被模組化,將給增量開發帶來很多麻煩

9. 螺旋模型:適用於風險較大的大型軟體專案的開發。優點:將風險分析擴散到各個階段中,大幅度降低了軟體開發的風險。缺點:控制和管理較為複雜,可操作性不強,對專案人員的要求高。

第二章 可行性研究及需求分析

1. 可行性研究的內容:1)技術可行性2)經濟可行性3)社會可行性

2. 可行性研究的步驟:1)確定系統目標2)分析研究正在執行的系統3)設計新系統的高層邏輯模型4)提出可行的解決方案並對其進行評估和比較5)選擇合適的解決方案6)撰寫可行性研究報告

3. 需求分析的步驟:1)獲取需求,識別問題2)分析需求,建立目標系統的邏輯模型3)將需求文件化4)需求驗證

4. 結構化需求分析的工具:資料流圖、資料字典、E-R圖

5. 面向物件的基本概念:

1) 物件:可以是客觀存在的事物,也可以是概念化的實體,它由一組屬性和操作組成。

2) 類:對物件的抽像,是對具有相同屬性和相同操作的一組想死物件的定義。

3) 封裝:把物件的屬性和操作結合在一起,組成一個獨立的單元。

4) 繼承:表示類之間的層次關係,它使得某類物件可以自動擁有另外一個或多個物件的全部屬性和操作。

5) 多型:使父類中定義的屬性或操作被子類繼承後,可以有不同的實現的機制

6. UML概念及用途:UML,即統一建模語言,是一種標準的圖形化建模語言。它主要用於軟體的分析與設計,用定義完善的符號來圖形化的展現一個軟體系統。

第三章 軟體設計

1.軟體設計的原則:1)模組化2)抽象3)逐步求精4)資訊隱藏

2.高內聚低耦合(一定記住最高最低):

3.系統結構圖(P105)要看懂

4.Jackson方法把資料結構分為3種基本型別:順序形結構、選擇型結構、迴圈型結構

5.結構化軟體設計工具:1)流程圖2)N-S圖3)PAD圖4)HIPO圖:H圖:軟體總的模組層次結構。IPO圖:每個模組輸入/輸出資料處理功能及模組呼叫的詳細情況

第四章 編碼及實現

1程式語言分類及特點:

1)java:具有極好的跨平臺性,擁有目前全球最大的開發者群

2)C語言:基友高階語言特點,又有組合語言特點、C語言相比其他高階語言更接近底層,因此執行效率高。

3)C++:既具有接近C語言一樣的執行效率,又有高階語言的面向物件特徵。部署方便、執行效率高,更接近底層。

4)C#(上述語言的綜合體):無聊。。。(記住3個就行了吧)

5)PHP:語法簡單,容易上手,開發快捷,跨平臺性強,效率高,面向物件

2.程式設計的優化(沒找到,就隨便寫點。。):

第五章 軟體測試

1.軟體測試概念:發現軟體中的錯誤和缺陷的主要手段。

2.軟體測試的原則:1)完全測試是不可能的2)測試中存在風險3)軟體測試智慧表明缺陷的存在,而不能證明軟體產品已經沒有缺陷4)軟體產品中潛在的錯誤數與已發現的錯誤數成正比5)讓不同的測試人員參與到測試工作中6)讓開發小組和測試小組分立,開發工作和測試工作不能由同一部分人來完成7)儘早並不斷的進行測試,使測試工作貫穿於整個軟體開發的過程8)在設計測試用例時,應包括輸入資料和預期的輸出結果兩個部分。並且,輸入資料不僅應該包括合法的情況,還應該包括非法的輸入情況。9)要集中測試容易出錯或錯誤較多的模組10)應該長期儲存所有的測試用例

3.軟體測試模型(應該是瞭解的吧):

4.黑盒測試:等價類劃分、邊界值分析、錯誤推測、因果圖

5.白盒測試:程式碼檢查法、靜態結構分析法、邏輯覆蓋法、域測試、符號測試

6.等價類劃分:課本例項。

7.邏輯覆蓋法:課本例項(分支覆蓋、條件覆蓋)。

8.系統測試是__________從開始的。

第六章 軟體工程的其他相關內容

1.軟體維護的過程:1)建立維護機構2)使用者提出維護申請並提交維護的申請報告3)維護人員確認維護型別並實施相應的維護工作4)整理維護記錄並對維護工作進行評審5)對維護工作進行評價

2.軟體維護的分類:糾錯性維護、適應性維護、完善性維護、預防性維護+

3.軟體的可維護性:衡量對軟體產品進行維護的難易程度的標準。

4.影響軟體可維護的因素:可理解性、可測試性、可修改性等。

5.提高可維護性的措施:1)建立完整的文件2)採用先進的維護工具和技術3)注重可維護性的評審環節

6.軟體專案的管理:為了使軟體專案能夠按照預定的成本、進度、質量順利完成,而對人員(People)、產品(Product)、過程(Process)和專案(Project)進行分析和管理的活動。

7.軟體開發成本:資源計劃編制、成本估算、專案預算、成本控制

8.軟體進度安排:是軟體產品能夠如期的交付到使用者手中。

9.軟體風險:專案風險、技術風險、商業風險

10.文件:某種資料截止和其中所記錄的資料。

11.軟體文件具備的特性:1)及時性2)完整性3)實用性4)規範性5)結構化6)簡潔性