系統(tǒng)建模-結(jié)構(gòu)化分析與設(shè)計(jì)

導(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)化分析模型,如圖:

結(jié)構(gòu)化分析模型.png
自頂向下數(shù)據(jù)流分析

???????分析模型并非一蹴而就塘揣,需要自頂向下包雀,從抽象到具體的模型細(xì)化過程。細(xì)化過程依托數(shù)據(jù)流程圖的抽象性亲铡、概括性才写、層次性。


數(shù)據(jù)流層次結(jié)構(gòu).png

數(shù)據(jù)流層次結(jié)構(gòu)中的頂層數(shù)據(jù)流奖蔓,對(duì)業(yè)務(wù)進(jìn)行系統(tǒng)級(jí)抽象表達(dá)赞草。


數(shù)據(jù)流圖-頂層.jpg

對(duì)頂層數(shù)據(jù)流進(jìn)行分解,形成第一層數(shù)據(jù)流圖吆鹤。示例:


數(shù)據(jù)流圖-1層.jpg

繼續(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)建過程如下圖:


image.png

???????生成的概念數(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ù)草圖示例:


概念模型.jpg

設(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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末松靡,一起剝皮案震驚了整個(gè)濱河市简僧,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌击困,老刑警劉巖涎劈,帶你破解...
    沈念sama閱讀 222,627評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件广凸,死亡現(xiàn)場離奇詭異,居然都是意外死亡蛛枚,警方通過查閱死者的電腦和手機(jī)谅海,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蹦浦,“玉大人扭吁,你說我怎么就攤上這事∶は猓” “怎么了侥袜?”我有些...
    開封第一講書人閱讀 169,346評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長溉贿。 經(jīng)常有香客問我枫吧,道長,這世上最難降的妖魔是什么宇色? 我笑而不...
    開封第一講書人閱讀 60,097評(píng)論 1 300
  • 正文 為了忘掉前任九杂,我火速辦了婚禮,結(jié)果婚禮上宣蠕,老公的妹妹穿的比我還像新娘例隆。我一直安慰自己,他們只是感情好抢蚀,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,100評(píng)論 6 398
  • 文/花漫 我一把揭開白布镀层。 她就那樣靜靜地躺著,像睡著了一般皿曲。 火紅的嫁衣襯著肌膚如雪唱逢。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,696評(píng)論 1 312
  • 那天谷饿,我揣著相機(jī)與錄音惶我,去河邊找鬼。 笑死博投,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的盯蝴。 我是一名探鬼主播毅哗,決...
    沈念sama閱讀 41,165評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼捧挺!你這毒婦竟也來了虑绵?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,108評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤闽烙,失蹤者是張志新(化名)和其女友劉穎翅睛,沒想到半個(gè)月后声搁,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,646評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡捕发,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,709評(píng)論 3 342
  • 正文 我和宋清朗相戀三年疏旨,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片扎酷。...
    茶點(diǎn)故事閱讀 40,861評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡檐涝,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出法挨,到底是詐尸還是另有隱情谁榜,我是刑警寧澤,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布凡纳,位于F島的核電站窃植,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏荐糜。R本人自食惡果不足惜巷怜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,196評(píng)論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望狞尔。 院中可真熱鬧丛版,春花似錦、人聲如沸偏序。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽研儒。三九已至豫缨,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間端朵,已是汗流浹背好芭。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評(píng)論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留冲呢,地道東北人舍败。 一個(gè)月前我還...
    沈念sama閱讀 49,287評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像敬拓,于是被迫代替她去往敵國和親邻薯。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,860評(píng)論 2 361