版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 一、包的作用 一個程序往往包含了很多個類,那么如何管理這些類就成了一個需要解決的問題(分組機制) 這些類可能由不同的程序員進行(jnxng)建立,當把這些類合并成一個大系統(tǒng)時,往往會產生命名沖突(類名沖突) 包的兩個作用:分組機制,命名空間。Java: 包(package)C#: 命名(mng mng)空間(namespace)第1頁/共51頁第一頁,共52頁。C#中引入命名(mng mng)空間:using 命名(mng mng)空間名;C#中定義命名(mng mng)空間:namespace 命名(mng mng)空間名 第2頁/共51頁第二頁,共52頁。using System;usi
2、ng System.Collections.Generic;using System.Text;namespace scoreA class A class B class C 引入包定義(dngy)包第3頁/共51頁第三頁,共52頁。11 .1 包圖的概念(ginin)11.2 包的表示(biosh)11.3 包圖中的關系(gun x)11.4 閱讀包圖11.5 創(chuàng)建包圖11.6 包圖建模第4頁/共51頁第四頁,共52頁。11.1 包圖的概念(ginin)模型的組織(zzh)結構系統(tǒng)(xtng)的三層結構先分層再細分成包的方式用戶界面代表與用戶進行交互的界面業(yè)務邏輯層用來處理系統(tǒng)的業(yè)務流程數
3、據訪問層是程序中和數據庫進行交互的層第5頁/共51頁第五頁,共52頁。11.1 包圖的概念(ginin) 對復雜系統(tǒng)進行建模時,經常需要處理大量的類、接口、組件、節(jié)點和圖,有必要(byo)將這些元素進行分組,就是把語義相近并傾向于一起變化的元素組織起來加入同一包,這樣方便理解和處理整個模型,而且也便于輕松地控制這些元素的可見性,使一些元素在包外可見,一些元素隱藏在包內。第6頁/共51頁第六頁,共52頁。11.1 包圖的概念(ginin)1.包圖 包圖是描述包與包之間關系的圖。包圖可以包括注釋、約束(yush)。包間的關系有依賴關系和泛化關系。包圖第7頁/共51頁第七頁,共52頁。11.1 包圖
4、的概念(ginin)2. 包圖的作用(zuyng) 1)對語義上相關的元素進行分組。 2)提供配置管理單元。 3)在設計時,提供并行工作的單元。 4)提供封裝的命名空間。3. 包圖中的元素 在包中可以擁有各種其他元素,包括類、接口、構件、節(jié)點、協(xié)作、用例,甚至是其它(qt)子包或圖 。一個元素只能屬于一個包。第8頁/共51頁第八頁,共52頁。11.2 包的表示(biosh) UML中,用文件夾符號(fho)來表示一個包,它包含2欄。PageNamePageNameClassName-1ClassName-2.PageName類名(li mn)Rose常用表示法包名放在第一欄在第二欄畫出所包含的
5、類圖形表示第二欄列出包含的類名包名放在第二欄System:WebUIclass嵌套包包的表示法第9頁/共51頁第九頁,共52頁。11.2 包的表示(biosh)包的名稱(mngchng)UISystem:Web:UI簡單名含路徑名(全名) 每個包必須有一個與其他(qt)包相區(qū)別的名稱。標識包名稱的格式有兩種:簡單名和全名。簡單名:僅包含一個包的簡單名稱;全名:用該包的外圍包的名字作為前綴,加上包本身的名字。第10頁/共51頁第十頁,共52頁。11.2 包的表示(biosh) 2. 包的元素(yun s) 在一個包中可以擁有各種元素,包括(boku)類、接口、構件、節(jié)點、協(xié)作、用例,甚至是其他包
6、或圖。這是一種組成關系,意味著元素是在這個包中聲明的,一個元素只能屬于一個包。 每一個包就意味著一個獨立的命名空間,兩個不同的包,可以具有相同的元素名,但由于所位于的包名不同,因此其全名仍然是不同的。 在包中表示擁有的元素時,有兩種方法:一是在第二欄中列出所屬元素名,二是在第二欄中畫出所屬元素的圖形表示。第11頁/共51頁第十一頁,共52頁。11.2 包的表示(biosh) 3. 包的可見性 像類中的屬性和方法一樣,包中的元素(yun s)也有可見性,包內元素(yun s)的可見性控制了包外部元素(yun s)訪問包內部元素(yun s)的權限。包包A中元素的可見中元素的可見性性包包B中元素的
7、訪問權限中元素的訪問權限+若B引用了A,則B中的任何元素可以訪問A中可見性是+的元素#若B繼承了A,則B中的任何元素可以訪問A中可見性是#的元素-可見性是-的元素,只能被同一個包中的其它元素訪問可見性與訪問權限(qunxin)(假設包B中的元素訪問包A中的元素)第12頁/共51頁第十二頁,共52頁。Public(+): 可在其他任何包中使用Private(-): 只能(zh nn)在該包中使用Protected(#): 可以在該包和該包的子包中使用第13頁/共51頁第十三頁,共52頁。11.2 包的表示(biosh) 包內元素的可見性,標識(biozh)了外部元素訪問包內元素的權限。包元素(y
8、un s)的可見性第14頁/共51頁第十四頁,共52頁。11.2 包的構造型構造型用途虛包(faade)描述一個只引用其他包內元素的包框架(framework)描述一個主要由模式組成的包樁(stub)描述一個作為另一個包的公共內容代理的包子系統(tǒng)(subsystem)描述一個表示正在建模中的整個系統(tǒng)的一個獨立部分的包系統(tǒng)(system)描述一個表示正在建模中的整個系統(tǒng)的包第15頁/共51頁第十五頁,共52頁。11.3 包圖中的關系(gun x)包圖中的關系(gun x)包括依賴關系(gun x)和泛化關系(gun x)。1 依賴(yli)關系 依賴關系又可以分為4種。在依賴關系中 ,我們把箭尾端
9、的包稱為客戶包,把箭頭端的包稱為提供者包。1)use關系 use關系是一種默認的依賴關系 ,說明客戶包(箭尾端的包)中的元素以某種方式使用提供者包(箭頭端的包)的公共元素,也就是說客戶包依賴于提供者包。如果沒有指明依賴類型,則默認為use關系。2) import關系:允許一個包中的元素可以單向訪問另一包中的元素 import關系是最普遍的包依賴類型,說明提供者包的命名空間將被添加到客戶包的命名空間中,客戶包中的元素也能夠訪問提供者包的所有公共元素。 import關系使命名空間合并,當提供者包中的元素具有與客戶包中的元素相同的名稱時,將會導致命名空間的沖突。這也意味著,當客戶包的元素引用提供者包
10、的元素時,將無需使用全稱,只需使用元素名稱即可。第16頁/共51頁第十六頁,共52頁。當包A將包B導入時,包A中的元素(yun s)可以直接訪問包B中的元素(yun s),而不必在每次使用時用完整的路徑名。11.3 包的導入第17頁/共51頁第十七頁,共52頁。using space1;using space2;namespace space3 /第三個命名(mng mng)空間 DownCount dc = new DownCount(10); UpCount uc = new UpCount(10); /using space1;/using space2;namespace space3
11、 /第三個命名(mng mng)空間 space1.DownCount dc = new space1.DownCount(10); space2.UpCount uc = new space2.UpCount(10); 第18頁/共51頁第十八頁,共52頁。第19頁/共51頁第十九頁,共52頁。11.3 包圖中的關系(gun x)3) access關系 如果(rgu)只想使用提供者包中的元素,而不想將兩個包合并,則應使用該關系。在客戶包中必須使用路徑名,才能訪問提供者包中的所有公共元素。)trace關系: 想表示一個包到另一個包的歷史發(fā)展(fzhn),則需要使用trace關系來表示。2泛化關
12、系 包間的泛化關系類似于類間的泛化關系,使用一般包的地方,可以用特殊包代替。 在系統(tǒng)設計中,對某一個特定的功能,有多種實現方法。例如,實現多數據庫支持;實現B/S和C/S雙界面。這時就需要定義一些高層次的“抽象包”和實現高層次功能的“實現包”。第20頁/共51頁第二十頁,共52頁。11.3 包圖中的關系(gun x)第21頁/共51頁第二十一頁,共52頁。11.4 閱讀(yud)包圖閱讀包圖的方法: 1.了解每個包的語義,及其它包含的元素(yun s)語義。 2.理解包間的關系。 3.找到依賴關系復雜的包,從最復雜的包開始閱讀,然后依次是簡單的包。第22頁/共51頁第二十二頁,共52頁。11.
13、4 閱讀(yud)包圖閱讀(yud)包圖第23頁/共51頁第二十三頁,共52頁。11.5 創(chuàng)建(chungjin)包圖繪制(huzh)包圖的基本過程主要有三個步驟:(1)尋找包;(2)確定包之間的關系;(3)標出包內元素的可見性。繪制包圖的“最小化系統(tǒng)間的耦合關系”的原則: 最大限度(xind)減少包之間的依賴,包封裝時,避免包之間的循環(huán)依賴;最小化每個包的public、protected元素的個數,最大化每個包中private元素的個數。第24頁/共51頁第二十四頁,共52頁。11.5 創(chuàng)建(chungjin)包圖1 包的劃分(hu fn)方法(1)識別底層包 把語義上接近并傾向于一起(yq
14、)變化的元素放在一個包中。例如,把具有泛化關系的一組類放在一個包中。把獨立的模型元素暫放在一個包中。(2)合并包 如果底層包數量過多,則合并為高層包。若底層包之間在概念上接近或具有較強的相關性,從作用上屬于某項大的功能,在圖上有較強的耦合度,或在分布上處于同一臺處理機,則考慮把它們合并。良好包結構的關鍵是包內高內聚,包間低耦合。第25頁/共51頁第二十五頁,共52頁。11.5 創(chuàng)建(chungjin)包圖2 消除(xioch)循環(huán)包依賴 應該盡量避免包模型中的循環(huán)依賴。如果包A以某種方式依賴包B,并且包B以某種方式依賴包A,就應該合并這兩個包,這是消除循環(huán)依賴非常有效(yuxio)的方法。但是
15、經常起作用的、更好的方法是,努力分解公共元素成為第三個包C。重新計算依賴關系,以消除循環(huán)依賴。 很多建模工具允許自動驗證包間依賴。如果一個包中的元素訪問另一個包中的元素,但兩個包間卻沒有依賴關系,那么工具產生訪問沖突列表。第26頁/共51頁第二十六頁,共52頁。11.5 創(chuàng)建(chungjin)包圖合并(hbng) 分解(fnji) 消除循環(huán)依賴的示例A,B包合并第27頁/共51頁第二十七頁,共52頁。11.6 包圖建模技術(jsh) 對成組的元素(yun s)建模 對體系結構視圖建模第28頁/共51頁第二十八頁,共52頁。11.6 對成組的元素(yun s)建模瀏覽特定體系結構視圖中的建模元
16、素,找出由在概念和語義上相互接近的元素所定義的組塊。把每一個這樣的組塊放到一個包中。對每一個包找出可以在包外訪問的元素,將這些(zhxi)元素標記為公有的,把其他的元素標記為受保護的或私有的。如果不確定時,就隱藏該元素。確定包與包之間的依賴關系,特別是引入依賴。確定包與包之間的泛化關系,以及包的多重性和重載。第29頁/共51頁第二十九頁,共52頁。11.6 對體系結構視圖(sht)建模 找出問題語境中一組有意義的體系結構視圖。找出對于可視化、詳述、構造和文檔化每個視圖的語義來說充分必要的元素(和圖),并將它們放到合適的包中。如有必要,將這些元素進一步地組合到它們自己的包中。不同視圖中的元素之間
17、通常存在依賴關系。體系結構是一個軟件系統(tǒng)的核心邏輯結構,常用的體系結構模式包括分層、MVC、管道、黑板、微內核等,而在應用軟件中,分層和MVC是最常見的兩種結構。在分層的體系結構中,最常見的劃分是表示層(present)、邏輯層(business或domain)、數據層(包括數據訪問、日記等)。如果采用分層體系結構,我們(w men)就把每一層用一個包來表示。第30頁/共51頁第三十頁,共52頁。11.7 實例(shl)圖書館管理系統(tǒng)的包圖 使用(shyng)Rational Rose繪制包圖的步驟 圖書館管理系統(tǒng)的包圖第31頁/共51頁第三十一頁,共52頁。11.7 使用(shyng)Rat
18、ional Rose繪制包圖的步驟 1. 創(chuàng)建包 2. 修改包的屬性 3. 增加包的信息(xnx) 4. 添加包之間的輸入依賴 5. 刪除包第32頁/共51頁第三十二頁,共52頁。11.7 圖書館管理系統(tǒng)的包圖 第33頁/共51頁第三十三頁,共52頁。包圖的改進(gijn)第34頁/共51頁第三十四頁,共52頁。小結(xioji) 解釋了幾種常見的包圖表示法,說明了包的可見性、依賴關系、泛化等概念;概要地說明了五種包的構造型。 說明如何尋找包、確定包之間的依賴關系,從而繪制了出一個表明軟件體系結構的包圖。 簡要(jinyo)介紹了用包圖表示系統(tǒng)體系結構的建模方法。第35頁/共51頁第三十五頁,
19、共52頁。第11講 對象(duxing)圖第36頁/共51頁第三十六頁,共52頁。11.1 什么(shn me)是對象11.2 對象(duxing)圖的概念11.3 對象(duxing)的表示11.4 鏈接的表示11.5 閱讀對象圖的方法第37頁/共51頁第三十七頁,共52頁。11.1 什么(shn me)是對象1對象(duxing)2對象(duxing)的特點:狀態(tài):對象在某一時刻,對象所有屬性值的集合。 行為:沒有一個對象是孤立存在的,對象可以被操作,也可以操作別的 對象。而行為就是一個對象根據它的狀態(tài)改變和消息傳送所采取 的行動和所做出的反應 。標識:為了將一個對象與其它所有對象區(qū)分開來
20、,我們通常會給它起一 個“標識”。 對象是一個類的實例,是具有具體屬性值的一個具體事物。所有的對象都有屬性,例如汽車有廠家、型號、顏色和價格。狗有種類、年齡、顏色和喜歡的玩具。第38頁/共51頁第三十八頁,共52頁。11.1 什么(shn me)是對象 3對象(duxing)與類的區(qū)別(1)對象是一個存在于時間和空間中的具體(jt)實體,而類是一個模型,該模型抽象出對象的“本質”:一組公共屬性和一組公共方法。 (2)類是靜態(tài)的,對象是動態(tài)的;類是一般化,對象是個性化;類是定義,對象是實例;類是抽象、對象是具體 。第39頁/共51頁第三十九頁,共52頁。楊軍:Teacher劉小紅:Student
21、教學者學習者11.2 對象(duxing)圖的概念 1.對象(duxing)圖的定義對象(duxing)圖 對象圖是描述對象及其關系的圖。對象圖可以看作類圖在某一時刻的實例。幾乎使用與類圖完全相同的標識。他們的不同點在于,對象圖顯示類的多個對象實例,而不是實際的類。由于對象存在生命周期,因此對象圖只能在系統(tǒng)某一時間段存在。第40頁/共51頁第四十頁,共52頁。11.2 對象(duxing)圖的概念2.對象(duxing)圖的作用 對象圖常用來描述業(yè)務或軟件系統(tǒng)在某一時刻對象的組成(z chn)、結構和關系。3.對象圖的組成元素 組成對象圖的元素有:對象、鏈接、注釋、約束。鏈接把多個對象連接在一
22、起構成一個對象圖。第41頁/共51頁第四十一頁,共52頁。11.3 對象(duxing)的表示 UML中,表示一個對象,主要(zhyo)是標識它的名稱、屬性。李小平:Personname = “李小平”birthday = 21 October 1983 對象(duxing)名屬性名=屬性值對象的表示(一) 對象由一個矩形表示,它包含2欄,在第一欄寫入對象名,在第二欄列出屬性名及屬性值,格式如:”屬性名=屬性值”(1)對象名:類名 對象名在前,類名在后,用冒號來連接。對象名和類名都加下劃線。第42頁/共51頁第四十二頁,共52頁。11.3 對象(duxing)的表示(2):類名 這是對匿名對象
23、的表示方法。這種格式(g shi)用于尚未給對象取名的情況,前面的冒號不能省略。:Personname = “ ”birthday = 21 October 1983 匿名(nmng)對象屬性名=屬性值李小平name = “李小平”birthday = 21 October 1983 對象的表示(二)對象的表示(三)(3)對象名省略格式,即省略掉類名。只有對象名,對象名必須加下劃線。第43頁/共51頁第四十三頁,共52頁。11.4 鏈接(lin ji)的表示 鏈接是兩個對象(duxing)間的語義關系。對象(duxing)圖中,對象(duxing)間的關系稱為鏈接。關聯(lián)是兩個類間的關系。就象對象(duxing)是類的實例一樣,鏈接是關聯(lián)的實例。鏈接分單向鏈接和雙向鏈接。1雙向鏈接(lin ji)角色:Club小王:Person小陳:Person小劉:Person隊長成員秘書雙向鏈接第44頁/共51頁第四十四頁,共52頁。11.4 鏈接(lin ji)的表示2單向(dn xin)鏈接:PersonDetails:Address源對象目標對象單向鏈接單向(dn xin)鏈接第45頁/共51頁第四十五頁,共52頁。11.4 鏈接(lin ji)的表示鏈接分為普通(ptng)鏈接和自身關聯(lián)李明:Student專
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 湖北2025年湖北省水利水電科學研究院招聘14人筆試歷年參考題庫附帶答案詳解
- 溫州2025年浙江溫州市公安局洞頭區(qū)分局第一期招聘編外用工筆試歷年參考題庫附帶答案詳解
- 家庭教育在辦公自動化技術推廣中的實踐
- 瀘州四川瀘州瀘縣氣象局見習基地招收見習人員2人筆試歷年參考題庫附帶答案詳解
- 2025年糧食儲備企業(yè)信用評級與評估合同4篇
- 楚雄云南楚雄元謀縣消防救援局招聘9人筆試歷年參考題庫附帶答案詳解
- 2025年度個人健身教練服務合同標準模板2篇
- 2025年科技園區(qū)研發(fā)樓租賃合同4篇
- 二零二五年度出渣車輛安全防護設施安裝合同4篇
- 2025年度個人樓房居間銷售合同(含家具贈送)3篇
- 北師大版 2024-2025學年四年級數學上冊典型例題系列第三單元:行程問題“拓展型”專項練習(原卷版+解析)
- 2023年譯林版英語五年級下冊Units-1-2單元測試卷-含答案
- Unit-3-Reading-and-thinking課文詳解課件-高中英語人教版必修第二冊
- 施工管理中的文檔管理方法與要求
- DL∕T 547-2020 電力系統(tǒng)光纖通信運行管理規(guī)程
- 種子輪投資協(xié)議
- 物業(yè)客服培訓課件PPT模板
- 員工工資條模板
- 執(zhí)行依據主文范文(通用4篇)
- 浙教版七年級數學下冊全冊課件
- 華為攜手深圳國際會展中心創(chuàng)建世界一流展館
評論
0/150
提交評論