管理信息系統(tǒng)第九章 面向?qū)ο蟮姆治雠c設計_第1頁
管理信息系統(tǒng)第九章 面向?qū)ο蟮姆治雠c設計_第2頁
管理信息系統(tǒng)第九章 面向?qū)ο蟮姆治雠c設計_第3頁
管理信息系統(tǒng)第九章 面向?qū)ο蟮姆治雠c設計_第4頁
管理信息系統(tǒng)第九章 面向?qū)ο蟮姆治雠c設計_第5頁
已閱讀5頁,還剩65頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第九章面向?qū)ο蟮姆治雠c設計

就是主張從客觀世界固有的事物出發(fā)來構造系統(tǒng),提倡用人類在現(xiàn)實生活中常用的思維方法來認識、理解和描述客觀事物,強調(diào)最終建立的系統(tǒng)能夠映射問題域,也就是說,系統(tǒng)中的對象以及對象之間的關系能夠如實地反映現(xiàn)實世界中事物及其關系。什么是面向?qū)ο蠓椒ㄊ裁词敲嫦驅(qū)ο蠓椒嫦驅(qū)ο蟮母舅枷胧乾F(xiàn)實世界看成是對象的集合。按照以下4個概念設計和實現(xiàn)的系統(tǒng),稱為是面向?qū)ο蟮摹?面向?qū)ο?對象(object)+類(classification)+繼承(inheritance)+通信(communicationwithmessages)面向?qū)ο蠓椒ㄓ扇植拷M成:OOA(Object-OrientedAnalysis)面向?qū)ο蟮姆治鯫OD(Object-OrientedDesign)面向?qū)ο蟮脑O計OOP(Object-OrientedProgram)面向?qū)ο蟮某绦蛟O計什么是面向?qū)ο蠓椒∣OA過程是在系統(tǒng)所要求解的問題中找出對象(屬性和行為)以及它所屬的類,并定義對象與類;OOD是把系統(tǒng)所要求解的問題分解為一些對象及對象間傳遞消息的過程;結(jié)構化分析方法結(jié)構化方法面向?qū)ο蠓椒ńY(jié)構化設計方法面向?qū)ο蠓治龇椒嫦驅(qū)ο笤O計方法結(jié)構化方法VS面向?qū)ο蠓椒ńY(jié)構化編程方法面向?qū)ο缶幊谭椒ńY(jié)構化方法結(jié)構化分析面向數(shù)據(jù)流的分析方法結(jié)構化設計將數(shù)據(jù)流程圖轉(zhuǎn)換為模塊結(jié)構圖根據(jù)E-R圖及數(shù)據(jù)字典設計數(shù)據(jù)庫系統(tǒng)功能的實現(xiàn)靠模塊之間的調(diào)用實現(xiàn)面向?qū)ο蠓椒嫦驅(qū)ο蠓治鲆詫ο鬄橹行模熏F(xiàn)實事物看成為對象,分析對象的特征和行為,對象抽象為類。面向?qū)ο笤O計通過對象的特征及行為確定類的屬性和方法系統(tǒng)功能的實現(xiàn)靠對象之間的消息傳遞實現(xiàn)相同之處都是軟件系統(tǒng)的開發(fā)方法。在運用分解和抽象原那么上的要求是完全一致的局部化和重用性設計上的一致。不同點處理問題時的出發(fā)點不同。處理問題的根本單位和層次邏輯關系不同。數(shù)據(jù)處理方式與控制程序方式不同。分析設計與編碼轉(zhuǎn)換方式不同。第一節(jié)面向?qū)ο蟮母靖拍畹诙?jié)面向?qū)ο蟮慕9ぞ遀ML第三節(jié)面向?qū)ο蟮姆治雠c設計過程第九章面向?qū)ο蟮姆治雠c設計面向?qū)ο蟮钠鹪碠O方法起源于面向?qū)ο蟮木幊陶Z言〔簡稱為OOPL〕。50年代后期,在用FORTRAN語言編寫大型程序時,常出現(xiàn)變量名在程序不同局部發(fā)生沖突的問題。鑒于此,ALGOL語言的設計者在ALGOL60中采用了以"Begin……End"為標識的程序塊,使塊內(nèi)變量名是局部的,以防止它們與程序中塊外的同名變量相沖突。這是編程語言中首次提供封裝〔保護〕的嘗試。此后程序塊結(jié)構廣泛用于高級語言如Pascal、Ada、C之中。面向?qū)ο蟮钠鹪疵嫦驅(qū)ο蟮钠鹪?/p>

正是通過Smalltalk80的研制與推廣應用,使人們注意到OO方法所具有的模塊化、信息封裝與隱蔽、抽象性、繼承性、多樣性等獨特之處,這些優(yōu)異特性為研制大型軟件、提高軟件可靠性、可重用性、可擴充性和可維護性提供了有效的手段和途徑。第一節(jié)面向?qū)ο蟮母靖拍畹谝还?jié)面向?qū)ο蟮母靖拍蠲嫦驅(qū)ο蠓椒ǖ膬?yōu)越性與人類思維方式一致可重用性好易于維護本節(jié)內(nèi)容:一、對象的根本概念二、類的根本概念三、消息及消息傳遞四、繼承的根本概念五、面向?qū)ο蟮暮x第一節(jié)面向?qū)ο蟮母靖拍钜?、對象的根本概?1在面向?qū)ο蟮南到y(tǒng)中,對象是根本的運行實體,是由一組數(shù)據(jù)和施加于這些數(shù)據(jù)上的一組操作封閉而成的。構成對象的根本要素:標識:即是對象的名稱,用來在問題域中區(qū)分其它對象;數(shù)據(jù):描述對象屬性的數(shù)據(jù)或數(shù)據(jù)結(jié)構,說明對象的一個狀態(tài);操作:即對象的行為。分為對象自身承受的操作和施加于其它對象的操作;接口:主要指對外接口,是指對象受理外部消息所指定的操作名稱集合。一、對象的根本概念-2對象類又稱對象類〔ObjectClass〕,是一組具有相同屬性和相同操作的對象的集合。在一個類中,每個對象都是類的實例(instance),它們都可以使用類中提供的函數(shù)。類具有屬性,用數(shù)據(jù)結(jié)構來描述類的屬性,類具有操作,它是對象的行為的抽象,操作實現(xiàn)的過程稱為方法〔method),方法有方法名,方法體和參數(shù)。

二、類的根本概念-1類的使用例如:芒果、蘋果和桔子都是fruit類的對象。類是用戶定義的數(shù)據(jù)類型,但在一個程序設計語言中,它和內(nèi)建的數(shù)據(jù)類型行為相同。比方創(chuàng)立一個類對象的語法和創(chuàng)立一個整數(shù)對象的語法一模一樣。 inta; 如果fruit被定義為一個類,那么語句 fruit

apple;

就創(chuàng)立了一個fruit類的對象apple。

二、類的根本概念-1類與對象對象與類的關系相當于一般程序設計語言中變量和變量所具有的類型的關系。二、類的根本概念-2對象類的描述人姓名:字符串年齡:整型改換工作改換地址文件文件名文件大小最近更新日期打印(張紅兵:人)張紅兵28(李軍:人)李軍24對象的描述類名屬性運算

對象圖

類圖二、類的根本概念-3屬性:姓名年齡單位職稱工資狀態(tài):李偉

25

計算機系講師

900方法名:調(diào)工資評職稱受聘方法:調(diào)工資(計算公式)評職稱(步驟、條件)方法名:調(diào)工資評職稱受聘李偉.調(diào)工資(??????)數(shù)據(jù)結(jié)構數(shù)據(jù)值人事處向?qū)ο蟀l(fā)消息執(zhí)行的操作方法體類:教師對象:李偉抽象實例抽象實例抽象方法名(參數(shù))對象、類和消息傳遞二、類的根本概念-4二、類的繼承-1類的層次例如,飛機和交通工具都是類,它們之間的關系是“isa〞關系,飛機是一種特殊的交通工具。通常,越上層的類越具有一般性和共性,越下層的類越特殊、越具體。二、類的繼承-2簡單繼承多重繼承面向?qū)ο蟮氖澜缡峭ㄟ^對象與對象間彼此的相互合作來推動的,消息是對象之間的通信載體。消息就是向?qū)ο蟀l(fā)出的效勞請求〔互相聯(lián)系、協(xié)同工作等〕。對象之間的聯(lián)系可表示為對象間的消息傳遞,即對象間的通訊機制。消息具有如下幾個性質(zhì):同一對象可以接收不同形式的多個消息,產(chǎn)生不同響應。一條消息可以發(fā)送給不同的對象,消息的解釋完全由接收對象完成,不同對象對相同形式的消息可以有不同解釋。與傳統(tǒng)程序調(diào)用不同,對于傳來的消息,對象可以返回相應的答復信息,也可以不返回,即消息響應不是必須的。三、消息和消息傳遞-1三、消息和消息傳遞-3傳送對象接收對象消息<操作名,參數(shù)>接口消息傳遞模型三、消息和消息傳遞-4using;publicpartialclass_Default:{

SqlConnectionconn; protectedvoidPage_Load(objectsender,EventArgse) { stringstr="server=localhost;integratedsecurity=SSPI;database=xk";

conn=newSqlConnection(str); } protectedvoidDelButton_Click(objectsender,EventArgse) {

conn.Open(); stringdelestudent="deletefromstudentwheresno='"+this.TextBox1.Text +"'orsname='"+this.TextBox2.Text+"'";

SqlCommandcomanddel=newSqlCommand(delestudent,conn);

comanddel.ExecuteNonQuery();

conn.Close(); }}三、消息和消息傳遞-4using;publicpartialclass_Default:{

SqlConnectionconn; protectedvoidPage_Load(objectsender,EventArgse) { stringstr="server=localhost;integratedsecurity=SSPI;database=xk";

conn=newSqlConnection(str); } protectedvoidDelButton_Click(objectsender,EventArgse) {

conn.Open(); stringdelestudent="deletefromstudentwheresno='"+this.TextBox1.Text +"'orsname='"+this.TextBox2.Text+"'";

SqlCommandcomanddel=newSqlCommand(delestudent,conn);

comanddel.ExecuteNonQuery();

conn.Close(); }}四、面向?qū)ο蟮暮x面向?qū)ο笫且环N認識客觀世界的認知方法學這種認識方法將客觀世界看成是由許許多多不同對象構成的,每一個對象都有自己的運動規(guī)律和內(nèi)部狀態(tài),不同對象間的相互作用和通訊構成了完整的客觀世界。面向?qū)ο笠嗍且环N解決問題的思維方法從組織結(jié)構模型化客觀世界,將對象作為需求分析和系統(tǒng)設計的核心或主體,把整個問題域抽象成為相互通訊的一組對象集合,并引用科學方法論中的分類思想,將相似或相近的一組對象聚合成類,采用各種手段將相似的類組織起來,實現(xiàn)問題空間到解空間的映射。二、面向?qū)ο蠓椒ǖ南到y(tǒng)開發(fā)生命周期從宏觀層面看,面向?qū)ο蟮南到y(tǒng)開發(fā)方法包括分析、設計、實現(xiàn)以及運行與維護等四大階段,遵循反復累增的生命周期,如圖9.3所示。從微觀層面上看,面向?qū)ο蟮南到y(tǒng)開發(fā)方法是指每一宏觀階段中標識對象,確定對象的屬性,定義對象的效勞,以及確定對象間關系等幾個步驟。一、面向?qū)ο笙到y(tǒng)開發(fā)的方法論-2目標系統(tǒng)類庫t時間分析設計分析設計類一類二類三設計實現(xiàn)t時間運行維護分析設計反復累增的生命周期第一節(jié)面向?qū)ο蟮母靖拍畹诙?jié)面向?qū)ο蟮慕9ぞ遀ML第三節(jié)面向?qū)ο蟮姆治雠c設計過程第九章面向?qū)ο蟮南到y(tǒng)開發(fā)方法UML的形成UMLGradyBoochIvarJacobsonJamesRumbaugh為面向?qū)ο筌浖O計提供統(tǒng)一的、標準的、可視化的建模語言UML面向?qū)ο蠼C嫦驅(qū)ο蠓治雠c設計從建模開始,建模語言是研究重點。建模語言是對建模過程的描述.統(tǒng)一建模語言(UnifiedModelingLanguage,UML)UML中的圖圖結(jié)構圖行為圖類圖對象圖組件圖用例圖狀態(tài)圖活動圖配置圖交互圖時序圖協(xié)作圖本節(jié)內(nèi)容:

一、類圖及用例圖

二、狀態(tài)圖及順序圖

三、活動圖及協(xié)作圖四、配置圖及組件圖

第二節(jié)面向?qū)ο笙到y(tǒng)開發(fā)工具—UML

一、類圖及用例圖-1類圖類圖是邏輯視圖的重要組成局部,用于對系統(tǒng)的靜態(tài)結(jié)構建模。 在系統(tǒng)分析階段,系統(tǒng)開發(fā)人員主要關注系統(tǒng)中的業(yè)務對象以及對象之間的關聯(lián)。類圖描述的是這些實體對象以及它們之間的關系。 在系統(tǒng)設計階段,確定類的屬性和方法;在系統(tǒng)編碼階段,根據(jù)類圖中的類及它們之間的關系實現(xiàn)系統(tǒng)的功能。類定義類是一組具有相同屬性、相同行為、和其他對象有相同關系、有相同表現(xiàn)的對象的集合類具有屬性和操作圖形表示類名、屬性、操作可以簡化表示一、類圖及用例圖-2關系1〕關聯(lián)〔association)定義兩個類在概念上有連接關系時,類之間的連接稱為關聯(lián);提供了不同類的對象可以相互作用的連接圖形表示用一根連接類的實線表示,用箭頭表示關聯(lián)的方向;如果不明確指明方向,那么默認關聯(lián)是雙向的一、類圖及用例圖-3關系2〕聚合〔aggregation)定義類之間的一種整體與局部的關系表達了一種層次結(jié)構,整體類位于局部類的上層,多個局部類處于并列的層次圖形表示尾端帶一個菱形的單箭頭直線菱形指向整體局部一、類圖及用例圖-4關系3〕泛化〔generalization)定義類之間的一種一般與特殊的關系“isapartof〞關系:一個事物是另一個事物的種類圖形表示一條帶有空心大箭頭的有向?qū)嵕€,箭頭指向父類一、類圖及用例圖-5關系4〕依賴定義其中一個類〔提供者)的變化將影響另一個類〔客體),或向它提供所需信息顯示一個類引用另一個類圖形表示用兩個模型元素之間帶箭頭的虛線表示,箭尾處的模型元素〔客戶)依賴于箭頭處的模型元素〔提供者)一、類圖及用例圖-6一、類圖及用例圖-7用例〔usecase〕圖 用例圖Use-casediagram–是描述系統(tǒng)與用戶及其他外部系統(tǒng)之間交互的圖形.用例圖描述了誰將使用系統(tǒng),用戶希望以什么方式與系統(tǒng)交互.系統(tǒng)應具備哪些功能。從用戶的觀點描述系統(tǒng)行為或系統(tǒng)使用場景。洗衣機用戶洗衣服用例圖圖示一、類圖及用例圖-9

用例Usecase–用一個水平的橢圓(用例名稱顯示在橢圓上面、下面或內(nèi)部)表示.

參與者Actor–代表了需要同系統(tǒng)交互以交換信息的任何事物.

二、狀態(tài)圖及順序圖

-1狀態(tài)圖在任何給定的時刻,一個對象總處于某一特定的狀態(tài);一個狀態(tài)圖包括一系列的狀態(tài)以及狀態(tài)之間的轉(zhuǎn)移。狀態(tài)圖圖例如右圖所示。浸泡洗滌漂洗脫水二、狀態(tài)圖及順序圖-2順序圖(時序圖)順序圖所表達的是系統(tǒng)運行中,對象之間的基于時間的動態(tài)交互關系,著重表達對象間消息傳遞的時間順序。順序圖的水平軸表示不同對象,垂直軸表示時間二、狀態(tài)圖及順序圖-2三、活動圖及協(xié)作圖-1活動圖記錄用例場景的另一種方式是使用活動圖,它用來建模系統(tǒng)的過程步驟或活動,類似于流程圖,以圖形化的方式描述了業(yè)務過程或用例的活動的順序流程。三、活動圖及協(xié)作圖-2協(xié)作圖協(xié)作圖表達為完成系統(tǒng)的工作目標,系統(tǒng)中相互合作的對象間的交互關系和鏈接關系。與順序圖不同,協(xié)作圖著重表達交互對象間的靜態(tài)鏈接關系。協(xié)作圖圖例內(nèi)部計時器注水管

溫馨提示

  • 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

提交評論