面向?qū)ο蠓椒ㄔ谄嚺欧艤y(cè)試系統(tǒng)軟件開發(fā)中的應(yīng)用
面向對(duì)象的程序設(shè)計(jì)方法是九十年代以來最重要的軟件設(shè)計(jì)方法。汽車排放測(cè)試系統(tǒng)是基于底盤測(cè)功機(jī)、排放分析儀、數(shù)據(jù)采集卡等外圍硬件設(shè)備,依照國(guó)家排放法規(guī)和生產(chǎn)研究的要求完成各類汽車排放試驗(yàn)數(shù)據(jù)采集和處理的計(jì)算機(jī)系統(tǒng)。由于系統(tǒng)要同外圍設(shè)備交互,試驗(yàn)項(xiàng)目多且用戶要求復(fù)雜,采用傳統(tǒng)的基于功能分解的軟件設(shè)計(jì)方法使得軟件開發(fā)及調(diào)試十分困難,軟件的可靠性差,并且隨著硬件設(shè)備的變化、試驗(yàn)項(xiàng)目增加以及用戶要求的變化,很難在原有系統(tǒng)上進(jìn)行擴(kuò)充。面向對(duì)象方法按照人們正常的思維習(xí)慣建立問題域模型,軟件設(shè)計(jì)自然地表現(xiàn)問題域求解方法,抽象數(shù)據(jù)類型、數(shù)據(jù)封裝以及繼承等特點(diǎn)使得軟件體系結(jié)構(gòu)穩(wěn)定、可重用性好、便于維護(hù)和擴(kuò)充,可大大提高軟件的開發(fā)效率。
本文引用地址:http://www.ex-cimer.com/article/197914.htm1 汽車排放測(cè)試系統(tǒng)的硬件結(jié)構(gòu)及軟件需求
汽車排放測(cè)試系統(tǒng)總體結(jié)構(gòu)如圖1所示。輸入信號(hào)中,大氣壓、干溫、濕溫、催化器前后溫度及壓力等信號(hào)來自于傳感器,車速、距離脈沖來自于轉(zhuǎn)鼓試驗(yàn)臺(tái),司機(jī)開始信號(hào)來自于遙控器。信號(hào)調(diào)理單元將這些信號(hào)轉(zhuǎn)換成計(jì)算機(jī)接口能夠接收的標(biāo)準(zhǔn)信號(hào),主計(jì)算機(jī)通過A/D、DI/O接口卡對(duì)這些信號(hào)進(jìn)行采集。主計(jì)算機(jī)通過GPIB接口卡與定容采樣裝置和排放分析儀通訊,讀取數(shù)據(jù)并且按照試驗(yàn)流程控制這些設(shè)備。主計(jì)算機(jī)通過一塊圖形加速卡控制司機(jī)助顯示器的工況曲線顯示。軟件需求如下:
(1)依照排放法規(guī)和生產(chǎn)研究的要求能夠?qū)崿F(xiàn)CVS試驗(yàn)、模態(tài)試驗(yàn)、催化器轉(zhuǎn)化效率試驗(yàn)的流程控制。試驗(yàn)過程中系統(tǒng)要完成初始參數(shù)設(shè)定、數(shù)據(jù)采集、設(shè)備控制、顯示監(jiān)測(cè)界面等任務(wù),并將測(cè)量結(jié)果寫入磁盤文件。
(2)按照用戶要求實(shí)現(xiàn)試驗(yàn)數(shù)據(jù)表格和曲線的打印輸出,包括CVS結(jié)果表格、模態(tài)試驗(yàn)按工況和循環(huán)統(tǒng)計(jì)結(jié)果表格、排放污染物濃度曲線、催化器前后溫度及壓力曲線、催化器前后污染物濃度曲線等。
(3)試驗(yàn)開始前對(duì)采集卡、排放分析儀等硬件設(shè)備進(jìn)行檢查,若設(shè)備不正常則提示用戶并停止試驗(yàn)。
(4)A/D輸入通道可進(jìn)行標(biāo)定。
2 面向對(duì)象分析
抽象數(shù)據(jù)類型是面向?qū)ο蟪绦蛟O(shè)計(jì)的中心概念之一,一個(gè)面向?qū)ο筌浖到y(tǒng)的結(jié)構(gòu)框架及高層設(shè)計(jì)最終表現(xiàn)為一系列類、它們的定義和對(duì)象。類是一個(gè)抽象的數(shù)據(jù)類型,它的定義包括一組屬性數(shù)據(jù)和在屬性數(shù)據(jù)上的一組操作,通過類的界面對(duì)外提供服務(wù),對(duì)象是類的實(shí)例,對(duì)應(yīng)于問題域中的實(shí)體。面向?qū)ο蠓治鲞^程標(biāo)識(shí)問題域中的實(shí)體,確定這些實(shí)體之間的關(guān)系,這一階段產(chǎn)生描述系統(tǒng)功能和問題域基本特征的綜合文檔。汽車排放測(cè)試系統(tǒng)中的對(duì)象如圖2所示。
“排放分析儀”對(duì)象封裝了分析儀的操作;“I/O接口卡”封裝了A/D接口卡和DI/O接口卡的輸入及輸出操作;“司機(jī)助”對(duì)象實(shí)現(xiàn)司機(jī)助顯示器工況曲線的顯示;“測(cè)試設(shè)備”對(duì)象封裝了排放測(cè)試系統(tǒng)中的硬件設(shè)備操作。為“排放試驗(yàn)”對(duì)象提供服務(wù);“排放試驗(yàn)”對(duì)象封裝了試驗(yàn)流程,將測(cè)量結(jié)果存入磁盤文件;“數(shù)據(jù)文件”對(duì)象讀取文件,實(shí)現(xiàn)數(shù)據(jù)表格及曲線的打印輸出。
排放測(cè)試系統(tǒng)的硬件設(shè)備可能選用不同類型的分析儀,如HORIBA公司的MEXA_9000或AVL公司的CEB_x00,也可能選用不同類型的I/O接口卡,如中泰公司的PC_6313或研華公司的PCL_812,根據(jù)用戶的要求也可能增加新的試驗(yàn)項(xiàng)目。在面向?qū)ο蠓椒ㄖ?繼承是使用現(xiàn)存類作為基礎(chǔ)建立新類的技術(shù),新類復(fù)用現(xiàn)存類的定義,并且可增加新的屬性及操作。對(duì)象間通過消息進(jìn)行通訊,消息是對(duì)操作的實(shí)際調(diào)用,其中“發(fā)送者”向“接收者”發(fā)送一個(gè)消息,以實(shí)現(xiàn)某些處理功能。排放測(cè)試系統(tǒng)中對(duì)象之間的關(guān)系如圖3所示。
圖中三角形表示整體與部分結(jié)構(gòu),半圓形表示一般與特殊結(jié)構(gòu),實(shí)線箭頭表示消息連接。“測(cè)試設(shè)備”對(duì)象由“排放分析儀”、“數(shù)據(jù)采集卡”和“司機(jī)助”三個(gè)對(duì)象組成,“排放分析儀”、“數(shù)據(jù)采集卡”、“試驗(yàn)”和“數(shù)據(jù)文件”作為基類可派生出不同的子類,“試驗(yàn)”對(duì)象向“測(cè)試設(shè)備”對(duì)象發(fā)送消息實(shí)現(xiàn)數(shù)據(jù)采集、分析儀控制和司機(jī)助顯示等功能。
由對(duì)象關(guān)系圖可以看到,面向?qū)ο蠹夹g(shù)將軟件結(jié)構(gòu)建立在與問題域中實(shí)體對(duì)應(yīng)的對(duì)象上,軟件的功能分散到對(duì)象中間,由于對(duì)象相對(duì)穩(wěn)定,軟件的修改主要集中于封裝在對(duì)象內(nèi)部的屬性和操作上而不影響軟件的體系結(jié)構(gòu)。這種修改的局部化保持了軟件結(jié)構(gòu)的穩(wěn)定性,減少了軟件修改的工作量和難度。
3 高層設(shè)計(jì)
面向?qū)ο蠓治鲞^程標(biāo)識(shí)的對(duì)象以及它們之間的關(guān)系構(gòu)成了問題域模型,高層設(shè)計(jì)階段開發(fā)系統(tǒng)的結(jié)構(gòu),構(gòu)造應(yīng)用軟件的總體模型。對(duì)象封裝了問題域內(nèi)特定的的功能實(shí)現(xiàn),并通過界面對(duì)外提供服務(wù)。而應(yīng)用程序相當(dāng)于一個(gè)驅(qū)動(dòng)模塊,負(fù)責(zé)建立類的實(shí)例(對(duì)象),接收用戶輸入并發(fā)送消息給對(duì)象實(shí)現(xiàn)功能調(diào)用。汽車排放測(cè)試系統(tǒng)的應(yīng)用程序結(jié)構(gòu)如圖4所示。系統(tǒng)劃分為三個(gè)處理功能:系統(tǒng)維護(hù)、排放試驗(yàn)和數(shù)據(jù)處理。“系統(tǒng)維護(hù)”功能包括分析儀總精度檢查和通道標(biāo)定,“排放試驗(yàn)”按照用戶選定的試驗(yàn)類別完成試驗(yàn)流程,“數(shù)據(jù)處理”功能根據(jù)用戶載入的數(shù)據(jù)文件完成打印輸出。用戶選擇某一功能時(shí),應(yīng)用程序發(fā)送消息給相應(yīng)的對(duì)象,圖4中箭頭表示消息的發(fā)送。
4 面向?qū)ο蠓椒ǖ奶攸c(diǎn)分析
(1)傳統(tǒng)的結(jié)構(gòu)化程序設(shè)計(jì)是以“過程”和“操作”為中心構(gòu)造系統(tǒng)的,是面向處理的體系結(jié)構(gòu)。而“過程”和“操作”是不穩(wěn)定的,若基礎(chǔ)硬件、用戶需求、編程環(huán)境(編譯器和操作系統(tǒng))改變,處理的體系結(jié)構(gòu)可能也需要改變,系統(tǒng)的移植或升級(jí)需要花費(fèi)很大代價(jià)。面向?qū)ο蟮某绦蛟O(shè)計(jì)對(duì)問題域進(jìn)行模型化,以“對(duì)象”和“數(shù)據(jù)結(jié)構(gòu)”為中心,軟件的體系結(jié)構(gòu)相對(duì)穩(wěn)定,思維成果的可重用性較好。
(2)封裝和數(shù)據(jù)隱藏是面向?qū)ο蟪绦蛟O(shè)計(jì)的基本要素。把數(shù)據(jù)和與之相關(guān)的過程捆綁在一起定義為一個(gè)整體(即對(duì)象),操縱數(shù)據(jù)的過程和函數(shù)的作用域和可視性被限制在代碼局部區(qū)域內(nèi),改變數(shù)據(jù)結(jié)構(gòu)或算法僅局限于實(shí)現(xiàn)這個(gè)類的代碼區(qū)域內(nèi)而不會(huì)引起系統(tǒng)的變化,這對(duì)程序維護(hù)提供了方便。
(3)類的抽象特性提供了模塊化的體系結(jié)構(gòu),類的界面指明它所提供的服務(wù),類的使用者無需關(guān)心這些服務(wù)的實(shí)現(xiàn)細(xì)節(jié)。將一些經(jīng)過測(cè)試的類存儲(chǔ)于類庫(kù)中,在建立新的應(yīng)用軟件時(shí)只需在類庫(kù)中找到所需要的類或通過繼承復(fù)用現(xiàn)存類以滿足問題域的改變,這使得面向?qū)ο笤O(shè)計(jì)的可重用性得以提高。
作者按照軟件工程標(biāo)準(zhǔn),用面向?qū)ο蠹夹g(shù)完成了汽車排放測(cè)試系統(tǒng)軟件的設(shè)計(jì),并在Win98下采用美國(guó)NI公司的圖形化編程語(yǔ)言LabVIEW實(shí)現(xiàn)。這套系統(tǒng)已在上海泛亞汽車技術(shù)中心投入使用,系統(tǒng)的開發(fā)周期短、可靠性好、便于維護(hù),充分體現(xiàn)了面向?qū)ο蟪绦蛟O(shè)計(jì)的優(yōu)點(diǎn)。
評(píng)論