亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務,提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

面向?qū)ο笤O計

自從面向?qū)ο缶幊陶Z言在軟件開發(fā)中成為主流之后,遵循面向?qū)ο蠹夹g(shù)特點的軟件設計工作,也一并發(fā)展了起來。

首先要提出一個問題,就是設計的工作是要做什么?

面向?qū)ο笤O計與統(tǒng)一建模語言UML

 

它包括的范圍其實是很廣泛的,從搜集用戶需求,進行業(yè)務分析,到繪制系統(tǒng)流程圖等??梢哉f,在動手編寫代碼之前,程序員要做的都屬于設計工作。

就像建造房屋一樣,先確定要造的房屋類型,然后是選址,設計樣式。最后工程師帶領(lǐng)施工隊按照設計圖紙將房子造出來。

而面向?qū)ο蠹夹g(shù),因為其封裝、繼承、多態(tài)等特點,在對現(xiàn)實世界建模時,可以方便地以自然思維將事物抽象為計算機可處理的數(shù)據(jù)。關(guān)于面向?qū)ο蠹夹g(shù)的詳細說明,可參看往期文章學好面向?qū)ο缶幊陶Z言的關(guān)鍵,在于掌握它們的共通結(jié)構(gòu)與特性 。

要做的事情清楚了,思維工具也有了,接下來就是如何將工作成果表述出來。一個相當有力的工具就是統(tǒng)一建模語言(Unified Modeling Language,簡稱UML),下一節(jié)會對其進行入門級的介紹。

最后會以一個示例講述在面向?qū)ο笤O計中,如何應用UML來完成建模工作。

UML概述

UML雖然也是一門“語言”,但它其實是一套圖形化的符號系統(tǒng)。UML最主要的作用,就是在現(xiàn)實世界與程序代碼之間建起一座橋梁。

這就是UML的“統(tǒng)一”所要求的,所以它的各種圖形都有著嚴格的定義。包括形狀、連接線的方向、方法與屬性的標明等。

遵循統(tǒng)一標準的好處,就是方便了溝通。當設計的各個階段的成果繪制成UML圖保存下來時,那么無論是團隊內(nèi)部協(xié)作,還是對外交流,大家都省去了學習符號表示法的時間,可以直接掌握設計意圖。

面向?qū)ο笤O計與統(tǒng)一建模語言UML

 

UML 2 定義了13種圖形,我們可以了解一下,對于重要的圖形,會給出圖示。所有圖形采用bouml工具繪制。

用例圖:表示系統(tǒng)提供的功能和使用者之間的關(guān)系。

面向?qū)ο笤O計與統(tǒng)一建模語言UML

用例圖

類圖:表示類的規(guī)格和類之間的關(guān)系。

面向?qū)ο笤O計與統(tǒng)一建模語言UML

類圖

對象圖:表示實例之間的關(guān)系。

面向?qū)ο笤O計與統(tǒng)一建模語言UML

對象圖

時序圖:將實例之間的相互作用表示為時間序列。

面向?qū)ο笤O計與統(tǒng)一建模語言UML

時序圖

活動圖:表示一系列處理中的控制流程。

面向?qū)ο笤O計與統(tǒng)一建模語言UML

活動圖

通信圖:將實例之間的相互作用表示為組織結(jié)構(gòu)。

面向?qū)ο笤O計與統(tǒng)一建模語言UML

通信圖

狀態(tài)機圖:表示實例的狀態(tài)變化。

面向?qū)ο笤O計與統(tǒng)一建模語言UML

狀態(tài)機圖

組件圖:表示文件和數(shù)據(jù)庫、進程和線程等軟件的實現(xiàn)結(jié)構(gòu)。

面向?qū)ο笤O計與統(tǒng)一建模語言UML

組件圖

部署圖:表示硬件、網(wǎng)絡等系統(tǒng)的物理結(jié)構(gòu)。

面向?qū)ο笤O計與統(tǒng)一建模語言UML

部署圖

復合結(jié)構(gòu)圖:表示具有整體-部分結(jié)構(gòu)的類的運行時結(jié)構(gòu)。

包圖:表示包之間的關(guān)系。

交互概覽圖:將根據(jù)不同條件執(zhí)行不同動作的時序圖放到活動圖中進行表示。

定時圖:采用帶數(shù)字刻度的時間軸來表示實例之間的狀態(tài)遷移和相互作用。

建模

什么是統(tǒng)一說了,用到的圖形語言也說了,最后就得說一說怎么建模了。我們進行面向?qū)ο蟮脑O計工作,終歸是要讓計算機來幫助我們處理那些繁瑣、重復性的工作。

那么,接下來我們就以一個租車業(yè)務為示例,使用UML工具進行設計過程吧。我們模仿實現(xiàn)一個線上租車應用,為了簡化討論,只提及最關(guān)鍵的幾個功能點。

業(yè)務分析階段

用戶想要租一輛車開,第一步是要先挑選合適的車。例如是城市代步,還是郊游遠行等。選好車之后,就是預約下單。用戶辦理好手續(xù),將車開走使用,最后完成歸還手續(xù)。

那么,對以上場景分析之后,可以通過活動圖把整體流程畫出來。

面向?qū)ο笤O計與統(tǒng)一建模語言UML

租車業(yè)務整體流程

需求定義階段

從上述業(yè)務分析可知,這個線上租車系統(tǒng)可以承擔的自動化工作,包括展示車輛信息,處理預訂訂單,車輛出庫,跟蹤車輛行駛情況,以及車輛歸還入庫這些功能。

使用用例圖展示客戶與服務提供商可以使用的功能。

面向?qū)ο笤O計與統(tǒng)一建模語言UML

租車業(yè)務功能用例

系統(tǒng)設計階段

系統(tǒng)功能點梳理出來之后,就是對系統(tǒng)中的各個關(guān)鍵對象進行定義。車輛對象(Car)是基本單元,所有的租賃業(yè)務都要圍繞它展開。接下來是汽車展示對象(ShowCar),它可以從車輛對象取得可供展示的信息,例如車型、廠商、顏色等。

當用戶選定車輛之后,就可以執(zhí)行預訂功能。租賃管理對象(RentServer)將會接受訂單、收取押金和預付款。用戶取車時RentServer則進行出庫處理,并通知車輛跟蹤對象(TraceCar)持續(xù)監(jiān)控車輛運行情況。

用戶使用完,歸還車輛時,RentServer則從TraceCar查詢車況,確認無誤后則執(zhí)行入庫處理,退還用戶押金。

據(jù)以上描述,我們可以先畫出類圖。

面向?qū)ο笤O計與統(tǒng)一建模語言UML

租車業(yè)務類圖

從上圖可以看到,Car作為系統(tǒng)的基本單元,被其他類聚合使用。關(guān)于聚合,這是一種整體與個體之間的關(guān)系,即has-a關(guān)系。而組合則要更高一級,是包含關(guān)系。例如汽車與發(fā)動機就是組合關(guān)系,因為離開了發(fā)動機,汽車就不可用了。

關(guān)聯(lián)關(guān)系則比聚合還要弱一級,但需要注意的是,在程序代碼中,關(guān)聯(lián)與聚合的語法是一樣的,它們的差異是存在于語義上的。這也是UML設計能比代碼包含更多信息的優(yōu)勢。

類圖表示的是類之間的靜態(tài)關(guān)系,要看到對象實例之間的消息調(diào)用,則還要使用時序圖。下面分步驟繪制,先看預訂流程的時序圖。

面向?qū)ο笤O計與統(tǒng)一建模語言UML

租車預訂時序圖

接下來是用戶歸還車輛的時序圖。

面向?qū)ο笤O計與統(tǒng)一建模語言UML

歸還車輛時序圖

對象間的交互已經(jīng)有了,接下來就是具體方法的實現(xiàn)過程。說明方法的執(zhí)行過程,使用活動圖比較適合。下面選取CheckOut方法,對其繪制活動圖進行說明。

面向?qū)ο笤O計與統(tǒng)一建模語言UML

CheckOut流程活動圖

至于其他功能,有興趣的同學們可以自行繪制。實際項目所產(chǎn)出的UML設計,則會復雜得多,但只要掌握好面向?qū)ο笤O計的理念,以及UML工具的圖形細節(jié),那么無論是閱讀既有設計,還是自己通過繪圖表達設計想法,都能夠做到得心應手。

分享到:
標簽:UML
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數(shù)有氧達人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定