UML 類圖簡介 UML 對很多人來說應該不是一個陌生的概念,這一兩年來,UML 被大家越來越多的討論著。本來 UML 跟我這個主題似乎并不能扯上多大的關系(它是語言無關的,甚至可以說其本身就是一種語言——用于交流的)。我在此談到它有兩個目的: 1. UML 是針對面向?qū)ο筌浖_發(fā)的,而 C++正是這樣的一種語言 2. UML 在設計中被越來越多的使用著,而下一篇雜談準備討論設計模式,如果不了解 UML,那么無法進行下去 UML,全稱:Unified Modeling Language,其目的是為了對軟件密集型的制品進行可視化、詳述、構(gòu)造和文檔化的圖形語言。UML 是依據(jù)許多前人的思想總結(jié)出的成果,1997 年被 OMG 通過并成為標準(所以在《設計模式》書中如果你看到與標準不一樣的地方,不要奇怪,那本書是 95 年的)。關于 UML 的歷史和更詳細的描述,可以參考《UML 參考手冊》。UML 主要由一系列視圖組成,其中包括靜態(tài)視圖(Static vi ew),用例視圖(Use case view)活動視圖(Acti vity view)等,不同的圖用處自然也不一樣,而對開發(fā)人員來講(或者說為我的下一篇來說),更重要的應該是靜態(tài)視圖中的類圖(class diagram)和交互視圖(Interaction view)中的順序圖(Sequence diagram),請注意 view 和 diagram 的區(qū)別。 類圖 靜態(tài)視圖說明了對象的結(jié)構(gòu),其中最常用的就是類圖,類圖可以幫助我們更直觀的了解一個系統(tǒng)的體系結(jié)構(gòu),有時侯,描述系統(tǒng)快照的對象圖(Object diagram)也是很有用的。在這里,我們主要介紹類圖,下面的圖就是一個簡單的類圖: 在類圖中,類由矩形框來表示,如上圖中,定義了 4 個類,分別為 Base、A、B、 C,類之間的關系通過各種線條和其他符號來表示,在上圖中,空心的三角表示繼承關系,在 UML 的術(shù)語中,這種關系被稱為泛化(Generalization),所以上面的類用等價代碼表示為: class Base{…}; class A:public Base{…}; class B:public Base{…}; class C:public Base{…}; 我們再看下一幅圖: 這幅圖與上幅幾乎沒有什么區(qū)別,唯一的不同就是 Base 類中增加了成員,一個私有的 integer _x(UML 術(shù)語為 property)和一個公有的 fun()的函數(shù)(method),是否需要這些類的內(nèi)部細節(jié) UML 本身并沒有限制,完全取決于你自己如何使用, UML 的用處在于幫助你了解系統(tǒng),所以只要你自己覺得足夠清楚,那么夠了,不要再復雜了。 接著看第三幅圖: 上面圖中的箭頭表示一種關系,箭頭另一邊有一個菱形(空心)表示聚合(aggregation),聚合的意義表示 has-a 關系,其等價代碼如下: class A{…}; class B{ A* theA;…}; 聚合是一種相對松散的關系,聚合類 B 不需要對被聚合的類 A 負責。 下面的圖: 這幅圖與上面的唯一區(qū)別是菱形為實心的,它代表了一種更為堅固的關系——組合(composition)。組合表示的關系也是 has-a,不過在這里,A 的生命期受 B 控制,通常情況,等價代碼如下: class A{…}; class B{A theA;…}; 即 A 會隨著 B 的創(chuàng)建而創(chuàng)建,隨 B 的消亡而消亡。 下圖: 這里 B 與 A 的關系只是一種依賴關系,這種關系表明,如果類 A 被修改,那么類 B 會受到影響,一個簡單的例子就是: class A{…}; class B{fun(A params);…}; 常用的關系就是我們上面用的這些,通過這些關系和類表示的類圖,我們可以用圖形化的方式描述一個系統(tǒng)的設計部分,當你習慣使用 UML 后,你會發(fā)現(xiàn),這往往比你告訴同伴某某類從某某類派生,派生類又和某某類具有什么關系容易的多。 順序圖: UML 中另外一個常用的圖形就是交互視圖中的順序圖,在以往的過程化語言中,我們通常使用流程圖來描述一個函數(shù)(系統(tǒng))是如何工作的,而在面向?qū)ο蟮南到y(tǒng)中,這顯然是不可行的,而順序圖正是來解決這個問題的。 假設有如下的偽代碼: class circle { public: void fillcolor() { // ... }; void draw() { fillcolor(); }; }; class window { public: void drawcircle() { _circle.draw(); }; private: circle _circle; }; 對于下面的調(diào)用: window wnd; wnd.drawcircle(); 對應的順序圖如下: 圖中上方的方塊表示參與的對象,垂直的虛線表示對象的生命線,方框表示激活,其中箭頭表示了一個調(diào)用消息(也可以有回送 return),如果是異步的消息,則用半箭頭表示,其中 draw 表示了一個自調(diào)用(self call) 至此,UML 中最常用的(從開發(fā)人員的角度),當然 UML 的內(nèi)容遠遠不只這些,這里的介紹只是一些簡單的概括,并且 UML 本身也在不斷的發(fā)展之中,無論怎樣,我覺得 UML 會越來越多的深入我們的開發(fā)過程中,特別是對下一篇我們要介紹的設計模式而言,類圖是主要的描述工具(到那個時候你會體會到 UML 描述的優(yōu)越)。 如果你看過《設計模式》著本書,你會發(fā)現(xiàn)與我上面所描述的有一些細微的不同,不要緊張,《設計模式》是 GOF95 年的作品,那時候 UML 還沒有形成,而且,其中也明確那是 OMT 方法(Jim Rumbaugh 在通用電氣發(fā)表的建模技術(shù)——Object Modeling Technique)和 Booch 方法。
創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務領域包括:成都網(wǎng)站制作、網(wǎng)站建設、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務,滿足客戶于互聯(lián)網(wǎng)時代的百色網(wǎng)站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡建設合作伙伴!
如果會編程序而不會畫流程圖,建議先把自己的程序研究一遍。
若是畫主程序流程圖,那就需看懂主函數(shù)的程序,按照main()函數(shù)中的具體書寫過程來畫,例如:
程序開始---定義變量---初始化變量---使用選擇或者循環(huán)或者順序結(jié)構(gòu)---調(diào)用某一個子函數(shù)(可以沒有)---程序結(jié)束
以上是最簡單的程序流程圖畫法。
若你是畫某一算法或是某一模塊的流程圖,就要把相應的算法或是模塊看懂。分析算法或是模塊的具體走法,根據(jù)此走法就可以畫出對應的流程圖。
如果你是初學者,想根據(jù)流程圖的畫法而去嘗試編程,建議就一定要研究清楚每一個使用到的算法,讀懂題目再開始編程。
下面是使VISO畫流程圖的幾個要點:
1、選擇下載一個合適版本的VISO
2、程序開始結(jié)束用膠囊
3、分頁用圓圈
4、輸入用平行四邊形
5、語句用方塊
6、判斷用菱形
7、打印用波浪
畫主程序流程圖,看懂主函數(shù)的程序,按照main()函數(shù)中的具體書寫過程來畫,例如:程序開始、定義變量、初始化變量、使用選擇或者循環(huán)或者順序結(jié)構(gòu)、調(diào)用某一個子函數(shù)、(可以沒有)程序結(jié)束。
初學C語言的同學應該首先了解C語言關鍵的核心概念(結(jié)構(gòu)化、WBR三個執(zhí)行流程、優(yōu)先級、指針、文檔、共用體、函數(shù)、作用域、WBR重載等
),WBR只有弄明白了這些才能在今后的學習中游刃有余的把握C語言的精髓WBR。這幾個概念就像邏輯線相同,把整個C語言的體系貫穿起來,WBR給人一種“結(jié)構(gòu)化”的思想體系。WBR下面我簡要談一下這幾個核心概念。
1、從宏觀角度來看,結(jié)構(gòu)化是C語言的編程思想基礎,WBR就是說C語言每一個功能模塊就是個結(jié)構(gòu),WBR每一個結(jié)構(gòu)實現(xiàn)一個運算或一個算法,這個結(jié)構(gòu)就用大括號表示“{
}”,大括號里面的就是算法。尤其注意的是大括號的“}”WBR括在那里,就決定在哪里結(jié)束算法功能。WBR這些是初學者經(jīng)常犯的錯誤,往往會把算法功能的結(jié)束點弄錯。
2、
三個執(zhí)行流程就是順序流程、條件流程、循環(huán)流程。WBR三個流程都是電腦通用的執(zhí)行流程,是必須了解的流程,WBR每一個算法都基于這三個流程執(zhí)行順序。
3、
優(yōu)先級是對多個函數(shù)并列時候優(yōu)先算法的特權(quán),WBR沒有注意優(yōu)先級的順序就會把算法出錯,這些優(yōu)先級是必須記住的。
4、
指針是C語言的重要特點,是對運算速度加快運算的重要精髓。WBR他是對數(shù)據(jù)地址的操作,而不是對數(shù)據(jù)的操作。
5、文檔和共用體是很簡單的概念,不用多說了。WBR文檔顧名思義和日常概念相同,WBR學過數(shù)據(jù)軟件的都對共用體了解不是太難。
6、從微觀角度來看,函數(shù)是C語言的驅(qū)動機制,WBR任何的語句都由函數(shù)驅(qū)動來實現(xiàn)的。WBR記住函數(shù)命令和相關的配置參數(shù),就能好好的利用C的優(yōu)勢。WBR注意的是,函數(shù)不能記錯,不然您將得出錯的結(jié)果。WBR假如能學會調(diào)試,那就會更深一層了解函數(shù)功能的作用。
7、作用域就像使用期限相同,說明從那里到那里所起的作用,WBR在這之外的就不起作用了(過期的東西就不值錢相同)。WBR把握好作用域的使用方式,就能明確函數(shù)的關系,WBR不會在巨大的函數(shù)名里面迷失方向。
8、重載就是為了方便用戶,WBR使用類似于調(diào)用的機制給用戶減少寫入時間的功能。WBR就像查字典相同,您不懂一個字,就要去查字典(WBR相當于調(diào)用別的工具來實現(xiàn)您要做的事),WBR而查字典是您已學會的東西,就能夠做這件事了。
學習C語言從大體上了解還不夠,要把各種原理在腦海里模擬一遍,WBR實現(xiàn)把電腦C的功能在人腦里運作,就能從宏觀上把握C的步驟。
分享題目:umlc語言函數(shù)流程圖 c++ uml
文章來源:http://jinyejixie.com/article46/dopsdeg.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供服務器托管、品牌網(wǎng)站設計、網(wǎng)站內(nèi)鏈、響應式網(wǎng)站、搜索引擎優(yōu)化、外貿(mào)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)