




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、摘 要面向?qū)ο蠓椒ǎ∣bject-Oriented Method),一般可簡稱為OO(Object-Oriented)方法,在軟件的開發(fā)過程中,OO可作為一種指導(dǎo)的系統(tǒng)方法。一般把OO認(rèn)為是一個中間過渡環(huán)節(jié)??蛇M(jìn)一步規(guī)范管理OOA出來的分析結(jié)果,直接受理的OOP因此也得到了很大便利。面向?qū)ο蟪绦蛟O(shè)計(Object Oriented Programming)簡稱為OOP。被認(rèn)為是一種計算機(jī)的編程基本架構(gòu),現(xiàn)如今,面向的對象編程思想已經(jīng)成為計算機(jī)界關(guān)心的重點。OOP技術(shù)由五個最基本的概念組成:對象(objects)、方法(methods)、類(classes)、消息(messages)和繼承(in
2、heritance)?;诿嫦?qū)ο蟮母呒壵Z言C+,著重從封裝、繼承以及多態(tài)性來考慮實現(xiàn)OOP技術(shù)。此次畢業(yè)設(shè)計,基于面向?qū)ο缶幊痰姆椒?,實現(xiàn)其在過程控制功能塊開發(fā)中的應(yīng)用與開發(fā)。以簡單的PID功能塊為對象,應(yīng)用C+程序語言進(jìn)行相關(guān)編程。功能塊可理解為一種圖形化的編程語言,一般可形象理解為“軟件的集成電路”。輸入、輸出和內(nèi)部控制參數(shù)構(gòu)成了功能塊。一套特定的算法,以輸入?yún)?shù)為基礎(chǔ),產(chǎn)生了輸出參數(shù),以供系統(tǒng)或其他功能塊利用,實現(xiàn)應(yīng)用程序系統(tǒng)的控制功能。在畢業(yè)論文中,特別認(rèn)識PID功能塊內(nèi)部的一些主要參數(shù),比如:BKCAL_OUT、OUT、BKCAL_IN、IN、FF_VAL等。通過C+基于面向?qū)ο笤O(shè)
3、計帶有的PID控制算法及抗積分飽和、前饋控制功能的PID控制功能塊。關(guān)鍵詞:面向?qū)ο螅呒壵Z言,類,對象,功能塊ABSTRACTObject-Oriented Method is sometimes referred to as Object-Oriented which is a systematic approach that can be used to guide the software development process.Usually,OO is an intermediate link in the Object-Oriented Method.Its main role
4、is further standardized management OOA analysis,in order to be able to OOP accepted.Object-Oriented Programming is a computer programming architecture. Nowadays, the ideas of object-oriented programming has become the focus of computer industrys concern.The technology of object-oriented programming
5、is made up of five basic concept compositions: objects,methods,classes,messages and inheritance. Based on high-level object-oriented language C +, considering implementing OOP techniques mainly from encapsulation, inheritance and polymorphism. This topic is based on object-oriented design,applicatio
6、n and development of the process control function blocks.The simple PID function block objects,the application of C+ programming.Function Block is understood as a graphical programming language, and can be understood as the image of "software ICs." Input, output and internal control parame
7、ters constitute a function block. A specific algorithm can generate the output parameters based on the input parameters,which are for the system or other function blocks use,to achieve the application of a control function of the system.In my thesis,I focused on understanding the main parameters of
8、the PID function block inside itself,such as:BKCAL_OUT,OUT,BKCAL_IN,IN,FF_VAL,and so on.By C+ based object-oriented design with PID control algorithmand feed forward control antiwindup function PID control function block.KEYWORDS:Object-Oriented,High-level,language,Class,Object,Function blockII目 錄摘
9、要IABSTRACTII第1章 緒論11.1 選題背景及發(fā)展現(xiàn)況11.1.1 面向?qū)ο笙嚓P(guān)概念11.1.2 OOP的基本原理及其發(fā)展過程11.1.3 OOP技術(shù)的特點31.1.4 OOP技術(shù)在C+中的實現(xiàn)與應(yīng)用51.2 國內(nèi)外研究現(xiàn)狀61.2.1 控制系統(tǒng)的發(fā)展歷程61.2.2 DCS與FCS現(xiàn)狀61.2.3 面向?qū)ο蠹夹g(shù)的發(fā)展71.3 本章小結(jié)7第2章 功能塊的概念和結(jié)構(gòu)82.1 功能塊及參數(shù)的概念82.2 功能塊的原理及特點92.3 功能塊分類102.3.1 輸入功能塊102.3.2 輸出功能塊102.3.3 控制功能塊102.3.4 計算功能塊102.4 功能塊執(zhí)行過程112.5 功能塊
10、組態(tài)112.6 本章小節(jié)12第3章 基于OOD方法的過程控制功能塊的設(shè)計133.1 OOD的有關(guān)概念133.1.1 什么是OOD133.1.2 OOD的特點133.1.3 OOD的基本思想133.1.4 OOA、OOD以及OOP之間的關(guān)系143.2 OOD的主要工作和過程143.2.1 問題域部分的設(shè)計143.2.2 人機(jī)交互部分的設(shè)計153.2.3 應(yīng)用控制部分的設(shè)計153.3 OOD設(shè)計的主要方法步驟163.4 功能塊參數(shù)163.5 控制變量的計算173.5.1 過程變量的計算173.5.2 設(shè)定值的計算173.5.3 設(shè)定值跟蹤過程變量183.5.4 輸出參數(shù)計算183.5.5 串級控制
11、183.6 塊模式參數(shù)183.6.1 模式類型183.6.2 塊模式參數(shù)MODE_BLK的構(gòu)成元素193.7 量程標(biāo)定參數(shù)193.8 PID設(shè)計193.9 功能塊設(shè)計應(yīng)用實例193.10 本章小結(jié)20第4章 具體程序的編寫214.1 用C+編程實現(xiàn)一個簡單過程控制214.1.1 功能流程框圖214.1.2 具體過程思想214.1.3 溫度檢測類的代碼224.1.4 運行界面234.2 用C+實現(xiàn)PID控制過程234.2.1 位置式PID算法234.2.2 增量式PID算法254.2.3 積分分離算法254.2.4 抗積分飽和算法254.2.5 微分項改進(jìn)算法264.2.6 帶死區(qū)的數(shù)字PID算
12、法264.2.7 對PID的直觀理解264.2.8 程序思想講述及相關(guān)重要代碼274.2.9 運行截圖29結(jié)論及展望321 本文結(jié)論322 工作展望32參 考 文 獻(xiàn)33致 謝34華北電力大學(xué)本科畢業(yè)設(shè)計(論文)第1章 緒論1.1 選題背景及發(fā)展現(xiàn)況1.1.1 面向?qū)ο笙嚓P(guān)概念90年代軟件開發(fā)的主流是面向?qū)ο?,如今,面向?qū)ο笠惨呀?jīng)成為計算機(jī)行業(yè)關(guān)心的一大重點。面向?qū)ο蟮姆椒ìF(xiàn)在已經(jīng)擴(kuò)展到了相當(dāng)寬的領(lǐng)域中,面向?qū)ο蟮幕靖拍钜约皯?yīng)用已經(jīng)早已不只是程序設(shè)計和軟件開發(fā)那么狹隘了。面向?qū)ο蟮漠a(chǎn)生是由于早期結(jié)構(gòu)化方法出現(xiàn)了很多難以解決的問題。仔細(xì)研究與觀察,不難發(fā)現(xiàn),用結(jié)構(gòu)化設(shè)計的方法去求解問題,我們是
13、站在功能的角度去分析問題域。由于此基本策略,這是由一些特定任務(wù)和子過程相關(guān)的應(yīng)用程序去實現(xiàn)的功能塊,包括用數(shù)據(jù)組織模式去處理的給定數(shù)據(jù),使用該算法去描述出的特定基本操作。而隨著功能要求的逐漸完善,日趨復(fù)雜的應(yīng)用系統(tǒng),結(jié)構(gòu)化的設(shè)計思路就慢慢顯現(xiàn)了很多弱點。如今,在軟件開發(fā)與應(yīng)用的全部領(lǐng)域中,面向?qū)ο蟮幕舅枷胍呀?jīng)逐漸滲透與完善。比如我們接觸到的面向?qū)ο缶幊蹋∣OP,Object Oriented Programming),面向?qū)ο蠓治觯∣OA,Object Oriented analysis),面向?qū)ο笤O(shè)計(OOD,Object Oriented design)。其中,以O(shè)OP最為我們熟知。1.
14、1.2 OOP的基本原理及其發(fā)展過程現(xiàn)如今,使用最廣泛的開發(fā)工具技術(shù)就是面向?qū)ο缶幊蹋∣OP,Object Oriented Programming)。回顧20世紀(jì)80年代,當(dāng)時,在計算機(jī)軟件領(lǐng)域可謂發(fā)生了翻天覆地的變化,由此也對絕大多數(shù)系統(tǒng)分析員程序員的職業(yè)規(guī)劃和方向產(chǎn)生了重大影響。面向?qū)ο缶幊蹋∣OP,Object Oriented Programming)就是這其中的最典型的代表。談到OOP,并不能理解為一種編程的語言,其實,更準(zhǔn)確地說,它是關(guān)于數(shù)據(jù)與進(jìn)程之間的全新方法概念。OOP是一種方法,OOP的一條基本原則是計算機(jī)程序是由單個能夠起到子程序作用的單元或?qū)ο蠼M合而成。抽象、封裝性、共
15、享性、強(qiáng)調(diào)對象結(jié)構(gòu)而不是程序結(jié)構(gòu)是面向?qū)ο蟮囊?。對象包括?shù)據(jù)和流程的封裝,它們之間有著千絲萬縷的聯(lián)系。在OOP概念提出以前,數(shù)據(jù)和文件形式、過程總是彼此分離的,OOP把數(shù)據(jù)和過程組合到了一起。由于其有復(fù)用性,所以對象是通用并且獨立的,足以構(gòu)成軟件的獨立單元?!按罘e木”就可以很形象地形容這個過程。OOP技術(shù)由五個基本概念組成:對象(objects)、方法(methods)、類(classes)、消息(messages)和繼承(inheritance)。1.對象(objects)。OOP技術(shù)的核心。對象,是指客觀存在的事物,包括一組屬性(attribute)和一組行為(behavior)。由于它
16、的組成特點,所以擴(kuò)展為對象是具體和抽象并存的。對象千差萬別,但相同的是它們都是各自系統(tǒng)的基本構(gòu)成單位。面向?qū)ο缶幊淌且粋€實體,熟悉的對象,客觀的事物。在面向?qū)ο缶幊碳夹g(shù)當(dāng)中我們都可以找到具有相同特性(靜態(tài)特性)和行為(動態(tài)特性)的對象,抽象就成為了類。2.方法(methods)。方法是對某對象接收信息后所采取的操作的一種描述。在C+語言中,每個對象都有數(shù)據(jù)(對應(yīng)屬性)和函數(shù)(對應(yīng)行為)兩部分,方法就是用來操作數(shù)據(jù)實現(xiàn)某些具體功能,即:實現(xiàn)功能目標(biāo)代碼。消息與方法的關(guān)系就是發(fā)送消息轉(zhuǎn)向接受并響應(yīng)消息。3類(classes)。具有共同屬性和行為的一類事物的抽象描述。共同屬性是類中的數(shù)據(jù)成員,共同行
17、為是類中的成員函數(shù)。類是抽象的對象,對象是類的特例。類是形式化定義,對象卻是實實在在存在的。由于對象具有相似性,類就自然而然可以分為類和子類。更形象地解釋就是:我們有吃飯、喝水、休息、工作、享樂等這些共同行為,但我們每個人又有自己的姓名、興趣、個性等,這些都是屬性與行為,可能相同,也可能不同。4.消息(messages)。消息指某對象請求服務(wù)的一種表達(dá)方式,是對象與外界、對象之間的通信結(jié)構(gòu)和聯(lián)系工具。消息發(fā)送給對象,接收消息的對象是目標(biāo)對象。消息需要包括目標(biāo)對象的對象名、消息名以及去執(zhí)行操作的信息與請求對象的方法,還需要有一個或者多個參數(shù),必要時要對參數(shù)加以說明,參數(shù)分局部變量和全局變量。5.
18、繼承(inheritance)。繼承是指一種事物保留了另一個事物的特征,并且具有自身的獨有特征。繼承定義了對象和類之間的相互關(guān)系。當(dāng)我們通過指定類名去定義一個父類下面子類的對象時,這個子類會自動繼承父類的屬性和功能。用一種直觀的方法說,繼承就是在現(xiàn)有類的基礎(chǔ)上去創(chuàng)建一個有相同屬性功能的新類。在提高軟件開發(fā)效率中,繼承具有其它方法無法比擬的作用,多個對象中有重要部分的代碼,繼承可以消除它們,這樣就使代碼重復(fù)使用提高到了一個更高的水平上??偠灾?,對象與數(shù)據(jù)、代碼、消息、上層階級的屬性和功能的關(guān)系可以用下圖表示:對象數(shù)據(jù)代碼消息上層階級屬性功能方法激活圖1-1 對象等元素相互關(guān)系 (說明:上層的階
19、級會把自己的屬性功能交給對象繼承,對象包括數(shù)據(jù)和代碼,消息傳遞給對象,會把對象中的代碼和方法激活。)由此可見,OOP方法使不同模塊之間的相互作用減弱,系統(tǒng)以及面向?qū)ο蟮睦^承變得更為簡化,系統(tǒng)不再出現(xiàn)冗余現(xiàn)象。Simula語言為OOP提供了很多原始思想,在Smalltalk語言的完善和標(biāo)準(zhǔn)化過程中,OOP得到了更多的擴(kuò)展,并且以前的思想也被重新注解。函數(shù)式程序設(shè)計(functional-programming)和邏輯式程序設(shè)計(logic-programming)所代表的比較接近實際計算機(jī)的模型,而OOP卻有所不同,OOP并沒有引入絲毫精確的數(shù)學(xué)描述,而多數(shù)是建立各個對象的模型,很類似于我們自己
20、去認(rèn)識周圍事物所采用的方法和模型。有兩種產(chǎn)生對象的基本方式:以類(class)為基礎(chǔ)或者以原型(prototype)為基礎(chǔ)去產(chǎn)生新的對象。原型可以去解釋學(xué)習(xí)的遞增特性,原型模型自身就是希望通過自己的特點屬性作為基礎(chǔ)去衍生出各種新的對象,一步步繼續(xù)去創(chuàng)造更滿足實際應(yīng)用的對象。C+中的類是從C語言中的結(jié)構(gòu)概念演變而來的,是我們用戶自己定義的數(shù)據(jù)類型。結(jié)構(gòu)是將某一類的事物相關(guān)信息組合拼湊在一起,從而形成混合的類型。在某種意義上說,其已經(jīng)具有了抽象數(shù)據(jù)的概念了。但不足的是,其成員仍然是由外部的程序直接進(jìn)行操作的,而沒有一個所謂的“接口”把它和外部的操作程序進(jìn)行分離,這樣就會產(chǎn)生這樣的不利后果:一旦結(jié)構(gòu)
21、本身改變,全部應(yīng)用此結(jié)構(gòu)的外部操作程序都要進(jìn)行相應(yīng)的改變和調(diào)整,對程序維護(hù)來說,將造成不必要的麻煩和時間浪費。面對對象的程序設(shè)計思想是:有了一個“接口”,把對象成員和外部操作程序進(jìn)行隔離,并且實現(xiàn)了組件的多態(tài)化多元化。面向?qū)ο蟮某绦蛟O(shè)計將數(shù)據(jù)(屬性)和函數(shù)(行為或方法)打包封裝,并放進(jìn)類的軟件包里,這樣的話,就使類的數(shù)據(jù)和函數(shù)緊緊地聯(lián)系到了一起,但并沒有明明白白表達(dá)出了不同層次關(guān)系背后的本質(zhì)。1.1.3 OOP技術(shù)的特點在20世紀(jì)90年代,面向?qū)ο缶幊蘋OP已經(jīng)成為了軟件編程開發(fā)以及應(yīng)用中的重點。強(qiáng)調(diào)了對象的“抽象”,“封裝”,“繼承”,“多態(tài)”,提到程序設(shè)計,自然會想到數(shù)據(jù)結(jié)構(gòu)和算法。從大的
22、角度來看,OOP編程就是以對象為基本中心,面向它們?nèi)崿F(xiàn)功能代碼。OOP技術(shù)的特點是:抽象性(人類認(rèn)識事物的思維方式和解決問題的執(zhí)行方式)抽象性是指忽略主體中與當(dāng)前目標(biāo)無關(guān)的細(xì)節(jié),并將有關(guān)事物的共性歸納、集中的過程。我們認(rèn)知周邊世界的方式也只有兩種:(1)從抽象到具體,由一般到特殊,這稱為演繹方式;(2)由具體到抽象,從特殊到一般,這叫做歸納方式。人類會用其中的一種或者兩種混用在一起。童年、少年、中年、青年、老年、男人、女人、黑種人、白種人、黃種人、美國人、英國人等,這些都是具體的人,而所有具有中國國籍的人被歸為一類,稱為“中國人”,這就是一個典型的抽象。我們在編程中新建出的類,都是已知類的子
23、類。面向?qū)ο蟪绦蛟O(shè)計中的抽象包括數(shù)據(jù)和代碼兩方面的抽象。類是對象的抽象,而對象是類的實例,也是類的具體表現(xiàn)形式。封裝性(完美體現(xiàn)編程思想)封裝性是指將數(shù)據(jù)與算法捆綁成為一個整體(對象),描述這個整體(對象)的數(shù)據(jù)就被封裝在其中。用編程的語言說就是:把數(shù)據(jù)和代碼綁定在一起,把實體信息、功能、響應(yīng)都載入這個獨立的對象中。軟件工程中,模塊化、信息隱藏和抽象都是一些基本的概念。它們可以用來實現(xiàn)模塊中對象和類的封裝,面向?qū)ο缶幊?,有封閉性、獨立性和接口特性。C+語言中,我們是通過定義類和對象去實現(xiàn)對數(shù)據(jù)的封裝,因此可以說,類就是封裝的基本單位。有封裝的責(zé)任存在,就可以定義出類的成員和外部存在的接口。為了
24、使程序不同模塊之間的交互減少到最低,通過其它成員的隱藏,這樣就達(dá)到防止外界干擾、減小了誤用以及不確定等因素。OOP中的類是已經(jīng)被程序員封裝好以后的模塊,通過解讀類的定義,我們不難發(fā)現(xiàn):外部可見接口的解釋和對用戶不可見內(nèi)部實現(xiàn)是被清清楚楚分開的。因為保護(hù)作用的提供,安全性就大大增強(qiáng)。由于C+中對類封裝的特點,也使程序代碼的修改以及后期問題維護(hù)變得方便許多,這也恰恰就是面向?qū)ο蟪绦蛟O(shè)計的基礎(chǔ)。信息隱蔽:被隱藏部分的內(nèi)部細(xì)節(jié),通過預(yù)留的小接口,與外界進(jìn)行接觸,并且接收外界消息,這種隱蔽的方式就叫信息隱蔽。信息隱蔽有諸多好處,不但有利于數(shù)據(jù)安全,還防止了外人接觸甚至惡意修改程序數(shù)據(jù),我們用戶不用去詳細(xì)
25、了解內(nèi)部構(gòu)造和具體實現(xiàn)細(xì)節(jié),只用通過這個外部接口去使用“類”的成員。同時,由于有了信息屏蔽方式,操作對象對用戶變得不再復(fù)雜。生活中有很多常見的例子:比如我們并不知道一臺空調(diào)里的構(gòu)造和原理是什么樣的,但卻可以用來制冷制熱。繼承性(盡可能逼真地模擬客觀世界及其事物)繼承性是指一種事物保留了另一個事物的特征,并且具有自身的獨有特征?,F(xiàn)實中存在很多人工難以解決的問題,但通過計算機(jī)編程卻可以解決千千萬萬的復(fù)雜問題。這些問題其實從編程的角度看,都可以有許多相似的特點,可以用類似的“類”去定義,去解決。對象和類其實就是這些復(fù)雜問題里的事物模型。例如:一個建筑公司以前已經(jīng)給一個寫字樓設(shè)計過一個建筑圖紙,現(xiàn)在又
26、要給一個居民樓設(shè)計建筑圖紙,現(xiàn)在就有兩種選擇:一是在原有圖紙的基礎(chǔ)上進(jìn)行改造,變換功能和樣式;二是完全從新設(shè)計新的圖紙。面向?qū)ο蟮木幊陶Z言如C+等,代碼中可以用許多對象和類,它們之間都是平等關(guān)系,沒有任何的主次與正副之分。彼此之間可以在任何地點時間發(fā)送和接收信息,信息傳達(dá)和指導(dǎo)了智能操作。繼承性使批量建造對象和類成為了可能,大大縮減了工作量,代碼的普遍適用性增強(qiáng),可在以后相似問題上進(jìn)行重用或者稍加改造,軟件也變得更可靠。對編程人員來說,程序開發(fā)的時間資源都大為節(jié)約,因此可以說繼承性是面向?qū)ο缶幊淘O(shè)計的重中之重。舉一個編程中的實例:定義一個person類:class personprivate:
27、char name10;char sex;int age;下次遇到動物園為各個動物登記的時候就可以依照person類去定義animal類:class animalprivate:char name10;char kind10;int num;多態(tài)性(友好的人機(jī)界面)多態(tài)性是指繼承來自同一事物時,彼此行為表現(xiàn)卻不同。在面向?qū)ο蟮母呒壘幊陶Z言里說,就是很多對象和類相似但卻不完全相同,當(dāng)它們接收到同一信息指令后,它們會因為彼此的不同而有不同的反應(yīng),進(jìn)而執(zhí)行了不同的操作,這就是多態(tài)性的具體說明。多態(tài)性也是面向?qū)ο笤O(shè)計的一個主要特點,并且豐富了程序的顯示和靈活性。同樣,多態(tài)性不但實現(xiàn)了不同的顯示和操作,
28、卻沒有增加代碼的復(fù)雜性。比如:我們在C+里使用同一種面向?qū)ο笏枷肜L圖出圓形、矩形、菱形、三角形。它們四種都繼承了原型對象的全部特征,當(dāng)我們對這四種不同形狀的類執(zhí)行同一“在屏幕上顯示”指令時,卻可以在屏幕上得到4種不同的圖形,這也是多態(tài)性在編程里的具體體現(xiàn)。C+語言中使用了很多的諸如模板、函數(shù)重載等不同概念來支持多態(tài)性,對面向?qū)ο缶幊淘O(shè)計也是一個極其重要的輔助和補(bǔ)充。在OOP中,編程人員有兩個任務(wù):一是設(shè)計需要的對象和類,考慮數(shù)據(jù)操作的封裝;二是給對象和類發(fā)送消息指令去實現(xiàn)需要的操作調(diào)度,完成職責(zé)。我們通常把每個對象和類分成塊,每一塊任務(wù)都完成,最終的功能也就成功實現(xiàn)。尤其是在大型的編程任務(wù)中,
29、OOP有著面向過程編程不可比擬的優(yōu)勢,不但減少了編程人員工作量,并且效率更高,錯誤率也大大降低。但是,OOP語言也有很多不足的地方,技術(shù)還沒有到完全成熟的地步,運行效率還比較低,開發(fā)的公司在工作中開銷還很大大,實現(xiàn)起來思路代碼也還較復(fù)雜等等。所以就需要我們要對OOP進(jìn)行更深的思考,加大開發(fā)和研究的力度,最終讓OOP能成為一種成熟、規(guī)范、標(biāo)準(zhǔn)的編程語言。1.1.4 OOP技術(shù)在C+中的實現(xiàn)與應(yīng)用在20世紀(jì)60年代,Martin Richards設(shè)計出了BCPL語言;1970年,Ken Thompson設(shè)計了Basic語言;1972年,Dennis Ritchie和Brian Kernighan設(shè)
30、計出了C語言,并且在20世紀(jì)70年代末風(fēng)靡了程序設(shè)計界;1980年,Bjarne Stroustrup改造了C語言,并在1983年正式命名為“C+”。C+語言雖然被理解為是典型的面向?qū)ο缶幊痰母呒壵Z言,其實它也兼有面向過程編程的特點功能。C+語言是一種典型的OOP語言。有一種說法說C+是面向過程編程如C語言的超集,是因為它包含了C語言的全部語法特征。C+語言的設(shè)計宗旨就是不但沒有改變C語言語法規(guī)則,并且擴(kuò)充出了一些新的特性。C+語言不但有C語言簡明、高效、靈活的優(yōu)點,而且有很好的通用性和可移植性,具有豐富的數(shù)據(jù)類型和運算符,同時也提供了功能強(qiáng)大的函數(shù)庫。有很多并沒有使用OOP的編程語言,和這些
31、相比,諸如C+此類的有明顯的優(yōu)勢:程序編譯建立更有結(jié)構(gòu)層次感,擴(kuò)展、開發(fā)、維護(hù)也都更加便利。所以,我們以后也要在改變自己傳統(tǒng)思想里的編程舊思想,試著去嘗試C+等。等使用熟練后,我們就會發(fā)現(xiàn)C+可以讓我們的編程更簡單直接,在解決實際問題時也更加高效省時,很多以前編程思想不能或者很難解決的問題就會變得迎刃而解。1.2 國內(nèi)外研究現(xiàn)狀1.2.1 控制系統(tǒng)的發(fā)展歷程隨著人類對周圍事物的認(rèn)知不斷深入,在日常生活中積累了大量的經(jīng)驗,日積月累的總結(jié),最終形成了一套理論。人們在思考如何去自動完成人工早先去完成的任務(wù)和操作,于是出現(xiàn)了“控制”一詞。人類早期的自動控制裝置及控制理論,如人們發(fā)明了浮子、用漏壺漏沙去
32、計時等;后來慢慢就出現(xiàn)了經(jīng)典控制理論學(xué)說,開始使用數(shù)學(xué)方法如拉式變換、微分方程、傳遞函數(shù)、描述函數(shù)、根軌跡法等去分析;再后來出現(xiàn)了計算機(jī),計算機(jī)的出現(xiàn),使控制的發(fā)展進(jìn)入了一個高速發(fā)展的時代;進(jìn)而后來又出現(xiàn)了現(xiàn)代控制理論,不但可以分析連續(xù)的,同樣離散的分析也成為了可能;到如今,控制學(xué)說已經(jīng)發(fā)展到了智能控制的階段。1.2.2 DCS與FCS現(xiàn)狀談到工業(yè)控制系統(tǒng)的發(fā)展歷程,大致經(jīng)過了以下發(fā)展階段:模擬儀表控制系統(tǒng),集中式數(shù)字控制系統(tǒng),PLC可編程序控制器系統(tǒng),DCS分散控制系統(tǒng),F(xiàn)CS現(xiàn)場總線控制系統(tǒng);FCS現(xiàn)場總線控制系統(tǒng)兼?zhèn)淞薖LC與DCS的特性,F(xiàn)CS是以DCS為基礎(chǔ)發(fā)展而來的,F(xiàn)CS更加適應(yīng)
33、了現(xiàn)代控制系統(tǒng)發(fā)展的趨勢。FCS是數(shù)字式的總線結(jié)構(gòu),互操作性、互換性和開放性都更強(qiáng),控制有徹底的分散性,信息綜合能力強(qiáng),組態(tài)也更加趨于靈活,并且開發(fā)應(yīng)用成本成本更低。在有關(guān)書籍和互聯(lián)網(wǎng)上查詢:目前針對分散控制系統(tǒng)(DCS)的技術(shù)己經(jīng)較為成熟,美國、德國的一些研發(fā)機(jī)構(gòu)已提供完整的虛擬DCS軟件包。但是針對現(xiàn)場總線及其控制系統(tǒng)在國內(nèi)外的研究還很少涉及,而介紹其核心技術(shù)方面的文獻(xiàn)更是鳳毛麟角。新一代控制系統(tǒng)FCS因現(xiàn)場總線技術(shù)而產(chǎn)生,是當(dāng)前的熱門技術(shù)和發(fā)展方向?,F(xiàn)場總線是一種全數(shù)字、串行、雙向通信協(xié)議,用于現(xiàn)場設(shè)備如變送器、控制閥和執(zhí)行器等的互連。使用有現(xiàn)場總線通信能力的智能現(xiàn)場設(shè)備是現(xiàn)場總線系統(tǒng)的
34、本質(zhì)特征。在各類型的現(xiàn)場總線中,基金會現(xiàn)場總線(FF)以其技術(shù)先進(jìn)、屬下會員實力強(qiáng)大成為非常有競爭力的一種總線技術(shù)。在一定程度上說,使用基金會現(xiàn)場總線技術(shù)就是熟練地使用功能塊。但此功能塊是一個獨立的應(yīng)用體系,十分完備和復(fù)雜,每個功能塊都有數(shù)十種參數(shù)可以組態(tài)。然而,由于現(xiàn)場總線通信協(xié)議和系統(tǒng)結(jié)構(gòu)很復(fù)雜,人們對其認(rèn)識不足,這一技術(shù)的發(fā)展比較滯后。隨著現(xiàn)場總線技術(shù)的不斷發(fā)展,相關(guān)研究制造人員需要加深理解,引導(dǎo)開發(fā)和形成使用產(chǎn)品的條件,開拓應(yīng)用市場。因此,此次面向?qū)ο缶幊淘谶^程控制功能塊開發(fā)中的應(yīng)用研究非常重要。根據(jù)OOP的原理特點,基于高級C+語言,實現(xiàn)OOP技術(shù),了解控制系統(tǒng)的發(fā)展歷程和目前普遍應(yīng)
35、用的FCS控制系統(tǒng)的特點,應(yīng)用OOP方法設(shè)計功能塊,完成面向?qū)ο蟮膶崿F(xiàn)工作。因此,在批判地借鑒國內(nèi)外同行新技術(shù)的基礎(chǔ)上,研究開發(fā)具有完全自主知識產(chǎn)權(quán)的技術(shù),具有長遠(yuǎn)的現(xiàn)實意義。1.2.3 面向?qū)ο蠹夹g(shù)的發(fā)展在當(dāng)今軟件設(shè)計開發(fā)界,面向?qū)ο缶幊痰乃枷胍呀?jīng)占據(jù)了最重要的地位?;仡?0世紀(jì)90年代,面向?qū)ο蟮脑O(shè)計方法風(fēng)靡了整個計算機(jī)界。面向?qū)ο蟮脑O(shè)計不僅僅簡單是編程,其實更準(zhǔn)確地說是一種思想,這種思想被我們用在社會的各個領(lǐng)域:圖形設(shè)計、系統(tǒng)建模、多媒體行業(yè)等。必須承認(rèn),面向?qū)ο蟮乃枷氤霈F(xiàn),對社會各行各業(yè)解決問題都提供了一個新的更廣更便捷的思路,也對人們的思維產(chǎn)生了巨大影響。隨著我們對面向?qū)ο缶幊趟枷氲?/p>
36、不斷理解與深入,我們用此思想去解決的問題也越來越豐富,我們也開始逐漸去完善去思考它的優(yōu)勢與不足,使面向?qū)ο蠹夹g(shù)和思想越來越成熟,越來越完善。1.3 本章小結(jié)在此章節(jié)里,主要介紹了選題的背景及發(fā)展現(xiàn)狀、面向?qū)ο蟮南嚓P(guān)概念、OOP技術(shù)的發(fā)展和歷史以及現(xiàn)在的應(yīng)用,了解了控制系統(tǒng)和DCS、FCS以及面向?qū)ο笏枷氚l(fā)展的歷程與現(xiàn)狀。重點是在C+語言里應(yīng)用OOP技術(shù),本章就為用OOD設(shè)計出需要的功能塊做好鋪墊與準(zhǔn)備。第2章 功能塊的概念和結(jié)構(gòu)2.1 功能塊及參數(shù)的概念功能塊其實也是一種編程語言,和形成代碼不同的是,它是一種圖形化的編程語言,被形象得比喻為“軟件的集成電路”。正因為有了功能塊,以前有很多只能是
37、在實驗室特定的環(huán)境條件下才能演算的控制過程,現(xiàn)在可以放到FCS儀表中實現(xiàn)。所以說功能塊為實現(xiàn)完整的分布式控制提供了一個重要的手段。輸入、輸出和內(nèi)部控制參數(shù)構(gòu)成了功能塊。一套特定的算法,以輸入?yún)?shù)為基礎(chǔ),產(chǎn)生了輸出參數(shù),以供系統(tǒng)或其他功能塊利用,實現(xiàn)應(yīng)用程序系統(tǒng)的控制功能。在一個龐大的控制系統(tǒng)里,功能塊就像一顆顆原子一樣,正是這些原子級的功能塊最終形成了控制系統(tǒng)。輸入?yún)?shù)、輸出參數(shù)、用于對外數(shù)據(jù)接口的輸入輸出參數(shù)是功能塊的三種基本參數(shù)。同時,還包括,數(shù)據(jù)輸入端口、事件輸入端口、所述事件數(shù)據(jù)輸出端口。類比于單元組合儀表系統(tǒng),里面有一個個單元儀表,每塊表都顯示著自己承擔(dān)的自動控制功能。而每個功能塊都
38、在內(nèi)部根據(jù)算法設(shè)置了特定控制去管理輸入輸出參數(shù),也便于和其它功能塊連接實現(xiàn)復(fù)雜的系統(tǒng)功能。也有說法把功能塊稱為“軟儀表”。功能塊的基本模型如下圖:輸入?yún)?shù)輸出參數(shù)事件輸出事件輸入執(zhí)行控制輸出獲取輸入獲取處理算法功能塊控制內(nèi)含參數(shù)圖2-1 功能塊基本模型圖在一個控制系統(tǒng)里,如此多的功能塊是怎么識別的呢?是通過“位號(Tag:最多32個可視字符串)一個數(shù)字索引”識別的。既然是識別,所以Tag和數(shù)字索引在同一個控制系統(tǒng)里是獨一無二的。數(shù)字索引雖然簡短,但對功能塊的訪問可謂是得到了大大優(yōu)化。網(wǎng)絡(luò)是可以訪問輸入、輸出參數(shù)的,并且可以相互連接起來。網(wǎng)絡(luò)同樣可以訪問控制參數(shù),但控制參數(shù)卻不能和其它的功能塊相
39、互連接使用。塊的類型和控制參數(shù)加在一起確定了功能塊的算法是什么樣的。四個無符號整數(shù)字節(jié)組成了每個參數(shù)的名字。參數(shù)的名字在一個功能塊內(nèi)是唯一的。我們用“功能塊位號.參數(shù)的名字”來表達(dá),即“Tag.Parameter”。用此結(jié)構(gòu)可以得到參數(shù)的索引?,F(xiàn)場總線網(wǎng)絡(luò)信息交換有兩個層次:背景通信(操作員站和功能塊應(yīng)用信息交換)和運行通信(為功能塊連接的實時通信),其中,運行通信的級別更高。2.2 功能塊的原理及特點用到的輸入?yún)?shù)需要保持一致,所以在運行過程中,功能塊對輸入?yún)?shù)、輸出參數(shù)都使用了鎖存的方式,在執(zhí)行過程結(jié)束后,輸出參數(shù)才會被更新。在一整套控制系統(tǒng)中,有許多功能塊,為了實現(xiàn)預(yù)定的不同功能,它們內(nèi)
40、部各自被賦予了不同的算法和參數(shù)。但方便的一點是,外部鏈接的一般結(jié)構(gòu)多數(shù)情況下是通用的。上游功能塊會產(chǎn)生輸出參數(shù),下游功能塊的輸入?yún)?shù)會和其相連接,從中“提取”需要的數(shù)據(jù)。這種連接的范圍比較廣,相同功能塊內(nèi)以及不同塊中都可應(yīng)用,相同設(shè)備以及不同設(shè)備間都可以實現(xiàn)連接。功能塊中的參數(shù)被根據(jù)調(diào)用目的分為了4類“視圖(view)”:動態(tài)操作數(shù)據(jù)(view1)、靜態(tài)操作數(shù)據(jù)(view2)、所有動態(tài)數(shù)據(jù)(view3)以及其它靜態(tài)數(shù)據(jù)(view4)。控制參數(shù)(也稱包含參數(shù))由計算機(jī)站等上位設(shè)備設(shè)定、組態(tài)或者計算。但要注意的是,這些控制參數(shù)不能與其它的輸入、輸出參數(shù)連接使用。把輸入?yún)?shù)送入算法中,根據(jù)功能塊的模
41、式進(jìn)行調(diào)整。一個輸出參數(shù)可以和許多功能塊中的輸入?yún)?shù)相連接供使用。很多時候,同一個輸出參數(shù)的值不一定從一個塊外部的來源得到,而是由塊的內(nèi)部算法得到。使用者不用去管功能模塊中的算法是如何具體實現(xiàn)的,這樣的特點也使不同功能塊之間的連接變得簡單,塊中算法的更新改進(jìn)也很方便。當(dāng)不同的操作者或者廠家需要某些功能而混合配置功能塊時,調(diào)用過程也極其省時省力。功能塊的通用結(jié)構(gòu)特點使傳遞成為了可能。下一級功能塊輸出可以直接由上一級功能塊輸入連接而來,這樣,功能塊的參數(shù)和功能傳遞過程就可以輕松完成。顧名思義,就是兩個不同的功能塊之間相互連接,搭建完整的控制回路,最終實現(xiàn)復(fù)雜自動化系統(tǒng)控制。標(biāo)準(zhǔn)的功能塊有功能不可分
42、割、應(yīng)用靈活、互操作性等特點。在邏輯操作、處理軟件中,功能塊是最基本的單位,而數(shù)據(jù)結(jié)構(gòu)是功能塊的絕對核心。為了實現(xiàn)最終復(fù)雜的自動控制系統(tǒng),修改嵌入式功能塊的控制算法可以改變這些參數(shù)。在某些情況下,輸入?yún)?shù)和輸出參數(shù)也可隨時在線修改。用很多應(yīng)用軟件里提供的工具可以去完成需要的任務(wù)過程,我們可以靈活根據(jù)自己的需要去任意組態(tài),選擇不同設(shè)備完成控制任務(wù)。用戶提出需求,系統(tǒng)配置信息,分步統(tǒng)一控制各個功能塊。這樣,邏輯上說實現(xiàn)了橫向整合,分立器件。同一個現(xiàn)場設(shè)備,包含了不同功能塊中相同裝置。應(yīng)用OOP技術(shù),功能塊獨立性很高,但是隨著接口的統(tǒng)一,F(xiàn)F協(xié)議棧使模塊和系統(tǒng)之間可以交流信息,這樣,功能塊就又有了很
43、強(qiáng)的互換性和互操作性。2.3 功能塊分類2.3.1 輸入功能塊基金會現(xiàn)場總線(FF)有很多種輸入功能塊:最常用的是模擬量輸入功能塊AI,它可以通過內(nèi)部通道,由轉(zhuǎn)換塊中取得液位、重量、熱量、流量等模擬過程變量,并完成通道內(nèi)一系列功能,并且把輸出供別的功能塊利用。另外還有多通道模擬量輸入功能塊MAI、開關(guān)量輸入功能塊DI、脈沖量輸入功能塊PUL和多通道開關(guān)量輸入功能塊MDI。2.3.2 輸出功能塊同樣,基金會現(xiàn)場總線(FF)也具有很多種輸出功能塊:我們比較熟知的是模擬量輸出功能塊AO,它的主要作用是將上級PID塊等功能塊的演算結(jié)果由內(nèi)部通道傳遞給轉(zhuǎn)換塊,并完成限幅等功能。其它的有模擬量輸出功能塊A
44、O、多通道模擬量輸出功能塊MAO、開關(guān)量輸出功能塊AO、多通道開關(guān)量輸出功能塊MDO和步進(jìn)PID輸出功能塊STEP。2.3.3 控制功能塊常規(guī)PID控制算法功能塊PID、增強(qiáng)PID控制算法功能塊EPID和先進(jìn)PID控制算法功能塊APID是基金會現(xiàn)場總線(FF)幾種常見的控制功能塊。常規(guī)PID控制算法功能塊PID是得到指令后才動作的,它需要其它功能塊的輸入。動作以后會產(chǎn)生相應(yīng)相關(guān)的數(shù)值,因為輸出參數(shù)的存在,得出的數(shù)值得以傳遞給控制系統(tǒng)里的其它功能塊。為了防止積分飽和現(xiàn)象的出現(xiàn),也為了給系統(tǒng)動作提供無擾切換,PID功能塊有邏輯和輸入?yún)?shù),并且利用下級功能塊的信息。與此同時, 反向計算輸出參數(shù),通過
45、反向計算輸入?yún)?shù),這些在PID功能塊里都是支持的,這樣就可以很輕易掌握下級功能塊的狀態(tài)。當(dāng)處理通路一打開,PID功能塊就會去允許執(zhí)行相應(yīng)的操作。2.3.4 計算功能塊FF有多種計算功能塊,在這其中,比較主要的有ARTH-計算功能塊、LLAG-超前/滯后補(bǔ)償功能塊、CHAR-信號曲線功能塊、DT-時間盲區(qū)功能塊、ML-手動加載功能塊、TIME-定值器和邏輯功能塊、SPLT-輸出分程功能塊、B/G-偏置/增益功能塊、SPG-設(shè)定值程序發(fā)生功能塊、RATO-比率功能塊、OS-DL-動態(tài)限幅和輸出選擇功能塊、CT-常數(shù)功能塊、AALM-模擬報警功能塊、ISEL-輸入選擇功能塊、AEQU-先進(jìn)函數(shù)功能塊
46、、INTG-累積計算功能塊等。計算功能塊有一個特點,它們是隨著其它功能塊的輸入而執(zhí)行操作的,并產(chǎn)生計算參數(shù),并且還可以作為輸出參數(shù)傳遞給其它的功能塊使用。2.4 功能塊執(zhí)行過程功能塊在它的工作執(zhí)行過程中,大致可以分為三步:1.進(jìn)行預(yù)先處理,并把參數(shù)隔離開來;2.執(zhí)行算法操作,確定好輸出參數(shù)數(shù)據(jù);3.待過程進(jìn)行完畢后再次處理,把功能塊中的相關(guān)輸出參數(shù)進(jìn)行更新,報警等。在功能塊的整個運行工作過程中,有一點是關(guān)鍵必須保證所用的輸入?yún)?shù)恒定,不可有絲毫的任意改變。以此類推,由這個功能塊傳遞給其它功能塊的輸出參數(shù)也必須是相同的。所以在進(jìn)行第一步的預(yù)先處理時,必須是要把參數(shù)隔離開來的。只有這樣做,在過程進(jìn)
47、行完畢后,功能塊中的相關(guān)輸出參數(shù)才能被進(jìn)行更新。所以可以總結(jié)出在執(zhí)行算法操作的階段里,有如下幾個步驟:1.明確在模式(mode)參數(shù)中的實際模式值;2.通過特定算法計算出設(shè)定值(SP)以及工作點;3.進(jìn)行既定算法操作,確定前饋輸出參數(shù)的數(shù)值和模式狀態(tài);4.最后要計算得出反饋的輸出參數(shù)數(shù)值和模式狀態(tài)。FF中的功能塊可以為系統(tǒng)提供控制操作行為,輸入和輸出參數(shù)是由現(xiàn)場總線進(jìn)行鏈接的。在整個控制系統(tǒng)里,每個功能塊的操作進(jìn)行都受調(diào)度于系統(tǒng),并且管理精確。操作執(zhí)行是遵循周期性調(diào)度或者是由時間驅(qū)動著的。功能塊提供了“功能”,各種參數(shù)實現(xiàn)了跨越現(xiàn)場總線無縫鏈接。復(fù)雜的程序就是由一個一個的功能塊“搭積木”形成最
48、終控制功能的。2.5 功能塊組態(tài)功能塊組態(tài)是指把現(xiàn)場總線儀表中的功能塊連接設(shè)定,完成的職責(zé)步驟:首先在應(yīng)用軟件的選擇操作畫面上選定需要執(zhí)行連接操作的現(xiàn)場總線設(shè)備;為了區(qū)分所選出的現(xiàn)場總線設(shè)備,操作人員要給所選的每臺設(shè)備設(shè)定位號;根據(jù)需要去實現(xiàn)的功能,去找設(shè)備的功能表,尋找出合適的功能塊并選定;根據(jù)接口接線規(guī)則,把選定的功能塊進(jìn)行正確連接;再根據(jù)應(yīng)用的要求,給每個選出連接的功能塊設(shè)定特征參數(shù);最后按照一定的位號順序,給選出的現(xiàn)場設(shè)備錄入功能塊組態(tài)相關(guān)信息。組態(tài)不一定是在線的,離線同樣也可以。功能塊的連接方法可以內(nèi)部可以外部,內(nèi)部外部的區(qū)別就在于是和同一個現(xiàn)場設(shè)備功能塊還是不同現(xiàn)場設(shè)備功能塊之間的
49、連接。一般來說,內(nèi)部連接是更好的策略,因為可以大大壓縮控制掃描時間。下圖是常見的串級控制功能塊組態(tài):圖2-2 常見的串級控制功能塊組態(tài)圖說明:圖中的方框就被我們用來替代現(xiàn)場的總線儀表,那么從下到上的三個方框為FP302(現(xiàn)場總線氣壓轉(zhuǎn)換器) 、LD302(現(xiàn)場總線差壓變送器)和TT302(現(xiàn)場總線溫度變送器),小橢圓就是“軟儀表”。模擬輸入功能塊很重要,它通過存在于控制系統(tǒng)內(nèi)部的通道接到系統(tǒng)的主被控量-溫度,輸出OUT并且連接到主PID功能塊的輸入端IN,系統(tǒng)的副被控量是蒸汽流量,蒸汽流量是由AI(模擬輸入功能塊)通過存在于控制系統(tǒng)內(nèi)部的通道接收的,它輸出OUT連接到副PID功能塊的輸入端IN
50、,主PID功能塊輸出OUT連接到副PID功能塊的設(shè)定值輸入端CAS-IN,副PID功能塊的輸出端OUT連接到AO功能塊的輸入端CAS-IN。這個連接方式我們稱作正向連接,顧名思義,就是把上級功能塊的輸出端和下級功能塊的輸入端相連接;那么相反的連接方式就是反向連接。就像圖中的AO功能塊的輸出端BKCAL-OUT和副PID功能塊的輸入端BKCAL-IN連接起來,副PID功能塊的輸出端BKCAL-OUT又接到主PID功能塊的輸入端BKCAL-IN。2.6 本章小節(jié)本章節(jié)介紹了功能塊及參數(shù)的概念、功能塊的原理、特點、分類、執(zhí)行過程和組態(tài),這些有助于我們更深刻地理解功能塊及它的應(yīng)用。輸入、輸出和內(nèi)部控制
51、參數(shù)構(gòu)成了功能塊。參數(shù)都應(yīng)用了鎖存的方式,不可分割、靈活多變并且可以互相操作。隨著控制系統(tǒng)的不斷發(fā)展變化,現(xiàn)場總線技術(shù)已經(jīng)逐漸占領(lǐng)了自動控制領(lǐng)域。而現(xiàn)場總線的實現(xiàn)要依靠一個個的功能塊,正是千千萬萬的功能塊為現(xiàn)場總線技術(shù)提供了強(qiáng)大載體,想要更好實現(xiàn)現(xiàn)場總線控制系統(tǒng)技術(shù),首先要從功能塊的組態(tài)學(xué)起。FF的功能塊就是路基,等到熟悉了解了FF功能塊的組態(tài),才有可能能依據(jù)對象的特性和所需功能,去自如選擇合適的控制策略,最終實現(xiàn)復(fù)雜控制系統(tǒng)的搭建。第3章 基于OOD方法的過程控制功能塊的設(shè)計3.1 OOD的有關(guān)概念3.1.1 什么是OOD面向?qū)ο笤O(shè)計(Object-Oriented Design,OOD),
52、顧名思義,就是編程者利用面向?qū)ο蟮乃枷敕椒ㄟM(jìn)行設(shè)計。準(zhǔn)確地說,OOD屬于一種設(shè)計的方法,也屬于OO這個大方法中間的重要過渡環(huán)節(jié)。OOD的出現(xiàn),讓程序員可以從抽象的角度去改變軟件設(shè)計中模式的問題。應(yīng)用OOD方法,我們用對象和類去代表生活中著著實實存在的物理問題,對象和類中的參數(shù)特點就正是所代表事物自己的狀態(tài)行為。OOD當(dāng)中包括許多概念,對象、類、繼承、域、過程、子類、子系統(tǒng)等。OOD的抽象范式,使我們在處理具體問題時,把之間不同但卻又互相有關(guān)系的對象一起構(gòu)成抽象,有某些相似性的對象和類,我們最終就可以當(dāng)成同一對象和類去處理。3.1.2 OOD的特點OOD方法是以對象為基礎(chǔ),應(yīng)用特定的編程軟件直接
53、用定義的對象和類去代表生活中的實際對象,以對象作為分析的基礎(chǔ),結(jié)構(gòu)化分析不再能制約我們的開發(fā)。我們不但可以封裝,還可以根據(jù)它繼承性的這一特點進(jìn)行復(fù)用。以前我們只能把自己當(dāng)成機(jī)器去看生活中遇到的問題,而有了OOD我們定義了對象和類,直接站在問題本身上去看實際問題,因此很多以前需要多次繁雜轉(zhuǎn)換的思維不再需要,這樣就大大縮減軟件程序的開發(fā)周期。因此說OOD非常全面地把面向?qū)ο蠓椒ㄋ枷氲母拍?、?yōu)勢體現(xiàn)了出來,我覺得這是OOD方法最大的特點以及優(yōu)勢。另外,OOD中的絕大部分系統(tǒng)模型可以不僅僅用一種編程語言去實現(xiàn),可以實現(xiàn)多種語言并存。OOA的模型給OOD提供了基礎(chǔ)思想,根據(jù)OO的原則與指導(dǎo),參考周圍具體
54、的現(xiàn)實條件去設(shè)計程序系統(tǒng)。OOD設(shè)計出的模型的核心部分是問題域部分,這個核心部分對于實現(xiàn)最終功能的要求有三個主要方面。對于三個主要方面的外圍我們要加以完善,盡最大努力去免除實際條件對OOD模型核心的影響,這樣才有利于最終建立完整理想的OOD模型。3.1.3 OOD的基本思想圖3-1 OOD基本思想模塊圖3.1.4 OOA、OOD以及OOP之間的關(guān)系OOA、OOD所采用的概念、原則以及表示方法都是完全一致的,只是在軟件開發(fā)的周期中,它們屬于不同的階段,分析手段、實現(xiàn)的目標(biāo)以及采用的策略有差異。利用OOA分析建立模型后,以此為基礎(chǔ),應(yīng)用OOD將它們設(shè)計成比較符合現(xiàn)實條件的OOD模型。有了OOD模型
55、,可以作為圖紙,指導(dǎo)給OOP進(jìn)行編程具體實現(xiàn)需要的功能程序。由此分析不難看出,OOD是OOA和OOP之間的橋梁,分析OOA并整理,使OOP可以直觀“理解”并實現(xiàn)。3.2 OOD的主要工作和過程 OOD進(jìn)行設(shè)計是以O(shè)OA分析作為它的基礎(chǔ),從問題本身的角度出發(fā),由問題域類比,映射出程序中的域和對象(類),對結(jié)構(gòu)屬性性能等進(jìn)行相應(yīng)的調(diào)節(jié),最終滿足客戶的需求。OOD可以很好地處理程序里各部分塊的關(guān)系,在建模編程前,需要進(jìn)行認(rèn)真分析,弄清楚需求和功能。OOD設(shè)計過程中,要將系統(tǒng)組件,搞好結(jié)構(gòu)分析,把功能分成塊,使每個“小塊”可以直接操作管理,每一個塊通過“接口”進(jìn)行連接和交流。比如服務(wù)器和客
56、戶端看起來并沒有那么直接的關(guān)系,因為它們是通過接口相連的。同樣,因為復(fù)用性,遇到其它現(xiàn)實問題的時候可以復(fù)用此程序塊,只是把需要的必須接口實現(xiàn)即可。設(shè)計OOD模型大致包括四個大的部分:問題域、數(shù)據(jù)接口、人機(jī)交互、控制驅(qū)動。這四個部分沒有主次之分,也沒有次序之說。每個部分的屬性以及用的概念和表達(dá)方式都和OOA一致,只是不同的部分有自己特殊的使用方法。OOD的過程可以根據(jù)不同實際問題進(jìn)行微調(diào),但大致是:以實際問題中的事物為基礎(chǔ)構(gòu)建抽象角度的對象和類通過具體的編程語言讓客戶可以識別建造的對象和類弄清楚對象和類標(biāo)識之間繼承、復(fù)用等關(guān)系最終實現(xiàn)對象和類的理想模型。3.2.1 問題域部分的設(shè)計不論采用哪種O
57、OD過程方法,問題域部分設(shè)計都是我們必須要去做的工作。主要實現(xiàn)的目的是對OOA分析后的結(jié)果改進(jìn)凈化,然后在編程應(yīng)用程序中根據(jù)提出的問題域設(shè)計出實際域(也就是所說的解域)。具體如下:1.對象和類:在進(jìn)行OOA分析階段時,分析員會設(shè)計很多對分析有便利的對象和類,這些類在進(jìn)行到OOD設(shè)計階段時很多就成為了多余,這時就必須進(jìn)行刪除,否則會對后期的工作造成很大干擾。當(dāng)然,不只是刪除,設(shè)計階段也會出現(xiàn)新的需求,也需要根據(jù)情況再設(shè)計出一些對象和類;2.對象(類)的行為:對象和類之間都有互相交流傳遞的信息,如算法等,根據(jù)我們設(shè)定建模的過程,對于這些信息發(fā)送的時間順序和時間節(jié)點,都需要掌握清楚,這樣在設(shè)計算法時,才可以清楚流暢,方便省時;3.屬性:與對象和類操作過程相似,在進(jìn)行OOA分析階段時,分析員會設(shè)計很多對分析有便利的屬性,這些屬性在進(jìn)行到OOD設(shè)計階段時很多就成為了多余,這時就必須進(jìn)行刪除,否則會對后期的工作造成很大干擾。當(dāng)然,不只是刪除,設(shè)計階段也會出現(xiàn)新的需求,也需要根據(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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 土木工程結(jié)構(gòu)設(shè)計與施工考核試題
- 居民老舊供水管網(wǎng)改造工程可行性研究報告
- 光伏單晶組件項目實施方案(范文)
- 生理學(xué)知識點深度剖析
- Python網(wǎng)絡(luò)爬蟲與信息抓取技能考查
- 學(xué)生自我評價與教師反饋相結(jié)合的實踐路徑
- 小螞蟻歷險記寫物作文(11篇)
- 無人機(jī)與自動化設(shè)備在農(nóng)業(yè)中的角色
- 農(nóng)業(yè)綜合開發(fā)項目管理實施協(xié)議
- 人工智能產(chǎn)業(yè)發(fā)展進(jìn)度表
- 校園足球教師培訓(xùn)
- 手機(jī)號碼歸屬地數(shù)據(jù)庫
- 網(wǎng)絡(luò)信息安全的教育與培訓(xùn)
- 顱骨缺損的護(hù)理課件
- 《心理旋轉(zhuǎn)實驗》課件
- 公司食堂飯菜不足應(yīng)急預(yù)案
- 2023年云南省社會科學(xué)院中國(昆明)南亞東南亞研究院招聘高層次人才7人筆試參考題庫(共500題)答案詳解版
- 浙江省高等學(xué)校畢業(yè)生登記表
- 灌注樁后注漿施工記錄
- 《我和我的同學(xué)》的主題班會
- 高中生知識搶答競賽題
評論
0/150
提交評論