面向對象技術.ppt_第1頁
面向對象技術.ppt_第2頁
面向對象技術.ppt_第3頁
面向對象技術.ppt_第4頁
面向對象技術.ppt_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、面向對象技術,內容,面向對象技術的基本原理 面向對象的基本概念 面向對象的建模技術 面向對象的軟件過程 面向對象技術在現代仿真中的應用和發(fā)展,面向對象技術的基本原理,面向對象技術的出發(fā)點和基本原則 面向對象技術的基本特征 面向對象技術的定義 面向對象技術的組成部分,面向對象技術的出發(fā)點和基本原則,目標 解決我們認識系統的過程和方法同我們用于分析、設計和實現系統的過程和方法不一致的問題。 分析 認識過程 對一個系統的認識是一個漸進的過程,是在繼承了以往有關知識的基礎上,多次迭代往復而逐步深化的。 在這種認識的深化過程中,既包括了從一般到特殊的演繹,也包括了從特殊到一般的歸納。 傳統的“瀑布模型”

2、 是按過程一步步的進行分析、設計和實現的 問題 有些需求只有在實現后期才能確定,有些差錯也只有在實現后期才能發(fā)現,面向對象技術的出發(fā)點和基本原則,使描述問題的問題空間和解決問題的解空間在結構上盡可能地一致 使軟件在描述問題的問題空間和解決問題的解空間結構上一致的方法即是面向對象方法 優(yōu)點 易于被人理解 易于維護和修改 提高了軟件的可靠性和可維護性 軟件模塊化和重用,面向對象技術的基本特征,基本觀點 客觀世界是由各種各樣的對象所組成的,每種對象都有各自的內部狀態(tài)和運動規(guī)律,不同對象間的相互作用和聯系就構成了各種不同的系統,構成了我們所面對的客觀世界。 主要特征: 用對象對事物進行抽象表示 對象的

3、屬性和方法 對象封裝; 實例和歸類 基類和派生類 聚合 通過關聯表達對象之間的靜態(tài)關系。,面向對象技術的定義,對象技術詞典中的定義: 用來描述一些基于下述概念的東西:封裝、對象(對象的標識、屬性和操作)、消息傳送、類、繼承、多態(tài)、動態(tài)聚束。 用來描述一種把軟件組織成對象集合的軟件開發(fā)策略,對象中包括數據和操作。 這里定義: 面向對象技術是一種運用對象、類、繼承、封裝、聚合、消息傳送、多態(tài)性等概念來構造系統的軟件開發(fā)技術。,面向對象技術的組成部分,明確給出面向對象的基本概念 對象、類、繼承、消息和封裝等基本概念 定義面向對象技術中用到的擴展的概念如建模、系統行為等。 給出一套建立模型的技術 表示

4、方法,使分析人員、設計人員、編程人員、管理人員以及用戶彼此溝通。 這種技術的語義學。語義學可用自然語言來描述,也可用形式語言來描述。 給出具體的處理過程 包括對軟件生命周期各階段的描述,對各個階段的進一步細化,以及在生命周期各階段如何運用建模技術和面向對象語言來完成各階段的任務。,面向對象的基本概念,對象 消息 類 抽象 封裝,繼承 多態(tài) 永久對象 主動對象,對象,客觀世界的問題都是由客觀世界的實體及實體間的相互關系構成的,我們把客觀世界的實體稱之為問題空間(問題域)的對象。 對象是客觀世界中的一個實體,它具有以下特性: 有一個名字以區(qū)別于其它對象; 有一個狀態(tài)用來描述它的某些特征; 有一組操

5、作,每一個操作決定對象的一種功能或行為; 對象的操作可分為兩類:一類是自身所承受的操作,一類是施加于其它對象的操作,對象屬性和方法,對象是其自身具有的狀態(tài)特征及可以對這些狀態(tài)施加的操作結合在一起所構成的獨立實體。 屬性和方法是構成對象的兩個主要因素。 屬性是用來描述對象內部狀態(tài)的一個數據項。 方法是用來描述對象運動規(guī)律(行為)的一個操作序列。 一個對象可以有多項屬性和多項方法。 一個對象的屬性和方法被結合成一個整體,對象的屬性值只能由這個對象的方法存取。 系統中的一個對象,在軟件生命周期的各個階段可能有不同的表示形式。如分析與設計、編程階段就不一樣。,消息,對象與對象之間存在著聯系,在面向對象

6、系統中,對象之間的聯系是通過消息來傳遞的。 消息是對象之間相互請求或相互協作的途徑,是要求某個對象執(zhí)行其中某個功能操作的規(guī)格的說明。 發(fā)送消息的對象稱為發(fā)送者,接收消息的對象稱為接收者。 對象間的聯系,只能通過傳送消息來進行。對象也只有在收到消息時,才被激活,被激活后的對象將“知道”如何去操作它的私有數據,去完成所發(fā)送的消息要求的功能,從而對外提供服務。,消息性質和類型,性質 同一對象可接收不同形式、不同內容的多個消息,產生不同的響應 相同形式的消息可以送往不同的對象,不同的對象可以有不同的解釋,并做出不同的響應; 消息的發(fā)送可以不考慮具體的接收者,對象可以響應消息,也可以對消息不予理會,對消

7、息的響應并不是必須的。,類型 可以返回對象的內部狀態(tài)的消息 可以改變對象的內部狀態(tài)的消息 可以做一些特定的操作,改變系統狀態(tài)的消息,類,類是具有相同屬性和方法的一組對象的集合,它為屬于該類的全部對象提供了統一的抽象描述,其內部包括屬性和方法兩個主要部分。 一個類實質上定義的是一種對象類型,它描述了屬于該類型的所有對象的性質。例如Integer 同一個類的所有對象具有相同的性質,即其外部特性和內部實現都是相同的 一個對象的內部狀態(tài)只能由其自身來修改,任何別的對象都不能改變它 類提供了抽象的能力,抽象,定義 抽象是從事物中舍棄個別的、非本質性的特征,抽取共同的、本質性的特征的過程,它是形成概念的必

8、要手段。 保留重要特性 抽象除去了客觀世界對象中不重要的細節(jié),使得只有描述對象的合適的特征才保留下來。抽象的目的是強調相對某種目的而言的重要的性質而忽略那些無關緊要的性質。 目的性 抽象總是針對某種目的的,因為目的決定了哪些是重要的性質,哪些是不重要的性質。同一事物存在不同的抽象,這主要取決于不同的目的。 一般原則 抽象是面向對象技術中使用最廣泛的原則,例如:系統中的對象是客觀世界中事物的抽象;類是對象的抽象,從編程的角度看也是一種抽象數據類型;屬性是事物內部狀態(tài)的抽象,方法(操作)是事物行為的抽象。,封裝,定義 就是把對象的屬性和方法結合為一個不可分的部分,并盡可能隱蔽對象的內部細節(jié) 封裝是

9、一種信息隱蔽技術,必須滿足 清楚的邊界,明確的接口,受保護的內部實現 封裝的原則 避免外對內 “交叉感染”,內對外 “波動效應”。 使用者與設計者分開 封裝單位為對象 可見性及缺陷,繼承,原因 有些類之間有部分相同但又有些差別,繼承所表達的就是一種對象類之間的相互關系,使得某類對象可以繼承另外一類對象的特征和能力。 特性: 類間具有共享特征(包括屬性和具體實現的共享) 類間具有不同部分或新增部分(包括非共享的屬性和具體實現) 類間具有層次結構。 父類或超類;派生類或子類 構造新類方法及重要性,多繼承,一個類可以是多個基類的派生類,它從多個基類中繼承了屬性與方法,這種繼承模式叫作多繼承。 如客輪

10、既是一種輪船,又是一種客運工具。所以它可以同時作為輪船和客運工具這兩個類的派生類。 多繼承的使用取決于編程語言是否支持 “命名沖突”問題,多態(tài),指一個名字可具有多種語義。對象的多態(tài)性是指在基類中定義的屬性或方法被派生類繼承之后,可以具有不同的數據類型或表現出不同的行為。這使得同一個屬性或方法名在基類及其各個派生類中具有不同的詞義。 例如,在C+語言中支持兩種多態(tài)性:編譯時的多態(tài)性和運行時的多態(tài)性。編譯時的多態(tài)性是通過使用重載來實現的。運行時的多態(tài)性是通過虛函數來實現的。,永久對象,就是生存期可以超越程序的執(zhí)行時間而長期存在的對象。 一般都不支持永久對象的。程序中定義的對象,其生存期都不超過程序

11、的運行時間。即當程序運行結束時,它所定義的對象也都消失了。 不足之處要在下一次程序運行時加以恢復 可用基于存儲和管理永久對象的對象管理系統(object management system,簡稱OMS)來實現,主動對象,對象的每個方法是一個在消息的驅動下被動執(zhí)行的操作。向對象發(fā)一個消息,它就響應這個消息而執(zhí)行被請求的方法,否則它的方法就不執(zhí)行。 這樣的對象是被動對象,需要通過消息的驅動 原始的驅動來自驅動主程序 對于多任務并行處理就不適應 主動對象的作用是描述問題域中具有主動行為的事物以及在系統設計時識別的任務,它的主動方法描述相應的任務所應完成的操作。在系統實現階段,主動方法應該實現為一個能

12、并發(fā)執(zhí)行的、主動的程序單位,例如進程或線程。,MFC classes,MFC classes MFC Head files,面向對象的建模技術,靜態(tài)結構模型和動態(tài)行為模型 系統內部模型和系統外部模型 建模技術的表示法和語義學 面向對象建模中的抽象層次,建模技術,完整的面向對象技術包含面向對象分析、設計、實現、測試、維護等多個方面 面向對象的分析和設計用于描述一個系統,是整個面向對象技術中最重要的組成部分 從某個角度(或某個方面)來描述系統的具體方法就叫做建模技術,靜態(tài)結構模型和動態(tài)行為模型,靜態(tài)結構模型 描述于系統或系統中各對象的結構及它們之間靜態(tài)關系的模型,可以稱為靜態(tài)結構模型,它包括類、對

13、象、接口、屬性、關系等;,動態(tài)行為模型 描述系統或系統中類之間的動態(tài)關系及對象行為的模型,亦稱動態(tài)行為模型,它包括方法(操作)、相互作用、協作和狀態(tài)變化等等。,描述系統行為是需求分析的重要組成部分 是系統的功能分解的基礎 在分析、設計及實現時應有一致的模型表示,應從系統需求分析開始就對系統行為建模,并作為導出系統內部結構的根據之一。,系統內部模型和系統外部模型,內部模型 通過系統內部的組件來描述系統,這種模型就稱之為內部模型 內部視圖 由于它是從內部來觀察系統得到的結果,又稱之為內部視圖。 作用 內部視圖說明了系統要怎樣做,它給出了系統的設計,因而是給出一種問題的解決方案。,外部模型 把系統當

14、作一個黑盒子,從外部來描述系統,這種模型就是外部模型 外部視圖 由于這是從外部來觀察系統得到的結果,又稱之為外部視圖。 作用 外部視圖說明了系統是什么,用來定義需求,建模技術的表示法和語義學,建模技術兩組成部分 表示方法,它能使分析人員、設計人員、編程人員、管理人員以及用戶彼此溝通,用得最多的,也是最直觀的表示方法是圖形表示法 語義學。語義學可用自然語言來描述,也可用形式語言來描述,或者兩者相結合,這要根據建模技術的嚴格程度而定。 模型元素 通過建模技術中的表示方法能使我們從要被建模的系統中抽象出各種元素,這些元素稱為模型元素,其目的是提供人們可以理解的表示。 建模元素 在說明各種建模技術的語

15、義學時,還將用到一些概念和符號,它們在最后組成的軟件系統模型中不直接表現出來,這些元素稱為建模元素。,面向對象建模中的抽象層次,采用不同抽象層次的模型來表示不同抽象層次上的系統描述 第一,與系統有關的人員是多方面的,這些不同人員需要抽象層次不同的模型。例如 項目管理人員只關心一些最主要的因素 客戶需要概念層上的模型驗證系統需求 編程人員往往關心與實現有關的細節(jié) 第二,軟件開發(fā)的不同階段,對模型的要求不同。 在需求分析階段,主要描述問題域中的概念,不考慮所有的細節(jié),不考慮將來的軟件,更不考慮如何實現,因此需要概念層的模型 在設計階段,要與軟件結構相聯系,如要考慮軟件的接口等,因此需要設計層的模型

16、。,一般三層次,概念層模型、設計層模型(或說明層模型)及實現層模型,例如: 概念層的類圖 所畫的模型很少或完全沒有顧及要實現它的軟件,獨立于語言 設計層的類圖 軟件的接口,可隨實現環(huán)境,性能特征或制造商的不同而有多種實現 實現層的類圖 揭示了類的實現,面向對象的軟件過程,傳統的和面向對象的軟件生命周期模型 面向對象軟件生命周期中的主要活動 完全面向對象的軟件生命周期的概念,傳統的軟件生命周期模型,瀑布式的 把軟件的開發(fā)過程分解為分析、設計、編碼、測試和維護五個階段 循環(huán)往復,面向對象的軟件生命周期模型,噴泉模型 每一階段都可以互相反饋,整個過程是一種迭代、漸增的開發(fā)過程,面向對象軟件生命周期中

17、的主要活動,面向對象分析 面向對象設計 面向對象的實現 面向對象的測試 面向對象的維護,面向對象分析,針對問題域 是指從問題陳述著手,分析或構造包含現實世界最重要性質的模型。面向對象分析強調直接針對問題域中客觀存在的各項事物設立分析模型中的對象。 簡潔、明確 必須簡潔、明確地抽象了目標系統必須做的事情,而不是如何做這些事。 能被問題域專家所理解 對問題域的觀察、分析和認識直接,對問題域的描述也直接。所采用的概念及術語與問題域中的事物保持高度一致,不存在語言上的鴻溝。,面向對象設計,負責全局構造的高級策略,解決怎樣干的問題 系統的細化、優(yōu)化 在系統的分析模型基礎上再細化,系統設計者必須確定所優(yōu)化

18、的性能,選擇問題處理的策略和初步配置資源。進一步考慮實現方法。如選擇數據結構和算法。 漸增式發(fā)展 在面向對象設計中采用與面向對象分析相同的表示方法和模型結構,使得系統是漸增式的修改、調整和細化,并增加與實現有關的部分。,面向對象的實現,選擇一種面向對象的編程語言(C+,Java等),把設計作適當映象并改寫成相應的程序。 程序與分析和設計模型對應 與面向對象設計模型緊密對應的 與面向對象分析模型也是對應的 增加一些與實現有關的因素 有效地提高了開發(fā)的效率,也有利于今后的維護工作。,面向對象的測試,在測試過程中運用面向對象技術,進行以對象(或類)為核心的測試。 不夠成熟 測試方法、測試方法和工具不

19、夠成熟 原因 不確定性 系統的運行是通過消息傳遞來驅動的,運行具有不確定性。導致動態(tài)運行中的錯誤不易發(fā)現,錯誤定位比較困難。 整體測試困難 每個對象(類)通過測試以后,如何測試整個軟件的正確性、測定可靠性和其他性能都比較困難。,面向對象的維護,指在軟件投入運行之后的正?;顒?軟件維護的難點 理解軟件困難 文檔欠缺。分析、設計文檔的表示方法不一致,程序一般不能直接對應問題域,從而使維護工作非常困難。 面向對象技術優(yōu)點 理解容易。程序與問題域具有一定程度的對應性,分析和設計模型的表示方法也基本一致 互影響小。具體對象類的方法被封裝在對象類中,因此在分析、設計模型和程序中的修改就可局限于對象類內,完

20、全面向對象的軟件生命周期的概念,把生命周期中的活動建模為對象,并在每個活動對象上加上合同,只有合同滿足才啟動后一個活動。(又稱合同驅動的生命周期) 合同是通過前、后條件來表達的。 在一個活動發(fā)生前必須滿足一定的約束(前條件),而在一個活動發(fā)生后另一個活動發(fā)生前,則必須滿足前一個活動的后條件。因而只需滿足合同,控制流就能以任意次序從一個對象轉到另一個對象。 合同驅動的生命周期的活動 可以以反復或漸增的次序進行,也可以根據一定的標準和要求進行裁剪,圖示,面向對象技術在現代仿真中的應用和發(fā)展,典型優(yōu)點 能建立與實體非常相似的系統模型 使開發(fā)復雜系統的速度更快、質量更高、可維護性更好、開發(fā)風險更小等

21、缺點 經常需要更多的基礎程序和仿真機制的知識 初始類的開發(fā)也很費時間,高級體系結構(HLA),美國國防部提出建模與仿真的高級體系結構(HLA) 原因 仿真應用具體,它們之間缺乏互操作,重用性也不好。 需要建立使仿真系統之間能進行互操作和建模與仿真資源能重用的體系結構 HLA涉及到一組仿真?zhèn)€體的聯邦。必須按規(guī)定建立聯邦對象模型和仿真對象模型,才能為聯邦成員進行信息交換提供便利,聯邦和聯邦成員,聯邦(Federation) 指由一組仿真體、一個聯邦對象模型(FOM)和運行時間支撐結構(RTI)結合在一起形成的一個更大型的仿真模型或者仿真體。 聯邦成員(Federate) 參與到聯邦中的仿真?zhèn)€體,HLA的定義,由三部分組成 框架和規(guī)則集 聯邦成員訪問RTI的接口規(guī)范 對象模型模板(OMT) 是一個有機整體,缺一不可 如規(guī)則集規(guī)定HLA中 聯邦必須建立聯邦對象模型(FOM) 聯邦成員必須建立仿真對象模型(SOM) 且對象模型SOM和FOM必須用OMT記錄,而OMT中記錄的信息又為聯邦成員利用RTI接口與RTI及其它聯邦成員進行信息交換提供便利。,HLA對象模型,主要用來描述兩類系統 SOM。用來描述聯邦中的各個聯邦成員。即創(chuàng)建各單個的HLA仿真的對象模型(SOM) FOM。用來描述一個聯邦中相互之間存在信息交換特征的那些聯邦成員,即創(chuàng)建HLA的聯邦對象模型(FOM)

溫馨提示

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

評論

0/150

提交評論