亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        新一代保護(hù)軟件開(kāi)發(fā)平臺(tái)系統(tǒng)的軟件架構(gòu)實(shí)踐

        2014-02-19 07:28:44曾水根劉萬(wàn)斌丁俊健
        關(guān)鍵詞:功能模塊二次開(kāi)發(fā)控件

        曾水根,劉 瀏,劉萬(wàn)斌,丁俊健

        (國(guó)電南京自動(dòng)化股份有限公司,南京210032)

        新一代保護(hù)軟件開(kāi)發(fā)平臺(tái)系統(tǒng)(以下簡(jiǎn)稱系統(tǒng))是一個(gè)面向保護(hù)類產(chǎn)品PC機(jī)端工具軟件快速二次開(kāi)發(fā)的基礎(chǔ)開(kāi)發(fā)平臺(tái),使用Visual C++2010(以下簡(jiǎn)稱為VC++2010)進(jìn)行開(kāi)發(fā)。

        之所以選定VC++2010作為開(kāi)發(fā)語(yǔ)言,是因?yàn)閂C++2010為所有的VC++開(kāi)發(fā)人員做了貼心而又周全的考慮。具體表現(xiàn)在其Ribbion界面可視化的設(shè)計(jì)、更加人性化的使用、提升了的安全可靠性、更加容易發(fā)布與部署簡(jiǎn)潔等特點(diǎn)[1],并且VC++2010對(duì)C++新標(biāo)準(zhǔn)C++0x全面支持。

        系統(tǒng)大量采用.NET成熟的組件技術(shù),降低二次開(kāi)發(fā)及維護(hù)成本與風(fēng)險(xiǎn),提供統(tǒng)一的語(yǔ)言、數(shù)據(jù)庫(kù)、配置、通信、公共功能、日志、權(quán)限角色等公共模塊,并可根據(jù)二次開(kāi)發(fā)需求隨意組裝、刪減模塊,快速開(kāi)發(fā)出滿足實(shí)際工程應(yīng)用需求的應(yīng)用軟件。

        1 設(shè)計(jì)思路

        系統(tǒng)功能模塊使用Visual Studio2010.NET作為主要開(kāi)發(fā)工具,綜合應(yīng)用VC++2010的CLI、MFC、COM等技術(shù)實(shí)現(xiàn)封裝和系統(tǒng)之間的跨進(jìn)程通信,并利用Win32API技術(shù)實(shí)現(xiàn)和Windows系統(tǒng)間的交互[2]。

        系統(tǒng)由多語(yǔ)言功能模塊、數(shù)據(jù)庫(kù)功能模塊、串口通信功能模塊、以太網(wǎng)通信功能模塊、公共類功能模塊、公用重寫(xiě)控件功能模塊、權(quán)限角色功能模塊和事件日志功能模塊共八大功能模塊組成。各功能模塊項(xiàng)目開(kāi)發(fā)為VC++2010的CLR類庫(kù)項(xiàng)目。

        系統(tǒng)項(xiàng)目開(kāi)發(fā)過(guò)程中采用SVN進(jìn)行多人同步開(kāi)發(fā)的源代碼管理,為避免不同模塊間的名稱命名沖突,充分運(yùn)用標(biāo)準(zhǔn)C++引入的關(guān)鍵字namespace(命名空間/名字空間/名稱空間/名域),每個(gè)功能模塊擁有獨(dú)一無(wú)二的命名空間名稱。各功能模塊命名空間名稱原則上要反應(yīng)出模塊功能。為了省去每次調(diào)用模塊成員都要添加“命名空間名::成員名”的麻煩,使用標(biāo)準(zhǔn) C++的using編譯指令(“using namespace命名空間名稱”)來(lái)簡(jiǎn)化對(duì)命名空間中的成員的使用;同時(shí),使用using聲明來(lái)簡(jiǎn)化對(duì)命名空間中的名稱的使用。

        系統(tǒng)的串口、以太網(wǎng)通信功能模塊以國(guó)電南自以太網(wǎng)103規(guī)約為實(shí)施標(biāo)準(zhǔn)。

        總體功能框架如圖1。

        圖1 新一代保護(hù)軟件開(kāi)發(fā)平臺(tái)系統(tǒng)框架圖

        2 名稱定義和方法實(shí)現(xiàn)

        名稱定義原則上要基本體現(xiàn)類型和意義。如以“CLR”開(kāi)頭的名稱代表命名空間名稱,以“l(fā)bl”開(kāi)頭的名稱表示標(biāo)簽(Label)類型的名稱,表示用戶名有關(guān)的名稱應(yīng)該包含“username”字符,表示密碼有關(guān)的名稱應(yīng)該包含“pass”字符等。

        2.1 命名空間名稱定義法則

        為方便二次開(kāi)發(fā)人員快速的讀懂程序,命名空間命名采用有名的命名空間命名法則,C++標(biāo)準(zhǔn)文檔中的有名命名空間語(yǔ)句如下:

        named-namespace-definition:

        namespace identifier{namespace-body}[3]

        簡(jiǎn)單描述為:

        namespace命名空間名{

        聲明序列[可選]

        }

        命名空間名稱從字面上要基本反映出模塊的功能。如多語(yǔ)言功能模塊命名空間名稱為“CLRDllMLanguage”,其中“CLRDll”前綴表示類型為 VC++的 CLR 類庫(kù)項(xiàng)目,“MLanguage”為“Multi Language”的簡(jiǎn)寫(xiě),從字面上即體現(xiàn)出該模塊功能和多語(yǔ)言有關(guān)。

        各功能模塊主要類的名稱與命名空間名稱差別僅在于前1-6個(gè)字符,這1-6個(gè)字符反應(yīng)出功能模塊類型。如CLR類型類庫(kù)項(xiàng)目功能模塊命名空間名前綴以字符“CLRDll”開(kāi)始,而類以字符“C”開(kāi)始。后面的字符基本相同,從字面上體現(xiàn)功能。如多語(yǔ)言功能模塊的命名空間名稱為“CLRMLanguage”,其主要類名為“CMLanguage”,從字面上很容易理解分別為多語(yǔ)言功能模塊命名空間名稱和多語(yǔ)言功能模塊主要實(shí)現(xiàn)類的名稱。

        2.2 命名空間中的名稱定義法則

        命名空間中的名稱均使用有意義的名稱,通過(guò)名稱基本能反映出具體的類型和用途。

        (1)對(duì)于控件類型的變量,前3個(gè)字符一般為控件類型名的縮寫(xiě),后面的字符反應(yīng)變量的作用。如“mnuAlltrip”表示這是個(gè)菜單項(xiàng)的名稱,和跳閘功能有關(guān)。

        (2)對(duì)于類的實(shí)例變量,變量名即為類名去掉前綴“C”(如果有)后余下部分的小寫(xiě)。如“commonfunc”為“CCommonFunc”類的實(shí)例。

        (3)一般變量命名采用駱駝命名法規(guī)則,即混合使用大小寫(xiě)字母,第一個(gè)單詞以小寫(xiě)字母開(kāi)始,第二個(gè)單詞的首字母大寫(xiě)或每一個(gè)單詞的首字母都采用大寫(xiě)字母。如username,myFirstName。

        3 功能模塊設(shè)計(jì)和主要類介紹

        3.1 功能模塊設(shè)計(jì)

        各模塊對(duì)應(yīng)命名空間名稱如表1。

        (1)多語(yǔ)言功能模塊

        適應(yīng)軟件項(xiàng)目國(guó)際化的需要,實(shí)現(xiàn)多語(yǔ)言切換功能。

        (2)數(shù)據(jù)庫(kù)功能模塊

        根據(jù)系統(tǒng)設(shè)置中選擇的數(shù)據(jù)庫(kù)類型和位置提供相應(yīng)的數(shù)據(jù)連接支持,以實(shí)現(xiàn)數(shù)據(jù)的提取、添加、修改及刪除和統(tǒng)計(jì)等操作。

        (3)串口通信功能模塊

        實(shí)現(xiàn)串口通信控件及相關(guān)功能的封裝,二次開(kāi)發(fā)人員只需創(chuàng)建該模塊實(shí)例即可直接進(jìn)行串口通信相應(yīng)的設(shè)置、數(shù)據(jù)發(fā)送及接收等,而不用每次重復(fù)繁瑣的串口控件創(chuàng)建與管理。

        (4)以太網(wǎng)通信功能模塊

        實(shí)現(xiàn)以太網(wǎng)通信控件及相關(guān)功能的封裝,二次開(kāi)發(fā)人員只要?jiǎng)?chuàng)建該模塊的實(shí)例即可實(shí)現(xiàn)以太網(wǎng)通信相應(yīng)的設(shè)置、數(shù)據(jù)發(fā)送和接收及網(wǎng)絡(luò)監(jiān)聽(tīng)等功能。

        (5)公共類功能模塊

        將使用頻率較高的公用方法歸集到公共類功能模塊,方便維護(hù)或BUG查找及改進(jìn)。

        (6)公用重寫(xiě)控件功能模塊

        將使用頻率較高且需要進(jìn)行個(gè)性化定制的系統(tǒng)控件集中于此模塊進(jìn)行重寫(xiě)實(shí)現(xiàn),以便根據(jù)實(shí)際情況需要對(duì)此類控件的限制條件統(tǒng)一進(jìn)行調(diào)整。

        (7)權(quán)限角色功能模塊

        納入角色分級(jí)管理模式實(shí)現(xiàn)用戶權(quán)限的劃分。

        (8)事件日志功能模塊

        自動(dòng)記錄用戶每次操作并分類存檔。

        表1 新一代保護(hù)軟件開(kāi)發(fā)平臺(tái)系統(tǒng)命名空間表

        3.2 主要類介紹

        各模塊主要類如表2。

        表2 新一代保護(hù)軟件開(kāi)發(fā)平臺(tái)系統(tǒng)主要類表

        各個(gè)模塊都要用到公共類功能模塊,以公共功能模塊為例介紹系統(tǒng)的模塊實(shí)踐和跨命名空間(這里其實(shí)就是跨模塊)標(biāo)識(shí)符的調(diào)用方法。

        (1)COMSetT枚舉

        串口數(shù)據(jù)參數(shù)數(shù)據(jù)結(jié)構(gòu)枚舉,包含串口一般設(shè)置項(xiàng),枚舉項(xiàng)見(jiàn)圖2。

        圖2 COMSetT枚舉(部分截圖)

        (2)EvevtType枚舉

        圖3 EvevtType枚舉(部分截圖)

        列出事件/日志類型可能的列表,以便將事件按照所屬類型自動(dòng)分類,枚舉項(xiàng)見(jiàn)圖3。

        (3)IniFile類

        實(shí)現(xiàn)文本配置文件的讀寫(xiě),內(nèi)含IniKey和IniSection兩個(gè)類,類視圖見(jiàn)圖4。

        圖4 IniFile類視圖(部分截圖)

        (4)ComFunc類

        實(shí)現(xiàn)不同數(shù)據(jù)類型轉(zhuǎn)換功能,類視圖部分轉(zhuǎn)換方法見(jiàn)圖5。

        (5)CCommonFunc類

        公共功能模塊的主類,類視圖部分截圖見(jiàn)圖6。

        圖5 ComFunc類視圖(部分截圖)

        圖6 CCommonFunc類視圖(部分截圖)

        (6)跨命名空間標(biāo)識(shí)符使用

        為簡(jiǎn)化代碼,使用其它命名空間的標(biāo)識(shí)符,可使用標(biāo)準(zhǔn)C++的using編譯指令來(lái)簡(jiǎn)化對(duì)命名空間中的名稱的使用,加入了“using namespace命名空間名稱”后就可以直接使用該命名空間中的標(biāo)識(shí)符了。當(dāng)然還可以使用using聲明來(lái)簡(jiǎn)化對(duì)其它命名空間中的名稱的使用[4]。

        4 軟件架構(gòu)初步測(cè)試

        基于以上設(shè)計(jì),研發(fā)了新一代保護(hù)軟件開(kāi)發(fā)平臺(tái)系統(tǒng),并以此編寫(xiě)了以DGT801系列的發(fā)變組保護(hù)裝置PC機(jī)端數(shù)據(jù)定義為目的的測(cè)試樣例對(duì)其進(jìn)行了測(cè)試[5],測(cè)試結(jié)果見(jiàn)表3。

        表3 新一代保護(hù)軟件開(kāi)發(fā)平臺(tái)系統(tǒng)測(cè)試結(jié)果

        5 結(jié)束語(yǔ)

        基于保護(hù)類軟件系統(tǒng)功能復(fù)雜,且對(duì)數(shù)據(jù)傳輸穩(wěn)定性、精確性要求高的特性,筆者選定VC++2010作為系統(tǒng)的開(kāi)發(fā)語(yǔ)言,測(cè)試結(jié)果表明此平臺(tái)系統(tǒng)完全符合保護(hù)產(chǎn)品PC機(jī)端軟件的二次開(kāi)發(fā)需求。

        通過(guò)搭建一個(gè)性能卓越、技術(shù)先進(jìn)、安全可靠、易于擴(kuò)展、便以進(jìn)行快速二次開(kāi)發(fā)的基礎(chǔ)平臺(tái),為后期發(fā)變組保護(hù)軟件系統(tǒng)的升級(jí)換代及新產(chǎn)品開(kāi)發(fā)提供了有效的技術(shù)支撐和保障。

        [1]霍頓.Visual C++2010入門(mén)經(jīng)典.5版[M].北京:清華大學(xué)出版社,2010.

        [2]李瑞生,李燕斌,周逢權(quán).智能變電站功能架構(gòu)及設(shè)計(jì)原則[J].電力系統(tǒng)保護(hù)與控制,2010,38(21):24-27

        [3]ISO/IEC14882,INTERNATION STANDARD of Programming languages-C++[S].

        [4]吳克力.C++面向?qū)ο蟪绦蛟O(shè)計(jì) ——基于Visual C++2010[M].北京:清華大學(xué)出版社,2013.

        [5]顏炯,王戟,陳火旺.基于模型的軟件測(cè)試綜述[J].計(jì)算機(jī)科學(xué),2004,31(2):184-187.

        猜你喜歡
        功能模塊二次開(kāi)發(fā)控件
        淺談基于Revit平臺(tái)的二次開(kāi)發(fā)
        甘肅科技(2020年20期)2020-04-13 00:30:02
        淺談Mastercam后處理器的二次開(kāi)發(fā)
        模具制造(2019年3期)2019-06-06 02:11:02
        關(guān)于.net控件數(shù)組的探討
        軟件(2018年7期)2018-08-13 09:44:42
        西門(mén)子Easy Screen對(duì)倒棱機(jī)床界面二次開(kāi)發(fā)
        基于ASP.NET標(biāo)準(zhǔn)的采購(gòu)管理系統(tǒng)研究
        輸電線路附著物測(cè)算系統(tǒng)測(cè)算功能模塊的研究
        M市石油裝備公服平臺(tái)網(wǎng)站主要功能模塊設(shè)計(jì)與實(shí)現(xiàn)
        功能模塊的設(shè)計(jì)與應(yīng)用研究
        基于Pro/E二次開(kāi)發(fā)的推土鏟參數(shù)化模塊開(kāi)發(fā)
        就這樣玩會(huì)VBA中常見(jiàn)的自定義控件
        電腦迷(2012年24期)2012-04-29 00:44:03
        亚洲中文字幕无线乱码va | 欧美黑人性暴力猛交喷水| 天天躁日日躁狠狠躁人妻| 91福利国产在线观看网站| 国产精品女丝袜白丝袜美腿| 天天做天天爱夜夜爽毛片毛片 | 亚洲欧美日韩精品久久亚洲区色播| 国内精品女同一区二区三区| 国产欧美高清在线观看| 日本不卡一区二区三区在线| 久久九九青青国产精品| 一区二区三区日本久久| 亚洲 欧美 综合 在线 精品| 国产白丝无码视频在线观看 | 久久亚洲av成人无码软件| 亚洲av本道一本二本三区| 护士的小嫩嫩好紧好爽| 无码专区天天躁天天躁在线| 少妇熟女淫荡丰满| 日韩国产精品一区二区三区| 日本少妇高潮喷水xxxxxxx| 在线播放国产一区二区三区| 亚洲一区丝袜美腿在线观看| 自拍视频在线观看首页国产| 我把护士日出水了视频90分钟| 国产美女白浆| 手机av在线观看视频| 国产一品二品三品精品在线| 黑人巨茎大战欧美白妇| 亚洲国产成人精品激情资源9| 亚洲熟少妇一区二区三区| 国模吧无码一区二区三区| 中文字幕欧美一区| 国产一区不卡视频在线| 国产精品亚洲一区二区三区| 日韩电影一区二区三区| 亚洲AV永久无码精品表情包| 久久一区二区国产精品| 中文字幕乱偷无码av先锋蜜桃 | 国产成人综合久久三区北岛玲| av免费在线免费观看|