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

下載本文檔

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

文檔簡介

第九章面向?qū)ο蟮姆治雠c設(shè)計(jì)

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

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

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

apple;

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

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

對象圖

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

25

計(jì)算機(jī)系講師

900方法名:調(diào)工資評職稱受聘方法:調(diào)工資(計(jì)算公式)評職稱(步驟、條件)方法名:調(diào)工資評職稱受聘李偉.調(diào)工資(??????)數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)值人事處向?qū)ο蟀l(fā)消息執(zhí)行的操作方法體類:教師對象:李偉抽象實(shí)例抽象實(shí)例抽象方法名(參數(shù))對象、類和消息傳遞二、類的根本概念-4二、類的繼承-1類的層次例如,飛機(jī)和交通工具都是類,它們之間的關(guān)系是“isa〞關(guān)系,飛機(jī)是一種特殊的交通工具。通常,越上層的類越具有一般性和共性,越下層的類越特殊、越具體。二、類的繼承-2簡單繼承多重繼承面向?qū)ο蟮氖澜缡峭ㄟ^對象與對象間彼此的相互合作來推動的,消息是對象之間的通信載體。消息就是向?qū)ο蟀l(fā)出的效勞請求〔互相聯(lián)系、協(xié)同工作等〕。對象之間的聯(lián)系可表示為對象間的消息傳遞,即對象間的通訊機(jī)制。消息具有如下幾個性質(zhì):同一對象可以接收不同形式的多個消息,產(chǎn)生不同響應(yīng)。一條消息可以發(fā)送給不同的對象,消息的解釋完全由接收對象完成,不同對象對相同形式的消息可以有不同解釋。與傳統(tǒng)程序調(diào)用不同,對于傳來的消息,對象可以返回相應(yīng)的答復(fù)信息,也可以不返回,即消息響應(yīng)不是必須的。三、消息和消息傳遞-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認(rèn)識客觀世界的認(rèn)知方法學(xué)這種認(rèn)識方法將客觀世界看成是由許許多多不同對象構(gòu)成的,每一個對象都有自己的運(yùn)動規(guī)律和內(nèi)部狀態(tài),不同對象間的相互作用和通訊構(gòu)成了完整的客觀世界。面向?qū)ο笠嗍且环N解決問題的思維方法從組織結(jié)構(gòu)模型化客觀世界,將對象作為需求分析和系統(tǒng)設(shè)計(jì)的核心或主體,把整個問題域抽象成為相互通訊的一組對象集合,并引用科學(xué)方法論中的分類思想,將相似或相近的一組對象聚合成類,采用各種手段將相似的類組織起來,實(shí)現(xiàn)問題空間到解空間的映射。二、面向?qū)ο蠓椒ǖ南到y(tǒng)開發(fā)生命周期從宏觀層面看,面向?qū)ο蟮南到y(tǒng)開發(fā)方法包括分析、設(shè)計(jì)、實(shí)現(xiàn)以及運(yùn)行與維護(hù)等四大階段,遵循反復(fù)累增的生命周期,如圖9.3所示。從微觀層面上看,面向?qū)ο蟮南到y(tǒng)開發(fā)方法是指每一宏觀階段中標(biāo)識對象,確定對象的屬性,定義對象的效勞,以及確定對象間關(guān)系等幾個步驟。一、面向?qū)ο笙到y(tǒng)開發(fā)的方法論-2目標(biāo)系統(tǒng)類庫t時(shí)間分析設(shè)計(jì)分析設(shè)計(jì)類一類二類三設(shè)計(jì)實(shí)現(xiàn)t時(shí)間運(yùn)行維護(hù)分析設(shè)計(jì)反復(fù)累增的生命周期第一節(jié)面向?qū)ο蟮母靖拍畹诙?jié)面向?qū)ο蟮慕9ぞ遀ML第三節(jié)面向?qū)ο蟮姆治雠c設(shè)計(jì)過程第九章面向?qū)ο蟮南到y(tǒng)開發(fā)方法UML的形成UMLGradyBoochIvarJacobsonJamesRumbaugh為面向?qū)ο筌浖O(shè)計(jì)提供統(tǒng)一的、標(biāo)準(zhǔn)的、可視化的建模語言UML面向?qū)ο蠼C嫦驅(qū)ο蠓治雠c設(shè)計(jì)從建模開始,建模語言是研究重點(diǎn)。建模語言是對建模過程的描述.統(tǒng)一建模語言(UnifiedModelingLanguage,UML)UML中的圖圖結(jié)構(gòu)圖行為圖類圖對象圖組件圖用例圖狀態(tài)圖活動圖配置圖交互圖時(shí)序圖協(xié)作圖本節(jié)內(nèi)容:

一、類圖及用例圖

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

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

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

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

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

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

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

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

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論