版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
面向?qū)ο蟪绦蛟O(shè)計教程第一頁,共三十四頁,2022年,8月28日2023/4/1Java面向?qū)ο蟪绦蛟O(shè)計教程2主要內(nèi)容1.1面向過程與面向?qū)ο蟮姆椒ㄕ摫容^1.1.1關(guān)于系統(tǒng)建模方法1.1.2關(guān)于程序設(shè)計方法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è)計的重要性1.4.4面向?qū)ο蠓治雠c設(shè)計的重要性1.4.5Java的地位第二頁,共三十四頁,2022年,8月28日1.1面向過程與面向?qū)ο蟮?/p>
方法論比較第三頁,共三十四頁,2022年,8月28日2023/4/1Java面向?qū)ο蟪绦蛟O(shè)計教程4系統(tǒng)建模方法軟件危機與系統(tǒng)建模方法的發(fā)展兩種流行的建模方法:面向過程建模方法面向?qū)ο蠼7椒ǖ谒捻摚踩捻摚?022年,8月28日2023/4/1Java面向?qū)ο蟪绦蛟O(shè)計教程5面向過程的建模方法和建模語言始于20世紀(jì)70年代的結(jié)構(gòu)化分析設(shè)計(StructuredAnalysisandDesign,SAD)方法。把一個系統(tǒng)看作是功能的集合,可以進(jìn)行分解。用數(shù)據(jù)流圖設(shè)計系統(tǒng)的模塊結(jié)構(gòu)。IDEF(ICAMDEFinitionmethod)圖形化建模語言是面向過程建模技術(shù)的代表。第五頁,共三十四頁,2022年,8月28日2023/4/1Java面向?qū)ο蟪绦蛟O(shè)計教程6IDEF的基本表示法盒子代表活動,連到盒子上的箭頭表示由活動產(chǎn)生的、或活動所需要的信息或真實對象。盒子左邊及上方進(jìn)入的箭頭表示為完成此活動所需要的數(shù)據(jù),控制說明了控制變換的條件或環(huán)境,或者說是約束;右邊離開盒子的箭頭表示執(zhí)行活動時產(chǎn)生的數(shù)據(jù);下方的箭頭作為執(zhí)行的機制,可以是執(zhí)行活動的人或設(shè)備。箭頭限制了盒子間的關(guān)系,而不是表示活動的順序。第六頁,共三十四頁,2022年,8月28日2023/4/1Java面向?qū)ο蟪绦蛟O(shè)計教程7面向?qū)ο蟮慕7椒ㄅc建模語言發(fā)源于20世紀(jì)60年代,Simula語言中引入了類(Class)的概念;但真正的面向?qū)ο蟪绦蛟O(shè)計是Smalltalk語言奠定基礎(chǔ)的,“面向?qū)ο蟆币辉~也是Smalltalk首先采用的;C++的問世促進(jìn)面向?qū)ο蠹夹g(shù)的發(fā)展,也使之成為標(biāo)準(zhǔn)化的面向?qū)ο蟪绦蛟O(shè)計語言。20世紀(jì)90年代初,Booch、Jocobson、Rumbaugh一起開發(fā)了統(tǒng)一建模語言(UnifiedModelingLanguage,UML)。UML可以用于確定、展示和記錄軟件系統(tǒng),UML中的圖形標(biāo)記尤其適用于面向?qū)ο蟮能浖O(shè)計。第七頁,共三十四頁,2022年,8月28日2023/4/1Java面向?qū)ο蟪绦蛟O(shè)計教程8UML的基本表示法UML有一套復(fù)雜的標(biāo)記法,這里只給出對類的基本表示,就是在一個矩形框中可以詳細(xì)描述類(抽象類、接口、對象實例等)的名稱、屬性和操作。第八頁,共三十四頁,2022年,8月28日2023/4/1Java面向?qū)ο蟪绦蛟O(shè)計教程9面向過程程序設(shè)計方法從程序設(shè)計范型(Paradigm,指設(shè)計程序的規(guī)范、模型和風(fēng)格)看:
程序=過程(定義)+(過程)調(diào)用。從程序語言角度出發(fā),依靠各種循環(huán)、函數(shù)調(diào)用、參數(shù)傳遞維護(hù)程序。重視程序流程,不在乎數(shù)據(jù)的傳遞方式,只要程序能運行就可以了。第九頁,共三十四頁,2022年,8月28日2023/4/1Java面向?qū)ο蟪绦蛟O(shè)計教程10面向過程程序設(shè)計方法的缺點子程序(過程)的抽象級別(函數(shù))太低,難以重用。需要花相當(dāng)多的成本維護(hù)程序與程序之間的關(guān)聯(lián)性。數(shù)據(jù)和操作相分離,當(dāng)一個或多個數(shù)據(jù)的結(jié)構(gòu)發(fā)生了變化,這種變化將波及程序的很多部分甚至遍及整個程序,往往變量和參數(shù)傳來傳去,傳到最后根本就不知道這個變量的作用何在,故程序的復(fù)雜性很難控制。已不適宜描述復(fù)雜的數(shù)據(jù)對象。第十頁,共三十四頁,2022年,8月28日2023/4/1Java面向?qū)ο蟪绦蛟O(shè)計教程11面向?qū)ο筌浖_發(fā)方法面向?qū)ο蟪绦虻幕驹貫閷ο螅∣bject)。程序結(jié)構(gòu)一般由類的定義和類的使用兩部分組成。程序中的一切操作都是通過向?qū)ο蟀l(fā)送相應(yīng)的消息來實現(xiàn):對象接收到消息后,啟動有關(guān)的方法完成相應(yīng)的操作。從面向?qū)ο蟪绦蛟O(shè)計范型看:
程序=對象+消息。第十一頁,共三十四頁,2022年,8月28日2023/4/1Java面向?qū)ο蟪绦蛟O(shè)計教程12面向?qū)ο蠹夹g(shù)的優(yōu)點直觀性可增加程序的模塊性(Modularity)可提高程序的可復(fù)用性(Reusability)增加可擴展性(Extendibility)可改善程序的可維護(hù)性(Maintainability),減少維護(hù)負(fù)荷可控制程序的復(fù)雜性可改進(jìn)質(zhì)量,降低成本第十二頁,共三十四頁,2022年,8月28日2023/4/1Java面向?qū)ο蟪绦蛟O(shè)計教程13面向?qū)ο蠹夹g(shù)的缺點與困難面向?qū)ο笮枰耆淖兠總€人的思想以及開發(fā)文化面向?qū)ο蟛粌H僅是編程面向?qū)ο笮枰P(guān)注于需求、分析和設(shè)計開發(fā)人員必須和用戶緊密合作面向?qū)ο蟮脑S多優(yōu)點要經(jīng)過較長的時間才能顯示出來面向?qū)ο蠹夹g(shù)不能保證你能構(gòu)建出正確的系統(tǒng)第十三頁,共三十四頁,2022年,8月28日2023/4/1Java面向?qū)ο蟪绦蛟O(shè)計教程14討論面向過程方法的優(yōu)勢面向?qū)ο蠓椒ǖ膬?yōu)勢結(jié)合面向過程與面向?qū)ο蠓椒ǖ膽?yīng)用優(yōu)勢歷史反思第十四頁,共三十四頁,2022年,8月28日1.2面向?qū)ο蠹夹g(shù)的基本原則第十五頁,共三十四頁,2022年,8月28日2023/4/1Java面向?qū)ο蟪绦蛟O(shè)計教程16OO(ObjectOrientation)四原則抽象(Abstraction)封裝(Encapsulation)模塊化(Modularity)分層(Hierarchy)第十六頁,共三十四頁,2022年,8月28日2023/4/1Java面向?qū)ο蟪绦蛟O(shè)計教程17問題域的合理抽象實體抽象一個對象表示一個問題域的實體的有用模型。動作抽象一個對象提供一個通用化的操作集,它們的執(zhí)行是相似或有關(guān)聯(lián)的功能。子系統(tǒng)抽象一個對象是一組對象和操作的集合,它們是一個大系統(tǒng)的特定組成部分。對象設(shè)計成敗的關(guān)鍵就是抽象類型必須符合人們對該客觀事物的認(rèn)識習(xí)慣,這就要求設(shè)計人員對問題域應(yīng)該有深入的理解,并且具有較強的綜合分析能力,而達(dá)到這一步往往是有難度的。第十七頁,共三十四頁,2022年,8月28日1.3面向?qū)ο蠹夹g(shù)的基本要素第十八頁,共三十四頁,2022年,8月28日2023/4/1Java面向?qū)ο蟪绦蛟O(shè)計教程19寫字課老師:強調(diào)“飛鳳家”
——遙遠(yuǎn)的記憶,仍耳熟能詳…面向?qū)ο罄蠋煟簭娬{(diào)“PIE”
——多態(tài)(Polymorphism)
——繼承(Inheritance)
——封裝(Encapsulation)
“寫好飛鳳家”對于學(xué)習(xí)面向?qū)ο蟮膯⑹?/p>
第十九頁,共三十四頁,2022年,8月28日2023/4/1Java面向?qū)ο蟪绦蛟O(shè)計教程20封裝性外界要改變一個對象的狀態(tài),也就是對它所包含的數(shù)據(jù)進(jìn)行操作,只能向該對象發(fā)出請求消息,然后由該對象的對應(yīng)方法來改變其自身的狀態(tài)。是一種典型的“黑箱”機制。有利于代碼復(fù)用和信息隱藏。第二十頁,共三十四頁,2022年,8月28日2023/4/1Java面向?qū)ο蟪绦蛟O(shè)計教程21信息隱藏(Informationhiding)如果一個類想獲取另一個類的信息,必須先征得同意,而不是直接拿來就用;意味著類模塊中除了向外界提供的接口以外,還有大量不為外界所知的用以支持這些接口實現(xiàn)的屬性和方法。第二十一頁,共三十四頁,2022年,8月28日2023/4/1Java面向?qū)ο蟪绦蛟O(shè)計教程22繼承性繼承是在類、子類以及對象之間自動地共享屬性和方法的一種機制。繼承具有傳遞性,即如果有類C繼承B,B(間接)繼承A,則C(間接)繼承A。一個類實際上繼承了層次結(jié)構(gòu)中在其上面的所有類的全部描述。第二十二頁,共三十四頁,2022年,8月28日2023/4/1Java面向?qū)ο蟪绦蛟O(shè)計教程23繼承性保證類可合理層次化第二十三頁,共三十四頁,2022年,8月28日2023/4/1Java面向?qū)ο蟪绦蛟O(shè)計教程24多態(tài)性同一個方法名的操作不僅僅定義一種行為,因此有比較強的表達(dá)能力和更多的用途。多態(tài)形式:
參數(shù)多態(tài)(即重載,Overload)
包含多態(tài)(即覆蓋,Override)多態(tài)為描述客觀事物提供了極大的能動性。第二十四頁,共三十四頁,2022年,8月28日2023/4/1Java面向?qū)ο蟪绦蛟O(shè)計教程25不同人對play()請求的響應(yīng)第二十五頁,共三十四頁,2022年,8月28日2023/4/1Java面向?qū)ο蟪绦蛟O(shè)計教程26面向?qū)ο蟾拍詈托g(shù)語abstractclass(抽象類)對象不能從中實例化的類abstraction(抽象)某項目(如類或操作)的基本特征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é)第二十六頁,共三十四頁,2022年,8月28日2023/4/1Java面向?qū)ο蟪绦蛟O(shè)計教程27面向?qū)ο蟾拍詈托g(shù)語(續(xù))component(組件)可以獨立開發(fā)、分發(fā)以及與其它組件一起構(gòu)建較大單元的內(nèi)聚功能單元composition(組合)更強類型的聚合,其中“整體”完全負(fù)責(zé)它的各組成部分,每“部分”對象僅和一個“整體”對象相聯(lián)系concreteclass(具體類)可以進(jìn)行對象實例化的類coupling(耦合)兩個項目的依賴程度encapsulation(封裝)把相關(guān)的概念(例如類或組件)歸組到一個項目informationhiding(信息隱藏)限制外部對屬性的訪問inheritance(繼承)表示“isa”、“islike”或“iskindof”關(guān)系inheritancehierarchy(繼承層次)通過繼承相聯(lián)系的一組類instance(實例)對象是類的一個實例第二十七頁,共三十四頁,2022年,8月28日2023/4/1Java面向?qū)ο蟪绦蛟O(shè)計教程28面向?qū)ο蟾拍詈托g(shù)語(續(xù))instantiate(實例化)從類中實例化對象interface(接口)定義內(nèi)聚行為集的一個或多個操作特征標(biāo)記的集合message(消息)消息是信息請求或執(zhí)行一個動作的請求messaging(消息傳遞)為了協(xié)作,類互相發(fā)送與接收消息method(方法)類完成的事情(與結(jié)構(gòu)化編程中的函數(shù)相似)multipleinheritance(多重繼承)類直接從一個以上的類繼承object(對象)一個人、地址、物品、事件、概念、屏幕顯示或者報表objectspace(對象空間)主存,加上網(wǎng)絡(luò)上所有可供使用的存儲空間optionality(可選性)表示概念“你想要嗎?”override(覆蓋)有時在子類中你需要覆蓋(重定義)屬性與方法第二十八頁,共三十四頁,2022年,8月28日2023/4/1Java面向?qū)ο蟪绦蛟O(shè)計教程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(臨時對象)一個沒有被保存到永久存儲的對象第二十九頁,共三十四頁,2022年,8月28日1.4面向?qū)ο蟮能浖_發(fā)體系第三十頁,共三十四頁,2022年,8月28日2023/4/1Java面向?qū)ο蟪绦蛟O(shè)計教程31面向?qū)ο罂蚣芟萝浖_發(fā)的生命周期
第三十一頁,共三十四頁,2022年,8月28日2023/4/1Java面向?qū)ο蟪绦蛟O(shè)計教程32OO框架下軟件項目開發(fā)的一般過程
業(yè)務(wù)模型需求模型分析模型設(shè)計模型實現(xiàn)模型測試模型關(guān)鍵UML元素業(yè)務(wù)流程(用例)、業(yè)務(wù)域?qū)ο笙到y(tǒng)、角色、用例、交互業(yè)務(wù)包/類/對象/消息軟硬件配置、包/類/對象/消息組件、節(jié)點、編碼測試計劃和測試案例關(guān)鍵問題業(yè)務(wù)建模系統(tǒng)黑箱建模不含實現(xiàn)細(xì)節(jié)的問題域業(yè)務(wù)元素建模面向特定實現(xiàn)(如軟硬件配置)分析圖及其說明書更改分布式環(huán)境物理元素建模以及按需求編碼單元(類/操作)測試、集成系統(tǒng)測試目標(biāo)(元素之間的低耦合高聚合)足夠的業(yè)務(wù)或企業(yè)信息足夠的用例/方案信息以及遞增/迭代計劃滿足需求的最簡單業(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)院招聘放射專業(yè)試題及答案
- 怒江傈僳族自治州貢山獨龍族怒族自治縣輔警公共基礎(chǔ)知識題庫(附答案)
- 宿遷市宿豫區(qū)輔警招聘警務(wù)輔助人員考試題庫真題試卷公安基礎(chǔ)知識及答案
- 數(shù)控編程四級試題及答案
- 規(guī)培護(hù)士院感防控培訓(xùn)考試題及答案
- 醫(yī)院檢驗科試題含答案
- 事業(yè)單位公共基礎(chǔ)知識簡答題及答案
- 基金專場考試題庫及答案
- 美團考試題庫及答案
- 防火安全測試題及答案
- 超市食品安全培訓(xùn)記錄課件
- 胰島細(xì)胞瘤課件
- 生鮮采購員知識培訓(xùn)內(nèi)容課件
- 【語文】湖北省武漢市光谷第二小學(xué)小學(xué)一年級上冊期末試題
- 工程延期意向申請書
- 員工錄用通知書(offer)模板
- 折彎機操作工作業(yè)指導(dǎo)書
- 2025空乘專業(yè)單招面試常見問題及答案
- 第13課 美麗中國我的家(教學(xué)課件)小學(xué)二年級上冊 統(tǒng)編版《道德與法治》新教材
- 2025年江西中級檔案職稱考試檔案工作實務(wù)+檔案事業(yè)概論綜合練習(xí)題及答案
- 小學(xué)物理啟蒙課件
評論
0/150
提交評論