• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      利用反射技術(shù)實(shí)現(xiàn)一種新型軟件系統(tǒng)維護(hù)模型

      2012-11-27 01:46:08詹澤東藏文亞李正民
      關(guān)鍵詞:郵件實(shí)例特性

      詹澤東 ,謝 爽 ,藏文亞 ,陸 華 ,李正民

      (1.成都理工大學(xué),四川 成都 610059;2.中國(guó)石油化工集團(tuán) 西北分公司,新疆 阿克蘇 842017)

      隨著計(jì)算機(jī)技術(shù)不斷更新和發(fā)展,大型復(fù)雜系統(tǒng)的開(kāi)發(fā)層出不窮,但系統(tǒng)的復(fù)雜性為后期系統(tǒng)的維護(hù)帶來(lái)了極大不便。軟件工程的提出和軟件測(cè)試的規(guī)范化為后期維護(hù)提供了大量的文檔資料,從宏觀上解決了后期系統(tǒng)維護(hù)工作任務(wù)。但是軟件系統(tǒng)開(kāi)發(fā)作為一項(xiàng)復(fù)雜的腦力活動(dòng),不可避免地會(huì)出現(xiàn)一些問(wèn)題,尤其是復(fù)雜的大型系統(tǒng)。于是運(yùn)行時(shí)出錯(cuò)的定位成為了一大難題,往往需要消耗大量的人力、物力和財(cái)力,甚至影響到企業(yè)的正常運(yùn)作,造成巨大損失。本文對(duì)于大型系統(tǒng)運(yùn)行時(shí)出錯(cuò)的定位問(wèn)題,針對(duì).NET框架平臺(tái)(目前系統(tǒng)開(kāi)發(fā)的最大平臺(tái)之一,也是大型系統(tǒng)的構(gòu)架平臺(tái))提供的特性技術(shù)和反射技術(shù),從系統(tǒng)的安全性和經(jīng)濟(jì)可行性出發(fā),從資源整合的角度出發(fā),研究并實(shí)現(xiàn)了一種新型的軟件維護(hù)模型,從而彌補(bǔ)了軟件工程思想對(duì)于系統(tǒng)維護(hù)在微觀上的定位的不足。

      1 相關(guān)技術(shù)簡(jiǎn)介

      新型軟件系統(tǒng)的維護(hù)模型的技術(shù)實(shí)現(xiàn)主要涉及.NET Framework提供的特性技術(shù)、反射技術(shù)以及資源整合思想中郵件服務(wù)。

      1.1 特性技術(shù)

      公共語(yǔ)言運(yùn)行時(shí)允許添加類(lèi)似關(guān)鍵字的描述聲明,叫做特性[1](Attributes), 它對(duì)程序中的元素進(jìn)行標(biāo)注,如類(lèi)型、字段、方法和屬性等。Attributes和Microsoft.NET Framework文件的元數(shù)據(jù)保存在一起,可以用來(lái)向運(yùn)行時(shí)描述代碼,或者在程序運(yùn)行的時(shí)候影響應(yīng)用程序的行為;特性分為定制特性(.NET平臺(tái)已經(jīng)封裝實(shí)現(xiàn))和自定義特性,新型軟件系統(tǒng)維護(hù)模型使用自定義特性,用于系統(tǒng)運(yùn)行時(shí)異常定位。

      1.2 反射技術(shù)

      在.NET平臺(tái)中,軟件是以程序集的方式存在的,它包含模塊,而模塊包含類(lèi),類(lèi)又包含成員。

      .NET中的程序集是自描述的,反射則提供了封裝程序集、模塊和類(lèi)的對(duì)象。使用反射隱藏一些不想公開(kāi)的方法,并在軟件設(shè)計(jì)中進(jìn)行了類(lèi)設(shè)計(jì)及部分的核心編碼[2],動(dòng)態(tài)地創(chuàng)建類(lèi)的實(shí)例,將類(lèi)綁定到現(xiàn)有對(duì)象,或從現(xiàn)有對(duì)象中獲取類(lèi),然后調(diào)用類(lèi)的方法或訪問(wèn)其字段和屬性。反射通常具有以下用途[3]:

      (1)使用 Assembly定義和加載程序集,加載在程序集清單中列出的模塊,并從此程序集中找類(lèi)型并創(chuàng)建該類(lèi)型的實(shí)例。

      (2)使用Module了解模塊的程序集以及模塊中的類(lèi)等信息。

      (3)使用ConstructorInfo了解構(gòu)造函數(shù)的名稱(chēng)、參數(shù)、訪問(wèn)修飾符(如 public或 private)和實(shí)現(xiàn)(如 abstrcat或virtual)等信息。

      (4)使用 MethodInfo了解方法的名稱(chēng)、返回類(lèi)型、參數(shù)、訪問(wèn)修飾符(如 public或 private)和實(shí)現(xiàn)(如 abstrcat或 virtual)等信息。

      (5)一個(gè) FieldInfo可了解字段的名稱(chēng)、訪問(wèn)修飾符(如 public或 private)和實(shí)現(xiàn)(如 static)等信息,并獲取或設(shè)置字段值。

      (6)使用 EventInfo了解事件的名稱(chēng)、事件處理程序數(shù)據(jù)類(lèi)型、自定義屬性、生命類(lèi)型和反射類(lèi)型等信息,并獲取或設(shè)置屬性值。

      (7)使用PropertyInfo了解屬性的名稱(chēng)、數(shù)據(jù)類(lèi)型、聲明類(lèi)型、反射類(lèi)型和只讀或可寫(xiě)狀態(tài)等信息,并獲取或設(shè)置屬性值。

      (8)使用 ParameterInfo了解參數(shù)的名稱(chēng)、數(shù)據(jù)類(lèi)型、是輸入?yún)?shù)還是輸出參數(shù)。以及參數(shù)在方法簽名中的位置等信息。

      1.3 資源整合

      與企業(yè)優(yōu)化資源配置不同,隨著Internet的推廣使用,網(wǎng)絡(luò)服務(wù)資源日益增多,資源共享和合理利用免費(fèi)資源也成為企業(yè)的一個(gè)重要的戰(zhàn)略目標(biāo)。大型系統(tǒng)的維護(hù)借助于免費(fèi)資源的使用可以大大降低成本,而郵件服務(wù)是一個(gè)重要的免費(fèi)資源。本文在研究新型軟件系統(tǒng)維護(hù)模型時(shí),將系統(tǒng)軟件運(yùn)行時(shí)出錯(cuò)(或者異常)信息以郵件的形式將追蹤到的系統(tǒng)運(yùn)行出錯(cuò)定位信息發(fā)送到指定維護(hù)人員的郵箱,維護(hù)人員借助此信息可以及時(shí)、高效地完成維護(hù)工作,提高了維護(hù)的靈活性和及時(shí)性。

      2 新型軟件系統(tǒng)維護(hù)模型的提出

      由于大型系統(tǒng)的復(fù)雜性或多或少會(huì)導(dǎo)致系統(tǒng)運(yùn)行時(shí)出錯(cuò)或者發(fā)生異常,利用.NET Framework框架提供的特性與反射技術(shù)相互結(jié)合,可以準(zhǔn)確地定位異常發(fā)生的具體位置,同時(shí)反射出出錯(cuò)信息處的代碼相關(guān)信息,保證了系統(tǒng)的維護(hù)的快捷性和方便性,如圖1所示。

      3 新型軟件系統(tǒng)維護(hù)模型的實(shí)現(xiàn)

      3.1 特性類(lèi)的實(shí)現(xiàn)

      在系統(tǒng)運(yùn)行時(shí)出錯(cuò)定位,必須使用自定義特性,所有自定義特性都繼承于System.Attribute這個(gè)類(lèi)[1],為了在系統(tǒng)運(yùn)行發(fā)生異常時(shí)獲取異常信息(這里只獲取系統(tǒng)代碼所在行的定位信息,其他信息可以根據(jù)實(shí)際需要獲?。惓P畔⑼ㄟ^(guò)郵件的形式發(fā)送出去,需要為自定義特性定義如下數(shù)據(jù)成員,如表1所示。

      圖1 新型軟件系統(tǒng)維護(hù)模型

      表1 自定義特性字段描述

      其中在表1中的郵件用戶(hù)名和郵件密碼指的是發(fā)送郵件方的用戶(hù)名和密碼,自定義特性類(lèi)的成員函數(shù)主要包括構(gòu)造函數(shù),各個(gè)數(shù)據(jù)成員的屬性方法。具體使用時(shí)在每個(gè)模塊的定義部分使用自定義特性類(lèi)構(gòu)造對(duì)象,給相關(guān)的模塊代碼添加附加信息進(jìn)行關(guān)聯(lián),本文主要是代碼所在的模塊名。使用BS結(jié)構(gòu)的母版頁(yè)作為實(shí)例,具體形式如下:

      其中myClassAttribute為自定義特性的類(lèi)名,實(shí)際實(shí)例化時(shí)使用實(shí)際參數(shù),這樣就建立起了一個(gè)信息關(guān)聯(lián)。

      3.2 反射技術(shù)的實(shí)現(xiàn)

      反射技術(shù)的實(shí)現(xiàn)在本實(shí)例中主要分為三個(gè)步驟(可以根據(jù)實(shí)際情況做相關(guān)的改變):

      (1)使用 C#的 typeof運(yùn)算符、所有類(lèi)從 System.Object類(lèi)繼承的GetType方法或者System.Type類(lèi)的靜態(tài)GetType方法獲取System.Type類(lèi)的引用。

      (2)創(chuàng)建反射實(shí)例,根據(jù)實(shí)際需要可以選擇ConstructorInfo、EventInfo、FieldInfo、InterfaceInfo、MemberInfo、MethodInfo、PropertyInfo,本文實(shí)例中選擇構(gòu)造 MemberInfo實(shí)例。

      (3)使用 Attribute類(lèi)的 GetCustomAttribute靜態(tài)方法構(gòu)造自定義特性對(duì)象,其中所包含的本模塊的關(guān)聯(lián)的信息就可以獲取出來(lái)。

      3.3 捕獲異常

      C#專(zhuān)門(mén)提供了處理異常機(jī)制,可以使用.NET提供的預(yù)定義異常類(lèi),也可以使用自定義異常類(lèi),本文主要是使用 try{…….}catch{……}finally{……}結(jié)構(gòu)捕獲異常。

      3.4 資源整合的實(shí)現(xiàn)

      為了降低開(kāi)發(fā)和維護(hù)成本,本文中使用免費(fèi)郵件服務(wù)器接受系統(tǒng)運(yùn)行時(shí)出錯(cuò)或者異常信息,將該信息以郵件[4]的形式轉(zhuǎn)發(fā)給系統(tǒng)開(kāi)發(fā)者或維護(hù)人員,這一過(guò)程可以借助于.NET提供的命名空間web.mail來(lái)實(shí)現(xiàn)。它提供了 SmtpMail、MailMessage和 MailAttachment三個(gè)類(lèi),分別用于提供屬性和方法來(lái)創(chuàng)建一個(gè)郵件消息對(duì)象、提供屬性和方法來(lái)創(chuàng)建一個(gè)郵件附件對(duì)象、提供屬性和方法通過(guò)使用windows2000 CDOSYS的消息組件的聯(lián)合數(shù)據(jù)對(duì)象來(lái)發(fā)送郵件消息。同時(shí)使用免費(fèi)發(fā)送郵件服務(wù),在設(shè)置好各個(gè)類(lèi)的屬性后還需加上這三句(省略號(hào)表示根據(jù)實(shí)際參數(shù)填寫(xiě)參數(shù)):

      4 新型軟件系統(tǒng)維護(hù)模型的測(cè)試

      本文在采用BS結(jié)構(gòu)的模板頁(yè)中故意設(shè)置一個(gè)異常點(diǎn),依次按上述3.1~3.4的步驟實(shí)現(xiàn),將系統(tǒng)進(jìn)行運(yùn)行得到運(yùn)行結(jié)果,如圖2所示。

      圖2 新型軟件系統(tǒng)維護(hù)模型測(cè)試圖

      利用.NET平臺(tái)下的特性技術(shù)和反射技術(shù)相互結(jié)合進(jìn)行異常信息的定位,為系統(tǒng)的維護(hù)探索性提出了新型模型,可以有效地提高維護(hù)高效性、靈活性,同時(shí)融合資源整合的思想,降低了開(kāi)發(fā)和維護(hù)的成本,為系統(tǒng)的維護(hù)和開(kāi)發(fā)起了指導(dǎo)的作用。隨著遠(yuǎn)程控制的普及,該模型與遠(yuǎn)程控制相互結(jié)合將取得更好的效果。

      [1]NAGEL C, EVJEN B, GLYNN J,等.C#高級(jí)編程(第四版)[M].北京:清華大學(xué)出版社,2006.

      [2]李天平,亮劍.NET:.NET深入體驗(yàn)與實(shí)戰(zhàn)精要 [M].北京:電子工業(yè)出版社,2009.

      [3]葉樹(shù)華,高志紅.網(wǎng)絡(luò)編程實(shí)用教材[M].北京:人民郵電出版社,2006.

      [4]梅元昭.基于反射的WEB SERVICE的設(shè)計(jì)與實(shí)現(xiàn)[J].軟件導(dǎo)刊,2010,9(1):3-5.

      猜你喜歡
      郵件實(shí)例特性
      基于James的院內(nèi)郵件管理系統(tǒng)的實(shí)現(xiàn)
      谷稗的生物學(xué)特性和栽培技術(shù)
      來(lái)自朋友的郵件
      色彩特性
      流行色(2020年9期)2020-07-16 08:08:54
      進(jìn)一步凸顯定制安裝特性的優(yōu)勢(shì) Integra DRX-5.2
      一封郵件引發(fā)的梅賽德斯反彈
      車(chē)迷(2018年12期)2018-07-26 00:42:32
      Quick Charge 4:什么是新的?
      CHIP新電腦(2017年6期)2017-06-19 09:41:44
      完形填空Ⅱ
      完形填空Ⅰ
      將當(dāng)前郵件快速轉(zhuǎn)發(fā)到QQ群
      電腦迷(2012年21期)2012-04-29 22:16:01
      上高县| 南汇区| 虎林市| 柳江县| 通城县| 湟源县| 印江| 建湖县| 普陀区| 平江县| 利辛县| 资阳市| 拉孜县| 太原市| 沙湾县| 资兴市| 正安县| 榕江县| 北宁市| 若羌县| 合水县| 昌宁县| 华容县| 元氏县| 常熟市| 清水县| 华坪县| 元江| 万州区| 灵武市| 麻江县| 高要市| 洱源县| 密山市| 泸定县| 哈密市| 万年县| 罗平县| 达孜县| 高阳县| 祁东县|