《軟件工程》課件第6章 面向?qū)ο蠹夹g(shù)_第1頁
《軟件工程》課件第6章 面向?qū)ο蠹夹g(shù)_第2頁
《軟件工程》課件第6章 面向?qū)ο蠹夹g(shù)_第3頁
《軟件工程》課件第6章 面向?qū)ο蠹夹g(shù)_第4頁
《軟件工程》課件第6章 面向?qū)ο蠹夹g(shù)_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

【本章引言】

面向?qū)ο蠹夹g(shù)是一整套實用的軟件開發(fā)方法,并在系統(tǒng)構(gòu)造中盡可能運用人類的自然思維方式,它是從面向?qū)ο蟪绦蛟O計語言發(fā)展起來,關(guān)于如何看待軟件系統(tǒng)與現(xiàn)實世界的關(guān)系,以什么如何進行系統(tǒng)構(gòu)造的軟件方法學,逐漸形成面向?qū)ο蠓治?OOA)和面向?qū)ο笤O計(OOD)以及面向?qū)ο缶幊?OOP)的方法。開發(fā)方法發(fā)展是一個進化的過程?!颈菊轮攸c】面向?qū)ο蟆㈩?、繼承、封裝、多態(tài)等面向?qū)ο蠹夹g(shù)中的概念;面向?qū)ο蟮拈_發(fā)模型;面向?qū)ο蟮姆治?;面向?qū)ο蟮南到y(tǒng)設計過程;子系統(tǒng)設計、人機交互設計、任務管理設計和數(shù)據(jù)管理設計;面向?qū)ο蟮膶崿F(xiàn);

6.1面向?qū)ο蠹夹g(shù)的概述

面向?qū)ο蠹夹g(shù)中的“對象”和“面向?qū)ο蟆钡年P(guān)系是這樣的,面向?qū)ο?Object-oriented)=對象(Object)+類(Classification)+繼承(Inheritance)+通信(Communication)。

面向?qū)ο蟮幕咎卣?.1.1面向?qū)ο蟮幕靖拍?.對象(Object)對象是面向?qū)ο箝_發(fā)模型的基本成分,是是可以用系統(tǒng)中用來描述客觀事物的一個實體。

2.類(Classification)類是一組具有相同數(shù)據(jù)結(jié)構(gòu)和相同操作的對象的集合。類的定義包括一組數(shù)據(jù)屬性和在數(shù)據(jù)上的一組合法操作。6.1.1面向?qū)ο蟮幕靖拍?.封裝、繼承和多態(tài)封裝,也就是把客觀事物封裝成抽象的類,并且類可以把自己的數(shù)據(jù)和方法只讓可信的類或者對象操作,對不可信的進行信息隱藏。繼承使得程序員對共同的操作及屬性只說明一次,并且在具體的情況下可以擴展細化這些屬性及操作。多態(tài)性(polymorphism)是允許你將父對象設置成為和一個或更多的他的子對象相等的技術(shù),賦值之后,父對象就可以根據(jù)當前賦值給它的子對象的特性以不同的方式運作。6.2面向?qū)ο蟮拈_發(fā)模型

面向?qū)ο蠓治霎a(chǎn)生三種分析模型:1.功能模型(即用例模型作為輸入)功能模型由多個數(shù)據(jù)流圖組成,它們指明從外部輸入,通過操作和內(nèi)部存儲,直到外部輸出,這整個的數(shù)據(jù)流情況。2.對象模型對用例模型進行分析,把系統(tǒng)分解成互相協(xié)作的分析類,通過類圖/對象圖描述對象/對象的屬性/對象間的關(guān)系,是系統(tǒng)的靜態(tài)模型。復雜問題(大型系統(tǒng))的對象模型由下述五個層次組成:主題層(也稱為范疇層)、類-&-對象層、結(jié)構(gòu)層、屬性層和服務層3.動態(tài)模型描述系統(tǒng)的動態(tài)行為,通過時序圖/協(xié)作圖描述對象的交互,以揭示對象間如何協(xié)作來完成每個具體的用例,單個對象的狀態(tài)變化/動態(tài)行為可以通過狀態(tài)圖來表達。

6.3面向?qū)ο蟮姆治?.3.1論域分析(DomainAnalysis)6.3.2應用分析(

Analysis)面向?qū)ο蠓治觯∣bject-OrientedAnalysis,OOA,面向?qū)ο蠓治龇椒ǎ窃谝粋€系統(tǒng)的開發(fā)過程中進行了系統(tǒng)業(yè)務調(diào)查以后,按照面向?qū)ο蟮乃枷雭矸治鰡栴}。OOA(面向?qū)ο蟮姆治觯┠P陀?個層次(主題層、對象類層、結(jié)構(gòu)層、屬性層和服務層)和5個活動(標識對象類、標識結(jié)構(gòu)、定義主題、定義屬性和定義服務)組成。

6.3.1論域分析(DomainAnalysis)

論域分析是軟件開發(fā)方法中一個基本組成部分,它給出的一組抽象是論域的知識的高層表示,用來作為特定系統(tǒng)需求開發(fā)的參考。由于分析常常是在超出當前應用的范圍進行的,所以這個技術(shù)僅在擴充當前系統(tǒng)或?qū)斫⑵渌到y(tǒng)時找尋復用信息時才是實用的。6.3.2應用分析(Analysis)

應用(或系統(tǒng))分析細化在論域分析階段所開發(fā)出來的信息,并且把注意力集中于要解決的精確的問題。應當把客戶對系統(tǒng)的需求當做限制來使用,它們縮減了論域的信息量,而這種信息將是主動設計過程的一部分。以手機短信傳送的現(xiàn)實問題為實例

6.4面向?qū)ο蟮南到y(tǒng)設計6.4.1系統(tǒng)設計過程6.4.2子系統(tǒng)設計6.4.3人機交互設計6.4.4任務管理設計6.4.5數(shù)據(jù)管理設計6.4.1系統(tǒng)設計過程

面向?qū)ο笤O計分為系統(tǒng)結(jié)構(gòu)設計和對象設計。在分析完成之后,對象設計之前,系統(tǒng)結(jié)構(gòu)設計要確定給出一個解的框架,實現(xiàn)系統(tǒng)的策略和目標系統(tǒng)的高層結(jié)構(gòu)。系統(tǒng)高層結(jié)構(gòu)是在時間和空間、軟件和硬件等系列之間作出權(quán)衡,例如子系統(tǒng)的劃分、內(nèi)在的并發(fā)、子系統(tǒng)對硬軟件的分配、數(shù)據(jù)管理資源協(xié)調(diào)以及邊界條件和優(yōu)先權(quán)。6.4.2子系統(tǒng)設計

軟件工程中設計復雜的應用系統(tǒng)的時候通常采用分而治之的方法,把系統(tǒng)分為若干功能模塊,然后分別設計每個部分。系統(tǒng)中每個部分稱之為子系統(tǒng)。例如,企業(yè)網(wǎng)絡信息系統(tǒng)的子系統(tǒng)一般包括生產(chǎn)管理子系統(tǒng)、人事管理子系統(tǒng)、財務管理子系統(tǒng)以及后勤管理子系統(tǒng)等功能模塊。

6.4.3

人機交互設計對于交互系統(tǒng),人機交互包括指定窗口和報表的形式、系統(tǒng)響應時間和設計命令層次等內(nèi)容。人機交互設計融合了一般交互、信息顯示和數(shù)據(jù)輸入的設計,整體上控制全局性,以保持界面的設計的友好高效。

6.4.4任務管理設計常見的任務有事件驅(qū)動型任務、時鐘驅(qū)動型任務、優(yōu)先任務、關(guān)鍵任務和協(xié)調(diào)任務等。設計任務管理子系統(tǒng),包括確定各類任務并把任務分配給適當?shù)挠布蜍浖?zhí)行。6.4.5數(shù)據(jù)管理設計數(shù)據(jù)管理子系統(tǒng)是系統(tǒng)存儲或檢索對象的基本設施,它建立在某種數(shù)據(jù)存儲管理系統(tǒng)之上,并且隔離了數(shù)據(jù)存儲管理模式(文件、關(guān)系數(shù)據(jù)庫或面向?qū)ο髷?shù)據(jù)庫)的影響。數(shù)據(jù)管理子系統(tǒng)是系統(tǒng)存儲或檢索對象的基本設施,它建立在某種數(shù)據(jù)存儲管理系統(tǒng)之上,并且隔離了數(shù)據(jù)存儲管理模式。6.5面向?qū)ο蟮膶崿F(xiàn)面向?qū)ο髮崿F(xiàn)主要包括兩項工作:把面向?qū)ο笤O計結(jié)果翻譯成用某種程序語言書寫的面向?qū)ο蟪绦颍粶y試并調(diào)試面向?qū)ο蟮某绦?。具體測試并調(diào)試的過程將在第9章軟件測試中具體講解。6.5.1程序設計語言下面介紹在選擇面向?qū)ο笳Z言時應該著重考察的一些技術(shù)特點。1.支持類與對象概念的機制2.實現(xiàn)整體-部分(即聚集)結(jié)構(gòu)的機制3.實現(xiàn)一般-特殊(即泛化)結(jié)構(gòu)的機制4.實現(xiàn)屬性和服務的機制5.類型檢查6.類庫7.效率8.開發(fā)環(huán)境6.5.2類和應用程序的實現(xiàn)面向?qū)ο蟮膶崿F(xiàn)可以劃分為類的實現(xiàn)以及應用程序的實現(xiàn)。類的實現(xiàn)開發(fā)是分層的。一個類建立在一些現(xiàn)存的類的基礎上,而這些現(xiàn)存的類又是建立在其他現(xiàn)存的類的基礎上。是從簡單到復雜的開發(fā)方案。軟件庫概念的引入,體現(xiàn)了類實現(xiàn)中存儲代碼的可靠性和復用性。實現(xiàn)類的一個主動方法是把類的參數(shù)約束和循環(huán)執(zhí)行等直接組織到代碼中,可以通過表示斷言的語言機制來實現(xiàn)。斷言表達了對一個過程、一段代碼的要求。軟件庫中的同一個類可以多重實現(xiàn),一個類可以關(guān)聯(lián)到不止一個實現(xiàn)。設計者應該指出要求的實例所在的類,并確定所需的特定實現(xiàn)。6.6小結(jié)面向?qū)ο蠹夹g(shù)中的“對象”和“面向?qū)ο蟆钡年P(guān)系是這樣的,面向?qū)ο?Object-oriented)=對象(Object)+類(Classification)+繼承(Inheritance)+通信(Communication)。在面向?qū)ο蟮脑O計方法中,對象和傳遞消息分別是表示事物和事物間聯(lián)系的。類和集成是使用人們思維方式的描述范式。方法是允許作用于類對象的操作和服務。充分體現(xiàn)封裝對象中類與類之間的繼承與多態(tài)的關(guān)系。面向?qū)ο蠼R约叭N模型及其關(guān)系。功能模型、對象模型、動態(tài)模型。面向?qū)ο蠓治龅幕具^程。面向?qū)ο笤O計的規(guī)則。面向?qū)ο笙到y(tǒng)設計的過程:問題域子系統(tǒng)、人機交互子系統(tǒng)、任務管理子系統(tǒng)、數(shù)據(jù)管理子系統(tǒng)的內(nèi)容。面向?qū)ο髮崿F(xiàn)主要包括兩項工作:把面向?qū)ο笤O計結(jié)果翻譯成用某種程序語言書寫的面向?qū)ο蟪绦?;測試并調(diào)試面向?qū)ο蟮某绦颉>唧w測試并調(diào)試的過程將在第9章軟件測試中具體講解。6.7習題什么是“對象”?試給出這7類對象的名稱,并舉例說明。什么叫面向?qū)ο??面向?qū)ο蠓椒ǖ奶攸c是什么?為什么要用面向?qū)ο蠓椒ㄩ_發(fā)軟件?什么是“類”?“類”與傳統(tǒng)的數(shù)據(jù)類型有什么關(guān)系?有什么區(qū)別?按照類生存期,類的開發(fā)有哪幾種方式?每一種方式需要做哪些事情?面向?qū)ο箝_發(fā)方法與面向數(shù)據(jù)流的結(jié)構(gòu)化開發(fā)方法有什么不同?使用面向?qū)ο箝_發(fā)方法的優(yōu)點在什么地方?面向?qū)ο蟮某绦蛟O計語言具有數(shù)據(jù)抽象、信息隱蔽、(

A

)等特征。作為運算單位的對象應具有下列特性:(

B

)、(

C

)、(

D

)。(

E

)是面向?qū)ο蟮恼Z言。

A:①對象調(diào)用

②對象變換

③非過程性

④信息繼承

⑤并發(fā)性

B~D:①對象把數(shù)據(jù)和處理數(shù)據(jù)的操作結(jié)合為一體②在程序運行時對象都處于活動狀態(tài)③對象在計算中可向其他對象發(fā)送消息④接受消息的對象必須給消息發(fā)送者以回答⑤對象的內(nèi)部狀態(tài)只根據(jù)外部送來的消息才操作

E:①C++,SMALLTALK,objectC

②C,Ada,Modula2③PASCAL,C++,APL

④Ada,objectC,C面向?qū)ο蟮男枨蠓治鲞^程主要分為兩個階段:論域分析和應用分析。試討論它們各自承擔什么任務?如何銜接?使用面向?qū)ο笤O計方法進行設計,以建立系統(tǒng)的體系結(jié)構(gòu)。這樣的結(jié)構(gòu)有哪幾種主要的組成部分?每一部分所承擔的職責是什么?由RumBaugh等人提出的一種面向?qū)ο蠓椒ń凶鰧ο竽P突夹g(shù)(OMT),即三視點技術(shù),它要求把分析時收集的信息建立在三個模型中。第一個模型是(

A

),它的作用是描述系統(tǒng)的靜態(tài)結(jié)構(gòu),包括構(gòu)成系統(tǒng)的對象和類,它們的屬性和操作,以及它們之間的聯(lián)系。第二個模型是(

B

),它描述系統(tǒng)的控制邏輯,主要涉及系統(tǒng)中各個對象和類的時序及變化狀況。(

B

)包括兩種圖,即(

C

)和(

D

)。(

C

)描述每一類對象的行為,(

D

)描述發(fā)生于系統(tǒng)執(zhí)行過程中的某一特定場景。第三個模型是(

E

),它著重于描述系統(tǒng)內(nèi)部數(shù)據(jù)的傳送與處理,它由多個數(shù)據(jù)流圖組成。

A,B,E:①數(shù)據(jù)模型

②功能模型

③行為模型

④信息模型⑤原型

⑥動態(tài)模型

⑦對象模型

⑧邏輯模型⑨控制模型

⑩仿真模型

C,D:

①對象圖

②概念模型圖

③狀態(tài)遷移圖

④數(shù)據(jù)流程圖⑤時序圖

⑥事件追蹤圖

⑦控制流程圖

⑧邏輯模擬圖

⑨仿真圖

⑩行為圖10.

在面向?qū)ο筌浖O計過程中,應按如下要求進行類的設計:只有類的共有界面的成員才能成為使用類的操作,這就是軟件設計的(

A

)原則。當且僅當一個操作對類的實例的用戶有用時,它才是類公共界面的一個成員,這是軟件設計的(

B

)原則。由同屬一個類的操作負擔存取或加工類的數(shù)據(jù),這是軟件設計的(

C

)原則。兩個類之間的交互應當僅涉及參數(shù)表,這是軟件設計的(

D

)原則。每個派生類應該當做基類的特殊化來開發(fā),而基類所具有的公共界面成為派生類的共有界面的一個子集,這是軟件設計的(

E

)原則。A:①過程抽象

②功能抽象

③信息隱蔽

④共享性

⑤連通性B:①標

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論