国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

關(guān)于Rose的對話

2019-11-18 15:05:46
字體:
供稿:網(wǎng)友

  ***** ROSE介紹 (一. 面向?qū)ο蠼#?*****

面向?qū)ο蠼5母拍钍抢斫釸OSE這個(gè)面向?qū)ο蟮腃ASE工具(嗨嗨,等等,什么是CASE?-- CASE就是Computer Aide
-d Software Engineering,即用計(jì)算機(jī)幫助人們來創(chuàng)建軟件,使軟件生成過程盡量自動(dòng)化)的基礎(chǔ)。我們做軟件,不過是用軟件來刻畫客觀事物及其聯(lián)系。人腦中形成了對客觀世界的正確熟悉之后,假如能正確的映射到軟件成分上,那么軟件就一定是對客觀事物的正確描述和映射,因而是正確的。假如這個(gè)過程中出現(xiàn)了問題,無論是在人腦熟悉階段(這不就是需求分析嗎?)還是在人的熟悉到軟件成分的映射階段(這不就是軟件設(shè)計(jì)嗎?),都會使軟件失敗。 面向?qū)ο蟮乃枷霝檫@種建模提供了強(qiáng)有力和直觀的支持(唔?--客觀世界有子程序嗎?但是客觀世界有“學(xué)生”這個(gè)對象,也有“課程”這個(gè)對象。瞧,面向?qū)ο髮陀^世界的描述是不是比結(jié)構(gòu)化方法更直觀,更好理解呀?--那當(dāng)然啦!)。長期以來人們一直在試圖創(chuàng)造一種面向?qū)ο蟮目梢暬恼Z言和方法,使建模人員能更加直觀和嚴(yán)格的描述客觀世界,并產(chǎn)生了一些流派,如Yourdan和Coad的OOA、OOD,Booch的方法、Rumbaugh的OMT、Jacobson的OOSE方法等。歷史發(fā)展到今天,Booch、Rumbaugh和Jacobson一起合作,吸收了各種流派的優(yōu)點(diǎn)和其他一相關(guān)領(lǐng)域的成果,終于創(chuàng)造出一種較成熟全面的面向?qū)ο蠼UZ言--UML(話說天下大勢,合久必分,分久必合)。并把UML融入Rational公司的CASE工具ROSE之中。ROSE試圖用UML語言支持軟件開發(fā)的大部分過程(測試除外)的建模。在ROSE中,只要你用UML描述了軟件的各個(gè)成分(也就是為軟件建立了一個(gè)面向?qū)ο蟮哪P停琑OSE就為你生成所需的大部分源代碼(呀!這不是可以省很多時(shí)間嗎?可以多玩會兒Quake啦!

--更重要的是,從此以后你就可以充分利用OO的諸多優(yōu)點(diǎn)啦--象模型穩(wěn)定性、重用等等,這將大大降低軟件維護(hù)和升級的成本,別忘了,維護(hù)和升級成本往往會占總成本的百分之七、八十呢!)。

下一篇文章我將向大家介紹UML的建模思想。

*****ROSE介紹 (二. UML的建模思想)*****

看到大家對ROSE和UML這么感愛好,豆子真是好激動(dòng)啊!接下來我想為大家介紹一下UML的建模思想.正好我的兩個(gè)朋友--老幺(1)和小靈(0)也正在學(xué)ROSE和UML,我們一起來學(xué)好了.Let´s go!

小靈:老幺哥,現(xiàn)在你在搗鼓什么呢?
老幺:小靈弟,我剛剛從清華BBS的蟲蟲那搞到了ROSE 4.0和UML 1.1,正在閉門修煉呢!
小靈:嗨,這真是芝麻掉到針眼里--巧極了!我也從那搞到了一套。(小靈和老幺親熱的握手。)
小靈:UML里面的概念太多了,真讓人頭大!還有那么多花花綠綠的圖 圖,我現(xiàn)在是狗咬刺猬--無從下口了。老幺哥,能不能幫我一下?
老幺(大搔其頭):確實(shí),我也有同感。可是,我從哪開始講呢?
小靈:呃…… 最好是從需求分析開始順序侃下去。
老幺:好吧。小靈弟,假如你拿到了一個(gè)項(xiàng)目,想用OO建模的方法來建造,第一步要做什么呢?
小靈:我以前看過Youdan和Coad的OOA、OOD的書,我想應(yīng)該先分析問題域的 對象吧?我從問題域的特點(diǎn)和自己的經(jīng)驗(yàn)出發(fā),分析問題域都有哪些對象,它們的關(guān)系如何,and so on。但是這總是給人一種“玄而又玄”的感覺,全憑經(jīng)驗(yàn)和感覺了。而且把這些圖圖拿給用戶看,他們是丈二的和尚--摸不著頭腦了。
老幺:著啊!這就是USE CASE的用武之地了。
小靈(興奮的):對了對了,快給我講講這個(gè)USE CASE是個(gè)什么東東.我連怎么翻譯都不知道。
老幺:我也不知道怎么翻譯,所以干脆就不翻了。本來就是人洋人的東西,還是入鄉(xiāng)隨俗吧,唉。USE CASE最早是由Rational三劍客之一的Jacobson在他的OOSE方法中提出的,由于其非常有用,現(xiàn)在遺傳給了 UML。OO思想曾經(jīng)遭到過一些人的批評,理由是用戶關(guān)心的和理解的只是系統(tǒng)的功能,他不可能去學(xué)習(xí)你的OO模型,所以雖然OO建模減小了分析設(shè)計(jì)和編碼的鴻溝,但是卻和用戶的距離拉遠(yuǎn)了。
小靈:批評的很中肯呀!
老幺:是啊。我覺得傳統(tǒng)的OO建模在用戶交流方面還不如功能分析做的好呢 !不過,有了USE CASE,情況就大大改觀了。一個(gè)USE CASE是系統(tǒng)體現(xiàn)給外界的一個(gè)連貫的功能單元,系統(tǒng)外部的人員或者其他系統(tǒng)(就是Actor啦!)通過和USE CASE交換一系列消息來使用系統(tǒng)的功能。
小靈:唔…… 這和功能分析沒什么兩樣啊?
老幺:別急。注重USE CASE是由系統(tǒng)中的對象相互發(fā)消息、相互作用來完成的,而不是和功能分析一樣是由子功能之間的調(diào)用實(shí)現(xiàn)的,這樣,就 彌補(bǔ)了OO建模和用戶之間的裂痕。
小靈:純粹是讓用戶逼出來的。
老幺:用戶就是上帝么!不過USE CASE的作用也不光是和用戶交流、做需求分析,它還可以指導(dǎo)測試用例的選擇、用戶界面的設(shè)計(jì)甚至用戶手冊的編寫等等工作。
小靈:呀!用處這么大呀!
老幺:除了USE CASE分析,第一步要做的工作也包括你剛才提到的問題域?qū)ο蠓治觯鋵?shí)是類分析。USE CASE分析和類分析可以相互支持、補(bǔ)充。
老幺:USE CASE和初步的類分析做完之后,我們就可以用得到的Actors和類的對想來描述USE CASE的實(shí)例了。這樣就產(chǎn)生了交互圖Interaction Diagram。
小靈:老幺哥,這次你怎么會翻譯了?
老幺:盡力而為(主要是中文輸入和英文輸入換來換去太麻煩,嘻嘻)。交互圖分兩種--順序圖Sequence Diagram和協(xié)作圖Colaboration
Diagram。它們一起來描述系統(tǒng)的動(dòng)態(tài)行為,就是對象之間的交互。
小靈(哭喪著臉):這兩個(gè)圖圖沒什么區(qū)別嘛!反正我是看不出來。
老幺:sequence diagram和colaboration diagram都是描述系統(tǒng)動(dòng)態(tài)行為的圖。二者從語義上來講并無二至,但是sequencediagram強(qiáng)調(diào)時(shí)間,時(shí)間在其 中作為一個(gè)軸顯式的存在,所以sequence diagram用來描述實(shí)時(shí)行為最為合適。而colabrationdiagram在描述了系統(tǒng)中對象及其關(guān)聯(lián)的情況下對象之間的消息傳遞,突出的是動(dòng)態(tài)行為發(fā)生的語境,時(shí)間在其中是隱式描述的(用1、2等消息標(biāo)號)。二者是對同一系統(tǒng)動(dòng)態(tài)行為的不同視角的描述,可以加深建模人員對系統(tǒng)動(dòng)態(tài)行為的理解。
小靈:原來如此。那么,我可以畫多個(gè)交互圖啦?
老幺:是呀!原則是說,Actors有多少行為,就要畫多少交互圖來描述系統(tǒng) 內(nèi)的對象是怎樣配合工作完成Actors所要求的功能。
小靈:我的老媽呀!那要畫多少圖圖呀?
老幺:不過,實(shí)際上不需要畫這么多的。只需要把最重要的和最難理解的USE CASE實(shí)例,唔,對了,USE CASE的實(shí)例叫做劇情Scenario,描述清楚就行了。
小靈:Siiiiii... 這個(gè)詞兒怎么發(fā)音?
老幺:/si´na:riou/。
小靈:/si´na:riou/、/si´na:riou/、/si´na:riou/。那沒畫的圖圖怎么辦呢?
老幺:我們只需為每個(gè)類做一張狀態(tài)圖State Diagram就可以了。類的狀態(tài)圖描述這個(gè)類的對象在外界事件發(fā)生時(shí)狀態(tài)發(fā)生怎樣的變化,產(chǎn)生哪些 動(dòng)作等。外界的事件包括其他對象發(fā)來的消息、各種異步事件等,產(chǎn)生的動(dòng)作包括向其他對象發(fā)送消息、產(chǎn)生異步事件等等。這樣,把狀態(tài)圖和交互圖綜合起來看,就可以對系統(tǒng)的動(dòng)態(tài)行為有一個(gè)較全面深刻的理解。
小靈:分析基本上可以了,現(xiàn)在接著講設(shè)計(jì)吧。
老幺:我們早已經(jīng)開始講設(shè)計(jì)啦!
小靈:唔?
老幺:OO建模的好處就是不用在分析和設(shè)計(jì)之間劃一到鴻溝,設(shè)計(jì)只需要在分析的基礎(chǔ)上進(jìn)一步根據(jù)實(shí)現(xiàn)系統(tǒng)的限制不斷進(jìn)行各種成分的擴(kuò)充和細(xì)化。
老幺:具體的設(shè)計(jì)完成之后,我們就可以對系統(tǒng)的實(shí)現(xiàn)進(jìn)行建模了。在UML中,這是用實(shí)現(xiàn)圖Implementation Diagram來完成的。實(shí)現(xiàn)圖分部件圖 Component Diagram和實(shí)施圖Deployment
Diagram兩種。
小靈:這個(gè)部件Component和時(shí)下流行的軟件部件,象java Applet啦、ActiveX部件啦,有什么關(guān)系?
老幺:這個(gè)概念在Booch的方法中就有,不過那時(shí)叫模塊Module。象某個(gè)子程序啦、某個(gè)任務(wù)啦等等都是Module。我猜UML為了適應(yīng)軟件部件的發(fā)展 ,用Component來擴(kuò)充了Module的概念,使UML和軟件部件的思想結(jié)合的更加緊密。
小靈:部件圖和實(shí)施圖有什么關(guān)系?
老幺:部件圖描述了軟件實(shí)現(xiàn)的組成和結(jié)構(gòu)。它把軟件的實(shí)現(xiàn)分成一個(gè)個(gè)的部件,把部件組織成包。分析設(shè)計(jì)時(shí)用來組織類的邏輯包可以映射到實(shí)現(xiàn)的部件包上,而類可以映射到部件上。
小靈:對了,學(xué)ROSE時(shí),老是搞不清Logical View中的包和Component View中的包有什么區(qū)別。
老幺:在UML中,Package只是一種將關(guān)系比較緊密的成分組織起來的一種方式。ROSE的Logical
View中的包是用來組織類的,它在Booch的方法中被稱為Class Catalog,而Component View中的包是用來組織部件的,二者基本沒什么關(guān)系,不過可以把邏輯包映射到部件包上,這就是說,這個(gè)邏輯包中的類是由這個(gè)實(shí)現(xiàn)包中的部件實(shí)現(xiàn)的。
小靈:ActiveX和Java現(xiàn)在都有一種稱為CAB文件柜的文件,其中打包了若干個(gè)Control或者Applet,是不是有些象實(shí)現(xiàn)包?
老幺:我想是的。
小靈:那實(shí)施圖呢?
老幺:實(shí)施圖描述了軟件系統(tǒng)將要運(yùn)行的環(huán)境,包括各種計(jì)算資源、設(shè)備和這些設(shè)備之間的連接。實(shí)施圖還描述軟件系統(tǒng)的各個(gè)進(jìn)程在這些資源和設(shè)備上的分布情況。
小靈:這又是趕網(wǎng)絡(luò)和分布式計(jì)算的時(shí)髦嘍!
老幺:嗨,我們搞計(jì)算機(jī)的,就是一輩子趕時(shí)髦,做一輩子花花公子。
小靈(伸了個(gè)懶腰):啊…… UML還挺全的嘛,除了測試,它都包了!
老幺:測試可以用Rational的黑盒測試工具SQA、白盒測試工具Purify呀!
小靈:得啦,你少來為Rational做廣告啦!
老幺:不過說實(shí)話,人那東西做的確實(shí)不錯(cuò)。
小靈:老幺哥,謝謝你給我講了這么多,真是讓我茅塞頓開呀!
老幺:別客氣。
小靈:我要回家了。下次我們再侃ROSE。
老幺:Bye-bye!

***** ROSE介紹 (三. ROSE的使用)*****

這些天來,小靈和老幺都在認(rèn)真學(xué)習(xí)ROSE和UML。這一天,老幺來到小靈家來做客,看到小靈正在玩ROSE。
老幺:小靈,ROSE玩得怎么樣啊?
小靈:嘿,老幺哥,你來啦。請坐。(小靈給老幺讓座、倒茶)
小靈:老幺哥,我發(fā)現(xiàn)假如UML的基本概念把握好了,再加上一些例子,ROSE其實(shí)并不難學(xué)嘛。
老幺:那好啊,我們來切磋切磋。你來給我介紹一下你的成果吧!
小靈(清了清嗓子):OK!我們先來看一看ROSE的界面吧。(老幺和小靈坐到電腦前)
小靈:ROSE的界面基本分成三個(gè)窗口:瀏覽窗口browser window、圖形窗口 diagram window和文檔窗口document diagram。它們共同來創(chuàng)建和操作模型。瀏覽窗口主要是來創(chuàng)建各種模型元素,并在模型中遍歷和漫游。圖形窗口主要是用來繪制和顯示模型中的各種圖,而文檔窗口用來書寫和顯示模型元素的描述。
老幺:對.我覺得,很重要的一點(diǎn)是要搞清楚我們所建的模型和我們所見的模型之間的關(guān)系。UML中的各種圖不過是從不同的角度來把模型可視化而已.同一個(gè)模型元素,可以出現(xiàn)在多個(gè)圖中。
小靈:這就好象同一個(gè)意象,詩人用詩歌的形式表現(xiàn)它,畫家用繪畫的形式表現(xiàn)它,而作曲家用音樂的形式來表現(xiàn)它一樣。
老幺:ROSE中的瀏覽窗口、圖形窗口和文檔窗口都是同一模型的不同表現(xiàn)形式而已,它們用不同的方法組織和表現(xiàn)模型的元素,使我們能更好的構(gòu)造和理解模型。
小靈:好,我們拿到一個(gè)項(xiàng)目時(shí),首先應(yīng)該考慮什么呢?
老幺:當(dāng)然是考察用戶需求,烹制一些USE CASE嘍!
小靈:在分析USE CASE之前,要先分析ACTOR。就是分析我們系統(tǒng)的用戶和將與我們的系統(tǒng)交互的外部系統(tǒng)。因?yàn)檎媸撬鼈兊男枨螅抛屛覀兇_定 我們的系統(tǒng)要具有什么樣的功能。
老幺:在ROSE里,怎么創(chuàng)建ACTOR?
小靈:一般來說,創(chuàng)建模型元素應(yīng)該在瀏覽窗口中進(jìn)行。就是在瀏覽窗口中選中Use case view
、Logical view、Component view或Deploymentview文件夾,單擊右鍵,選擇New菜單,創(chuàng)建所需的模型元素。
老幺:我在USE CASE圖里不是也能建ACTOR嗎?
小靈:不錯(cuò)。但是我更習(xí)慣先在瀏覽窗口中把模型元素建好,然后再把它們拖到相應(yīng)的圖中。這樣更能體現(xiàn)圖是模型的可視化表現(xiàn)這個(gè)思想。
老幺:我覺得那種方法都可以。
小靈:有了ACTOR之后,我們就可以為每個(gè)ACTOR分析它們所要求的系統(tǒng)應(yīng)該具有的功能,也就是USE CASE。在創(chuàng)建了USE CASE之后,我們需要把 ACTOR和USE CASE拖到USE CASE圖中,并用箭頭表示它們之間的交互關(guān)系。
老幺:畫完了USE CASE圖之后呢?
小靈:USE CASE分析之后,我們要考慮USE CASE的實(shí)例senario的事件流程,這通常使用交互圖(包括順序圖和協(xié)作圖)來描述。在這些圖中,我 們用對象和對象之間的消息流來描述senar-io,從而發(fā)現(xiàn)要完成USE CASE,系統(tǒng)必須具有哪些對象,以及這些對象應(yīng)該響應(yīng)哪些消息。
老幺:這比Coad方法中發(fā)現(xiàn)對象的方式更具操作性。
小靈:當(dāng)我們把這些senario分析完了之后,我們發(fā)現(xiàn)了許多對象,下一步,我們就要為這些對象定義相應(yīng)的類了。
老幺:這些類是在Logical View中定義和顯示的嘍!
小靈:對,我們在Logical view中定義這些類,然后把它們組織成包。創(chuàng)建類圖,把包、類之間的關(guān)系繪制在圖上,建立起系統(tǒng)的靜態(tài)模型。這些類將是系統(tǒng)中最穩(wěn)定的元素。
老幺:go on.
小靈:我們可以為每一個(gè)類創(chuàng)建一張(也只能創(chuàng)建一張)狀態(tài)圖。
老幺:怎么操作?
小靈:在瀏覽窗口中選中一個(gè)類,選右鍵菜單上的state diagram,就可以創(chuàng)建這個(gè)類的狀態(tài)圖。狀態(tài)圖描述了這個(gè)類的對象在外部事件的影響下的狀態(tài)改變。
老幺:我們不停的細(xì)化和修改這些元素,直到我們可以很輕易的實(shí)現(xiàn)它們。
小靈:在實(shí)現(xiàn)階段,我們在ROSE的Component view中定義一些實(shí)現(xiàn)包。這些包的定義要綜合考慮邏輯包的結(jié)構(gòu)和實(shí)現(xiàn)環(huán)境。在實(shí)現(xiàn)包中我們定義一些模塊module,模塊可以是子系統(tǒng)、子程序、任務(wù)等等實(shí)現(xiàn)上的劃分。然后,我們把邏輯包映射到實(shí)現(xiàn)包上,把類映射到模塊上。這樣就把系統(tǒng)的邏輯結(jié)構(gòu)和實(shí)現(xiàn)結(jié)構(gòu)掛上了鉤。
小靈:最后,我們還可以為軟件系統(tǒng)將要運(yùn)行的環(huán)境定義一張實(shí)施圖deployment diagram。
老幺:我們把模型建立完了之后,可以使用ROSE的代碼自動(dòng)生成功能為我們自動(dòng)生成大部分的代碼。并且ROSE的雙向工程Round-Trip Engineering功能,可以保持代碼和模型的一致性。
小靈:怎么樣,我學(xué)得很快吧?
老幺:不錯(cuò)不錯(cuò)。
小靈:主要是要一步步過一個(gè)例子。我覺得有Demo1.mdl、Demo2.mdl、Rosemode.mdl和Wlkthr
_r.htm的例子不錯(cuò)。按照Wlkthr_r.htm的說明 ,一步步做下去,很快就能把握ROSE的基本操作。我已經(jīng)把 Wlkthr_r.htm文件翻譯成中文了。
老幺:那你還不把它貼到BBS上,讓大家共享?
小靈:太大了,而且還是Html格式的,挺不方便。
老幺:沒關(guān)系,只要有用就行。
小靈:這樣吧,我在BBS上貼一個(gè),再把HTML文檔上載到202.197.12.252的目錄/incoming/ro-
se_cpp下,名字叫CWlkthr.htm,讓大家下載好了。
老幺:太好了。
小靈:我這就做。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 宣武区| 安达市| 寻甸| 金门县| 阳曲县| 台江县| 谢通门县| 朔州市| 米林县| 宜阳县| 蒲城县| 聊城市| 莎车县| 海林市| 梓潼县| 新建县| 锡林郭勒盟| 金堂县| 淮北市| 瓮安县| 贵南县| 邯郸市| 乡城县| 泰顺县| 安龙县| 汨罗市| 方正县| 来凤县| 霍林郭勒市| 临潭县| 扎兰屯市| 青岛市| 炎陵县| 隆子县| 盱眙县| 麻江县| 乐平市| 昌宁县| 英超| 甘南县| 遂溪县|