軟體工程實驗二—結構化分析與設計
AHPU-軟體工程導論-計算機18級 | 班級連結 |
---|---|
作業要求 | 作業連結 |
作業目標 | 1.掌握結構化的需求分析方法 2.掌握分層資料流圖的繪製、資料字典和加工說明的編制 3.掌握資料流圖對映為軟體結構圖的方法 4.掌握需求說明書和設計說明書的主要內容,學習軟體需求說明書和設計說明書的編寫 5.掌握測試的基本方法。 |
一.實驗目的
(1)掌握結構化的需求分析方法;
(2)掌握分層資料流圖的繪製、資料字典和加工說明的編制;
(3)掌握資料流圖對映為軟體結構圖的方法;
(4)掌握需求說明書和設計說明。書的主要內容,學習軟體需求說明書和設計說明書的編寫;
(5)掌握測試的基本方法。
二.實驗內容
(1)參考一個熟悉的系統,如,機票預訂系統/教材訂購系統/ATM自動取款機,討論其使用者需求、系統需求和業務需求;
(2)繪製系統的分層資料流圖,並給出資料字典;
(3)將系統的分層資料流圖對映為軟體結構圖,繪製軟體結構圖;
(4)為關鍵模組進行詳細設計,如繪製關鍵模組的流程圖;
(5)實現系統部分功能並測試。
【例項1】機票預訂系統
參考: (1)攜程網:https://flights.ctrip.com/international/search/domestic (2)去哪兒:https://www.qunar.com/?ex_track=auto_4e0d874a 為了方便旅客,某航空公司擬開發一個機票預定系統。旅行社把預定機票的旅客資訊(姓名、性別、工作單位、身份證號碼、旅行 時間、旅行目的地等)輸入該系統,系統為旅客安排航班,旅客在飛機起飛前一天憑取票通知和賬單交款取票,系統核對無誤即印出 機票給顧客
【例項2】教材訂購系統
銷售系統的工作過程為:首先由教師或學生提交購書單,經教材發行人員稽核是有效購書單後,開發票、登記並返給教師或學生領
書單,教師或學生即可去書庫領書。
採購系統的主要工作過程為:若是脫銷教材,則登記缺書,發缺書單給書庫採購人員;一旦新書入庫後,即發進書單通知給教材發
行人員。
【例項3】圖書管理系統
參考:http://lib.ahpu.edu.cn/
三.實驗步驟
(1)複習結構化的分析與設計方法的主要過程;
①結構化分析方法:以自頂向下,逐步求精為基點,以一系列經過實踐的
考驗被認為是正確的原理和技術為支撐,以資料流圖,資料字典,結構化語
言,判定表,判定樹等圖形表達為主要手段,強調開發方法的結構合理性和
系統的結構合理性的軟體分析方法。
②結構化分析主要過程:
1. 分析當前情況,做出反映當前物理模型的DFD
2. 推匯出等價的邏輯模型的DFD
3. 設計新的邏輯系統,生成資料字典和基元描述
4. 建立人機介面,提出可供選擇的目標系統物理模型的DFD
5. 確定個方案的成本和風險等級,根據此對各種方案進行分析
6. 選擇一種方案並建立完整的需求規約
③結構化設計方法:結構化設計方法是以自頂向下,逐步求精,模組化為基
點,以模組化,抽象,逐層分解求精,資訊隱蔽化區域性化和保持模組獨立為
準則的設計軟體的資料架構和模組架構的方法學。
④結構化設計步驟:
1. 評審和細化資料流圖
2. 確定資料流圖的型別
3. 把資料流圖對映到軟體模組結構,設計出模組結構的上層
4. 基於資料流圖逐步分解高層模組,設計中下層模組
5. 對模組結構進行優化,得到更為合理的軟體結構
6. 描述模組介面
(2)討論系統存在的使用者角色、工作流等;
以教材訂購系統為例:
①使用者角色可以有學生、教師、書庫管理員
②工作流有:
* 對學生或老師提供的購書單進行審查
* 列印有效的購書單和發票交給學生教師並登記缺書單提交
給書庫管理員
* 書庫管理員收到進書通知以及缺書單,並根據此採購書籍
* 學生教師根據拿到的發票和領書單領書
(3)對關鍵功能繪製資料流圖,給出資料字典,並反覆討論資料流的合理性;
資料流圖:
資料字典:
1.資料項
①姓名 本校學生/教師/書庫管理員的名字
②學號 學生的學號
③工號 教師或書庫管理員的工號
2.資料結構
①學生={姓名+學號+所屬院系}
②教師={姓名+工號+所屬院系}
③書庫管理員={姓名+工號}
3.資料流
①購書單={學生/教師,教材訂購系統}
②領書單={教材訂購系統,學生/教師}
4.資料儲存
①F1 庫存表 儲存校內剩餘的教材類別及數量
②F2 缺書登記表 儲存學生或教師提供的缺書資訊
5.處理過程
①訂購 將學生或教師提供的缺書資訊登記並稽核,將有效資訊提交給書庫管理員
②採購 將書庫管理員提供的進書資訊登記並稽核
(4)對應資料流圖,設計系統的功能結構圖,關鍵模組的流程圖;
(5)選擇對應的結構化程式設計語言,實現並測試部分功能模組
四.思考題
(1)簡述需求說明書,概要設計,詳細設計說明書的主要內容。
①需求說明書的內容應包含如下幾部分內容:
1.概述開發軟體的目的、意義、背景以及使用者的特點和約束
2.軟體的功能說明、效能說明、輸入輸出要求、資料管理要求以及故障處理要求
3.要有資料流圖、資料字典和介面說明等資料描述
4.要說明軟體執行所需的硬體裝置、系統軟體和工具
5.說明軟體開發在成本、進度、設計和實現方面的限制
②概要設計書的內容應包含如下幾部分內容:
1.編寫該概要設計書的目的,指出預期讀者
2.說明要設計的軟體的名稱,列出此專案的提出者、開發者、目標使用者以及執行該軟體的計算站
3.列出本設計書中用到的專業術語的定義以及外文片語的意思和本檔案參考的相關資料
4.要說明本軟體系統主要的輸入輸出專案、處理的功能效能要求、對執行環境的要求以及基本設計概念和處理流程
5.要說明本系統的系統元素的劃分,簡要給出每個系統元素的功能,分層次地給出各系統元素之間的管理關係
6.要說明本軟體系統在工作過程中不得不需要的人工處理過程以及尚未解決而要在軟體完成之前必須解決的問題
7.要分別說明使用者介面、外部介面、內部介面
8.給出系統在不同外界環境下各種不同的執行模組組合以及執行控制和時間
9.給出軟體系統所使用的資料結構及其相關內容和它們的物理結構要點以及與程式的關係
10.說明軟體系統可能出錯或故障時,系統輸出資訊的形式、含義和處理方法
③詳細設計說明書的內容應包含如下幾部分內容:
1.該詳細設計說明書的編寫目的和預期讀者
2.該軟體系統的名稱以及該專案的提出者、開發者、預期使用者和執行該軟體的計算站
3.列出本設計書中用到的專業術語的定義和外文的註釋以及該設計書的參考資料
4.列出本軟體系統中每個程式的名稱和內容,如簡要描述、功能、效能、輸入輸出項
5.詳細說明本軟體某個模組所選用的演算法,具體計算公式、計算步驟、流程邏輯、、介面等
6.本軟體執行中受到的限制條件
7.說明對該軟體進行單體測試的計劃
8.尚未解決的問題
(2)結構化分析方法與面向物件分析方法有無本質上的不同?
沒有,他們本質上都是先對問題進行抽象化
(3)對資料流圖進行審查有何意義?
分層資料流圖要保持上下的一致性以及完整性,對其進行審查就是保證兩兩分層之間以及整體中不會出現矛盾與衝突,不遺漏資料結構、資料流、資料儲存等元素