第四章 軟件工程-地理信息系統(tǒng)_第1頁
第四章 軟件工程-地理信息系統(tǒng)_第2頁
第四章 軟件工程-地理信息系統(tǒng)_第3頁
第四章 軟件工程-地理信息系統(tǒng)_第4頁
第四章 軟件工程-地理信息系統(tǒng)_第5頁
已閱讀5頁,還剩126頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、西南科技大學(xué)西南科技大學(xué) 人之所以有一張嘴,而有兩只耳朵,原因是聽的要比說的多一倍。 你不能左右天氣,但你能左右你的心情。 軟件工程的原理與方法軟件工程的原理與方法地理信息系統(tǒng)地理信息系統(tǒng)武鋒強(qiáng)武鋒強(qiáng)西南科技大學(xué)西南科技大學(xué)第四章第四章 GIS軟件工程的分析方法軟件工程的分析方法 4.1 結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析方法1 4.2 面向?qū)ο蟮幕A(chǔ)面向?qū)ο蟮幕A(chǔ)2 4.3 Coad分析方法分析方法3 4.4 OMT分析方法分析方法4 4.5 面向?qū)ο蟮拈_發(fā)過程面向?qū)ο蟮拈_發(fā)過程5 4.6 面向?qū)ο蟮姆治鲞^程面向?qū)ο蟮姆治鲞^程6西南科技大學(xué)西南科技大學(xué)4.1 結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析方法v是現(xiàn)有的軟件

2、開發(fā)方法中最成熟,應(yīng)用最是現(xiàn)有的軟件開發(fā)方法中最成熟,應(yīng)用最廣泛的方法,主要特點(diǎn)是快速,自然和方廣泛的方法,主要特點(diǎn)是快速,自然和方便。便。v結(jié)構(gòu)化方法總的指導(dǎo)思想自頂向下、逐步結(jié)構(gòu)化方法總的指導(dǎo)思想自頂向下、逐步求精,分解成若干個具有合適大小和功能求精,分解成若干個具有合適大小和功能的模塊,并對各個模塊進(jìn)行定義和描述的模塊,并對各個模塊進(jìn)行定義和描述 ,其實(shí)質(zhì)就是功能分解和抽象。其實(shí)質(zhì)就是功能分解和抽象。西南科技大學(xué)西南科技大學(xué)4.1 結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析方法發(fā)展歷程發(fā)展歷程v70年代初年代初 Dijkstra提出結(jié)構(gòu)化程序設(shè)計方法提出結(jié)構(gòu)化程序設(shè)計方法 SP法法(Structured

3、Program)v70年代中年代中 結(jié)構(gòu)化設(shè)計方法結(jié)構(gòu)化設(shè)計方法 SD法法(Structured Design)v70年代末年代末 結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析方法 SA法法(Structured Analysis) SA,SD,SP法相互銜接,形成了一整套開發(fā)方法。法相互銜接,形成了一整套開發(fā)方法。若將若將SA,SD 法結(jié)合起來,又稱為結(jié)構(gòu)化分析與設(shè)法結(jié)合起來,又稱為結(jié)構(gòu)化分析與設(shè)計技術(shù),即計技術(shù),即SDAT技術(shù)。技術(shù)。西南科技大學(xué)西南科技大學(xué)4.1 結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析方法采用簡單的易讀的符號采用簡單的易讀的符號三種基本結(jié)構(gòu)三種基本結(jié)構(gòu)自頂向下逐步求精的設(shè)計方法自頂向下逐步求精的設(shè)計方法結(jié)

4、構(gòu)化分析結(jié)構(gòu)化分析方法特點(diǎn)方法特點(diǎn)一一 結(jié)構(gòu)化分析方法:用特定的符號和工具,按照一結(jié)構(gòu)化分析方法:用特定的符號和工具,按照一定的結(jié)構(gòu)將需求表示出來。定的結(jié)構(gòu)將需求表示出來。西南科技大學(xué)西南科技大學(xué)4.1 結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析方法AB判斷循環(huán)體判斷處理1處理2BA)順序結(jié)構(gòu)B)分支結(jié)構(gòu)C)循環(huán)結(jié)構(gòu)圖4.1 三種結(jié)構(gòu)結(jié)構(gòu)化分析的三種結(jié)構(gòu)結(jié)構(gòu)化分析的三種結(jié)構(gòu)西南科技大學(xué)西南科技大學(xué)4.1 結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析方法123x1.11.21.33.13.2圖4.2 分解過程結(jié)構(gòu)化分析的分解過程結(jié)構(gòu)化分析的分解過程西南科技大學(xué)西南科技大學(xué)綜合地理信息系統(tǒng)地圖顯示文件管理信息查詢數(shù)據(jù)庫維護(hù)數(shù)據(jù)分析屬性

5、查詢條件查詢開窗查詢空間查詢顯示對話框按輸入條件查詢顯 示 查 詢 結(jié)果4.1 結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析方法示例示例1圖4.3 系統(tǒng)分析示例西南科技大學(xué)西南科技大學(xué)4.1 結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析方法示例示例2v讀入三個數(shù),找出并打印其中的最大數(shù)讀入三個數(shù),找出并打印其中的最大數(shù) v一級粗略分析一級粗略分析 輸入X1,X2,X3 找出X1,X2,X3中最大的數(shù) 輸出v二級求精二級求精 1將X1與X2地大數(shù)存于MAX中v 1.1 If x1x2 then max=x1vEndIfmax=x2 2將X3與MAX的大數(shù)存于MAX中v 2.1 If x3max then max=x3西南科技大學(xué)西南科

6、技大學(xué)4.1 結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析方法示例示例3西南科技大學(xué)西南科技大學(xué)4.1 結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析方法示例示例3西南科技大學(xué)西南科技大學(xué)4.1 結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析方法示例示例3西南科技大學(xué)西南科技大學(xué)4.1 結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析方法示例示例3西南科技大學(xué)西南科技大學(xué)4.1 結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析方法描述工具描述工具二二 結(jié)構(gòu)化分析方法的描述工具結(jié)構(gòu)化分析方法的描述工具組成數(shù)據(jù)流圖數(shù)據(jù)流圖數(shù)據(jù)字典數(shù)據(jù)字典描述加工邏描述加工邏輯的結(jié)構(gòu)化輯的結(jié)構(gòu)化語言,判定語言,判定表,判定樹表,判定樹西南科技大學(xué)西南科技大學(xué)4.1 結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析方法數(shù)據(jù)流圖數(shù)據(jù)流圖1數(shù)據(jù)流圖數(shù)據(jù)流

7、圖(Data Flow Diagram 簡稱簡稱DFD ) 是描述系統(tǒng)中數(shù)據(jù)流程的圖形工具,它標(biāo)識了一個系是描述系統(tǒng)中數(shù)據(jù)流程的圖形工具,它標(biāo)識了一個系統(tǒng)的邏輯輸入和邏輯輸出以及把邏輯輸入轉(zhuǎn)換為邏輯輸出統(tǒng)的邏輯輸入和邏輯輸出以及把邏輯輸入轉(zhuǎn)換為邏輯輸出所需要的加工。所需要的加工。結(jié)構(gòu)化分析方法的描述工具結(jié)構(gòu)化分析方法的描述工具西南科技大學(xué)西南科技大學(xué)v數(shù)據(jù)流圖的組成數(shù)據(jù)流圖的組成 由四種基本成分組成,如圖由四種基本成分組成,如圖4.4所示:所示:數(shù)據(jù)流加工圖4.4 數(shù)據(jù)流圖的基本成分PXFS數(shù)據(jù)存儲源點(diǎn)終點(diǎn)4.1 結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析方法數(shù)據(jù)流圖數(shù)據(jù)流圖第一種第二種西南科技大學(xué)西南科技大學(xué)

8、學(xué)生學(xué)籍學(xué)生學(xué)籍新生名單新生名單畢業(yè)生登記表畢業(yè)生登記表學(xué)生成績學(xué)生成績招生招生辦辦統(tǒng)計報表統(tǒng)計報表學(xué)生成績單學(xué)生成績單學(xué)生學(xué)生信息信息管理管理學(xué)生登記表學(xué)生登記表統(tǒng)計統(tǒng)計報表報表學(xué)生學(xué)生成績成績管理管理教務(wù)教務(wù)管理管理教學(xué)計劃教學(xué)計劃學(xué)生學(xué)生學(xué)籍學(xué)籍管理管理各各系部系部教師教師省省教委教委校長校長有關(guān)有關(guān)單位單位教學(xué)計劃教學(xué)計劃排課排課課表課表打印打印課表課表學(xué)生學(xué)生4.1 結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析方法示例示例學(xué)生學(xué)生用人用人單位單位西南科技大學(xué)西南科技大學(xué)圖4.6學(xué)生學(xué)籍管理子系統(tǒng)數(shù)據(jù)流程圖審批表審批表學(xué)籍變動學(xué)籍變動申請申請審批審批變動變動申請申請學(xué)籍變動學(xué)籍變動通知通知審批審批畢業(yè)畢業(yè)

9、資格資格畢業(yè)證書畢業(yè)證書留退留退處理處理修改修改學(xué)生學(xué)生學(xué)籍學(xué)籍學(xué)生學(xué)籍學(xué)生學(xué)籍學(xué)生學(xué)生畢業(yè)畢業(yè)登記登記畢業(yè)生畢業(yè)生登記表登記表學(xué)生成績學(xué)生成績留退留退名單名單打印打印變動變動通知通知獎勵獎勵處理處理獎勵名單獎勵名單4.1 結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析方法示例示例學(xué)生學(xué)生學(xué)生學(xué)生用人用人單位單位教務(wù)教務(wù)處處西南科技大學(xué)西南科技大學(xué)4.1 結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析方法數(shù)據(jù)字典數(shù)據(jù)字典2數(shù)據(jù)字典數(shù)據(jù)字典(Data Dictionary簡稱簡稱DD) 描述軟件系統(tǒng)的信息流程和加工,描述軟件系統(tǒng)的信息流程和加工,SA方方法使用數(shù)據(jù)字典對這些成分進(jìn)行詳細(xì)說明。法使用數(shù)據(jù)字典對這些成分進(jìn)行詳細(xì)說明。 數(shù)據(jù)流圖

10、中的數(shù)據(jù)流名、數(shù)據(jù)存儲名、數(shù)數(shù)據(jù)流圖中的數(shù)據(jù)流名、數(shù)據(jù)存儲名、數(shù)據(jù)項(xiàng)名、基本加工名的嚴(yán)格定義的集合構(gòu)成據(jù)項(xiàng)名、基本加工名的嚴(yán)格定義的集合構(gòu)成了數(shù)據(jù)字典。了數(shù)據(jù)字典。結(jié)構(gòu)化分析方法的描述工具結(jié)構(gòu)化分析方法的描述工具西南科技大學(xué)西南科技大學(xué)4.1 結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析方法數(shù)據(jù)字典數(shù)據(jù)字典v 數(shù)據(jù)字典的描述方法可采用卡片格式。對數(shù)據(jù)流、數(shù)據(jù)存儲和數(shù)據(jù)字典的描述方法可采用卡片格式。對數(shù)據(jù)流、數(shù)據(jù)存儲和 數(shù)據(jù)項(xiàng)的描述可采用如下符號:數(shù)據(jù)項(xiàng)的描述可采用如下符號:v (1) “+”表示與。例如:登記表表示與。例如:登記表=姓名姓名+專業(yè)專業(yè)+班級班級+年年齡齡+性別性別+籍貫;籍貫;v (2) “|”表

11、示或。例如:存期表示或。例如:存期= 1 | 2 | 3 | 5 ,表,表示銀行存期可有示銀行存期可有1年,年,2年,年,3年,年,5年,而年,而“ ”表示選擇項(xiàng)。表示選擇項(xiàng)。v (3)“ ”表示重復(fù)。例如:發(fā)票表示重復(fù)。例如:發(fā)票= 發(fā)票行發(fā)票行,表示一,表示一張發(fā)票有若干行。張發(fā)票有若干行。西南科技大學(xué)西南科技大學(xué)圖4.7 數(shù)據(jù)字典(a)數(shù)據(jù)流條目(b) 數(shù)據(jù)存儲條目;(c) 數(shù)據(jù)項(xiàng)條目;(d) 基本加工條目(c)名字種類簡述別名組成數(shù)量注畢業(yè)生登記表數(shù)據(jù)流畢業(yè)登記情況無姓名專業(yè)班級每天50張(a)名字種類簡述別名組成組織注學(xué)生學(xué)籍?dāng)?shù)據(jù)存儲學(xué)籍登記無學(xué)號姓名專業(yè)按學(xué)號遞增排列(b)名字種類

12、簡述別名類型長度注姓名數(shù)據(jù)項(xiàng)學(xué)生項(xiàng)目無字符8名字種類編號激發(fā)條件加工邏輯注獎勵處理數(shù)據(jù)加工收到獎勵名單If 收到獎勵名單 獎勵處理(d)4.1 結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析方法示例示例西南科技大學(xué)西南科技大學(xué)4.1 結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析方法描述加工邏輯的工具描述加工邏輯的工具3描述描述加工邏輯的工具加工邏輯的工具是基本加工條目中的一項(xiàng)重要內(nèi)容,有三是基本加工條目中的一項(xiàng)重要內(nèi)容,有三種工具來描述加工邏輯:結(jié)構(gòu)化語言,判定種工具來描述加工邏輯:結(jié)構(gòu)化語言,判定表,判定樹表,判定樹。 結(jié)構(gòu)化分析方法的描述工具結(jié)構(gòu)化分析方法的描述工具西南科技大學(xué)西南科技大學(xué)(1)年交易額在)年交易額在5萬或萬或5萬

13、以下,則不給予折扣;萬以下,則不給予折扣;(2)對于年交易額在)對于年交易額在5萬以上時:萬以上時: 如果無欠款,則給予如果無欠款,則給予15%的折扣;的折扣; 如果有欠款,而且與本公司的交易關(guān)系在如果有欠款,而且與本公司的交易關(guān)系在20年以上,則折扣為年以上,則折扣為10%; 如果有欠款,而且與本公司交易關(guān)系在如果有欠款,而且與本公司交易關(guān)系在20年以下,則折扣為年以下,則折扣為5%。 訂貨折扣邏輯描述如下:訂貨折扣邏輯描述如下:4.1 結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析方法示例示例西南科技大學(xué)西南科技大學(xué)訂貨處理訂貨處理優(yōu)惠待遇優(yōu)惠待遇年交易額年交易額5 5萬以上萬以上年交易額年交易額5 5萬或以下

14、萬或以下無欠款無欠款有欠款有欠款交易交易2020年年以上以上交易交易2020年年以下以下15%15%10%10%5%5%0%0%4.1 結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析方法判斷樹判斷樹西南科技大學(xué)西南科技大學(xué)條件及行動條件及行動12345678條件組合條件組合C1:交易額交易額5萬以萬以上上C2:無欠款無欠款 C3:交易交易20年以上年以上加加 工工A1:折扣率折扣率15%A2:折扣率折扣率10%A3:折扣率折扣率5%A4:折扣率折扣率0%條件語句條件語句加工語句加工語句條件項(xiàng)條件項(xiàng)加工項(xiàng)加工項(xiàng)4.1 結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析方法判斷表判斷表西南科技大學(xué)西南科技大學(xué)條件及行動條件及行動12345678

15、條件組合條件組合C1:交易額交易額5萬以上萬以上C2:無欠款無欠款 C3:交易交易20年以上年以上行行 動動A1:折扣率折扣率15%A2:折扣率折扣率10%A3:折扣率折扣率5%A4:折扣率折扣率0%Y YY YY YY YN NN NN NN NY YY YN NN NY YY YN NN NY YN NY YN NY YN NY YN N4.1 結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析方法判斷表判斷表西南科技大學(xué)西南科技大學(xué)條件及行動條件及行動12345678條件組合條件組合C1:交易額交易額5萬以上萬以上C2:無欠款無欠款 C3:交易交易20年以上年以上行行 動動A1:折扣率折扣率15%A2:折扣率折扣

16、率10%A3:折扣率折扣率5%A4:折扣率折扣率0%Y YY YY YY YN NN NN NN NY YY YN NN NY YY YN NN NY YN NY YN NY YN NY YN N4.1 結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析方法判斷表判斷表西南科技大學(xué)西南科技大學(xué)條件及行動條件及行動1345678條件組合條件組合C1:交易額交易額5萬以上萬以上C2:無欠款無欠款 C3:交易交易20年以上年以上行行 動動A1:折扣率折扣率15%A2:折扣率折扣率10%A3:折扣率折扣率5%A4:折扣率折扣率0%Y YY YY YN NN NN NN NY YN NN NY YY YN NN NY YN NY

17、 YN NY YN N4.1 結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析方法判斷表判斷表西南科技大學(xué)西南科技大學(xué)4.1 結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析方法結(jié)構(gòu)化語言結(jié)構(gòu)化語言 IF IF 購貨金額在購貨金額在5 5萬以上萬以上 THEN IF THEN IF 最近最近3 3月無欠款月無欠款 THEN THEN 折扣率為折扣率為15%15% ELSE IF ELSE IF 與公司交易與公司交易2020年以上年以上 THEN THEN 折扣率為折扣率為10%10% ELSE ELSE 折扣率為折扣率為5%5% ELSE ELSE 無折扣無折扣 西南科技大學(xué)西南科技大學(xué)1.1. 從掌握這項(xiàng)工具的從掌握這項(xiàng)工具的難易難易程度

18、看,判斷樹最容易被初學(xué)者接受,易于掌程度看,判斷樹最容易被初學(xué)者接受,易于掌握;結(jié)構(gòu)化語言的難度居中;而判斷表的難度最高。握;結(jié)構(gòu)化語言的難度居中;而判斷表的難度最高。2.2. 對于對于邏輯驗(yàn)證邏輯驗(yàn)證,判斷表最好,它能夠把所有的可能性全部考慮到,能,判斷表最好,它能夠把所有的可能性全部考慮到,能夠澄清疑問;結(jié)構(gòu)化語言較好;而判斷樹不如這兩項(xiàng)工具。夠澄清疑問;結(jié)構(gòu)化語言較好;而判斷樹不如這兩項(xiàng)工具。3.3. 從從直觀表達(dá)直觀表達(dá)邏輯來看,判斷樹最好,它用圖形表達(dá),一目了然,易于邏輯來看,判斷樹最好,它用圖形表達(dá),一目了然,易于和用戶討論;結(jié)構(gòu)化語言居中;而判斷表的表達(dá)能力最低。和用戶討論;結(jié)構(gòu)

19、化語言居中;而判斷表的表達(dá)能力最低。4.1 結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析方法三種表達(dá)工具的比較三種表達(dá)工具的比較西南科技大學(xué)西南科技大學(xué)4.4. 作為作為程序設(shè)計程序設(shè)計資料,結(jié)構(gòu)化語言和判斷表最好,而判斷樹卻不如這資料,結(jié)構(gòu)化語言和判斷表最好,而判斷樹卻不如這兩項(xiàng)工具。兩項(xiàng)工具。5.5. 對于對于可修改可修改性,結(jié)構(gòu)化語言的可修改性較高;判斷樹居中;而判斷性,結(jié)構(gòu)化語言的可修改性較高;判斷樹居中;而判斷表的可修改性最低。表的可修改性最低。4.1 結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析方法三種表達(dá)工具的比較三種表達(dá)工具的比較西南科技大學(xué)西南科技大學(xué)1.1. 對于一個不太復(fù)雜的判斷邏輯,也就是說,條件只有兩個或三

20、個,對于一個不太復(fù)雜的判斷邏輯,也就是說,條件只有兩個或三個,條件組合最多只有條件組合最多只有1515個,相應(yīng)的動作也只有個,相應(yīng)的動作也只有1010個左右,使用判斷樹個左右,使用判斷樹最好。最好。2.2. 對于一個復(fù)雜的判斷邏輯,條件很多,組合也很多,相應(yīng)的動作有對于一個復(fù)雜的判斷邏輯,條件很多,組合也很多,相應(yīng)的動作有任意多個,使用判斷表最好。任意多個,使用判斷表最好。3.3. 如一個處理邏輯既包含了一般的順序執(zhí)行動作,又包含了判斷或循如一個處理邏輯既包含了一般的順序執(zhí)行動作,又包含了判斷或循環(huán)邏輯,則使用結(jié)構(gòu)式語言最好。環(huán)邏輯,則使用結(jié)構(gòu)式語言最好。4.1 結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析方法三

21、種表達(dá)工具的選用三種表達(dá)工具的選用三種表達(dá)工三種表達(dá)工具的選用具的選用西南科技大學(xué)西南科技大學(xué)4.1 結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析方法三三 結(jié)構(gòu)化分析方法的步驟:結(jié)構(gòu)化分析方法的步驟:第二步第一步建立當(dāng)前系統(tǒng)建立當(dāng)前系統(tǒng)的物理模型(的物理模型(怎么做)。怎么做)。第二步抽象出當(dāng)前系抽象出當(dāng)前系統(tǒng)的邏輯模型統(tǒng)的邏輯模型(做什么)。(做什么)。第三步建立目標(biāo)系統(tǒng)建立目標(biāo)系統(tǒng)的邏輯模型(的邏輯模型(具體化做什么具體化做什么)。)。.Add Your Title為目標(biāo)系統(tǒng)為目標(biāo)系統(tǒng)的邏輯模型的邏輯模型作補(bǔ)充(做作補(bǔ)充(做的更好)。的更好)。第四步西南科技大學(xué)西南科技大學(xué)結(jié)構(gòu)化分析方法的步驟結(jié)構(gòu)化分析方法的

22、步驟當(dāng)前系統(tǒng)當(dāng)前系統(tǒng)目標(biāo)系統(tǒng)目標(biāo)系統(tǒng)物理模型物理模型邏輯模型邏輯模型新系統(tǒng)新系統(tǒng)物理模型物理模型新系統(tǒng)新系統(tǒng)邏輯模型邏輯模型模型化模型化做什么做什么怎么做怎么做抽象化抽象化具體化具體化實(shí)例化實(shí)例化導(dǎo)導(dǎo)出出返回返回4.1 結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析方法西南科技大學(xué)西南科技大學(xué)難于適應(yīng)需求的變化,有維護(hù)問題程序的控制結(jié)構(gòu)簡單結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析方法清晰的層次結(jié)構(gòu),便于閱讀和理解難于解決重用的問題優(yōu)點(diǎn)缺點(diǎn)符合問題分解,抽象到具體的思路不適合于規(guī)模大的,特別是復(fù)雜的應(yīng)用4.1 結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析方法西南科技大學(xué)西南科技大學(xué)4.2面向?qū)ο蠡A(chǔ)面向?qū)ο蠡A(chǔ)v 面向?qū)ο竺嫦驅(qū)ο?Object Ori

23、ented)的方法簡稱為的方法簡稱為OO方法。方法。v 面向?qū)ο蟮某绦蛟O(shè)計是以對象為基礎(chǔ),以消面向?qū)ο蟮某绦蛟O(shè)計是以對象為基礎(chǔ),以消息驅(qū)動對象執(zhí)行的程序設(shè)計技術(shù)。息驅(qū)動對象執(zhí)行的程序設(shè)計技術(shù)。 OO的一些基本概念:的一些基本概念:v OO方法的思想最早出現(xiàn)于挪威奧斯陸大學(xué)和方法的思想最早出現(xiàn)于挪威奧斯陸大學(xué)和挪威計算中心共同研制的仿真語言挪威計算中心共同研制的仿真語言Simula67中。中。v 1980年美國加州的年美國加州的Xerox研究中心推出研究中心推出SmallTalk80語言,使得語言,使得OO方法得以較完善方法得以較完善地實(shí)現(xiàn)。地實(shí)現(xiàn)。v 20世紀(jì)世紀(jì)90年代初,年代初,OO方法和

24、方法和OO程序設(shè)計語程序設(shè)計語言開始成熟。言開始成熟。 OO的發(fā)展:的發(fā)展:4.2面向?qū)ο蠡A(chǔ)面向?qū)ο蠡A(chǔ)39v作為全球第四大數(shù)字與信息技術(shù)產(chǎn)品生產(chǎn)商,施樂公司在其半個多世紀(jì)的發(fā)展歷程中作為全球第四大數(shù)字與信息技術(shù)產(chǎn)品生產(chǎn)商,施樂公司在其半個多世紀(jì)的發(fā)展歷程中創(chuàng)造了無數(shù)個發(fā)明:創(chuàng)造了無數(shù)個發(fā)明: vWindows下拉菜單下拉菜單 v鼠標(biāo)鼠標(biāo) v個人電腦個人電腦 v圖形用戶接口(圖形用戶接口(GUI) v靜電復(fù)印機(jī)靜電復(fù)印機(jī) v普通紙復(fù)印機(jī)普通紙復(fù)印機(jī) v桌面桌面?zhèn)髡鏅C(jī)傳真機(jī) v彩色復(fù)印機(jī)彩色復(fù)印機(jī) v激光打印機(jī)激光打印機(jī) v以太局域網(wǎng)系統(tǒng)以太局域網(wǎng)系統(tǒng) v第一套商用數(shù)字出版系統(tǒng)第一套商用數(shù)字出

25、版系統(tǒng) v第一臺全彩色網(wǎng)絡(luò)激光打印機(jī)第一臺全彩色網(wǎng)絡(luò)激光打印機(jī) v世界最快的數(shù)碼彩色復(fù)印機(jī)世界最快的數(shù)碼彩色復(fù)印機(jī) 西南科技大學(xué)西南科技大學(xué)面向?qū)ο笥嬎銠C(jī)軟件輔助工程面向?qū)ο笥嬎銠C(jī)軟件輔助工程面向?qū)ο蟮臏y試面向?qū)ο蟮臏y試面向?qū)ο蟪绦蛟O(shè)計面向?qū)ο蟪绦蛟O(shè)計面向?qū)ο蟮脑O(shè)計面向?qū)ο蟮脑O(shè)計OOPOODOOCASEOOTOOA面向?qū)ο蟮姆治雒嫦驅(qū)ο蟮姆治?.2面向?qū)ο蟮膬?nèi)容面向?qū)ο蟮膬?nèi)容西南科技大學(xué)西南科技大學(xué)4.2面向?qū)ο蠡A(chǔ)面向?qū)ο蠡A(chǔ)vOO的基本思路:的基本思路: OO方法是通過分析、研究實(shí)際應(yīng)用中的實(shí)體、方法是通過分析、研究實(shí)際應(yīng)用中的實(shí)體、實(shí)體的屬性及其相互關(guān)系,從中抽象出要解決問實(shí)體的屬性及其

26、相互關(guān)系,從中抽象出要解決問題的對象。再對具有相同屬性和功能的對象進(jìn)行題的對象。再對具有相同屬性和功能的對象進(jìn)行更高級的抽象得到能夠求解的對象類。最后求解更高級的抽象得到能夠求解的對象類。最后求解對象類,得到問題的解答。對象類,得到問題的解答。西南科技大學(xué)西南科技大學(xué)4.2面向?qū)ο蠡A(chǔ)面向?qū)ο蠡A(chǔ) 1) 對象和對象類對象和對象類對象是對客觀世界中事物的一種抽象。是由數(shù)據(jù)(屬性)及其之上的操作(行為)組成的封裝體。 對象可以量化,可以區(qū)分,可以是具體的,也可以是概念化的。 對象是對象類的一個成員,有時也叫“實(shí)例”。西南科技大學(xué)西南科技大學(xué)4.2面向?qū)ο蠡A(chǔ)面向?qū)ο蠡A(chǔ) 對象類 從對象的觀點(diǎn)看,對

27、象類(簡稱類)就是具有共同屬性、共同操作性質(zhì)的對象的集合。一個類實(shí)質(zhì)上定義了一種對象類型,它描述了屬于該類型的所有對象的性質(zhì)。 每個不同的對象則是所屬類的一個實(shí)例(Instance)。 一個類可以包含許多不同的但性質(zhì)相同的對象。在OO程序設(shè)計語言中可以直接定義、求解并實(shí)現(xiàn)類。西南科技大學(xué)西南科技大學(xué)4.2面向?qū)ο蠡A(chǔ)面向?qū)ο蠡A(chǔ)抽象成抽象成類:汽車類:汽車牌號牌號輪子尺寸輪子尺寸排擋排擋材料材料換檔換檔移動移動修理修理對象:桑塔納小汽車對象:桑塔納小汽車牌號:牌號:京B-FX569 對象:賽車對象:賽車牌號:牌號:京A26751 實(shí)體實(shí)體類類抽象成抽象成圖4.8 對象和類西南科技大學(xué)西南科技大

28、學(xué)4.2面向?qū)ο蠡A(chǔ)面向?qū)ο蠡A(chǔ)2) 消息和方法消息和方法 消息是對象之間進(jìn)行聯(lián)系和通信的惟一方式,為了消息是對象之間進(jìn)行聯(lián)系和通信的惟一方式,為了實(shí)現(xiàn)對象的方法,消息中必須包括:實(shí)現(xiàn)對象的方法,消息中必須包括:目標(biāo)對象名稱、方法目標(biāo)對象名稱、方法名稱和變量、調(diào)用與選定方法對應(yīng)的程序名稱和變量、調(diào)用與選定方法對應(yīng)的程序等信息。等信息。 對象的處理稱為操作或方法。每個對象都有自己的對象的處理稱為操作或方法。每個對象都有自己的屬性和方法,對象自己不能改變自身的屬性和實(shí)現(xiàn)自己的屬性和方法,對象自己不能改變自身的屬性和實(shí)現(xiàn)自己的方法,這些行為是通過其它對象來實(shí)現(xiàn)的。方法,這些行為是通過其它對象來實(shí)現(xiàn)的

29、。 我們用學(xué)生檔案管理為例說明對象方法和消息之間的關(guān)系,如圖所示:西南科技大學(xué)西南科技大學(xué)屬性屬性學(xué)生內(nèi)部數(shù)據(jù)結(jié)構(gòu)方法方法增加Add_Stu修改Change_Stu刪除Delete_Stu查找Find_Stu學(xué)生對象調(diào)用相應(yīng)程序Find_Stu實(shí)現(xiàn)對學(xué)生的查找消息Query_Stu(int intNumber)老師對象圖4.9 學(xué)生對象和消息傳遞示意圖4.2面向?qū)ο蠡A(chǔ)面向?qū)ο蠡A(chǔ)西南科技大學(xué)西南科技大學(xué)3) 封裝封裝把對象的全部屬性和全部服務(wù)結(jié)合在一起,形成一個不可分把對象的全部屬性和全部服務(wù)結(jié)合在一起,形成一個不可分割的獨(dú)立單位(對象)。割的獨(dú)立單位(對象)。盡可能隱蔽對象的內(nèi)部細(xì)節(jié)(信息

30、隱蔽)。盡可能隱蔽對象的內(nèi)部細(xì)節(jié)(信息隱蔽)。4.2面向?qū)ο蠡A(chǔ)面向?qū)ο蠡A(chǔ)西南科技大學(xué)西南科技大學(xué)學(xué)生類內(nèi)部表示姓 名:字符串班 級:字符串年 齡:歲英 語:分計算機(jī):分操作的實(shí)現(xiàn)查找成績查找成績的內(nèi)部程序查找學(xué)生查找學(xué)生的內(nèi)部程序圖4.10 “學(xué)生類”實(shí)現(xiàn)示意圖4.2面向?qū)ο蠡A(chǔ)面向?qū)ο蠡A(chǔ)西南科技大學(xué)西南科技大學(xué)f1 f2f3fifnfi(X)Sgi(X,S)S輸輸出出輸輸出出4.2面向?qū)ο蠡A(chǔ)面向?qū)ο蠡A(chǔ)西南科技大學(xué)西南科技大學(xué) 面向過程就是分析出解決問題所需要的步驟,面向過程就是分析出解決問題所需要的步驟,然后用函數(shù)把這些步驟一步一步實(shí)現(xiàn),使用的時然后用函數(shù)把這些步驟一步一步實(shí)現(xiàn),使

31、用的時候一個一個依次調(diào)用就可以了。候一個一個依次調(diào)用就可以了。 面向?qū)ο笫前褬?gòu)成問題事務(wù)分解成各個對象,面向?qū)ο笫前褬?gòu)成問題事務(wù)分解成各個對象,建立對象的目的不是為了完成一個步驟,而是為建立對象的目的不是為了完成一個步驟,而是為了描敘某個事物在整個解決問題的步驟中的行為,了描敘某個事物在整個解決問題的步驟中的行為,例如五子棋。例如五子棋。 4.2面向?qū)ο蠡A(chǔ)面向?qū)ο蠡A(chǔ)面向過程與面向?qū)ο蟮谋容^面向過程與面向?qū)ο蟮谋容^面向過程的設(shè)計思路:面向過程的設(shè)計思路: 是首先分析問題的步驟:1、開始游戲,2、黑子先走,3、繪制畫面,4、判斷輸贏,5、輪到白子,6、繪制畫面,7、判斷輸贏,8、返回步驟2,9

32、、輸出最后結(jié)果。 把上面每個步驟用分別的函數(shù)來實(shí)現(xiàn),問題就解決了。 4.2面向?qū)ο蠡A(chǔ)面向?qū)ο蠡A(chǔ)面向過程與面向?qū)ο蟮谋容^面向過程與面向?qū)ο蟮谋容^西南科技大學(xué)西南科技大學(xué)而面向?qū)ο蟮脑O(shè)計思路:而面向?qū)ο蟮脑O(shè)計思路: 1、黑白雙方,這兩方的行為是一模一樣的; 2、棋盤系統(tǒng),負(fù)責(zé)繪制畫面; 3、規(guī)則系統(tǒng),負(fù)責(zé)判定諸如犯規(guī)、輸贏等; 第一類對象(玩家對象)負(fù)責(zé)接受用戶輸入,并告知第二第一類對象(玩家對象)負(fù)責(zé)接受用戶輸入,并告知第二類對象(棋盤對象)棋子布局的變化,棋盤對象接收到了類對象(棋盤對象)棋子布局的變化,棋盤對象接收到了棋子的變化就要負(fù)責(zé)在屏幕上面顯示出這種變化,同時利棋子的變化就要負(fù)責(zé)在

33、屏幕上面顯示出這種變化,同時利用第三類對象(規(guī)則系統(tǒng))來對棋局進(jìn)行判定。用第三類對象(規(guī)則系統(tǒng))來對棋局進(jìn)行判定。 4.2面向?qū)ο蠡A(chǔ)面向?qū)ο蠡A(chǔ)面向過程與面向?qū)ο蟮谋容^面向過程與面向?qū)ο蟮谋容^西南科技大學(xué)西南科技大學(xué) 功能上的統(tǒng)一保證了面向?qū)ο笤O(shè)計的功能上的統(tǒng)一保證了面向?qū)ο笤O(shè)計的可擴(kuò)展性。比如要加入悔棋的功能。可擴(kuò)展性。比如要加入悔棋的功能。 如果要改動面向過程的設(shè)計,那么從輸入到判斷到顯示這一連串的步驟都要改動,甚至步驟之間的順序都要進(jìn)行大規(guī)模調(diào)整。 如果是面向?qū)ο蟮脑?,只用改動棋盤對象就行了。4.2面向?qū)ο蠡A(chǔ)面向?qū)ο蠡A(chǔ)面向過程與面向?qū)ο蟮谋容^面向過程與面向?qū)ο蟮谋容^西南科技大學(xué)西南

34、科技大學(xué) 再比如我要把這個五子棋游戲改為圍棋再比如我要把這個五子棋游戲改為圍棋游戲,游戲, 如果是面向過程設(shè)計,那么五子棋的規(guī)則就分布在了程序的每一個角落,要改動還不如重寫。 如果當(dāng)初就是面向?qū)ο蟮脑O(shè)計,那么只用改動規(guī)則對象就可以了,五子棋和圍棋的區(qū)別不就是規(guī)則嗎?(當(dāng)然棋盤大小好像也不一樣,但是你會覺得這是一個難題嗎?直接在棋盤對象中進(jìn)行一番小改動就可以了。)4.2面向?qū)ο蠡A(chǔ)面向?qū)ο蠡A(chǔ)面向過程與面向?qū)ο蟮谋容^面向過程與面向?qū)ο蟮谋容^西南科技大學(xué)西南科技大學(xué)4.2面向?qū)ο蠡A(chǔ)面向?qū)ο蠡A(chǔ)面向過程與面向?qū)ο蟮谋容^面向過程與面向?qū)ο蟮谋容^西南科技大學(xué)西南科技大學(xué)4.3Coad分析方法分析方法v

35、Coad分析方法:通過研究與特定應(yīng)用有關(guān)的對象分析方法:通過研究與特定應(yīng)用有關(guān)的對象以及對象與對象之間的結(jié)構(gòu)與相互作用上來分析和以及對象與對象之間的結(jié)構(gòu)與相互作用上來分析和解決問題。解決問題。 分為面向?qū)ο蟮姆治觯ǚ譃槊嫦驅(qū)ο蟮姆治觯∣OA)和面向?qū)ο笤O(shè)計)和面向?qū)ο笤O(shè)計(OOD)。)。 v五個步驟常根據(jù)需要交叉進(jìn)行五個步驟常根據(jù)需要交叉進(jìn)行 1確定類和對象確定類和對象3定義主題定義主題4定義屬性和實(shí)例關(guān)聯(lián)定義屬性和實(shí)例關(guān)聯(lián)5定義服務(wù)定義服務(wù)2確定結(jié)構(gòu)確定結(jié)構(gòu):OOA方方法法5個個步驟步驟4.3Coad分析方法分析方法OOA步驟步驟 識別類與對象識別類與對象 確定系統(tǒng)中所有的對象及對象的屬性和

36、操作。確定系統(tǒng)中所有的對象及對象的屬性和操作。 (1)(1)發(fā)現(xiàn)對象發(fā)現(xiàn)對象 人員和組織 結(jié)構(gòu) 物品和設(shè)備 扮演的角色 事件 文檔 位置例: 銀行儲蓄管理系統(tǒng)4.3Coad分析方法分析方法 1 1. .識別類與對象識別類與對象 1名詞往往是候選對象名詞往往是候選對象; 結(jié)構(gòu)也可提取候選的結(jié)構(gòu)也可提取候選的類及對象類及對象; v系統(tǒng)必須觀測、系統(tǒng)必須觀測、記憶記憶的與時間有關(guān)的的與時間有關(guān)的事件事件可作為候選可作為候選的類及對象的類及對象; ; 如:建立帳戶的日期 打開一個帳戶等v與系統(tǒng)發(fā)生交互的與系統(tǒng)發(fā)生交互的人人及系統(tǒng)必須保留其信息的人及系統(tǒng)必須保留其信息的人, ,可作可作為候選的類及對象為

37、候選的類及對象; ; 如:柜員、儲戶等v這些人所屬的這些人所屬的組織組織單位,可作為候選的類及對象單位,可作為候選的類及對象; ; 如:總行、分行等4.3Coad分析方法分析方法 1 1. .識別類與對象識別類與對象 v系統(tǒng)必須記憶、且不在問題域約束中的順序系統(tǒng)必須記憶、且不在問題域約束中的順序操作過程操作過程( (為了指導(dǎo)人機(jī)交互為了指導(dǎo)人機(jī)交互) )可作為候選的類及對象可作為候選的類及對象; ; 如:柜員事務(wù)、遠(yuǎn)程事務(wù)等。 其中屬性是操作過程名其中屬性是操作過程名, ,操作特權(quán)及操作步驟的描述操作特權(quán)及操作步驟的描述; ;v系統(tǒng)需了解掌握的物理位置、辦公系統(tǒng)需了解掌握的物理位置、辦公地點(diǎn)地

38、點(diǎn)等可作為候選等可作為候選的類及對象的類及對象; ; 如:ATM機(jī)器、帳戶等4.3Coad分析方法分析方法 1 1. .識別類與對象識別類與對象 (2)(2)審查和篩選審查和篩選, ,v 舍棄無用的類舍棄無用的類v 對象的精簡對象的精簡只有一個屬性的對象只有一個屬性的對象只有一個服務(wù)的對象只有一個服務(wù)的對象v 推遲到推遲到OOD考慮的對象考慮的對象 4.3Coad分析方法分析方法 1 1. .識別類與對象識別類與對象 帳冊 上級系統(tǒng)接口供貨員銷售事件特價商品計量商品收款機(jī)商品一覽表超市銷售管理系 統(tǒng)(對象層)4.3Coad分析方法分析方法 1 1. .識別類與對象識別類與對象 定義結(jié)構(gòu)與連接定

39、義結(jié)構(gòu)與連接初步確定關(guān)聯(lián)初步確定關(guān)聯(lián)對應(yīng)于描述性動詞或動詞短語對應(yīng)于描述性動詞或動詞短語需求陳述中隱含需求陳述中隱含根據(jù)問題域知識得出根據(jù)問題域知識得出分析標(biāo)識對象之間的關(guān)系分析標(biāo)識對象之間的關(guān)系對象之間的分類關(guān)系:一般對象之間的分類關(guān)系:一般- -特殊結(jié)構(gòu)特殊結(jié)構(gòu)對象之間的組成關(guān)系:整體對象之間的組成關(guān)系:整體- -部分結(jié)構(gòu)部分結(jié)構(gòu)對象之間的靜態(tài)聯(lián)系:實(shí)例連接對象之間的靜態(tài)聯(lián)系:實(shí)例連接對象之間的動態(tài)關(guān)系:消息連接對象之間的動態(tài)關(guān)系:消息連接4.3Coad分析方法分析方法 2.2.定義結(jié)構(gòu)與連接定義結(jié)構(gòu)與連接2分類結(jié)構(gòu):從一般類發(fā)現(xiàn)特殊類分類結(jié)構(gòu):從一般類發(fā)現(xiàn)特殊類公司職員股東姓名身分證號碼

40、股份職員工資公司職員姓名身分證號碼股份工資?4.3Coad分析方法分析方法 2.2.定義結(jié)構(gòu)與連接定義結(jié)構(gòu)與連接從特殊類發(fā)現(xiàn)一般類從特殊類發(fā)現(xiàn)一般類公司職員股東姓名身分證號碼股份職員工資股東姓名身分證號碼股份職員姓名身分證號碼工資?4.3Coad分析方法分析方法 2.2.定義結(jié)構(gòu)與連接定義結(jié)構(gòu)與連接通過增加屬性簡化一般通過增加屬性簡化一般- -特殊結(jié)構(gòu)特殊結(jié)構(gòu)男人性別國籍人員女人美國人日本人人員中國人4.3Coad分析方法分析方法 2.2.定義結(jié)構(gòu)與連接定義結(jié)構(gòu)與連接67西南科技大學(xué)西南科技大學(xué)組裝結(jié)構(gòu)(整體-部分結(jié)構(gòu))表示事物的組成結(jié)構(gòu),即由屬于同一類或不同類的成員聚合而形成新的類??刂泼姘?/p>

41、控制面板 按鍵按鍵 顯示屏顯示屏指示燈指示燈4.3Coad分析方法分析方法結(jié)構(gòu)的分類結(jié)構(gòu)的分類用整體用整體- -部分結(jié)構(gòu)實(shí)現(xiàn)復(fù)用部分結(jié)構(gòu)實(shí)現(xiàn)復(fù)用車床機(jī)床刨床起重機(jī)電動機(jī)鉆床送料車4.3Coad分析方法分析方法 2.2.定義結(jié)構(gòu)與連接定義結(jié)構(gòu)與連接西南科技大學(xué)西南科技大學(xué)帳冊 上級系統(tǒng)接口供貨員銷售事件商品商品一覽表收款機(jī)特價商品計量商品超市銷售管理系 統(tǒng)(結(jié)構(gòu)層)4.3Coad分析方法分析方法 2.2.定義結(jié)構(gòu)與連接定義結(jié)構(gòu)與連接 標(biāo)識主題標(biāo)識主題( (主體主體) ) Coad/Yourdon方法中主題的概念:方法中主題的概念: 主題是把一組具有較強(qiáng)聯(lián)系的類組織在一起而得到的類主題是把一組具有

42、較強(qiáng)聯(lián)系的類組織在一起而得到的類的集合。的集合。 4.3Coad分析方法分析方法 3.3.標(biāo)識主題標(biāo)識主題( (主體主體) ) 3 主題概念及其用途主題概念及其用途主題層是在主題層是在OOA基本模型基本模型( (類圖類圖) )之上建立一個能幫助人們從不之上建立一個能幫助人們從不同的認(rèn)識層次來理解系統(tǒng)的補(bǔ)充模型;同的認(rèn)識層次來理解系統(tǒng)的補(bǔ)充模型;主題是一種比類和對象抽象層次更高、粒度更大的概念,用以主題是一種比類和對象抽象層次更高、粒度更大的概念,用以建立系統(tǒng)的高層抽象視圖;建立系統(tǒng)的高層抽象視圖;主題有助于指導(dǎo)系統(tǒng)設(shè)計者或用戶等理解一個大的系統(tǒng)模型主題有助于指導(dǎo)系統(tǒng)設(shè)計者或用戶等理解一個大的系

43、統(tǒng)模型, , 有助于組織一個大項(xiàng)目有助于組織一個大項(xiàng)目的工作。的工作。4.3Coad分析方法分析方法 3.3.標(biāo)識主題標(biāo)識主題( (主體主體) ) 主題概念的特點(diǎn):主題概念的特點(diǎn):是由一組類構(gòu)成的集合是由一組類構(gòu)成的集合一個主題內(nèi)部的對象類應(yīng)具有某種意義上的內(nèi)在聯(lián)系一個主題內(nèi)部的對象類應(yīng)具有某種意義上的內(nèi)在聯(lián)系描述系統(tǒng)中相對獨(dú)立的組成部分(如一個子系統(tǒng))描述系統(tǒng)中相對獨(dú)立的組成部分(如一個子系統(tǒng))描述系統(tǒng)中某一方面的事物(如人員、設(shè)備)描述系統(tǒng)中某一方面的事物(如人員、設(shè)備)解決系統(tǒng)中某一方面的問題(如輸入輸出)解決系統(tǒng)中某一方面的問題(如輸入輸出)主題的劃分有一定的靈活性和隨意性主題的劃分有

44、一定的靈活性和隨意性4.3Coad分析方法分析方法 3.3.標(biāo)識主題標(biāo)識主題( (主體主體) ) 主題的表示法主題的表示法三種表示方式三種表示方式: :壓縮方式壓縮方式 半展開方式半展開方式 全展開方式全展開方式半展開方式:編號 主題名壓縮方式編號 主題名類名 類名 類名主題名主題名下層主題4.3Coad分析方法分析方法 3.3.標(biāo)識主題標(biāo)識主題( (主體主體) ) 全展開方式:編號編號編號編號 類圖上原有的全部內(nèi)容4.3Coad分析方法分析方法 3.3.標(biāo)識主題標(biāo)識主題( (主體主體) ) 如何劃分主題如何劃分主題把每個結(jié)構(gòu)作為一個主題;把每個結(jié)構(gòu)作為一個主題;( (選取結(jié)構(gòu)中最上層的類作為

45、一主題選取結(jié)構(gòu)中最上層的類作為一主題) )通過實(shí)例連接互相聯(lián)系的類可劃分到一個主題;通過實(shí)例連接互相聯(lián)系的類可劃分到一個主題;把不屬于任何結(jié)構(gòu),也沒有實(shí)例連接的類作為一個主題。把不屬于任何結(jié)構(gòu),也沒有實(shí)例連接的類作為一個主題。4.3Coad分析方法分析方法 3.3.標(biāo)識主題標(biāo)識主題( (主體主體) ) 何時引入主題何時引入主題 依賴于模型自身復(fù)雜性依賴于模型自身復(fù)雜性小系統(tǒng)小系統(tǒng): : 不需引入主題不需引入主題; ;中等系統(tǒng)中等系統(tǒng): :先標(biāo)識類及對象先標(biāo)識類及對象, , 然后引入主題然后引入主題; ;大系統(tǒng)大系統(tǒng): : 先標(biāo)識主題先標(biāo)識主題, ,對問題域進(jìn)行對問題域進(jìn)行 劃分劃分, ,分給不

46、同的任務(wù)組分給不同的任務(wù)組; ;4.3Coad分析方法分析方法 3.3.標(biāo)識主題標(biāo)識主題( (主體主體) ) 帳冊 上級系統(tǒng)口供貨員銷售事件商品商品一覽表收款機(jī)111133332222特價商品計量商品超市銷售管理系 統(tǒng)(主題層)4.3Coad分析方法分析方法 3.3.標(biāo)識主題標(biāo)識主題( (主體主體) ) 定義屬性定義屬性屬性是數(shù)據(jù)元素,用來描述對象或分類結(jié)構(gòu)的實(shí)例。4.3Coad分析方法分析方法 4.4.定義屬性定義屬性4v屬性的類型屬性的類型: 描述型:指屬性的值由對象實(shí)例的添加、變動、刪除描述型:指屬性的值由對象實(shí)例的添加、變動、刪除及選擇等操作來建立和維持。及選擇等操作來建立和維持。 定

47、義型:用于標(biāo)識和命名各個實(shí)例。定義型:用于標(biāo)識和命名各個實(shí)例。 派生型:由其他屬性的數(shù)據(jù)計算得到派生型:由其他屬性的數(shù)據(jù)計算得到。 參考型:與另一個實(shí)例的屬性值相關(guān)參考型:與另一個實(shí)例的屬性值相關(guān)。西南科技大學(xué)西南科技大學(xué)4.3Coad分析方法分析方法 4.4.定義屬性定義屬性西南科技大學(xué)西南科技大學(xué) 上級系統(tǒng)接口帳冊前班節(jié)余銷售事件表收入累計上交款本班節(jié)余帳目目冊供貨員缺貨登記表銷售事件收款人購物清單應(yīng)收款商品編號名稱單價架上數(shù)量下限1m商品一覽表商品目錄1m(關(guān)系層, 完整的類圖)收款機(jī)本班收款員開始時間結(jié)束時間特價商品計量商品超市銷售管理系 統(tǒng)(屬性層)開始日期結(jié)束日期單價計量單位計價方

48、式4.3Coad分析方法分析方法 4.4.定義屬性定義屬性 定義服務(wù)定義服務(wù) 服務(wù)是在接收到一條消息后所要進(jìn)行的加工。服務(wù)是在接收到一條消息后所要進(jìn)行的加工。 包括操作包括操作和方法,如:檢索、維護(hù)、計算、事件響應(yīng)、狀態(tài)改變、消息和方法,如:檢索、維護(hù)、計算、事件響應(yīng)、狀態(tài)改變、消息傳送等這樣一類操作和具體采用的某一種算法傳送等這樣一類操作和具體采用的某一種算法。 4.3Coad分析方法分析方法5.定義服務(wù)及消息連接定義服務(wù)及消息連接5服務(wù)和消息傳遞服務(wù)和消息傳遞主動對象Aa被動對象Bb被動對象Cc被動對象Dd1d2運(yùn)行開始運(yùn)行結(jié)束服務(wù)執(zhí)行消息發(fā)送控制點(diǎn)返回示意4.3Coad分析方法分析方法5

49、.定義服務(wù)及消息連接定義服務(wù)及消息連接帳冊前班節(jié)余銷售事件表收入累計上交款本班節(jié)余接班計帳報帳交班 上級系統(tǒng)接口帳目目冊消息發(fā)送查帳報帳價格更新種類增刪供貨員缺貨登記表缺貨登記供貨銷售事件收款人購物清單應(yīng)收款銷售計劃入帳商品編號名稱單價架上數(shù)量下限售出補(bǔ)充價格更新特價商品開始日期結(jié)束日期計量商品*單價計量單位計價方式*售出*補(bǔ)充*價格更新1m商品一覽表商品目錄檢索種類增刪1m(關(guān)系層, 完整的類圖)收款機(jī)本班收款員開始時間結(jié)束時間登錄 售貨 結(jié)帳4.3Coad分析方法分析方法5.定義服務(wù)及消息連接定義服務(wù)及消息連接84OOA的結(jié)構(gòu)的結(jié)構(gòu) 類的邊界Class &object layer (類及對

50、象層)實(shí)例的邊界消息連接Structure layer (結(jié)構(gòu)層)Subject layer (主題層)主題Service layer (服務(wù)層)服務(wù)Attribute layer (屬性層)實(shí)例連接屬性4.3Coad分析方法分析方法OOA步驟步驟西南科技大學(xué)西南科技大學(xué)4.4OMT分析方法分析方法v 對象建模技術(shù)(對象建模技術(shù)(Object Modelling Technique) ,以面向?qū)ο笏枷霝榛A(chǔ),通過構(gòu)造一組相關(guān)模型來獲得關(guān)以面向?qū)ο笏枷霝榛A(chǔ),通過構(gòu)造一組相關(guān)模型來獲得關(guān)于問題的全面認(rèn)識。于問題的全面認(rèn)識。v 簡稱:簡稱:OMT,1991年提出年提出。西南科技大學(xué)西南科技大學(xué)OM

51、T方法使用方法使用3種模型從不同角度來描述一個系統(tǒng):種模型從不同角度來描述一個系統(tǒng):(1)對象對象模型模型描述系統(tǒng)對象、類和它們之間關(guān)系的靜態(tài)結(jié)構(gòu),反描述系統(tǒng)對象、類和它們之間關(guān)系的靜態(tài)結(jié)構(gòu),反映了系統(tǒng)的映了系統(tǒng)的“數(shù)據(jù)數(shù)據(jù)”性質(zhì)。性質(zhì)。(2)動態(tài)模型動態(tài)模型用對象的狀態(tài)和事件描述了瞬時的、行為化的系統(tǒng)用對象的狀態(tài)和事件描述了瞬時的、行為化的系統(tǒng)的的“控制控制”性質(zhì)。性質(zhì)。(3)功能模型功能模型描述系統(tǒng)內(nèi)的數(shù)據(jù)變化,指明了如何用輸入值得到描述系統(tǒng)內(nèi)的數(shù)據(jù)變化,指明了如何用輸入值得到輸出值,即反映了系統(tǒng)的輸出值,即反映了系統(tǒng)的“功能功能”性質(zhì)。性質(zhì)。4.4OMT分析方法分析方法西南科技大學(xué)西南科

52、技大學(xué) 對象模型對象模型 對象模型是通過描述系統(tǒng)中的對象、對象間的關(guān)對象模型是通過描述系統(tǒng)中的對象、對象間的關(guān)系、標(biāo)識類中對象的屬性、操作來表示系統(tǒng)的靜態(tài)組織系、標(biāo)識類中對象的屬性、操作來表示系統(tǒng)的靜態(tài)組織結(jié)構(gòu)。結(jié)構(gòu)。 對象模型是對象模型是3種模型中最重要的模型。種模型中最重要的模型。 面向?qū)ο蟮脑O(shè)計技術(shù)強(qiáng)調(diào)的是圍繞對象,而不是圍繞面向?qū)ο蟮脑O(shè)計技術(shù)強(qiáng)調(diào)的是圍繞對象,而不是圍繞功能來構(gòu)筑系統(tǒng)。功能來構(gòu)筑系統(tǒng)。4.4OMT分析方法分析方法1西南科技大學(xué)西南科技大學(xué)類之間關(guān)系的多元性表示類之間關(guān)系的多元性表示3-5類類A類類B實(shí)心圓:多個實(shí)心圓:多個類類A類類B空心圓:空心圓:0或或1個個類類A類

53、類B數(shù)字:標(biāo)出范圍數(shù)字:標(biāo)出范圍類類A類類B無圓心和數(shù)字:一對一無圓心和數(shù)字:一對一4.4OMT分析方法分析方法西南科技大學(xué)西南科技大學(xué)符號表示如下:符號表示如下:關(guān)系屬性關(guān)系屬性1關(guān)系屬性關(guān)系屬性2角色角色角色角色類類A類類B關(guān)系關(guān)系圖圖 (a) 一對一相關(guān)關(guān)系一對一相關(guān)關(guān)系類類B類類C關(guān)系屬性關(guān)系屬性1關(guān)系屬性關(guān)系屬性2類類A圖圖 (b) 多對多相關(guān)關(guān)系多對多相關(guān)關(guān)系4.4OMT分析方法分析方法相關(guān)關(guān)系相關(guān)關(guān)系西南科技大學(xué)西南科技大學(xué)例如:某個棒球手一年內(nèi)可能為多個球隊(duì)打球,也可能只為一個球隊(duì)例如:某個棒球手一年內(nèi)可能為多個球隊(duì)打球,也可能只為一個球隊(duì)打球;每個球隊(duì)有多個球員;每個球員又都

54、有個人每年打球的輸贏記打球;每個球隊(duì)有多個球員;每個球員又都有個人每年打球的輸贏記錄。錄。投手投手年年贏球贏球輸球輸球球隊(duì)球隊(duì) 多對多相關(guān)關(guān)系屬性多對多相關(guān)關(guān)系屬性4.4OMT分析方法分析方法西南科技大學(xué)西南科技大學(xué)即前面所述的即前面所述的“整體整體-部分部分”的關(guān)系。只是的關(guān)系。只是OMT的表的表達(dá)符號采用:在組合對象端用一個菱形框表示。達(dá)符號采用:在組合對象端用一個菱形框表示。計算機(jī)計算機(jī)監(jiān)視器監(jiān)視器主機(jī)箱主機(jī)箱鼠標(biāo)鼠標(biāo)鍵盤鍵盤主板主板CPURAM風(fēng)扇風(fēng)扇4.4OMT分析方法分析方法包容關(guān)系包容關(guān)系西南科技大學(xué)西南科技大學(xué)即前面所述即前面所述“泛化泛化-特化特化”關(guān)系和繼承的關(guān)系關(guān)系和繼承

55、的關(guān)系。基類基類子類子類A子類子類B雇員雇員臨時雇員臨時雇員正式雇員正式雇員4.4OMT分析方法分析方法繼承關(guān)系繼承關(guān)系西南科技大學(xué)西南科技大學(xué)動態(tài)模型動態(tài)模型 動態(tài)模型描述系統(tǒng)中與時間有關(guān)的方面以及操作執(zhí)行動態(tài)模型描述系統(tǒng)中與時間有關(guān)的方面以及操作執(zhí)行的順序,包括引起變化的事件,事件的序列,定義事的順序,包括引起變化的事件,事件的序列,定義事件序列上下文的狀態(tài)以及事件和狀態(tài)的主次。件序列上下文的狀態(tài)以及事件和狀態(tài)的主次。動態(tài)模型是用“狀態(tài)圖”和“事件追蹤圖”表示。一個動態(tài)模型可由多個狀態(tài)圖表組成。v 基本概念:基本概念:事件、腳本和事件追蹤、狀態(tài)、 觸發(fā)條件與事件、動作(操作)4.4OMT分

56、析方法分析方法2西南科技大學(xué)西南科技大學(xué)v事件事件發(fā)生于某一時刻的某件事,或一個觸發(fā)行發(fā)生于某一時刻的某件事,或一個觸發(fā)行為。事件的時間性很強(qiáng),強(qiáng)調(diào)事情發(fā)生的瞬間。為。事件的時間性很強(qiáng),強(qiáng)調(diào)事情發(fā)生的瞬間。1.事件可以作為“類”來表示。2.事件發(fā)生的時間是所有事件的隱含屬性。3.事件類的結(jié)構(gòu)是層次性的。事件類和屬性舉例: 飛機(jī)起飛(航線、航班號、城市)按動鼠標(biāo)按鈕(按鈕、位置) 4.4OMT分析方法分析方法94事件事件西南科技大學(xué)西南科技大學(xué)時間事件位 置鼠標(biāo)鍵字 符鍵盤控制基本按下鼠標(biāo)釋放鼠標(biāo)鍵空格字母數(shù)字標(biāo)點(diǎn)設(shè)備用戶輸入4.4OMT分析方法分析方法某一事件發(fā)生時刻西南科技大學(xué)西南科技大學(xué)場

57、景場景是系統(tǒng)某一次特定運(yùn)行時期內(nèi)發(fā)生的事件是系統(tǒng)某一次特定運(yùn)行時期內(nèi)發(fā)生的事件序列。序列。事件跟蹤圖事件跟蹤圖建立建立“事件事件-響應(yīng)響應(yīng)”關(guān)系的工具。關(guān)系的工具。描述一個事件將信息從一個對象傳到另一個對象描述一個事件將信息從一個對象傳到另一個對象的軌跡。的軌跡。4.4OMT分析方法分析方法場景和事件追蹤場景和事件追蹤曹操孫權(quán)求戰(zhàn)請擬定戰(zhàn)略請防守荊州請聯(lián)合孫權(quán)請孫權(quán)領(lǐng)兵相助借風(fēng)火攻火攻曹操戰(zhàn)船“三國”的事件跟蹤圖劉備孔明關(guān)羽出兵西南科技大學(xué)西南科技大學(xué) 打電話者拿起接收器打電話者拿起接收器 撥號音開始撥號音開始 撥號撥號6 撥號音結(jié)束撥號音結(jié)束 撥號撥號 撥號撥號 接話方開始響鈴接話方開始響鈴

58、 打電話方電話鈴聲響打電話方電話鈴聲響 受話方回答受話方回答 受話方鈴聲停止受話方鈴聲停止 打電話方電話鈴聲停止打電話方電話鈴聲停止 電話連通電話連通 受話方掛機(jī)受話方掛機(jī) 電話斷電話斷 打電話者掛機(jī)打電話者掛機(jī) 拿起接收器拿起接收器 撥號音開始撥號音開始 撥號撥號6 撥號音結(jié)束撥號音結(jié)束 撥號撥號 鈴聲鈴聲 鈴聲鈴聲 回應(yīng)回應(yīng) 鈴聲停止鈴聲停止 鈴聲停止鈴聲停止 電話連通電話連通 電話連通電話連通 受話方掛機(jī)受話方掛機(jī) 電話掛斷電話掛斷 電話掛斷電話掛斷 打電話者掛機(jī)打電話者掛機(jī)場景事件跟蹤圖打電話者打電話者 電話線電話線 受話者受話者4.4OMT分析方法分析方法西南科技大學(xué)西南科技大學(xué) 狀

59、態(tài)狀態(tài)對象屬性值和鏈的一種抽象形式,狀態(tài)具有持對象屬性值和鏈的一種抽象形式,狀態(tài)具有持續(xù)性,占有時間間隔。續(xù)性,占有時間間隔。 狀態(tài)圖狀態(tài)圖是有限狀態(tài)機(jī)的圖形表示是有限狀態(tài)機(jī)的圖形表示。4.4OMT分析方法分析方法狀態(tài)及狀態(tài)圖狀態(tài)及狀態(tài)圖表示方法:結(jié)點(diǎn)是狀態(tài)表示方法:結(jié)點(diǎn)是狀態(tài),標(biāo)有事件名的線是轉(zhuǎn)移。標(biāo)有事件名的線是轉(zhuǎn)移。Event 0Status 1do: Action 1Status 2do: Action 2Event 1Event 2StartEndCondition 1閑閑 置置撥撥 號號通通 話話斷斷 線線撥號音撥號音do:do:響撥號音響撥號音超超 時時do:do:響蜂鳴音響蜂鳴

60、音存儲的信息存儲的信息do:do:播放信息播放信息接通中接通中do:do:試接通試接通振振 鈴鈴do:do:振振 鈴鈴忙忙 音音do:do:響忙音響忙音拿起聽筒拿起聽筒數(shù)字?jǐn)?shù)字?jǐn)?shù)字?jǐn)?shù)字有效號碼有效號碼已接通已接通受話人回話受話人回話受話人掛斷電話受話人掛斷電話掛斷電話掛斷電話超超 時時掛斷電話掛斷電話超時超時無效號碼無效號碼信息播完信息播完占占 線線例:例:電話電話線的線的 狀態(tài)狀態(tài)圖圖電話線電話線狀態(tài)圖狀態(tài)圖西南科技大學(xué)西南科技大學(xué)空空 閑閑收收 銀銀投入硬幣投入硬幣 / 設(shè)置平衡設(shè)置平衡取消取消 / 退還硬幣退還硬幣do:找零錢:找零錢do:判別物品并計算找零:判別物品并計算找零do:分發(fā)

溫馨提示

  • 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

提交評論