導(dǎo)讀
???????本篇開頭介紹系統(tǒng)建模的定義、目的和分類残拐,然后以分析、設(shè)計(jì)兩個(gè)階段重點(diǎn)闡述結(jié)構(gòu)化分析的過程和工具碟嘴,最后對(duì)結(jié)構(gòu)化建模進(jìn)行總結(jié)溪食。
建模定義
???????系統(tǒng)建模,即建立系統(tǒng)模型娜扇,對(duì)系統(tǒng)做出抽象错沃、無歧義的表達(dá)。通過一些工具雀瓢、方法對(duì)業(yè)務(wù)(組織)進(jìn)行抽象枢析、分解、分析和設(shè)計(jì)致燥,最終轉(zhuǎn)化為系統(tǒng)的模型化表達(dá)(各種圖形登疗、表格和文字描述)排截。
建模目的
???????本質(zhì)上來說嫌蚤,每個(gè)軟件系統(tǒng)都會(huì)建模,即便是幾行代碼實(shí)現(xiàn)的小工具也會(huì)建模断傲,只是模型可能只停留在程序員的大腦中脱吱。當(dāng)系統(tǒng)達(dá)到一定規(guī)模時(shí),需要分析師认罩、設(shè)計(jì)師箱蝠、程序員進(jìn)行協(xié)作,成體系的模型化分析設(shè)計(jì)方法垦垂,尤為重要宦搬。模型化分析,促進(jìn)系統(tǒng)化思考劫拗。模型化表達(dá)间校,直觀準(zhǔn)確,易于理解页慷。
建模分類
???????一般采用結(jié)構(gòu)化分析設(shè)計(jì)和面向?qū)ο蠓治鲈O(shè)計(jì)兩種建模方式憔足。
結(jié)構(gòu)化分析設(shè)計(jì)
???????結(jié)構(gòu)化分析設(shè)計(jì)包含分析和設(shè)計(jì)兩個(gè)階段,分析階段以數(shù)據(jù)流為中心酒繁,對(duì)業(yè)務(wù)(組織)進(jìn)行系統(tǒng)分析滓彰,形成分析模型。設(shè)計(jì)階段以分析模型作為輸入州袒,進(jìn)行系統(tǒng)設(shè)計(jì)(包括架構(gòu)設(shè)計(jì)揭绑、概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)),形成設(shè)計(jì)模型郎哭。
分析階段
???????分析階段采用的主要工具:數(shù)據(jù)流圖(DFD)他匪、數(shù)據(jù)字典(DD)弓叛、狀態(tài)變遷圖(STD)和實(shí)體關(guān)系圖(ERD)。
- 數(shù)據(jù)流圖:以數(shù)據(jù)傳遞和處理的角度诚纸,表達(dá)系統(tǒng)的功能邏輯撰筷,具有抽象性、概括性和層次性等特點(diǎn)畦徘,屬于功能建模范疇毕籽。
- 數(shù)據(jù)字典:對(duì)數(shù)據(jù)流圖中的所有元素進(jìn)行闡述。
- 狀態(tài)遷移圖:指明有外部事件發(fā)生時(shí)井辆,系統(tǒng)將有什么動(dòng)作关筒,屬于行為建模范疇。
- 實(shí)體關(guān)系圖(ERD):即概念數(shù)據(jù)模型杯缺,用實(shí)體和實(shí)體關(guān)系來描述業(yè)務(wù)(組織)蒸播,屬于數(shù)據(jù)建模范疇。
???????結(jié)合功能建模萍肆、行為建模和數(shù)據(jù)建模袍榆,形成結(jié)構(gòu)化分析模型,如圖:
自頂向下數(shù)據(jù)流分析
???????分析模型并非一蹴而就塘揣,需要自頂向下包雀,從抽象到具體的模型細(xì)化過程。細(xì)化過程依托數(shù)據(jù)流程圖的抽象性亲铡、概括性才写、層次性。
數(shù)據(jù)流層次結(jié)構(gòu)中的頂層數(shù)據(jù)流奖蔓,對(duì)業(yè)務(wù)進(jìn)行系統(tǒng)級(jí)抽象表達(dá)赞草。
對(duì)頂層數(shù)據(jù)流進(jìn)行分解,形成第一層數(shù)據(jù)流圖吆鹤。示例:
繼續(xù)對(duì)第一層數(shù)據(jù)流進(jìn)行細(xì)化厨疙,可形成第二層、三層等數(shù)據(jù)流圖檀头,同時(shí)制作數(shù)據(jù)字典轰异,對(duì)數(shù)據(jù)流圖的細(xì)節(jié)進(jìn)行詳細(xì)闡述。數(shù)據(jù)字典示例:
名稱 | 使用方式 | 內(nèi)容描述 |
---|---|---|
購物人 | 數(shù)據(jù):注冊(cè)信息暑始、商品 | |
注冊(cè)信息 | 加工:注冊(cè) | 姓名+賬號(hào)+密碼+郵件+電話 |
注冊(cè) | 數(shù)據(jù)流:注冊(cè)信息 | |
商品 | 編碼+名稱+規(guī)格+計(jì)量單位 | |
訂單信息 | 加工:購買 | 購物人+收貨地址+{商品+數(shù)量}n |
其中+搭独、{}n等寫法可以查閱數(shù)據(jù)字典表示法。
自底向上的概念數(shù)據(jù)模型
???????從數(shù)據(jù)流圖和數(shù)據(jù)字典中獲取實(shí)體和關(guān)系關(guān)鍵信息廊镜,形成局部實(shí)體關(guān)系圖牙肝,再經(jīng)過層層匯聚,自底而上構(gòu)建全局概念數(shù)據(jù)模型。構(gòu)建過程如下圖:
???????生成的概念數(shù)據(jù)模型配椭,包含實(shí)體虫溜、屬性和關(guān)系三種元素。數(shù)據(jù)模型可按照不同的用途決定細(xì)化程度股缸,作為概要設(shè)計(jì)的輸入時(shí)衡楞,盡可能細(xì)化所有元素,確保設(shè)計(jì)的準(zhǔn)確性敦姻。作為系統(tǒng)數(shù)據(jù)草圖時(shí)瘾境,以核心實(shí)體+核心屬性(也可不體現(xiàn))+核心關(guān)系即可。以下是系統(tǒng)數(shù)據(jù)草圖示例:
設(shè)計(jì)階段
???????設(shè)計(jì)階段以分析階段的成果(數(shù)據(jù)流圖镰惦、數(shù)據(jù)字典迷守、狀態(tài)遷移圖、ER圖)作為輸入旺入,進(jìn)行系統(tǒng)設(shè)計(jì)兑凿。包括架構(gòu)設(shè)計(jì)、概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)茵瘾。
???????架構(gòu)設(shè)計(jì)充分考慮設(shè)計(jì)約束礼华、制定設(shè)計(jì)原則,使用應(yīng)用架構(gòu)龄捡、數(shù)據(jù)架構(gòu)卓嫂、技術(shù)架構(gòu)(含系統(tǒng)集成、分層架構(gòu)聘殖、事務(wù)支持、錯(cuò)誤處理機(jī)制行瑞、日志等)奸腺、部署架構(gòu),對(duì)系統(tǒng)進(jìn)行分解血久、集成突照、復(fù)用,形成功能氧吐、數(shù)據(jù)讹蘑、開發(fā)、部署等多維度系統(tǒng)草圖筑舅,指導(dǎo)概要設(shè)計(jì)座慰、詳細(xì)設(shè)計(jì)和開發(fā)。
???????概要設(shè)計(jì)在架構(gòu)設(shè)計(jì)的基礎(chǔ)上翠拣,深入到子模塊層級(jí)進(jìn)一步分解版仔。主要包括系統(tǒng)結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)設(shè)計(jì)、接口設(shè)計(jì)蛮粮、出錯(cuò)設(shè)計(jì)等益缎。
系統(tǒng)結(jié)構(gòu)設(shè)計(jì):基于應(yīng)用架構(gòu),包括系統(tǒng)結(jié)構(gòu)圖然想、模塊設(shè)計(jì)莺奔。
數(shù)據(jù)設(shè)計(jì):基于數(shù)據(jù)架構(gòu),包括數(shù)據(jù)邏輯模型和其他數(shù)據(jù)設(shè)計(jì)(如文件)变泄。
接口設(shè)計(jì):基于系統(tǒng)集成弊仪,包括界面接入、內(nèi)部接口設(shè)計(jì)杖刷、外部接口設(shè)計(jì)等励饵。
出錯(cuò)設(shè)計(jì):基于錯(cuò)誤處理機(jī)制,細(xì)化描述錯(cuò)誤處理的細(xì)節(jié)滑燃。
以下是概要設(shè)計(jì)的工具示例:-
系統(tǒng)結(jié)構(gòu)圖:
系統(tǒng)結(jié)構(gòu)圖 -
邏輯數(shù)據(jù)模型:
邏輯數(shù)據(jù)模型.jpg
???????詳細(xì)設(shè)計(jì)役听,在系統(tǒng)架構(gòu)的規(guī)范下,對(duì)概要設(shè)計(jì)進(jìn)行實(shí)現(xiàn)設(shè)計(jì)表窘,使用物理數(shù)據(jù)模型典予、程序流程圖、偽代碼等工具乐严。以下為詳細(xì)設(shè)計(jì)工具示例: 物理數(shù)據(jù)模型:較常用瘤袖,圖略。
-
程序流程圖:
程序流程圖.jpg 偽代碼:
Begin transaction
Queue message callserviceA
Queue message callserviceB
End transaction
For each message in queue
peek message
consume message :callservice
remove message
End For
總結(jié)
???????面對(duì)一個(gè)新的領(lǐng)域昂验,系統(tǒng)化的分析和設(shè)計(jì)捂敌,能幫助我們梳理業(yè)務(wù),獲取領(lǐng)域知識(shí)既琴,形成系統(tǒng)的分析模型和設(shè)計(jì)模型占婉。在部分項(xiàng)目中,可能我們沒經(jīng)過分析和設(shè)計(jì)甫恩,就能快速發(fā)掘訂單逆济、出庫單、物流單等實(shí)體磺箕,甚至包含實(shí)體關(guān)系和模塊分解結(jié)構(gòu)奖慌,只是因?yàn)槲覀冮L期累積了某方面的領(lǐng)域知識(shí)。
參考文章:
http://www.iigrowing.cn/shu_ju_liu_tu_dfd_jian_jie.html
https://www.cnblogs.com/huhaibo/p/3409664.html
https://blog.csdn.net/hu19930613/article/details/82708292