軟件工程中的各種設計
瀑布模型:
定義:將軟件生存周期的各項活動規定為依照固定順序連接的若干階段工作,形如瀑布流水,最終得到軟件產品
系統流程圖:系統流程圖是描繪物理系統的傳統工具,它的基本思想是用圖形符號以黑盒子形式描繪系統里面的每一個部件(程序、文件、數據庫、表格、人工過程等)?
數據流圖:DFD是一種描述邏輯模型的圖形工具,表示數據在系統內的變化。圖中沒有任何具體的物理元素,只是描繪信息在系統中流動和處理的情況。DFD從數據傳遞和加工的角度,以圖形的方式刻畫數據流從輸入到輸出的移動變換過程。它由數據流、加工、文件和數據流的源點和終點構成。?
數據字典:是一種描述邏輯模型的工具。它對于數據流圖中所出現的所有被命名的圖形元素作為一個詞條加以定義,使得每一個圖形元素的名字都有一個確切的解釋。DD的內容包括:圖形元素的名字、別名或編號、分類、描述、定義、位置等。?
ER圖:學過數據庫的應該都知道這個東西
ERD描繪了系統的數據關系。分析實體聯系圖有助于對業務或系統數據組成的理解和交互,并暗示產品將有必要包含一個數據庫。ER模型三要素有:數據對象、屬性和聯系
?狀態轉換圖:
狀態轉換圖簡稱狀態圖。通過描繪系統的狀態及引起系統狀態轉換的事件,來表示系統的行為。它由1個初態/初始狀態、0-N個終態/最終狀態和若干個中間狀態組成
層次方框圖
?用屬性結構的一系列多層次的矩形框描述數據的層級結構
IPO圖:定義:輸入、處理、輸出圖的簡稱
層次圖
層次圖(也稱H圖)是在總體設計階段最常使用的圖形工具之一,它常用于描繪軟件的層次結構。矩形代表一個模塊,連線表示調用關系,適于在自頂向下設計軟件的過程中使用;與層次方框圖類似?
HIPO圖
是IBM公司發明的“層次圖加輸入/處理/輸出圖”的縮寫;為了能使HIPO圖具有可跟蹤性,在H圖例除了最頂層的方框之外,每個方框都加了編號:和H圖中的每個方框相對應,有一張IPO圖描述這個方框代表的模塊的處理過程。IPO圖能夠方便地描述數據輸入、數據處理和數據輸出之間的關系。
結構圖?
一個方框/矩形代表一個模塊,箭頭連線/直線表示調用關系,帶有注釋的箭頭表示模塊調用過程中來回傳遞的信息?
程序流程圖:
N-S圖:
其主要特點包括:
[1]功能域明確;
[2]不可以隨意轉移;
[3]容易確定局部和全局數據的作用域;
[4]容易表達嵌套關系
判定表
某數據流圖的加工需要依賴于多個邏輯條件的取值,就是說完成這一加工的一組動作是由于某一組條件取值的組合而引發的。這時使用判定表來描述比較合適。判定表通常由四部分組成,即:條件樁、操作樁、條件條目和操作條目。
判定樹:判定表的變種
用例圖:
用例圖是被稱為參與者的外部用戶所能觀察到的系統功能概念的模型圖;用例是系統中的一個功能單元,可以描述為參與者與系統之間的一次交互作用;用例圖的用途是列出系統中的用例和參與者,并顯示哪個參與者參與了哪個用例的執行?
活動圖:
活動圖描述了活動發生的順序。其圖形表示規則如下:
?圓角矩形表示方框中的活動;
?矩形表示工作流影響的對象;
?實心圓表示工作流開始的開始狀態;
?雙層圓表示工作流結束的結束狀態;
?菱形表示決策點;
?垂直甬道表示工作流中的不同參與者及相關活動
順序圖:
順序圖表示對象之間傳遞消息的時間順序
垂直線表示一個對象的生命周期
箭頭表示信息
協作圖
§協作圖對在一次交互中有意義的對象和對象間的鏈建模
類圖:以類為中心組織起來的圖形,用以表示軟件系統中各類之間的相互關系
連線表示類的關系
狀態圖:
狀態圖是一個類對象所經歷的所有歷程的模型圖。狀態圖有對象的各個狀態和連接這些狀態的變遷組成
部署圖:
用來描述位于節點實例上的運行組件的安排,描述系統的實際物理結構?
軟件工程中的一些基本概念?
可行性研究報告的一般格式:GB8567-88
軟件危機是指軟件開發和維護中存在的一系列問題。它主要面臨的問題是: 進展難衡量、質量難評估、管理難控制。
軟件工程是指開發、運行、維護、修復軟件的系統方法
軟件工程的中心課題是控制復雜性
目前使用得最廣泛的兩種軟件工程方法學:傳統方法學、面向對象方法學。
成本估計
代碼行,任務分解技術
效益的度量方法
貨幣的時間價值,投資回收期,純收入
需求分析的具體任務包括
確定綜合需求
分析數據需求
導出邏輯模型
修正開發計劃
驗證分析正確性
編寫需求說明書
軟件的綜合需求
功能需求,性能需求,可靠性和可用性,出錯處理,接口需求,約束
需求獲取方法
訪談,面向數據流自頂向下求精,應用規格說明
需求分析階段用到的模型
數據流圖(DFD):用于建立功能模型
實體-聯系圖(ERD):用于建立數據模型
類圖:用于建立結構模型
時序圖:用于建立行為模型
狀態圖:用于建立行為模型
協作圖:用于建立行為模型
總體設計的兩個階段
系統設計:確定系統的具體實現方案
結構設計:確定軟件結構
系統設計包括:設想供選擇的方案,選取合理的方案,推薦最佳方案
結構設計:功能分解,設計軟件結構,設計數據庫,制定測試計劃
對象模型
對象模型是對對象及其關系的映射,描述了系統的靜態結構。通常使用統 一建模語言 (UML) 的類圖來建立對象模型。
軟件生命周期劃分
軟件定義:可行性研究和計劃,需求分析
開發期:總體設計,詳細設計,編碼實現,集成測試
軟件維護:確認測試,使用和維護
耦合和內聚
耦合用于衡量不同模塊之間相互依賴的緊密程度,越低越好。應該追求「松 散耦合」的系統。
耦合設計原則: ? 多用數據耦合 ? 少用控制耦合 ? 限制公共耦合
內聚用于衡量一個模塊內部各元素彼此結合的緊密程度,越高越好
內聚設計原則: ? 力求高內聚 ? 可用中內聚 ? 避免低內聚
軟件工程的七條基本原理:
1.用分階段的生命周期計劃嚴格管理;
2.堅持進行階段評審;
3.實行嚴格的產品控制;
4.采用現代程序設計技術;
5.結果應能夠清楚地審查;
6.開發小組的人員應少而精;
7.承認不斷改進軟件工程實踐的必要性。
軟件生存期的階段劃分
面向對象的方法學
可行性分析
包含三個方面:技術可行性,經濟可行性,操作可行性
可行性研究過程
各種需求分析方法所應遵循的準則
需求分析的具體任務
系統結構特征可歸納為兩種經典形式
變化型結構和事務型結構
數據流圖可分為兩種類型
變換性數據流和事務型數據流
劃分等價類的原理
各種覆蓋
語句覆蓋:使程序中每個語句至少執行一次;
判定覆蓋(分支覆蓋):使每個判定的真假分支都至少執行一次;
?條件覆蓋:使每個判定的每個條件的可能取值至少執行一次;
?判定/條件覆蓋:選取足夠多的測試用例,使判斷中的每個條件的所有可能取值至少執行一次。選取足夠多的測試用例,同時每個判斷本身的所有可能判斷結果至少執行一次;
?條件組合覆蓋:使每個判斷表達式中條件的各種可能組合至少出現一次。
選擇題
軟件工程產生的直接原因是軟件危機。在20世紀60年代末期,隨著計算機硬件的快速發展和應用需求的劇增,軟件開發過程中出現了一系列嚴重問題:軟件開發成本超支、進度延遲、質量低下、維護困難等。這些問題集中體現為"軟件危機"。為了解決這場危機,人們開始研究用工程化的方法來開發軟件,由此誕生了軟件工程這門學科。
針對學生成績范圍0-100的黑盒測試等價類劃分,應該劃分為3個等價類:
1. 有效等價類(1-100分): 表示正常的成績范圍
2. 無效等價類1(小于0分): 表示異常的負分情況
3. 無效等價類2(大于100分): 表示超出滿分的異常情況
IPO圖(Input Process Output)是一種程序流程圖,主要由輸入框(Input)、處理框(Process)和輸出框(Output)這三個基本組成部分構成。?
在軟件維護的類型中,完善性維護專門針對用戶提出的新功能需求或對現有功能的改進建議,對軟件進行功能擴充和完善的維護活動,所以C選項是正確答案。
分析其他選項:
A. 預防性維護:是為了預防軟件出現故障而進行的維護活動,主要包括代碼重構、性能優化等,并非針對用戶新功能需求。
B. 適應性維護:是為了使軟件適應新的運行環境(如硬件、操作系統等變化)而進行的修改,重點在于環境適應性,而不是功能改進。
D. 糾錯性維護:是針對軟件運行中發現的錯誤進行修復的維護活動,目的是糾正軟件缺陷,而不是添加新功能。?
軟件工程的基本要素包括方法、工具和( A )。
A.?過程????????B.?軟件系統?? C.?硬件環境?????????D.?人員
在需求階段,反映需求過程本身質量的可度量屬性應該是功能點的可追蹤性和實現過程的穩定性
系統流程圖是用圖形符號來表示系統中的各個元素,例如人工處理、數據庫、設備等,流程圖表達了系統中各個元素之間的信息流動情況。是描繪物理系統的傳統工具。
黑盒測試:
- 不考慮程序內部邏輯結構,只關注軟件的外部表現
- 測試用例基于需求規格說明書設計
- 驗證軟件功能是否符合用戶需求
- 主要由測試人員執行
白盒測試:
- 需要了解程序內部邏輯結構和代碼實現
- 測試用例基于代碼覆蓋設計
- 驗證內部運行機制是否正確
- 主要由開發人員執行