第2章-面向?qū)ο髮?dǎo)論_第1頁
第2章-面向?qū)ο髮?dǎo)論_第2頁
第2章-面向?qū)ο髮?dǎo)論_第3頁
第2章-面向?qū)ο髮?dǎo)論_第4頁
第2章-面向?qū)ο髮?dǎo)論_第5頁
已閱讀5頁,還剩59頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、信息系統(tǒng)分析與設(shè)計(jì) 第2章 面向?qū)ο髮?dǎo)論,2.1 面向?qū)ο?原先的程序開發(fā),數(shù)據(jù)和過程是分離的; 現(xiàn)實(shí)世界中的對象,都有特性(屬性,類似于數(shù)據(jù))和行為(類似于過程),二者是結(jié)合在一起的;這個(gè)角度來看,計(jì)算機(jī)編程中將數(shù)據(jù)和過程結(jié)合起來更符合邏輯。 面向?qū)ο蟮姆椒ò嫦驅(qū)ο蠓治?、面向?qū)ο笤O(shè)計(jì)、面向?qū)ο蟪绦蛟O(shè)計(jì),分別對應(yīng)于系統(tǒng)分析、系統(tǒng)設(shè)計(jì)、系統(tǒng)實(shí)施三個(gè)階段,分別構(gòu)成系統(tǒng)的邏輯模型、物理模型和計(jì)算機(jī)可執(zhí)行的模型。,2.1.1 什么是對象,現(xiàn)實(shí)的中對象往往具有特性和行為;一個(gè)鉆孔機(jī)就是一個(gè)對象,他有電壓、重量、轉(zhuǎn)速、功率等特征,也有旋轉(zhuǎn)、沖擊等行為。 一部手機(jī),具有型號、價(jià)格、存儲容量等特性,也有撥

2、打電話、收發(fā)短信、上網(wǎng)等行為; 一個(gè)銷售訂單也是一個(gè)對象,因?yàn)樗袉翁?、日期、商品種類及數(shù)量等特征,也有計(jì)算稅費(fèi)、計(jì)算總額等功能行為。,2.1.1 什么是對象DVR示例,每臺DVR有個(gè)序列號,作為唯一表示; 有屬性:生廠商名稱(例如Panasonic,JVC)、型號(PC D4744S)、顏色、碟片容量、兼容格式; 有行為:播放DVD等視頻,前進(jìn)、后退、暫停播放; 為了播放影片(讓他工作),需要發(fā)送一個(gè)消息;這個(gè)消息可以通過遙控器發(fā)送(遙控器是另外一個(gè)對象),或者按下DVR的播放按鈕(按鈕就相當(dāng)于DVR的接口); 接到信號后,DVR開始啟動(dòng)、解碼、輸出等技術(shù)工作,用戶不需要知道其工作原理;從而

3、實(shí)現(xiàn)了對用戶隱藏技術(shù)細(xì)節(jié),這就是封裝,2.1.1 什么是對象DVR示例,如果滿足相關(guān)條件(如電源接通、有兼容格式的影片等),DVR會(huì)按照預(yù)期運(yùn)作,這就是成功場景; 但是如果條件不滿足,DVR播放機(jī)會(huì)返回錯(cuò)誤消息提示(例如沒有片源) DVR播放機(jī)還會(huì)想其他對象發(fā)送消息;例如它有視頻、音頻接口。用戶可以用電纜線連接電視,DVR播放機(jī)向電視發(fā)送視頻信息,從而實(shí)現(xiàn)圖形呈現(xiàn)。 音頻也是同樣道理。,面向?qū)ο蟮膸讉€(gè)主要概念對象,屬性:高度、直徑、蘋 果數(shù)等靜態(tài)特征。 操作:光合作用、開花、 結(jié)果等動(dòng)態(tài)特征。 這些操作是響應(yīng)外界環(huán)境(溫度、濕度等)變化后的自主行為,從而實(shí)現(xiàn)了對象的自我管理。,醫(yī)療保險(xiǎn)賬戶 屬

4、性: 姓名:張三 年度:2005 醫(yī)保號累計(jì)賬戶撥入金額:1800.00 累計(jì)賬戶支付金額:230.50 最高統(tǒng)籌限額:50000.00 累計(jì)統(tǒng)籌支付金額:680.00 ,操作: 查詢余額 撥入資金 支付費(fèi)用 年度結(jié)轉(zhuǎn) ,對象舉例,屬性取決于視點(diǎn),從銷售人員的角度 型號 價(jià)格 顏色 里程數(shù),一輛汽車具有的屬性:,從維修人員的角度 馬達(dá)類型 傳動(dòng)類型 維修記錄,從銷售人員的角度 處理客戶定單 準(zhǔn)備銷售合同 加入清單 從清單中刪除,一輛汽車具有的操作:,從維修人員的角度 測試剎車 修理剎車 轉(zhuǎn)動(dòng)輪胎 檢查馬達(dá)速度,操作取決于視點(diǎn),2.1.2 類,對象是具體的

5、(序列號為D1DE99821的DVR播放機(jī)) 現(xiàn)實(shí)世界中存在很多相同性質(zhì)的類(Panasonic生產(chǎn)了幾十萬臺DVR播放機(jī)),它們有相同的屬性和操作。 可以將這幾十萬臺DVR播放機(jī)抽象為屬于同一個(gè)“類” 人“類”:張三、李四、王五 淘寶上,每天產(chǎn)生幾百萬份訂單;這些訂單有相似的熟悉、操作,可以抽象為一個(gè)訂單類:SalesOrder,對象在不同階段有不同表現(xiàn)形式,OOA:接近現(xiàn)實(shí)世界的 客觀實(shí)物,模型比較粗 OOD:細(xì)化為軟件對象 OOP:將這些軟件對象根據(jù)選擇的程序設(shè)計(jì)語言變成程序?qū)ο?例子:人事管理中的“員工”,OOA:發(fā)現(xiàn)一個(gè)員工對象有姓名、工資等信息,提供“申報(bào)本人信息”服務(wù)。 OOD,

6、OOP階段,public class Employee private String name; /屬性部分 private double salary; private Date hireDay; public void Employee(.) / 構(gòu)造函數(shù) . public String getName() / 提供的服務(wù)(操作) return name; public double getSallary() return sallary; ,可視化的對象,類的示例,類: Employee,類名,屬性,方法,例子,對象“奧迪A8”、“奔馳”、“雪鐵龍”屬于一個(gè)共同的類“Car”; “張三”

7、、“李四”都屬于類“人” 系統(tǒng)分析與設(shè)計(jì)、MIS都屬于類“課程”,例子:“抽象與具體”的關(guān)系,區(qū)分對象和類,同類對象具有相同的屬性和服務(wù),是指它們的定義形式相同,即具有相同的屬性項(xiàng)和行為方式,而不是說每個(gè)對象的屬性值都相同。 類是靜態(tài)的,類的存在、語義和關(guān)系在程序執(zhí)行前就已經(jīng)定義好了。 對象是動(dòng)態(tài)的,對象在程序執(zhí)行時(shí)可以被創(chuàng)建和刪除。計(jì)算機(jī)中一個(gè)對象通常就是指一個(gè)實(shí)例 有的場合不作區(qū)分,2.1.3 屬性,人有高矮胖瘦,五官相貌; SalesOrder類也可以有屬性,例如: 訂單號(orderNo)、訂單日期(orderDate)、送貨日期(deliveryDate)、訂單項(xiàng)目(orderTer

8、ms),2.1.4 操作,類有操作(方法),用于描述類的行為、功能; public double discount(int discountID) ,類的示例,類: Employee,類名,屬性,方法,2.1.5 封裝,保護(hù)隱私; 保持穩(wěn)定性與健壯性 提升系統(tǒng)、代碼的可重復(fù)利用率,封裝(encapsulation),封裝(encapsulation)是一種信息隱蔽技術(shù),用戶只能看見對象封裝界面上的信息,對象的內(nèi)部實(shí)現(xiàn)對用戶是隱蔽的。,封裝(encapsulation),類的設(shè)計(jì)、使用與實(shí)現(xiàn)的分離 設(shè)計(jì)者類的外部設(shè)計(jì) 使用者操作的功能與調(diào)用方法 實(shí)現(xiàn)者數(shù)據(jù)結(jié)構(gòu)和實(shí)現(xiàn)算法,2.1.6 對象本體,2

9、.1.7 泛化 與 繼承,2.1.7 繼承性(inheritance),現(xiàn)實(shí)世界有繼承,繼承權(quán)、繼承法 繼承是類間的基本關(guān)系,它是基于層次關(guān)系的不同類共享數(shù)據(jù)和操作的一種機(jī)制。 父類中定義了其所有子類的公共屬性和操作,在子類中除了定義自己特有的屬性和操作外,可以繼承其父類(或祖先類)的屬性和操作,還可以對父類(或祖先類)中的操作重新定義其實(shí)現(xiàn)方法。,繼承,正確性判斷:is a (kind of) 一般與特殊關(guān)系,2.1.8 多態(tài)性,2.1.9 接口,現(xiàn)實(shí)世界有接口,例如電腦上有各種接口(USB、PCI接口等) 接口是一組沒有實(shí)現(xiàn)的操作方法和常量聲明的集合。任何實(shí)現(xiàn)接口的類必須實(shí)現(xiàn)接口中聲明的所

10、有方法。(java等語言中存在) 接口目的:類相互替代、提升靈活性,2.1.11 包,電腦上的文件有幾百萬個(gè),甚至更多;如何組織這些文件?,2.1.12 關(guān)聯(lián),世間萬物,往往存在聯(lián)系 銷售訂單與某個(gè)顧客有聯(lián)系,一個(gè)學(xué)生和某門課程有聯(lián)系,某個(gè)司機(jī)和某輛車有聯(lián)系,聚合整體與關(guān)系,組合,統(tǒng)一建模語言UML,Unified Modeling Language,What is the UML?,UML stands for Unified Modeling Language. The UML is a language for visualizing (可視化) specifying (詳述) cons

11、tructing (構(gòu)造) documenting (文檔化) the artifacts of a software-intensive system.,說明: UML can be used with all processes, throughout the development life cycle, and across different implementation technologies.,Why Build Models?,更好地理解問題 (To understand the problem better) 人員之間的溝通 (To communicate with oth

12、er persons) 發(fā)現(xiàn)錯(cuò)誤或疏漏的地方 (To find errors or omissions) 獲取設(shè)計(jì)結(jié)果 (To plan out the design) 生成代碼 (To generate code),UML概述,為何研究UML結(jié)束方法大戰(zhàn) UML是由世界著名的面向?qū)ο蠹夹g(shù)專家G. Booch,J. Rumbaugh 和 I. Jacobson發(fā)起,在Booch方法,OMT方法和OOSE方法的基礎(chǔ)上,廣泛征求意見,集眾家之長,幾經(jīng)修改而完成的。 Three amigos,Booch Rumbaugh Jacobson,一些主要的OO建模技術(shù)(UML之前),Object-orie

13、nted systems analysis, by Shlaer/Mellor in 1988 OOA/OOD, by Peter Coad and Edward Yourdon in 1991 Responsibility-driven, CRC-cards by Rebecca Wirfs-Brock (in 1990) Booch Method, by Grady Booch in 1991 OMT (Object Modelling Technique), by James Rumbaugh, etc. in 1991 OOSE (Object-oriented software en

14、gineering), by Ivar Jacobson in 1992 其它還有很多,UML概述,1994年Booch和Rumbaugh在Rational Software Corporation開始了UML的工作,其目標(biāo)是創(chuàng)建一個(gè)“統(tǒng)一的方法”, 1995年OOSE的創(chuàng)始人Jacobson加盟到這項(xiàng)工作中,工作重點(diǎn)轉(zhuǎn)移到創(chuàng)建一種統(tǒng)一的建模語言UML 1996年6月、10月、1997年1月、11月分別推出了UML0.9、 UML0.91、 UML1.0、 UML1.1,UML概述,1997年11月,OMG(Object Management Group)批準(zhǔn)把UML1.1作為基于面向?qū)ο蠹夹g(shù)

15、的標(biāo)準(zhǔn)建模語言 之后,UML進(jìn)行了持續(xù)的修訂和改進(jìn),先后產(chǎn)生了UML1.2、1.3、1.4、1.5版本 2004年推出了UML2.0,UML2.0對UML1.x作了重大的修改。,UML 1.3,June 99,UML 1.4,Sep., 2001,UML 1.5,March, 2003,UML 2.0,History of the UML,已經(jīng)正式發(fā)布,Contributions to the UML,說明: 標(biāo)準(zhǔn)建模語言UML是OO領(lǐng)域中具有劃時(shí)代意義的研究成果。 UML吸取了面向?qū)ο蠹夹g(shù)領(lǐng)域中其它流派的長處。 隨著UML被OMG采納為標(biāo)準(zhǔn),面向?qū)ο箢I(lǐng)域的方法學(xué)大戰(zhàn)(method wars)

16、也告結(jié)束。 UML得到了諸多大公司的支持,如IBM,HP,Oracle,Microsoft等。 預(yù)計(jì):UML將成為面向?qū)ο蠹夹g(shù)領(lǐng)域內(nèi)占主導(dǎo)地位的標(biāo)準(zhǔn)建模語言。,UML和程序設(shè)計(jì)語言的關(guān)系,用Java,C+ 等 programming language是用編碼實(shí)現(xiàn)一個(gè)系統(tǒng)。 用UML是對一個(gè)系統(tǒng)建立模型。 一些CASE工具可以根據(jù) UML所建立的系統(tǒng)模型來產(chǎn)生Java,C+ 或其它程序設(shè)計(jì)語言代碼框架。,關(guān)于UML的一些認(rèn)識,UML不是一個(gè)獨(dú)立的SA、SD方法,而是面向?qū)ο骃A、SD方法中的一個(gè)部分。 一個(gè)比喻:UML中所提供標(biāo)準(zhǔn)的圖符,相當(dāng)于音樂五線譜里的樂符,學(xué)會(huì)看樂符才能看得懂樂譜,才能進(jìn)

17、一步創(chuàng)造音樂。同樣,懂得UML中的圖符才能進(jìn)行系統(tǒng)分析和設(shè)計(jì)。 OOA/OOD教您活用UML的圖符,以及活用時(shí)所必須遵循的原則及步驟。,貝多芬作曲時(shí)使用五線譜,您設(shè)計(jì)系統(tǒng)時(shí)使用UML,一個(gè)比喻,UML語言定義了五種類型,11種不同的圖,把它們有機(jī)的結(jié)合起來就可以描述系統(tǒng)的所有視圖。 用例圖(Use case diagram) 從用戶角度描述系統(tǒng)功能,并指出各功能的操作者。 靜態(tài)圖(Static diagram),表示系統(tǒng)的靜態(tài)結(jié)構(gòu)。包括類圖、對象圖、包圖。 交互圖(Interactive diagram), 描述對象間的交互關(guān)系。包括順序圖、協(xié)作圖。 行為圖(Behavior diagram)

18、,描述系統(tǒng)的動(dòng)態(tài)模型和組成對象間的交互關(guān)系。包括狀態(tài)圖、活動(dòng)圖。 實(shí)現(xiàn)圖( Implementation diagram ) 用于描述系統(tǒng)的物理實(shí)現(xiàn)。包括構(gòu)件圖、部件圖。,圖(Diagrams),圖,在分析階段,用戶的需求用UML模型來描述。 在設(shè)計(jì)階段,引入定義軟件系統(tǒng)中技術(shù)細(xì)節(jié)的類(如處理用戶接口、數(shù)據(jù)庫、通信和并行性等問題的類)。 在實(shí)現(xiàn)階段,用面向?qū)ο蟪绦蛟O(shè)計(jì)語言將來自設(shè)計(jì)階段的類轉(zhuǎn)換成實(shí)際的代碼。 UML模型還是測試階段的依據(jù)。 單元測試使用類圖和類規(guī)格說明 集成測試使用構(gòu)件圖和協(xié)作圖 系統(tǒng)測試使用用例圖來驗(yàn)證系統(tǒng)的行為,UML在系統(tǒng)開發(fā)各階段的應(yīng)用,支持UML的工具,Rationa

19、l Rose Together Visio 其它工具,Rational Rose開發(fā)工具,Rose 是Rational公司開發(fā)的支持UML的,用于分析和設(shè)計(jì)面向?qū)ο筌浖到y(tǒng)的工具。 IBM.Rational.Suite.V2003.06.00.Multilanguage,Rational產(chǎn)品的安裝,小結(jié),UML是個(gè)龐大的表示法體系。本課程不可 能系統(tǒng)地講授該體系,但會(huì)結(jié)合OOA/OOD 簡述如何使用UML的常用表示法。 OOA/OOD要求學(xué)會(huì)使用常用的UML圖(用例圖、類圖、順序圖等)。,面向?qū)ο蠓椒ǖ膬?yōu)勢,面向?qū)ο蠓椒ㄓ腥缦聝?yōu)勢: 與人類思維方式一致 各階段過渡平滑 可維護(hù)性高、易于重用 生

20、命力強(qiáng),1、更接近人類思維方式,人認(rèn)識世界從對象開始,結(jié)構(gòu)化 Vs. 面向?qū)ο笈e例,順應(yīng)人類思維習(xí)慣,讓軟件開發(fā)人員在解空間中直接模擬問題空間中的對象及其行為,結(jié)構(gòu)化方法: FindaReader(aReader); FindaBook(aBook ); If (Validate(aReader) Lend(aReader, aBook); SaveaLoan(); Else PrintErrorMsg(0);,在計(jì)算機(jī)中模擬現(xiàn)實(shí)世界的事和物,使它們具有生命,主動(dòng)完成操作,面向?qū)ο蠓椒ǎ?aReader.Find(); aBook.Find(); If(aReader.Validate() aBook.Lend(); aLoan.In

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論