面向?qū)ο蠓治龅诹碌谄哒抡n件_第1頁
面向?qū)ο蠓治龅诹碌谄哒抡n件_第2頁
面向?qū)ο蠓治龅诹碌谄哒抡n件_第3頁
面向?qū)ο蠓治龅诹碌谄哒抡n件_第4頁
面向?qū)ο蠓治龅诹碌谄哒抡n件_第5頁
已閱讀5頁,還剩86頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1.面向?qū)ο蟮幕靖拍钆c模型(6章)2.面向?qū)ο蠓治觯?章)3.面向?qū)ο笤O(shè)計(8章)4.面向?qū)ο筌浖膶?shí)現(xiàn)與測試(9章)第三篇主要內(nèi)容2023/10/211.面向?qū)ο蟮幕靖拍钆c模型(6章)第三篇主要內(nèi)容2023本章要解決的問題:面向?qū)ο蠓椒▽W(xué)概述傳統(tǒng)方法和面向?qū)ο蠓椒ㄓ泻尾煌棵嫦驅(qū)ο蠓椒▽W(xué)的主要優(yōu)點(diǎn)面向?qū)ο蟮母拍蠲嫦驅(qū)ο蠼5诹旅嫦驅(qū)ο蟮母拍钆c模型2023/10/22本章要解決的問題:面向?qū)ο蠓椒▽W(xué)概述第六章面向?qū)ο蟮母拍钆c模面向?qū)ο蠓椒ǜ攀鍪裁词情_發(fā)模式?什么是面向?qū)ο箝_發(fā)模式?為什么要用面向?qū)ο蠓椒ǎ?023/10/23面向?qū)ο蠓椒ǜ攀鍪裁词情_發(fā)模式?2023/8/43一、軟件開發(fā)模式(Paradigm)

1、什么是開發(fā)模式開發(fā)模式又稱為范型、范例、風(fēng)范或模式(Pattern)。開發(fā)模式定義了:特定問題和應(yīng)用的開發(fā)過程中將遵循的步驟;確定將用于表示問題和解的那些成分的類型;利用這些成分表示與問題解決有關(guān)的抽象;直接得到問題的結(jié)構(gòu)。2023/10/24一、軟件開發(fā)模式(Paradigm)1、什么是開發(fā)模式22、開發(fā)模式的影響開發(fā)模式的選擇影響到整個軟件開發(fā)生存期。開發(fā)模式支配了:設(shè)計方法編碼語言測試和檢驗技術(shù)

2023/10/252、開發(fā)模式的影響開發(fā)模式的選擇影響到整個軟件開發(fā)生存期3、幾種流行的開發(fā)模式目前流行的開發(fā)模式有多種,它們提供了可進(jìn)行系統(tǒng)分解的多種方法。

面向過程的開發(fā)模式;面向?qū)ο蟮拈_發(fā)模式;面向存取的開發(fā)模式;面向進(jìn)程的開發(fā)模式;邏輯性的開發(fā)模式;函數(shù)型的開發(fā)模式;說明性的開發(fā)模式。2023/10/263、幾種流行的開發(fā)模式目前流行的開發(fā)模式有多種,它們提供開發(fā)模式所具有的的共性:每個開發(fā)模式都有它的支持者和用戶;每個開發(fā)模式都特別適合于某種類型的問題或子問題;每一個開發(fā)模式都用不同的方式考慮問題;每一個開發(fā)模式都使用不同的方法來分解問題;每一個開發(fā)模式都導(dǎo)致不同種類的塊、過程、產(chǎn)生規(guī)則。2023/10/27開發(fā)模式所具有的的共性:每個開發(fā)模式都有它的支持者和用戶;24、混合開發(fā)模式在大型系統(tǒng)的開發(fā)中,只用一種開發(fā)模式很難說哪種開發(fā)模式對整個問題的解決最好。系統(tǒng)開發(fā)時,通常把大型問題分解成一組子問題。對于每個子問題可以采用適當(dāng)?shù)能浖_發(fā)模式。這種設(shè)計需要有某種實(shí)現(xiàn)語言或一組協(xié)同語言的支持。許多流行的功能不斷增強(qiáng)的語言可支持不只一種設(shè)計開發(fā)模式。2023/10/284、混合開發(fā)模式在大型系統(tǒng)的開發(fā)中,只用一種開發(fā)模式很難說哪一個智能數(shù)據(jù)分析系統(tǒng)的設(shè)計,可把它看做是4個子系統(tǒng)。系統(tǒng)有:一個數(shù)據(jù)庫界面。使用了面向存取的開發(fā)模式進(jìn)行設(shè)計;智能數(shù)據(jù)分析。使用邏輯性的開發(fā)模式完成;一組分析算法。分析算法是過程性的,所以使用過程性的開發(fā)模式設(shè)計;用戶界面。使用面向?qū)ο箝_發(fā)模式。例:2023/10/29一個智能數(shù)據(jù)分析系統(tǒng)的設(shè)計,可把它看做是4個子系幾個常用的術(shù)語面向?qū)ο螅∣O)面向?qū)ο蠓椒ǎ∣OM)面向?qū)ο蠓治觯∣OA)面向?qū)ο笤O(shè)計(OOD)面向?qū)ο蟪绦蛟O(shè)計(OOP)面向?qū)ο鬁y試(OOT)面向?qū)ο笮枨蠓治觯∣ORA)面向?qū)ο箢I(lǐng)域分析(OODA)面向?qū)ο髷?shù)據(jù)庫系統(tǒng)(OODBMS)面向?qū)ο笥嬎銠C(jī)輔助軟件工程(OOCASE)2023/10/210幾個常用的術(shù)語面向?qū)ο螅∣O)2023/8/410第七章面向?qū)ο蠓治鋈绾斡肙O軟件工程方式進(jìn)行系統(tǒng)分析?如何描述OO系統(tǒng)?如何對OO系統(tǒng)建模?如何建立對象模型?如何建立動態(tài)模型?如何建立功能模型2023/10/211第七章面向?qū)ο蠓治鋈绾斡肙O軟件工程方式進(jìn)行系統(tǒng)分析?20結(jié)構(gòu)化分析模型的組成結(jié)構(gòu)數(shù)據(jù)流圖

(DFD)E-R圖狀態(tài)變遷圖(STD圖)加工說明控制說明數(shù)據(jù)對象說明數(shù)據(jù)字典(DD)結(jié)構(gòu)化分析模型的組成結(jié)構(gòu)數(shù)據(jù)流圖E-R圖狀態(tài)變遷圖加工說明控面向?qū)ο蠓治瞿P偷慕M成結(jié)構(gòu)動態(tài)模型對象模型功能模型使用實(shí)例(UseCase)靜態(tài)結(jié)構(gòu)交互次序據(jù)變換數(shù)面向?qū)ο蠓治瞿P偷慕M成結(jié)構(gòu)動態(tài)模型對象功能使用實(shí)例靜態(tài)結(jié)交互傳統(tǒng)方法數(shù)據(jù)與過程是分離的過程1輸入輸出過程2過程3數(shù)據(jù)實(shí)體屬于該對象的數(shù)據(jù)對象處理數(shù)據(jù)的方法消息消息對象把數(shù)據(jù)和處理數(shù)據(jù)的方法封狀成一個單元2023/10/214傳統(tǒng)方法數(shù)據(jù)與過程是分離的過程1輸入輸出過程2過程3數(shù)據(jù)實(shí)體面向?qū)ο蠓治鍪擒浖_發(fā)過程中的問題定義階段。這一階段的兩個重要步驟:領(lǐng)域域分析:建立概括的系統(tǒng)實(shí)現(xiàn)模型應(yīng)用分析:根據(jù)特定應(yīng)用的需求對論域分析的模型進(jìn)行細(xì)化最后成果:得到對問題領(lǐng)域的清晰而精確的定義。2023/10/215面向?qū)ο蠓治鍪擒浖_發(fā)過程中的問題定義階段。這一階段的兩個重7.1分析過程需要完成:

找到特定對象基于對象的公共特性組合這些對象標(biāo)識出對問題的抽象標(biāo)識出抽象之間的關(guān)系2023/10/2167.1分析過程需要完成:2023/8/416對象模型化技術(shù)(三視點(diǎn)技術(shù))

(ObjectModelTech.OMT)對象模型化技術(shù)用于把分析時收集的信息構(gòu)造在三類模型中,即對象模型、功能模型和動態(tài)模型。這個模型化的過程是一個迭代過程。2023/10/217對象模型化技術(shù)(三視點(diǎn)技術(shù))

(Object分析模型對象模型:描述靜態(tài)結(jié)構(gòu),定義做事情的實(shí)體功能模型:描述處理(數(shù)據(jù)變換),

指明系統(tǒng)應(yīng)“做什么”動態(tài)模型:描述交互過程,規(guī)定什么時候做

2023/10/218分析模型2023/8/418OMT模型系統(tǒng)分析和設(shè)計過程概觀圖產(chǎn)生需求結(jié)構(gòu)及對象設(shè)計建立模型問題描述對象模型、動態(tài)模型、功能模型詳細(xì)的對象模型詳細(xì)的動態(tài)模型詳細(xì)的功能模型分析階段設(shè)計階段2023/10/219OMT模型系統(tǒng)分析和設(shè)計過程概觀圖產(chǎn)生需求結(jié)構(gòu)及對象建立模型基于三個模型的分析步驟:需求陳述對象建模動態(tài)建模功能建模添加操作反復(fù)建模2023/10/220基于三個模型的分析步驟:需求陳述2023/8/420OOA的基本過程從理解系統(tǒng)的使用方式開始,確定使用場景(腳本),構(gòu)造問題域模型。

OOA概念模型由五個層次組成:主題層類與對象層結(jié)構(gòu)層屬性層服務(wù)層這五個層次是分析過程中的層次,每個層次的工作都為系統(tǒng)的規(guī)格說明增加了一個組成部分。2023/10/221OOA的基本過程從理解系統(tǒng)的使用方式開始,確定使用場景(OOA的層次結(jié)構(gòu)2023/10/222OOA的層次結(jié)構(gòu)2023/8/4227.2需求陳述(軟件需求說明書(SRS))

(SoftwareRequirementSpecification)

需求分析階段要完成的文檔。

SRS的作用:開發(fā)者與用戶間事實(shí)上的技術(shù)合同書開發(fā)者下一步設(shè)計和編碼的基礎(chǔ)測試驗收目標(biāo)系統(tǒng)的依據(jù)7.2需求陳述(軟件需求說明書(SRS))(SS

R

S

1引言1.1編寫目的1.2背景1.3定義1.4參考資料2任務(wù)概述2.1目標(biāo)2.2用戶的特點(diǎn)2.3假定盒約束3需求規(guī)定3.1對功能的規(guī)定3.2對性能的規(guī)定3.3輸入輸出要求3.4數(shù)據(jù)管理能力要求3.5故障處理要求3.6其他專門要求(GB9385-88)4運(yùn)行環(huán)境規(guī)定4.1設(shè)備4.2支持軟件4.3接口4.4控制S

R

S

1引言(GB9385-88)4運(yùn)行環(huán)境規(guī)§7-3對象模型對象模型是三個模型中最關(guān)鍵的一個模型,它的作用是描述系統(tǒng)的靜態(tài)結(jié)構(gòu),包括構(gòu)成系統(tǒng)的類和對象,它們的屬性和操作,及它們之間的關(guān)系。2023/10/225§7-3對象模型對象模型是三個模型中最關(guān)鍵的一個模型,它的(1)對象模型的表示:2023/10/226(1)對象模型的表示:2023/8/426實(shí)例連接:又稱為鏈,用于表達(dá)對象之間的靜態(tài)聯(lián)系(通過對象屬性表示一個對象對另一個對象之間的依賴關(guān)系。(2)實(shí)例連接與關(guān)聯(lián)關(guān)系的表示

類1連接名稱mn類2表示法:階2023/10/227實(shí)例連接:又稱為鏈,用于表達(dá)對象之間的靜態(tài)聯(lián)系(通過對象屬性類1連接名稱mn類1連接屬性鏈屬性的表示:允許實(shí)例連接帶有一組屬性,這些屬性通過關(guān)聯(lián)來描述

2023/10/228類1連接名稱類1連接鏈屬性的表示:允許實(shí)例連接

關(guān)聯(lián)關(guān)系

(鏈屬性)為之工作工資職務(wù)雇主雇員個人名字身份證號公司名字地址題目答辯時間成績教師學(xué)生指導(dǎo)論文0,m12023/10/229為之工作工資雇主雇員個人公司題目教師學(xué)生指導(dǎo)(3)相關(guān)的圖形符號:多個0個一個鏈屬性2023/10/230(3)相關(guān)的圖形符號:多個0個一個鏈屬性2023/8/430說明:聚合:代表整體與部分的關(guān)系,這是一種特殊形式的關(guān)聯(lián)。限定:用以對關(guān)聯(lián)的含義做某種約束。角色:用來說明關(guān)聯(lián)的一端。由于多數(shù)關(guān)聯(lián)具有兩個端點(diǎn),因而涉及到兩個角色。連接屬性:允許使用附加的屬性說明對象之間的連接2023/10/231說明:聚合:代表整體與部分的關(guān)系,這是一種特殊形式的關(guān)聯(lián)。2(4)定義結(jié)構(gòu)和層次類模型的結(jié)構(gòu)及由類和子類構(gòu)成的類層次,表示問題域中的復(fù)雜關(guān)系,是客觀世界實(shí)體間關(guān)系的抽象。

類及對象間的關(guān)系可概括為:歸納關(guān)系:(一般/特殊結(jié)構(gòu)、分類結(jié)構(gòu))針對事物類之間的組織關(guān)系組合關(guān)系:(整體/部分結(jié)構(gòu)、組裝結(jié)構(gòu))表示事物的整體與部分之間的組合關(guān)系2023/10/232(4)定義結(jié)構(gòu)和層次類模型的結(jié)構(gòu)及由類和子類構(gòu)成的類層次

一般/特殊結(jié)構(gòu)表示法:子類的公共屬性和操作歸屬于一般類并被每一個子類共享,每一個子類都繼承了一般類的特征。一般類(父類、基類、超類)特殊類(子類)一般類特殊類特殊類......繼承表示一般與特殊結(jié)構(gòu)2023/10/233一般/特殊結(jié)構(gòu)表示法:子類的公共屬性和操作歸屬于一般類

存戶一般/特殊結(jié)構(gòu)舉例(歸納關(guān)系):一般類(父類、基類、超類)特殊類(子類)繼承一個特殊類中的所有對象可繼承一般類中的屬性、服務(wù)、關(guān)系.賬號姓名余額存款取款支票存戶儲蓄存戶利息率2023/10/234存戶一般/特殊結(jié)構(gòu)舉例(歸納關(guān)系):一般類特殊類繼承建立對象模型2023/10/235建立對象模型2023/8/435整體/部分結(jié)構(gòu)(分類結(jié)構(gòu)):整體/部分結(jié)構(gòu)是一種特定的連接.整體類中的一個對象(或稱聚合)是由各部分類的對象(或稱成分)構(gòu)成的.這一結(jié)構(gòu)是對象間的一種關(guān)系.2023/10/236整體/部分結(jié)構(gòu)(分類結(jié)構(gòu)):2023/8/436整體/部分結(jié)構(gòu)表示法:一個整體對象可有不同類型的部分對象.一個部分對象也可同時屬于多個整體對象.整體對象.....m1,n1m2,n2p1,q1p2,q2部分對象部分對象表示整體與部分結(jié)構(gòu)傳遞性2023/10/237整體/部分結(jié)構(gòu)表示法:一個整體對象可有不同類型的部分對象.整體/部分結(jié)構(gòu)表示法舉例:

汽車1+方向盤車身車輪離合發(fā)動機(jī)油門

底盤2023/10/238整體/部分結(jié)構(gòu)表示法舉例:建立對象模型2023/10/239建立對象模型2023/8/439例:一家公司的對象模型職員公司為某公司開發(fā)信息管理系統(tǒng),該公司有三個部門,每個部門可以開發(fā)多個產(chǎn)品.該公司有多名項目經(jīng)理,員工上百人.有四個正在進(jìn)行的項目,每個項目必須有一個項目經(jīng)理,每個員工可參與一個或多個項目.請畫出該公司的對象模型.2023/10/240例:一家公司的對象模型職員公司為某公司開發(fā)信息管理系例:一家公司的對象模型為之工作管理0,1姓名性別身份證號碼地址職員名電話經(jīng)營項目地址公司職務(wù)雇用解雇項目名預(yù)算優(yōu)先級項目產(chǎn)品名成本重量產(chǎn)品職員經(jīng)理部門部門名主持參加1+1+1+1+1+生產(chǎn)2023/10/241例:一家公司的對象模型為之工作管理0建立對象模型的步驟:標(biāo)識類及對象標(biāo)識結(jié)構(gòu)標(biāo)識主題定義屬性及實(shí)例連接定義服務(wù)及消息連接五個步驟常根據(jù)需要交叉進(jìn)行2023/10/242建立對象模型的步驟:標(biāo)識類及對象2023/8/4421、識別類和對象面向?qū)ο蠓治龅牡谝粋€層次主要是識別類和對象。類和對象是對與應(yīng)用有關(guān)的概念的抽象。建立對象模型2023/10/2431、識別類和對象面向?qū)ο蠓治龅牡谝粋€層次主要是識別類和對象?;谡Z言的信息分析在發(fā)現(xiàn)對象過程中,可以使用一種十分有用的工具,即LIA(基于語言的信息分析)。LIA的目的是標(biāo)識出問題論域的所有概念及這些概念之間的關(guān)系。

短語頻率分析(PFA)

矩陣分析(MA)。建立對象模型2023/10/244基于語言的信息分析在發(fā)現(xiàn)對象過程中,可以使用一種十分有用的工(1)找出候選的類-&-對象可感知的物理實(shí)體人或組織的角色應(yīng)該記憶的事件兩個多個事件的相互作用,通常具有交易或接觸性質(zhì)需要說明的概念建立對象模型2023/10/245(1)找出候選的類-&-對象可感知的物理實(shí)體建立對象模型20(2)篩選出正確的類-&-對象冗余無關(guān)籠統(tǒng)屬性操作實(shí)現(xiàn)建立對象模型2023/10/246(2)篩選出正確的類-&-對象冗余建立對象模型2023/8/2、標(biāo)識結(jié)構(gòu)(確定關(guān)聯(lián))面向?qū)ο蠓治龅南乱徊焦ぷ魇菢?biāo)識結(jié)構(gòu)。

一般化-特殊化結(jié)構(gòu)(Gen-Spec結(jié)構(gòu))整體-部分結(jié)構(gòu)(Whole-Part結(jié)構(gòu))建立對象模型2023/10/2472、標(biāo)識結(jié)構(gòu)(確定關(guān)聯(lián))面向?qū)ο蠓治龅南乱徊焦ぷ魇菢?biāo)識結(jié)構(gòu)。標(biāo)識Gen-Spec結(jié)構(gòu)的方法和策略:對于每一個類和對象,將它看作是一個一般化的類,對它的所有特殊情況,考慮以下問題:

它是否在問題論域中?它是否在系統(tǒng)的職責(zé)內(nèi)?繼承性是否存在?它是否能夠符合選擇類和對象的標(biāo)準(zhǔn)?建立對象模型2023/10/248標(biāo)識Gen-Spec結(jié)構(gòu)的方法和策略:對于每一個類和對象,將標(biāo)識Whole-Part結(jié)構(gòu)的方法和策略應(yīng)當(dāng)尋找什么總體-部分(Assembly-Parts)關(guān)聯(lián),如飛機(jī)-發(fā)動機(jī)之間的關(guān)系。包容-內(nèi)含(Container-Content)關(guān)聯(lián),如飛機(jī)-飛行員之間的關(guān)系。收集-成員(Collection-Members)關(guān)聯(lián),如機(jī)構(gòu)-職員之間的關(guān)系。建立對象模型2023/10/249標(biāo)識Whole-Part結(jié)構(gòu)的方法和策略應(yīng)當(dāng)尋找什么建立對象將每一個類看作是一個Whole類,對它的所有可能Parts情況,考慮以下問題:

它是否在問題論域中?它是否在系統(tǒng)的職責(zé)內(nèi)?它是否代表一個以上的狀態(tài)值?若不是,是否將它變?yōu)閃hole中的一個屬性?它是否提供問題論域中有用的抽象?建立對象模型2023/10/250將每一個類看作是一個Whole類,對它的所有可能Parts情3、識別主題將每一種結(jié)構(gòu)(包括整體-部分結(jié)構(gòu)、和一般化-特殊化結(jié)構(gòu))中最上層的類提升成為主題;將各不屬于任何結(jié)構(gòu)的類提升主題;檢查在相同或類似的問題論域中以前做面向?qū)ο蠓治龅慕Y(jié)果,看是否有可直接復(fù)用的主題。建立對象模型2023/10/2513、識別主題將每一種結(jié)構(gòu)(包括整體-部分結(jié)構(gòu)、和一般化-特殊4、標(biāo)識屬性及實(shí)例連接下一個層次稱為屬性層,對前面已識別的類和對象做進(jìn)一步的說明。在這里,對象所保存的信息稱為它的屬性。類的屬性所描述的是狀態(tài)信息,每個實(shí)例的屬性值表達(dá)了該實(shí)例的狀態(tài)值。建立對象模型2023/10/2524、標(biāo)識屬性及實(shí)例連接下一個層次稱為屬性層,對前面已識別的類標(biāo)識屬性的方法和策略找出屬性將屬性安放到適當(dāng)?shù)奈恢谜页鰧?shí)例連接檢查特殊情況描述屬性考慮取值范圍、極限值、缺省值、建立和存取權(quán)限、精確度、是否會受到其他屬性值等。建立對象模型2023/10/253標(biāo)識屬性的方法和策略找出屬性建立對象模型2023/8/453屬性層建立對象模型2023/10/254屬性層建立對象模型2023/8/4545、識別繼承關(guān)系繼承關(guān)系的建立實(shí)質(zhì)上是知識抽取的過程,它應(yīng)該反映出一定深度的領(lǐng)域知識可用兩種方法建立:

自底向上:抽象出現(xiàn)有類的共同性質(zhì)泛化出的父類自頂向下:將現(xiàn)有類細(xì)化成更具體的子類建立對象模型2023/10/2555、識別繼承關(guān)系繼承關(guān)系的建立實(shí)質(zhì)上是知識抽取的過程,它應(yīng)該6、反復(fù)修改建立對象模型2023/10/2566、反復(fù)修改建立對象模型2023/8/456

實(shí)例:飲料自動售貨機(jī)系統(tǒng)設(shè)置一個飲料自動售貨機(jī)可以放置五種不同或部分相同的飲料,可由廠商根據(jù)銷售狀況自動調(diào)配,并可隨時重新設(shè)置售價,但售貨機(jī)最多僅能放置50罐飲料,其按鈕設(shè)計在各種飲料樣本的下方,若經(jīng)金額計算器累計金額足夠,則選擇鍵燈會亮;若某一種飲料已銷售完畢,則售完燈會亮。銷售顧客將硬幣投入售貨機(jī),經(jīng)累加金額足額的飲料選擇鍵燈亮,等顧客按鍵選擇。顧客按鍵后飲料由取物樓掉出,并自動結(jié)算及找錢。取消交易顧客可在按下選擇鍵前任何一個時刻,拉動退幣桿取消交易收回硬幣。2023/10/257實(shí)例:飲料自動售貨機(jī)系統(tǒng)2023/8/457

找出飲料自動售貨機(jī)系統(tǒng)中的對象設(shè)置一個飲料自動售貨機(jī)可以放置五種不同或部分相同的飲料,可由廠商根據(jù)銷售狀況自動調(diào)配,并可隨時重新設(shè)置售價,但售貨機(jī)最多僅能放置50罐飲料,其按鈕設(shè)計在各種飲料樣本的下方,若經(jīng)金額計算器累計金額足夠,則選擇鍵燈會亮;若某一種飲料已銷售完畢,則售完燈會亮。銷售

顧客將硬幣投入售貨機(jī),經(jīng)累加金額足額的飲料選擇鍵燈亮,等顧客按鍵選擇。顧客按鍵后飲料由取物樓掉出,并自動結(jié)算及找錢。取消交易顧客可在按下選擇鍵前任何一個時刻,拉動退幣桿取消交易收回硬幣。2023/10/258找出飲料自動售貨機(jī)系統(tǒng)中的對象2023/8/458飲料自動售貨機(jī)系統(tǒng)對象模型售貨機(jī)飲料號碼價格投幣-接受飲料掉出金額顯示按紐退幣桿售完顯示存量計算器飲料號碼存量遞減售完顯示重置選擇鈕選擇鈕狀態(tài)燈亮燈熄售完燈亮按鈕顧客姓名硬幣投幣-置入拿取飲料退幣桿退幣桿狀態(tài)拉動金額計算器金額累加找零重置購買選取被拉動屬于屬于屬于屬于2023/10/259飲料自動售貨機(jī)系統(tǒng)對象模型售貨機(jī)飲料號碼投幣-接受存量計算器§7.4建立動態(tài)模型動態(tài)模型著重于描述系統(tǒng)的控制邏輯。它包括兩個圖,一是事件追蹤圖,一是狀態(tài)圖。2023/10/260§7.4建立動態(tài)模型動態(tài)模型著重于描述系統(tǒng)的控制邏輯。20(1)事件瞬時發(fā)生的行為每個事件都是單獨(dú)發(fā)生的我們建立事件類,并給每個事件一個名字,以指明共同結(jié)構(gòu)和行為。事件從一個對象向另一個對象傳送信息。事件類的屬性:例:火車開動事件(車道、車次、起點(diǎn)、終點(diǎn)、車廂數(shù))2023/10/261(1)事件瞬時發(fā)生的行為2023/8/461有些事件類可能傳送的是簡單的信號“要發(fā)生某件事”,而有些事件類則可能傳送的是數(shù)據(jù)值。由事件傳送的數(shù)據(jù)值叫做屬性。

列車出發(fā)(線路、班次、城市)按下鼠標(biāo)按鈕(按鈕、位置)拿起電話受話器數(shù)字撥號(數(shù)字)

2023/10/262有些事件類可能傳送的是簡單的信號“要發(fā)生某件事”,而有些事件腳本與事件追蹤圖事件追蹤圖:側(cè)重于說明發(fā)生于系統(tǒng)執(zhí)行過程中的一個特定“場景”(腳本)。腳本:也叫做場景,是系統(tǒng)某一次特定運(yùn)行時期發(fā)生的事件序列。場景通常起始于一個系統(tǒng)外部的輸入事件,結(jié)束于一個系統(tǒng)外部的輸出事件,它可以包括發(fā)生在這個期間的系統(tǒng)所有的內(nèi)部事件。2023/10/263腳本與事件追蹤圖事件追蹤圖:側(cè)重于說明發(fā)生于系統(tǒng)執(zhí)行過程中的

打打電電話話者者拿拿起起電電話話受受話話器器

電電話話忙忙音音開開始始

打打電電話話者者撥撥數(shù)數(shù)字字((88))

電電話話忙忙音音結(jié)結(jié)束束

打打電電話話者者撥撥數(shù)數(shù)字字((22))

..............

打打電電話話者者撥撥數(shù)數(shù)字字((33))

接接電電話話者者的的電電話話開開始始振振鈴鈴

鈴鈴聲聲在在打打電電話話者者的的電電話話上上傳傳出出

接接電電話話者者回回答答

接接電電話話者者的的電電話話停停止止振振鈴鈴

鈴鈴聲聲在在打打電電話話者者的的電電話話中中消消失失

通通電電話話

..................例:通話腳本(只包括影響電話線的事件)2023/10/264打打電電話話者者拿拿起起電電話話受受話話器器2023/10/2652023/8/465課堂練習(xí):自動售貨機(jī)的正常情況腳本,畫事件跟蹤圖:顧客投硬幣金額器累加顯示金額給顧客金額足夠,對應(yīng)的選擇鍵燈亮顧客選擇按鈕,選擇鍵發(fā)消息給售貨機(jī)售貨機(jī)給顧客飲料金額計算器結(jié)算顯示剩余金額顧客拉動退幣桿售貨機(jī)找零售貨機(jī)扣減存量顯示存量為零售完燈亮2023/10/266課堂練習(xí):自動售貨機(jī)的正常情況腳本,畫事件跟蹤圖:2023/

存量為零找零扣減存量售完燈亮余額飲料結(jié)算選擇鍵#選擇按紐燈亮金額總夠顯示總額總額累加投入硬幣金額計算器存量計算器顧客售貨機(jī)選擇鍵舉例:飲料自動售貨機(jī)系統(tǒng)的事件追蹤圖退幣桿拉退幣桿2023/10/267存量為零找零扣減存量售完燈亮余額飲料結(jié)算選擇鍵#選擇按紐(2)狀態(tài)圖狀態(tài)圖是一個狀態(tài)和事件的網(wǎng)絡(luò),側(cè)重于描述每一類對象的動態(tài)行為。在狀態(tài)圖中,狀態(tài)是對某一時刻中屬性特征的概括。而狀態(tài)遷移表示這一類對象在何時對系統(tǒng)內(nèi)外發(fā)生的哪些事件做出何種響應(yīng)。2023/10/268(2)狀態(tài)圖狀態(tài)圖是一個狀態(tài)和事件的網(wǎng)絡(luò),側(cè)重于描述每一類對操作:是一個伴隨狀態(tài)遷移的瞬時發(fā)生的行為,與觸發(fā)事件一起表示在有關(guān)的狀態(tài)遷移之上?;顒樱簞t是發(fā)生在某個狀態(tài)中的行為,往往需要一定的時間來完成,因此與狀態(tài)名一起出現(xiàn)在有關(guān)的狀態(tài)之中。2023/10/269操作:是一個伴隨狀態(tài)遷移的瞬時發(fā)生的行為,與觸發(fā)事件一起表示

狀態(tài)圖

狀態(tài)1Do:活動1狀態(tài)2.…...事件1[條件1]/動作1結(jié)束事件初始事件空閑可視菜單左邊按鈕按下/顯示彈出菜單左邊按鈕彈起/擦除彈出菜單光標(biāo)移動/高亮菜單項

彈出菜單動作例:2023/10/270狀態(tài)圖狀態(tài)1Do:活動1狀態(tài)2.…..舉例:飲料自動售貨機(jī)系統(tǒng)的狀態(tài)圖投入硬幣(無效的)按下選擇飲料鍵Do:顯示售貨機(jī)在備用所有燈都關(guān)閉

Do:顯示金額總數(shù)Do:顯示金額已夠飲料選擇燈亮

取出飲料結(jié)算找零扣減存量完成交易飲料“售完”燈亮

投入硬幣金額

(1元、5元、10元)金額不足再投幣存量為零無效的硬幣取消取消回到備用狀態(tài)回到備用狀態(tài)投入硬幣(有效的)金額已夠2023/10/271舉例:飲料自動售貨機(jī)系統(tǒng)的狀態(tài)圖投入硬幣按下選擇飲料鍵D動態(tài)模型由多個狀態(tài)圖組成。對于每一個具有重要動態(tài)行為的類都有一個狀態(tài)圖,從而表明所有系統(tǒng)活動的模式。各個狀態(tài)圖并發(fā)地執(zhí)行,并可以獨(dú)立地改變狀態(tài)。各種類的狀態(tài)圖可以通過共享事件組合到一個動態(tài)模型中。2023/10/272動態(tài)模型由多個狀態(tài)圖組成。2023/8/472(3)狀態(tài)圖與事件追蹤圖的關(guān)系狀態(tài)圖敘述一個對象的個體行為,事件追蹤圖則給出多個對象所表現(xiàn)出來的集體行為。它們從不同側(cè)面來說明同一系統(tǒng)的行為。例如,一個事件追蹤圖指出某一對象在接受一個事件之后發(fā)出另一事件,同一行為在此對象的狀態(tài)圖中也應(yīng)當(dāng)有所表示。2023/10/273(3)狀態(tài)圖與事件追蹤圖的關(guān)系狀態(tài)圖敘述一個對象的個體行為,§7.5功能模型功能模型由多個數(shù)據(jù)流圖組成,它們指明從外部輸入,通過操作和內(nèi)部存儲,直到外部輸出,這整個的數(shù)據(jù)流情況。2023/10/274§7.5功能模型功能模型由多個數(shù)據(jù)流圖組成,它們指明從功能模型中所有的數(shù)據(jù)流圖往往形成一個層次結(jié)構(gòu)。在這個層次結(jié)構(gòu)中,一個數(shù)據(jù)流圖中的過程可以由下一層的數(shù)據(jù)流圖做進(jìn)一步的說明。一般來講,高層的過程相應(yīng)于作用在聚合對象上的操作,而低層的過程則代表作用于一個簡單對象上的操作。2023/10/275功能模型中所有的數(shù)據(jù)流圖往往形成一個層次結(jié)構(gòu)。2023/8/7.6、定義服務(wù)及消息連接對象收到消息后所能執(zhí)行的操作稱為它可提供的服務(wù)。對每個對象和結(jié)構(gòu)的增加、修改、刪除、選擇等服務(wù)有時是隱含的,在圖中不標(biāo)出,但在存儲類和對象有關(guān)信息的對象庫中有定義。其它服務(wù)則必須顯式地在圖中畫出。2023/10/2767.6、定義服務(wù)及消息連接對象收到消息后所能執(zhí)行的操作稱為它服務(wù)層2023/10/277服務(wù)層2023/8/477定義服務(wù)的方法和策略找出每一個對象的所有狀態(tài),在各種狀態(tài)需要做的工作。利用狀態(tài)遷移圖;找出必要的操作。建立消息連接。描述服務(wù):利用狀態(tài)轉(zhuǎn)換圖、腳本和事件追蹤圖,描述服務(wù)的功能。2023/10/278定義服務(wù)的方法和策略找出每一個對象的所有狀態(tài),在各種狀態(tài)需要消息連接的標(biāo)識兩個對象之間可能存在著由于通信需要而形成的關(guān)系,這稱為消息連接。消息連接表示從一個對象發(fā)送消息到另一個對象,由那個對象完成某些處理。它們在圖中用箭頭表示,方向從發(fā)消息的對象指向收消息的對象。2023/10/279消息連接的標(biāo)識兩個對象之間可能存在著由于通信需要而形成的關(guān)系找出消息連接的方法及策略對于每一個對象,執(zhí)行:查詢該對象需要哪些對象的服務(wù),從該對象畫一箭頭到哪個對象;查詢哪個對象需要該對象的服務(wù),從那個對象畫一箭頭到該對象;循消息連接找到下一個對象,重復(fù)以上步驟。2023/10/280找出消息連接的方法及策略對于每一個對象,執(zhí)行:2023/8/用例模型

IvarJacohson提出了用例驅(qū)動的面向?qū)ο蟮能浖椒ǎ瑥慕M成系統(tǒng)的實(shí)際操作入手。首先分析系統(tǒng)是如何使用的,強(qiáng)調(diào)系統(tǒng)使用時與不同的類型用戶交互時的情況,即從用例出發(fā)。2023/10/281用例模型IvarJacohson提出了用例驅(qū)動的面向?qū)κ裁词怯美?/p>

用例是一個連貫的功能性單元,它由消息順序表示的類元(系統(tǒng)、子系統(tǒng)或類)提供,這些消息與被系統(tǒng)執(zhí)行的動作在系統(tǒng)與外部用戶(表現(xiàn)為參與者)間交換。簡單地說,它就是之通過利用系統(tǒng)中某些功能來使用系統(tǒng)的過程。用例的目標(biāo)

用來定義類的一個行為,但不顯示類的內(nèi)部結(jié)構(gòu)。每個用例說明類提供給它用戶的一種的服務(wù),也即一種對外部可見的使用類的特定方式。描述用戶和類之間的交互的觀點(diǎn)來

溫馨提示

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

最新文檔

評論

0/150

提交評論