SE第2章 結(jié)構(gòu)化方法學(xué)_第1頁
SE第2章 結(jié)構(gòu)化方法學(xué)_第2頁
SE第2章 結(jié)構(gòu)化方法學(xué)_第3頁
SE第2章 結(jié)構(gòu)化方法學(xué)_第4頁
SE第2章 結(jié)構(gòu)化方法學(xué)_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第二章 結(jié)構(gòu)化方法學(xué)開發(fā)軟件要回答三個(gè)問題: Why to do? What to do? How to do? 可行性研究 需求分析 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)結(jié)構(gòu)化方法學(xué)的主要步驟: 問題的定義 可行性研究 結(jié)構(gòu)化分析 結(jié)構(gòu)化設(shè)計(jì) 結(jié)構(gòu)化程序設(shè)計(jì) 測(cè)試與維護(hù)12.1 問題定義 問題目標(biāo)和規(guī)模報(bào)告書 任務(wù): 確定“軟件要解決的問題是什么?” 系統(tǒng)分析員應(yīng)該提出關(guān)于問題性質(zhì)、工程目標(biāo)和工程規(guī)模的書面報(bào)告,并且需要得到客戶對(duì)這份報(bào)告的確認(rèn)。 結(jié)果:2 回答“問題定義階段定義的問題是否可行?” 最短時(shí)間 最小代價(jià) 成本/效益分析 可行性分析 技術(shù)可行性 經(jīng)濟(jì)可行性 操作可行性 法律可行性2.2 可行性研究1

2、任務(wù) :不是要解決問題,而是確定問題是否能做,是否值得去做。注意:3循環(huán)2.2 可行性研究 舊系統(tǒng)邏輯模型 新系統(tǒng)目標(biāo)和規(guī)模 邏輯模型描述工具 數(shù)據(jù)流圖 數(shù)據(jù)字典 用例圖 復(fù)查問題定義、規(guī)模和目標(biāo) 根據(jù)新系統(tǒng)模型 分析員誤解 用戶遺漏 重新定義問題 循環(huán)(定義,分析,求解) 從邏輯模型導(dǎo)出物理系統(tǒng)方案 不同角度 多個(gè)方案 分析各種可選方案 技術(shù)可行性 操作可行性 經(jīng)濟(jì)可行性 為可行方案制定初步進(jìn)度計(jì)劃 得出可行性研究結(jié)果 繼續(xù)開發(fā) 終止項(xiàng)目 推薦解決方案 成本/效益 為推薦方案確定開發(fā)計(jì)劃 進(jìn)度 開發(fā)人員 硬件設(shè)備 軟件工具 各階段成本估計(jì) 可行性研究報(bào)告 各步驟結(jié)果 推薦方案 開發(fā)計(jì)劃等 問

3、題定義階段的成果 系統(tǒng)規(guī)模和目標(biāo)報(bào)告書 復(fù)查任務(wù) 改正含糊、二義的描述 改正不正確的描述 核查系統(tǒng)限制和約束 分析現(xiàn)有系統(tǒng) 高層系統(tǒng)流程圖 確定系統(tǒng)功能 比較新舊系統(tǒng) 必須完成舊系統(tǒng)的基本功能 必須改正舊系統(tǒng)存在問題 必須增收入、減支出復(fù)查系統(tǒng)規(guī)模和目標(biāo)研究現(xiàn)有系統(tǒng)功能導(dǎo)出新系統(tǒng)模型重新定義問題導(dǎo)出和分析可選解決方案推薦行動(dòng)方針草擬開發(fā)計(jì)劃書寫文檔提交審查2 步驟 :42.2 可行性研究3 結(jié)果: 可行性研究報(bào)告 軟件系統(tǒng)的目標(biāo)和規(guī)模 推薦方案 數(shù)據(jù)流圖表示的系統(tǒng)高層邏輯模型 系統(tǒng)成本和效益的估計(jì) 開發(fā)計(jì)劃52.3 結(jié)構(gòu)化的需求分析 需求分析是發(fā)現(xiàn)、求精、建模、規(guī)格說明和復(fù)審的過程,是軟件開發(fā)

4、者和用戶相互作用的過程。 任務(wù) : 目標(biāo)系統(tǒng)必須做什么,不考慮怎么做 建立分析模型 編寫需求說明書 步驟 : 發(fā)現(xiàn):需求獲取 求精:需求提煉 通過建模表達(dá)規(guī)格說明:需求描述 復(fù)審:需求驗(yàn)證 綜合要求 : 功能要求 性能要求 運(yùn)行要求 未來要求 數(shù)據(jù)要求 以ER圖表達(dá)數(shù)據(jù)模型以數(shù)據(jù)流圖表達(dá)功能模型以狀態(tài)轉(zhuǎn)換圖表達(dá)行為模型以數(shù)據(jù)字典來組織系統(tǒng)元素6 基于“數(shù)據(jù)流(注重算法和數(shù)據(jù)結(jié)構(gòu))”,面向用戶的 以“圖表工具”明確表達(dá)系統(tǒng)邏輯模型 以“自頂向下逐層分解”的方式進(jìn)行系統(tǒng)分析 資料統(tǒng)一,避免重復(fù)性,增強(qiáng)一致性 控制復(fù)雜性的基本手段 分解:將復(fù)雜的問題拆成若干小問題再分別解決的過程 抽象:先考慮問題最

5、本質(zhì)的屬性,暫時(shí)略去細(xì)節(jié),再逐 層添加細(xì)節(jié),直至達(dá)到必要的詳細(xì)程度 特點(diǎn):2.3 結(jié)構(gòu)化的需求分析72.3 結(jié)構(gòu)化的需求分析 分析模型的構(gòu)成與結(jié)構(gòu)化設(shè)計(jì)的對(duì)應(yīng)關(guān)系 :82.3 結(jié)構(gòu)化的需求分析 數(shù)據(jù)流圖 : 用于建立功能模型,提供了功能建模機(jī)制也提供了信息流建模機(jī)制,是系統(tǒng)邏輯功能的圖形表示,沒有任何具體的物理元素,描繪了信息在軟件中流動(dòng)和被處理的情況。數(shù)據(jù)流圖的基本要點(diǎn)是描繪“做什么”而不考慮“怎樣做”。 數(shù)據(jù)流圖的基本符號(hào) : 正方形(或立方體):表示數(shù)據(jù)的源點(diǎn)或終點(diǎn); 圓形(或圓角矩形):代表變換數(shù)據(jù)的處理; 開口矩形(或兩條平行橫線):代表數(shù)據(jù)存儲(chǔ); 箭頭:表示數(shù)據(jù)流,即特定數(shù)據(jù)的流動(dòng)

6、方向。92.3 結(jié)構(gòu)化的需求分析設(shè)計(jì)系統(tǒng)數(shù)據(jù)流圖的步驟 : 自頂向下分層 步驟 提取數(shù)據(jù)流圖的四個(gè)基本成分 畫出高層數(shù)據(jù)流圖 逐層分解較高層數(shù)據(jù)流圖中的 處理,得到一套分層數(shù)據(jù)流圖10例1(P13): 某工廠采購(gòu)部門每天要開出定貨清單,清單中包括訂購(gòu)部件的部件號(hào)、部件名、規(guī)格、說明、訂購(gòu)量、當(dāng)前價(jià)格、主要供應(yīng)商和輔助供應(yīng)商。 部件入庫(kù)或出庫(kù)稱為業(yè)務(wù),通過倉(cāng)庫(kù)中的終端把業(yè)務(wù)報(bào)告給定貨系統(tǒng)。 當(dāng)某種部件的庫(kù)存量少于庫(kù)存量臨界值以下時(shí),倉(cāng)庫(kù)管理員就應(yīng)該及時(shí)通知定貨系統(tǒng)開出定貨清單,交由采購(gòu)員采購(gòu)。提取數(shù)據(jù)流圖的四個(gè)成分2.3 結(jié)構(gòu)化的需求分析11畫出高層數(shù)據(jù)流圖細(xì)化基本系統(tǒng)模型,描繪主要功能2.3

7、結(jié)構(gòu)化的需求分析122.3 結(jié)構(gòu)化的需求分析分解關(guān)鍵處理,細(xì)化數(shù)據(jù)流圖 分解原則: 分解自然,概念合理 以分層方式對(duì)處理編號(hào) 父圖與子圖的平衡,分解前后的數(shù)據(jù)流必須一致 一個(gè)處理一般分解成個(gè)子處理 終止分解:分解可能涉及物理實(shí)現(xiàn)手段時(shí)13數(shù)據(jù)流圖例2: 學(xué)生使用就餐卡在食堂就餐時(shí),先插入卡,在連接數(shù)據(jù)庫(kù)確認(rèn)卡的身份和金額的合法性之后,輸入本次就餐的金額,然后連接數(shù)據(jù)庫(kù),扣除該數(shù)值,取回卡,完成本次消費(fèi)。2.3 結(jié)構(gòu)化的需求分析14卡號(hào)卡數(shù)據(jù)扣款成功標(biāo)志消費(fèi)金額卡合法性卡號(hào)卡就餐處理卡2.3 結(jié)構(gòu)化的需求分析15成功標(biāo)志卡數(shù)據(jù)扣款成功標(biāo)志金額消費(fèi)金額合法標(biāo)志卡合法性卡號(hào)不合法卡號(hào)卡卡扣除結(jié)果連接

8、數(shù)據(jù)庫(kù)確認(rèn)合法性消費(fèi)金額接收消費(fèi)金額扣款2.3 結(jié)構(gòu)化的需求分析162.3 結(jié)構(gòu)化的需求分析 數(shù)據(jù)字典 : 關(guān)于數(shù)據(jù)的信息集合,DFD中所有元素定義的集合 內(nèi)容 數(shù)據(jù)元素:數(shù)據(jù)字典中不可再分的數(shù)據(jù)單位 數(shù)據(jù)結(jié)構(gòu) 數(shù)據(jù)流 數(shù)據(jù)存儲(chǔ) 外部項(xiàng) 處理(一般不用DD描述)17 數(shù)據(jù)字典舉例:2.3 結(jié)構(gòu)化的需求分析18 數(shù)據(jù)流圖中處理的邏輯表達(dá)方式 : 用“小說明”來描述處理的邏輯加工 工具 結(jié)構(gòu)化自然語言(偽碼) 判定樹 判定表 介于自然語言和程序設(shè)計(jì)語言之間,在自然語言的 基礎(chǔ)上,加上有限的詞匯和語句而形成的語言 詞匯表:DFD中名詞(數(shù)據(jù)元素、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流) 執(zhí)行性動(dòng)詞 運(yùn)算符(算術(shù)、關(guān)系和邏

9、輯運(yùn)算符) 語句(祈使語句、判斷語句、循環(huán)語句及復(fù)合語句)例如,“接收庫(kù)存業(yè)務(wù)”的表達(dá) :GET 庫(kù)存業(yè)務(wù) ;EDIT 庫(kù)存業(yè)務(wù) ;IF 庫(kù)存業(yè)務(wù)有錯(cuò) THEN 置庫(kù)存業(yè)務(wù)的錯(cuò)誤標(biāo)志 ELSE 去掉庫(kù)存業(yè)務(wù)的錯(cuò)誤標(biāo)志 表達(dá)嵌套的多層判斷的有效工具 舉例:某工廠的職工超產(chǎn)獎(jiǎng)勵(lì)政策獎(jiǎng)勵(lì)政策產(chǎn)品 X產(chǎn)品 Y1 N 25 2 N 元N 25 503 (N 25) 元1 N 50 1 N 元50 100 110 + 1.5 (N 100) 元 表達(dá)條件和操作之間相關(guān)關(guān)系的一種規(guī)范方法 舉例:處理“檢查訂購(gòu)單” 的邏輯描述 IF 金額超過500元且未過期 THEN 發(fā)出批準(zhǔn)單和提貨單; IF 金額超過50

10、0元且已過期 THEN 不發(fā)批準(zhǔn)單; IF 金額低于500元 THEN 不論是否過期發(fā)批準(zhǔn)單和提貨單,過期發(fā)出通知書2.3 結(jié)構(gòu)化的需求分析 三種工具比較 結(jié)構(gòu)化自然語言:可以表達(dá)各種語句 判定樹:適合表達(dá)判斷 特別是嵌套的多層判斷 判定表:適合表達(dá)判斷 特別是某個(gè)處理依賴于多個(gè)邏輯條件192.4 結(jié)構(gòu)化設(shè)計(jì) 任務(wù) : 構(gòu)建系統(tǒng)的體系結(jié)構(gòu)(模塊組織、接口、數(shù)據(jù)庫(kù)等) 步驟 : 概要設(shè)計(jì):也稱為總體設(shè)計(jì),確定軟件體系結(jié)構(gòu) 詳細(xì)設(shè)計(jì):模塊內(nèi)部的具體設(shè)計(jì)設(shè)想供選擇的方案選取合理的方案推薦最佳方案功能分解設(shè)計(jì)軟件結(jié)構(gòu)數(shù)據(jù)庫(kù)設(shè)計(jì)制定測(cè)試計(jì)劃書寫文檔審查和復(fù)審過程:20 基本思想:自頂向下的模塊化設(shè)計(jì)方法

11、 設(shè)計(jì)方法:面向數(shù)據(jù)流的方法 變換流 變換分析法 事務(wù)流 事務(wù)分析法 描述方式:軟件結(jié)構(gòu)圖 優(yōu)點(diǎn): 模塊可以獨(dú)立地被理解、編程、調(diào)試、排錯(cuò)和修改 簡(jiǎn)化研制工作,縮短開發(fā)周期,減少人力 模塊相對(duì)獨(dú)立,提高系統(tǒng)可靠性2.4 結(jié)構(gòu)化設(shè)計(jì)21 信息流與軟件結(jié)構(gòu)的映射方法2.4 結(jié)構(gòu)化設(shè)計(jì)22 矩形框表示,內(nèi)部是模塊名 模塊名表達(dá)模塊功能,常用動(dòng)賓短語 可復(fù)用的模塊用雙縱邊矩形框表示如:2.4 結(jié)構(gòu)化設(shè)計(jì) 精確表達(dá)系統(tǒng)模塊組織結(jié)構(gòu) 反映模塊間的相互聯(lián)系(層次關(guān)系、調(diào)用關(guān)系) 表示: 模塊 模塊間的調(diào)用關(guān)系 模塊間的信息傳遞 軟件結(jié)構(gòu)圖 :簡(jiǎn)單調(diào)用 判斷調(diào)用 循環(huán)調(diào)用 數(shù)據(jù)信息 控制信息如 :232.4

12、結(jié)構(gòu)化設(shè)計(jì) 優(yōu)秀的軟件結(jié)構(gòu): 具有層次性(腰鼓形) 最高層模塊只有一個(gè),最下層模塊完成基本操作 沒有模塊“越層、同層調(diào)用”出現(xiàn) 頂層模塊高扇出,中層模塊低扇出,底層模塊高扇入242.4 結(jié)構(gòu)化設(shè)計(jì) 軟件設(shè)計(jì)原理:模塊化原理:模塊:?jiǎn)为?dú)命名的可以通過名字訪問的數(shù)據(jù)說明、 可執(zhí)行語句等程序?qū)ο蟮募稀DK的外部特征:輸入、輸出、功能模塊的內(nèi)部特征:內(nèi)部數(shù)據(jù)和程序代碼模塊化:把一個(gè)復(fù)雜的大型程序劃分成若干個(gè)模塊, 每個(gè)模塊完成一個(gè)子功能,把這些模塊匯 總起來組成一個(gè)整體,可以完成指定的功 能而滿足問題的要求。 252.4 結(jié)構(gòu)化設(shè)計(jì) 軟件設(shè)計(jì)原理:信息隱蔽:一個(gè)模塊內(nèi)所包含的信息(數(shù)據(jù)和代碼) 對(duì)于

13、不需要這些信息的模塊不能訪問3)模塊獨(dú)立性:軟件系統(tǒng)中的每個(gè)模塊只完成一個(gè)相對(duì) 獨(dú)立的子功能,且與其它模塊間的接口 簡(jiǎn)單262.4 結(jié)構(gòu)化設(shè)計(jì)定性度量?jī)?nèi)聚:一個(gè)模塊內(nèi)各組成元素間彼此聯(lián)系的緊密程度耦合:不同模塊之間相互聯(lián)系的緊密程度 影響因素:模塊間的聯(lián)系方式(調(diào)用方式) 模塊間的接口性質(zhì)(由信息性質(zhì)決定) 數(shù)據(jù)型、控制型、描述型標(biāo)志、混合型 接口上通過的數(shù)據(jù)量結(jié)構(gòu)化設(shè)計(jì)目標(biāo):高內(nèi)聚、低耦合3) 模塊獨(dú)立性:272.4 結(jié)構(gòu)化設(shè)計(jì) 模塊間的耦合程度: 無耦合 數(shù)據(jù)耦合 特征耦合 控制耦合 公共耦合 內(nèi)容耦合 設(shè)計(jì)原則:以數(shù)據(jù)耦合為主,特征耦合為輔,少用 控制耦合,限制公共耦合,杜絕內(nèi)容耦合無耦

14、合 : 模塊完全獨(dú)立工作,與其它模塊無任何連接,耦合程度最低。低高數(shù)據(jù)耦合 : 模塊間僅僅通過參數(shù)交換數(shù)據(jù)信息,是松散耦合,模塊間獨(dú)立性較強(qiáng)。特征耦合 : 模塊間通過參數(shù)傳遞整個(gè)或部分?jǐn)?shù)據(jù)結(jié)構(gòu),但只需要部分?jǐn)?shù)據(jù)元素??刂岂詈希?模塊間傳遞控制信息,修改模塊,將影響到控制模塊,降低模塊的獨(dú)立性。公共耦合: 模塊間使用了公共數(shù)據(jù),如全程變量、共享通信區(qū)、內(nèi)存的公共覆蓋區(qū)等,降低系統(tǒng)的可讀性、可修改性和可靠性。內(nèi)容耦合,形式:(1)訪問其它模塊的內(nèi)部數(shù)據(jù);(2)不通過正常入口進(jìn)入其它模塊內(nèi)部;(3)代碼重疊;(4)模塊有多個(gè)入口(多功能)282.4 結(jié)構(gòu)化設(shè)計(jì) 模塊的內(nèi)聚性:29軟件設(shè)計(jì)原理 偶然內(nèi)

15、聚 邏輯內(nèi)聚 時(shí)間內(nèi)聚 過程內(nèi)聚 通信內(nèi)聚 順序內(nèi)聚 功能內(nèi)聚偶然內(nèi)聚存入打印結(jié)果引用同一個(gè)數(shù)據(jù)數(shù)據(jù)修改刪除產(chǎn)生同一個(gè)輸出通信內(nèi)聚構(gòu)造矩陣矩陣矩陣順序內(nèi)聚功能內(nèi)聚矩陣轉(zhuǎn)置輸出矩陣低高低內(nèi)聚中內(nèi)聚高內(nèi)聚 模塊的內(nèi)聚性:302.4 結(jié)構(gòu)化設(shè)計(jì) 軟件設(shè)計(jì)原則: 模塊分解的啟發(fā)式規(guī)則: 提高模塊獨(dú)立性 模塊規(guī)模適中 模塊的扇入、扇出適當(dāng) “腰鼓”形:頂層扇出大、中間扇出較小、底層扇入大 作用域保持在控制域中 作用域:受模塊內(nèi)一個(gè)判定影響的模塊的集合 控制域:模塊本身及其直接或間接下屬模塊的集合312.4 結(jié)構(gòu)化設(shè)計(jì)(a)作用域在控制域外topXYABCD(b)判定的層次太高topXYABDC(c)有一

16、個(gè)不必要的穿越topXYABCDtopXYABCD(d)作用域等于控制域322.4 結(jié)構(gòu)化設(shè)計(jì) 結(jié)構(gòu)化設(shè)計(jì)策略: 將數(shù)據(jù)流圖映射為軟件結(jié)構(gòu) 數(shù)據(jù)流圖類型 變換型:以變換為中心 由輸入、主處理、輸出三部分組成 事務(wù)型:以事務(wù)為中心 一個(gè)中心處理將其輸入數(shù)據(jù)流分離成一串 平行的輸出數(shù)據(jù)流332.4 結(jié)構(gòu)化設(shè)計(jì) 結(jié)構(gòu)圖類型 變換型 事務(wù)型342.4 結(jié)構(gòu)化設(shè)計(jì) 變換分析策略構(gòu)造變換型結(jié)構(gòu)圖 步驟 找出邏輯輸入、主處理、邏輯輸出 設(shè)計(jì)結(jié)構(gòu)圖的第一層和第二層 自頂向下設(shè)計(jì)下層模塊邏輯輸入邏輯輸出主處理主控352.4 結(jié)構(gòu)化設(shè)計(jì)362.4 結(jié)構(gòu)化設(shè)計(jì)372.4 結(jié)構(gòu)化設(shè)計(jì) 事務(wù)分析策略構(gòu)造事務(wù)型結(jié)構(gòu)圖 步驟 識(shí)別事務(wù)中心處理和事務(wù)處理 設(shè)計(jì)結(jié)構(gòu)圖的第一層和第二層 為每個(gè)事務(wù)處理設(shè)計(jì)下層操作模塊,可以共享 設(shè)計(jì)細(xì)節(jié)模塊,也可以被操作模塊共享 混合型結(jié)構(gòu)圖 以變換分析為主,事務(wù)分析為輔 舉例:定貨系統(tǒng)382.4 結(jié)構(gòu)化設(shè)計(jì)39 對(duì)初始結(jié)構(gòu)圖的優(yōu)化 模塊獨(dú)立性 加強(qiáng)模塊內(nèi)部聯(lián)系 減少模塊之間的聯(lián)系 優(yōu)化原則:先使它工作,然后再使它快起來 數(shù)據(jù)庫(kù)設(shè)計(jì) E-R圖轉(zhuǎn)化成對(duì)應(yīng)的關(guān)系模式 規(guī)范化2.4 結(jié)構(gòu)化設(shè)計(jì)40問題定義

溫馨提示

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

評(píng)論

0/150

提交評(píng)論