軟件工程整理版_第1頁
軟件工程整理版_第2頁
軟件工程整理版_第3頁
軟件工程整理版_第4頁
免費預覽已結束,剩余29頁可下載查看

付費下載

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、.軟件工程基本概念(1)軟件 :是計算機系統中與硬件相互依存的另一部分, 它是包括程序、 數據及其相關文檔的完整集合。(2)軟件工程 : 開發、運行、維護和修復軟件的系統方法。(3)軟件工程方法學 : 通常把在軟件生命周期全過程中使用的一整套技術的集合, 稱為軟件工程方法學。(4)軟件開發模型 :是軟件開發全部過程、活動和任務的結構框架。它能直觀表達軟件開發全過程,明確規定要完成的主要活動、任務和開發策略。(5)系統流程圖 :描繪物理系統的一種傳統工具,它的基本思想是用圖形符號以黑盒子形式描繪系統里面的每一個部件(程序、文件、數據庫、表格、人工過程等) 。(6)數據流圖 (Data Flow

2、Diagram ,DFD): 描繪系統的一種邏輯模型,圖中沒有任何具體的物理元素,只是描繪信息在系統中流動和處理的情況。(7)數據字典 (Data Dictionary, DD): 對于數據流圖中所出現的所有被命名的圖形元素作為一個詞條加以定義,使得每一個圖形元素的名字都有一個確切的解釋。(8)模型 :對對象系統的形式化的特征抽象,概括性或近似地表示(9)結構化分析方法 (Structured Analysis, SA):70 年代中期提出的一種面向數據流、 自頂向下、逐步求精進行需求分析的方法。(10) 模塊 (module): 數據說明和可執行語句等程序對象的集合, 每個模塊單獨命名并且可

3、以通過名字對模塊進行訪問。(11) 模塊化設計 (modular design): 把大型軟件按照規定的原則劃分為一個個較小的、相對獨立但又相關的模塊的設計方法。(12) 深度 :軟件中指模塊的最大層數。(13) 扇出 :軟件中指一個模塊直接調用的模塊數。(14) 扇入 :軟件中指調用一個給定模塊的模塊個數。(15) 寬度 :軟件中指同一層最大模塊數。.(16) 信息隱藏 (Information Hiding): 模塊內部的數據與過程, 應該對不需要了解這些數據與過程的模塊隱藏起來。(17) 內聚 :用于衡量一個模塊內部各個元素間彼此結合的緊密程度。(18) 耦合 :用于衡量不同模塊彼此間互

4、相依賴(連接)的緊密程度。(19) 層次圖 :也稱 H 圖,是在總體設計階段最常使用的圖形工具之一,它常用于描繪軟件的層次結構。層次圖中的每個方框代表一個模塊,方框間的連線表示模塊間的調用關系。(20) 結構化設計 :一種設計程序的技術, 它采用自頂向下逐步求精的設計方法和單入口、 單出口的控制結構。( 21) 編碼:就是把軟件設計的結果翻譯成計算機可以“理解”的形式用某種程序設計語言書寫的程序。( 22) 測試 :為了發現程序中的錯誤而執行程序的過程。(23) 白盒測試 :也稱結構測試 /開盒測試 /玻璃盒測試,是一種基于覆蓋的測試方法;根據被測程序的邏輯結構設計測試用例,檢驗產品內部動作是

5、否按照規規格說明書的規定正常進行。.(24) 黑盒測試 :從用戶觀點,按規格說明書要求的輸入數據與輸出數據的對應關系設計測試用例, 是根據程序外部特征進行測試。25) 窮盡測試 :包含所有可能情況的測試。(26) 模塊測試 :又稱單元測試,發現編碼和詳細設計的錯誤。(27) 驗收測試 :由用戶參與、使用實際數據來發現需求說明書中的錯誤的測試。(28) 平行運行 :同時運行新開發出來的系統和將被取代的舊系統,以便比較新舊兩個系統的處理結果。(29) Alpha 測試 :用戶在開發者的場所進行,并在開發者的指導下進行;(30) Beta 測試 :在一個或多個用戶場所進行,開發者不在現場。(31)

6、軟件維護 :為了改正錯誤或滿足新的需要而修改軟件的過程。(32) 糾錯性維護 :針對原有錯誤而進行的維護過程。(33) 適應性維護 :針對硬件發展而進行的維護過程。(34) 完善性維護 :針對功能擴展而進行的維護過程。(35) 預防性維護 :針對未來發展而進行的維護過程。(36) 等價類 :每類中的一個典型值在測試中的作用與這一類中所有其他值的作用相同。(37) 對象 :具有相同狀態的一組操作的集合。(38) 消息 :要求某個對象執行在定義它的那個類中所定義的某個操作的規格說明。對象:對問題域中某個東西的抽象, 這種抽象反映了系統保存有這個東西的信息或與它交互的能力。對象是對屬性值和操作的封裝

7、。(39) 類:對具有相同屬性和行為的一個或多個對象的描述。(40) 實例 :由某個特定的類所描述的一個具體的對象。(41) 消息 :要求某個對象執行在定義它的那個類中所定義的某個操作的規格說明。(42) 方法 :對象所能夠執行的操作。也就是類中所定義的服務。(43) 屬性 :類中所定義的數據,它是對客觀實踐實體所具有的性質的抽象。.(44) 封裝 :在面向對象的程序中,把數據和實現操作的代碼集中起來放在對象的內部,稱之為封裝。(45) 繼承 :指能夠直接獲得已有的性質和特征,而不必重復定義它們。(46) 多態性 :子類對象可以象父類對象那樣使用, 同樣的消息既可以發送給父類對象也可以發送給子

8、類對象。軟件工程常用工具與模型(1)瀑布模型:定義:將軟件生存周期的各項活動規定為依照固定順序連接的若干階段工作,形如瀑布流水, 最終得到軟件產品。實例:(2)系統流程圖定義:系統流程圖是描繪物理系統的傳統工具,它的基本思想是用圖形符號以黑盒子形式描繪系統里面的每一個部件(程序、文件、數據庫、表格、人工過程等)。.(3)數據流圖定義:英文 Data Flow Diagram,簡稱 DFD 。DFD 是一種描述邏輯模型的圖形工具,表示數據在系統內的變化。圖中沒有任何具體的物理元素,只是描繪信息在系統中流動和處理的情況。DFD 從數據傳遞和加工的角度, 以圖形的方式刻畫數據流從輸入到輸出的移動變換

9、過程。它由數據流、加工、文件和數據流的源點和終點構成。(4)數據字典定義:英文 Data Dictionary ,簡稱 DD 。是一種描述邏輯模型的工具。它對于數據流圖中所出現的.所有被命名的圖形元素作為一個詞條加以定義,使得每一個圖形元素的名字都有一個確切的解釋。DD 的內容包括:圖形元素的名字、別名或編號、分類、描述、定義、位置等。實例:客房管理系統字典建模預訂請求客人數據住宿期限 +客房類別客人數據客人姓名 +地址 +身份證號碼 +護照號碼 + 支付方式身份證號碼 =十進制 15 數字 18護照號碼字母+ 8數字8字母“ A” “ Z”十進制數字“0” “ 9”(5) 實體聯系圖定義:實

10、體聯系圖 (ERA , Entity-Relationship Approach)或實體聯系圖( ERD ,Entity-Relationship Diagram )。ERD 描繪了系統的數據關系。分析實體聯系圖有助于對業務或系統數據組成的理解和交互,并暗示產品將有必要包含一個數據庫。ER 模型三要素:數據對象、屬性和聯系。(6)狀態轉換圖定義:狀態轉換圖簡稱狀態圖。 通過描繪系統的狀態及引起系統狀態轉換的事件,來表示系統的行為。它由 1 個初態 /初始狀態、 0N 個終態 /最終狀態和若干個中間狀態組成。.(7)層次方框圖定義:用屬性結構的一系列多層次的矩形框描述數據的層級結構。(8)IPO

11、 圖定義:輸入、處理、輸出圖的簡稱。是IBM公司發展完善的一種圖形工具。.(9)層次圖定義:層次圖(也稱H 圖)是在總體設計階段最常使用的圖形工具之一,它常用于描繪軟件的層次結構。它矩形代表一個模塊,連線表示調用關系,適于在自頂向下設計軟件的過程中使用;與層次方框圖類似。(10) HIPO 圖定義:HIPO: 是 IBM 公司發明的“層次圖加輸入 /處理 /輸出圖的縮寫;為了能使 HIPO 圖具有可跟蹤性,在 H 圖里除了最頂層的方框之外,每個方框都加了編號;和H 圖中的每個方框相對應,有一張IPO圖描述這個方框代表的模塊的處理過程。IPO 圖能夠方便地描述數據輸入、數據處理和數據輸出之間的關

12、系。.(12) 結構圖定義: Yourdon 提出的一種軟件結構設計工具。一個方框/矩形代表一個模塊,箭頭連線/直線表示調用關系,帶有注釋的箭頭表示模塊調用過程中來回傳遞的信息。(13) 程序流程圖定義:也稱為程序框圖;箭頭代表控制流而不是數據流;20 世紀 70 年代的主要工具;趨勢是越來越多的人不再使用。它的主要缺點包括:不是逐步求精的好工具;用箭頭代表控制流,可以隨意轉移控制;不宜表示數據結構。.(14) 盒圖( N-S 圖)定義:由 Nassi 和 Shneiderman 提出的一種程序設計方法; 其主要特點包括: 1 功能域明確; 2 不可以隨意轉移; 3 容易確定局部和全程數據的作

13、用域;4容易表達嵌套關系。實例:(15)PAD 圖定義: PAD 圖是一種問題分析圖 (ProblemAnalysis Diagram),1973 年由日本日立公司提出。其主要.特點包括:1 必是結構化程序;2 程序結構清晰;3 易讀、易懂、易記;4 支持自頂向下,逐步求精的方法;5 既可以表示程序邏輯,也可以表示數據結構。(16) 判定表定義:判定表在某些數據處理中,某數據流圖的加工需要依賴于多個邏輯條件的取值,就是說完成這一加工的一組動作是由于某一組條件取值的組合而引發的。這時使用判定表來描述比較合適。判定表通常由四部分組成,即:條件樁、操作樁、條件條目和操作條目。.(17) 判定樹定義:

14、判定樹是判定表的變種, 它也能清晰地表達復雜的條件組合與所對應的操作之間的關系。判定樹的優點在于它無須任何說明,一眼就能看出其含義,易于理解和使用。(18) 過程設計語言( PDL )定義:也稱“偽碼 ”,用正文形式表示數據和處理的過程的工具。其具有如下特點:1 具有關鍵字固定語法;2 自然語言表述;3 數據說明;4 提供接口模式。(19) 用例圖.定義:用例圖是被稱為參與者的外部用戶所能觀察到的系統共呢概念的模型圖;用例是系統中的一個功能單元,可以被描述為參與者與系統之間的一次交互作用;用例圖的用途是列出系統中的用例和參與者,并顯示哪個參與者參與了那個用例的執行。(20) 活動圖定義:活動圖

15、描述了活動發生的順序。其圖形表示規則如下:圓角矩形表示方框中的活動;矩形表示工作流影響的對象;實心圓表示工作流開始的開始狀態;雙層圓表示工作流結束的結束狀態;菱形表示決策點;垂直泳道表示工作流中的不同參與者及相關活動。.(21) 順序圖順序圖表示對象之間傳送消息的時間順序。圖形表示法:垂直線,即生命線,表示在整個交互過程中一個對象的生命周期。生命線之間的箭頭連線表示消息。箭頭連線上的文字表示相關的事件。.(22) 協作圖協作圖對在一次交互中有意義的對象和對象間的鏈建模。圖形表示法:直線表示對象之間直接通信關系。附在直線上箭頭表示消息傳送方向。箭頭旁文字表示消息及消息編號。.(23) 類圖以類為

16、中心組織起來的圖形,用以表示軟件系統中各類之間的相互關系。圖形表示法:矩形框表示類圖中的類。連線表示類之間的關系。類之間的關系有關聯、 聚集、泛化和依賴。.(24) 狀態圖狀態圖是一個類對象所經歷的所有歷程的模型圖。狀態圖有對象的各個狀態和連接這些狀態的變遷組成。圖形表示法:圓角矩形表示狀態;帶箭頭的直線表示對象從一種狀態變遷到另一種狀態的過程。附在直線上的信息表示觸發對象狀態變遷的條件。.(25) 組件圖組件圖表示了系統中的各種組建。組件可以是源代碼、二進制文件或可執行文件。邏輯視圖與組件視圖之間存在著映射關系。組件可以與公開的任何接口一起顯示。(26) 部署圖用來描述位于節點實例上的運行組

17、件的安排,描述系統的實際物理結構。圖形表示法:立方體表示節點,節點可以是一組運行的資源,如計算機、設備或存取器等。直線表示節點之間連接方式。.軟件工程原理 /技術 /方法1、軟件工程的本質特性(1) 軟件工程關注于大型程序的構造;(2) 軟件工程的中心課題是控制復雜性;(3) 軟件經常變化;(4) 開發軟件的效率非常重要;(5) 和諧地合作是開發軟件的關鍵;(6) 軟件必須有效地支持它的用戶(7) 在軟件工程領域中是由具有一種文化背景的人代替具有另一種文化背景的人創造產品。2、軟件工程的七條基本原理(1)用分階段的生命周期計劃嚴格管理;(2)堅持進行階段評審;(3)實行嚴格的產品控制;(4)采

18、用現代程序設計技術;.(5)結果應能夠清楚地審查;(6)開發小組的人員應少而精;(7)承認不斷改進軟件工程實踐的必要性;3、軟件生存期的階段劃分(1)可行性研究與計劃(2)需求分析(3)總體設計(4)詳細設計(5)實現 (編碼 )(6)集成測試(7)確認測試(8)使用和維護4、傳統方法學(1)傳統方法學夜車概念生命周期方法學或結構化范型;(2)采用結構化技術 (分析 /設計 /實現 ),來完成軟件開發各項任務;(3)把軟件生命周期的全過程依次劃分為若干階段。本質是面向過程的開發。(4)每個階段對立完成,各階段有嚴格的開始和結束標準。前一階段結束,才能開始下一個階段。(5)在相當長的一段時間內仍

19、有生命力。5、面向對象的方法學面向對象方法以數據為主線,把是數據和對數據的操作緊密地結合起來的方法。(1)把對象作為融合數據機在數據上的操作行為的統一的軟件構件。(2)把所有對象劃分成類。(3)按照父類與子類的關系,把若干個相關類組成一個層次結構的系統。.(4)對象彼此間僅能通過發送消息互相聯系。6、可行性研究的主要內容一般來說,至少要從以下三個方面開展研究:(1) 技術可行性:使用現有技術能實現這個系統嗎?(2) 經濟可行性:這個系統的經濟效益能超過它的開發成本嗎?(3) 操作可行性:系統的操作方式在這個用戶組織內行得通嗎?此外,還應從法律、社會效益等更廣泛的方面研究每種解法的可行性。7、可

20、行性研究過程(1) 復查系統規模和目標;(2) 研究目前正在使用的系統;(3) 導出新系統的高層邏輯模型;(4) 進一步定義問題;(5) 導出和評價供選擇的解法;(6) 推薦行動方針;(7) 草擬開發計劃;(8) 書寫文檔提交審查。8、成本 /效益分析內容(1)成本估計代碼行技術任務分解技術自動估計成本技術(2) 成本 / 效益分析的方法貨幣的時間價值.投資回收期純收入投資回收率9、各種需求分析方法所應遵循的準則(1)必須理解并描述問題的信息域,建立數據模型;(2)必須定義軟件應完成的功能,建立功能模型;(3)必須描述作為外部事件結果的軟件行為,建立行為模型;(4)必須對描述信息、功能和行為的

21、模型進行分解,用層次的方式展開細節。10 、需求分析的具體任務(1)確定軟件系統的綜合需求;(2)分析系統的數據需求:數據模型/信息模型 E-R/ 層次方框圖 ;(3)導出軟件系統的邏輯模型:數據流圖/E-R 圖/狀態轉換圖 /數據字典 /算法;(4)修正系統開發計劃;(5)驗證軟件需求分析的正確性;(6)編寫軟件需求規格說明書。11 、系統的綜合要求 /需求(1) 功能需求:系統必須提供的服務(2) 性能需求:系統必須滿足的定時約束或容量約束等。(3) 可靠性和可用性需求。(4) 出錯處理需求:系統對環境錯誤應該怎樣響應。(5) 接口需求:系統與它的環境通信格式要求。(6) 約束:設計約束或

22、實現約束描述在設計或實現應用系統時應遵守的限制條件:精度/工具 /語言 /設計 /標準 /平臺。.12 、需求獲取的常用方法(1)訪談(2)面向數據流自頂向下求精(3)簡易的應用規格說明技術(4)快速建立軟件原型13 、總體設計過程1 . 設想供選擇的方案2 . 選取合理的方案3 . 推薦最佳方案4 . 功能分解5. 設計軟件結構6. 設計數據庫7. 制定測試計劃8. 書寫文檔9. 審查和復審14 、軟件設計中的常用啟發規則(1) 改進軟件結構提高模塊獨立性;(2) 模塊規模應該適中;(3) 深度、寬度、扇出、扇入都應適當;(4) 模塊的作用域應該在控制域之內;(5) 力爭降低模塊接口的復雜程

23、度;(6) 設計單入口單出口的模塊;(7) 模塊功能應該可以預測。.15 、耦合設計原則(1)盡量使用數據耦合(2)少用控制耦合(3)限制公共環境耦合范圍(4)完全不用內容耦合16 、內聚設計原則(1)力求高內聚;(2)中等內聚也可以采用;(3)低內聚不要用。17 、面向數據流的設計方法(1)系統結構特征可歸納為兩種典型形式變換型結構事務型結構(2)數據流圖可分為兩種類型變換型數據流事務型數據流.(3)面向數據流設計方法的設計步驟(1)精化 DFD 。(2)確定 DFD 類型。(3)把 DFD 映射到系統模塊結構,設計出模塊結構的上層。(4)基于 DFD ,逐步分解高層模塊,設計出下層模塊。(

24、5)根據模塊獨立性原理,精化模塊結構。(6)模塊接口描述.18 、人機界面設計中經常遇到的4 個設計問題(1)系統響應時間(2)用戶幫助設施(3)出錯信息處理.(4)命令交互19 、人機界面設計一般交互指南(1) 保持一致性(2) 提供有意義的反饋(3)在執行有較大破壞型的動作之前,要求用戶確認(4)允許取消絕大多數操作(5)減少在兩次操作之間必須記憶的信息量(6)提高對話、移動和思考的效率(7)允許犯錯誤(8)按功能對動作分類,并據此設計屏幕布局(9)提供對用戶工作內容敏感的幫助設施(10) 用簡單動詞或動詞短語作為命令名20 、人機界面設計信息顯示指南(1)只顯示于當前工作內容有關的信息(

25、2)不要用數據淹沒用戶(3)使用一致的標記、標準的縮寫和可與之的顏色(4)允許用戶保持可視化的語境(5)產生有意義的出錯信息(6)使用大小寫、縮進和文本分組以幫助理解(7)使用窗口分隔不同類型的信息(8)使用模擬顯示方式顯示信息(9)高效率地使用顯示屏21 、數據輸入指南.(1)盡量減少用戶的輸入動作(2)保持信息顯示和數據輸入之間的一致性(3)允許用戶自定義輸入(4)交互應該是靈活的(5)使在當前語境中不適用的命令不起作用(6)讓用戶控制交互流(7)對所有輸入動作都提供幫助(8)消除冗余的輸入22 、選擇一種語言的標準是什么?(1)系統用戶的要求:用戶知識和用戶環境要求;(2)可以使用的編譯

26、程序:軟件平臺要求;(3)可以得到的軟件工具:軟件條件要求;(4)工程規模:實踐要求;(5)程序員的知識:方便性要求;(6)軟件可移植性要求:造價要求;(7)軟件的應用領域:對象特點要求。23 、編碼風格應該遵循的規則(1) 程序內部的文檔化:指編碼時適當選擇標識符的名字適當安排注釋注重程序的整個組織形式(2) 數據說明(3) 語句構造.(4) 輸入/輸出24 、軟件測試準則(1)所有測試都應該能追溯到用戶需求。(2)應該遠在測試開始之前就制定出測試計劃。(3)把 Pareto 原理應用到軟件測試中。Pareto 原理:測試發現的錯誤中80% 很可能是由程序中20% 的模塊造成的。(4) 應該

27、從“ 小規?!?測試開始,并逐步進行“ 大規?!睖y試。(5)窮舉測試是不可能的。(6)應該由第三方從事測試工作。25 、劃分等價類的原理每類中的一個典型值在測試中的作用與這一類中所有其他值的作用相同。劃分等價類的標準:覆蓋不相交代表性26 、劃分等價類的幾條啟發式規則:(1) 如果規定了輸入值的范圍則可劃分出一個有效的等價類 (輸入值在此范圍內 ),兩個無效的等價類(輸入值小于最小值或大于最大值) ;(2)如果規定了輸入數據的個數,則類似地也可以劃分出一個有效的等價類和兩個無效的等價類;(3) 如果規定了輸入數據的一組值,而且程序對不同輸入值做不同處理,則每個允許的輸入值是一個有效的等價類,此外還有一個無效的等價類(任一個不允許的輸入值);(4) 如果規定了輸入數據必須遵循的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論