




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
面向?qū)ο蟪绦蛟O(shè)計(jì)教程第1頁(yè),共34頁(yè),2023年,2月20日,星期四2023/5/8Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程2主要內(nèi)容1.1面向過(guò)程與面向?qū)ο蟮姆椒ㄕ摫容^1.1.1關(guān)于系統(tǒng)建模方法1.1.2關(guān)于程序設(shè)計(jì)方法1.1.3面向過(guò)程方法的優(yōu)勢(shì)1.1.4面向?qū)ο蠓椒ǖ膬?yōu)勢(shì)1.1.5結(jié)合面向過(guò)程與面向?qū)ο蠓椒ǖ膽?yīng)用優(yōu)勢(shì)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ù)語(yǔ)總結(jié)1.4面向?qū)ο蟮能浖_(kāi)發(fā)體系1.4.1面向?qū)ο罂蚣芟萝浖_(kāi)發(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的地位第2頁(yè),共34頁(yè),2023年,2月20日,星期四1.1面向過(guò)程與面向?qū)ο蟮?/p>
方法論比較第3頁(yè),共34頁(yè),2023年,2月20日,星期四2023/5/8Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程4系統(tǒng)建模方法軟件危機(jī)與系統(tǒng)建模方法的發(fā)展兩種流行的建模方法:面向過(guò)程建模方法面向?qū)ο蠼7椒ǖ?頁(yè),共34頁(yè),2023年,2月20日,星期四2023/5/8Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程5面向過(guò)程的建模方法和建模語(yǔ)言始于20世紀(jì)70年代的結(jié)構(gòu)化分析設(shè)計(jì)(StructuredAnalysisandDesign,SAD)方法。把一個(gè)系統(tǒng)看作是功能的集合,可以進(jìn)行分解。用數(shù)據(jù)流圖設(shè)計(jì)系統(tǒng)的模塊結(jié)構(gòu)。IDEF(ICAMDEFinitionmethod)圖形化建模語(yǔ)言是面向過(guò)程建模技術(shù)的代表。第5頁(yè),共34頁(yè),2023年,2月20日,星期四2023/5/8Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程6IDEF的基本表示法盒子代表活動(dòng),連到盒子上的箭頭表示由活動(dòng)產(chǎn)生的、或活動(dòng)所需要的信息或真實(shí)對(duì)象。盒子左邊及上方進(jìn)入的箭頭表示為完成此活動(dòng)所需要的數(shù)據(jù),控制說(shuō)明了控制變換的條件或環(huán)境,或者說(shuō)是約束;右邊離開(kāi)盒子的箭頭表示執(zhí)行活動(dòng)時(shí)產(chǎn)生的數(shù)據(jù);下方的箭頭作為執(zhí)行的機(jī)制,可以是執(zhí)行活動(dòng)的人或設(shè)備。箭頭限制了盒子間的關(guān)系,而不是表示活動(dòng)的順序。第6頁(yè),共34頁(yè),2023年,2月20日,星期四2023/5/8Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程7面向?qū)ο蟮慕7椒ㄅc建模語(yǔ)言發(fā)源于20世紀(jì)60年代,Simula語(yǔ)言中引入了類(Class)的概念;但真正的面向?qū)ο蟪绦蛟O(shè)計(jì)是Smalltalk語(yǔ)言奠定基礎(chǔ)的,“面向?qū)ο蟆币辉~也是Smalltalk首先采用的;C++的問(wèn)世促進(jìn)面向?qū)ο蠹夹g(shù)的發(fā)展,也使之成為標(biāo)準(zhǔn)化的面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言。20世紀(jì)90年代初,Booch、Jocobson、Rumbaugh一起開(kāi)發(fā)了統(tǒng)一建模語(yǔ)言(UnifiedModelingLanguage,UML)。UML可以用于確定、展示和記錄軟件系統(tǒng),UML中的圖形標(biāo)記尤其適用于面向?qū)ο蟮能浖O(shè)計(jì)。第7頁(yè),共34頁(yè),2023年,2月20日,星期四2023/5/8Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程8UML的基本表示法UML有一套復(fù)雜的標(biāo)記法,這里只給出對(duì)類的基本表示,就是在一個(gè)矩形框中可以詳細(xì)描述類(抽象類、接口、對(duì)象實(shí)例等)的名稱、屬性和操作。第8頁(yè),共34頁(yè),2023年,2月20日,星期四2023/5/8Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程9面向過(guò)程程序設(shè)計(jì)方法從程序設(shè)計(jì)范型(Paradigm,指設(shè)計(jì)程序的規(guī)范、模型和風(fēng)格)看:
程序=過(guò)程(定義)+(過(guò)程)調(diào)用。從程序語(yǔ)言角度出發(fā),依靠各種循環(huán)、函數(shù)調(diào)用、參數(shù)傳遞維護(hù)程序。重視程序流程,不在乎數(shù)據(jù)的傳遞方式,只要程序能運(yùn)行就可以了。第9頁(yè),共34頁(yè),2023年,2月20日,星期四2023/5/8Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程10面向過(guò)程程序設(shè)計(jì)方法的缺點(diǎn)子程序(過(guò)程)的抽象級(jí)別(函數(shù))太低,難以重用。需要花相當(dāng)多的成本維護(hù)程序與程序之間的關(guān)聯(lián)性。數(shù)據(jù)和操作相分離,當(dāng)一個(gè)或多個(gè)數(shù)據(jù)的結(jié)構(gòu)發(fā)生了變化,這種變化將波及程序的很多部分甚至遍及整個(gè)程序,往往變量和參數(shù)傳來(lái)傳去,傳到最后根本就不知道這個(gè)變量的作用何在,故程序的復(fù)雜性很難控制。已不適宜描述復(fù)雜的數(shù)據(jù)對(duì)象。第10頁(yè),共34頁(yè),2023年,2月20日,星期四2023/5/8Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程11面向?qū)ο筌浖_(kāi)發(fā)方法面向?qū)ο蟪绦虻幕驹貫閷?duì)象(Object)。程序結(jié)構(gòu)一般由類的定義和類的使用兩部分組成。程序中的一切操作都是通過(guò)向?qū)ο蟀l(fā)送相應(yīng)的消息來(lái)實(shí)現(xiàn):對(duì)象接收到消息后,啟動(dòng)有關(guān)的方法完成相應(yīng)的操作。從面向?qū)ο蟪绦蛟O(shè)計(jì)范型看:
程序=對(duì)象+消息。第11頁(yè),共34頁(yè),2023年,2月20日,星期四2023/5/8Java面向?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ì)量,降低成本第12頁(yè),共34頁(yè),2023年,2月20日,星期四2023/5/8Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程13面向?qū)ο蠹夹g(shù)的缺點(diǎn)與困難面向?qū)ο笮枰耆淖兠總€(gè)人的思想以及開(kāi)發(fā)文化面向?qū)ο蟛粌H僅是編程面向?qū)ο笮枰P(guān)注于需求、分析和設(shè)計(jì)開(kāi)發(fā)人員必須和用戶緊密合作面向?qū)ο蟮脑S多優(yōu)點(diǎn)要經(jīng)過(guò)較長(zhǎng)的時(shí)間才能顯示出來(lái)面向?qū)ο蠹夹g(shù)不能保證你能構(gòu)建出正確的系統(tǒng)第13頁(yè),共34頁(yè),2023年,2月20日,星期四2023/5/8Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程14討論面向過(guò)程方法的優(yōu)勢(shì)面向?qū)ο蠓椒ǖ膬?yōu)勢(shì)結(jié)合面向過(guò)程與面向?qū)ο蠓椒ǖ膽?yīng)用優(yōu)勢(shì)歷史反思第14頁(yè),共34頁(yè),2023年,2月20日,星期四1.2面向?qū)ο蠹夹g(shù)的基本原則第15頁(yè),共34頁(yè),2023年,2月20日,星期四2023/5/8Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程16OO(ObjectOrientation)四原則抽象(Abstraction)封裝(Encapsulation)模塊化(Modularity)分層(Hierarchy)第16頁(yè),共34頁(yè),2023年,2月20日,星期四2023/5/8Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程17問(wèn)題域的合理抽象實(shí)體抽象一個(gè)對(duì)象表示一個(gè)問(wèn)題域的實(shí)體的有用模型。動(dòng)作抽象一個(gè)對(duì)象提供一個(gè)通用化的操作集,它們的執(zhí)行是相似或有關(guān)聯(lián)的功能。子系統(tǒng)抽象一個(gè)對(duì)象是一組對(duì)象和操作的集合,它們是一個(gè)大系統(tǒng)的特定組成部分。對(duì)象設(shè)計(jì)成敗的關(guān)鍵就是抽象類型必須符合人們對(duì)該客觀事物的認(rèn)識(shí)習(xí)慣,這就要求設(shè)計(jì)人員對(duì)問(wèn)題域應(yīng)該有深入的理解,并且具有較強(qiáng)的綜合分析能力,而達(dá)到這一步往往是有難度的。第17頁(yè),共34頁(yè),2023年,2月20日,星期四1.3面向?qū)ο蠹夹g(shù)的基本要素第18頁(yè),共34頁(yè),2023年,2月20日,星期四2023/5/8Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程19寫字課老師:強(qiáng)調(diào)“飛鳳家”
——遙遠(yuǎn)的記憶,仍耳熟能詳…面向?qū)ο罄蠋煟簭?qiáng)調(diào)“PIE”
——多態(tài)(Polymorphism)
——繼承(Inheritance)
——封裝(Encapsulation)
“寫好飛鳳家”對(duì)于學(xué)習(xí)面向?qū)ο蟮膯⑹?/p>
第19頁(yè),共34頁(yè),2023年,2月20日,星期四2023/5/8Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程20封裝性外界要改變一個(gè)對(duì)象的狀態(tài),也就是對(duì)它所包含的數(shù)據(jù)進(jìn)行操作,只能向該對(duì)象發(fā)出請(qǐng)求消息,然后由該對(duì)象的對(duì)應(yīng)方法來(lái)改變其自身的狀態(tài)。是一種典型的“黑箱”機(jī)制。有利于代碼復(fù)用和信息隱藏。第20頁(yè),共34頁(yè),2023年,2月20日,星期四2023/5/8Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程21信息隱藏(Informationhiding)如果一個(gè)類想獲取另一個(gè)類的信息,必須先征得同意,而不是直接拿來(lái)就用;意味著類模塊中除了向外界提供的接口以外,還有大量不為外界所知的用以支持這些接口實(shí)現(xiàn)的屬性和方法。第21頁(yè),共34頁(yè),2023年,2月20日,星期四2023/5/8Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程22繼承性繼承是在類、子類以及對(duì)象之間自動(dòng)地共享屬性和方法的一種機(jī)制。繼承具有傳遞性,即如果有類C繼承B,B(間接)繼承A,則C(間接)繼承A。一個(gè)類實(shí)際上繼承了層次結(jié)構(gòu)中在其上面的所有類的全部描述。第22頁(yè),共34頁(yè),2023年,2月20日,星期四2023/5/8Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程23繼承性保證類可合理層次化第23頁(yè),共34頁(yè),2023年,2月20日,星期四2023/5/8Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程24多態(tài)性同一個(gè)方法名的操作不僅僅定義一種行為,因此有比較強(qiáng)的表達(dá)能力和更多的用途。多態(tài)形式:
參數(shù)多態(tài)(即重載,Overload)
包含多態(tài)(即覆蓋,Override)多態(tài)為描述客觀事物提供了極大的能動(dòng)性。第24頁(yè),共34頁(yè),2023年,2月20日,星期四2023/5/8Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程25不同人對(duì)play()請(qǐng)求的響應(yīng)第25頁(yè),共34頁(yè),2023年,2月20日,星期四2023/5/8Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程26面向?qū)ο蟾拍詈托g(shù)語(yǔ)abstractclass(抽象類)對(duì)象不能從中實(shí)例化的類abstraction(抽象)某項(xiàng)目(如類或操作)的基本特征aggregation(聚合)表示兩個(gè)類或組件之間是“ispartof”關(guān)系aggregationhierarchy(聚合層次)通過(guò)聚合聯(lián)系的一組類association(關(guān)聯(lián))對(duì)象和其它對(duì)象發(fā)生聯(lián)系attribute(屬性)類知道的東西(數(shù)據(jù)/信息)cardinality(基數(shù))表示概念“多少”?class(類)相似對(duì)象的軟件抽象,創(chuàng)建對(duì)象的模板cohesion(內(nèi)聚)封裝單元(例如組件或類)的相關(guān)程度collaboration(協(xié)作)類協(xié)作來(lái)完成它們的職責(zé)第26頁(yè),共34頁(yè),2023年,2月20日,星期四2023/5/8Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程27面向?qū)ο蟾拍詈托g(shù)語(yǔ)(續(xù))component(組件)可以獨(dú)立開(kāi)發(fā)、分發(fā)以及與其它組件一起構(gòu)建較大單元的內(nèi)聚功能單元composition(組合)更強(qiáng)類型的聚合,其中“整體”完全負(fù)責(zé)它的各組成部分,每“部分”對(duì)象僅和一個(gè)“整體”對(duì)象相聯(lián)系concreteclass(具體類)可以進(jìn)行對(duì)象實(shí)例化的類coupling(耦合)兩個(gè)項(xiàng)目的依賴程度encapsulation(封裝)把相關(guān)的概念(例如類或組件)歸組到一個(gè)項(xiàng)目informationhiding(信息隱藏)限制外部對(duì)屬性的訪問(wèn)inheritance(繼承)表示“isa”、“islike”或“iskindof”關(guān)系inheritancehierarchy(繼承層次)通過(guò)繼承相聯(lián)系的一組類instance(實(shí)例)對(duì)象是類的一個(gè)實(shí)例第27頁(yè),共34頁(yè),2023年,2月20日,星期四2023/5/8Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程28面向?qū)ο蟾拍詈托g(shù)語(yǔ)(續(xù))instantiate(實(shí)例化)從類中實(shí)例化對(duì)象interface(接口)定義內(nèi)聚行為集的一個(gè)或多個(gè)操作特征標(biāo)記的集合message(消息)消息是信息請(qǐng)求或執(zhí)行一個(gè)動(dòng)作的請(qǐng)求messaging(消息傳遞)為了協(xié)作,類互相發(fā)送與接收消息method(方法)類完成的事情(與結(jié)構(gòu)化編程中的函數(shù)相似)multipleinheritance(多重繼承)類直接從一個(gè)以上的類繼承object(對(duì)象)一個(gè)人、地址、物品、事件、概念、屏幕顯示或者報(bào)表objectspace(對(duì)象空間)主存,加上網(wǎng)絡(luò)上所有可供使用的存儲(chǔ)空間optionality(可選性)表示概念“你想要嗎?”override(覆蓋)有時(shí)在子類中你需要覆蓋(重定義)屬性與方法第28頁(yè),共34頁(yè),2023年,2月20日,星期四2023/5/8Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程29面向?qū)ο蟾拍詈托g(shù)語(yǔ)(續(xù))pattern(模式)考慮到相關(guān)因素時(shí)通用問(wèn)題的可復(fù)用方案persistence(持久性)對(duì)象怎樣永久被保存的問(wèn)題persistentobject(持久對(duì)象)一個(gè)保存到永久存儲(chǔ)的對(duì)象polymorphism(多態(tài))以不同方式響應(yīng)同一消息的不同對(duì)象,使對(duì)象可以不必知道相互的類型而交互singleinheritance(單一繼承)一個(gè)類直接從唯一一個(gè)類繼承stereotype(原型)表示一種建模元素的通用用法subclass(子類)如果類B繼承自類A,我們說(shuō)B是A的子類superclass(父類)如果類B繼承自類A,我們說(shuō)A是B的父類transitoryobject(臨時(shí)對(duì)象)一個(gè)沒(méi)有被保存到永久存儲(chǔ)的對(duì)象第29頁(yè),共34頁(yè),2023年,2月20日,星期四1.4面向?qū)ο蟮能浖_(kāi)發(fā)體系第30頁(yè),共34頁(yè),2023年,2月20日,星期四2023/5/8Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程31面向?qū)ο罂蚣芟萝浖_(kāi)發(fā)的生命周期
第31頁(yè),共34頁(yè),2023年,2月20日,星期四2023/5/8Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程32OO框架下軟件項(xiàng)目開(kāi)發(fā)的一般過(guò)程
業(yè)務(wù)模型需求模型分析模型設(shè)計(jì)模型實(shí)現(xiàn)模型測(cè)試模型關(guān)鍵UML元素業(yè)務(wù)流程(用例)、業(yè)務(wù)域?qū)ο笙到y(tǒng)、角色、用例、交互業(yè)務(wù)包/類/對(duì)象/消息軟硬件配置、包/類/對(duì)象/消息組件、節(jié)點(diǎn)、編碼測(cè)試計(jì)劃和測(cè)試案例關(guān)鍵問(wèn)題業(yè)務(wù)建模系統(tǒng)黑箱建模不含實(shí)現(xiàn)細(xì)節(jié)的問(wèn)題域業(yè)務(wù)元素建模面向特定實(shí)現(xiàn)(如軟硬件配置)分析圖及其說(shuō)明書更改分布式環(huán)境物理元素建模以及按需求編碼單元(類/操作)測(cè)試、集成系統(tǒng)測(cè)試目標(biāo)(元素之間的低耦合高聚合)足夠的業(yè)務(wù)或企業(yè)信息足夠的用例/方案信息以及遞增/迭代計(jì)劃滿足需求的最簡(jiǎn)單業(yè)務(wù)/問(wèn)題域模型
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司周年日策劃方案
- 公司大部門年會(huì)活動(dòng)方案
- 公司孵化網(wǎng)紅策劃方案
- 公司定向?qū)毣顒?dòng)方案
- 職業(yè)道歉師情緒勞動(dòng)強(qiáng)度管理
- 2025至2030年中國(guó)鼻用制劑行業(yè)市場(chǎng)全景調(diào)研及發(fā)展趨勢(shì)分析報(bào)告
- 2025至2030年中國(guó)集成電路封裝產(chǎn)業(yè)競(jìng)爭(zhēng)現(xiàn)狀及投資方向研究報(bào)告
- 2025至2030年中國(guó)金屬基板行業(yè)市場(chǎng)經(jīng)營(yíng)管理及發(fā)展趨勢(shì)預(yù)測(cè)報(bào)告
- 2025至2030年中國(guó)車載電源逆變器行業(yè)市場(chǎng)分析及投資潛力研究報(bào)告
- 情志護(hù)理試題及答案
- 無(wú)人機(jī)植保技術(shù)課件:無(wú)人機(jī)植保經(jīng)驗(yàn)與案例
- 有限空間辨識(shí)記錄(辨識(shí)結(jié)果不是有限空間的)
- 植物生理學(xué)(李合成)四川農(nóng)業(yè)大學(xué)版課后答案
- 魚塘個(gè)人承包協(xié)議書范本
- 桂林市2023-2024學(xué)年數(shù)學(xué)五年級(jí)第二學(xué)期期末質(zhì)量檢測(cè)試題含解析
- 正壓式空氣呼吸器使用培訓(xùn)課件
- 08S305 小型潛水排污泵選用及安裝
- 絨花非遺文化傳承與商業(yè)開(kāi)發(fā)計(jì)劃書2024年
- 初中自薦信范文
- 血培養(yǎng)采集課件
- 2024年消毒防腐藥劑項(xiàng)目合作計(jì)劃書
評(píng)論
0/150
提交評(píng)論