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

正文內(nèi)容

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

2025-06-07 22:24 本頁面
 

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