《軟件工程》第九章面向?qū)ο蠓椒▽W引論_第1頁
《軟件工程》第九章面向?qū)ο蠓椒▽W引論_第2頁
《軟件工程》第九章面向?qū)ο蠓椒▽W引論_第3頁
《軟件工程》第九章面向?qū)ο蠓椒▽W引論_第4頁
《軟件工程》第九章面向?qū)ο蠓椒▽W引論_第5頁
已閱讀5頁,還剩29頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第九章面向?qū)ο蠓椒▽W引論面向?qū)ο蠓椒▽W引論9.1C 9.29.39.49.59.69.7面向?qū)ο蠓椒▽W概述面向?qū)ο蟾拍蠲嫦驅(qū)ο蠼ο竽P蛣討B(tài)模型功能模型3種模型之間的關系學習重點和難點理解面向?qū)ο蠹夹g中的基本思想、 概念和原理等;理解面向?qū)ο蠼⒌娜N 模型的功能和相互關系。9.1面向?qū)ο蠓椒▽W概述軟件工程發(fā)展的兩個重要階段傳統(tǒng)軟件工程面向?qū)ο筌浖墓こ?傳統(tǒng)軟件工程以面向過程的結(jié)構(gòu)化程序設計為基礎;遵循”程序=數(shù)據(jù)結(jié)構(gòu)+算法船穩(wěn)相;由“追求技巧與效率到清勵涕一、效率第二,缺點:不太適應規(guī)模大、特別復雜的項目; 難以解決軟件重用的問題; 難以適應需求的變化; 難以徹底解決維護問題。按人類習慣

2、的思維方法,以現(xiàn)實世界中客觀 面向?qū)ο筌浖こ?存在的事物(即對象)為中心來思考和認識問采用的思想方法與原則:抽象、分類、繼 承、聚合、封裝等。以易于理解的方式表達軟件系統(tǒng),建立問題 域模型,使設計出的軟件盡可能直接地描述現(xiàn)實 世界,具有更好的可維護性軟件工程學家Codd和Yourdon認為:面向?qū)ο?對象+類+繼承+通信如果一個軟件系統(tǒng)采用這些概念來建立模型并予以實現(xiàn),那么它就是面向?qū)ο蟮?。面向?qū)ο蠹夹g發(fā)展概述初始階段:上世紀60年代,挪威奧斯陸大學和挪威計 算中心開發(fā)的Simula67的語言;70年代中期,Xerox研究中心開發(fā)的Sma I I ta I k 語言,具備了面向?qū)ο笳Z言的各種

3、特征。發(fā)展階段:涌現(xiàn)大批面向?qū)ο缶幊陶Z言(OOPL) o如 C+、Ob ject i ve-Cx Ob ject Pascal、Eiffel、 Actor 等。成熟階段:面向?qū)ο蠓治觯?0A)和面向?qū)ο笤O計( 00D)的研究。出現(xiàn)各種著名的面向?qū)ο蠓治鲈O計 的方法,如:Coad/Yourdon的方法、Booch的方法 、0MT方法、W i rtf-Brock的RDD方法、Jacobson的 00SE方法等。面向?qū)ο蠹夹g的基本觀點 任何客觀的事物或?qū)嶓w都是對象。對象組成客觀世界,復雜的對象可以由簡單的對象組成。 具有相同數(shù)據(jù)和操作的對象可以歸并為一個類( class),對象是對象類的一個實例。類

4、可以派生出子類,子類繼承父類的全部特性( 數(shù)據(jù)和操作),又可以有自己的新特性。子類與父 類形成類的層次結(jié)構(gòu)。面向?qū)ο蠓椒▽W的優(yōu)點對象之間通過消息傳遞相互聯(lián)系。與人類習慣的思維方法一致穩(wěn)定性好可重用性好較易開發(fā)大型軟件產(chǎn)品可維護性好9.2面向?qū)ο蟮母拍?. 1 對象(Object)在現(xiàn)實世界中有意義的、與所要解決的問題有關 系的任何事物都可以作為對象,包括具體的物理實體 的抽象、人為的概念、任何有明確邊界和意義的東 西。如:一名職工、一本圖書、貸款、生產(chǎn)計劃、一 場演出等。對象既有靜態(tài)的屬性,又有動態(tài)的行為(操作)。從軟件開發(fā)的角度定義對象系統(tǒng)中用來描述客觀事物的實體,是構(gòu)成系 統(tǒng)的基本單位。由

5、一組屬性和相關操作組成的成務組成。這是 對象的兩個基本要素:屬性:用來描述對象靜態(tài)特征的一個數(shù)據(jù)項;服務:用來描述對象動態(tài)特征(行為)的一個操 作序列。對象的屬性卻歷有操作封裝在一起,構(gòu)成一個 統(tǒng)一彳朱。屬性一般只能通過執(zhí)行對象的操作來改變。例:某個對象的形象表示表示內(nèi)部狀態(tài)的數(shù)據(jù)、實現(xiàn)各操作的代碼及局部界面數(shù)據(jù),被隱藏,無法從外面看見、訪問或修改;使用對象的時候,只能通過對象與外界的界面來 操作:操作時,只需知道該操作的名字和所需要的參數(shù),不需要知道這些操作是如何實現(xiàn)的;簡單、方便,安全性和可靠性高。9.2.2其他概念1、類(Class)具有相同屬性和服務的一組對象的集合,它為屬于 該類的全

6、部對象提供了統(tǒng)一的抽象描述。“類”好比是一個對象模板,用它可以產(chǎn)生多個對象.學生對二類名生對象2姓名:弓屬性名:李四年齡:2聆:20性別:1虬女選福服務選課考方考試類的描述例:類(class):是對象的“類型”(type)。一般用關鍵字class來表示。class CPeople long ID;string name;void DoSomethingO ;對象是類的實例:CPeople Tom2、實例(instance)實例是某個特定類所描述的一個具體對象。如張三”、“李四”是類“學生”的實例。對象:可以是一個具體的對象,也可以泛指一 般的對象實例:必然是指一個在客觀世界中存在的具體 對象3

7、、消息(message)對象之間通信的手段,是一個對象要求另一 對象執(zhí)行類中定義的某個操作的規(guī)格說明。通常一個消息由三部分組成:接收消息的對象消息標識符(即消息名)零個或多個變元例如:MyC ircle. Show (Green)MyCircle是接收消息的對象的彳字,Show是消息 名,Gteen是消息的變元。4、方法(method)對象所能執(zhí)行的操作稱為方法,也就是 類中所定義的服務。方法描述了對象執(zhí)行的 功能、響應消息的操作。在CH中稱為成員函數(shù)。5 屬性(attr ibute)屬性是對客觀世界實體所具有的性質(zhì)的抽象,是類中所定義的數(shù)據(jù)。如:學生類屬性有姓名、年齡、性別等。不同對象的同一

8、屬性可以具有相同或不同 的屬性值。如:張三的全齡為19,李四的年齡為2006、封裝(encapsulation)封裝是把對象的屬性和實現(xiàn)操作的代碼結(jié) 合成一個獨立的系統(tǒng)單位,并盡可能隱藏對象的內(nèi)部細節(jié),對象以外的部分不能直接作用于對象的內(nèi)部數(shù)據(jù)(屬性),對象間的通信只能通過明確的消息來進行。7、繼承(i nher i tance)在現(xiàn)存類定義的基礎上,建立新定義類的技術。新類的定義可以是現(xiàn)存類所聲明的數(shù)據(jù)、定義與 新類所增加的聲明的組合。新類復用現(xiàn)存類的定義, 而不要求修改現(xiàn)存類?,F(xiàn)存類可當作父類(泛化類、基類或超類)來引用 ,則新類相應地可當作子類(特化類、子女類或派生 類)來引用。實現(xiàn)繼承

9、機制的原理父類、子類、超類父類:一個類的上層是父類。子類:一個類的下層是子類。超類:若C2是C1的子類,C3是C2的子類,則C1是C3 的超類。例:超類父類子類父類船類噸位 時速 吃水線船類噸位 時速載客量 行駛 停泊船類船類停泊客輪類繼 承繼 承噸位時速吃水線載客量經(jīng)過的國家-if-停泊子類海上客輪單繼承與多繼承單繼承:一個類只允許有一個父類,即類等級為樹形結(jié)構(gòu)多繼承:一個類允許有多個父類繼承的傳遞性: 如果類C繼承類B,子類大學生運動員類B繼承類A,則類C 繼承類A。8、多態(tài)性(polymorphism)繼承性的優(yōu)點使得相似的對象可以共享程序代碼和數(shù)據(jù)結(jié) 構(gòu),大大減少程序中的冗余信息。便于

10、軟件修改維護。用戶在開發(fā)新系統(tǒng)時不必從零開始,可以繼 承原有相似功能或者從類庫中選取需要的 類,再派生新類。指對象根據(jù)所接受的消息而做出動作,同 樣的消息為不同的對象接受時可導致完全不同 的行動。例9、重載(overloading)包括:函數(shù)重載:在同一作用域,若干個參數(shù)特征不同的函數(shù)可以使用相同的函數(shù)名字;運算符重載:同一個運算符可以施加于不同類型的操作數(shù)上面。9.3面向?qū)ο蠼DP停菏且唤M圖示符號和組織這些符號的規(guī)則,利用 它們來定義和描述問題域中的術語和概念。面向?qū)ο竽P偷慕M成:用例圖功能模型一般的建模順序:對象模型(object model):定義實體,描述 系統(tǒng)數(shù)據(jù),定義“對誰做”動

11、態(tài)模型(dynamic model):描述系統(tǒng)控制結(jié) 構(gòu),規(guī)定“何時做”功能模型(functional model):描述系統(tǒng)功 能,指明系統(tǒng)應“做什么”幾種著名的面向?qū)ο蠓椒˙ooch方法(1991)Coad-Yourdon方法(1991)Rumbaugh 方法(簡稱OMT)(Object Modeling Technology, 1991)Jacobson 方法(簡稱OOSE, 1992)由 Rumbaugh、Booch、Jacobson 提出的統(tǒng)一建模語言(簡稱UML)(Unify Modeing Language, 1994)UML統(tǒng)一建模語言一種可視化建模語 言,能描述開發(fā)需要2W0

12、年的各種視圖,并以此.3*OOTSU1i知年”月,offlGtur1K7年9月,景后援文OK1997年1月.第一忒?。∕IGUIL收侔為基礎組建系統(tǒng)。其發(fā)展過程如右常用的工具:Rational RoseIhifiidVBooch方法泥貳化方法UML的軟件系統(tǒng)結(jié)構(gòu)Y+1”視圖fB設討視國最察用尸功能奈燒鬃成 性能 可吞吐能力實現(xiàn)視圖分布試圖進程視圖系統(tǒng)工程用例視圖軟件管理系統(tǒng)拓撲結(jié)構(gòu) 分發(fā),安裝 通信9.4對象模型描述系統(tǒng)內(nèi)部對象的靜態(tài)結(jié)構(gòu),包括對 象本身的定義、對象的屬性和操作、以及 對象與其它對象之間的關系。UML中,對象模型通常由“類圖”組成。 9. 4. 1類圖的基本符號類 實例1(類名

13、) 屬性值J示例正方形邊長:Float位置:Integer邊界顏色內(nèi)部顏色畫擦圖圖動9.4.2表示關系的符號類和類之間的聯(lián)系稱為“關系”;關系可以 是物理的,也可以是邏輯的。通常分為:關聯(lián)、范化、依賴和細化四例:二元關聯(lián)表示:在類之間畫一條連線。角色:關聯(lián)的端點,說明類在關聯(lián)中的作用和角三元關聯(lián)的表示三元關聯(lián)例:三元關聯(lián)關。常見的描述有: 未標明,默認為1;1+或1;0 亦或*;3表示類中有多少個對象與關聯(lián)類中的一個對象相0 1;1 15;限定關聯(lián):對關聯(lián)的含義做某種約束。類1限定詞I類2目錄文件名文件進一步說明對象間關聯(lián)的性質(zhì)。公司個人雇主 :扈員雇小務作齡資取工工工2、聚合文件段落句子K 3、范化C?繼承性的體現(xiàn).通常包含一個基類和幾個子類?;惐硎据^為一般、普通的概 念;子類則繼承基類的屬性和操 作,但乂具有自身的屬性和操作。學生 赤 年級 獲子類A基類工子類B中學生學校年級考試分科大學生學年專校級業(yè)考 選試 課一種“整體與成員”的關系。表示整體類的那一端 增加一個菱形框。包括共享聚合和組合聚合。如:共享聚合例課題組成員類組合聚合例 4、依賴和細化依賴:一個模型元素是獨立的,另一個依賴于這個 獨立的模型元素,若獨立元素改變,將影響 此元素。如成績依賴課程:成績F4課程細化:

溫馨提示

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

評論

0/150

提交評論