




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
面向?qū)ο蟪绦蛟O(shè)計(jì)教程第一頁,共三十四頁,編輯于2023年,星期五2023/6/25Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程2主要內(nèi)容1.1面向過程與面向?qū)ο蟮姆椒ㄕ摫容^1.1.1關(guān)于系統(tǒng)建模方法1.1.2關(guān)于程序設(shè)計(jì)方法1.1.3面向過程方法的優(yōu)勢1.1.4面向?qū)ο蠓椒ǖ膬?yōu)勢1.1.5結(jié)合面向過程與面向?qū)ο蠓椒ǖ膽?yīng)用優(yōu)勢1.1.6歷史反思1.2面向?qū)ο蠹夹g(shù)的基本原則1.3面向?qū)ο蠹夹g(shù)的基本要素1.3.1封裝性1.3.2繼承性1.3.3多態(tài)性1.3.4面向?qū)ο蟾拍詈托g(shù)語總結(jié)1.4面向?qū)ο蟮能浖_發(fā)體系1.4.1面向?qū)ο罂蚣芟萝浖_發(fā)的生命周期1.4.2面向?qū)ο笙嚓P(guān)技術(shù)的基本概念1.4.3面向?qū)ο蟪绦蛟O(shè)計(jì)的重要性1.4.4面向?qū)ο蠓治雠c設(shè)計(jì)的重要性1.4.5Java的地位第二頁,共三十四頁,編輯于2023年,星期五1.1面向過程與面向?qū)ο蟮?/p>
方法論比較第三頁,共三十四頁,編輯于2023年,星期五2023/6/25Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程4系統(tǒng)建模方法軟件危機(jī)與系統(tǒng)建模方法的發(fā)展兩種流行的建模方法:面向過程建模方法面向?qū)ο蠼7椒ǖ谒捻?,共三十四頁,編輯?023年,星期五2023/6/25Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程5面向過程的建模方法和建模語言始于20世紀(jì)70年代的結(jié)構(gòu)化分析設(shè)計(jì)(StructuredAnalysisandDesign,SAD)方法。把一個系統(tǒng)看作是功能的集合,可以進(jìn)行分解。用數(shù)據(jù)流圖設(shè)計(jì)系統(tǒng)的模塊結(jié)構(gòu)。IDEF(ICAMDEFinitionmethod)圖形化建模語言是面向過程建模技術(shù)的代表。第五頁,共三十四頁,編輯于2023年,星期五2023/6/25Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程6IDEF的基本表示法盒子代表活動,連到盒子上的箭頭表示由活動產(chǎn)生的、或活動所需要的信息或真實(shí)對象。盒子左邊及上方進(jìn)入的箭頭表示為完成此活動所需要的數(shù)據(jù),控制說明了控制變換的條件或環(huán)境,或者說是約束;右邊離開盒子的箭頭表示執(zhí)行活動時產(chǎn)生的數(shù)據(jù);下方的箭頭作為執(zhí)行的機(jī)制,可以是執(zhí)行活動的人或設(shè)備。箭頭限制了盒子間的關(guān)系,而不是表示活動的順序。第六頁,共三十四頁,編輯于2023年,星期五2023/6/25Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程7面向?qū)ο蟮慕7椒ㄅc建模語言發(fā)源于20世紀(jì)60年代,Simula語言中引入了類(Class)的概念;但真正的面向?qū)ο蟪绦蛟O(shè)計(jì)是Smalltalk語言奠定基礎(chǔ)的,“面向?qū)ο蟆币辉~也是Smalltalk首先采用的;C++的問世促進(jìn)面向?qū)ο蠹夹g(shù)的發(fā)展,也使之成為標(biāo)準(zhǔn)化的面向?qū)ο蟪绦蛟O(shè)計(jì)語言。20世紀(jì)90年代初,Booch、Jocobson、Rumbaugh一起開發(fā)了統(tǒng)一建模語言(UnifiedModelingLanguage,UML)。UML可以用于確定、展示和記錄軟件系統(tǒng),UML中的圖形標(biāo)記尤其適用于面向?qū)ο蟮能浖O(shè)計(jì)。第七頁,共三十四頁,編輯于2023年,星期五2023/6/25Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程8UML的基本表示法UML有一套復(fù)雜的標(biāo)記法,這里只給出對類的基本表示,就是在一個矩形框中可以詳細(xì)描述類(抽象類、接口、對象實(shí)例等)的名稱、屬性和操作。第八頁,共三十四頁,編輯于2023年,星期五2023/6/25Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程9面向過程程序設(shè)計(jì)方法從程序設(shè)計(jì)范型(Paradigm,指設(shè)計(jì)程序的規(guī)范、模型和風(fēng)格)看:
程序=過程(定義)+(過程)調(diào)用。從程序語言角度出發(fā),依靠各種循環(huán)、函數(shù)調(diào)用、參數(shù)傳遞維護(hù)程序。重視程序流程,不在乎數(shù)據(jù)的傳遞方式,只要程序能運(yùn)行就可以了。第九頁,共三十四頁,編輯于2023年,星期五2023/6/25Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程10面向過程程序設(shè)計(jì)方法的缺點(diǎn)子程序(過程)的抽象級別(函數(shù))太低,難以重用。需要花相當(dāng)多的成本維護(hù)程序與程序之間的關(guān)聯(lián)性。數(shù)據(jù)和操作相分離,當(dāng)一個或多個數(shù)據(jù)的結(jié)構(gòu)發(fā)生了變化,這種變化將波及程序的很多部分甚至遍及整個程序,往往變量和參數(shù)傳來傳去,傳到最后根本就不知道這個變量的作用何在,故程序的復(fù)雜性很難控制。已不適宜描述復(fù)雜的數(shù)據(jù)對象。第十頁,共三十四頁,編輯于2023年,星期五2023/6/25Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程11面向?qū)ο筌浖_發(fā)方法面向?qū)ο蟪绦虻幕驹貫閷ο螅∣bject)。程序結(jié)構(gòu)一般由類的定義和類的使用兩部分組成。程序中的一切操作都是通過向?qū)ο蟀l(fā)送相應(yīng)的消息來實(shí)現(xiàn):對象接收到消息后,啟動有關(guān)的方法完成相應(yīng)的操作。從面向?qū)ο蟪绦蛟O(shè)計(jì)范型看:
程序=對象+消息。第十一頁,共三十四頁,編輯于2023年,星期五2023/6/25Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程12面向?qū)ο蠹夹g(shù)的優(yōu)點(diǎn)直觀性可增加程序的模塊性(Modularity)可提高程序的可復(fù)用性(Reusability)增加可擴(kuò)展性(Extendibility)可改善程序的可維護(hù)性(Maintainability),減少維護(hù)負(fù)荷可控制程序的復(fù)雜性可改進(jìn)質(zhì)量,降低成本第十二頁,共三十四頁,編輯于2023年,星期五2023/6/25Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程13面向?qū)ο蠹夹g(shù)的缺點(diǎn)與困難面向?qū)ο笮枰耆淖兠總€人的思想以及開發(fā)文化面向?qū)ο蟛粌H僅是編程面向?qū)ο笮枰P(guān)注于需求、分析和設(shè)計(jì)開發(fā)人員必須和用戶緊密合作面向?qū)ο蟮脑S多優(yōu)點(diǎn)要經(jīng)過較長的時間才能顯示出來面向?qū)ο蠹夹g(shù)不能保證你能構(gòu)建出正確的系統(tǒng)第十三頁,共三十四頁,編輯于2023年,星期五2023/6/25Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程14討論面向過程方法的優(yōu)勢面向?qū)ο蠓椒ǖ膬?yōu)勢結(jié)合面向過程與面向?qū)ο蠓椒ǖ膽?yīng)用優(yōu)勢歷史反思第十四頁,共三十四頁,編輯于2023年,星期五1.2面向?qū)ο蠹夹g(shù)的基本原則第十五頁,共三十四頁,編輯于2023年,星期五2023/6/25Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程16OO(ObjectOrientation)四原則抽象(Abstraction)封裝(Encapsulation)模塊化(Modularity)分層(Hierarchy)第十六頁,共三十四頁,編輯于2023年,星期五2023/6/25Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程17問題域的合理抽象實(shí)體抽象一個對象表示一個問題域的實(shí)體的有用模型。動作抽象一個對象提供一個通用化的操作集,它們的執(zhí)行是相似或有關(guān)聯(lián)的功能。子系統(tǒng)抽象一個對象是一組對象和操作的集合,它們是一個大系統(tǒng)的特定組成部分。對象設(shè)計(jì)成敗的關(guān)鍵就是抽象類型必須符合人們對該客觀事物的認(rèn)識習(xí)慣,這就要求設(shè)計(jì)人員對問題域應(yīng)該有深入的理解,并且具有較強(qiáng)的綜合分析能力,而達(dá)到這一步往往是有難度的。第十七頁,共三十四頁,編輯于2023年,星期五1.3面向?qū)ο蠹夹g(shù)的基本要素第十八頁,共三十四頁,編輯于2023年,星期五2023/6/25Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程19寫字課老師:強(qiáng)調(diào)“飛鳳家”
——遙遠(yuǎn)的記憶,仍耳熟能詳…面向?qū)ο罄蠋煟簭?qiáng)調(diào)“PIE”
——多態(tài)(Polymorphism)
——繼承(Inheritance)
——封裝(Encapsulation)
“寫好飛鳳家”對于學(xué)習(xí)面向?qū)ο蟮膯⑹?/p>
第十九頁,共三十四頁,編輯于2023年,星期五2023/6/25Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程20封裝性外界要改變一個對象的狀態(tài),也就是對它所包含的數(shù)據(jù)進(jìn)行操作,只能向該對象發(fā)出請求消息,然后由該對象的對應(yīng)方法來改變其自身的狀態(tài)。是一種典型的“黑箱”機(jī)制。有利于代碼復(fù)用和信息隱藏。第二十頁,共三十四頁,編輯于2023年,星期五2023/6/25Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程21信息隱藏(Informationhiding)如果一個類想獲取另一個類的信息,必須先征得同意,而不是直接拿來就用;意味著類模塊中除了向外界提供的接口以外,還有大量不為外界所知的用以支持這些接口實(shí)現(xiàn)的屬性和方法。第二十一頁,共三十四頁,編輯于2023年,星期五2023/6/25Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程22繼承性繼承是在類、子類以及對象之間自動地共享屬性和方法的一種機(jī)制。繼承具有傳遞性,即如果有類C繼承B,B(間接)繼承A,則C(間接)繼承A。一個類實(shí)際上繼承了層次結(jié)構(gòu)中在其上面的所有類的全部描述。第二十二頁,共三十四頁,編輯于2023年,星期五2023/6/25Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程23繼承性保證類可合理層次化第二十三頁,共三十四頁,編輯于2023年,星期五2023/6/25Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程24多態(tài)性同一個方法名的操作不僅僅定義一種行為,因此有比較強(qiáng)的表達(dá)能力和更多的用途。多態(tài)形式:
參數(shù)多態(tài)(即重載,Overload)
包含多態(tài)(即覆蓋,Override)多態(tài)為描述客觀事物提供了極大的能動性。第二十四頁,共三十四頁,編輯于2023年,星期五2023/6/25Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程25不同人對play()請求的響應(yīng)第二十五頁,共三十四頁,編輯于2023年,星期五2023/6/25Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程26面向?qū)ο蟾拍詈托g(shù)語abstractclass(抽象類)對象不能從中實(shí)例化的類abstraction(抽象)某項(xiàng)目(如類或操作)的基本特征aggregation(聚合)表示兩個類或組件之間是“ispartof”關(guān)系aggregationhierarchy(聚合層次)通過聚合聯(lián)系的一組類association(關(guān)聯(lián))對象和其它對象發(fā)生聯(lián)系attribute(屬性)類知道的東西(數(shù)據(jù)/信息)cardinality(基數(shù))表示概念“多少”?class(類)相似對象的軟件抽象,創(chuàng)建對象的模板cohesion(內(nèi)聚)封裝單元(例如組件或類)的相關(guān)程度collaboration(協(xié)作)類協(xié)作來完成它們的職責(zé)第二十六頁,共三十四頁,編輯于2023年,星期五2023/6/25Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程27面向?qū)ο蟾拍詈托g(shù)語(續(xù))component(組件)可以獨(dú)立開發(fā)、分發(fā)以及與其它組件一起構(gòu)建較大單元的內(nèi)聚功能單元composition(組合)更強(qiáng)類型的聚合,其中“整體”完全負(fù)責(zé)它的各組成部分,每“部分”對象僅和一個“整體”對象相聯(lián)系concreteclass(具體類)可以進(jìn)行對象實(shí)例化的類coupling(耦合)兩個項(xiàng)目的依賴程度encapsulation(封裝)把相關(guān)的概念(例如類或組件)歸組到一個項(xiàng)目informationhiding(信息隱藏)限制外部對屬性的訪問inheritance(繼承)表示“isa”、“islike”或“iskindof”關(guān)系inheritancehierarchy(繼承層次)通過繼承相聯(lián)系的一組類instance(實(shí)例)對象是類的一個實(shí)例第二十七頁,共三十四頁,編輯于2023年,星期五2023/6/25Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程28面向?qū)ο蟾拍詈托g(shù)語(續(xù))instantiate(實(shí)例化)從類中實(shí)例化對象interface(接口)定義內(nèi)聚行為集的一個或多個操作特征標(biāo)記的集合message(消息)消息是信息請求或執(zhí)行一個動作的請求messaging(消息傳遞)為了協(xié)作,類互相發(fā)送與接收消息method(方法)類完成的事情(與結(jié)構(gòu)化編程中的函數(shù)相似)multipleinheritance(多重繼承)類直接從一個以上的類繼承object(對象)一個人、地址、物品、事件、概念、屏幕顯示或者報(bào)表objectspace(對象空間)主存,加上網(wǎng)絡(luò)上所有可供使用的存儲空間optionality(可選性)表示概念“你想要嗎?”override(覆蓋)有時在子類中你需要覆蓋(重定義)屬性與方法第二十八頁,共三十四頁,編輯于2023年,星期五2023/6/25Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程29面向?qū)ο蟾拍詈托g(shù)語(續(xù))pattern(模式)考慮到相關(guān)因素時通用問題的可復(fù)用方案persistence(持久性)對象怎樣永久被保存的問題persistentobject(持久對象)一個保存到永久存儲的對象polymorphism(多態(tài))以不同方式響應(yīng)同一消息的不同對象,使對象可以不必知道相互的類型而交互singleinheritance(單一繼承)一個類直接從唯一一個類繼承stereotype(原型)表示一種建模元素的通用用法subclass(子類)如果類B繼承自類A,我們說B是A的子類superclass(父類)如果類B繼承自類A,我們說A是B的父類transitoryobject(臨時對象)一個沒有被保存到永久存儲的對象第二十九頁,共三十四頁,編輯于2023年,星期五1.4面向?qū)ο蟮能浖_發(fā)體系第三十頁,共三十四頁,編輯于2023年,星期五2023/6/25Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程31面向?qū)ο罂蚣芟萝浖_發(fā)的生命周期
第三十一頁,共三十四頁,編輯于2023年,星期五2023/6/25Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程32OO框架下軟件項(xiàng)目開發(fā)的一般過程
業(yè)務(wù)模型需求模型分析模型設(shè)計(jì)模型實(shí)現(xiàn)模型測試模型關(guān)鍵UML元素業(yè)務(wù)流程(用例)、業(yè)務(wù)域?qū)ο笙到y(tǒng)、角色、用例、交互業(yè)務(wù)包/類/對象/消息軟硬件配置、包/類/對象/消息組件、節(jié)點(diǎn)、編碼測試計(jì)劃和測試案例關(guān)鍵問題業(yè)務(wù)建模系統(tǒng)黑箱建模不含實(shí)現(xiàn)細(xì)節(jié)的問題域業(yè)務(wù)元素建模面向特定實(shí)現(xiàn)(如軟硬件配置)分析圖及其說明書更改分布式環(huán)境物理元素建模以及按需求編碼單元(類/操作)測試、集成系統(tǒng)測試目標(biāo)(元素之間的低耦合高聚合)足夠的業(yè)務(wù)或企業(yè)信息足夠的用例/方案信息以及遞增/迭代計(jì)劃滿足需求的最簡單業(yè)務(wù)/問題域模型支持
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 駱駝祥子人物性格分析教學(xué)教案:探究社會變遷與人性的掙扎
- 汽車租賃三方合同
- 農(nóng)作物種植技術(shù)手冊
- 圖表展示各類數(shù)據(jù)統(tǒng)計(jì)情況
- 小學(xué)生數(shù)學(xué)應(yīng)用題的作文分析與實(shí)踐指導(dǎo)
- 留置擔(dān)保合同協(xié)議書
- 文學(xué)佳作圍城中的人物形象解讀
- 智能交通大數(shù)據(jù)平臺開發(fā)協(xié)議
- 企業(yè)戰(zhàn)略聯(lián)盟穩(wěn)定性評價與維護(hù)
- 產(chǎn)品推廣合作合同
- FZ/T 24011-2019羊絨機(jī)織圍巾、披肩
- 【課件】2.1.1植物細(xì)胞工程的基本技術(shù)課件-2021-2022學(xué)年高二下學(xué)期生物人教版選擇性必修3
- 35kV集電線路直埋施工組織設(shè)計(jì)方案
- 客戶來訪登記表
- 日產(chǎn)新軒逸電子手冊cvt
- 人教八年級下冊英語U5Do-you-remember-what-you-were-doing?課件
- 大連市小升初手冊
- 醫(yī)療垃圾管理及手衛(wèi)生培訓(xùn)PPT課件
- 嚇數(shù)基礎(chǔ)知識共20
- 鋰電池安全知識培訓(xùn)-課件
- 電子產(chǎn)品高可靠性裝聯(lián)工藝下
評論
0/150
提交評論