第1章上升到面向?qū)ο笳n件_第1頁
第1章上升到面向?qū)ο笳n件_第2頁
第1章上升到面向?qū)ο笳n件_第3頁
第1章上升到面向?qū)ο笳n件_第4頁
第1章上升到面向?qū)ο笳n件_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

UML理論及實踐

第1章上升到面向?qū)ο驛nApproachtotheObjectOrientation內(nèi)容安排課程介紹對象技術(shù)對象和類對象技術(shù)相關(guān)原則建立面向?qū)ο笏季S-4-內(nèi)容安排課程介紹對象技術(shù)對象和類對象技術(shù)相關(guān)原則建立面向?qū)ο笏季S-5-課程目標(biāo)三大目標(biāo):OO:建立對象的思維方式,對面向?qū)ο笏枷牒屠碚撚羞M一步的理解UML:能夠熟練地使用UML表達(dá)面向?qū)ο蟮脑O(shè)計思想Model:運用對象技術(shù)的一般原則和模式進行應(yīng)用系統(tǒng)的分析和設(shè)計建模-6-課程目標(biāo)(續(xù))三大目標(biāo)之間的關(guān)系Model:軟件的抽象表示OO:建立模型的理論支撐UML:模型的表示工具和手段-7-關(guān)于本課程本課程是軟件工程類專業(yè)課程,側(cè)重于工程實踐能力的培養(yǎng),強調(diào)分析和設(shè)計技能,重點在建模方法的應(yīng)用過程驅(qū)動:圍繞分析和設(shè)計過程,關(guān)注各階段建模技術(shù)的應(yīng)用案例驅(qū)動:圍繞具體案例,講解面向?qū)ο蠓治龊驮O(shè)計的思維方式和解決問題的方法課程重點不是理論或知識,而是樹立對象思維方式,并培養(yǎng)運用UML來表達(dá)這種思維方式的技能,從而完成面向?qū)ο蟮姆治龊驮O(shè)計-8-開設(shè)本課程的必要性我們將來從事軟件行業(yè)面向?qū)ο笫亲钪髁鞯能浖_發(fā)思想UML是最主流的建模方法UMLOOAD軟件工程師的“飯碗”對于今天的軟件開發(fā)者來說,UML是他們的面包和黃油-9-本課程的基礎(chǔ)和基本定位基礎(chǔ)知識儲備:軟件工程、面向?qū)ο蟪绦蛟O(shè)計實踐儲備:了解工程項目的特點,最好有實際軟件項目的開發(fā)背景基本定位在軟件相關(guān)行業(yè),能夠利用UML進行面向?qū)ο蟮姆治?、設(shè)計等建模工作能利用建模工具Rational等完成軟件項目的建模。-10-關(guān)于教材內(nèi)容1基礎(chǔ)(3):

上升到面向?qū)ο?基礎(chǔ)(3):

可視化建模技術(shù)3起源(2):

業(yè)務(wù)建模4需求(4):

用例建模5分析(3):

用例分析6設(shè)計基礎(chǔ)(3):

面向?qū)ο笤O(shè)計原則7設(shè)計基礎(chǔ)(3):

面向?qū)ο笤O(shè)計模式8設(shè)計(3):

架構(gòu)設(shè)計9設(shè)計(3):

構(gòu)件設(shè)計10實現(xiàn)(3):

正向工程逆向工程

-11-學(xué)習(xí)路線圖OOUMLOOPDP…Case-Study…學(xué)習(xí)路線圖……

……

……

……12345678910-12-考核方式考勤、平時表現(xiàn)(20%)實驗(20%)參照教材內(nèi)容,圍繞一個完整案例,完成四次實驗根據(jù)實驗完成情況和實驗報告質(zhì)量評分考試(60%)課程結(jié)束后安排考試開卷-13-內(nèi)容安排課程介紹對象技術(shù)對象和類對象技術(shù)相關(guān)原則建立面向?qū)ο笏季S-14-什么是面向?qū)ο蠹夹g(shù)?是一種看待計算機軟件系統(tǒng)的觀點是一種系統(tǒng)分析和設(shè)計的思想是一種編程方法是一組設(shè)計原則和模式…………-15-面向?qū)ο蠹夹g(shù)面向?qū)ο蠹夹g(shù)是一系列指導(dǎo)軟件構(gòu)造的原則(如抽象、封裝、多態(tài)等)通過語言、數(shù)據(jù)庫和其它工具來支持這些原則面向?qū)ο蠹夹g(shù)=類+對象+抽象+封裝+繼承+多態(tài)+基于消息的通信….-16-對象技術(shù)的發(fā)展歷史Simula基本思想19671972Smalltalk實用化C++

商業(yè)化1980s1995Java

編程方法的成熟UML

統(tǒng)一方法學(xué)19972011+構(gòu)件、

服務(wù)、

云計算???-17-對象技術(shù)優(yōu)勢-1溝通順應(yīng)人類思維習(xí)慣,讓軟件開發(fā)人員在解空間(計算機環(huán)境)中直接模擬問題空間(現(xiàn)實世界)中的對象及其行為PUSHEBXMOVEBX,EDXMOVEDX,EAXSHREDX,16DIVBXAHare.Run;ALion.Catch(AHare);ALion.Kill(AHare);AHare.Dead;ALion.Eat;ALion.Happy;在計算機中模擬現(xiàn)實世界的事和物-18-對象技術(shù)利益-2穩(wěn)定較小的需求變化不會導(dǎo)致系統(tǒng)結(jié)構(gòu)大的改變當(dāng)需求變化時……功能:最易變數(shù)據(jù):較易變對象:較穩(wěn)定穩(wěn)定性增加用穩(wěn)定的元素把不穩(wěn)定的元素封裝起來-19-對象技術(shù)利益-3復(fù)用—提高質(zhì)量,減少成本代碼重用:基于類庫、框架等設(shè)計重用:基于抽象、多態(tài)、模式能提高質(zhì)量,減少由于編制新的系統(tǒng)代碼而產(chǎn)生的成本軟件開發(fā)組越大,組中每個成員的生產(chǎn)率就越低--PhilippeKahn,Borland公司創(chuàng)始人構(gòu)造大型軟件不能靠堆人-20-內(nèi)容安排課程介紹對象技術(shù)對象和類對象技術(shù)相關(guān)原則建立面向?qū)ο笏季S-21-對象(Object)對象(Object)是一個實體、一件事、一個名詞,可以獲得的某種東西,是可以進行標(biāo)識的任何事物可以是物理存在的也可能是一個概念或軟件中的實體-22-UML中的對象命名對象匿名對象僅有對象名的對象類類是對一系列對象的抽象描述,這些對象共享相同的屬性、操作、關(guān)系和語義一個具體的對象是該類的一個實例抽象過程強調(diào)相關(guān)特征而忽略其它的特征類抽象的過程就是將具體對象的特征和行為進行參數(shù)化,分別用類的屬性(attribute)和操作(operation)來表示-23--24-屬性屬性(attribute)是類的特征或特性屬性的值是某一特定對象的屬性值在類中屬性名必須是唯一的每一個類的實例都有為這個類定義的所有屬性的值銀行帳戶類的屬性帳號名銀行名稱擁有者金額Mary的銀行帳戶屬性值12345678FirstNationalBankMarySmith$1024.48-25-屬性取決于視點從銷售人員的角度型號價格顏色里程數(shù)一輛汽車具有的屬性:從維修人員的角度馬達(dá)類型傳動類型維修記錄-26-操作操作(operation)訪問或修改對象的屬性值對象的行為是由為此對象定義的一系列操作決定的一個類可能同時存在多個實例,也可能在某一時刻沒有實例一個類的所有實例都可以使用在這個類中定義的操作從銷售人員的角度處理客戶定單準(zhǔn)備銷售合同加入清單從清單中刪除一輛汽車具有的操作:從維修人員的角度測試剎車修理剎車轉(zhuǎn)動輪胎檢查馬達(dá)速度操作取決于視點-28-UML中的類屬性操作-29-類和對象的關(guān)系每一個對象都是某一個類的實例每一個類在某一時刻都有零個或更多的實例類是靜態(tài)的;它們的存在、語義和關(guān)系在執(zhí)行前就已經(jīng)定義好了對象是動態(tài)的;它們在程序執(zhí)行時可以被創(chuàng)建和刪除-30-內(nèi)容安排課程介紹對象技術(shù)對象和類對象技術(shù)相關(guān)原則建立面向?qū)ο笏季S-31-面向?qū)ο蠹夹g(shù)的相關(guān)原則對象技術(shù)基本原則抽象(Abstraction)封裝(Encapsulation)泛化(Generalization)多態(tài)(Polymorphism)……-32-抽象和封裝抽象是事物區(qū)別于其它事物的本質(zhì)特征抽象的過程取決于使用者的目的,它應(yīng)該包括使用者所感興趣的那些職責(zé),而忽略掉其它不相關(guān)的部分封裝是指對象對其客戶隱藏具體的實現(xiàn),是軟件模塊化思想的體現(xiàn)通過封裝實現(xiàn)信息隱藏和數(shù)據(jù)抽象泛化泛化是類與類之間一種關(guān)系通過這種關(guān)系一個類可以共享另外一個或多個類的結(jié)構(gòu)和行為為了實現(xiàn)泛化關(guān)系,采用繼承機制一個子類(subclass)繼承一個或多個父類(superclass),從而實現(xiàn)了不同的抽象層次通過這種關(guān)系可以很容易地復(fù)用已經(jīng)存在的數(shù)據(jù)和代碼,并實現(xiàn)多態(tài)處理根據(jù)父類的個數(shù)不同,存在著單一繼承和多重繼承兩種情況-33-多態(tài)多態(tài)是在同一外表(接口)下表現(xiàn)出多種行為的能力是對象技術(shù)的根本特征對象技術(shù)正是利用多態(tài)提供的動態(tài)行為特征,來封裝變化,適應(yīng)變更,以達(dá)到系統(tǒng)的穩(wěn)定-34--35-應(yīng)用多態(tài)性假設(shè)我們有一個數(shù)組sharr,里面放著一排Shape,但是不知道哪些是Rectangle,哪些是Circle。利用多態(tài)性,我們可以:

for(inti=0;i<sharr.length;++i){ Shapeshape=(Shape)sharr[i];

shape.draw(); }遍歷整個數(shù)組的過程中,各個Shape自己知道應(yīng)當(dāng)如何在畫布上繪制自己。shape.draw()這同一行代碼在shape指向不同的對象時表現(xiàn)出不同的行為,這就是所謂多態(tài)性-36-內(nèi)容安排課程介紹對象技術(shù)對象和類對象技術(shù)相關(guān)原則建立面向?qū)ο笏季S-37-實例1:OO觀點的個人簡介tanHuobin是Teacher類的一個實例,該實例是基于beiHangUniversity對象的softwareSchool的成員對象tanHuobin教授ooTechnology課程類GraduateStudent的所有實例都可以通過Course類的對象ooTechnology建立關(guān)聯(lián)。GraduateStudent的所有實例可以向tanHuobin發(fā)送phone消息或email消息-38-OO個人簡介的UML表示-39-實例2:對象思維分析問題昨天我的一個朋友結(jié)婚了-40-問題分析-1A.這里面有什么東西?月老,小伙,姑娘,戀人,玫瑰花B.每個東西看上去是什么樣的?月老,看上去有些年紀(jì)了,挺熱心小伙,看上去很強壯,很誠實姑娘,看上去好漂亮,還很溫柔戀人,看上去很黏糊,最終結(jié)婚了玫瑰花,火紅火紅的,難怪姑娘動情了-41-問題分析-2C.每個東西能做什么?月老:牽線搭橋,介紹兩人認(rèn)識小伙:追求獻(xiàn)花,表達(dá)愛意姑娘:仰慕傾情,以身相許戀人:拍拖,…,結(jié)婚玫瑰花:令姑娘心動,傳情示愛-42-問題分析-3D.這些東西都呆在什么地方?月老:婚介所,交友網(wǎng)站小伙:軟件園姑娘:人民醫(yī)院戀人:情侶路,電影院,…玫瑰花:花店里,小伙手中,姑娘手中-43-問題分析-4E.這些東西之間有什么關(guān)系?關(guān)系月老小伙姑娘戀人玫瑰月老干媽舅媽撮合者沒關(guān)系小伙干兒子男友老公男主角買送主姑娘外甥女女友太太女主角受主戀人被撮合組成組成使用者玫瑰沒關(guān)系信物接受禮物信物-44-問題分析-5F.這些東西是怎么成事的?月老牽線搭橋,介紹小伙和姑娘認(rèn)識姑娘和小伙一見鐘情,成為一對戀人一對戀人開始拍拖小伙追求獻(xiàn)花,表達(dá)對姑娘的愛意姑娘收到999火紅玫瑰,激動得頭暈?zāi)垦P』镎嫘那蠡椋媚镆陨硐嘣S一對戀人終于走入婚姻殿堂-45-—上升到面向?qū)ο蟆?/p>

用面向?qū)ο笥^點觀看事物-46-用對象觀點認(rèn)識事物A.這里面有什么東西?

類與對象B.每個東西看上去是什么樣的?

類的屬性C.每個東西能做點什么用?

類的操作D.這些東西都呆在什么地方?

類的行為、狀態(tài)、部署E.這些東西之間有什么關(guān)系?

類間的關(guān)聯(lián)F.這些東西是怎么成事的?

類間的協(xié)作(用例實現(xiàn))DACBEF-47-俗語和術(shù)語間的對應(yīng)俗語術(shù)語例子出了什么事?用例我的一個朋友結(jié)了婚。具體事物對象我的一個朋友,他未婚妻…事物類型類小伙,姑娘,玫瑰,月老…屬性屬性年齡,體格,性情…能力操作牽線,追求,結(jié)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論