版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第3章系統(tǒng)分析方法學(xué)3.1系統(tǒng)分析:是一種問題解決技術(shù),是整個系統(tǒng)設(shè)計(jì)開發(fā)的基礎(chǔ)。包括需求獲取和調(diào)查研究的技術(shù)3.2掌握幾個關(guān)鍵術(shù)語(見后頁)
1系統(tǒng)分析系統(tǒng)設(shè)計(jì)模型驅(qū)動分析結(jié)構(gòu)化分析對象對象建模面向?qū)ο蟮姆椒嫦驅(qū)ο蠓治鲈瞳@取原型快速架構(gòu)分析敏捷方法需求獲取功能需求和非功能需求用例用例建模業(yè)務(wù)需求用例應(yīng)用數(shù)據(jù)模型上下文數(shù)據(jù)模型邏輯模型物理模型系統(tǒng)分析用例3.3Parnas方法:最早的軟件開發(fā)方法由D.Parnas在1972年提出的。當(dāng)時軟件在可維護(hù)性和可靠性方面存在著嚴(yán)重問題,因此Parnas針對這兩個問題的提出。1信息隱蔽原則現(xiàn)在信息隱蔽原則已成為軟件工程學(xué)中的一條重要原則。2設(shè)計(jì)時應(yīng)對可能發(fā)生的種種意外故障采取措施。遺憾:沒有給出明確的工作流程。所以這一方法不能獨(dú)立使用,只能作為其它方法的補(bǔ)充。33.4結(jié)構(gòu)化方法學(xué)(以Yourdon方法
為主)3.4.1包括SA,SD,SP。自頂向下,逐步求精,基本原則:抽象與分解/主要對系統(tǒng)過程建模特點(diǎn):A階段性B推遲實(shí)施C文檔管理優(yōu)缺點(diǎn)43.4.2結(jié)構(gòu)化分析應(yīng)用的工具(技術(shù))除了語言或表的描述外,圖形類的有以下: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è)計(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ù)存儲規(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)的直觀反映,也是對該組織功能的一種側(cè)面詮釋。83.4.2.2業(yè)務(wù)流程圖(TransactionFlowDiagram,TFD)定義:用一些規(guī)定的符號及連線來表示某個具體業(yè)務(wù)處理過程。業(yè)務(wù)流程圖的繪制是按照業(yè)務(wù)的實(shí)際處理步驟和過程進(jìn)行的。業(yè)務(wù)流程圖是一種系統(tǒng)分析人員都懂的共同語言,用來描述系統(tǒng)組織結(jié)構(gòu)、業(yè)務(wù)流程注重業(yè)務(wù)職能的流程,業(yè)務(wù)的流轉(zhuǎn)而非事務(wù)91.業(yè)務(wù)流程圖的基本符號及含義102.畫業(yè)務(wù)流程圖的步驟與例子(1)現(xiàn)行系統(tǒng)業(yè)務(wù)流程總結(jié)畫業(yè)務(wù)流程圖之前,對現(xiàn)行系統(tǒng)進(jìn)行詳細(xì)調(diào)查,寫出現(xiàn)行系統(tǒng)業(yè)務(wù)流程總結(jié)。例如,開發(fā)人員在系統(tǒng)調(diào)查階段了解到某企業(yè)的會計(jì)核算形式是科目匯總表的核算形式,其帳務(wù)處理業(yè)務(wù)流程如下:根據(jù)審核無誤的原始憑證匯總表編制記帳憑證,包括現(xiàn)金收付、銀行收付、轉(zhuǎn)帳憑證。根據(jù)現(xiàn)金收付款憑證登記現(xiàn)金日記帳。根據(jù)銀行收付款憑證登記銀行存款日記帳。根據(jù)銀行送來的對帳單對銀行存款日記帳核對。根據(jù)記帳憑證及所付原始憑證登記有關(guān)明細(xì)帳。根據(jù)記帳憑證,按相同的借貸方匯總出科目匯總表。根據(jù)科目匯總表登記匯總分類帳。將明細(xì)帳科目余額與財產(chǎn)物資實(shí)用數(shù)核對。把總分類帳余額與有關(guān)明細(xì)帳余額核對。根據(jù)總帳、明細(xì)帳余額編制各種會計(jì)報表。11(2)業(yè)務(wù)流程圖突出部門和崗位的輸入輸出12(3)帶泳道的業(yè)務(wù)流程圖泳道圖在某些文檔里會被稱為“以活動為單位的流程圖”,浮在泳道中的都是一個個活動。突出活動關(guān)系,表示各部門的責(zé)任131415163.業(yè)務(wù)流程圖的特點(diǎn)(1)圖的形式是按業(yè)務(wù)部門劃分的橫式圖(后面泳道圖)。(2)圖描述的主體是票據(jù)、帳單的業(yè)務(wù)處理。(3)票據(jù)、帳單流動路線與實(shí)際業(yè)務(wù)處理過程一一對應(yīng)。(4)圖中票據(jù)、帳單是有“生”、“死”的,即用它的一次生命周期來表示出一筆業(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ù)據(jù)流圖),它描述了計(jì)算機(jī)事務(wù)處理中從數(shù)據(jù)輸入開始到獲得輸出為止各個處理工序過程描繪系統(tǒng)物理模型的傳統(tǒng)工具?;舅枷胧怯脠D形符號以黑盒子的形式描繪系統(tǒng)理念的每個部件包括程序,文件,數(shù)據(jù)庫,表格,人工過程等,表達(dá)信息在各個部件之間流動的情況,而不是表示對信息進(jìn)行加工處理的控制過程18192021基本處理工序1、變換把輸入單據(jù)變換成磁盤文件,或把磁盤文件變換成輸出單據(jù),或把某一磁盤文件的內(nèi)容由一個介質(zhì)文件傳送到另一介質(zhì)文件:2223一般在在進(jìn)行輸入變換同時,還可進(jìn)行形式性的邏輯檢查,如輸入單據(jù)的數(shù)據(jù)范圍,錄入錯誤等等。2、合并把多個文件合并為一個文件,如:243、劃分是合并的逆操作,將合并工序的輸入文件與輸出文件對調(diào)即可:254、分類(排序)按指定的鍵(關(guān)鍵字)以升序或降序改變原文件的記錄排列順序。例如,將如下記錄排列的舊文件,按關(guān)鍵字升序,依次進(jìn)行分類,得到新文件:26分類也可和輸入或輸出操作一起進(jìn)行:275、更新將多個文件作為輸入根據(jù)關(guān)鍵項(xiàng)目進(jìn)行對照,對文件進(jìn)行內(nèi)容修正、刪除、增加等改寫工作,一般更新的內(nèi)容先要寫入一個臨時文件:28用系統(tǒng)流程圖設(shè)計(jì)管理系統(tǒng)應(yīng)該注意的問題1、盡量縮短處理時間。2、盡量減少空閑時間。3、要考慮便于完成程序的調(diào)試。工序數(shù)和系統(tǒng)的類型,由于存儲容量和中間介質(zhì)的使用如何,使用幾臺機(jī)器問題,也要受到影響。因此在這個階段,可對存儲容量和機(jī)器結(jié)構(gòu)進(jìn)行預(yù)測。29
庫存清單系統(tǒng)的系統(tǒng)流程圖系統(tǒng)流程圖表示的人工銷售教材的一個物理模型。信息流始于學(xué)生,又終于學(xué)生。313.4.2.4上下文圖(ContextMapping)上下文數(shù)據(jù)流圖,上下文事件圖(其實(shí)也是數(shù)據(jù)流圖),上下文數(shù)據(jù)模型(書203),問題分析階段的上下文(P122)等。根據(jù)圖的類別不同,上下文圖當(dāng)然形式也不一樣。323.4.2.5DFD(數(shù)據(jù)流圖:DataFlowDiagram)1數(shù)據(jù)流圖:描述數(shù)據(jù)流從輸入到輸出的變化過程。2上下文圖:顯示了系統(tǒng)界限,用數(shù)據(jù)流連接實(shí)體和過程3DFD
4個元素4分層數(shù)據(jù)流圖,原則和注意事項(xiàng)34數(shù)據(jù)流圖四種基本符號數(shù)據(jù)加工/處理/變換數(shù)據(jù)源點(diǎn)或終點(diǎn)(外部實(shí)體)數(shù)據(jù)流(dataflow)數(shù)據(jù)存儲文件或或或數(shù)據(jù)流圖幾種附加符號分層的數(shù)據(jù)流圖
F0A0B0F11A0B0F12F13F14F15p1C1D1M1N1F21M1F22N1F23K2F24W2F25p1Y2X2第n
層第n+2
層3839P239圖9-16,事件圖(事件上下文圖),系統(tǒng)圖,基本圖等功能分解圖后,要考慮系統(tǒng)響應(yīng)什么業(yè)務(wù)事件。什么樣的響應(yīng)比較合適。外部事件,時序事件,狀態(tài)事件。P238用例技術(shù)也是確定事件和響應(yīng)的流行方法之一。事件分解圖:增加事件處理過程到分解圖中系統(tǒng)圖:合并多個事件圖基本圖:顯示單個事件所有的基本過程,數(shù)據(jù)存儲和數(shù)據(jù)流4041源點(diǎn)終點(diǎn)處理過程采購員倉庫管理員產(chǎn)生報表處理事務(wù)數(shù)據(jù)流數(shù)據(jù)存儲訂貨報表(包含數(shù)據(jù)項(xiàng))零件編號零件名稱訂貨數(shù)量目前價格主要供應(yīng)者次要供應(yīng)者事務(wù)零件編號事務(wù)類型數(shù)量訂貨信息(見訂貨報表)庫存清單
零件編號
庫存量
庫存量臨界值42433.4.2.6數(shù)據(jù)字典(DataDictionary)結(jié)構(gòu)化分析方法的核心,與各模型的圖形表示配合,能清楚地表達(dá)數(shù)據(jù)處理的要求1、4種類型數(shù)據(jù)內(nèi)容的符號的使用方法:標(biāo)示符=字母字符+字母數(shù)字串字母數(shù)字串=0{字母或數(shù)字}7字母或數(shù)字=【字母字符\數(shù)字字符】
46軟件工程47詞條描述——對于在模型中每一個被命名的圖形元素,均加以定義,其內(nèi)容有:名字,別名或編號,分類,描述,定義,位置,其它,等。數(shù)據(jù)流詞條描述數(shù)據(jù)流名:說明:簡要介紹它產(chǎn)生的原因和結(jié)果數(shù)據(jù)流來源:來自何方數(shù)據(jù)流去向:去向何處數(shù)據(jù)流組成:數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)量流通量:數(shù)據(jù)量,流通量軟件工程48數(shù)據(jù)元素詞條描述類型:數(shù)字(離散值,連續(xù)值),文字(編碼類型)長度取值范圍相關(guān)的數(shù)據(jù)元素及數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)文件詞條描述數(shù)據(jù)文件名:簡述:存放的是什么數(shù)據(jù)輸入/輸出數(shù)據(jù):數(shù)據(jù)文件組成:數(shù)據(jù)結(jié)構(gòu)存儲方式:順序,直接,關(guān)鍵碼存取頻率:軟件工程49加工邏輯詞條描述加工名:加工編號:反映該加工的層次簡要描述:加工邏輯及功能簡述輸入/輸出數(shù)據(jù)流:加工邏輯:簡述加工程序,加工順序數(shù)據(jù)源及數(shù)據(jù)詞條描述
名稱:外部實(shí)體名簡要描述:什么外部實(shí)體有關(guān)數(shù)據(jù)流:數(shù)目:軟件工程50數(shù)據(jù)結(jié)構(gòu)的描述
符號
含義
舉例=被定義為+與
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存折=戶名+所號+帳號+開戶日+性質(zhì)+(印密)+1{存取行}50戶名=2{字母}24所號=001..999帳號=00000001..99999999開戶日=年+月+日性質(zhì)=“1”..“6”注:“1”表示普通戶,“5”表示工資戶等印密=“0”注:印密在存折上不顯示存取行=日期+(摘要)+支出+存入+余額+操作+復(fù)核3.4.2.7事件立即存儲圖數(shù)據(jù)流程圖中定義了數(shù)據(jù)存儲,在數(shù)據(jù)字典中表述了數(shù)據(jù)存儲的結(jié)構(gòu)后,可以使用數(shù)據(jù)立即存取圖來進(jìn)行數(shù)據(jù)存取分析按供應(yīng)商編號等來查詢該供應(yīng)商的基本信息,訂單編號等查詢訂單的信息訂單編號等查詢對應(yīng)的入庫商品的信息。供應(yīng)商名稱等查詢對應(yīng)訂單信息及商品的入庫信息相反地,通過輸入商品編號等可以查詢對應(yīng)的訂單信息和供應(yīng)商信息。5253通過這些存檔的數(shù)據(jù),完成匯總報表操作。包括訂單信息的匯總、入庫單的匯總,生成訂單匯總表和入庫統(tǒng)計(jì)表。通過輸入訂購方式、供應(yīng)商提供商品編號等完成匯總操作。數(shù)據(jù)存儲之間通過這種關(guān)聯(lián)管理,來實(shí)現(xiàn)快速查詢供應(yīng)商、訂單、入庫商品信息的操作,且有效的控制了數(shù)據(jù)的冗余,提高了系統(tǒng)查詢得效率。543.4.2.8處理邏輯表達(dá)(PL)1判定樹(決策樹)步驟畫決策樹圖形計(jì)算節(jié)點(diǎn)期望損益值修枝選擇最佳決策方案多級決策步驟分段決策最后決策55軟件工程56判定樹檢查發(fā)貨單金額>$500金額$500
欠款>60天不發(fā)出批準(zhǔn)書
欠款60天發(fā)貨單發(fā)出批準(zhǔn)書、
欠款>60天發(fā)出批準(zhǔn)書、發(fā)貨單及賒欠報告
欠款60天發(fā)出批準(zhǔn)書、發(fā)貨單表達(dá)加工邏輯的一種工具。有時侯比判定表更直觀。軟件工程57條件條件項(xiàng)動作動作項(xiàng)規(guī)則單個條件單個動作2判定表如果數(shù)據(jù)流圖的加工需要依賴于多個邏輯條件的取值,使用判定表來描述比較合適。軟件工程58以“檢查發(fā)貨單”為例操在償還欠款前不予批準(zhǔn)作發(fā)出批準(zhǔn)書發(fā)出發(fā)貨單發(fā)出賒欠報告1234條發(fā)貨單金額>$500>$500≤$500≤$500件賒欠情況>60天≤60天>60天≤60天軟件工程59if發(fā)貨單金額超過$500thenif欠款超過了60天then
在償還欠款前不予批準(zhǔn)
else(欠款未超期)發(fā)批準(zhǔn)書,發(fā)貨單
else(發(fā)貨單金額未超過$500)
if欠款超過60天then
發(fā)批準(zhǔn)書,發(fā)貨單及賒欠報告
else(欠款未超期)發(fā)批準(zhǔn)書,發(fā)貨單
3結(jié)構(gòu)化語言:商店業(yè)務(wù)“檢查發(fā)貨單”3.4.2.9狀態(tài)轉(zhuǎn)換圖狀態(tài)狀態(tài)是任何可以被觀察到的系統(tǒng)行為模式,一個狀態(tài)代表系統(tǒng)的一種行為模式。事件事件是某個特定時刻發(fā)生的事情,它是引起系統(tǒng)做動作或狀態(tài)轉(zhuǎn)換的控制信息。符號例子633.4.2.10ER圖(概念模型)對現(xiàn)實(shí)世界的實(shí)體及其之間關(guān)系的抽象。數(shù)據(jù)庫表是屬于數(shù)據(jù)模型,用來描述數(shù)據(jù)的結(jié)構(gòu)關(guān)系。首先通過需求分析的人員根據(jù)客戶抽象出ER圖,然后由數(shù)據(jù)庫的設(shè)計(jì)人員根據(jù)ER圖和用戶對查詢等方面的需求設(shè)計(jì)出數(shù)據(jù)庫的表結(jié)構(gòu),以及相關(guān)的視圖和索引實(shí)體型屬性聯(lián)系規(guī)范化(第1,2,3范式)64651對1關(guān)系在兩個實(shí)體連線方向?qū)?;1對多關(guān)系在1的一方寫1,多的一方寫N多對多關(guān)系則是在兩個實(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ù)對象描述加工規(guī)格說明數(shù)據(jù)字典控制規(guī)格說明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圖(問題分析圖,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(過程設(shè)計(jì)語言,偽碼,詳細(xì))693.4.3.1系統(tǒng)結(jié)構(gòu)圖703.4.3.2物流數(shù)據(jù)流圖在設(shè)計(jì)部分,利用之前的DFD經(jīng)過變換型分析設(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層次方框圖用樹形結(jié)構(gòu)的一系列多層次的矩形描述數(shù)據(jù)的層次結(jié)構(gòu).頂層是一個單獨(dú)的矩形框,它代表完整的數(shù)據(jù)結(jié)構(gòu),下面的各層矩形框代表這個數(shù)據(jù)的子集,最底層的各個框代表組成這個數(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)用順序。對一些重要模塊還必須根據(jù)數(shù)據(jù)流圖、數(shù)據(jù)字典及H圖繪制具體的IPO圖IPO圖:input-processing-output圖輸入/處理/輸出圖的簡稱,
描述輸入數(shù)據(jù)、對數(shù)據(jù)的處理和輸出數(shù)據(jù)之間的關(guān)系。HIPO圖=IPO圖+hierarchychart(層次圖)75HIPO圖三個部分1總體HIPO2HIPO(帶編號的層次圖)3低層主要模塊詳細(xì)的IPO圖76777879企業(yè)訂單處理系統(tǒng)的數(shù)據(jù)流程圖(如下圖),應(yīng)用HIPO圖法進(jìn)行模塊層次功能分解8081828384853.4.3.5N-S圖流程線不一定是必需的,人們設(shè)計(jì)了一種新的流程圖,它把整個程序?qū)懺谝粋€大框圖內(nèi),這個大框圖由若干個小的基本框圖構(gòu)成。特點(diǎn):功能域明確很容易確定局部和全局?jǐn)?shù)據(jù)的作用域不可能任意轉(zhuǎn)移控制很容易表示嵌套關(guān)系及模塊的層次關(guān)系86
盒圖(N-S圖)N-S圖的基本符號88含GOTO語句的用程序流程圖,改為N_S圖。
3.4.3.6PAD圖PAM開發(fā)方法(問題分析法,ProblemAnalysisMethod)兼顧Yourdon方法、Jackson方法和自底向上的軟件開發(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)系逐步綜合處理框,直到畫出整個系統(tǒng)的PAD圖。本質(zhì)上是綜合的自底向上的方法,但在逐步綜合之前已進(jìn)行了有目的的分解,這個目的就是充分考慮系統(tǒng)的輸入、輸出數(shù)據(jù)結(jié)構(gòu)。
90優(yōu)點(diǎn):1用表示結(jié)構(gòu)優(yōu)化控制結(jié)構(gòu)的PAD符號所設(shè)計(jì)出來的程序必然是程序化程序2PAD圖所描述的程序結(jié)構(gòu)十分清晰.一種二維樹形結(jié)構(gòu)圖,較好的詳細(xì)設(shè)計(jì)表示方法之一,遠(yuǎn)遠(yuǎn)優(yōu)于NS圖和PDL語言。
3易讀4易轉(zhuǎn)換為高級語言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)流程圖對每一處理功能只是列出其處理功能名稱,而處理流程圖則使用各種符號具體地規(guī)定了處理過程中的各個細(xì)節(jié),包括程序名和文件名。處理流程圖實(shí)際上是系統(tǒng)流程圖的展開可具體化,屬于詳細(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)圖的符號(1)方框代表模塊。直線,表示上層模塊對下層模塊的調(diào)用(2)方框之間的大箭頭或直線表示模塊的調(diào)用關(guān)系。(3)帶注釋的小箭頭表示模塊調(diào)用時傳遞的信息及其傳遞方向。尾部加空心圓的小箭頭表示傳遞數(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)圖只表明一個模塊調(diào)用那些模塊,至于模塊內(nèi)還有沒有其他成分則完全沒有表示。作用:描述模塊間參數(shù)交換情況、評價模塊間耦合情況、確定模塊間的接口。結(jié)構(gòu)圖一般不列入設(shè)計(jì)文檔,只用于設(shè)計(jì)階段檢查模塊設(shè)計(jì)的正確性和模塊獨(dú)立性。104
1052.結(jié)構(gòu)圖的繪制
學(xué)生成績管理系統(tǒng)的結(jié)構(gòu)圖3.4.3.12程序流程圖描述程序中控制流的情況,即程序中處理的執(zhí)行順序和執(zhí)行序列所依賴的條件,圖中的有向線段表示的是控制流,從一個處理走到下一個處理1程序流程圖的標(biāo)準(zhǔn)符號2優(yōu)缺點(diǎn)107108109缺點(diǎn):(1)并不是逐步求精的好工具。使程序員容易過早地考慮程序的具體控制流程,而忽略了程序的全局結(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)系,誰調(diào)用誰有一個先后次序關(guān)系。途中的有向線段表示調(diào)用時程序的控制從調(diào)用模塊一道被調(diào)用模塊,并隱含了當(dāng)調(diào)用結(jié)束時控制將交回給調(diào)用模塊1113.4.3.14JACKSON圖(面向數(shù)據(jù)結(jié)構(gòu)的)對輸入、輸出數(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三個元素順序組成2)選擇結(jié)構(gòu)
AB°C°D°根據(jù)條件A選擇B、C、D中的某一個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語言(過程設(shè)計(jì)語言)特點(diǎn):(1)詳細(xì)設(shè)計(jì)階段工具。(2)用PDL寫出的程序,既可以很抽象,又可以很具體。因此,容易實(shí)現(xiàn)自頂向下逐步求精的設(shè)計(jì)原則。(3)PDL描述同自然語言很接近,易于理解。(4)PDL描述可以直接作為注釋插在源程序中,成為程序的內(nèi)部文檔。這對提高程序的可讀性是非常有益的。(5)PDL描述與程序結(jié)構(gòu)相似,因此自動產(chǎn)生程序比較容易。缺點(diǎn):不如圖形描述形象直觀,常將PDL描述與一種圖形描述結(jié)合起來使用。3.5原型化方法(動態(tài)分析法)1與結(jié)構(gòu)法比較2優(yōu)點(diǎn)3其他具體特點(diǎn)幾點(diǎn):(1)原型化的生命周期和結(jié)構(gòu)化的區(qū)別(2)原型生命周期劃分的步驟
(3)使用原型化(4)不同類原型開發(fā)法1191201211)進(jìn)化式原型開發(fā)基本思路是:先給出一個系統(tǒng)的最初實(shí)現(xiàn),讓用戶去使用和評價,不斷進(jìn)行細(xì)化和改善,經(jīng)過多次這樣的反復(fù)過程后形成最終的完善的系統(tǒng)。開發(fā)抽象描述建立原型系統(tǒng)使用原型系統(tǒng)系統(tǒng)充分嗎?交付系統(tǒng)否是軟件工程1222)拋棄式原型開發(fā)基本思路是:原型的根本作用是弄清楚需求和為風(fēng)險評估提供補(bǔ)充信息。通過評估后,原型被拋棄,重新規(guī)劃和實(shí)施系統(tǒng)的開發(fā)??蚣苄枨箝_發(fā)原型確定系統(tǒng)評估原型開發(fā)軟件問題可驗(yàn)證系統(tǒng)問題可交付的軟件系統(tǒng)可復(fù)用構(gòu)件3.6面向?qū)ο蟮姆治龊驮O(shè)計(jì)3.6.1概述1定義:面向?qū)ο蠓椒ㄊ且环N運(yùn)用對象、類、繼承、封裝、聚合、消息傳遞、多態(tài)性等概念來構(gòu)造系統(tǒng)的軟件開發(fā)方法。2面向?qū)ο?對象+類+繼承+消息通信3面向?qū)ο蟮闹饕卣鳎悍忾]性(Encapsulation)
繼承性(Inheritance)
多態(tài)性(Polymorphism1234對象與封裝:對象是描述客觀事物的一個實(shí)體,構(gòu)成系統(tǒng)的一個基本單位。要素:面向?qū)ο蟮能浖到y(tǒng)是由對象組成的。復(fù)雜的對象由比較簡單的對象組合而成。而且把數(shù)據(jù)也封裝在里。5對象的三要素:標(biāo)識(名字),屬性(狀態(tài)或數(shù)據(jù),描述靜態(tài)特征的),服務(wù)(操作,行為,或方法,描述動態(tài)特征)。1246類(class)具有共同屬性和行為的對象的抽象類與對象的關(guān)系類是對象的抽象對象是類的實(shí)例類對象對象、實(shí)體與類對象實(shí)體類抽象數(shù)據(jù)類計(jì)算機(jī)世界現(xiàn)實(shí)世界計(jì)算機(jī)邏輯的實(shí)現(xiàn)影射抽象實(shí)例化抽象概念世界
7封裝封裝是軟件開發(fā)方法的重要原則,兩涵義:把對象的全部屬性和全部服務(wù)結(jié)合在一起,形成一個不可分割的獨(dú)立單位(對象)。盡可能隱蔽對象的內(nèi)部細(xì)節(jié)(信息隱蔽)封裝:要提供接口傳統(tǒng)方法數(shù)據(jù)與過程是分離的過程1輸入輸出過程2過程3數(shù)據(jù)實(shí)體屬于該對象的數(shù)據(jù)對象處理數(shù)據(jù)的方法消息消息對象把數(shù)據(jù)和處理數(shù)據(jù)的方法封狀成一個單元8傳統(tǒng)方法和面向?qū)ο蠓椒ǖ谋容^傳統(tǒng)方法系統(tǒng)是過程的集合過程與數(shù)據(jù)實(shí)體交互過程接受輸入并產(chǎn)生輸出面向?qū)ο蠓椒ㄏ到y(tǒng)是交互對象的集合對象與人或其它對象交互對象發(fā)送與響應(yīng)消息9繼承(繼承性inheritance)繼承性是父類和子類之間共享數(shù)據(jù)和方法的機(jī)制繼承性具有傳遞性繼承性包括單繼承和多重繼承
子類繼承部分增加部分父類共性部分繼承性作用
使軟件系統(tǒng)具有開放性更好地進(jìn)行抽象與分類增強(qiáng)代碼的重用率10多態(tài)(多態(tài)性polymorphism)不同的對象收到同一消息可產(chǎn)生完全不同的結(jié)果,這一現(xiàn)象叫做多態(tài)多態(tài)的效果用戶發(fā)送一個通用的消息,而實(shí)現(xiàn)的細(xì)節(jié)則由接收對象自行決定11消息(message)消息通信
對象之間相互請求或相互協(xié)作的途徑,是要求某個對象執(zhí)行某個功能操作的規(guī)格說明消息內(nèi)容
通常包含接收方及請求接收方完成的功能信息發(fā)送方
發(fā)出消息,請求接收方響應(yīng)接收方
收到消息后,經(jīng)過解釋,激活方法,予以響應(yīng)12主動對象:可以使開發(fā)者從系統(tǒng)建模開始用對象表達(dá)問題域中事物的主動行為和系統(tǒng)中的每個任務(wù)。被動對象,兩個不足:1不符合客觀世界2非多個任務(wù)。
概念,注意兩點(diǎn),Classname如果是主動對象用@在前面@CLASSNAMEattibutesOperations()類:具有相同屬性和服務(wù)的一個或一組對象的抽象定義。134軟件工程1353.6.2典型的面向?qū)ο蠓治觯∣OA)建模方法每種方法都有各自的分析過程和符號體系。Booch方法認(rèn)為開發(fā)是螺旋上升過程:4個步驟/周期強(qiáng)調(diào)邏輯視圖和物理視圖的區(qū)別提供靜態(tài),動態(tài)模型軟件工程136Booch方法包含“微開發(fā)過程”和“宏開發(fā)過程”。微開發(fā)過程定義了一組任務(wù),并在宏開發(fā)過程的每一步驟中反復(fù)使用它們以維持演進(jìn)途徑。Booch的OOA宏開發(fā)過程的任務(wù)包括標(biāo)識類和對象、標(biāo)識類和對象的語義、定義類與對象間的關(guān)系,以及進(jìn)行一系列求精實(shí)現(xiàn)分析模型。軟件工程137Rumbaugh(OMT)方法又稱為對象模型化技術(shù)OMT,從具體到抽象,用于分析、系統(tǒng)設(shè)計(jì)和對象級設(shè)計(jì)。分析活動建立三個模型:1)對象模型描述對象、類、層次和關(guān)系2)動態(tài)模型描述對象和系統(tǒng)的行為3)功能模型類似于高層的DFD,描述穿越系統(tǒng)的信息流軟件工程138Coad和Yourdon方法其OOA過程概述如下:1)使用“要找什么”準(zhǔn)則標(biāo)識對象;2)定義對象之間的一般化∕特殊化結(jié)構(gòu)(又稱為分類結(jié)構(gòu));3)定義對象之間的整體∕部分結(jié)構(gòu)(又稱為組裝結(jié)構(gòu));4)標(biāo)識主題(系統(tǒng)構(gòu)件的表示);5)定義對象的屬性及對象之間的實(shí)例連接;6)定義服務(wù)及對象之間的消息連接。OOA的結(jié)構(gòu)
類的邊界Class&objectlayer(類及對象層)Attributelayer(屬性層)Servicelayer(服務(wù)層)Structurelayer(結(jié)構(gòu)層)Subjectlayer(主題層)實(shí)例的邊界實(shí)例連接消息連接主題服務(wù)屬性(1)主題層(2)對象層(類)對象是屬性及其專用服務(wù)的一個封裝體,是對問題域中的人事和物等客觀實(shí)體進(jìn)行的抽象描述。(3)結(jié)構(gòu)層(關(guān)系層)在OO方法中組裝結(jié)構(gòu)和分類結(jié)構(gòu)是兩種重要的結(jié)構(gòu)類型:整體與部分,一般與特殊(4)屬性層(有的叫特征層)對象的屬性值屬性值,就是一些狀態(tài)的信息數(shù)據(jù)(5)服務(wù)層一個服務(wù)就是收到一條信息后所執(zhí)行的處理操作服務(wù)是對模型化的現(xiàn)實(shí)世界的進(jìn)一步抽象140客觀世界中的實(shí)體——問題域中的對象;計(jì)算機(jī)中的實(shí)體——解空間對象;軟件工程141Jacobson方法又稱為OOSE(面向?qū)ο筌浖こ蹋?。特色是?qiáng)調(diào)用例(UseCase)。Jacobson方法概述如下:標(biāo)識系統(tǒng)的用戶和它們的整體責(zé)任;通過定義參與者及其職責(zé)、用例、對象和關(guān)系的初步視圖,建立需求模型;通過標(biāo)識界面對象、建立界面對象的結(jié)構(gòu)視圖、表示對象行為、分離出每個對象的子系統(tǒng)和模型,建立分析模型。軟件工程142Wirfs―Brock方法不明確地區(qū)分分析和設(shè)計(jì)任務(wù)。從評估客戶規(guī)格說明到設(shè)計(jì)完成,是一個連續(xù)的過程。與Wirfs―Brock分析有關(guān)的任務(wù)如下:1)
評估客戶規(guī)格說明;2)
使用語法分析從規(guī)格說明中提取候選類;3)
將類分組以標(biāo)識超類;4)
定義每一個類的職責(zé);5)
將職責(zé)賦予每個類;6)
標(biāo)識類之間的關(guān)系;7)
基于職責(zé)定義類之間的協(xié)作;8)
建立類的層次表示;9)
構(gòu)造系統(tǒng)的協(xié)作圖。軟件工程143UML的OOA方A三大類模型:對象模型,動態(tài)模型,功能模型對象模型:5個層次,4種關(guān)系類和對象,確定結(jié)構(gòu)與關(guān)聯(lián),劃分主題,定義屬性,定義服務(wù)對象和類之間的關(guān)系:4種:
一般---特殊結(jié)構(gòu)(分類結(jié)構(gòu))
整體---部分結(jié)構(gòu)(組裝結(jié)構(gòu))
實(shí)例關(guān)聯(lián)(一個類的屬性中含有另一個類的實(shí)例)
消息關(guān)聯(lián)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《精密成形技術(shù)》教學(xué)大綱
- 軍糧工作課件
- 玉溪師范學(xué)院《現(xiàn)代教育技術(shù)應(yīng)用》2022-2023學(xué)年第一學(xué)期期末試卷
- 煙雨江南作品《永夜君王》經(jīng)典人生哲理語錄
- 玉溪師范學(xué)院《搶花炮》2023-2024學(xué)年第一學(xué)期期末試卷
- 教學(xué)課件動態(tài)制作
- 2024屆河北省唐縣一中高三下開學(xué)檢測試題數(shù)學(xué)試題試卷
- 2024屆貴州省安順市高三數(shù)學(xué)試題第一次模擬考試試題
- 《朋友眼中的我》心理健康教學(xué)設(shè)計(jì)改
- 采購欠款付款合同范本
- 樂理試題(音程-三和弦)
- 三資系統(tǒng)操作手冊
- 綿陽市物業(yè)服務(wù)收費(fèi)管理實(shí)施細(xì)則
- 危險化學(xué)品事故應(yīng)急處置流程圖
- 微信公眾賬號授權(quán)書
- 鈑金折彎K因子計(jì)算
- 生石灰(氧化鈣)MSDS
- 中高層管理干部能力提升(劉學(xué)元)ppt課件
- 公司兼職銷售人員管理制度.docx
- 夾套管施工方案最終
- 初中音樂-對花-課件-(2)PPT課件
評論
0/150
提交評論