直掛云帆濟(jì)滄海,展翅遨翔登九天!

          我要飛得更高...

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            19 隨筆 :: 0 文章 :: 5 評論 :: 0 Trackbacks
                  Unified Modeling Language 的出現(xiàn)給當(dāng)今面向?qū)ο蟮氖澜缭鎏砹藵饽实囊还P??梢暬慕9ぞ咦岄_發(fā)人員豐富地表達(dá)了他們的想象力,并且以uml的方式向其他人展示。
                  首先我們得理解什么是面向?qū)ο?Object Oriented)。對象是各種各樣的實(shí)體,即是具體的事物也是抽象的事物。面向?qū)ο蟛还馐菍ο蟮膶傩院托袨榻#€包括其它方面。其中就有抽象、繼承、多態(tài)和封裝。抽象的概念很抽象,其意思是說抽象出你所需求的屬性和操作,即是所需的東西。它是一種從一般的觀點(diǎn)看事物的方法,焦點(diǎn)應(yīng)該集中在事物的本質(zhì)性質(zhì)上,而不要過分地去追求細(xì)節(jié),應(yīng)該是抽象出一般化的東西。世界是復(fù)雜的,但不能因?yàn)樗鼜?fù)雜就不去理解它,我們可以把它抽象化,其實(shí)抽象后世界也不大。
                   繼承:顧名思意就是子類擁有父類的所有的內(nèi)部狀態(tài)和運(yùn)動規(guī)律。公共的東西可以被子類分享,正所謂,子又有孫,孫又有子,子子孫孫無窮潰也。當(dāng)然不能像這樣來設(shè)計(jì)。
                   多態(tài):多個形態(tài),同樣的一種動作,在不同的對象進(jìn)行演繹的時候可能演繹的細(xì)節(jié)就會不一樣。正所謂大家都喜歡吃,但是男人吃飯跟女人吃飯就不一樣。男的可能吃的快吃的多,女的吃的少吃的慢,但大家都是吃這個動作,換了個對象來吃,就效果不一樣。
                   封裝:舉個例子,人們在看電視時,人們看到的是電視的屏幕,電視的按鈕,至于屏幕為什么上面會有美女,按下按鈕為什么會換臺,人們好象不必去關(guān)心其是怎么工作的吧,當(dāng)然也有閑人喜歡鉆牛角尖。所以電視機(jī)就封裝了如何讓屏幕顯示美女的工作。那么電視機(jī)的按鈕和屏幕實(shí)際上就是電視機(jī)給我們這些喜歡看電視的人的接口。我們關(guān)心的也只是這些接口。至于這些接口怎么實(shí)現(xiàn)的,請交給廠家吧,世界也就是由若干個各司其職的人組成的。
                    重載:說白了就是做同一件事的幾種不同的方案。比方說:在公司加班,正常情況下,默認(rèn)是吃盒飯,有一天老板歸來,來一句走出去吃飯我請。如果用方法來表示的話就是public void eat(盒飯類 a) public void eat(飯店類a ,老板類b )。
                    消息傳遞:在這個世界里,光有對象是不夠的,那樣人都是行尸走肉。對象之間是要相互協(xié)作的。那么相互協(xié)作之間是通過相互發(fā)送消息的方式。比方說看電視,我們使用遙控器打開電視。那么遙控器對象就向電視機(jī)對象發(fā)送了一個開機(jī)的消息。電視機(jī)對象接收了此消息后就打開了。
                    正如世界是一個由若干個對象以及對象之間的若干個錯綜復(fù)雜的關(guān)系組成的。那么對象與對象之間又會有什么樣的關(guān)系呢?打開電視時,我們說是你和電視機(jī)之間發(fā)了關(guān)聯(lián)關(guān)系。再比方說你暗戀一個女生,你跟她之間形成了一個單向的關(guān)聯(lián)關(guān)系。因?yàn)樗恢滥惆祽偎?,?dāng)然你暗戀她,她也暗戀你的情況也有可能出現(xiàn),此處我們不予探討。如果她也暗戀你,那就是一個雙向的關(guān)聯(lián)關(guān)系。對象之間的依賴關(guān)系說明是目標(biāo)對象與源對象之間的依賴關(guān)系。依賴就是當(dāng)目標(biāo)對象有所變化的時候源對象也相應(yīng)的發(fā)生改變。
                  收集系統(tǒng)需求時,把用戶的業(yè)務(wù)需求轉(zhuǎn)換成開發(fā)人員能夠理解的需求,并最終把需求轉(zhuǎn)化為代碼。通過將需求映射為代碼,可以保證代碼滿足這些需求,同時代碼也可以回溯成需求。這樣的過程就稱為建模。建模過程的結(jié)果可以跟蹤業(yè)務(wù)需求,到要求、到模型,到代碼的全過程及其相反的過程,而不會在這個過程中迷路。
                  可視化建模將模型中的信息用標(biāo)準(zhǔn)的圖形元素直觀的表示。這個標(biāo)準(zhǔn)的圖形元素就是本文中提到的UML。它的出現(xiàn)為用戶、開發(fā)人員、分析人員、測試人員、管理人員、需求調(diào)研人員等相關(guān)人員提供了溝通的橋梁。其中很直觀的例子:對于用戶來說,他更關(guān)心自己需要在這個系統(tǒng)中操作什么,以及這些操作是否滿足了自己的業(yè)務(wù)需要,那么利用模型他可以直觀的看到自己與這個系統(tǒng)的交互,根據(jù)這樣的交互保證需求的獲取。對于分析人員來說,他需要分析模型的對象之間的交互,以及這樣的交互是否滿足系統(tǒng)的需要,是否可以保證這樣的交互對于業(yè)務(wù)的解析,解決自己分析時存在的疑惑,同時也可以根據(jù)模型交互的結(jié)果向需求調(diào)研人員提出問題。對于開發(fā)人員來說,他要考慮開發(fā)的對象以及這些開發(fā)對象需要完成的工作。對于測試人員來說,他們根據(jù)模型看到對象間的交互并且根據(jù)這些交互以及交互的產(chǎn)出準(zhǔn)備測試用例。在RUP中就可以同步地進(jìn)行測試了,而不是像瀑布模型那樣最后才準(zhǔn)備測試。對于項(xiàng)目管理人員來說,他需要看到系統(tǒng)中各個部分或者子系統(tǒng)之間的交互,在項(xiàng)目的實(shí)施過程根據(jù)計(jì)劃看到各個系統(tǒng)模型完成的情況及相應(yīng)的進(jìn)度。對于公司的主管人員來說可能只需要看到更高層的模型,看到各個子系統(tǒng)運(yùn)行情況結(jié)果??梢暬慕4_實(shí)帶來了系統(tǒng)的可控。通過先建模再編寫代碼,從一開始就保證了系統(tǒng)的結(jié)構(gòu)合理。利用模型可以更方便地捕獲設(shè)計(jì)缺陷,從而以較低的成本修正這些缺陷。
                  Rational Rose是分析和設(shè)計(jì)面向?qū)ο筌浖到y(tǒng)的強(qiáng)大的可視化工具,可以用來先建模系統(tǒng)再編寫代碼,支持業(yè)務(wù)模型,幫助了解系統(tǒng)的業(yè)務(wù),有助于系統(tǒng)分析,可以先設(shè)計(jì)使用案例和Use Case框圖,顯示系統(tǒng)的功能。也可以用Interaction框圖顯示對象之間如何配合,提供所需的功能。Calss框圖可以顯示系統(tǒng)中對象及其相互關(guān)系。Component框圖可以演示類如何映射到實(shí)現(xiàn)組件。最后Deployment框圖可以顯示系統(tǒng)的網(wǎng)絡(luò)結(jié)構(gòu)。Rose模型的四個社圖是:Use Case視圖、Logical視圖、Component視圖和Deployment視圖。每個視圖針對不同對象,具有不同的用途。
                  Use Case視圖包括系統(tǒng)中的所有角色、使用案例和Use Case框圖,還包括一些Sequence或Collaboration框圖。該視圖是系統(tǒng)中與實(shí)現(xiàn)無關(guān)的視圖。該視圖關(guān)注系統(tǒng)功能的高層形狀,而不關(guān)注系統(tǒng)具體的實(shí)現(xiàn)方法。項(xiàng)目開始時,開發(fā)小組可以選擇使用Use Case視圖中生成業(yè)務(wù)模型,完成了業(yè)務(wù)模型后便是使用案例模型。客戶、分析人員和項(xiàng)目經(jīng)理利用使用案例、Use Case框圖和使用案例文檔來確定系統(tǒng)的高層視圖。隨著項(xiàng)目的進(jìn)行,開發(fā)小組的成員也可以通過Use Case視圖了解正在建立的系統(tǒng)的使用案例文檔,通過使用案例描述事件流程。利用Use Case視圖,測試人員開始編寫測試腳本,技術(shù)人員開始編寫文檔。一旦用戶同意了角色和使用案例,就確定了系統(tǒng)的范圍。然后可以在Logical視圖中繼續(xù)開發(fā),關(guān)注系統(tǒng)如何實(shí)現(xiàn)使用案例中提出的功能。
                  Logical視圖,關(guān)注系統(tǒng)如何實(shí)現(xiàn)使用案例中提出的功能。提供系統(tǒng)的詳細(xì)圖形,描述組件間如何關(guān)聯(lián),還包括特定的類、Class框圖和StateChart框圖,利用這些元素,開發(fā)人員可以構(gòu)造出系統(tǒng)的詳細(xì)設(shè)計(jì)。該視圖關(guān)注的是系統(tǒng)的邏輯結(jié)構(gòu),在這個視圖中,要標(biāo)識系統(tǒng)組件,檢查系統(tǒng)的信息和功能,檢查組件之間的關(guān)系。
                  Component視圖,包括模型代碼庫,可執(zhí)行文件,運(yùn)行庫和其他組件的信息。系統(tǒng)的Component視圖可以顯示代碼模塊間的關(guān)系。詳細(xì)包括:組件,代碼的實(shí)際模塊;Component框圖,顯示組件及其相互關(guān)系;包,相關(guān)組件的組。該視圖的主要用戶是控制代碼和編譯部署應(yīng)用程序的人。有些組件是代碼庫,有些是運(yùn)行組件。
                  Deployment視.圖,關(guān)注于系統(tǒng)的實(shí)際部署。還包括容錯,網(wǎng)絡(luò)帶寬,故障恢復(fù)和響應(yīng)時間等。詳細(xì)包括:進(jìn)程,是在自己的內(nèi)存空間執(zhí)行的線程;處理器,任何有處理功能的機(jī)器;設(shè)備,包括任何沒有處理功能的機(jī)器,如打印機(jī)。
                  下面討論UML以及UML的可視化工具給我們帶來了什么樣的好處。rose建立的業(yè)務(wù)模型關(guān)注系統(tǒng)針對的業(yè)務(wù)。業(yè)務(wù)模型包括:業(yè)務(wù)角色、業(yè)務(wù)用例、業(yè)務(wù)工人。業(yè)務(wù)模型研究的是業(yè)務(wù)的機(jī)構(gòu)以及機(jī)構(gòu)的角色。在建立業(yè)務(wù)模型的過程中,檢查機(jī)構(gòu)的結(jié)構(gòu)和機(jī)構(gòu)中的角色以及它們之間的相互關(guān)系,還需要介紹機(jī)構(gòu)的工作流,公司中的主要過程,以及這些過程如何的工作,效率如何,是否有任何的瓶頸。簡要的說就是要弄清楚業(yè)務(wù)的內(nèi)部和外部,以及內(nèi)外部如何進(jìn)行通信。那么這些信息都將被記錄在業(yè)務(wù)模型中。業(yè)務(wù)模型中框圖有助于外部世界和機(jī)構(gòu)的關(guān)系,以及機(jī)構(gòu)如何完成這些目標(biāo)。業(yè)務(wù)模型的主要工具之一是工作流框圖。這些框圖描述機(jī)構(gòu)中的特定過程流程;顯示這個過程中參與的人員,這個過程的步驟和參與這個過程的業(yè)務(wù)實(shí)體。業(yè)務(wù)過程建模人員首先用工作流框圖建模當(dāng)前過程,然后可以分析這些框圖,尋找工作流中的缺陷和其他問題。完成業(yè)務(wù)模型的好處在于開始規(guī)劃系統(tǒng)工作之前就完全了解了業(yè)務(wù)過程,這樣就可以事先確定最需要自動化的工作流領(lǐng)域和系統(tǒng)中最有助于機(jī)構(gòu)開發(fā)的部分從而建立對公司或者機(jī)構(gòu)最有利的系統(tǒng)。
                  實(shí)體類:實(shí)體類是要永久保存的信息。實(shí)體類通常在事件流和Interaction框圖中,是對用戶最有意義的類,通常用業(yè)務(wù)域術(shù)語來命名。邊界類:邊界類位于系統(tǒng)與外界的交界處,包括所以窗體、報表、打印機(jī)和掃描儀等硬件的接口以及與其他系統(tǒng)的接口。要尋找和定義邊界類,可以檢查Use Case框圖。每個角色/用例 交互至少要有一個邊界類。控制類:控制類負(fù)責(zé)協(xié)調(diào)其它類的工作。每個用例通常都有一個控制類,控制用例中的事件的順序。在Interaction框圖中,控制類具有協(xié)調(diào)責(zé)任。
                 
           



















                  
                 
          posted on 2008-07-29 22:51 周大俠 閱讀(178) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 长顺县| 无棣县| 会理县| 朝阳县| 白朗县| 齐齐哈尔市| 辽宁省| 沙田区| 和顺县| 萝北县| 南陵县| 靖安县| 灵宝市| 万州区| 喀喇沁旗| 绥宁县| 新安县| 韶山市| 东乡县| 汝南县| 太仓市| 历史| 长沙县| 西丰县| 尼玛县| 惠来县| 西城区| 平度市| 赤水市| 二连浩特市| 鲁甸县| 彩票| 柘城县| 平武县| 康平县| 金坛市| 海林市| 东至县| 淮安市| 乌拉特前旗| 武义县|