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

下載本文檔

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

文檔簡(jiǎn)介

第3章系統(tǒng)分析方法學(xué)3.1系統(tǒng)分析:是一種問(wèn)題解決技術(shù),是整個(gè)系統(tǒng)設(shè)計(jì)開(kāi)發(fā)的基礎(chǔ)。包括需求獲取和調(diào)查研究的技術(shù)3.2掌握幾個(gè)關(guān)鍵術(shù)語(yǔ)(見(jiàn)后頁(yè))

1系統(tǒng)分析系統(tǒng)設(shè)計(jì)模型驅(qū)動(dòng)分析結(jié)構(gòu)化分析對(duì)象對(duì)象建模面向?qū)ο蟮姆椒嫦驅(qū)ο蠓治鲈瞳@取原型快速架構(gòu)分析敏捷方法需求獲取功能需求和非功能需求用例用例建模業(yè)務(wù)需求用例應(yīng)用數(shù)據(jù)模型上下文數(shù)據(jù)模型邏輯模型物理模型系統(tǒng)分析用例3.3Parnas方法:最早的軟件開(kāi)發(fā)方法由D.Parnas在1972年提出的。當(dāng)時(shí)軟件在可維護(hù)性和可靠性方面存在著嚴(yán)重問(wèn)題,因此Parnas針對(duì)這兩個(gè)問(wèn)題的提出。1信息隱蔽原則現(xiàn)在信息隱蔽原則已成為軟件工程學(xué)中的一條重要原則。2設(shè)計(jì)時(shí)應(yīng)對(duì)可能發(fā)生的種種意外故障采取措施。遺憾:沒(méi)有給出明確的工作流程。所以這一方法不能獨(dú)立使用,只能作為其它方法的補(bǔ)充。33.4結(jié)構(gòu)化方法學(xué)(以Yourdon方法

為主)3.4.1包括SA,SD,SP。自頂向下,逐步求精,基本原則:抽象與分解/主要對(duì)系統(tǒng)過(guò)程建模特點(diǎn):A階段性B推遲實(shí)施C文檔管理優(yōu)缺點(diǎn)43.4.2結(jié)構(gòu)化分析應(yīng)用的工具(技術(shù))除了語(yǔ)言或表的描述外,圖形類的有以下:1組織結(jié)構(gòu)圖(OrganizationChart)2業(yè)務(wù)流程圖(從業(yè)務(wù)角度)3系統(tǒng)流程圖(傾向用于設(shè)計(jì))4上下文圖5DFD(數(shù)據(jù)流圖,數(shù)據(jù)流程圖)6數(shù)據(jù)字典7數(shù)據(jù)立即存取圖(DIAD)8判定樹(shù)(也用于設(shè)計(jì))9判定表(也用于設(shè)計(jì))10功能分解圖(FDD從功能模塊角度,功能結(jié)構(gòu)圖,功能模塊圖)511狀態(tài)轉(zhuǎn)換圖(狀態(tài)遷移圖。用作行為建模)12U-C矩陣13Varner圖(描述數(shù)據(jù)結(jié)構(gòu)圖層的圖)14表格分配圖15ERD圖(E-R圖,實(shí)體關(guān)系圖,數(shù)據(jù)建模)16數(shù)據(jù)存儲(chǔ)規(guī)范化NF其中不能用計(jì)算機(jī)處理的是源終點(diǎn)673.4.2.1組織機(jī)構(gòu)圖描述行政方面的描述雇員、職稱和群體關(guān)系的一種圖表,它形象地反映了組織內(nèi)各機(jī)構(gòu)、崗位上下左右相互之間的關(guān)系。組織結(jié)構(gòu)圖是組織結(jié)構(gòu)的直觀反映,也是對(duì)該組織功能的一種側(cè)面詮釋。83.4.2.2業(yè)務(wù)流程圖(TransactionFlowDiagram,TFD)定義:用一些規(guī)定的符號(hào)及連線來(lái)表示某個(gè)具體業(yè)務(wù)處理過(guò)程。業(yè)務(wù)流程圖的繪制是按照業(yè)務(wù)的實(shí)際處理步驟和過(guò)程進(jìn)行的。業(yè)務(wù)流程圖是一種系統(tǒng)分析人員都懂的共同語(yǔ)言,用來(lái)描述系統(tǒng)組織結(jié)構(gòu)、業(yè)務(wù)流程注重業(yè)務(wù)職能的流程,業(yè)務(wù)的流轉(zhuǎn)而非事務(wù)91.業(yè)務(wù)流程圖的基本符號(hào)及含義102.畫業(yè)務(wù)流程圖的步驟與例子(1)現(xiàn)行系統(tǒng)業(yè)務(wù)流程總結(jié)畫業(yè)務(wù)流程圖之前,對(duì)現(xiàn)行系統(tǒng)進(jìn)行詳細(xì)調(diào)查,寫出現(xiàn)行系統(tǒng)業(yè)務(wù)流程總結(jié)。例如,開(kāi)發(fā)人員在系統(tǒng)調(diào)查階段了解到某企業(yè)的會(huì)計(jì)核算形式是科目匯總表的核算形式,其帳務(wù)處理業(yè)務(wù)流程如下:根據(jù)審核無(wú)誤的原始憑證匯總表編制記帳憑證,包括現(xiàn)金收付、銀行收付、轉(zhuǎn)帳憑證。根據(jù)現(xiàn)金收付款憑證登記現(xiàn)金日記帳。根據(jù)銀行收付款憑證登記銀行存款日記帳。根據(jù)銀行送來(lái)的對(duì)帳單對(duì)銀行存款日記帳核對(duì)。根據(jù)記帳憑證及所付原始憑證登記有關(guān)明細(xì)帳。根據(jù)記帳憑證,按相同的借貸方匯總出科目匯總表。根據(jù)科目匯總表登記匯總分類帳。將明細(xì)帳科目余額與財(cái)產(chǎn)物資實(shí)用數(shù)核對(duì)。把總分類帳余額與有關(guān)明細(xì)帳余額核對(duì)。根據(jù)總帳、明細(xì)帳余額編制各種會(huì)計(jì)報(bào)表。11(2)業(yè)務(wù)流程圖突出部門和崗位的輸入輸出12(3)帶泳道的業(yè)務(wù)流程圖泳道圖在某些文檔里會(huì)被稱為“以活動(dòng)為單位的流程圖”,浮在泳道中的都是一個(gè)個(gè)活動(dòng)。突出活動(dòng)關(guān)系,表示各部門的責(zé)任131415163.業(yè)務(wù)流程圖的特點(diǎn)(1)圖的形式是按業(yè)務(wù)部門劃分的橫式圖(后面泳道圖)。(2)圖描述的主體是票據(jù)、帳單的業(yè)務(wù)處理。(3)票據(jù)、帳單流動(dòng)路線與實(shí)際業(yè)務(wù)處理過(guò)程一一對(duì)應(yīng)。(4)圖中票據(jù)、帳單是有“生”、“死”的,即用它的一次生命周期來(lái)表示出一筆業(yè)務(wù)的處理情況。4.業(yè)務(wù)流程圖的作用5業(yè)務(wù)流程圖與數(shù)據(jù)流程圖173.5.2.3系統(tǒng)流程圖(SystemFlowchart)系統(tǒng)流程圖又叫事務(wù)流程圖,反應(yīng)主體框架。是在計(jì)算機(jī)事務(wù)處理應(yīng)用進(jìn)行系統(tǒng)分析時(shí)常用的一種描述方法(另一個(gè)是數(shù)據(jù)流圖),它描述了計(jì)算機(jī)事務(wù)處理中從數(shù)據(jù)輸入開(kāi)始到獲得輸出為止各個(gè)處理工序過(guò)程描繪系統(tǒng)物理模型的傳統(tǒng)工具。基本思想是用圖形符號(hào)以黑盒子的形式描繪系統(tǒng)理念的每個(gè)部件包括程序,文件,數(shù)據(jù)庫(kù),表格,人工過(guò)程等,表達(dá)信息在各個(gè)部件之間流動(dòng)的情況,而不是表示對(duì)信息進(jìn)行加工處理的控制過(guò)程18192021基本處理工序1、變換把輸入單據(jù)變換成磁盤文件,或把磁盤文件變換成輸出單據(jù),或把某一磁盤文件的內(nèi)容由一個(gè)介質(zhì)文件傳送到另一介質(zhì)文件:2223一般在在進(jìn)行輸入變換同時(shí),還可進(jìn)行形式性的邏輯檢查,如輸入單據(jù)的數(shù)據(jù)范圍,錄入錯(cuò)誤等等。2、合并把多個(gè)文件合并為一個(gè)文件,如:243、劃分是合并的逆操作,將合并工序的輸入文件與輸出文件對(duì)調(diào)即可:254、分類(排序)按指定的鍵(關(guān)鍵字)以升序或降序改變?cè)募挠涗浥帕许樞?。例如,將如下記錄排列的舊文件,按關(guān)鍵字升序,依次進(jìn)行分類,得到新文件:26分類也可和輸入或輸出操作一起進(jìn)行:275、更新將多個(gè)文件作為輸入根據(jù)關(guān)鍵項(xiàng)目進(jìn)行對(duì)照,對(duì)文件進(jìn)行內(nèi)容修正、刪除、增加等改寫工作,一般更新的內(nèi)容先要寫入一個(gè)臨時(shí)文件:28用系統(tǒng)流程圖設(shè)計(jì)管理系統(tǒng)應(yīng)該注意的問(wèn)題1、盡量縮短處理時(shí)間。2、盡量減少空閑時(shí)間。3、要考慮便于完成程序的調(diào)試。工序數(shù)和系統(tǒng)的類型,由于存儲(chǔ)容量和中間介質(zhì)的使用如何,使用幾臺(tái)機(jī)器問(wèn)題,也要受到影響。因此在這個(gè)階段,可對(duì)存儲(chǔ)容量和機(jī)器結(jié)構(gòu)進(jìn)行預(yù)測(cè)。29

庫(kù)存清單系統(tǒng)的系統(tǒng)流程圖系統(tǒng)流程圖表示的人工銷售教材的一個(gè)物理模型。信息流始于學(xué)生,又終于學(xué)生。313.4.2.4上下文圖(ContextMapping)上下文數(shù)據(jù)流圖,上下文事件圖(其實(shí)也是數(shù)據(jù)流圖),上下文數(shù)據(jù)模型(書(shū)203),問(wèn)題分析階段的上下文(P122)等。根據(jù)圖的類別不同,上下文圖當(dāng)然形式也不一樣。323.4.2.5DFD(數(shù)據(jù)流圖:DataFlowDiagram)1數(shù)據(jù)流圖:描述數(shù)據(jù)流從輸入到輸出的變化過(guò)程。2上下文圖:顯示了系統(tǒng)界限,用數(shù)據(jù)流連接實(shí)體和過(guò)程3DFD

4個(gè)元素4分層數(shù)據(jù)流圖,原則和注意事項(xiàng)34數(shù)據(jù)流圖四種基本符號(hào)數(shù)據(jù)加工/處理/變換數(shù)據(jù)源點(diǎn)或終點(diǎn)(外部實(shí)體)數(shù)據(jù)流(dataflow)數(shù)據(jù)存儲(chǔ)文件或或或數(shù)據(jù)流圖幾種附加符號(hào)分層的數(shù)據(jù)流圖

F0A0B0F11A0B0F12F13F14F15p1C1D1M1N1F21M1F22N1F23K2F24W2F25p1Y2X2第n

層第n+2

層3839P239圖9-16,事件圖(事件上下文圖),系統(tǒng)圖,基本圖等功能分解圖后,要考慮系統(tǒng)響應(yīng)什么業(yè)務(wù)事件。什么樣的響應(yīng)比較合適。外部事件,時(shí)序事件,狀態(tài)事件。P238用例技術(shù)也是確定事件和響應(yīng)的流行方法之一。事件分解圖:增加事件處理過(guò)程到分解圖中系統(tǒng)圖:合并多個(gè)事件圖基本圖:顯示單個(gè)事件所有的基本過(guò)程,數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)流4041源點(diǎn)終點(diǎn)處理過(guò)程采購(gòu)員倉(cāng)庫(kù)管理員產(chǎn)生報(bào)表處理事務(wù)數(shù)據(jù)流數(shù)據(jù)存儲(chǔ)訂貨報(bào)表(包含數(shù)據(jù)項(xiàng))零件編號(hào)零件名稱訂貨數(shù)量目前價(jià)格主要供應(yīng)者次要供應(yīng)者事務(wù)零件編號(hào)事務(wù)類型數(shù)量訂貨信息(見(jiàn)訂貨報(bào)表)庫(kù)存清單

零件編號(hào)

庫(kù)存量

庫(kù)存量臨界值42433.4.2.6數(shù)據(jù)字典(DataDictionary)結(jié)構(gòu)化分析方法的核心,與各模型的圖形表示配合,能清楚地表達(dá)數(shù)據(jù)處理的要求1、4種類型數(shù)據(jù)內(nèi)容的符號(hào)的使用方法:標(biāo)示符=字母字符+字母數(shù)字串字母數(shù)字串=0{字母或數(shù)字}7字母或數(shù)字=【字母字符\數(shù)字字符】

46軟件工程47詞條描述——對(duì)于在模型中每一個(gè)被命名的圖形元素,均加以定義,其內(nèi)容有:名字,別名或編號(hào),分類,描述,定義,位置,其它,等。數(shù)據(jù)流詞條描述數(shù)據(jù)流名:說(shuō)明:簡(jiǎn)要介紹它產(chǎn)生的原因和結(jié)果數(shù)據(jù)流來(lái)源:來(lái)自何方數(shù)據(jù)流去向:去向何處數(shù)據(jù)流組成:數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)量流通量:數(shù)據(jù)量,流通量軟件工程48數(shù)據(jù)元素詞條描述類型:數(shù)字(離散值,連續(xù)值),文字(編碼類型)長(zhǎng)度取值范圍相關(guān)的數(shù)據(jù)元素及數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)文件詞條描述數(shù)據(jù)文件名:簡(jiǎn)述:存放的是什么數(shù)據(jù)輸入/輸出數(shù)據(jù):數(shù)據(jù)文件組成:數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)方式:順序,直接,關(guān)鍵碼存取頻率:軟件工程49加工邏輯詞條描述加工名:加工編號(hào):反映該加工的層次簡(jiǎn)要描述:加工邏輯及功能簡(jiǎn)述輸入/輸出數(shù)據(jù)流:加工邏輯:簡(jiǎn)述加工程序,加工順序數(shù)據(jù)源及數(shù)據(jù)詞條描述

名稱:外部實(shí)體名簡(jiǎn)要描述:什么外部實(shí)體有關(guān)數(shù)據(jù)流:數(shù)目:軟件工程50數(shù)據(jù)結(jié)構(gòu)的描述

符號(hào)

含義

舉例=被定義為+與

x=a+b[...,...]或[...|...]或x=[a,b],x=[a|b]{...}或m{...}n重復(fù)

x={a},x=3{a}8(...)可選

x=(a)“...”基本數(shù)據(jù)元素

x="a"..連結(jié)符

x=1..9軟件工程51存折=戶名+所號(hào)+帳號(hào)+開(kāi)戶日+性質(zhì)+(印密)+1{存取行}50戶名=2{字母}24所號(hào)=001..999帳號(hào)=00000001..99999999開(kāi)戶日=年+月+日性質(zhì)=“1”..“6”注:“1”表示普通戶,“5”表示工資戶等印密=“0”注:印密在存折上不顯示存取行=日期+(摘要)+支出+存入+余額+操作+復(fù)核3.4.2.7事件立即存儲(chǔ)圖數(shù)據(jù)流程圖中定義了數(shù)據(jù)存儲(chǔ),在數(shù)據(jù)字典中表述了數(shù)據(jù)存儲(chǔ)的結(jié)構(gòu)后,可以使用數(shù)據(jù)立即存取圖來(lái)進(jìn)行數(shù)據(jù)存取分析按供應(yīng)商編號(hào)等來(lái)查詢?cè)摴?yīng)商的基本信息,訂單編號(hào)等查詢訂單的信息訂單編號(hào)等查詢對(duì)應(yīng)的入庫(kù)商品的信息。供應(yīng)商名稱等查詢對(duì)應(yīng)訂單信息及商品的入庫(kù)信息相反地,通過(guò)輸入商品編號(hào)等可以查詢對(duì)應(yīng)的訂單信息和供應(yīng)商信息。5253通過(guò)這些存檔的數(shù)據(jù),完成匯總報(bào)表操作。包括訂單信息的匯總、入庫(kù)單的匯總,生成訂單匯總表和入庫(kù)統(tǒng)計(jì)表。通過(guò)輸入訂購(gòu)方式、供應(yīng)商提供商品編號(hào)等完成匯總操作。數(shù)據(jù)存儲(chǔ)之間通過(guò)這種關(guān)聯(lián)管理,來(lái)實(shí)現(xiàn)快速查詢供應(yīng)商、訂單、入庫(kù)商品信息的操作,且有效的控制了數(shù)據(jù)的冗余,提高了系統(tǒng)查詢得效率。543.4.2.8處理邏輯表達(dá)(PL)1判定樹(shù)(決策樹(shù))步驟畫決策樹(shù)圖形計(jì)算節(jié)點(diǎn)期望損益值修枝選擇最佳決策方案多級(jí)決策步驟分段決策最后決策55軟件工程56判定樹(shù)檢查發(fā)貨單金額>$500金額$500

欠款>60天不發(fā)出批準(zhǔn)書(shū)

欠款60天發(fā)貨單發(fā)出批準(zhǔn)書(shū)、

欠款>60天發(fā)出批準(zhǔn)書(shū)、發(fā)貨單及賒欠報(bào)告

欠款60天發(fā)出批準(zhǔn)書(shū)、發(fā)貨單表達(dá)加工邏輯的一種工具。有時(shí)侯比判定表更直觀。軟件工程57條件條件項(xiàng)動(dòng)作動(dòng)作項(xiàng)規(guī)則單個(gè)條件單個(gè)動(dòng)作2判定表如果數(shù)據(jù)流圖的加工需要依賴于多個(gè)邏輯條件的取值,使用判定表來(lái)描述比較合適。軟件工程58以“檢查發(fā)貨單”為例操在償還欠款前不予批準(zhǔn)作發(fā)出批準(zhǔn)書(shū)發(fā)出發(fā)貨單發(fā)出賒欠報(bào)告1234條發(fā)貨單金額>$500>$500≤$500≤$500件賒欠情況>60天≤60天>60天≤60天軟件工程59if發(fā)貨單金額超過(guò)$500thenif欠款超過(guò)了60天then

在償還欠款前不予批準(zhǔn)

else(欠款未超期)發(fā)批準(zhǔn)書(shū),發(fā)貨單

else(發(fā)貨單金額未超過(guò)$500)

if欠款超過(guò)60天then

發(fā)批準(zhǔn)書(shū),發(fā)貨單及賒欠報(bào)告

else(欠款未超期)發(fā)批準(zhǔn)書(shū),發(fā)貨單

3結(jié)構(gòu)化語(yǔ)言:商店業(yè)務(wù)“檢查發(fā)貨單”3.4.2.9狀態(tài)轉(zhuǎn)換圖狀態(tài)狀態(tài)是任何可以被觀察到的系統(tǒng)行為模式,一個(gè)狀態(tài)代表系統(tǒng)的一種行為模式。事件事件是某個(gè)特定時(shí)刻發(fā)生的事情,它是引起系統(tǒng)做動(dòng)作或狀態(tài)轉(zhuǎn)換的控制信息。符號(hào)例子633.4.2.10ER圖(概念模型)對(duì)現(xiàn)實(shí)世界的實(shí)體及其之間關(guān)系的抽象。數(shù)據(jù)庫(kù)表是屬于數(shù)據(jù)模型,用來(lái)描述數(shù)據(jù)的結(jié)構(gòu)關(guān)系。首先通過(guò)需求分析的人員根據(jù)客戶抽象出ER圖,然后由數(shù)據(jù)庫(kù)的設(shè)計(jì)人員根據(jù)ER圖和用戶對(duì)查詢等方面的需求設(shè)計(jì)出數(shù)據(jù)庫(kù)的表結(jié)構(gòu),以及相關(guān)的視圖和索引實(shí)體型屬性聯(lián)系規(guī)范化(第1,2,3范式)64651對(duì)1關(guān)系在兩個(gè)實(shí)體連線方向?qū)?;1對(duì)多關(guān)系在1的一方寫1,多的一方寫N多對(duì)多關(guān)系則是在兩個(gè)實(shí)體連線方向各寫N,M軟件工程66結(jié)構(gòu)化分析方法最初只是著眼于數(shù)據(jù)流,自頂向下,逐層分解,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型。擴(kuò)充后,將建模技術(shù)擴(kuò)展到數(shù)據(jù)建模、功能建模和行為建模,以實(shí)體-關(guān)系圖、數(shù)據(jù)流圖和控制流圖、狀態(tài)-遷移圖為工具,數(shù)據(jù)字典為核心,從不同視點(diǎn)建立系統(tǒng)的分析模型。結(jié)構(gòu)化分析方法軟件工程67結(jié)構(gòu)化分析的分析模型實(shí)體—關(guān)系圖狀態(tài)—遷移圖數(shù)據(jù)流圖數(shù)據(jù)對(duì)象描述加工規(guī)格說(shuō)明數(shù)據(jù)字典控制規(guī)格說(shuō)明3.4.3結(jié)構(gòu)化設(shè)計(jì)應(yīng)用的工具(技術(shù))將分析部分的邏輯模型轉(zhuǎn)化為物理模型1系統(tǒng)結(jié)構(gòu)圖2物理DFD3層次方框圖(描述數(shù)據(jù)結(jié)構(gòu)的)4層次結(jié)構(gòu)圖(H圖,層次圖,軟件層次圖)5IPO圖(輸入處理輸出圖)6HIPO圖(概要設(shè)計(jì))7N-S盒圖(詳細(xì))8PAD圖(問(wèn)題分析圖,PAM方法中用,詳細(xì))9系統(tǒng)流程圖10處理流程圖(詳細(xì))11程序網(wǎng)絡(luò)圖(少)6812系統(tǒng)資源圖(少)13程序流程圖(詳細(xì))13軟件結(jié)構(gòu)圖14程序結(jié)構(gòu)圖(詳細(xì))15Petri圖網(wǎng)(形式化的方法)16jackson圖(詳細(xì))17PDL(過(guò)程設(shè)計(jì)語(yǔ)言,偽碼,詳細(xì))693.4.3.1系統(tǒng)結(jié)構(gòu)圖703.4.3.2物流數(shù)據(jù)流圖在設(shè)計(jì)部分,利用之前的DFD經(jīng)過(guò)變換型分析設(shè)計(jì)和事務(wù)型分析設(shè)計(jì)(Yourdon方法)DFD轉(zhuǎn)成物理DFD利用DFD,數(shù)據(jù)字典等畫出HIPO圖并逐步細(xì)化,得出模塊的詳細(xì)層次結(jié)構(gòu)(更精細(xì)的H圖),即模塊分解圖713.4.3.3層次方框圖用樹(shù)形結(jié)構(gòu)的一系列多層次的矩形描述數(shù)據(jù)的層次結(jié)構(gòu).頂層是一個(gè)單獨(dú)的矩形框,它代表完整的數(shù)據(jù)結(jié)構(gòu),下面的各層矩形框代表這個(gè)數(shù)據(jù)的子集,最底層的各個(gè)框代表組成這個(gè)數(shù)據(jù)的實(shí)際數(shù)據(jù)元素(不能再分割的元素)與層次圖(H圖,層次結(jié)構(gòu)圖)差異727374層次圖層次方框圖作用描繪軟件結(jié)構(gòu)描繪數(shù)據(jù)結(jié)構(gòu)矩形框模塊數(shù)據(jù)元素連線調(diào)用關(guān)系組成關(guān)系3.4.3.4IPO與HIPOHIPO圖:Hierarchyplusinput-processing-output圖表示軟件系統(tǒng)結(jié)構(gòu)的工具。HIPO圖以模塊分解的層次性以及模塊內(nèi)部輸入、處理、輸出三大基本部分為基礎(chǔ)建立的。H圖描述軟件的層次結(jié)構(gòu),同結(jié)構(gòu)圖一樣未指明調(diào)用順序。對(duì)一些重要模塊還必須根據(jù)數(shù)據(jù)流圖、數(shù)據(jù)字典及H圖繪制具體的IPO圖IPO圖:input-processing-output圖輸入/處理/輸出圖的簡(jiǎn)稱,

描述輸入數(shù)據(jù)、對(duì)數(shù)據(jù)的處理和輸出數(shù)據(jù)之間的關(guān)系。HIPO圖=IPO圖+hierarchychart(層次圖)75HIPO圖三個(gè)部分1總體HIPO2HIPO(帶編號(hào)的層次圖)3低層主要模塊詳細(xì)的IPO圖76777879企業(yè)訂單處理系統(tǒng)的數(shù)據(jù)流程圖(如下圖),應(yīng)用HIPO圖法進(jìn)行模塊層次功能分解8081828384853.4.3.5N-S圖流程線不一定是必需的,人們?cè)O(shè)計(jì)了一種新的流程圖,它把整個(gè)程序?qū)懺谝粋€(gè)大框圖內(nèi),這個(gè)大框圖由若干個(gè)小的基本框圖構(gòu)成。特點(diǎn):功能域明確很容易確定局部和全局?jǐn)?shù)據(jù)的作用域不可能任意轉(zhuǎn)移控制很容易表示嵌套關(guān)系及模塊的層次關(guān)系86

盒圖(N-S圖)N-S圖的基本符號(hào)88含GOTO語(yǔ)句的用程序流程圖,改為N_S圖。

3.4.3.6PAD圖PAM開(kāi)發(fā)方法(問(wèn)題分析法,ProblemAnalysisMethod)兼顧Yourdon方法、Jackson方法和自底向上的軟件開(kāi)發(fā)方法的優(yōu)點(diǎn),避免它們的缺陷?;舅枷耄嚎紤]到輸入、輸出數(shù)據(jù)結(jié)構(gòu),指導(dǎo)系統(tǒng)的分解,在系統(tǒng)分析指導(dǎo)下逐步綜合。具體步驟:從輸入、輸出數(shù)據(jù)結(jié)構(gòu)導(dǎo)出基本處理框;分析這些處理框之間的先后關(guān)系;按先后關(guān)系逐步綜合處理框,直到畫出整個(gè)系統(tǒng)的PAD圖。本質(zhì)上是綜合的自底向上的方法,但在逐步綜合之前已進(jìn)行了有目的的分解,這個(gè)目的就是充分考慮系統(tǒng)的輸入、輸出數(shù)據(jù)結(jié)構(gòu)。

90優(yōu)點(diǎn):1用表示結(jié)構(gòu)優(yōu)化控制結(jié)構(gòu)的PAD符號(hào)所設(shè)計(jì)出來(lái)的程序必然是程序化程序2PAD圖所描述的程序結(jié)構(gòu)十分清晰.一種二維樹(shù)形結(jié)構(gòu)圖,較好的詳細(xì)設(shè)計(jì)表示方法之一,遠(yuǎn)遠(yuǎn)優(yōu)于NS圖和PDL語(yǔ)言。

3易讀4易轉(zhuǎn)換為高級(jí)語(yǔ)言5可表示程序邏輯也可表示數(shù)據(jù)結(jié)構(gòu)9192933.4.3.7流程圖

1流程圖使用約定2流程圖的三種基本結(jié)構(gòu):

順序、選擇、循環(huán)。

工資管理信息系統(tǒng)流程圖963.4.3.8處理流程圖系統(tǒng)流程圖對(duì)每一處理功能只是列出其處理功能名稱,而處理流程圖則使用各種符號(hào)具體地規(guī)定了處理過(guò)程中的各個(gè)細(xì)節(jié),包括程序名和文件名。處理流程圖實(shí)際上是系統(tǒng)流程圖的展開(kāi)可具體化,屬于詳細(xì)設(shè)計(jì)的內(nèi)容,應(yīng)和處理功能的模塊設(shè)計(jì)一起進(jìn)行。97扣款文件處理功能流程圖

983.4.3.9程序網(wǎng)絡(luò)圖991003.4.3.101011023.4.3.11軟件結(jié)構(gòu)圖1.結(jié)構(gòu)圖的符號(hào)(1)方框代表模塊。直線,表示上層模塊對(duì)下層模塊的調(diào)用(2)方框之間的大箭頭或直線表示模塊的調(diào)用關(guān)系。(3)帶注釋的小箭頭表示模塊調(diào)用時(shí)傳遞的信息及其傳遞方向。尾部加空心圓的小箭頭表示傳遞數(shù)據(jù)信息。尾部加實(shí)心圓的小箭頭表示傳遞控制信息。(4)選擇結(jié)構(gòu)(5)循環(huán)結(jié)構(gòu),模塊M循環(huán)調(diào)用模塊A,B,C103注意:層次圖和結(jié)構(gòu)圖并不嚴(yán)格表示模塊的調(diào)用次序,層次圖和結(jié)構(gòu)圖只表明一個(gè)模塊調(diào)用那些模塊,至于模塊內(nèi)還有沒(méi)有其他成分則完全沒(méi)有表示。作用:描述模塊間參數(shù)交換情況、評(píng)價(jià)模塊間耦合情況、確定模塊間的接口。結(jié)構(gòu)圖一般不列入設(shè)計(jì)文檔,只用于設(shè)計(jì)階段檢查模塊設(shè)計(jì)的正確性和模塊獨(dú)立性。104

1052.結(jié)構(gòu)圖的繪制

學(xué)生成績(jī)管理系統(tǒng)的結(jié)構(gòu)圖3.4.3.12程序流程圖描述程序中控制流的情況,即程序中處理的執(zhí)行順序和執(zhí)行序列所依賴的條件,圖中的有向線段表示的是控制流,從一個(gè)處理走到下一個(gè)處理1程序流程圖的標(biāo)準(zhǔn)符號(hào)2優(yōu)缺點(diǎn)107108109缺點(diǎn):(1)并不是逐步求精的好工具。使程序員容易過(guò)早地考慮程序的具體控制流程,而忽略了程序的全局結(jié)構(gòu);(2)程序流程圖中用箭頭代表控制流,這樣使得程序員不受任何約束,可以完全不顧結(jié)構(gòu)程序設(shè)計(jì)的精神,隨意轉(zhuǎn)移控制;(3)程序流程圖在表示數(shù)據(jù)結(jié)構(gòu)方面存在不足。3.4.3.13程序的系統(tǒng)結(jié)構(gòu)圖:反應(yīng)的是系統(tǒng)中模塊的調(diào)用關(guān)系和層次關(guān)系,誰(shuí)調(diào)用誰(shuí)有一個(gè)先后次序關(guān)系。途中的有向線段表示調(diào)用時(shí)程序的控制從調(diào)用模塊一道被調(diào)用模塊,并隱含了當(dāng)調(diào)用結(jié)束時(shí)控制將交回給調(diào)用模塊1113.4.3.14JACKSON圖(面向數(shù)據(jù)結(jié)構(gòu)的)對(duì)輸入、輸出數(shù)據(jù)結(jié)構(gòu)明確的中小型系統(tǒng)特別有效,如商業(yè)應(yīng)用中的文件表格處理。也可與其它方法結(jié)合,用于模塊的詳細(xì)設(shè)計(jì)。113面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法1)順序結(jié)構(gòu)

ABCDA由B、C、D三個(gè)元素順序組成2)選擇結(jié)構(gòu)

AB°C°D°根據(jù)條件A選擇B、C、D中的某一個(gè)3)重復(fù)結(jié)構(gòu)AB*A由B出現(xiàn)N次組成改進(jìn)的Jackson圖

ABCD改進(jìn)的Jackson圖ABoCoDoABo-oAB*S(i)S(i)I(i)(a)(b)(c)(d)3.4.3.15PDL語(yǔ)言(過(guò)程設(shè)計(jì)語(yǔ)言)特點(diǎn):(1)詳細(xì)設(shè)計(jì)階段工具。(2)用PDL寫出的程序,既可以很抽象,又可以很具體。因此,容易實(shí)現(xiàn)自頂向下逐步求精的設(shè)計(jì)原則。(3)PDL描述同自然語(yǔ)言很接近,易于理解。(4)PDL描述可以直接作為注釋插在源程序中,成為程序的內(nèi)部文檔。這對(duì)提高程序的可讀性是非常有益的。(5)PDL描述與程序結(jié)構(gòu)相似,因此自動(dòng)產(chǎn)生程序比較容易。缺點(diǎn):不如圖形描述形象直觀,常將PDL描述與一種圖形描述結(jié)合起來(lái)使用。3.5原型化方法(動(dòng)態(tài)分析法)1與結(jié)構(gòu)法比較2優(yōu)點(diǎn)3其他具體特點(diǎn)幾點(diǎn):(1)原型化的生命周期和結(jié)構(gòu)化的區(qū)別(2)原型生命周期劃分的步驟

(3)使用原型化(4)不同類原型開(kāi)發(fā)法1191201211)進(jìn)化式原型開(kāi)發(fā)基本思路是:先給出一個(gè)系統(tǒng)的最初實(shí)現(xiàn),讓用戶去使用和評(píng)價(jià),不斷進(jìn)行細(xì)化和改善,經(jīng)過(guò)多次這樣的反復(fù)過(guò)程后形成最終的完善的系統(tǒng)。開(kāi)發(fā)抽象描述建立原型系統(tǒng)使用原型系統(tǒng)系統(tǒng)充分嗎?交付系統(tǒng)否是軟件工程1222)拋棄式原型開(kāi)發(fā)基本思路是:原型的根本作用是弄清楚需求和為風(fēng)險(xiǎn)評(píng)估提供補(bǔ)充信息。通過(guò)評(píng)估后,原型被拋棄,重新規(guī)劃和實(shí)施系統(tǒng)的開(kāi)發(fā)??蚣苄枨箝_(kāi)發(fā)原型確定系統(tǒng)評(píng)估原型開(kāi)發(fā)軟件問(wèn)題可驗(yàn)證系統(tǒng)問(wèn)題可交付的軟件系統(tǒng)可復(fù)用構(gòu)件3.6面向?qū)ο蟮姆治龊驮O(shè)計(jì)3.6.1概述1定義:面向?qū)ο蠓椒ㄊ且环N運(yùn)用對(duì)象、類、繼承、封裝、聚合、消息傳遞、多態(tài)性等概念來(lái)構(gòu)造系統(tǒng)的軟件開(kāi)發(fā)方法。2面向?qū)ο?對(duì)象+類+繼承+消息通信3面向?qū)ο蟮闹饕卣鳎悍忾]性(Encapsulation)

繼承性(Inheritance)

多態(tài)性(Polymorphism1234對(duì)象與封裝:對(duì)象是描述客觀事物的一個(gè)實(shí)體,構(gòu)成系統(tǒng)的一個(gè)基本單位。要素:面向?qū)ο蟮能浖到y(tǒng)是由對(duì)象組成的。復(fù)雜的對(duì)象由比較簡(jiǎn)單的對(duì)象組合而成。而且把數(shù)據(jù)也封裝在里。5對(duì)象的三要素:標(biāo)識(shí)(名字),屬性(狀態(tài)或數(shù)據(jù),描述靜態(tài)特征的),服務(wù)(操作,行為,或方法,描述動(dòng)態(tài)特征)。1246類(class)具有共同屬性和行為的對(duì)象的抽象類與對(duì)象的關(guān)系類是對(duì)象的抽象對(duì)象是類的實(shí)例類對(duì)象對(duì)象、實(shí)體與類對(duì)象實(shí)體類抽象數(shù)據(jù)類計(jì)算機(jī)世界現(xiàn)實(shí)世界計(jì)算機(jī)邏輯的實(shí)現(xiàn)影射抽象實(shí)例化抽象概念世界

7封裝封裝是軟件開(kāi)發(fā)方法的重要原則,兩涵義:把對(duì)象的全部屬性和全部服務(wù)結(jié)合在一起,形成一個(gè)不可分割的獨(dú)立單位(對(duì)象)。盡可能隱蔽對(duì)象的內(nèi)部細(xì)節(jié)(信息隱蔽)封裝:要提供接口傳統(tǒng)方法數(shù)據(jù)與過(guò)程是分離的過(guò)程1輸入輸出過(guò)程2過(guò)程3數(shù)據(jù)實(shí)體屬于該對(duì)象的數(shù)據(jù)對(duì)象處理數(shù)據(jù)的方法消息消息對(duì)象把數(shù)據(jù)和處理數(shù)據(jù)的方法封狀成一個(gè)單元8傳統(tǒng)方法和面向?qū)ο蠓椒ǖ谋容^傳統(tǒng)方法系統(tǒng)是過(guò)程的集合過(guò)程與數(shù)據(jù)實(shí)體交互過(guò)程接受輸入并產(chǎn)生輸出面向?qū)ο蠓椒ㄏ到y(tǒng)是交互對(duì)象的集合對(duì)象與人或其它對(duì)象交互對(duì)象發(fā)送與響應(yīng)消息9繼承(繼承性inheritance)繼承性是父類和子類之間共享數(shù)據(jù)和方法的機(jī)制繼承性具有傳遞性繼承性包括單繼承和多重繼承

子類繼承部分增加部分父類共性部分繼承性作用

使軟件系統(tǒng)具有開(kāi)放性更好地進(jìn)行抽象與分類增強(qiáng)代碼的重用率10多態(tài)(多態(tài)性polymorphism)不同的對(duì)象收到同一消息可產(chǎn)生完全不同的結(jié)果,這一現(xiàn)象叫做多態(tài)多態(tài)的效果用戶發(fā)送一個(gè)通用的消息,而實(shí)現(xiàn)的細(xì)節(jié)則由接收對(duì)象自行決定11消息(message)消息通信

對(duì)象之間相互請(qǐng)求或相互協(xié)作的途徑,是要求某個(gè)對(duì)象執(zhí)行某個(gè)功能操作的規(guī)格說(shuō)明消息內(nèi)容

通常包含接收方及請(qǐng)求接收方完成的功能信息發(fā)送方

發(fā)出消息,請(qǐng)求接收方響應(yīng)接收方

收到消息后,經(jīng)過(guò)解釋,激活方法,予以響應(yīng)12主動(dòng)對(duì)象:可以使開(kāi)發(fā)者從系統(tǒng)建模開(kāi)始用對(duì)象表達(dá)問(wèn)題域中事物的主動(dòng)行為和系統(tǒng)中的每個(gè)任務(wù)。被動(dòng)對(duì)象,兩個(gè)不足:1不符合客觀世界2非多個(gè)任務(wù)。

概念,注意兩點(diǎn),Classname如果是主動(dòng)對(duì)象用@在前面@CLASSNAMEattibutesOperations()類:具有相同屬性和服務(wù)的一個(gè)或一組對(duì)象的抽象定義。134軟件工程1353.6.2典型的面向?qū)ο蠓治觯∣OA)建模方法每種方法都有各自的分析過(guò)程和符號(hào)體系。Booch方法認(rèn)為開(kāi)發(fā)是螺旋上升過(guò)程:4個(gè)步驟/周期強(qiáng)調(diào)邏輯視圖和物理視圖的區(qū)別提供靜態(tài),動(dòng)態(tài)模型軟件工程136Booch方法包含“微開(kāi)發(fā)過(guò)程”和“宏開(kāi)發(fā)過(guò)程”。微開(kāi)發(fā)過(guò)程定義了一組任務(wù),并在宏開(kāi)發(fā)過(guò)程的每一步驟中反復(fù)使用它們以維持演進(jìn)途徑。Booch的OOA宏開(kāi)發(fā)過(guò)程的任務(wù)包括標(biāo)識(shí)類和對(duì)象、標(biāo)識(shí)類和對(duì)象的語(yǔ)義、定義類與對(duì)象間的關(guān)系,以及進(jìn)行一系列求精實(shí)現(xiàn)分析模型。軟件工程137Rumbaugh(OMT)方法又稱為對(duì)象模型化技術(shù)OMT,從具體到抽象,用于分析、系統(tǒng)設(shè)計(jì)和對(duì)象級(jí)設(shè)計(jì)。分析活動(dòng)建立三個(gè)模型:1)對(duì)象模型描述對(duì)象、類、層次和關(guān)系2)動(dòng)態(tài)模型描述對(duì)象和系統(tǒng)的行為3)功能模型類似于高層的DFD,描述穿越系統(tǒng)的信息流軟件工程138Coad和Yourdon方法其OOA過(guò)程概述如下:1)使用“要找什么”準(zhǔn)則標(biāo)識(shí)對(duì)象;2)定義對(duì)象之間的一般化∕特殊化結(jié)構(gòu)(又稱為分類結(jié)構(gòu));3)定義對(duì)象之間的整體∕部分結(jié)構(gòu)(又稱為組裝結(jié)構(gòu));4)標(biāo)識(shí)主題(系統(tǒng)構(gòu)件的表示);5)定義對(duì)象的屬性及對(duì)象之間的實(shí)例連接;6)定義服務(wù)及對(duì)象之間的消息連接。OOA的結(jié)構(gòu)

類的邊界Class&objectlayer(類及對(duì)象層)Attributelayer(屬性層)Servicelayer(服務(wù)層)Structurelayer(結(jié)構(gòu)層)Subjectlayer(主題層)實(shí)例的邊界實(shí)例連接消息連接主題服務(wù)屬性(1)主題層(2)對(duì)象層(類)對(duì)象是屬性及其專用服務(wù)的一個(gè)封裝體,是對(duì)問(wèn)題域中的人事和物等客觀實(shí)體進(jìn)行的抽象描述。(3)結(jié)構(gòu)層(關(guān)系層)在OO方法中組裝結(jié)構(gòu)和分類結(jié)構(gòu)是兩種重要的結(jié)構(gòu)類型:整體與部分,一般與特殊(4)屬性層(有的叫特征層)對(duì)象的屬性值屬性值,就是一些狀態(tài)的信息數(shù)據(jù)(5)服務(wù)層一個(gè)服務(wù)就是收到一條信息后所執(zhí)行的處理操作服務(wù)是對(duì)模型化的現(xiàn)實(shí)世界的進(jìn)一步抽象140客觀世界中的實(shí)體——問(wèn)題域中的對(duì)象;計(jì)算機(jī)中的實(shí)體——解空間對(duì)象;軟件工程141Jacobson方法又稱為OOSE(面向?qū)ο筌浖こ蹋L厣菑?qiáng)調(diào)用例(UseCase)。Jacobson方法概述如下:標(biāo)識(shí)系統(tǒng)的用戶和它們的整體責(zé)任;通過(guò)定義參與者及其職責(zé)、用例、對(duì)象和關(guān)系的初步視圖,建立需求模型;通過(guò)標(biāo)識(shí)界面對(duì)象、建立界面對(duì)象的結(jié)構(gòu)視圖、表示對(duì)象行為、分離出每個(gè)對(duì)象的子系統(tǒng)和模型,建立分析模型。軟件工程142Wirfs―Brock方法不明確地區(qū)分分析和設(shè)計(jì)任務(wù)。從評(píng)估客戶規(guī)格說(shuō)明到設(shè)計(jì)完成,是一個(gè)連續(xù)的過(guò)程。與Wirfs―Brock分析有關(guān)的任務(wù)如下:1)

評(píng)估客戶規(guī)格說(shuō)明;2)

使用語(yǔ)法分析從規(guī)格說(shuō)明中提取候選類;3)

將類分組以標(biāo)識(shí)超類;4)

定義每一個(gè)類的職責(zé);5)

將職責(zé)賦予每個(gè)類;6)

標(biāo)識(shí)類之間的關(guān)系;7)

基于職責(zé)定義類之間的協(xié)作;8)

建立類的層次表示;9)

構(gòu)造系統(tǒng)的協(xié)作圖。軟件工程143UML的OOA方A三大類模型:對(duì)象模型,動(dòng)態(tài)模型,功能模型對(duì)象模型:5個(gè)層次,4種關(guān)系類和對(duì)象,確定結(jié)構(gòu)與關(guān)聯(lián),劃分主題,定義屬性,定義服務(wù)對(duì)象和類之間的關(guān)系:4種:

一般---特殊結(jié)構(gòu)(分類結(jié)構(gòu))

整體---部分結(jié)構(gòu)(組裝結(jié)構(gòu))

實(shí)例關(guān)聯(lián)(一個(gè)類的屬性中含有另一個(gè)類的實(shí)例)

消息關(guān)聯(lián)

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論