版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第二部分 結(jié)構(gòu)化分析與設(shè)計(jì)竇萬(wàn)峰計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院南京師范大學(xué)2013年9月回答問(wèn)題什么是軟件分析與設(shè)計(jì)?軟件需求分析有哪些過(guò)程?如何啟動(dòng)分析過(guò)程?什么是面向數(shù)據(jù)的建模?什么是面向數(shù)據(jù)流的建模?什么是非形式化建模、半形式化建模和形式化建模?結(jié)構(gòu)化分析與設(shè)計(jì)模型有哪些?如何編寫(xiě)分析與設(shè)計(jì)文檔?第第4 4章章 軟件需求分析(內(nèi)容提要)軟件需求分析(內(nèi)容提要)什么是軟件需求?軟件需求分析有哪些過(guò)程?如何啟動(dòng)分析過(guò)程?需求規(guī)格文檔有哪些內(nèi)容?需求分析有哪些技術(shù)?軟件需求軟件需求業(yè)務(wù)需求與用戶需求:源于系統(tǒng)的特定領(lǐng)域的需求和用戶使用交互需求。功能需求:描述系統(tǒng)預(yù)期提供的功能或服務(wù)對(duì)系統(tǒng)應(yīng)提供的服務(wù)如何
2、對(duì)輸入做出反應(yīng)系統(tǒng)在特定條件下的行為非功能需求:指那些不直接與系統(tǒng)具體功能相關(guān)的一類(lèi)需求產(chǎn)品需求機(jī)構(gòu)需求外部需求功能需求功能需求軟件系統(tǒng)的功能需求描述可以有許多方式:文字描述圖表表示功能需求可以以不同的詳細(xì)程度反復(fù)編寫(xiě)和細(xì)化功能需求描述應(yīng)該完整而且一致和準(zhǔn)確完整性完整性意味著用戶所需的所有的服務(wù)應(yīng)該全部給出描述一致性一致性意味著需求描述不能前后矛盾準(zhǔn)確性準(zhǔn)確性是指需求不能出現(xiàn)模糊和二義性的地方功能需求描述:出卷系統(tǒng)教師能夠根據(jù)自己的要求手動(dòng)要求手動(dòng)或自動(dòng)自動(dòng)出一份試卷;教師可以修改試卷中不合適的題目,并能自動(dòng)生成各種樣式樣式的試卷;教師可以對(duì)試題中的題目進(jìn)行更新更新。非功能需求非功能需求非功能
3、需求主要與系統(tǒng)的總體特征相關(guān),是一些限制性要求,是對(duì)實(shí)際使用環(huán)境所做的要求性能要求可靠性要求安全性要求可用性要求移植性要求非功能需求關(guān)心的是系統(tǒng)整體特征整體特征而不是個(gè)別的系統(tǒng)的特征,比功能需求對(duì)系統(tǒng)更關(guān)鍵。非功能需求卻很難檢驗(yàn)非功能需求與功能需求有時(shí)會(huì)發(fā)生沖突,它們之間存在著相互作用關(guān)系非功能需求舉例非功能需求舉例一個(gè)POS系統(tǒng)所需的存儲(chǔ)存儲(chǔ)因?yàn)槌杀驹蛴兴拗?,而商品的描述和價(jià)目表的信息量很大。如果采用遠(yuǎn)程服務(wù)器,提供商品描述和價(jià)目表信息,那必然需要網(wǎng)絡(luò)通信,而這需要網(wǎng)絡(luò)技術(shù)。當(dāng)POS機(jī)數(shù)量多時(shí)必然引起服務(wù)器處理瓶頸問(wèn)題。業(yè)務(wù)需求業(yè)務(wù)需求領(lǐng)域需求反映應(yīng)用領(lǐng)域的基本問(wèn)題,直接影響到系統(tǒng)的可用
4、性。例如:圖書(shū)館系統(tǒng)的功能需求基于標(biāo)準(zhǔn)用戶界面將一些文檔輸出到本地打印機(jī)或網(wǎng)絡(luò)打印機(jī)上,但因?yàn)榘鏅?quán)限制版權(quán)限制,這些文檔打印之后應(yīng)立即刪除。需求分析過(guò)程需求分析過(guò)程需求分析主要是理解客戶需要什么、分析要求、評(píng)價(jià)可行性、協(xié)商合理的方案、無(wú)歧義地詳細(xì)說(shuō)明方案、確認(rèn)規(guī)格說(shuō)明、管理需求以至將這些需求轉(zhuǎn)化為可行系統(tǒng).過(guò)程包括:溝通導(dǎo)出需求精化需求可行性研究與客戶協(xié)商編寫(xiě)需求規(guī)格說(shuō)明驗(yàn)證需求管理需求溝通業(yè)務(wù)領(lǐng)域的共利益者共利益者(如業(yè)務(wù)管理人員,市場(chǎng)營(yíng)銷(xiāo)人員,產(chǎn)品管理人員)定義業(yè)務(wù)用例業(yè)務(wù)用例確定市場(chǎng)的范圍范圍初略地可行性分析確定項(xiàng)目范圍項(xiàng)目范圍的工作說(shuō)明導(dǎo)出需求導(dǎo)出需求導(dǎo)出需求應(yīng)理解問(wèn)題范圍問(wèn)題:系統(tǒng)的
5、邊界,是客戶和開(kāi)發(fā)者共同關(guān)心的部分理解問(wèn)題:確定業(yè)務(wù)需求、需求沖突、說(shuō)明有歧義和不可測(cè)試的需求易變問(wèn)題:分清需求穩(wěn)定部分和易變部分收集活動(dòng):識(shí)別真正的客戶/用戶正確理解客戶的需求耐心聽(tīng)取客戶意見(jiàn)和思考盡量使用符合客戶語(yǔ)言習(xí)慣的表達(dá)精化需求精化需求開(kāi)發(fā)一個(gè)精確的技術(shù)模型技術(shù)模型,用以說(shuō)明軟件的功能、特征和約束。精化是一個(gè)分析建模動(dòng)作,由一系列建模和求精任務(wù)構(gòu)成定義了問(wèn)題的信息域信息域,功能域功能域和行為域行為域可行性研究可行性研究可行性研究的目的是確定用最小的代價(jià),在盡可能短的時(shí)間內(nèi)確定問(wèn)題是否能夠解決可行性研究的輸入是系統(tǒng)的一個(gè)框架描述和高層邏輯模型邏輯模型輸出是一份需求開(kāi)發(fā)評(píng)價(jià)報(bào)告評(píng)價(jià)報(bào)告,
6、對(duì)需求工程和系統(tǒng)開(kāi)發(fā)是否值得做的具體建議和意見(jiàn)三個(gè)問(wèn)題:系統(tǒng)是否符合機(jī)構(gòu)的總體要求?系統(tǒng)是否可以在現(xiàn)有的技術(shù)條件、預(yù)算和時(shí)間限制內(nèi)完成?系統(tǒng)能否把已存在的其他系統(tǒng)集成?與客戶協(xié)商與客戶協(xié)商調(diào)節(jié)沖突和問(wèn)題需求排序識(shí)別和分析與每項(xiàng)需求相關(guān)的風(fēng)險(xiǎn)、開(kāi)發(fā)工作量、成本和交付時(shí)間編寫(xiě)軟件需求規(guī)格說(shuō)明一個(gè)規(guī)格說(shuō)明可以是一份寫(xiě)好的文檔、一套圖形化的模型、一個(gè)形式化的數(shù)學(xué)模型、一組使用場(chǎng)景、一個(gè)原型或以上各項(xiàng)的任意組合。軟件需求規(guī)格(SRS,Software Requirement Specification)是需求分析任務(wù)的最終“產(chǎn)品”,它是客戶、管理者、分析工程師、測(cè)試工程師、維護(hù)工程師交流的標(biāo)準(zhǔn)和依據(jù)。軟
7、件需求規(guī)格描述了系統(tǒng)的數(shù)據(jù)、功能、行為、性能需求、設(shè)計(jì)約束、驗(yàn)收標(biāo)準(zhǔn)、以及其他與需求相關(guān)的信息。SRS模板,包括用戶需求和系統(tǒng)需求(表4-1)需求規(guī)格文檔標(biāo)準(zhǔn)(表4-1)1 引言 1.1 編寫(xiě)目的 1.2 項(xiàng)目背景(單位和與其他系統(tǒng)的關(guān)系) 1.3 定義(專(zhuān)門(mén)術(shù)語(yǔ)和縮寫(xiě)詞)2 任務(wù)概述 2.1 目標(biāo) 2.2 運(yùn)行環(huán)境 2.3 條件限制3 數(shù)據(jù)描述 3.1 靜態(tài)數(shù)據(jù) 3.2 動(dòng)態(tài)數(shù)據(jù) 3.3 數(shù)據(jù)庫(kù)描述 3.4 數(shù)據(jù)字典 3.5 數(shù)據(jù)采集4 功能需求 4.1 功能劃分 4.2 功能描述5 性能需求 5.1 數(shù)據(jù)精確度 5.2 時(shí)間特性 5.3 適應(yīng)性6 運(yùn)行需求 5.1 用戶界面 5.2 硬件接
8、口 5.3 軟件接口 5.4 故障處理7 其他需求(檢測(cè)或驗(yàn)收標(biāo)準(zhǔn)、可用性、可維護(hù)性可移植性、安全保密性)驗(yàn)證需求驗(yàn)證需求驗(yàn)需求證對(duì)需求文檔和制品進(jìn)行質(zhì)量評(píng)估,確保需求說(shuō)明準(zhǔn)確、完整.包括以下內(nèi)容:正確性一致性完整性可行性必要性可檢驗(yàn)性需求的可跟蹤性最后簽字確認(rèn)管理需求管理需求管理需求是組織、控制和文檔化需求的系統(tǒng)方法.建立基線以便在客戶和開(kāi)發(fā)人員之間構(gòu)建一個(gè)約定.需求管理從標(biāo)識(shí)開(kāi)始,建立跟蹤表.需求跟蹤表可以跟蹤需求的特征、來(lái)源、依賴、子系統(tǒng)和接口等關(guān)系.會(huì)談技術(shù)技術(shù)非正式會(huì)談:提出一些可自由回答的問(wèn)題.正式會(huì)談:提出一些事先準(zhǔn)備好的議題.情景分析:需求分析從對(duì)場(chǎng)景的評(píng)論中得到信息,然后再將
9、其以形式化方式表示出來(lái)。使用用例使用用例建立原型界面序列執(zhí)行過(guò)程視點(diǎn)分析接受系統(tǒng)服務(wù)的當(dāng)前銀行客戶銀行客戶;銀行間自動(dòng)柜員機(jī)有互惠協(xié)議的其他銀行的代表代表;從該系統(tǒng)中獲得管理信息的銀行支行管理者支行管理者;負(fù)責(zé)系統(tǒng)日常運(yùn)轉(zhuǎn)和處理客戶意見(jiàn)的支行柜臺(tái)職員柜臺(tái)職員;負(fù)責(zé)系統(tǒng)和客戶數(shù)據(jù)庫(kù)集成的數(shù)據(jù)庫(kù)管理者數(shù)據(jù)庫(kù)管理者;負(fù)責(zé)保證系統(tǒng)信息安全的銀行信息安全管理者信息安全管理者;將該系統(tǒng)視為銀行市場(chǎng)開(kāi)拓手段的銀行市場(chǎng)開(kāi)發(fā)部市場(chǎng)開(kāi)發(fā)部;負(fù)責(zé)硬件和軟件維護(hù)及升級(jí)的硬件和軟件維護(hù)工程師硬件和軟件維護(hù)工程師多視點(diǎn)的需求分析過(guò)程視點(diǎn)識(shí)別:包括發(fā)現(xiàn)接收系統(tǒng)服務(wù)的視點(diǎn)和發(fā)現(xiàn)提供給每個(gè)視點(diǎn)的特別服務(wù)。視點(diǎn)組織:包括組織相關(guān)
10、的視點(diǎn)到層次結(jié)構(gòu)中,通用的服務(wù)放在較高的層次,并被較低層次的視點(diǎn)繼承。視點(diǎn)文檔編寫(xiě):包括對(duì)被識(shí)別的視點(diǎn)和服務(wù)描述的精煉。視點(diǎn)系統(tǒng)映射:包括在面向?qū)ο笤O(shè)計(jì)中通過(guò)封裝在視點(diǎn)中的服務(wù)信息識(shí)別對(duì)象。調(diào)查表技術(shù)制定調(diào)查表可靠可信分析場(chǎng)景分析場(chǎng)景分析分析員與項(xiàng)目相關(guān)人員共同識(shí)別出情景,并捕獲這些情景的細(xì)節(jié)。把細(xì)節(jié)加入到一個(gè)綱要的需求描述中時(shí),情景特別有用.情景是對(duì)交互實(shí)例片斷的描述,每個(gè)情景可能包含一個(gè)或多個(gè)交互,它們能在不同的細(xì)節(jié)層次上提供不同類(lèi)型的情景信息.情景開(kāi)始于一個(gè)框架,在導(dǎo)出過(guò)程中,細(xì)節(jié)被逐漸增加,直到產(chǎn)生交互的一個(gè)完整的描述.情景內(nèi)容 在情景開(kāi)始部分有一個(gè)系統(tǒng)狀態(tài)描述; 關(guān)于標(biāo)準(zhǔn)事件流的描述
11、; 關(guān)于哪兒會(huì)出錯(cuò),以及如何處理錯(cuò)誤的描述; 有關(guān)其他可能在同一時(shí)間進(jìn)行的活動(dòng)的信息; 在情景完成后系統(tǒng)狀態(tài)的描述場(chǎng)景名場(chǎng)景名:取款參與者參與者:銀行客戶場(chǎng)景描述場(chǎng)景描述: 1插入有效的銀行卡; 2ATM機(jī)驗(yàn)證該銀行卡; 3系統(tǒng)要求輸入銀行卡密碼,用戶輸入密碼; 4系統(tǒng)通過(guò)網(wǎng)絡(luò)向銀行內(nèi)部系統(tǒng)請(qǐng)求驗(yàn)證密碼; 5若驗(yàn)證通過(guò),系統(tǒng)請(qǐng)求選擇業(yè)務(wù),選擇取款; 6系統(tǒng)要求輸入取款金額,比如1000元; 7系統(tǒng)驗(yàn)證是有足夠的現(xiàn)金,并請(qǐng)求驗(yàn)證銀行內(nèi)部服務(wù)器處理取款; 8若處理成功,系統(tǒng)計(jì)算鈔票數(shù)目,并送出現(xiàn)金; 9用戶取走現(xiàn)金; 10系統(tǒng)打印憑條,用戶取走憑條; 11系統(tǒng)退出銀行卡,用戶取走銀行卡。實(shí)例分析:
12、出卷系統(tǒng)實(shí)例分析:出卷系統(tǒng)用戶:教師:關(guān)注如何出一份合理的試卷,并能根據(jù)樣式打印與輸出。學(xué)生:關(guān)注如何通過(guò)生成一些模擬試題,并在線學(xué)習(xí)和檢查學(xué)習(xí)結(jié)果。題庫(kù)維護(hù)人員:關(guān)注試題的添加、更新和刪除等工作。視點(diǎn):教師關(guān)注自動(dòng)出卷、手工出卷、試卷編輯和試卷輸出。學(xué)生關(guān)注隨時(shí)抽卷、聯(lián)系試卷和評(píng)價(jià)分析。題庫(kù)維護(hù)人員關(guān)注試題管理。出卷系統(tǒng)的功能需求自動(dòng)出卷:系統(tǒng)根據(jù)教師的要求自動(dòng)生成一份合理的試卷。手動(dòng)出卷:教師手動(dòng)從候選的試題中挑選題目。隨機(jī)抽卷:系統(tǒng)隨機(jī)抽取試題生產(chǎn)一份試卷。在線練習(xí):學(xué)生可以在線做練習(xí)和查看答案。在線評(píng)價(jià):系統(tǒng)在線評(píng)價(jià)學(xué)生練習(xí)的情況。試題管理:管理人員維護(hù)題庫(kù)中的試題。試卷編輯:更新試題
13、。試卷輸出:根據(jù)某個(gè)樣式輸出試卷。實(shí)例分析:實(shí)例分析: POSPOS機(jī)系統(tǒng)機(jī)系統(tǒng)收銀員:能夠準(zhǔn)確、快速地輸入,而且沒(méi)有支付錯(cuò)誤,因?yàn)槿绻偈肇浛?,將從其薪水眾扣除。售貨員:自動(dòng)更新銷(xiāo)售提成。顧客:希望以最小代價(jià)完成購(gòu)買(mǎi)活動(dòng)并得到快速服務(wù)。便捷、清晰地看到所輸入的商品項(xiàng)目和價(jià)格。得到購(gòu)買(mǎi)憑證,以便退貨。公司:希望準(zhǔn)確地記錄交易,滿足顧客要求。確保記錄了支付授權(quán)服務(wù)的支付票據(jù)。有一定的容錯(cuò)性。能夠自動(dòng)、快速地更新記帳和庫(kù)存信息。經(jīng)理:能夠快速執(zhí)行超控操作,并易于更正收銀員的不當(dāng)操作。支持授權(quán)服務(wù):依據(jù)正確的通信格式進(jìn)行授權(quán)服務(wù)。庫(kù)存系統(tǒng):正確的方式更新庫(kù)存信息。記賬系統(tǒng):能夠準(zhǔn)確地記錄每次銷(xiāo)售支付
14、信息。POS機(jī)系統(tǒng)主要功能需求處理銷(xiāo)售:收銀員完成一次銷(xiāo)售記錄,并出具票據(jù)和更新庫(kù)存系統(tǒng)和帳務(wù)系統(tǒng)。處理支付:完成一次銷(xiāo)售對(duì)應(yīng)的支付,包括現(xiàn)金支付,信用卡支付和支票支付。處理退貨:根據(jù)顧客請(qǐng)求完成商品退貨處理。辦理會(huì)員卡:注冊(cè)、注銷(xiāo)和更新會(huì)員記錄。實(shí)例分析:圖書(shū)館系統(tǒng)實(shí)例分析:圖書(shū)館系統(tǒng)圖書(shū)館系統(tǒng)的共利益者與視點(diǎn)有:圖書(shū)流通管理:負(fù)責(zé)圖書(shū)借還工作。用戶:希望快速得到借書(shū),還書(shū)服務(wù),能夠續(xù)借、預(yù)約圖書(shū),以及查詢個(gè)人和圖書(shū)信息。編目管理員:負(fù)責(zé)圖書(shū)的管理、用戶管理和處理罰金等。圖書(shū)館系統(tǒng)的主要功能需求圖書(shū)借出:管理員完成一次借書(shū)過(guò)程。圖書(shū)歸還:管理員完成一次還書(shū)過(guò)程。圖書(shū)預(yù)約:用戶查詢要借的圖書(shū),
15、若不能借,可預(yù)約該圖書(shū)。圖書(shū)續(xù)借:用戶可以將圖書(shū)的歸還日期延長(zhǎng)一段時(shí)間。圖書(shū)管理:添加新書(shū)。更新圖書(shū)館信息,銷(xiāo)毀圖書(shū)。用戶管理:注冊(cè)新用戶,更新用戶信息,注銷(xiāo)用戶。處理罰金:用戶繳納罰金吼,系統(tǒng)將罰金數(shù)額清零。實(shí)例分析:實(shí)例分析: ATMATM系統(tǒng)系統(tǒng)銀行客戶:接受系統(tǒng)服務(wù);銀行的代表:銀行間自動(dòng)柜員機(jī)有互惠協(xié)議;支行管理者:從該系統(tǒng)中獲得管理信息;支行柜臺(tái)職員:負(fù)責(zé)系統(tǒng)日常運(yùn)轉(zhuǎn)和處理客戶意見(jiàn);數(shù)據(jù)庫(kù)管理者:負(fù)責(zé)系統(tǒng)和客戶數(shù)據(jù)庫(kù)集成;銀行信息安全管理者:負(fù)責(zé)保證系統(tǒng)信息安全;銀行市場(chǎng)開(kāi)發(fā)部:將該系統(tǒng)視為銀行市場(chǎng)開(kāi)拓手段;硬件和軟件工程師:負(fù)責(zé)硬件和軟件維護(hù)及升級(jí)。ATMATM系統(tǒng)系統(tǒng)主要功能需
16、求存款:從ATM機(jī)上存錢(qián)到指定賬戶上。取款:從指定賬戶上取一定數(shù)量的貨幣。轉(zhuǎn)賬:從一個(gè)賬戶取出一定數(shù)量的貨幣,然后轉(zhuǎn)存到另一個(gè)賬號(hào)上。查詢余額:察看指定賬戶的余額。修改密碼:修改賬戶密碼。小結(jié)小結(jié)需求分析也稱(chēng)為需求工程,是一個(gè)非常重要而有很復(fù)雜的,需要交替進(jìn)行,反復(fù)迭代的過(guò)程。軟件需求分為功能需求和非功能需求。功能需求描述系統(tǒng)所預(yù)期提供的服務(wù),而非功能需求描述與系統(tǒng)不直接相關(guān)的一些需求。領(lǐng)域需求是一種特有的功能需求,反應(yīng)應(yīng)用領(lǐng)域的基本問(wèn)題。軟件需求規(guī)格說(shuō)明文檔描述了系統(tǒng)的數(shù)據(jù)、功能、行為、性能需求、設(shè)計(jì)約束、驗(yàn)收標(biāo)準(zhǔn)以及其他于需求相關(guān)的信息,它有可能成為客戶與開(kāi)發(fā)商之間的合同。需求分析過(guò)程通過(guò)
17、執(zhí)行初步溝通、需求導(dǎo)出、分析與精化、可行性研究、協(xié)商和溝通、規(guī)格說(shuō)明、驗(yàn)證和變更管理八個(gè)不同的活動(dòng)來(lái)完成。非形式技術(shù)主要包括會(huì)談、調(diào)查表和場(chǎng)景技術(shù),用于獲取用戶需求和系統(tǒng)需求。第5章 結(jié)構(gòu)化分析與建模結(jié)構(gòu)化分析與建模分析模型元素結(jié)構(gòu)化需求分析面向數(shù)據(jù)的建模方法案例分析結(jié)構(gòu)化分析結(jié)構(gòu)化分析(SA,Structured Analysis)方法是20世紀(jì)70年代,由E.Yourdon等人倡導(dǎo)的一種適用于大型數(shù)據(jù)處理系統(tǒng)的、面向數(shù)據(jù)流的需求分析方法。結(jié)構(gòu)化分析方法是一種傳統(tǒng)的系統(tǒng)建模技術(shù),其過(guò)程是創(chuàng)建描述信息內(nèi)容和數(shù)據(jù)流的模型,依據(jù)功能和行為對(duì)系統(tǒng)進(jìn)行劃分,并描述必須建立的系統(tǒng)要素。結(jié)構(gòu)化需求分析指導(dǎo)
18、性原則理解問(wèn)題開(kāi)發(fā)模型描述需求建立系統(tǒng)模型確定需求優(yōu)先級(jí)驗(yàn)證需求結(jié)構(gòu)化分析建模需求分析的任務(wù)就是準(zhǔn)確地指出“軟件目標(biāo)產(chǎn)品必須做什么?”需求分析的一個(gè)重要過(guò)程就是需求建模的過(guò)程結(jié)構(gòu)化分析方法是一種傳統(tǒng)的系統(tǒng)建模技術(shù)主要目標(biāo):描述客戶的需要;建立軟件設(shè)計(jì)的基礎(chǔ);定義在軟件完成后可以確認(rèn)的一組需求。分析模型分析模型分析模型的目的是為基于計(jì)算機(jī)系統(tǒng)提供必須的信息、功能和行為域的說(shuō)明模型是對(duì)系統(tǒng)某個(gè)方面的抽象,拋棄了具體細(xì)節(jié),對(duì)系統(tǒng)中最突出的特征作簡(jiǎn)化分析模型元素:基于場(chǎng)景的元素基于過(guò)程的活動(dòng)序列的元素基于類(lèi)的元素行為元素面向信息流的元素基于數(shù)據(jù)的元素分析模型的目標(biāo)與原則分析模型的目標(biāo)與原則分析模型的所
19、有元素都可以直接映射到設(shè)計(jì)模型.創(chuàng)建分析模型時(shí)應(yīng)遵循的原則:模型應(yīng)關(guān)注在問(wèn)題或業(yè)務(wù)域內(nèi)可見(jiàn)的需求,抽象的級(jí)別相對(duì)高;分析模型的每個(gè)元素都應(yīng)能增加對(duì)軟件需求的整體理解,并提供對(duì)信息域、功能和系統(tǒng)行為的深入理解;基于基礎(chǔ)機(jī)構(gòu)和其他非功能的模型應(yīng)推延到設(shè)計(jì)階段再考慮;最小化整個(gè)系統(tǒng)內(nèi)的關(guān)聯(lián);確認(rèn)分析模型為所有共利益者都帶來(lái)價(jià)值;盡可能保持模型簡(jiǎn)潔.結(jié)構(gòu)化需求分析結(jié)構(gòu)化需求分析用戶需求用戶需求一般用自然語(yǔ)言描述系統(tǒng)需求系統(tǒng)需求必須用較專(zhuān)業(yè)的方式來(lái)描述模型是軟件設(shè)計(jì)的基礎(chǔ),也是創(chuàng)建規(guī)約的基礎(chǔ)需求分析原則:表示和理解問(wèn)題的信息域;定義軟件將完成的功能;表示軟件的行為(作為外部事件的結(jié)果);劃分描述信息、功
20、能和行為的模型,從而使得可以以層次的方式揭示細(xì)節(jié);分析過(guò)程應(yīng)該從要素信息移向細(xì)節(jié)實(shí)現(xiàn)。結(jié)構(gòu)化分析模型結(jié)構(gòu)化分析模型系統(tǒng)模型從以下不同的角度表述系統(tǒng):從外部來(lái)看,它是對(duì)系統(tǒng)分析上下文或系統(tǒng)環(huán)境建模;從行為上看,它是對(duì)系統(tǒng)行為建模;從結(jié)構(gòu)上看,它是對(duì)系統(tǒng)的體系結(jié)構(gòu)和系統(tǒng)處理的數(shù)據(jù)結(jié)構(gòu)建模。結(jié)構(gòu)化的需求分析模型有:系統(tǒng)行為模型:數(shù)據(jù)流模型,用來(lái)描述系統(tǒng)中的數(shù)據(jù)處理過(guò)程狀態(tài)轉(zhuǎn)換模型,用來(lái)描述系統(tǒng)如何對(duì)事件做出響應(yīng)實(shí)體關(guān)系模型:關(guān)心的是尋找系統(tǒng)中的數(shù)據(jù)及其之間的關(guān)系,卻不關(guān)心系統(tǒng)中包含的功能。結(jié)構(gòu)化分析模型結(jié)構(gòu)實(shí)體-關(guān)系圖數(shù)據(jù)流圖加工規(guī)約數(shù)據(jù)對(duì)象描述狀態(tài)轉(zhuǎn)換圖控制規(guī)約結(jié)構(gòu)化分析模型組成分析模型結(jié)構(gòu)的核心
21、是數(shù)據(jù)字典(DD,Data Dictionary),包含了軟件使用或生產(chǎn)的所有數(shù)據(jù)對(duì)象描述的中心庫(kù)。分析模型結(jié)構(gòu)的中間層有三種視圖:數(shù)據(jù)流圖(DFD,Data Flow Diagram)服務(wù)于兩個(gè)目的:一是指明數(shù)據(jù)在系統(tǒng)中移動(dòng)時(shí)如何被變換,二是描述對(duì)數(shù)據(jù)流進(jìn)行變換的功能和子功能。實(shí)體關(guān)系圖(E-RD,Entity-Relationship Diagram)描述數(shù)據(jù)對(duì)象間的關(guān)系,用來(lái)進(jìn)行數(shù)據(jù)建?;顒?dòng)的記號(hào)。狀態(tài)轉(zhuǎn)換圖(STD,State Transition Diagram)指明作為外部事件的結(jié)果,系統(tǒng)將如何動(dòng)作。分析模型結(jié)構(gòu)的外層是規(guī)約描述:在實(shí)體關(guān)系圖中每個(gè)數(shù)據(jù)對(duì)象的屬性可以使用數(shù)據(jù)對(duì)象來(lái)描
22、述。在數(shù)據(jù)流圖中出現(xiàn)的每個(gè)加工/處理的功能描述包含在加工規(guī)約中。軟件控制方面的附加信息包含在控制規(guī)約中面向數(shù)據(jù)流的建模方法面向數(shù)據(jù)流的建模方法面向數(shù)據(jù)流的建模是結(jié)構(gòu)化需求分析方法之一采用自頂向下逐層分解,描繪滿足用戶要求的軟件模型表示:數(shù)據(jù)流圖:描述系統(tǒng)處理過(guò)程數(shù)據(jù)字典:模型中的數(shù)據(jù)信息集合數(shù)據(jù)流圖符號(hào)數(shù)據(jù)源點(diǎn)或終點(diǎn)變換數(shù)據(jù)的處理數(shù)據(jù)存儲(chǔ)數(shù)據(jù)流或或或數(shù)據(jù)流圖舉例設(shè)一個(gè)工廠采購(gòu)部每天需要一張定貨報(bào)表。定貨的零件數(shù)據(jù)有:零件編號(hào)、名稱(chēng)、數(shù)量、價(jià)格、供應(yīng)者等。零件的入庫(kù)、出庫(kù)事務(wù)通過(guò)計(jì)算機(jī)終端輸入給定貨系統(tǒng)。當(dāng)某零件的庫(kù)存數(shù)少于給定的庫(kù)存量臨界值時(shí),就應(yīng)該再次定貨。數(shù)據(jù)流分析:數(shù)據(jù)源點(diǎn):倉(cāng)管員(負(fù)責(zé)
23、入庫(kù)或出庫(kù)事務(wù)給定貨系統(tǒng));數(shù)據(jù)終點(diǎn):采購(gòu)員(接收每天的定貨報(bào)表);數(shù)據(jù)流:事務(wù),定貨;數(shù)據(jù)存儲(chǔ):定貨信息,庫(kù)存清單;處理:處理事務(wù),產(chǎn)生報(bào)表。數(shù)據(jù)流圖舉例畫(huà)基本系統(tǒng)模型采購(gòu)員事務(wù)定貨報(bào)表倉(cāng)管員定貨系統(tǒng)數(shù)據(jù)流圖舉例第一步求精數(shù)據(jù)流圖舉例第二步求精數(shù)據(jù)字典數(shù)據(jù)字典數(shù)據(jù)字典是分析模型中出現(xiàn)的所有名字的一個(gè)集合,并包括有關(guān)命名實(shí)體的描述數(shù)據(jù)字典有以下兩個(gè)作用:它是所有名字信息管理的有效機(jī)制作為連接軟件分析、設(shè)計(jì)、實(shí)現(xiàn)和進(jìn)化階段的開(kāi)發(fā)機(jī)構(gòu)的信息存儲(chǔ)數(shù)據(jù)字典應(yīng)該由四類(lèi)元素的定義組成:數(shù)據(jù)流數(shù)據(jù)流分量數(shù)據(jù)存儲(chǔ)處理對(duì)于處理,可用輸入處理輸出(IPO,Input-Process-Output)視圖描述更方便數(shù)
24、據(jù)字典數(shù)據(jù)字典應(yīng)對(duì)組成的數(shù)據(jù)元素定義進(jìn)行自頂向下的分解。分解的原則是:當(dāng)包含的元素不需要進(jìn)一步定義,且每個(gè)和工程有關(guān)的人都清楚時(shí)為止數(shù)據(jù)字典中應(yīng)該包括關(guān)于數(shù)據(jù)的信息:一般信息(名字、別名、描述等)定義(數(shù)據(jù)類(lèi)型、長(zhǎng)度、結(jié)構(gòu)等)使用特點(diǎn)(值的范圍、使用頻率、使用條件、使用方式、條件值等)控制信息(用戶、使用特點(diǎn)、改變數(shù)、使用權(quán)等)分組信息(文檔結(jié)構(gòu)、從屬結(jié)構(gòu)、物理位置等)三種類(lèi)型的任意組合定義數(shù)據(jù)字典中的任何條目。順序:順序連接兩個(gè)或多個(gè)分量元素。一般用加號(hào)表示順序連接關(guān)系。選擇:從兩個(gè)或多個(gè)可選的分量元素中選取一個(gè)。選擇運(yùn)算符用方括號(hào)表示,對(duì)于多個(gè)可供選擇的元素,用“|”符號(hào)分隔。例如,A-1
25、 | A-2 | A-3 表示三個(gè)可選數(shù)據(jù)元素。重復(fù):描述的分量元素重復(fù)零次或多次。例如, 都表示數(shù)據(jù)元素A的下限為1,上限為5。數(shù)據(jù)字典數(shù)據(jù)字典卡片方式示例名字:定貨報(bào)表別名:定貨信息描述:每天一次需要定貨的零件表定義:定貨報(bào)表=零件編號(hào)+零件名稱(chēng)+定貨數(shù)量+價(jià)格+1供應(yīng)者3 位置:輸出到打印機(jī)名字:零件編號(hào)別名:描述:惟一標(biāo)識(shí)一個(gè)特定零件的關(guān)鍵組成定義:零件編號(hào)=8位字符位置:定貨報(bào)表、定貨信息 庫(kù)存清單名字:定貨數(shù)量別名:描述:某個(gè)零件一次定貨的數(shù)目定義:定貨數(shù)量= 1 | 2 | 3 | 4 | 5 位置:定貨報(bào)表 定貨信息名字:價(jià)格別名:價(jià)格范圍描述:某個(gè)零件目前參考價(jià)格或者上下限定
26、義:價(jià)格=1零件單價(jià)2位置:定貨報(bào)表 定貨信息 庫(kù)存清單面對(duì)面結(jié)對(duì)編程系統(tǒng)舉例問(wèn)題描述問(wèn)題描述:面對(duì)面結(jié)對(duì)編程系統(tǒng)采用雙鼠標(biāo)、雙鍵盤(pán)和雙顯示器共享一臺(tái)主機(jī)的硬件環(huán)境,軟件具有主動(dòng)角色轉(zhuǎn)換、強(qiáng)制角色裝換、相容性分析、Driver時(shí)間統(tǒng)計(jì)等功能,可以免去結(jié)對(duì)編程者之間頻繁的相互交換座位等細(xì)節(jié),使結(jié)對(duì)者更加方便地交流,最大化地提高工作效率,打造出最佳的合作團(tuán)隊(duì)。系統(tǒng)組成結(jié)構(gòu)功能劃分1)系統(tǒng)設(shè)置:系統(tǒng)設(shè)置功能完成系統(tǒng)工作的基本變量設(shè)置,包括系統(tǒng)交互提醒時(shí)間間隔、強(qiáng)制轉(zhuǎn)換角色時(shí)間間隔等。2)個(gè)性評(píng)測(cè):個(gè)性評(píng)測(cè)功能完成結(jié)對(duì)者個(gè)人的性格、能力等方面的評(píng)測(cè),以便分析結(jié)對(duì)相容性情況。3)相容性分析:相容性分析功
27、能完成結(jié)對(duì)者雙方結(jié)對(duì)效果和給出建議。4)主動(dòng)角色互換:主動(dòng)角色互換功能完成結(jié)對(duì)者雙方工作一段時(shí)間后進(jìn)行角色的交換,以便充分發(fā)揮兩個(gè)人的能力。5)系統(tǒng)強(qiáng)制角色互換:當(dāng)結(jié)對(duì)一定時(shí)間后,如果沒(méi)有進(jìn)行主動(dòng)角色互換,則系統(tǒng)會(huì)提醒結(jié)對(duì)者交換角色,并強(qiáng)制進(jìn)行角色交換,以充分體現(xiàn)結(jié)對(duì)的特色。數(shù)據(jù)流分析面向數(shù)據(jù)的建模方法面向數(shù)據(jù)的建模方法系統(tǒng)建模的一個(gè)重要方面就是要定義系統(tǒng)處理的邏輯結(jié)構(gòu)。最廣泛采用的數(shù)據(jù)建模技術(shù)是實(shí)體-關(guān)系模型,它描述數(shù)據(jù)實(shí)體、關(guān)聯(lián)及實(shí)體屬性。實(shí)體關(guān)系模型可用ERD(Entity-Relationships Diagram實(shí)體關(guān)系圖)來(lái)表示:實(shí)體關(guān)聯(lián)實(shí)體屬性基數(shù)實(shí)例分析:實(shí)例分析:出卷系統(tǒng)N包
28、含題目出卷要求依據(jù)抽取試題試卷11111實(shí)例分析:實(shí)例分析:出卷系統(tǒng)試卷由一組題目組成,而題目來(lái)自試卷庫(kù)中被挑選的題目。試卷根據(jù)出卷要求選擇項(xiàng)目。這些實(shí)體的屬性給出如下:試題:編號(hào)、科目、題干、題干圖、答案、答案圖、題型、知識(shí)點(diǎn)、難度、抽取時(shí)間試卷:編號(hào)、科目、出卷人、年級(jí)、性質(zhì)、總分、難度、題目*出卷要求、總分、總難度、總題型、總知識(shí)點(diǎn)題目:編號(hào)、題干、題干圖、答案、答案圖、題型、知識(shí)點(diǎn)、難度實(shí)例分析:實(shí)例分析:圖書(shū)館系統(tǒng)1借書(shū)記錄預(yù)約記錄借/還/續(xù)借1M1NM包含預(yù)約借書(shū)者圖書(shū)書(shū)目實(shí)例分析:實(shí)例分析:圖書(shū)館系統(tǒng)實(shí)體:圖書(shū)、借書(shū)者、管理員、借書(shū)目錄、預(yù)約記錄、書(shū)目屬性給出如下:借書(shū)者:借書(shū)者
29、編號(hào)、姓名、性別、借書(shū)數(shù)、最大借書(shū)數(shù)、罰金金額、有限期圖書(shū):圖書(shū)號(hào)、書(shū)目號(hào)書(shū)目:書(shū)目號(hào)、書(shū)名、作者、出版社、叢書(shū)名、收藏?cái)?shù)、在館數(shù)、預(yù)約數(shù)借書(shū)記錄:圖書(shū)號(hào)、借書(shū)者編號(hào)、借出日期、應(yīng)還日期、續(xù)借次數(shù)預(yù)約記錄:書(shū)目號(hào)、借書(shū)者編號(hào)、預(yù)約日期狀態(tài)機(jī)建模方法狀態(tài)機(jī)建模方法狀態(tài)模型是一種描述系統(tǒng)對(duì)內(nèi)部或者外部事件響應(yīng)的行為模型。它描述系統(tǒng)狀態(tài)和事件,以及事件引發(fā)系統(tǒng)在狀態(tài)間的轉(zhuǎn)換。這種模型適用于描述實(shí)時(shí)系統(tǒng)。狀態(tài)機(jī)建模方法步驟:系統(tǒng)狀態(tài)、行為與事件分析構(gòu)建狀態(tài)圖狀態(tài)轉(zhuǎn)換圖狀態(tài)轉(zhuǎn)換圖狀態(tài)模型一般采用狀態(tài)轉(zhuǎn)換圖(簡(jiǎn)稱(chēng)狀態(tài)圖)的標(biāo)記方法狀態(tài)圖描述了系統(tǒng)中某些復(fù)雜對(duì)象的狀態(tài)變化狀態(tài)狀態(tài)是可觀察的行為模式,用圓角矩
30、形表示;變遷變遷表示狀態(tài)的轉(zhuǎn)換,用箭頭表示;事件事件是引發(fā)變遷的消息,用箭頭上的標(biāo)記表示。狀態(tài)圖還可以用事件后的方括號(hào)表示先決條件先決條件,只有當(dāng)這個(gè)條件為真時(shí),才會(huì)發(fā)生狀態(tài)變化;用狀態(tài)自身的弧線箭頭表示先決條件不為真時(shí),狀態(tài)不會(huì)改變。電梯控制系統(tǒng)分析問(wèn)題描述問(wèn)題描述在一幢有m層的大廈中安裝一套n部電梯的產(chǎn)品,按照下列條件求解電梯在各樓層之間移動(dòng)的邏輯關(guān)系:每部電梯有m個(gè)按鈕,每一個(gè)按鈕代表一個(gè)樓層。當(dāng)按下一個(gè)按鈕時(shí)該按鈕指示燈亮,同時(shí)電梯駛向相應(yīng)的樓層,當(dāng)?shù)竭_(dá)相應(yīng)樓層時(shí)指示燈熄滅。除了最底層和最高層之外,每一層樓都有兩個(gè)按鈕分別指示電梯上行和下行。按下按鈕后指示燈就開(kāi)始亮,當(dāng)電梯到達(dá)此樓層時(shí)
31、指示燈熄滅,并向所需要的方向移動(dòng)。當(dāng)電梯無(wú)升降運(yùn)動(dòng)時(shí),關(guān)門(mén)并停在當(dāng)前樓層。狀態(tài)事件及行為分析電梯在運(yùn)行過(guò)程一般具有下列狀態(tài):空閑:無(wú)請(qǐng)求時(shí),電梯處于休息狀態(tài);暫停:上下乘客時(shí),電梯處于暫停,開(kāi)門(mén)和關(guān)門(mén);上行:電梯處于向上運(yùn)行狀態(tài);下行:電梯處于向下運(yùn)行狀態(tài);處于第一層:初始啟動(dòng),電梯會(huì)在第一層等待狀態(tài);向第一層移動(dòng):長(zhǎng)時(shí)間 處于空閑時(shí),電梯移動(dòng)到第一層。電梯控制系統(tǒng)的事件有:向上:驅(qū)動(dòng)電梯向上運(yùn)行;向下:驅(qū)動(dòng)電梯向下運(yùn)行;停止:停止電梯運(yùn)行;無(wú)請(qǐng)求:沒(méi)有乘客請(qǐng)求乘坐電梯;長(zhǎng)時(shí)間無(wú)請(qǐng)求:長(zhǎng)時(shí)間沒(méi)有乘客請(qǐng)求乘坐電梯。繪制電梯對(duì)象的狀態(tài)圖結(jié)構(gòu)化分析步驟問(wèn)題描述畫(huà)分層的數(shù)據(jù)流圖確定計(jì)算機(jī)實(shí)現(xiàn)部分?jǐn)?shù)據(jù)描
32、述定義處理邏輯定義物理資源確定外部輸入和輸出確定數(shù)據(jù)格式、硬件要求編寫(xiě)規(guī)格說(shuō)明書(shū)1、問(wèn)題描述圖書(shū)銷(xiāo)售店從各出版社購(gòu)買(mǎi)圖書(shū),并將其銷(xiāo)售給大學(xué)、公司和個(gè)人客戶。書(shū)店庫(kù)存流行的圖書(shū),并根據(jù)需要訂購(gòu)其他圖書(shū)。書(shū)店提供大學(xué)訂購(gòu)服務(wù),并根據(jù)客戶和訂購(gòu)量提供優(yōu)惠?,F(xiàn)在書(shū)店希望實(shí)現(xiàn)計(jì)算機(jī)化管理,將如何做?仔細(xì)分析上述問(wèn)題,確定需要有哪些商務(wù)功能(入賬、出賬和庫(kù)存),系統(tǒng)是批處理方式還是聯(lián)機(jī)方式,硬件設(shè)備情況,實(shí)現(xiàn)計(jì)算機(jī)化管理的目的是什么等目標(biāo)??梢钥闯?,其目的是為了銷(xiāo)售圖書(shū)和圖書(shū)管理以及賬目管理。2、畫(huà)分層的數(shù)據(jù)流圖3、計(jì)算機(jī)化系統(tǒng)的自動(dòng)化方案選擇,取決于客戶的投資和目標(biāo)。一般必須利用成本效益分析對(duì)數(shù)據(jù)流圖各
33、個(gè)部分的操作分析決定以批處理方式還是以聯(lián)機(jī)方式執(zhí)行。 本例的第一個(gè)方案是以批處理方式處理出賬、訂購(gòu)圖書(shū),用聯(lián)機(jī)方式處理訂單的有效性檢查、聚集訂單和開(kāi)發(fā)貨清單;第二個(gè)方案是除發(fā)貨票據(jù)使用聯(lián)機(jī)方式或批處理方式外,其余都用聯(lián)機(jī)方式。4、數(shù)據(jù)細(xì)節(jié)描述本例的數(shù)據(jù)流和數(shù)據(jù)存儲(chǔ)有“訂單”、“圖書(shū)細(xì)節(jié)”、“顧客細(xì)節(jié)”、“圖書(shū)數(shù)據(jù)”、“顧客數(shù)據(jù)”、“賬目”、“發(fā)貨清單”等等?!坝唵巍笨杉?xì)化為“訂單標(biāo)識(shí)”、“顧客細(xì)節(jié)”、“圖書(shū)細(xì)節(jié)”,其中“顧客細(xì)節(jié)”和“圖書(shū)細(xì)節(jié)”還可進(jìn)一步細(xì)化。5、定義處理邏輯確定了產(chǎn)品的數(shù)據(jù)元素,就可以分析每個(gè)處理具體做什么了。例如,分析“生成賬目”中“給教育部門(mén)打折扣”細(xì)節(jié)。處理邏輯的描述處
34、理邏輯的描述加工邏輯也稱(chēng)為過(guò)程說(shuō)明,用于描述數(shù)據(jù)流圖中加工邏輯的處理算法或過(guò)程出卷系統(tǒng):出卷系統(tǒng):總體數(shù)據(jù)流圖手動(dòng)出卷教師出卷要求試題出卷要求試卷出卷要求試題試題試卷獲取出卷要求自動(dòng)出卷出卷要求保存試卷題目出卷要求出卷要求題目教師設(shè)置出卷要求出卷系統(tǒng):自動(dòng)出卷出卷系統(tǒng):自動(dòng)出卷數(shù)據(jù)流圖教師出卷要求試題試題試卷試題試題試卷獲取出卷要求抽取試題評(píng)價(jià)出卷要求試卷出卷要求出卷要求分析出卷計(jì)算分值題型試題寫(xiě)入試卷顯示試卷試題出卷系統(tǒng):手動(dòng)出卷出卷系統(tǒng):手動(dòng)出卷數(shù)據(jù)流圖分析出卷挑 選試題題型試題寫(xiě)入試卷顯示試卷試題教師出卷要求試題試題試卷試題試題試卷獲取出卷要求篩選試題計(jì)算分值出卷要求試卷出卷要求出卷要求
35、出卷系統(tǒng)的實(shí)體-關(guān)系圖 試卷題目試題出卷要求依據(jù)抽取11包含N111圖6-16 出卷系統(tǒng)的實(shí)體-關(guān)系圖數(shù)據(jù)字典舉例名稱(chēng):試卷別名:無(wú)描述:試卷信息定義:試卷=試卷編號(hào)+課程名+出卷人+時(shí)間+總分+難度+試題 試卷編號(hào)=1字符串10課程名=1字符30 出卷人=1字符8 時(shí)間=日期 總分=整數(shù)數(shù)據(jù)字典舉例名稱(chēng):出卷要求別名:要求描述:出卷的卷面要求定義:出卷要求=總分+總難度+總題型+總知識(shí)點(diǎn) 總分=整數(shù) 總難度=難分?jǐn)?shù)比例+中分?jǐn)?shù)比例+易分?jǐn)?shù)比例 總題型=1題型分?jǐn)?shù)比例* 總知識(shí)點(diǎn)=1知識(shí)點(diǎn)分?jǐn)?shù)比例*位置:自動(dòng)出卷,手動(dòng)出卷,設(shè)置出卷要求數(shù)據(jù)字典舉例名稱(chēng):試題別名:題目描述:題庫(kù)中的題目定義:試
36、題=試題編號(hào)+題干+題干圖+答案+答案圖+題型+難度+知識(shí)點(diǎn)+抽取時(shí)間 試題編號(hào)=1字符10 題干=1字符200 題干圖文件名=30字符40 答案=1字符200 答案圖文件名=30字符40 題型=【|選擇|填空|簡(jiǎn)答|改錯(cuò)|應(yīng)用|】 難度=【|難|中|易|】 知識(shí)點(diǎn)=【|】 抽取時(shí)間=日期位置:自動(dòng)出卷,手動(dòng)出卷,題庫(kù)系統(tǒng)規(guī)格說(shuō)明書(shū)案例分析面對(duì)面結(jié)對(duì)編程系統(tǒng)小結(jié)小結(jié)分析模型幫助用戶逐層深入理解問(wèn)題,為軟件設(shè)計(jì)提供基礎(chǔ)。分析建模的元素有基于場(chǎng)景的用例建模、基于過(guò)程的活動(dòng)序列建模、基于類(lèi)的建模、行為建模、基于信息流的建模和基于數(shù)據(jù)的建模。結(jié)構(gòu)化分析方法是一種自頂向下,逐步分解的面向數(shù)據(jù)和數(shù)據(jù)流的建
37、模方法。面向數(shù)據(jù)的建模以實(shí)體、關(guān)系和屬性三個(gè)基本元素描述系統(tǒng),涉及數(shù)據(jù)及其它們之間的關(guān)系,用ERD表示?;跀?shù)據(jù)流的方法用于描述數(shù)據(jù)如何在系統(tǒng)中流動(dòng)或被變換,用數(shù)據(jù)流圖、數(shù)據(jù)字典、加工規(guī)程等形式表示。第6章 結(jié)構(gòu)化設(shè)計(jì)基礎(chǔ)軟件設(shè)計(jì)過(guò)程模塊化設(shè)計(jì)軟件結(jié)構(gòu)軟件體系結(jié)構(gòu)模型體系結(jié)構(gòu)模式軟件設(shè)計(jì)過(guò)程軟件設(shè)計(jì)階段的基本目標(biāo)是構(gòu)造系統(tǒng)“怎么做”的模型描述?!霸O(shè)計(jì)先于編碼”,這是軟件工程“推遲實(shí)現(xiàn)”基本原則軟件系統(tǒng)設(shè)計(jì)是把軟件需求“變換”為用于構(gòu)造軟件的藍(lán)圖。“輸入”是需求分析各種模型元素“輸出”是軟件設(shè)計(jì)模型和表示軟件設(shè)計(jì)的目標(biāo)是對(duì)將要實(shí)現(xiàn)的軟件系統(tǒng)的體系結(jié)構(gòu)、系統(tǒng)的數(shù)據(jù)、系統(tǒng)模塊間的接口,以及所采用的算
38、法給出詳盡的描述。軟件設(shè)計(jì)活動(dòng)軟件設(shè)計(jì)活動(dòng)總體設(shè)計(jì),也稱(chēng)為概要設(shè)計(jì),軟件結(jié)構(gòu)設(shè)計(jì),或高層設(shè)計(jì)。分析需求規(guī)格說(shuō)明模塊劃分,形成具有預(yù)定功能的模塊組成結(jié)構(gòu)表示出模塊間的控制關(guān)系給出模塊之間的接口軟件詳細(xì)設(shè)計(jì),也稱(chēng)為(模塊)過(guò)程設(shè)計(jì),或低層設(shè)計(jì)。設(shè)計(jì)模塊細(xì)節(jié)確定模塊所需的算法和數(shù)據(jù)結(jié)構(gòu)等軟件設(shè)計(jì)過(guò)程軟件設(shè)計(jì)過(guò)程設(shè)計(jì)供選擇的方案選取合理的方案推薦最佳方案功能分解和設(shè)計(jì)軟件結(jié)構(gòu)數(shù)據(jù)庫(kù)設(shè)計(jì)制定軟件設(shè)計(jì)測(cè)試計(jì)劃編制設(shè)計(jì)文檔審查和復(fù)審軟件設(shè)計(jì)質(zhì)量原則軟件設(shè)計(jì)質(zhì)量原則設(shè)計(jì)過(guò)程不應(yīng)該受“隧道視野”的限制設(shè)計(jì)對(duì)于分析模型應(yīng)該是可跟蹤的設(shè)計(jì)不應(yīng)該從頭做起設(shè)計(jì)應(yīng)該縮短軟件和現(xiàn)實(shí)問(wèn)題的“智力距離”設(shè)計(jì)應(yīng)該表現(xiàn)出一致性和集
39、成性設(shè)計(jì)應(yīng)該能夠適應(yīng)修改設(shè)計(jì)不是編碼在創(chuàng)建設(shè)計(jì)時(shí),就應(yīng)該考慮能夠評(píng)估其質(zhì)量應(yīng)該復(fù)審每一步設(shè)計(jì),以減少語(yǔ)義性錯(cuò)誤概要設(shè)計(jì)說(shuō)明書(shū)概要設(shè)計(jì)說(shuō)明書(shū)1 范圍1.1系統(tǒng)目標(biāo)1.2 主要軟件需求1.3 軟件設(shè)計(jì)約束、限制2 數(shù)據(jù)設(shè)計(jì)2.1 數(shù)據(jù)對(duì)象和形成的數(shù)據(jù)結(jié)構(gòu)2.2文件和數(shù)據(jù)庫(kù)結(jié)構(gòu)外部文件結(jié)構(gòu) 邏輯結(jié)構(gòu) 邏輯記錄描述 訪問(wèn)方法全局?jǐn)?shù)據(jù)文件和數(shù)據(jù)交叉索引3 體系結(jié)構(gòu)設(shè)計(jì)3.1 數(shù)據(jù)和控制流復(fù)審3.2 得出的程序結(jié)構(gòu)4 接口設(shè)計(jì)4.1 人機(jī)界面規(guī)約4.2 人機(jī)界面設(shè)計(jì)規(guī)約4.3 外部接口設(shè)計(jì)外部數(shù)據(jù)接口外部系統(tǒng)或設(shè)備接口4.4 內(nèi)部接口設(shè)計(jì)規(guī)約5 (每個(gè)模塊)過(guò)程設(shè)計(jì)5.1 處理說(shuō)明5.2 接口描述5.3
40、設(shè)計(jì)語(yǔ)言描述5.4 使用的模塊5.5 內(nèi)部設(shè)計(jì)結(jié)構(gòu)5.6 注釋/約束/限制6 需求交叉索引7 測(cè)試部分7.1測(cè)試方針7.2 集成策略7.3 特殊考慮8 附錄(包括特殊注解)詳細(xì)設(shè)計(jì)說(shuō)明書(shū)詳細(xì)設(shè)計(jì)說(shuō)明書(shū)1 引言1.1 編寫(xiě)目的:闡明編寫(xiě)詳細(xì)設(shè)計(jì)說(shuō)明書(shū)的目的,指明讀者對(duì)象。1.2 項(xiàng)目背景:應(yīng)包括項(xiàng)目的來(lái)源和主管部門(mén)等。1.3 定義:列出本文檔中所用到的專(zhuān)門(mén)術(shù)語(yǔ)的定義和縮寫(xiě)詞。 列出有關(guān)資料的作者、標(biāo)題、編號(hào)、發(fā)表日期、出版單位或資料來(lái)源 文檔所引用的資料、軟件開(kāi)發(fā)的標(biāo)準(zhǔn)或規(guī)范。1.4 參考資料:項(xiàng)目經(jīng)核準(zhǔn)的計(jì)劃任務(wù)書(shū)、合同或上級(jí)機(jī)關(guān)的批文;項(xiàng)目開(kāi)發(fā)計(jì)劃;需求規(guī)格說(shuō)明書(shū);概要設(shè)計(jì)說(shuō)明書(shū);測(cè)試計(jì)劃(
41、初稿);用戶操作手冊(cè)。2 總體設(shè)計(jì)2.1 需求概述2.2 軟件結(jié)構(gòu):如給出軟件系統(tǒng)的結(jié)構(gòu)圖。3 程序描述3.1 逐個(gè)模塊給出以下說(shuō)明: 性能 輸出項(xiàng)目 功能 輸入項(xiàng)目3.2 算法:模塊所選用的算法。3.3 程序邏輯:詳細(xì)描述模塊實(shí)現(xiàn)的算法,可采用:標(biāo)準(zhǔn)流程圖;PDL語(yǔ)言;N-S圖;判定表等描述算法的圖表。3.4 接口 限制條件 存儲(chǔ)分配3.5測(cè)試要點(diǎn):給出測(cè)試模塊的主要測(cè)試要求。軟件模塊化設(shè)計(jì)原理軟件模塊化設(shè)計(jì)原理模塊是一個(gè)獨(dú)立命名的,擁有明確定義的輸入、輸出和特性的程序?qū)嶓w。把一個(gè)大型軟件系統(tǒng)的全部功能,按照一定的原則合理地劃分為若干個(gè)模塊,每個(gè)模塊完成一個(gè)特定子功能,所有的這些模塊以某種結(jié)
42、構(gòu)形式組成一個(gè)整體,這就是軟件的模塊化設(shè)計(jì)(Modular Design)。軟件模塊化設(shè)計(jì)可以簡(jiǎn)化軟件的設(shè)計(jì)和實(shí)現(xiàn),提高軟件的可理解性和可測(cè)試性,并使軟件更容易得到維護(hù)。分解、抽象、逐步求精、信息隱蔽和模塊獨(dú)立性,是軟件模塊化設(shè)計(jì)的指導(dǎo)思想。分解采用有效的分解,即“分而治之”,是能夠使問(wèn)題得以很好解決的必不可少的措施。一個(gè)軟件系統(tǒng)的各個(gè)模塊之間是相互關(guān)聯(lián)的,模塊劃分的數(shù)量越多,模塊間的聯(lián)系也越多。模塊本身的復(fù)雜性和工作量雖然隨著模塊變小而減少,模塊的接口工作量卻隨著模塊數(shù)增加而增大。軟件模塊化開(kāi)發(fā)存在一個(gè)最小成本區(qū),把模塊數(shù)控制在一定的范圍內(nèi),可以得到最小的總開(kāi)發(fā)工作量。模塊數(shù)與開(kāi)發(fā)工作量開(kāi)發(fā)
43、工作量模塊數(shù)最小成本區(qū)模塊成本接口成本總成本抽象抽象分解必然需要抽象的支持。抽象是抓住主要問(wèn)題,隱藏細(xì)節(jié),這樣才能容易分解。抽象具有不同的級(jí)別。人類(lèi)解決復(fù)雜問(wèn)題的基本方法之一。只有抓住事物的本質(zhì),才能準(zhǔn)確分析和處理問(wèn)題,找到合理的解決方案。信息隱藏信息隱藏信息隱蔽原則建議模塊應(yīng)該具有的特征是:每個(gè)模塊對(duì)其他所有模塊都隱蔽自己的設(shè)計(jì)決策。信息隱蔽意味著通過(guò)一系列獨(dú)立的模塊可以得到有效的模塊化。獨(dú)立的構(gòu)件或模塊之間的“接口”簡(jiǎn)單而清晰。逐步求精逐步求精逐步求精,或稱(chēng)逐步細(xì)化,是一種自頂向下的設(shè)計(jì)策略。逐步求精是人類(lèi)采用抽象到具體的過(guò)程把一個(gè)復(fù)雜問(wèn)題趨于簡(jiǎn)單化控制和管理的有效策略。抽象和精化是互補(bǔ)的
44、概念。重構(gòu)重構(gòu)重構(gòu)是一種重新組織的技術(shù),可以簡(jiǎn)化構(gòu)件或模塊的設(shè)計(jì)或編碼而無(wú)需改變其功能或行為。重構(gòu)是一種改進(jìn)程序內(nèi)部結(jié)構(gòu)但不改變代碼或設(shè)計(jì)的外部行為。“先使它轉(zhuǎn)起來(lái),再使它快起來(lái)”。模塊的獨(dú)立性模塊的獨(dú)立性模塊的獨(dú)立性(Module Independence)是模塊化、抽象、信息隱蔽等概念的直接結(jié)果,也是判斷模塊化結(jié)構(gòu)是否合理的標(biāo)準(zhǔn)。模塊獨(dú)立性是指開(kāi)發(fā)具有獨(dú)立功能而和其他模塊沒(méi)有過(guò)多關(guān)聯(lián)的模塊。模塊獨(dú)立性兩大優(yōu)點(diǎn):獨(dú)立的模塊由于分解了功能,簡(jiǎn)化了接口,使得軟件比較容易開(kāi)發(fā);獨(dú)立的模塊比較容易測(cè)試和維護(hù)。模塊獨(dú)立性度量模塊獨(dú)立性由兩個(gè)定性標(biāo)準(zhǔn)度量:模塊自身的內(nèi)聚(Cohesion),也稱(chēng)為塊內(nèi)聯(lián)
45、系或模塊強(qiáng)度,模塊之間的耦合(Coupling),也稱(chēng)為塊間聯(lián)系。模塊獨(dú)立性愈高,則塊內(nèi)聯(lián)系越強(qiáng),塊間聯(lián)系越弱。模塊內(nèi)聚性內(nèi)聚性是從功能的角度對(duì)模塊內(nèi)部聚合能力的量度。高內(nèi)聚是模塊獨(dú)立性追求的目標(biāo)。分類(lèi):偶然性內(nèi)聚:模塊內(nèi)的各個(gè)任務(wù)在功能上沒(méi)有實(shí)質(zhì)性聯(lián)系,純屬“偶然”因素組合了塊內(nèi)各個(gè)互不相關(guān)的任務(wù)。邏輯性內(nèi)聚:模塊通常由若干個(gè)邏輯功能相似的任務(wù)組成,通過(guò)模塊外引入的一個(gè)開(kāi)關(guān)量選擇其一執(zhí)行。這種內(nèi)聚增大了模塊間的耦合。時(shí)間性內(nèi)聚:模塊內(nèi)的各個(gè)任務(wù)由相同的執(zhí)行時(shí)間聯(lián)系在一起。例如,初始化模塊。過(guò)程性內(nèi)聚:模塊內(nèi)的各個(gè)任務(wù)必須按照某一特定次序執(zhí)行。通信性內(nèi)聚:模塊內(nèi)部的各個(gè)任務(wù)靠公用數(shù)據(jù)聯(lián)系在一起
46、,即都使用同一個(gè)輸入數(shù)據(jù),或者產(chǎn)生同一個(gè)輸出數(shù)據(jù)。順序性內(nèi)聚:模塊內(nèi)的各個(gè)任務(wù)是順序執(zhí)行的。通常,上一個(gè)任務(wù)的輸出是下一個(gè)任務(wù)的輸入。功能性內(nèi)聚:模塊各個(gè)成分結(jié)合在一起,完成一個(gè)特定的功能。顯然,功能性模塊具有內(nèi)聚性最強(qiáng)、與其他模塊聯(lián)系少的特點(diǎn)。內(nèi)聚性分類(lèi)偶然性內(nèi)聚弱邏輯性內(nèi)聚時(shí)間性內(nèi)聚過(guò)程性內(nèi)聚通信性內(nèi)聚順序性內(nèi)聚功能性內(nèi)聚強(qiáng)低內(nèi)聚中內(nèi)聚高內(nèi)聚模塊耦合性耦合性是對(duì)一個(gè)軟件結(jié)構(gòu)內(nèi)不同模塊之間互連程度的度量。耦合性的強(qiáng)弱取決于模塊間接口的復(fù)雜程度,以及通過(guò)接口的數(shù)據(jù)類(lèi)型和數(shù)目。分類(lèi): 非直接耦合:同級(jí)模塊相互之間沒(méi)有信息傳遞,屬于非直接耦合。 數(shù)據(jù)耦合:調(diào)用下屬模塊時(shí),如果交換的都是簡(jiǎn)單變量,便
47、構(gòu)成數(shù)據(jù)耦合。 特征耦合:調(diào)用下屬模塊時(shí),如果交換的是數(shù)據(jù)結(jié)構(gòu),便構(gòu)成特征耦合。由于傳遞的是數(shù)據(jù)結(jié)構(gòu),不僅數(shù)據(jù)量增加,而且會(huì)使模塊的相關(guān)性增加。 控制耦合:模塊間傳遞的信息不是一般的數(shù)據(jù),而是作為控制信息的開(kāi)關(guān)值或標(biāo)志量。例如,邏輯性內(nèi)聚的模塊調(diào)用就是典型的控制耦合。外部耦合:若允許一組模塊訪問(wèn)同一個(gè)全局變量,可稱(chēng)它們?yōu)橥獠狂詈稀9柴詈希喝粼试S一組模塊訪問(wèn)同一個(gè)全局性的數(shù)據(jù)結(jié)構(gòu),則稱(chēng)它們?yōu)楣柴詈?。全局性的?shù)據(jù)結(jié)構(gòu)可以是共享的通信區(qū)、公共的內(nèi)存區(qū)域、任何存儲(chǔ)介質(zhì)文件、物理設(shè)備等。內(nèi)容耦合:若一個(gè)模塊可以直接調(diào)用另一個(gè)模塊中的數(shù)據(jù),或者直接轉(zhuǎn)移到另一個(gè)模塊中去,或者一個(gè)模塊有多個(gè)入口,則稱(chēng)為內(nèi)
48、容耦合。耦合性分類(lèi)非直接耦合弱數(shù)據(jù)耦合 特征耦合 控制耦合 外部耦合 公共耦合 內(nèi)容耦合強(qiáng)弱耦合中耦合強(qiáng)耦合較強(qiáng)耦合軟件總體結(jié)構(gòu)描述軟件結(jié)構(gòu):模塊的層次控制結(jié)構(gòu)軟件結(jié)構(gòu)圖軟件結(jié)構(gòu)優(yōu)化軟件結(jié)構(gòu)圖軟件結(jié)構(gòu)圖軟件結(jié)構(gòu)(Structure Chart, 簡(jiǎn)稱(chēng)SC)是軟件系統(tǒng)的模塊層次結(jié)構(gòu),反映了整個(gè)系統(tǒng)的功能實(shí)現(xiàn)。軟件結(jié)構(gòu)以層次表示程序的系統(tǒng)結(jié)構(gòu),即一種控制的層次體系,并不表示軟件的具體過(guò)程。軟件結(jié)構(gòu)一般用樹(shù)狀或網(wǎng)狀結(jié)構(gòu)的圖形來(lái)表示。軟件結(jié)構(gòu)圖的主要元素有:模塊:模塊用帶有名字的方框表示,名稱(chēng)應(yīng)體現(xiàn)模塊的功能??刂脐P(guān)系:控制關(guān)系用單向箭頭或直線表示模塊間的調(diào)用關(guān)系。信息傳遞:用帶注釋的短箭頭表示模塊調(diào)
49、用過(guò)程中傳遞的信息。循環(huán)調(diào)用和選擇調(diào)用:在上部模塊底部加一個(gè)菱形符號(hào)表示選擇調(diào)用,在上部模塊的下方家一個(gè)弧形箭頭,表示循環(huán)調(diào)用。軟件結(jié)構(gòu)圖軟件結(jié)構(gòu)圖的形態(tài)特征:深度:指結(jié)構(gòu)圖控制的層次,也是模塊的層數(shù)。圖6-4中的結(jié)構(gòu)圖的深度為5。能粗略表示一個(gè)系統(tǒng)的大小和復(fù)雜程度,深度和程序長(zhǎng)度之間存在著某種對(duì)應(yīng)關(guān)系。寬度:指一層中最大的模塊個(gè)數(shù)。圖6-4中的結(jié)構(gòu)圖的寬度為8。一般來(lái)說(shuō),結(jié)構(gòu)的寬度越大,則系統(tǒng)就越復(fù)雜。扇出:指一個(gè)模塊直接下屬模塊的個(gè)數(shù)。圖6-4中的結(jié)構(gòu)圖的模塊I的扇出為4。扇出過(guò)大,表示模塊過(guò)分復(fù)雜,需要控制和協(xié)調(diào)的下級(jí)模塊太多。扇出的上限一般為 59,平均一般為3或4。扇入:指一個(gè)模塊直
50、接上屬模塊的個(gè)數(shù)。圖6-4中的結(jié)構(gòu)圖的模塊T的扇入為4。扇入過(guò)大,意味著共享該模塊的上級(jí)模塊數(shù)目多,這有一定的益處,但是決不能違背模塊的獨(dú)立性原則而片面追求高扇入。畫(huà)結(jié)構(gòu)圖應(yīng)注意的事項(xiàng):模塊不能重名。調(diào)用關(guān)系只能從上到下。軟件結(jié)構(gòu)圖MNOPQGHICDATJKLEFBRS軟件結(jié)構(gòu)優(yōu)化軟件結(jié)構(gòu)優(yōu)化改進(jìn)軟件結(jié)構(gòu)提高模塊獨(dú)立性在滿足模塊化要求的前提下盡量減少模塊數(shù)量,在滿足信息需求的前提下盡可能減少?gòu)?fù)雜的數(shù)據(jù)結(jié)構(gòu)模塊規(guī)模應(yīng)適中軟件結(jié)構(gòu)的深度、寬度、 扇入數(shù)和扇出數(shù)都要適當(dāng)模塊的作用域應(yīng)該在控制域之內(nèi).如圖6-4中,I模塊的控制域?yàn)镹,O,P,Q,T,I模塊只能作用于這些模塊,不能影響其它模塊的功能力
51、求降低模塊接口的復(fù)雜程度,設(shè)計(jì)單入口、單出口的模塊小結(jié)小結(jié)設(shè)計(jì)的基本原理和概念包括模塊化、抽象、體系結(jié)構(gòu)、信息隱蔽、模塊獨(dú)立、逐步求精和重構(gòu)等,這些原理和概念描述了計(jì)算機(jī)軟件的屬性、所使用的設(shè)計(jì)方法和所使用的編程語(yǔ)言。設(shè)計(jì)通常被描述為一個(gè)多步過(guò)程,其主要任務(wù)是從需求信息中綜合出數(shù)據(jù)的表示、程序結(jié)構(gòu)、接口特征和過(guò)程細(xì)節(jié)。軟件結(jié)構(gòu)提供了待建系統(tǒng)的整體視圖,它描述軟件構(gòu)件或模塊的結(jié)構(gòu)和組織、構(gòu)件或模塊的性質(zhì)以及他們之間的連接。第7章 結(jié)構(gòu)化概要設(shè)計(jì)方法數(shù)據(jù)流設(shè)計(jì)模型面向數(shù)據(jù)流的設(shè)計(jì)方法面向數(shù)據(jù)的設(shè)計(jì)方法案例分析概要設(shè)計(jì)概要設(shè)計(jì)也稱(chēng)總體設(shè)計(jì),確定軟件的結(jié)構(gòu)以及各組成成分( (子系統(tǒng)或模塊) )之間的相
52、互關(guān)系。概要設(shè)計(jì)的主要任務(wù)是:將系統(tǒng)劃分成模塊;決定每個(gè)模塊的功能;決定模塊的調(diào)用關(guān)系;決定模塊的界面,即模塊間傳遞的數(shù)據(jù)。概要設(shè)計(jì)階段的主要任務(wù)是通過(guò)數(shù)據(jù)流圖來(lái)確定系統(tǒng)的結(jié)構(gòu)圖,并且對(duì)這些結(jié)構(gòu)圖進(jìn)行分析和細(xì)化。在概要設(shè)計(jì)階段,結(jié)構(gòu)化設(shè)計(jì)主要采用面向數(shù)據(jù)流的設(shè)計(jì)方法。7.1 7.1 數(shù)據(jù)流模型數(shù)據(jù)流模型根據(jù)基本系統(tǒng)模型,數(shù)據(jù)信息必須以“外部”信息形式進(jìn)入軟件系統(tǒng),經(jīng)過(guò)內(nèi)部處理以后再以“外部”的形式離開(kāi)系統(tǒng)。有三種數(shù)據(jù)流類(lèi)型:變換型數(shù)據(jù)流事務(wù)型數(shù)據(jù)流混合型數(shù)據(jù)流變換型數(shù)據(jù)流信息可以通過(guò)各種路徑進(jìn)入系統(tǒng),信息在“流”入系統(tǒng)的過(guò)程中由外部形式變換成內(nèi)部數(shù)據(jù)形式,這被標(biāo)識(shí)為輸入流。在軟件的核心,輸入數(shù)
53、據(jù)經(jīng)過(guò)一系列加工處理,這被標(biāo)識(shí)為變換流。通過(guò)變換處理后的輸出數(shù)據(jù),沿各種路徑轉(zhuǎn)換為外部形式“流”出軟件,這被標(biāo)識(shí)為輸出流。整個(gè)數(shù)據(jù)流體現(xiàn)了以輸入、變換、輸出的順序方式,沿一定路徑前行的特征,這就是變換型數(shù)據(jù)流,簡(jiǎn)稱(chēng)變換流。變換型數(shù)據(jù)流時(shí)間輸入流 輸出流變換流信息事務(wù)型數(shù)據(jù)流當(dāng)數(shù)據(jù)流經(jīng)過(guò)一個(gè)具有 “事務(wù)中心”特征的數(shù)據(jù)處理時(shí),它可以根據(jù)事務(wù)類(lèi)型從多條路徑的數(shù)據(jù)流中選擇一條活動(dòng)通路。這種具有根據(jù)條件選擇處理不同事務(wù)的數(shù)據(jù)流,就是事務(wù)型數(shù)據(jù)流,簡(jiǎn)稱(chēng)事務(wù)流。事務(wù)型數(shù)據(jù)流活動(dòng)通路事務(wù)中心混合型數(shù)據(jù)流在一個(gè)大型系統(tǒng)的DFD中,變換流和事務(wù)流往往會(huì)同時(shí)出現(xiàn)。例如,在一個(gè)事務(wù)型的DFD中,分支動(dòng)作路徑上的信息
54、流也可能會(huì)體現(xiàn)出變換流的特征。這種具有將事務(wù)流和變換流組合出現(xiàn),就是混合型數(shù)據(jù)流,簡(jiǎn)稱(chēng)混合流?;旌闲蛿?shù)據(jù)流混合型數(shù)據(jù)流變換3變換2傳出數(shù)據(jù)傳入數(shù)據(jù)事務(wù)中心變換1結(jié)果7.2 7.2 面向數(shù)據(jù)流的設(shè)計(jì)方法面向數(shù)據(jù)流的設(shè)計(jì)方法面向數(shù)據(jù)流分析(DFA,Data Flow Analysis)的設(shè)計(jì)是一種結(jié)構(gòu)化的軟件體系結(jié)構(gòu)設(shè)計(jì)方法。面向數(shù)據(jù)流分析的設(shè)計(jì)能與大多數(shù)需求規(guī)格說(shuō)明技術(shù)配合,可以使模塊達(dá)到高內(nèi)聚性(順序性內(nèi)聚)。這一設(shè)計(jì)技術(shù)是從數(shù)據(jù)流圖(DFD)分析模型映射為軟件模塊組成結(jié)構(gòu)設(shè)計(jì)的描述,所以也稱(chēng)為結(jié)構(gòu)化設(shè)計(jì)(SD,Structured Design)方法。數(shù)據(jù)流映射步驟數(shù)據(jù)流映射步驟復(fù)查基本系統(tǒng)
55、模型,并精化系統(tǒng)數(shù)據(jù)流圖分析數(shù)據(jù)流類(lèi)型,確定數(shù)據(jù)流具有變換流特征還是事務(wù)流特征如果是變換流特征,確定輸入流和輸出流的邊界(也分別稱(chēng)為最高輸入/輸出抽象點(diǎn)),輸入流邊界和輸出流邊界之間就是變換流,也稱(chēng)為“變換中心”。變換流加工處理的是某些形式的內(nèi)部數(shù)據(jù)。如果是事務(wù)流特征,則可確定一個(gè)接收分支和一個(gè)發(fā)送分支。其中發(fā)送分支包含一個(gè)“事務(wù)中心”和各個(gè)事務(wù)動(dòng)作流。采用自頂向下、逐步求精的方式完成模塊分解,確定相應(yīng)的軟件組成結(jié)構(gòu)根據(jù)模塊獨(dú)立性原理和運(yùn)用設(shè)計(jì)度量標(biāo)準(zhǔn),對(duì)導(dǎo)出的軟件結(jié)構(gòu)進(jìn)行優(yōu)化變換流設(shè)計(jì)變換流設(shè)計(jì)變換流設(shè)計(jì)的要點(diǎn)是分析數(shù)據(jù)流圖,確定輸入流、輸出流邊界,根據(jù)輸入、變換、輸出三個(gè)數(shù)據(jù)流分支將軟件映
56、射成一個(gè)標(biāo)準(zhǔn)的“樹(shù)型”體系結(jié)構(gòu)。在有多個(gè)輸入流和多個(gè)輸出流時(shí),應(yīng)分別找出各個(gè)輸入流和輸出流的邊界,即最高抽象點(diǎn),然后分別連接這些輸入流的最高抽象點(diǎn)和輸出流的最高抽象點(diǎn),分別形成輸入邊界和輸出邊界。下面設(shè)計(jì)一個(gè)“統(tǒng)計(jì)輸入文件中單詞數(shù)目”程序。輸入流邊界 輸出流邊界有效的文件名單詞總數(shù)格式化單詞數(shù)驗(yàn)證文件名統(tǒng)計(jì)單詞數(shù)格式化單詞數(shù)讀文件名文件名單詞總數(shù)顯示單詞數(shù)文件名第一次分解文件單詞數(shù)目統(tǒng)計(jì)讀取和驗(yàn)證文件名統(tǒng)計(jì)單詞數(shù)目格式化和顯示單詞數(shù)第二次分解文件單詞數(shù)目統(tǒng)計(jì)讀取和驗(yàn)證文件名統(tǒng)計(jì)單詞數(shù)目格式化和顯示單詞數(shù)格式化單詞數(shù)顯示單詞數(shù)讀文件名驗(yàn)證文件名事務(wù)流設(shè)計(jì)事務(wù)流設(shè)計(jì)事務(wù)流分析設(shè)計(jì)是把事務(wù)流映射成包
57、含一個(gè)接收分支和一個(gè)發(fā)送分支的軟件結(jié)構(gòu)。接收分支的映射方法和變換流設(shè)計(jì)映射出輸入結(jié)構(gòu)的方法相似,即從事務(wù)中心的邊界開(kāi)始,把沿著接收流通路的處理映射成一個(gè)個(gè)模塊。發(fā)送分支結(jié)構(gòu)包含了一個(gè)分類(lèi)控制模塊和它下層的各個(gè)動(dòng)作模塊。數(shù)據(jù)流圖的每一個(gè)事務(wù)動(dòng)作流路徑應(yīng)映射成與其自身信息流特征相一致的結(jié)構(gòu)。自動(dòng)柜員機(jī)業(yè)務(wù)數(shù)據(jù)流圖ATM機(jī)系統(tǒng)結(jié)構(gòu)混合流設(shè)計(jì)讀入數(shù)據(jù)判別 訂貨處理 訂貨輸入 提貨發(fā)票 進(jìn)貨輸入 庫(kù)存修改 進(jìn)貨票據(jù) 訂單記錄 分析統(tǒng)計(jì)生成統(tǒng)計(jì)表混合流設(shè)計(jì)7.3 7.3 面向數(shù)據(jù)的設(shè)計(jì)面向數(shù)據(jù)的設(shè)計(jì)大多數(shù)軟件本質(zhì)上都是數(shù)據(jù)信息處理系統(tǒng),而數(shù)據(jù)信息都有清楚的層次結(jié)構(gòu),即輸入、內(nèi)部存儲(chǔ)、輸出都可能有獨(dú)特的數(shù)據(jù)
58、結(jié)構(gòu)。面向數(shù)據(jù)的設(shè)計(jì)原理就是根據(jù)軟件操作的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)軟件。適合于總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)“合而為一”設(shè)計(jì)。面向數(shù)據(jù)的設(shè)計(jì)技術(shù)最常用的有Jackson方法(Jackson Structured Design,JSD)由數(shù)據(jù)結(jié)構(gòu)導(dǎo)出它的程序結(jié)構(gòu)是Jackson方法的基本思想。JacksonJackson圖圖Jackson圖是Jackson方法分析和設(shè)計(jì)最有效的表達(dá)手段,用它既可以描述問(wèn)題的數(shù)據(jù)結(jié)構(gòu),也可以描述軟件的程序結(jié)構(gòu)。Jackson圖的優(yōu)點(diǎn)是便于表示層次結(jié)構(gòu),利于結(jié)構(gòu)自頂向下分解,形象直觀、可讀性好。Jackson方法用某種形式的偽碼給出程序的過(guò)程性描述。(a)順序結(jié)構(gòu) (b)選擇結(jié)構(gòu) (c)可
59、選結(jié)構(gòu) (d)重復(fù)結(jié)構(gòu)BACDI(j)AB*S(i)BoDoACoBooAS(i)JSDJSD方法設(shè)計(jì)步驟方法設(shè)計(jì)步驟分析并確定問(wèn)題的輸入和輸出數(shù)據(jù)的邏輯結(jié)構(gòu),并用Jackson圖描繪這些數(shù)據(jù)結(jié)構(gòu)。找出輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)中有對(duì)應(yīng)關(guān)系的數(shù)據(jù)單元。根據(jù)下述三條規(guī)則從數(shù)據(jù)結(jié)構(gòu)的Jackson圖導(dǎo)出程序結(jié)構(gòu)的Jackson圖。為每個(gè)有對(duì)應(yīng)關(guān)系的數(shù)據(jù)單元,按照它們?cè)跀?shù)據(jù)結(jié)構(gòu)圖中的層次在程序結(jié)構(gòu)圖的相應(yīng)層次畫(huà)一個(gè)處理框。根據(jù)輸入數(shù)據(jù)結(jié)構(gòu)中剩余的每個(gè)數(shù)據(jù)單元所處的層次,在程序結(jié)構(gòu)圖的相應(yīng)層次分別為它們畫(huà)上對(duì)應(yīng)的處理框。根據(jù)輸出數(shù)據(jù)結(jié)構(gòu)中剩余的每個(gè)數(shù)據(jù)單元所處的層次,在程序結(jié)構(gòu)圖的相應(yīng)層次分別為它們畫(huà)
60、上對(duì)應(yīng)的處理框。列出操作和條件,并把它們分配到程序結(jié)構(gòu)圖的適當(dāng)位置。用某種形式的偽碼給出程序結(jié)構(gòu)圖對(duì)應(yīng)的過(guò)程性描述。JSDJSD舉例分析(舉例分析(JacksonJackson圖)圖)JSDJSD舉例分析(舉例分析(JacksonJackson圖)圖)支付文件顧客號(hào)碼組*支付記錄*顧客號(hào)碼支付日期支付金額對(duì)應(yīng)輸入文件結(jié)構(gòu)I(1)I(2)JSDJSD舉例分析(舉例分析(JacksonJackson圖)圖)JSDJSD舉例分析(舉例分析(JacksonJackson圖)圖)顧客主文件顧客號(hào)碼組*顧客號(hào)碼結(jié)余對(duì)應(yīng)輸入文件結(jié)構(gòu)I(1)輸出數(shù)據(jù)輸出數(shù)據(jù)結(jié)構(gòu)程序結(jié)構(gòu)程序結(jié)構(gòu)偽碼 PROCESS_CUST_
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年國(guó)際私人民間貿(mào)易協(xié)議樣式
- 2024年期企業(yè)互保反擔(dān)保協(xié)議樣本
- 2024年企業(yè)勞動(dòng)協(xié)議范本要點(diǎn)
- 2024廣告影片拍攝場(chǎng)地使用協(xié)議
- DB11∕T 1570-2018 甜瓜設(shè)施栽培技術(shù)規(guī)程
- 2024年鋼材供應(yīng)協(xié)議鋼筋條款詳本
- 2024年適用場(chǎng)地租賃協(xié)議模板
- 不銹鋼欄桿建設(shè)施工服務(wù)協(xié)議2024
- 2024年定制銷(xiāo)售受托管理協(xié)議
- 2024年度特定物資委托采購(gòu)合作協(xié)議
- 2024年全國(guó)教育大會(huì)精神全文課件
- 廣東省珠海市2023-2024學(xué)年六年級(jí)上學(xué)期數(shù)學(xué)期中試卷(含答案)
- 廣東省深圳市2023-2024學(xué)年三年級(jí)上學(xué)期英語(yǔ)期中試卷(含答案)
- 江蘇省南京市六校聯(lián)考2024-2025學(xué)年高一上學(xué)期期中考試英語(yǔ)試卷(含答案含聽(tīng)力原文無(wú)音頻)
- 2024年海南省發(fā)展控股限公司子公司招聘11人高頻難、易錯(cuò)點(diǎn)500題模擬試題附帶答案詳解
- 企業(yè)公司工會(huì)管理制度
- 肺結(jié)節(jié)診治中國(guó)專(zhuān)家共識(shí)(2024年版)解讀
- 2024年人教版八年級(jí)道德與法治上冊(cè)期中考試卷(附答案)
- (高清版)JTGT 3365-02-2020 公路涵洞設(shè)計(jì)規(guī)范
- 氣壓止血帶在四肢手術(shù)中應(yīng)用的專(zhuān)家共識(shí)(2021版)
- 食堂工作人員安全技術(shù)交底
評(píng)論
0/150
提交評(píng)論