freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

uml基礎(chǔ)案例與應(yīng)用:第3版(編輯修改稿)

2025-06-07 22:24 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 diagram)。,它叫做collaboration diagram。,你會(huì)看到這兩個(gè)術(shù)語(yǔ)混用,請(qǐng)不必大驚小怪,因?yàn)樗鼈兪且换厥?。 ?gòu)件圖構(gòu)件圖和下一個(gè)要介紹的部署圖將不再使用洗衣機(jī)這個(gè)例子來(lái)做說明,因?yàn)闃?gòu)件圖和部署圖和整個(gè)計(jì)算機(jī)系統(tǒng)密切相關(guān)。現(xiàn)代軟件開發(fā)是基于構(gòu)件的,這種開發(fā)方式對(duì)群組開發(fā)尤為重要。這里暫不對(duì)此做詳細(xì)介紹。這是UML 。鑒于很多建模工作者反映這個(gè)圖標(biāo)很糟糕,UML 。尖括號(hào)做什么用?,單詞ponent外圍的尖括號(hào)是做什么用的?這個(gè)符號(hào)在UML中有著特殊的作用。我們將在稍后的部分“關(guān)鍵字和構(gòu)造型”中介紹?!〔渴饒DUML部署圖顯示了基于計(jì)算機(jī)系統(tǒng)的物理體系結(jié)構(gòu)。它可以描述計(jì)算機(jī),展示它們之間的連接,以及駐留在每臺(tái)機(jī)器中的軟件。每臺(tái)計(jì)算機(jī)用一個(gè)立方體來(lái)表示,立方體之間的連線表示這些計(jì)算機(jī)之間的通信關(guān)系。 其他特征前面曾提到過UML提供了一些用來(lái)擴(kuò)展模型圖的特征。本節(jié)描述這些特征中比較突出的一些?!∽⑨層袝r(shí)圖中的某一部分不會(huì)給出明確的解釋。此時(shí)UML注釋(note)很有用場(chǎng)??梢园炎⑨尶闯墒菆D形化的黃頁(yè)。注釋的圖標(biāo)是一個(gè)帶折角的矩形。矩形框中是解釋性文字。注釋和被注釋的圖元素之間用一條虛線連接。 關(guān)鍵字和構(gòu)造型UML提供了很多有用的項(xiàng),但絕不是一個(gè)完全徹底的模型元素集。有時(shí)你所要?jiǎng)?chuàng)建的模型需要包含一些新的概念和符號(hào)。構(gòu)造型(stereotype)使你能夠在現(xiàn)有的UML元素的基礎(chǔ)上創(chuàng)建新的元素。這有點(diǎn)像你從貨架中買了一套衣服然后再把這套衣服裁剪成你所需要的尺寸(而不是買一堆布料從頭開始制作)??梢园褬?gòu)造型和這種裁制類比。構(gòu)造型用兩對(duì)尖括號(hào)括起來(lái)的一個(gè)名稱來(lái)表示,這個(gè)括號(hào)叫做雙尖括號(hào)(guillemets)。這個(gè)被括起來(lái)的名稱叫做關(guān)鍵字(keyword)。有時(shí)侯,UML會(huì)為你創(chuàng)建新的模型即繪圖元素。這時(shí)侯,UML并不是為某事物創(chuàng)建一個(gè)全新的符號(hào),而是把一個(gè)關(guān)鍵字添加到已有的元素中。這個(gè)關(guān)鍵字表明了該元素的用法與其原來(lái)的意圖多少有些不同。接口這個(gè)概念(你將在第5章“聚焦、組成、接口和實(shí)現(xiàn)”中學(xué)習(xí))是使用構(gòu)造型的一個(gè)好例子。接口(interface)是一個(gè)沒有屬性而只有操作的類。它是可以在整個(gè)模型中反復(fù)使用的一組行為(具體原因?qū)⒃诘冢嫡抡f明)。無(wú)須發(fā)明一個(gè)新的UML元素來(lái)表示接口,UML可以在類圖標(biāo)中類名的上面加一個(gè)Interface關(guān)鍵字來(lái)表示接口。構(gòu)造型的概念在使用UML建模工具的時(shí)侯特別有用。建模工具的一個(gè)重要特點(diǎn)是具備“字典”的功能,能夠跟蹤你在模型中創(chuàng)建的所有的元素,包括類、用例、構(gòu)件等等。字典只能夠?qū)σ延械脑睾突谶@些元素的構(gòu)造型有效。因此,構(gòu)造型允許你創(chuàng)建一些新的東西并把它們存儲(chǔ)到字典中。這一點(diǎn)非常重要,因?yàn)樽值淠軌驇椭愎芾碜约旱哪P?,并使你得以?fù)用你所創(chuàng)建的元素。在第14章中,我們將深入U(xiǎn)ML內(nèi)部并探討諸如構(gòu)造型等概念的基礎(chǔ)?,F(xiàn)在,你只需要把構(gòu)造型形象化地記為向UML圖標(biāo)中添加一個(gè)關(guān)鍵字。你還需要記住,當(dāng)你使用UML的時(shí)侯(尤其是當(dāng)你使用UML建模工具的時(shí)侯),你將會(huì)發(fā)現(xiàn)UML中有很多內(nèi)建的構(gòu)造型和預(yù)定義的關(guān)鍵字(如ponent、Interface等)。退化?我第一次提到雙尖括號(hào)是在前面的“構(gòu)件圖”部分。我提到, 。我針對(duì)構(gòu)造型所介紹的一切內(nèi)容都表明,當(dāng)你缺乏某種符號(hào)的時(shí)候,你可以用構(gòu)造型來(lái)創(chuàng)建它。而在UML ,構(gòu)件圖的情況正好相反,帶有一個(gè)關(guān)鍵字的類圖標(biāo)替代了原有的符號(hào)?!ML 除了對(duì)UML (如軟件構(gòu)件圖標(biāo)),UML ?!〗M成結(jié)構(gòu)圖當(dāng)你對(duì)一個(gè)類建模的時(shí)侯,你會(huì)發(fā)現(xiàn)展示其內(nèi)部結(jié)構(gòu)是很有用的。當(dāng)一個(gè)類由多個(gè)類構(gòu)建而成的時(shí)侯,你往往會(huì)有這種感覺。例如,我們?cè)O(shè)想一個(gè)人是由思想(Mind)和身體(Body)組成的。在第5章中,你將看到傳統(tǒng)的方法如何對(duì)這個(gè)表述建模。模型由線條和符號(hào)組成,它們把Person類連接到Mind類和Body類UML (posite structure diagram)為你提供了一種全新的方法。你可以把每一個(gè)構(gòu)件類放入到一個(gè)整體中。這種方法傳達(dá)的思想就是,你從類結(jié)構(gòu)的內(nèi)部來(lái)審視這個(gè)類。UML ;UML 。 對(duì)一個(gè)類的內(nèi)部結(jié)構(gòu)建模的組成結(jié)構(gòu)圖有關(guān)線條的哲學(xué)隨著我們更加深入了解面向?qū)ο蟮闹R(shí),你會(huì)發(fā)現(xiàn)連接兩個(gè)類(如Mind和Body)的線條通常都有一個(gè)名字。,我們?cè)撊绾螛?biāo)注連接Mind類和Body類的線條呢?多年來(lái),哲學(xué)家對(duì)這個(gè)問題一直是百思不得其解。他們一直不斷地爭(zhēng)論這種關(guān)系的命名,它是否存在?Mind這個(gè)組成部分是否存在?等等等等?!〗换タv覽圖再次考慮活動(dòng)圖(),它向我們展示了一系列的步驟,也就是“活動(dòng)”。假設(shè)這些活動(dòng)中的每一個(gè)都包含了對(duì)象之間的一個(gè)消息序列。如果你用順序圖或協(xié)作圖(或者是二者的結(jié)合體)來(lái)替換其中的某些活動(dòng),你將會(huì)得到UML --交互縱覽圖(interaction overview diagram)。下面舉個(gè)例子。假設(shè)在一個(gè)圖書館中:1. 你從圖書館的數(shù)據(jù)庫(kù)中查找到一本書。2. 你把這本書拿到服務(wù)臺(tái)去辦理借閱登記。3. 在你離開圖書館之前,出口處的門衛(wèi)驗(yàn)證你的借閱登記。 在圖書館的3個(gè)活動(dòng)現(xiàn)在,我們來(lái)分析一下每個(gè)活動(dòng)。在第1個(gè)活動(dòng)中,你查詢圖書館的數(shù)據(jù)庫(kù)以找到圖書,數(shù)據(jù)庫(kù)做出反應(yīng),告訴你到哪里去找圖書。在第2個(gè)活動(dòng)中,你請(qǐng)求管理員為你辦理借閱手續(xù),手續(xù)辦妥后,管理員告訴你可以把圖書帶走了。在第3個(gè)活動(dòng)中,只有門衛(wèi)查驗(yàn)了你的借閱手續(xù)之后,你才能離開圖書館。  計(jì)時(shí)圖回過頭來(lái)考慮洗衣機(jī)的例子。我用這個(gè)典型的家用電器討論了類圖、狀態(tài)圖、順序圖和協(xié)作圖。在順序圖部分,我提到了每一個(gè)狀態(tài)的持續(xù)時(shí)間:5分鐘浸泡、15分鐘洗滌、15分鐘漂洗和5分鐘脫水。,你會(huì)發(fā)現(xiàn)其中并沒有標(biāo)明這些持續(xù)時(shí)間。UML (timing diagram)完成了這個(gè)任務(wù)。計(jì)時(shí)圖就是設(shè)計(jì)用來(lái)表示對(duì)象處于某一個(gè)狀態(tài)中的持續(xù)時(shí)間的。 UML計(jì)時(shí)圖 有創(chuàng)新也有保留的包圖UML ,這就是打個(gè)包(package)。包的圖標(biāo)就像是一個(gè)帶有標(biāo)簽的文件夾。使用包的思想就是把共同工作的元素放到這樣的一個(gè)帶標(biāo)簽的文件夾圖標(biāo)中。例如,如果多個(gè)類或者構(gòu)件組成了一個(gè)特殊的子系統(tǒng),它們應(yīng)該放入到一個(gè)包中。 UML包圖標(biāo)通過規(guī)范包圖,UML 。包不再被認(rèn)為只是一種組織圖元素的方法,它有了自己專用的圖?!槭裁葱枰@么多種圖正如你在前面所看到,各種UML圖能讓你從多個(gè)視角考察一個(gè)系統(tǒng)。要注意的重要一點(diǎn)是并不是每個(gè)UML模型都必須包含所有的圖。事實(shí)上大多數(shù)UML模型只包含上面列出的所有圖的子集。對(duì)系統(tǒng)建立模型為什么需要這么多種圖?最典型的情況是,一個(gè)系統(tǒng)有多個(gè)不同類型的風(fēng)險(xiǎn)承擔(dān)人(stakeholder)--那些在不同方面與這個(gè)系統(tǒng)有利益關(guān)系的人。讓我們回顧洗衣機(jī)的例子。如果你正在設(shè)計(jì)一臺(tái)洗衣機(jī)的馬達(dá),那么以你的視角來(lái)觀察系統(tǒng)就得到一個(gè)系統(tǒng)的視圖。如果你正在編寫操作指令的話,你可能又會(huì)得到另一幅視圖。要是你正在設(shè)計(jì)洗衣機(jī)整體外觀的話,那么你觀察這個(gè)系統(tǒng)的方式與你作為一個(gè)洗衣機(jī)用戶的觀察方式完全不同。認(rèn)真細(xì)致的系統(tǒng)設(shè)計(jì)要考慮到所有這些視角,每一種UML圖都為你提供一種組成特殊視圖的方式。采用多視角的目標(biāo)是為了能夠和每一類風(fēng)險(xiǎn)承擔(dān)人良好地溝通。 這不僅僅是一系列圖有人可能會(huì)爭(zhēng)辯說UML建模無(wú)足輕重。畢竟,程序才是項(xiàng)目最重要的部分,難道不是嗎?開發(fā)者作實(shí)際的工作,而建模者只是繪圖,不是嗎?為了理解精確的可視化建模的重要性,讓我們來(lái)看看一個(gè)廣為人知的、長(zhǎng)期處于構(gòu)建中的項(xiàng)目。這個(gè)項(xiàng)目開發(fā)地位于馬薩諸塞州的波士頓市,其正式名稱叫作“市區(qū)(中心)干線(隧道)”,現(xiàn)在被人戲稱為“大挖掘”,其目的是緩解波士頓市的交通堵塞現(xiàn)象。一系列通過城市中心的隧道和橋梁將替代年久失修、容量有限的高架高速公路。除了解決交通問題,“大挖掘”還將帶來(lái)巨大的經(jīng)濟(jì)效益和環(huán)保效益。這些益處最好是巨大的,因?yàn)轫?xiàng)目的成本已經(jīng)超過預(yù)算10億美元。根據(jù)Boston Globe(波士頓環(huán)球報(bào))的報(bào)導(dǎo),成本巨大的一個(gè)原因是指導(dǎo)開挖和建筑的圖紙不完整并且不精確。例如,F(xiàn)leetCenter(富利中心,波士頓市的運(yùn)動(dòng)和娛樂中心)就在一張圖紙中漏掉了。這個(gè)扎眼的遺漏誤導(dǎo)了承包商,使他們以為在城市的某個(gè)特定區(qū)域,應(yīng)該有一條連貫的線路用來(lái)設(shè)置公共設(shè)施。另一張圖紙則多出了一個(gè)本不存在的檢修孔(用來(lái)檢查電線線路的)。還有另外一張隧道的圖紙則在隧道段之間留下了一個(gè)4英尺的空隙,直到該隧道段定位以后,工人才發(fā)現(xiàn)有這么一個(gè)空隙。結(jié)果是耗費(fèi)了大量的成本去完成始料不及的工作,以更正錯(cuò)誤,同時(shí)一而再再而三地延誤工期。這種情況聽起來(lái)是不是有些耳熟。建模、學(xué)習(xí)和知識(shí)我認(rèn)為,學(xué)習(xí)的進(jìn)展過程包括3個(gè)階段:1. 你不知道你所缺乏的知識(shí)。也許,這一條的更好的說法是,你不熟悉某一個(gè)特定的領(lǐng)域。2. 你知道你所缺乏的知識(shí)。換句話說,你對(duì)于這個(gè)領(lǐng)域的方方面面有了一些了解,并開始查找你的知識(shí)缺陷。3. 填補(bǔ)你的知識(shí)缺陷。UML(以及普通的建模)是快速把你帶入第2階段的美妙途徑,幫助你認(rèn)識(shí)到自己所缺乏的知識(shí),并開始尋找相關(guān)的信息?!⌒〗Y(jié)系統(tǒng)開發(fā)是一項(xiàng)人力活動(dòng),如果沒有易于理解的表示法系統(tǒng),開發(fā)過程就會(huì)冒很大的錯(cuò)誤風(fēng)險(xiǎn)。UML就是一套表示法系統(tǒng),它已經(jīng)成為系統(tǒng)開發(fā)領(lǐng)域中的標(biāo)準(zhǔn)。UML是由Grady Booch、James Rumbaugh和Ivar Jacobson發(fā)明的。UML由一組圖組成,它使得系統(tǒng)分析員可以利用這一標(biāo)準(zhǔn)來(lái)建立能夠?yàn)榭蛻簟⒊绦騿T以及任何參與開發(fā)過程的人員理解的多視角的系統(tǒng)藍(lán)圖。因?yàn)椴煌娘L(fēng)險(xiǎn)承擔(dān)人通常使用不同類型的圖相互交流,因此UML包含所有這些種類的圖是很有必要的。UML模型中說明一個(gè)系統(tǒng)應(yīng)該做什么(what to do),并沒有告訴我們系統(tǒng)應(yīng)該怎么做(how to do)。 常見問題解答問:我注意到有人將統(tǒng)一建模語(yǔ)言表示為“UML”,還有的人將其表示為“the UML”。哪一種是正確的?答:語(yǔ)言的創(chuàng)作者更喜歡用“the UML”。問:你提到了面向?qū)ο蟮乃枷朐诒緯姓紦?jù)主要的地位。為了理解并應(yīng)用這些概念,我必須是一個(gè)Java或C++的開發(fā)者嗎?答:當(dāng)然不是。面向?qū)ο蟮乃枷氩⒉恢皇菍?duì)程序員有用。對(duì)于系統(tǒng)所處的專業(yè)領(lǐng)域的知識(shí),系統(tǒng)分析員希望能夠了解并對(duì)其建模,因此,面向?qū)ο蟮乃枷雽?duì)系統(tǒng)分析員極為有用。問:你剛才提到,UML對(duì)系統(tǒng)分析員來(lái)說是一個(gè)非常有用的工具。然而,部署圖似乎在系統(tǒng)開發(fā)過程的分析階段不那么有用。它是不是更適合在開發(fā)過程的后期使用?答:的確不應(yīng)該太早就開始考慮系統(tǒng)部署問題(以及其他一些傳統(tǒng)上被認(rèn)為應(yīng)該在開發(fā)過程后期要考慮的問題,如系統(tǒng)安全)。確實(shí),系統(tǒng)分析員的工作主要是和客戶和用戶交流,但在開發(fā)過程的早期,系統(tǒng)分析員也很可能要考慮構(gòu)成系統(tǒng)硬件的計(jì)算機(jī)和組成。有時(shí)侯是客戶要求系統(tǒng)分析員這么做的。有時(shí)客戶想讓開發(fā)組向他們推薦。當(dāng)然部署對(duì)系統(tǒng)體系結(jié)構(gòu)設(shè)計(jì)師來(lái)說是非常有用的。問:前面你提到過,用UML的各種圖混合組圖也是可以的。那么,UML對(duì)模型圖中哪個(gè)元素和哪個(gè)元素的結(jié)合做了限制嗎?答:沒有。UML對(duì)此沒有限制。然而,一般的情況是某種圖只是包含這種圖的圖形元素。當(dāng)然你可以在部署圖中加進(jìn)一個(gè)類的圖標(biāo),但這么做可能沒有太大用處。問:“洗衣服”的用例圖,它所描述的一切都圍繞著用戶使用洗衣機(jī)洗衣服。我們真的需要用一組符號(hào)來(lái)描述這些么?我們難道不能只用一個(gè)簡(jiǎn)單的句子來(lái)描述?答:?jiǎn)螁尉湍闼岬降倪@個(gè)問題講,你的說法是對(duì)的:你可以只是采用一個(gè)句子來(lái)描述。然而,在一個(gè)典型的開發(fā)項(xiàng)目中,用例就像是Star Trek影劇集(《星際迷航》)第42場(chǎng)中的Tribble(一種繁殖力極強(qiáng)的星際小生物)。你開始入門了,但還需要了解更多?!⌒y(cè)驗(yàn)和習(xí)題 小測(cè)驗(yàn) 習(xí)題 第2章 理解面向?qū)ο笤诒菊轮?,你將學(xué)習(xí)如下內(nèi)容:u 如何理解面向?qū)ο笏季S方式。u 對(duì)象如何通信。u 對(duì)象如何與其他對(duì)象關(guān)聯(lián)。u 對(duì)象如何組合。面向?qū)ο蠹夹g(shù)已經(jīng)席卷了整個(gè)軟件界,事實(shí)也確實(shí)如此。作為一種程序設(shè)計(jì)方法,它具有很多優(yōu)點(diǎn)?;跇?gòu)件的軟件開發(fā)方法就是面向?qū)ο蠹夹g(shù)孕育出來(lái)的。采用這種方法建立一個(gè)系統(tǒng)時(shí),首先建立一組類,然后通過增加已有構(gòu)件的功能或者添加新的構(gòu)件來(lái)逐步擴(kuò)充系統(tǒng),最后在建立一個(gè)新系統(tǒng)時(shí),你還可以重用已經(jīng)創(chuàng)建好的類。這樣做可以大大削減系統(tǒng)開發(fā)時(shí)間。使用UML可以建立起易于使用和易于理解的對(duì)象模型。程序員能夠創(chuàng)建出這些模型所對(duì)應(yīng)的軟件。因此,UML對(duì)基于類開發(fā)的全過程都有益處。面向?qū)ο笫且环N思維方法--它是依賴于幾個(gè)基本原則的思維方法。在這一章中,你將學(xué)習(xí)到這些基本原則。你將搞清楚對(duì)象是什么,在分析和設(shè)計(jì)中如何利用對(duì)象。從下一章開始介紹如何根據(jù)這些基本原則運(yùn)用UML。 無(wú)處不在的對(duì)象對(duì)象,不論是具體的還是抽象的,遍布于我們的周圍。它們組成了整個(gè)世界。正如前一章所指出的,典型的現(xiàn)代軟件都要模擬現(xiàn)實(shí)世界(至少是模擬現(xiàn)實(shí)世界的一個(gè)片段),因此程序通常也要模擬現(xiàn)實(shí)世界中的對(duì)象。如果體會(huì)了對(duì)象的實(shí)質(zhì),那么你就能夠理解如何用軟件來(lái)表達(dá)對(duì)象,以及軟件是否是面向?qū)ο蟮?。傳統(tǒng)的程序員能夠從面向?qū)ο蟾拍钪惺芤?,因?yàn)槊嫦驅(qū)ο蟾拍钐峁┝怂麄兯ぷ鞯念I(lǐng)域的建模。首先也是最重要的,對(duì)象是一個(gè)類(種類)的實(shí)例。例如,你和我都是Person這個(gè)類的實(shí)例。對(duì)象具有自身的結(jié)構(gòu)(structure)。也就是說,它具有屬性(特性)和行為。對(duì)象的行為包括它所能執(zhí)行的操作。屬性和操作合起來(lái)被稱為特征(feature)符號(hào)約定為了幫助你習(xí)慣UML符號(hào),我將使用我在第1章中提到的一些面向?qū)ο蟮募s定,包括:? 類名以大寫字母開頭? 包含多個(gè)單詞的類名,所有的單詞都連接在一起,并且每個(gè)單詞的第一個(gè)字母都大寫。? 特征(屬性和操作)的名字以小寫字母開始。? 多個(gè)單詞組成的特征名,所有的單詞連接在一起,除了第一個(gè)字母小寫,其他每個(gè)單詞的第一個(gè)字母都大寫。? 操作名的后面跟上一對(duì)括號(hào)。你和我作為Person類的對(duì)象,都具有一些共同的屬性:身高、體重和年齡等(不難想象,還有許多其他的屬
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)教案相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1