《[小學教育]UML01-OOA概念ppt課件》由會員分享,可在線閱讀,更多相關(guān)《[小學教育]UML01-OOA概念ppt課件(32頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、,Click to edit Master title style,Click to edit Master text stylesgood1,Second levelgood2,Third levelgood3,Fourth levelgood4,Fifth levelgood5,版權(quán)所有:理學院,UML,Java&UML,Java&UML,教程,授課:劉松華,版權(quán)所有:江西理工大學理學院,UML,Click to edit Master text stylesgood1,Second levelgood2,Third levelgood3,Fourth levelgood4,Fifth l
2、evelgood5,對象、,UML,和,Java,統(tǒng)一建模語言(,Unified Modeling Language,),對象、UML和Java統(tǒng)一建模語言(Unified Mode,課程目錄,面向?qū)ο蠓治龊驮O(shè)計(,OOA/D,),課程目錄面向?qū)ο蠓治龊驮O(shè)計(OOA/D),課程要點,課程目標:,介紹面向?qū)ο螅?OO,)軟件開發(fā),介紹如何應(yīng)用,UML,進行,OOAD,面向?qū)ο筌浖_發(fā)包括了分析問題、設(shè)計解決方案、編碼實現(xiàn)及維護,將思維從僅僅讓程序運行轉(zhuǎn)變到面向?qū)ο蟮厮伎?我們需要一種用于,OOAD,的語言,這既是一種思考的工具,也是一種溝通的形式。因此,我們將在,OOAD,中應(yīng)用,UML,分析(
3、,analysis,),-,對問題和需求的調(diào)查研究,設(shè)計(,design,),-,滿足需求的概念上的解決方案,面向?qū)ο蠓治觯?object-oriented analysis,),-,在問題域內(nèi)發(fā)現(xiàn)和描述對象,面向?qū)ο笤O(shè)計(,object-oriented design,),-,如何定義軟件對象以及它們之間如何協(xié)作以實現(xiàn)需求,課程要點課程目標:,1.1,面向?qū)ο蠹夹g(shù),核心是,對象,什么是對象?,哪些可以認為是對象?,為什么需要使用對象?,1.1 面向?qū)ο蠹夹g(shù)核心是對象,1.2,面向?qū)ο蟪绦蛟O(shè)計語言,現(xiàn)有語言:,C+,、,Objective C,、,Objective Pascal,、,Java
4、,、,Ada,等,市場主流語言:,C+,和,Java,Java,的優(yōu)勢及問題:,WWW,和,Java,能讓小程序在任何有瀏覽器的計算機或操作系統(tǒng)上運行,不僅可以開發(fā),Web,小程序,而且可以在幾乎任何一種計算機上開發(fā),C+,的優(yōu)勢及問題:,源于,C,,傳承了在真實系統(tǒng)中完成真實任務(wù)的能力,兼容,C,現(xiàn)在擴展為一種巨大而復(fù)雜的語言,難以全面掌握并達成相當水平,1.2 面向?qū)ο蟪绦蛟O(shè)計語言現(xiàn)有語言:C+、Objecti,1.3,面向?qū)ο笤O(shè)計和,UML,在,UML,之前,有,OMT,、,Booch,等方法試圖將各種方法中使用的概念進行統(tǒng)一(無原作者參與失敗)。,94,年,Rational,軟件公司合
5、并兩種概念,設(shè)計了統(tǒng)一建模語言,UML,統(tǒng)一的內(nèi)涵:,對于開發(fā)的要求具有無縫性(軟件開發(fā)生命期),適用于各種應(yīng)用領(lǐng)域的建模,包括大型、復(fù)雜、實時、分布式、集中式或計算的、嵌入式的系統(tǒng),可應(yīng)用于運行不同的編程實現(xiàn)語言和開發(fā)平臺,不是對開發(fā)過程細節(jié)進行描述的工具,在構(gòu)建,UML,模型的過程中,特別注意揭示和表達各種概念之間的內(nèi)在聯(lián)系并試圖用多種適用于已知和未知情況的辦法去把握建模中的概念,1.3 面向?qū)ο笤O(shè)計和UML在UML之前,有OMT、Booc,1.3,面向?qū)ο笤O(shè)計和,UML,UML,的目標:,使其成為一個通用的建模語言,可供所有建模者使用,使其能很好地支持設(shè)計工作,如封裝、分塊、記錄模型構(gòu)造
6、思路,使其能準確表達當前軟件開發(fā)中的熱點問題,比如大規(guī)模、分布、并發(fā)、方式和團體開發(fā)等,最終目標是盡可能簡單的同時能夠?qū)嶋H需要簡歷的系統(tǒng)的各個方面建模,1.3 面向?qū)ο笤O(shè)計和UMLUML的目標:,附錄,4,:建議閱讀參考書,UML Distilled,UML,精化,Applying UML and Patterns,UML,與模式應(yīng)用,The Unified Modeling Language User Guide,UML,用戶指南,The Unified Modeling Language Reference Manual,UML,參考手冊,Design Patterns:Elements
7、 of Reuseable Object-Oriented Software,設(shè)計模式,可復(fù)用面向?qū)ο筌浖幕A(chǔ),Agile Software Development-Principles,Patterns,and Practices,敏捷軟件開發(fā),原則、模式與實踐,Analysis Patterns:Reusable Object Models,分析模式,可復(fù)用對象模型,附錄4:建議閱讀參考書UML Distilled,對象的精髓,統(tǒng)一建模語言(,Unified Modeling Language,),對象的精髓統(tǒng)一建模語言(Unified Modeling L,2.1,基本概念,對象(,O
8、bject,),對象是封裝了狀態(tài)和行為的統(tǒng)一體,狀態(tài)主要表現(xiàn)為屬性和關(guān)聯(lián),行為主要表現(xiàn)為操作,方法和狀態(tài)機,實例,MS12,醫(yī)療器械專用溫度傳感器,皮膚傳感器,生命監(jiān)護儀,培養(yǎng)箱,透析設(shè)備,呼吸器等醫(yī)療器械,結(jié)論,幾乎所有的東西都可以在軟件中通過建模成為對象,從對象的職責角度來思考對象比從它的屬性角度思考更有用,2.1 基本概念對象(Object),例子:,例子:,對象具有狀態(tài):,一個對象的狀態(tài)是這個對象可以存在的一個可能的環(huán)境,一個對象的狀態(tài)通常會發(fā)生多次改變,對象具有狀態(tài):一個對象的狀態(tài)是這個對象可以存在的一個可能的環(huán),對象具有行為:,行為決定了一個對象如何起作用以及和其它對象相互作用,對
9、象的可見行為是被一系列所響應(yīng)的消息模型化了,對象具有行為:行為決定了一個對象如何起作用以及和其它對象相互,每個對象都有自己的標識,每個對象有唯一的標識,即使它和另外一個對象具有完全一致的狀態(tài),每個對象都有自己的標識每個對象有唯一的標識,即使它和另外一個,2.1,基本概念,類(,Class,),類是一組對象的描述,這一組對象有共同的屬性和行為,類的定義描述了所有對象的屬性,也描述了實現(xiàn)該類對象的行為的類的方法,結(jié)論,類的描述包括對類的單個對象的狀態(tài)進行訪問和改變的方式,堅持以對象的觀點思考,2.1 基本概念類(Class),2.2,面向?qū)ο笙到y(tǒng),面向?qū)ο筌浖到y(tǒng)具備,6,大特性:,利用對象進行抽
10、象,抽象使得復(fù)雜的、真實世界的情況可以通過簡單的模型表示,如:對顏色的一種抽象是,RGB,模型,結(jié)論:什么是抽象?,定義一個觀點的邊界,區(qū)別于其它實體最本質(zhì)的特征,2.2 面向?qū)ο笙到y(tǒng)面向?qū)ο筌浖到y(tǒng)具備6大特性:,例子:抽象,例子:抽象,2.2,面向?qū)ο笙到y(tǒng),封裝的類,將抽象出來的狀態(tài)和行為結(jié)合在一個封裝的整體里,如:,Java,中通過類定義里面定義屬性和方法,強制封裝,結(jié)論:什么是封裝?,向調(diào)用者隱藏了實現(xiàn),調(diào)用者依賴接口,2.2 面向?qū)ο笙到y(tǒng)封裝的類,2.2,面向?qū)ο笙到y(tǒng),通過消息進行通信,同一類的不同對象、不同類的對象之間需要通過發(fā)送消息給其它對象,傳遞消息或請求動作,互操作得到處理,
11、2.2 面向?qū)ο笙到y(tǒng)通過消息進行通信,2.2,面向?qū)ο笙到y(tǒng),對象生命周期,對象在需要時被創(chuàng)建并初始化,繼而執(zhí)行功能,最后被銷毀,2.2 面向?qū)ο笙到y(tǒng)對象生命周期,2.2,面向?qū)ο笙到y(tǒng),類層次結(jié)構(gòu),關(guān)聯(lián)、聚合(組合)、繼承,2.2 面向?qū)ο笙到y(tǒng)類層次結(jié)構(gòu),2.2,面向?qū)ο笙到y(tǒng),多態(tài)性,特殊類實現(xiàn)與通用類有差別的行為,但是行為的名字相同,結(jié)論:什么是多態(tài)?,使用同一接口隱藏不同的實現(xiàn),2.2 面向?qū)ο笙到y(tǒng)多態(tài)性,例子:多態(tài),例子:多態(tài),2.3 UML,類表示法,類的,UML,表示法是由三個水平部分組成的矩形。頂端部分用來填寫類的名字,中間部分用來填寫屬性,底端部分用來填寫類的操作(方法)。,2.3
12、 UML類表示法類的UML表示法是由三個水平部分組成的,2.3 UML,類表示法,關(guān)聯(lián)通過類之間的連線表示,通常標注關(guān)聯(lián)名稱,關(guān)聯(lián)的名稱應(yīng)該反映關(guān)系的用途,并且是一個動詞;該名稱可以忽略,尤其是使用角色名的時候。,應(yīng)該盡量避免使用“具有”和“包含”這樣的名稱,因為它們不包含說明類之間具有什么關(guān)系的信息。,2.3 UML類表示法關(guān)聯(lián)通過類之間的連線表示,通常標注關(guān)聯(lián),2.3 UML,類表示法,繼承的表示方法是一個有三角形箭頭的連線,箭頭指向更為通用的類(超類),2.3 UML類表示法繼承的表示方法是一個有三角形箭頭的連線,2.3 UML,類表示法,聚合的表示方法是一個有空心菱形的連線,菱形指向整
13、體類,1,計算機,主機,顯示器,鍵盤,鼠標,一個空心菱形連接到聚集體(整體)一側(cè)的關(guān)聯(lián)路徑端,2.3 UML類表示法聚合的表示方法是一個有空心菱形的連線,,2.3 UML,類表示法,組成的表示方法是一個有實心菱形的連線,菱形指向整體類,組成是一種整體和部分所屬更強的聚合關(guān)系,每個部分只能屬于一個整體,沒有整體,部分也沒有存在的價值,1,1,4,桌 子,桌 腿,桌 面,一個實心菱形連接到關(guān)聯(lián)路徑端(在整體一側(cè),),2.3 UML類表示法組成的表示方法是一個有實心菱形的連線,,2.3,結(jié)論:類層次結(jié)構(gòu),最簡單的層次結(jié)構(gòu)是關(guān)聯(lián)(涉及相互獨立的類),相互不獨立的類之間有兩種層次結(jié)構(gòu):,第一種是將一個類
14、作為另一個類的一部分,即整體,/,部分,整體,/,部分通用術(shù)語為聚合,在聚合中,部分一方的對象可以來去自由。如果對象是整體的不可或缺的部分,則稱為組合,第二種特征存在“是關(guān)系”,即泛化,/,特殊化,泛化,/,特殊化主要機制為繼承,Java,不支持多繼承,因此使用接口來替代,2.3 結(jié)論:類層次結(jié)構(gòu)最簡單的層次結(jié)構(gòu)是關(guān)聯(lián)(涉及相互獨立,實例,實例,實例說明,Book,和,Person,是兩個通用的超類,Book,由,Page,組成,組合關(guān)系表明書可以從一頁到任意頁,LibraryBook,類從,Book,類派生,可能有一些特殊屬性,Reader,是,Person,類的特殊情況,是要使用,Libr
15、ary,的,Person,Borrowing,類用于實現(xiàn)讀者和圖書館的書之間的,borrowing,關(guān)聯(lián),虛線表示一個簡單的,LibraryBook,類和,Reader,類之間的雙向連結(jié),用類實現(xiàn)關(guān)聯(lián)表示兩者之間的連結(jié)通過,Borrowing,類來管理,最后一個,LibraryBook,對象是一個,Book,對象,一個,Reader,對象是一個,Person,對象,能通過繼承的“是測試”,實例說明Book和Person是兩個通用的超類,2.4,其它面向?qū)ο蟾拍?抽象類:不能實例化的類,具體類:完全指明其實現(xiàn)方式并能夠?qū)嵗念?可見性:一個類看到和使用另一個類的資源的能力,公有可見性(,public,),私有可見性(,private,),保護可見性(,protected,),友類可見性(,friend,),2.4 其它面向?qū)ο蟾拍畛橄箢悾翰荒軐嵗念?