UML建模實(shí)例教程(第3版)課件 第2章 面向?qū)ο蠹夹g(shù)和建?;A(chǔ)_第1頁
UML建模實(shí)例教程(第3版)課件 第2章 面向?qū)ο蠹夹g(shù)和建模基礎(chǔ)_第2頁
UML建模實(shí)例教程(第3版)課件 第2章 面向?qū)ο蠹夹g(shù)和建?;A(chǔ)_第3頁
UML建模實(shí)例教程(第3版)課件 第2章 面向?qū)ο蠹夹g(shù)和建?;A(chǔ)_第4頁
UML建模實(shí)例教程(第3版)課件 第2章 面向?qū)ο蠹夹g(shù)和建?;A(chǔ)_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第2章面向?qū)ο蠹夹g(shù)和建?;A(chǔ)12.1面向?qū)ο蠓椒?.2面向?qū)ο蟮幕靖拍?.3面向?qū)ο蠓治?.4面向?qū)ο笤O(shè)計(jì)2.5面向?qū)ο髮?shí)現(xiàn)2.6面向?qū)ο蠓椒ǖ膬?nèi)涵2.7軟件建模概述2本章將向讀者詳細(xì)介紹面向?qū)ο蠓椒ǖ幕局R和軟件建模的概述。主要內(nèi)容包括:面向?qū)ο蟮幕靖拍?、面向?qū)ο蠓治?、面向?qū)ο笤O(shè)計(jì)、面向?qū)ο缶幊?、軟件建模的概念和軟件建模的?yōu)點(diǎn)等。本章的學(xué)習(xí)要點(diǎn)包括:面向?qū)ο蠓治?;面向?qū)ο笤O(shè)計(jì);面向?qū)ο缶幊?;軟件建模的概念?2.1面向?qū)ο蠓椒?2.1面向?qū)ο蠓椒?任務(wù)1了解面向?qū)ο筌浖こ痰幕舅枷牒蚈OA、OOD和OOP的基本內(nèi)容。任務(wù)描述

6

2.1.1面向?qū)ο蠓椒ǖ幕舅枷搿皩ο螅∣bject)”一詞,在19世紀(jì)就由現(xiàn)象學(xué)大師胡塞爾提出并定義。胡塞爾認(rèn)為對象是世界中的物體在人腦中的映象,是人的意識之所以為意識的反映,是作為一種概念而存在的意念的東西,它還包括了人的意愿。對象就是客觀世界中物體在人腦中的映象及人的意向。

IT領(lǐng)域中的“面向?qū)ο蠹夹g(shù)”,一般指的是解決信息領(lǐng)域內(nèi)所遇到問題的方法,特別是應(yīng)用軟件技術(shù)來解決問題的方法。如我們經(jīng)常碰到的面向?qū)ο蟮姆治觯∣bject-OrientedAnalysis)、面向?qū)ο蟮脑O(shè)計(jì)(Object-OrientedDesign)和面向?qū)ο蟮木幊蹋∣bject-OrientedProgramming)等。面向?qū)ο蠓椒ǎ∣bject-OrientedMethod)是一種把面向?qū)ο蟮乃枷霊?yīng)用于軟件開發(fā)過程中,指導(dǎo)開發(fā)活動(dòng)的系統(tǒng)方法,簡稱OO(Object-Oriented)方法。

面向?qū)ο蠓椒ㄗ鳛橐环N新型的獨(dú)具優(yōu)越性的新方法正引起全世界越來越廣泛的關(guān)注和高度的重視,更是當(dāng)前計(jì)算機(jī)界關(guān)心的重點(diǎn)。2.1面向?qū)ο蠓椒?

2.1.2面向?qū)ο蠓椒ǖ陌l(fā)展面向?qū)ο蠓椒ㄆ鹪从诿嫦驅(qū)ο蟮木幊陶Z言。

20世紀(jì)60年代中后期,在ALGOL語言基礎(chǔ)上研制開發(fā)了Simula語言,Simula語言將ALGOL語言的塊結(jié)構(gòu)概念向前發(fā)展一步,提出了對象的概念,并使用了類,也支持類繼承。

20世紀(jì)70年代,Smalltalk語言誕生,它取Simula的類為核心概念。Xerox公司經(jīng)過對Smalltalk72、Smalltalk76持續(xù)不斷的研究和改進(jìn)之后,于1980年推出商品化的Smalltalk80,它在系統(tǒng)設(shè)計(jì)中強(qiáng)調(diào)對象概念的統(tǒng)一,引入對象、對象類、方法、實(shí)例等概念和術(shù)語,采用動(dòng)態(tài)聯(lián)編和單繼承機(jī)制。正是通過Smalltalk80的研制與推廣應(yīng)用,使人們注意到面向?qū)ο蠓椒ㄋ哂械哪K化、信息封裝與隱蔽、抽象性、繼承性、多樣性等獨(dú)特之處,這些優(yōu)異特性為研制大型軟件、提高軟件可靠性、可重用性、可擴(kuò)充性和可維護(hù)性提供了有效的手段和途徑。2.1面向?qū)ο蠓椒?.2面向?qū)ο蟮幕靖拍钆c特征89使用計(jì)算機(jī)解決問題時(shí)需要利用程序設(shè)計(jì)語言對問題求解加以描述(編程),而軟件是問題求解的一種表述形式。顯然,假如軟件能直接表現(xiàn)人求解問題的思維路徑(求解問題的方法),那么軟件不僅容易被人理解,而且易于維護(hù)和修改,從而會保證軟件的可靠性和可維護(hù)性,并能提高公共問題域中的軟件模塊和模塊重用的可靠性。面向?qū)ο蟮母拍詈蜋C(jī)制可以使人們按照常規(guī)的思維方式來建立問題域的模型,設(shè)計(jì)出盡可能自然地表現(xiàn)求解方法的軟件。2.2面向?qū)ο蟮幕靖拍钆c特征10

2.2.1面向?qū)ο蟮幕靖拍?.對象對象是要研究的任何事物。一本書、一個(gè)人、一件商品都可看作對象,它不僅能表示有形的實(shí)體,也能表示無形的(抽象的)規(guī)則、計(jì)劃或事件。對象由數(shù)據(jù)(描述事物的屬性)和作用于數(shù)據(jù)的操作(體現(xiàn)事物的行為)構(gòu)成一個(gè)獨(dú)立整體。2.類類是對象的模板,即類是對一組有相同數(shù)據(jù)和相同操作的對象的定義,一個(gè)類所包含的方法和數(shù)據(jù)描述一組對象的共同屬性和行為。類是在對象之上的抽象,對象則是類的具體化,是類的實(shí)例。類可有其子類,形成類層次結(jié)構(gòu)。3.消息消息是對象之間進(jìn)行通信的一種規(guī)格說明。它一般由三部分組成:接收消息的對象、消息名及實(shí)際變元。2.2面向?qū)ο蟮幕靖拍钆c特征11

2.2.2面向?qū)ο蟮闹饕卣?.封裝性封裝是一種信息隱蔽技術(shù),它體現(xiàn)于類的說明,是對象的重要特性。封裝使數(shù)據(jù)和加工該數(shù)據(jù)的方法(函數(shù))封裝為一個(gè)整體,以實(shí)現(xiàn)獨(dú)立性很強(qiáng)的模塊,使得用戶只能見到對象的外特性(對象能接收哪些消息,具有哪些處理能力),而對象的內(nèi)特性(保存內(nèi)部狀態(tài)的私有數(shù)據(jù)和實(shí)現(xiàn)加工能力的算法)對用戶是隱蔽的。封裝的目的在于把對象的設(shè)計(jì)者和對象的使用者分開,使用者不需要知道行為實(shí)現(xiàn)的細(xì)節(jié),只需通過設(shè)計(jì)者提供的消息來訪問該對象。2.繼承性繼承性是子類自動(dòng)共享父類數(shù)據(jù)和方法的機(jī)制,它由類的派生功能體現(xiàn)。一個(gè)類直接繼承其他類的全部描述,同時(shí)可修改和擴(kuò)充。繼承具有傳遞性,繼承分為單繼承(一個(gè)子類只有一個(gè)父類)和多重繼承(一個(gè)類有多個(gè)父類)。類的對象是各自封閉的,如果沒有繼承性機(jī)制,則類對象中數(shù)據(jù)、方法就會出現(xiàn)大量重復(fù)。繼承不僅支持系統(tǒng)的可重用性,而且還促進(jìn)系統(tǒng)的可擴(kuò)充性。2.2面向?qū)ο蟮幕靖拍钆c特征12

2.2.2面向?qū)ο蟮闹饕卣?.多態(tài)性對象根據(jù)所接收的消息會產(chǎn)生行動(dòng),同一消息為不同的對象接收時(shí)可產(chǎn)生完全不同的行動(dòng),這種現(xiàn)象稱為多態(tài)性。利用多態(tài)性用戶可發(fā)送一個(gè)通用的信息,而將所有的實(shí)現(xiàn)細(xì)節(jié)都留給接收消息的對象自行決定。例如,Print消息被發(fā)送給圖表時(shí)調(diào)用的打印方法與將同樣的Print消息發(fā)送給正文文件而調(diào)用的打印方法會完全不同。多態(tài)性的實(shí)現(xiàn)受到繼承性的支持,利用類繼承的層次關(guān)系,把具有通用功能的協(xié)議存放在類層次中盡可能高的地方,而將實(shí)現(xiàn)這一功能的不同方法置于較低層次,這樣,在這些低層次上生成的對象就能給通用消息以不同的響應(yīng)。在面向?qū)ο缶幊陶Z言中可通過在派生類中重定義基類函數(shù)(定義為重載函數(shù)或虛函數(shù))來實(shí)現(xiàn)多態(tài)性。綜上所述,在面向?qū)ο蠓椒ㄖ校瑢ο蠛拖鬟f分別表現(xiàn)事物及事物間相互聯(lián)系的概念。類和繼承是適應(yīng)人們一般思維方式的描述范式。方法是允許作用于該類對象上的各種操作。這種對象、類、消息和方法的程序設(shè)計(jì)范式的基本點(diǎn)在于對象的封裝性和類的繼承性。通過封裝能將對象的定義和對象的實(shí)現(xiàn)分開,通過繼承能體現(xiàn)類與類之間的關(guān)系,以及由此帶來的動(dòng)態(tài)聯(lián)編和實(shí)體的多態(tài)性,從而構(gòu)成了面向?qū)ο蟮幕咎卣鳌?.2面向?qū)ο蟮幕靖拍钆c特征13

2.2.2面向?qū)ο蟮闹饕卣?.面向?qū)ο蠓椒ǖ膬?yōu)越性面向?qū)ο蠓椒ㄓ糜谙到y(tǒng)開發(fā)有如下優(yōu)越性:(1)強(qiáng)調(diào)從現(xiàn)實(shí)世界中客觀存在的事物(對象)出發(fā)來認(rèn)識問題域和構(gòu)造系統(tǒng),這就大大降低了系統(tǒng)開發(fā)者對問題域的理解難度,從而使系統(tǒng)能更準(zhǔn)確地反映問題域。(2)運(yùn)用人類日常的思維方法和原則(體現(xiàn)于面向?qū)ο蠓椒ǖ某橄?、分類、繼承、封裝、消息通信等基本原則)進(jìn)行系統(tǒng)開發(fā),有益于發(fā)揮人類的思維能力,有效地控制了系統(tǒng)復(fù)雜性。(3)對象的概念貫穿于開發(fā)過程的始終,使各個(gè)開發(fā)階段的系統(tǒng)成分有良好的對應(yīng),從而顯著地提高了系統(tǒng)的開發(fā)效率與質(zhì)量,并大大降低系統(tǒng)維護(hù)的難度。(4)對象概念的一致性,使參與系統(tǒng)開發(fā)的各類人員在開發(fā)的各階段具有共同語言,有效地改善了人員之間的交流和協(xié)作。(5)對象的相對穩(wěn)定性和對易變因素隔離,增強(qiáng)了系統(tǒng)的應(yīng)變能力。(6)對象類之間的繼承關(guān)系和對象的相對獨(dú)立性,對軟件復(fù)用提供了強(qiáng)有力的支持。2.2面向?qū)ο蟮幕靖拍钆c特征2.3面向?qū)ο蠓治?4152.3面向?qū)ο蠓治霎?dāng)我們遵照面向?qū)ο蠓椒▽W(xué)的思想進(jìn)行軟件系統(tǒng)開發(fā)時(shí),首先要進(jìn)行面向?qū)ο蟮姆治觯∣bjectOrientedAnalysis,OOA),其任務(wù)是了解問題域所涉及的對象、對象間的關(guān)系和作用。然后構(gòu)造問題的對象模型,力爭該模型能真實(shí)地反映出所要解決的“實(shí)質(zhì)問題”。在這一過程中,抽象是最本質(zhì)、最重要的方法。針對不同的問題性質(zhì)選擇不同的抽象層次,過簡或過繁都會影響到對問題本質(zhì)屬性的了解和解決。面向?qū)ο蟮姆治龇椒ㄊ窃谝粋€(gè)系統(tǒng)的開發(fā)過程中進(jìn)行系統(tǒng)業(yè)務(wù)調(diào)查,按照面向?qū)ο蟮乃枷雭矸治鰡栴}。面向?qū)ο蠓治雠c結(jié)構(gòu)化分析有較大的區(qū)別,面向?qū)ο蠓治鏊鶑?qiáng)調(diào)的是在系統(tǒng)調(diào)查資料的基礎(chǔ)上,針對面向?qū)ο蠓椒ㄋ枰乃夭倪M(jìn)行歸類分析和整理,而不是對管理業(yè)務(wù)現(xiàn)狀和方法的分析。16

2.3.1處理復(fù)雜問題的原則用面向?qū)ο蠓治龇椒▽λ{(diào)查結(jié)果進(jìn)行分析處理時(shí),一般依據(jù)以下幾項(xiàng)原則:1.抽象(abstraction)抽象是指為了某一分析目的而集中精力研究對象的某一性質(zhì),它可以忽略其他與此目的無關(guān)的部分。抽象機(jī)制被用在數(shù)據(jù)分析方面,稱為數(shù)據(jù)抽象。數(shù)據(jù)抽象是OOA的核心。數(shù)據(jù)抽象把一組數(shù)據(jù)對象以及作用在其上的操作組成一個(gè)程序?qū)嶓w。使得外部只知道它是如何做和如何表示的。在應(yīng)用數(shù)據(jù)抽象原理時(shí),系統(tǒng)分析人員必須確定對象的屬性以及處理這些屬性的方法,并借助于方法獲得屬性。在OOA中屬性和方法被認(rèn)為是不可分割的整體。抽象機(jī)制有時(shí)也被用在對過程的分解方面,稱為過程抽象。恰當(dāng)?shù)倪^程抽象可以對復(fù)雜過程的分解和確定,以及描述對象發(fā)揮積極的作用。2.封裝(encapsulation)封裝即信息隱蔽,是指在確定系統(tǒng)的某一部分內(nèi)容時(shí),應(yīng)考慮到其他部分的信息及聯(lián)系都在這一部分的內(nèi)部進(jìn)行,外部各部分之間的信息聯(lián)系應(yīng)盡可能少。2.3面向?qū)ο蠓治?7

2.3.1處理復(fù)雜問題的原則3.繼承(inheritance)繼承是指能直接獲得已有的性質(zhì)和特征而不必重復(fù)定義它們。OOA可以一次性地指定對象的公共屬性和方法,然后再特化和擴(kuò)展這些屬性及方法為特殊情況,這樣可大大地減輕在系統(tǒng)實(shí)現(xiàn)過程中的重復(fù)勞動(dòng)。在共有屬性的基礎(chǔ)之上,繼承者也可以定義自己獨(dú)有的特性。4.相關(guān)(association)相關(guān)是指把某一時(shí)刻或相同環(huán)境下發(fā)生的事物聯(lián)系在一起。5.消息通信(communicationwithmessage)消息通信是指在對象之間互相傳遞信息的通信方式。2.3面向?qū)ο蠓治?8

2.3.1處理復(fù)雜問題的原則6.組織方法(methodoforganization)在分析和認(rèn)識世界時(shí),可綜合采用如下三種組織方法:特定對象與其屬性之間的區(qū)別;整體對象與相應(yīng)組成部分對象之間的區(qū)別;不同對象類的構(gòu)成及其區(qū)別。7.比例(scale)比例是一種運(yùn)用整體與部分原則,輔助處理復(fù)雜問題的方法。8.行為范疇(categoriesofbehavior)行為范疇是針對被分析對象而言的,它們主要包括:基于直接原因的行為;時(shí)變性行為;功能查詢性行為。2.3面向?qū)ο蠓治?9

2.3.2OOA方法的基本步驟在用OOA具體地分析一個(gè)事物時(shí),大致遵循如下五個(gè)基本步驟:1.確定對象和類這里所說的對象是對數(shù)據(jù)及其處理方式的抽象,它反映了系統(tǒng)保存和處理現(xiàn)實(shí)世界中某些事物信息的能力。類是多個(gè)對象的共同屬性和方法集合的描述,它包括如何在一個(gè)類中建立一個(gè)新對象的描述。2.確定結(jié)構(gòu)結(jié)構(gòu)是指問題域的復(fù)雜性和連接關(guān)系。類成員結(jié)構(gòu)反映了泛化-特化關(guān)系,整體-部分結(jié)構(gòu)反映整體和局部之間的關(guān)系。2.3面向?qū)ο蠓治?0

2.3.2OOA方法的基本步驟3.確定主題主題是指事物的總體概貌和總體分析模型。4.確定屬性屬性就是數(shù)據(jù)元素,可用來描述對象或分類結(jié)構(gòu)的實(shí)例,可在圖中給出,并在對象的存儲中指定。5.確定方法方法是在收到消息后必須進(jìn)行的一些處理操作。對于每個(gè)對象和結(jié)構(gòu)來說,用來增加、修改、刪除和選擇一個(gè)方法本身都是隱含的,而有些則是顯示的。2.3面向?qū)ο蠓治?.4面向?qū)ο笤O(shè)計(jì)2122使用面向?qū)ο蠓椒ǖ牡诙骄褪沁M(jìn)行面向?qū)ο蟮脑O(shè)計(jì)(ObjectOrientedAnalysis,OOD),即設(shè)計(jì)軟件的對象模型。根據(jù)所應(yīng)用的面向?qū)ο筌浖_發(fā)環(huán)境的功能強(qiáng)弱不等,在對問題對象模型分析的基礎(chǔ)上,可能要對它進(jìn)行一定的改造,但應(yīng)以最少改變原問題域的對象模型為原則。然后就在軟件系統(tǒng)內(nèi)設(shè)計(jì)各個(gè)對象、對象間的關(guān)系(如層次關(guān)系、繼承關(guān)系等)、對象間的通信方式(如消息模式)等。面向?qū)ο蟮脑O(shè)計(jì)方法是面向?qū)ο蠓椒ㄖ幸粋€(gè)中間過渡環(huán)節(jié),其主要作用是對面向?qū)ο蠓治龅慕Y(jié)果作進(jìn)一步的規(guī)范化整理,以便能夠被面向?qū)ο缶幊讨苯咏邮堋?.4面向?qū)ο笤O(shè)計(jì)231.對象定義規(guī)格的求精對于OOA所抽象出來的對象和類以及匯集的分析文檔,OOD需要有一個(gè)根據(jù)設(shè)計(jì)要求整理和求精的過程,使之更能符合OOP的需要。這個(gè)整理和求精過程主要有兩個(gè)方面:一是要根據(jù)面向?qū)ο蟮母拍钅P驼矸治鏊_定的對象結(jié)構(gòu)、屬性、方法等內(nèi)容,改正錯(cuò)誤的內(nèi)容,刪去不必要和重復(fù)的內(nèi)容等;二是進(jìn)行分類整理,以便于下一步數(shù)據(jù)庫設(shè)計(jì)和程序處理模塊設(shè)計(jì)的需要。整理的方法主要是進(jìn)行歸類,即對類、對象、屬性、方法、結(jié)構(gòu)和主題進(jìn)行歸類。2.?dāng)?shù)據(jù)模型和數(shù)據(jù)庫設(shè)計(jì)數(shù)據(jù)模型的設(shè)計(jì)需要確定類和對象屬性的內(nèi)容、消息連接的方式、系統(tǒng)訪問、數(shù)據(jù)模型的方法等。最后每個(gè)對象實(shí)例的數(shù)據(jù)都必須落實(shí)到面向?qū)ο蟮膸旖Y(jié)構(gòu)模型中。2.4面向?qū)ο笤O(shè)計(jì)243.優(yōu)化設(shè)計(jì)OOD的優(yōu)化設(shè)計(jì)過程是從另一個(gè)角度對分析結(jié)果和處理業(yè)務(wù)過程的整理歸納,優(yōu)化包括對象和結(jié)構(gòu)的優(yōu)化、抽象、集成。對象和結(jié)構(gòu)的模塊化表示OOD提供了一種范式,這種范式支持對類和結(jié)構(gòu)的模塊化。這種模塊符合一般模塊化所要求的所有特點(diǎn),如信息隱蔽性好,內(nèi)部聚合度強(qiáng)和模塊之間耦合度弱等。集成化使得單個(gè)構(gòu)件有機(jī)地結(jié)合在一起,相互支持。2.4面向?qū)ο笤O(shè)計(jì)2.5面向?qū)ο髮?shí)現(xiàn)2526最后階段是面向?qū)ο蟮膶?shí)現(xiàn)(ObjectOrientedImplementation,OOI),即指軟件功能的編碼實(shí)現(xiàn),主要工作為面向?qū)ο蟮木幊蹋∣bjectOrientedProgramming,OOP)。它包括:每個(gè)對象的內(nèi)部功能的實(shí)現(xiàn),確立對象哪一些處理能力應(yīng)在哪些類中進(jìn)行描述,確定并實(shí)現(xiàn)系統(tǒng)的界面、輸出的形式及其他控制機(jī)理等,總之是實(shí)現(xiàn)在OOD階段所規(guī)定的各個(gè)對象所應(yīng)完成的任務(wù)。面向?qū)ο缶幊痰幕静襟E如下。(1)分析確定在問題空間和解空間出現(xiàn)的全部對象及其屬性。(2)確定應(yīng)施加于每個(gè)對象的操作,即對象固有的處理能力。(3)分析對象間的聯(lián)系,確定對象彼此間傳遞的消息。2.5面向?qū)ο髮?shí)現(xiàn)27(4)設(shè)計(jì)對象的消息模式,消息模式和處理能力共同構(gòu)成對象的外部特性。(5)分析各個(gè)對象的外部特性,將具有相同外部特性的對象歸為一類,從而確定所需要的類。(6)確定類間的繼承關(guān)系,將各對象的公共性質(zhì)放在較上層的類中描述,通過繼承來共享對公共性質(zhì)的描述。(7)設(shè)計(jì)每個(gè)類關(guān)于對象外部特性的描述。(8)設(shè)計(jì)每個(gè)類的內(nèi)部實(shí)現(xiàn)(數(shù)據(jù)結(jié)構(gòu)和方法)。(9)創(chuàng)建所需的對象(類的實(shí)例),實(shí)現(xiàn)對象間應(yīng)有的聯(lián)系(發(fā)消息)。2.5面向?qū)ο髮?shí)現(xiàn)2.6面向?qū)ο蠓椒ǖ膬?nèi)涵2829面向?qū)ο蠓椒ǖ淖饔煤鸵饬x絕不只局限于編程技術(shù),它是一種新的程序設(shè)計(jì)范型(面向?qū)ο蟪绦蛟O(shè)計(jì)范型),是信息系統(tǒng)開發(fā)的新方法論(面向?qū)ο蠓椒▽W(xué)),是正在興起的新技術(shù)(面向?qū)ο蠹夹g(shù))。2.6面向?qū)ο蠓椒ǖ膬?nèi)涵301.面向?qū)ο蟪绦蛟O(shè)計(jì)范型

程序設(shè)計(jì)范型(以下簡稱“程設(shè)范型”)具體指的是程序設(shè)計(jì)的體裁,程序設(shè)計(jì)體裁是用程序設(shè)計(jì)語言表達(dá)各種概念和各種結(jié)構(gòu)的一套設(shè)施。目前,程設(shè)范型分為:過程式程設(shè)范型、函數(shù)式程設(shè)范型,此外還有進(jìn)程式程設(shè)范型、事件程設(shè)范型和類型系統(tǒng)程設(shè)范型。每一程設(shè)范型都有多種程序設(shè)計(jì)語言支持,而某些語言兼?zhèn)涠喾N范型。過程式程設(shè)范型是流行最廣泛的程序設(shè)計(jì)范型,它的中心點(diǎn)是設(shè)計(jì)過程,所以程序設(shè)計(jì)時(shí)首先要決定的是問題解所需要的過程,然后設(shè)計(jì)過程的算法。這類范型的語言必須提供設(shè)施給過程(函數(shù))傳送變元和返回的值,如何區(qū)分不同種類的過程(函數(shù))、如何傳送變元是這類程序設(shè)計(jì)中關(guān)心的主要問題。

面向?qū)ο蟪淘O(shè)范型是在以上范型上發(fā)展起來的,它的關(guān)鍵在于加入了類及其繼承性,用類表示通用特性,子類繼承父類的特性,并可加入新的特性。對象以類為樣板被創(chuàng)建。所以在面向?qū)ο蟪淘O(shè)范型中,首要的任務(wù)是決定所需要的類,每個(gè)類應(yīng)設(shè)置足夠的操作,并利用繼承機(jī)制共享共同的特性。2.6面向?qū)ο蠓椒ǖ膬?nèi)涵312.面向?qū)ο蠓椒▽W(xué)面向?qū)ο蠓椒ㄗ裱话愕恼J(rèn)知方法學(xué)的基本概念(有關(guān)演繹—從一般到特殊和歸納—從特殊到一般的完整理論和方法體系),并以面向?qū)ο蠓椒榛A(chǔ)。面向?qū)ο蠓椒▽W(xué)要點(diǎn)之一:認(rèn)為客觀世界是由各種“對象”所組成的,任何事物都是對象,每一個(gè)對象都有自己的運(yùn)動(dòng)規(guī)律和內(nèi)部狀態(tài),每一個(gè)對象都屬于某個(gè)對象“類”,都是該對象類的一個(gè)元素。復(fù)雜的對象可以是由相對比較簡單的各種對象以某種方式而構(gòu)成的。面向?qū)ο蠓椒▽W(xué)要點(diǎn)之二:通過類比,發(fā)現(xiàn)對象間的相似性,即對象間的共同屬性,這就是構(gòu)成對象類的依據(jù)。在“類”、“父類”、“子類”的概念構(gòu)成對象類的層次關(guān)系時(shí),若不加特殊說明,則處在下一層次上的對象可自然地繼承位于上一層次上的對象的屬性。面向?qū)ο蠓椒▽W(xué)要點(diǎn)之三:認(rèn)為對已分成類的各個(gè)對象,可以通過定義一組“方法”來說明該對象的功能,即允許作用于該對象上的各種操作。對象間的相互聯(lián)系是通過傳遞“消息”來完成的,消息就是通知對象去完成一個(gè)允許作用于該對象的操作,至于該對象將如何完成這個(gè)操作的細(xì)節(jié),則是封裝在相應(yīng)的對象類的定義中的,細(xì)節(jié)對于外界是隱蔽的。2.6面向?qū)ο蠓椒ǖ膬?nèi)涵323.面向?qū)ο蠹夹g(shù)面向?qū)ο蠓椒仁浅绦蛟O(shè)計(jì)新范型、系統(tǒng)開發(fā)的新方法學(xué),作為一門新技術(shù)它就有了基本的依據(jù)。事實(shí)上,面向?qū)ο蠓椒芍С址N類不同的系統(tǒng)開發(fā),已經(jīng)或正在許多方面得以應(yīng)用,因此,可以說面向?qū)ο蠓椒ㄊ且婚T新的技術(shù)——面向?qū)ο蠹夹g(shù)。近十多年來,除了面向?qū)ο蟮某绦蛟O(shè)計(jì)以外,面向?qū)ο蠓椒ㄒ寻l(fā)展應(yīng)用到整個(gè)信息系統(tǒng)領(lǐng)域和一些新興的工業(yè)領(lǐng)域,包括:用戶界面(特別是圖形用戶界面——GUI)、應(yīng)用集成平臺、面向?qū)ο髷?shù)據(jù)庫(OODB)、分布式系統(tǒng)、網(wǎng)絡(luò)管理結(jié)構(gòu)、人工智能領(lǐng)域及并發(fā)工程、綜合集成工程等。20世紀(jì)80年代后期形成的并發(fā)工程,其概念要點(diǎn)是在產(chǎn)品開發(fā)初期(方案設(shè)計(jì)階段)就把結(jié)構(gòu)、工藝、加工、裝配、測試、使用、市場等問題同期并行地啟動(dòng)運(yùn)行,其實(shí)現(xiàn)必須有兩個(gè)基本條件:一是專家群體,二是共享并管理產(chǎn)品信息(將CAD、CAE、CIN緊密結(jié)合在一起)。2.6面向?qū)ο蠓椒ǖ膬?nèi)涵334.面向?qū)ο蠓椒ó?dāng)前的研究領(lǐng)域(1)智能計(jì)算機(jī)的研究。面向?qū)ο蠓椒蓪⒅R片看作對象,為相關(guān)知識的模塊化提供方便,在知識工程領(lǐng)域越來越受到重視。面向?qū)ο蠓椒ǖ脑O(shè)計(jì)思想被引入到智能計(jì)算機(jī)的研究中。(2)新一代操作系統(tǒng)的研究。采用面向?qū)ο蠓椒▉斫M織設(shè)計(jì)新一代操作系統(tǒng)具有如下優(yōu)點(diǎn):采用對象來描述OS所需要設(shè)計(jì)、管理的各類資源信息,如各類設(shè)備更為自然;引入面向?qū)ο蠓椒▉硖幚砻嫦驅(qū)ο蟮闹T多事務(wù),如命名、同步、保護(hù)、管理等,會更易實(shí)現(xiàn)、更便于維護(hù);面向?qū)ο蠓椒▽τ诙鄼C(jī)、并發(fā)控制可提供有力的支持,并能恰當(dāng)?shù)毓芾砭W(wǎng)絡(luò),使其更豐富和協(xié)調(diào)。(3)多學(xué)科的綜合研究。當(dāng)前,人工智能、數(shù)據(jù)庫、編程語言的研究有匯合趨勢。為了實(shí)現(xiàn)多學(xué)科的綜合,面向?qū)ο蠓椒ㄊ且粋€(gè)很有希望的匯聚點(diǎn)。(4)新一代面向?qū)ο蟮挠布到y(tǒng)的研究。要支持采用面向?qū)ο蠓椒ㄔO(shè)計(jì)的軟件系統(tǒng)的運(yùn)行,必須建立更理想的能支持面向?qū)ο蠓椒ǖ挠布h(huán)境。目前采用松耦合(分布主存)結(jié)構(gòu)的多處理機(jī)系統(tǒng)更接近于面向?qū)ο蠓椒ǖ乃枷搿?.6面向?qū)ο蠓椒ǖ膬?nèi)涵(1)應(yīng)用面向?qū)ο蠓椒ㄖ械母拍顚VD和播放DVD的情景進(jìn)行描述。(2)結(jié)合軟件開發(fā)實(shí)踐,舉例說明OOA、OOD和OOP的具體任務(wù)及相關(guān)之間的聯(lián)系。(3)舉例說明面向?qū)ο缶幊毯徒Y(jié)構(gòu)化編程的優(yōu)缺點(diǎn)。34

1.操作要求

2.操作提示(1)以學(xué)習(xí)小組為單位分組進(jìn)行討論,每小組推薦一名成員進(jìn)行匯報(bào)。(2)通過上網(wǎng)查閱面向?qū)ο蠓椒ㄏ嚓P(guān)資料進(jìn)行更為詳細(xì)的了解。(3)結(jié)合自己的編程實(shí)踐,進(jìn)一步理解面向?qū)ο蟮幕舅枷搿?.7軟件建模概述352.7軟件建模概述36任務(wù)2了解軟件模型在開發(fā)一個(gè)軟件系統(tǒng)時(shí)的重要作用,理解軟件建模的優(yōu)點(diǎn)。任務(wù)描述

371.什么是模型模型是什么?模型是對現(xiàn)實(shí)存在的實(shí)體的抽象和簡化,模型提供了系統(tǒng)的藍(lán)圖。模型過濾非本質(zhì)的細(xì)節(jié)信息,抽象出問題本質(zhì),使問題更容易理解。模型是用某種工具對同類或其他工具的表達(dá)方式。它是從某一個(gè)建模觀點(diǎn)出發(fā),抓住事物最重要的方面而簡化或忽略其他方面。表達(dá)模型的工具要求便于使用。建筑模型可以是圖紙上所繪的建筑圖,也可以是用厚紙板制作的三維模型,還可以用存于計(jì)算機(jī)中的有限元方程來表示。一個(gè)建筑物的結(jié)構(gòu)模型不僅能夠展示這個(gè)建筑物的外觀,還可以用它來進(jìn)行工程設(shè)計(jì)和成本核算。軟件系統(tǒng)的模型用建模語言來表達(dá)(如UML)。這里的模型包含語義信息和表示法,可以采取圖形和文字等多種不同形式。可視化建模是使用一些圖形符號進(jìn)行建模,可視化建模的作用如下:它可以捕捉用戶的業(yè)務(wù)過程,可以作為一種很好的交流工具,可以管理系統(tǒng)的復(fù)雜性,可以定義軟件的架構(gòu),還可以增加重用性。本文所提的建模都是指可視化建模。2.7軟件建模概述

2.7.1軟件建模的概念382.為什么要建模需要為軟件系統(tǒng)建立模型是因?yàn)殚_發(fā)一個(gè)具有一定規(guī)模和復(fù)雜性的軟件系統(tǒng),和編寫一個(gè)簡單的程序大不一樣。大型的、復(fù)雜的軟件系統(tǒng)的開發(fā)是一項(xiàng)工程,必須按工程學(xué)的方法組織軟件的生產(chǎn)與管理,必須經(jīng)過分析、設(shè)計(jì)、實(shí)現(xiàn)、測試、維護(hù)等一系列的軟件生命周期階段。這是人們從軟件危機(jī)中獲得的最重要的教益。只有在分析和設(shè)計(jì)階段建立了良好的系統(tǒng)模型,才有可能保證工程的正確實(shí)施?,F(xiàn)在的軟件越來越大,大多數(shù)軟件的功能都很復(fù)雜,使得軟件開發(fā)只會變得更加復(fù)雜和難以把握。解決這類復(fù)雜問題最有效的方法之一就是分層理論,即將復(fù)雜問題分為多個(gè)問題逐一解決。軟件模型就是對復(fù)雜問題進(jìn)行分層,從而更好地解決問題。這就是為什么要對軟件進(jìn)行建模的原因。有效的軟件模型有利于分工與專業(yè)化生產(chǎn),從而節(jié)省生產(chǎn)成本。

在軟件系統(tǒng)建模中,抽象是一種處理復(fù)雜問題的常用方法。2.7軟件建模概述

2.7.1軟件建模的概念393.建模的必要性模型是軟件開發(fā)之根本,無論軟件的大小、涉及的范圍,還是建模本身,都是系統(tǒng)化認(rèn)識所開發(fā)軟件的一個(gè)初步的途徑。在現(xiàn)在軟件開發(fā)的過程中,必須經(jīng)歷的幾個(gè)過程是需求分析、系統(tǒng)設(shè)計(jì)、初步實(shí)現(xiàn)、系統(tǒng)實(shí)現(xiàn)、系統(tǒng)運(yùn)行、系統(tǒng)維護(hù)。原先的系統(tǒng)建模的形式是初步的、不完善的,隨著系統(tǒng)實(shí)施向前推進(jìn),系統(tǒng)模型必須隨之改變,但建模沒有跟蹤過程,但RUP提供一個(gè)合理的機(jī)制——迭代,可以幫助我們解決系統(tǒng)級建模的所有問題。迭代式是開發(fā)過程的描述,實(shí)質(zhì)就是在各個(gè)階段對模型的描述更新,重新認(rèn)識系統(tǒng),并把握系統(tǒng)發(fā)展趨向,從而有效地控制開發(fā)和系統(tǒng)的架構(gòu)。2.7軟件建模概述

2.7.1軟件建模的概念40模型有多種用途,主要包括以下幾個(gè)方面:(1)精確捕獲和表達(dá)項(xiàng)目的需求和應(yīng)用領(lǐng)域中的知識,以使各方面的利益相關(guān)者能夠理解并達(dá)成一致。(2)進(jìn)行系統(tǒng)設(shè)計(jì)。(3)使具體的設(shè)計(jì)細(xì)節(jié)與需求分開。(4)生成有用的實(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

提交評論