第六題 包圖 html
重要概念:編程
一、包圖(package Diagram)架構
由若干個包以及包之間的關係組成。包是一種分組機制,其將一些相關的類集合爲一個包,造成高內聚,低耦合的類集合,能夠說,一個包至關於一個子系統。mvc
2、簡要介紹:dom
包圖是一種維護和描述系統整體結構的模型的重要建模工具,經過對包中各個包以及包之間關係的描述,展示出系統的模塊與模塊之間的依賴關係。在面向對象軟件開發的視角中,類顯然是構建整個系統的基本構造塊。可是對於龐大的應用系統而言,其包含的類將是成百上千,再加上其間「阡陌交縱」的關聯關係、多重性等,必然是大大超出了人們能夠處理的複雜度。這也就是引入了「包」這種分組事物構造塊。模塊化
包的名字:工具
每一個包都必須有一個區別於其餘包的名字。模型包的名字是一個字符串,能夠分爲簡單名和路徑名。spa
簡單名:指包僅含一個簡單的名稱。.net
路徑名:指以包位於的外圍包的名字做爲前綴。設計
三、包圖的做用:
包圖能夠描述需求,設計的高階概況;包圖經過合理規劃自身功能反應系統的高層架構,在邏輯上將系統進行模塊化分解;包圖最終是組織源碼的方式。
一個包圖能夠由任何一種UML圖組成,一般是UML用例圖或是UML類圖。
包被描述成文件夾,能夠用於UML任何一種的圖上。
四、UML之間的關係:
依賴:用帶有箭頭的虛線表示,箭頭指向被依賴的包
五、UML包圖使用說明
對成組元素建模
◆每一個包都應該是在概念、語義上相互接近的元素組成;
◆對每一個包找出應標記爲公共的元素,但應儘量地少;
◆通常使用默認的《use》構造型,在映射到編程時考慮明確《import》構造型;
◆考慮採用泛化來對特殊包進行建模。
◆在表示這種模型時,注意只標明對每一個包都起核心做用的元素;另外也能夠標識每一個包的文檔標記值,以使其更加清晰
對體系結構建模
◆對體系結構進行建模(程序分層),是UML包圖更有意義的一個用途。體系結構是一個軟件系統的核心邏輯結構
◆經常使用的體系結構模式包括分層、MVC、管道、黑板、微內核等,而在應用軟件中,分層和MVC
五、信息系統邏輯架構中常見的層
UI、Application、Domain、Business Infrastructure、Technical Service、Foundation
六、MVC架構
MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟件設計典範,用於組織代碼用一種業務邏輯和數據顯示分離的方法,這個方法的假設前提是若是業務邏輯被彙集到一個部件裏面,並且界面和用戶圍繞數據的交互能被改進和個性化定製而不須要從新編寫業務邏輯MVC被獨特的發展起來用於映射傳統的輸入、處理和輸出功能在一個邏輯的圖形化用戶界面的結構中。
七、MVC分層介紹
MVC是三個單詞的首字母縮寫,它們是Model(模型)、View(視圖)和Controller(控制)。
這個模式認爲,程序不論簡單或複雜,從結構上看,均可以分紅三層。
1)最上面的一層,是直接面向最終用戶的"視圖層"(View)。它是提供給用戶的操做界面,是程序的外殼。
2)最底下的一層,是核心的"數據層"(Model),也就是程序須要操做的數據或信息。
3)中間的一層,就是"控制層"(Controller),它負責根據用戶從"視圖層"輸入的指令,選取"數據層"中的數據,而後對其進行相應的操做,產生最終結果。
繪製要點:
具體方法:http://blog.csdn.net/cjr15233661143/article/details/8452603
http://blog.csdn.net/xujiaolf/article/details/8557686
http://www.ruanyifeng.com/blog/2007/11/mvc.html (MVC架構介紹)
網上對包圖的介紹不如其餘圖解釋的詳細,找了幾篇能夠做爲參考,不過題中要求的是MVC架構,因此瞭解包的簡單概念,再看最後一篇中的對MVC的簡介就能夠畫圖啦!
注意事項:
我想實現這一個場景,請使用MVC模式生成一個層次架構,請你用一個包圖來表示這個層次架構,並把場景裏面的元素填到包裏面去。
有3個包,一個叫M(模型),一個叫V(視圖),一個叫C(控制器)。
把每一個包裏面涉及到的東西添加到包裏面。
一、包圖的M裏面的元素全都來自領域模型裏面。
二、臨時變量都屬於控制層,動做的命名規則是在動做後面加個Action或者Controller,一個用例就一個控制器。
三、用例中出現的界面都屬於V
對一個用例畫包圖就是把這個用例的領域模型裏面的元素填到M(domain layer)和C(controller)包裏面,而後給界面起個名字,而後寫在V(UI)包裏面便可。(老師沒說要畫包之間的關係,他本身畫的圖也沒有畫關係,因此乾脆仍是不要畫了吧)
若是有外部支持資源,寫在foundation包裏面就能夠了。
試題答案: