工程項(xiàng)目管理系統(tǒng) | OA系統(tǒng) | ERP系統(tǒng) | 工程項(xiàng)目管理軟件 | 裝飾管理系統(tǒng) | 簽約案例 | 購買價格 | 在線試用 | 手機(jī)APP | 產(chǎn)品資料
X 關(guān)閉
項(xiàng)目管理系統(tǒng)

當(dāng)前位置:工程項(xiàng)目OA系統(tǒng) > 建筑OA系統(tǒng) > 項(xiàng)目管理系統(tǒng)

綜合電子設(shè)備管理系統(tǒng)的可維護(hù)性設(shè)計

申請免費(fèi)試用、咨詢電話:400-8352-114

摘  要: 綜合電子設(shè)備管理系統(tǒng)是我單位自主研發(fā)的基于.net平臺的分布式應(yīng)用程序,系統(tǒng)一期建設(shè)已經(jīng)完成,其二期建設(shè)的主要內(nèi)容是“數(shù)據(jù)安全訪問”的問題,目標(biāo)是建立數(shù)據(jù)統(tǒng)一訪問接口及其使用規(guī)范,約束和審計數(shù)據(jù)應(yīng)用訪問數(shù)據(jù)庫的行為,對數(shù)據(jù)應(yīng)用提供強(qiáng)制審計的技術(shù)手段,結(jié)合作者實(shí)踐,討論從注重可維護(hù)性的開發(fā)過程和注重軟件管理兩方面提高系統(tǒng)的可維護(hù)性,最后分析采用方法的效果。 

關(guān)鍵詞: 可維護(hù)性;模塊化;可測試性  0 引言  隨著軟件大型化,復(fù)雜化的發(fā)展,軟件維護(hù)所耗費(fèi)的資源越來越多,軟件可維護(hù)性設(shè)計日益得到重視。我單位自行研制的綜合電子設(shè)備管理系統(tǒng)的一期建設(shè)已經(jīng)完成,在一期建設(shè)中已建成數(shù)據(jù)的統(tǒng)一存儲和統(tǒng)一分發(fā)框架。但主要存在以下問題:無法獲得應(yīng)用用戶對數(shù)據(jù)庫的操作日志;開發(fā)人員對數(shù)據(jù)庫的使用不規(guī)范,查詢的結(jié)果集過大,導(dǎo)致數(shù)據(jù)庫的性能大幅下降;應(yīng)用直接使用數(shù)據(jù)的登錄數(shù)據(jù)庫,存在著一定的安全隱患。這些問題出現(xiàn)的原因,一是在軟件開發(fā)過程中對可維護(hù)性設(shè)計考慮欠缺,導(dǎo)致軟件從根本上忽視了可維護(hù)性的重要性,二是軟件文檔不規(guī)范,內(nèi)容不一致。在維護(hù)階段出現(xiàn)問題,根據(jù)文檔不易得到有幫助的信息,難以定位錯誤的類型和根源。因此,系統(tǒng)二期建設(shè)的主要目標(biāo)是注重軟件可維護(hù)性的開發(fā)過程,規(guī)范文檔管理,建立數(shù)據(jù)統(tǒng)一訪問接口及其使用規(guī)范,約束和審計數(shù)據(jù)應(yīng)用訪問數(shù)據(jù)庫的行為,對數(shù)據(jù)應(yīng)用提供強(qiáng)制審計的技術(shù)手段。  1 注重可維護(hù)性的開發(fā)過程  綜合電子設(shè)備管理系統(tǒng)分為五個子系統(tǒng),包括ado.net驅(qū)動封裝子系統(tǒng)[1]、webservice接口子系統(tǒng)、管理配置網(wǎng)站、存儲子系統(tǒng)(sql server2008數(shù)據(jù)庫)和監(jiān)控子系統(tǒng)(數(shù)據(jù)庫網(wǎng)絡(luò)協(xié)議分析與連接控制)。由于系統(tǒng)交付后,存在較長維護(hù)期,同時系統(tǒng)存在升級與擴(kuò)展的情況,因此對系統(tǒng)的可維護(hù)性設(shè)計要求較高。  1.1 系統(tǒng)的可維護(hù)性需求  系統(tǒng)具有較高的可維護(hù)性需求。首先,系統(tǒng)作為數(shù)據(jù)中心應(yīng)用的基礎(chǔ)平臺,數(shù)據(jù)中心的新建應(yīng)用系統(tǒng)必須依賴于本系統(tǒng),系統(tǒng)的可靠性和性能直接影響到應(yīng)用系統(tǒng)的正常運(yùn)行,系統(tǒng)具有較長的生命周期。其次,本項(xiàng)目中的接口子系統(tǒng)是基于ado.net2.0實(shí)現(xiàn)的,隨著ado.net的升級,接口子系統(tǒng)也需要升級。監(jiān)控子系統(tǒng)對sql server數(shù)據(jù)庫的網(wǎng)絡(luò)包進(jìn)行解析,由于網(wǎng)絡(luò)包格式不公開,解析時會有遺漏,而且用戶需求是當(dāng)發(fā)現(xiàn)未能解析的數(shù)據(jù)包時,應(yīng)及時添加到監(jiān)控子系統(tǒng)中。  為了增加系統(tǒng)的可維護(hù)性,減少維護(hù)人員理解和修改系統(tǒng)的難度,我們在系統(tǒng)的設(shè)計上,不僅僅關(guān)注系統(tǒng)的功能需求實(shí)現(xiàn),而且重視系統(tǒng)的可維護(hù)性需求。在系統(tǒng)開發(fā)過程中,從軟件易于理解、易于測試和易于修改的角度出發(fā),提高系統(tǒng)的可維護(hù)性。  1.2 改善軟件的可理解性  本系統(tǒng)涉及的問題域有一定的復(fù)雜性,如果將整個問題域的復(fù)雜性完全暴露給維護(hù)人員,維護(hù)人員很難理解整個系統(tǒng)。因此,首先,我們將整個系統(tǒng)分為功能獨(dú)立的五個子系統(tǒng);其次,在各個子系統(tǒng)設(shè)計時,我們都采用了模塊化的方法,即內(nèi)聚性高的業(yè)務(wù)邏輯合并封裝成獨(dú)立的模塊;最后,重視設(shè)計文檔質(zhì)量,對設(shè)計文檔做了內(nèi)部審核,確保文檔清晰準(zhǔn)確的描述了設(shè)計。  一期系統(tǒng)中,各模塊之間相互依賴;一個源代碼包含多個相關(guān)功能代碼。在二期系統(tǒng)中,我們改善了子系統(tǒng)的設(shè)計,增強(qiáng)各個模塊的內(nèi)聚性,降低模塊之間的耦合性。首先,各個功能的相關(guān)代碼處于不同的代碼目錄;其次,各模塊都做成了單獨(dú)的靜態(tài)庫,總控模塊負(fù)責(zé)調(diào)度各個庫,并且明確各個模塊對外提供的接口,模塊之間的調(diào)用都通過接口完成。  通過這種方式將系統(tǒng)進(jìn)行清晰的劃分,維護(hù)人員可通過對模塊接口的學(xué)習(xí)快速了解子系統(tǒng)的運(yùn)行流程,當(dāng)需要時再對某模塊進(jìn)一步分析。  1.3 改善軟件的可測試性  維護(hù)人員對代碼進(jìn)行修改后,必須進(jìn)行測試,才能保證軟件的質(zhì)量[4]。并且,用戶對系統(tǒng)的可靠性要求很高。因此,在軟件設(shè)計的整個過程中,我們都考慮了測試的問題。  首先,各個子系統(tǒng)的內(nèi)部模塊必須是單向依賴,對出現(xiàn)循環(huán)依賴的模塊,我們采用調(diào)整功能分布,抽取公共模塊等方面消除循環(huán)依賴。其次,對于接口子系統(tǒng),我們需要對某些模塊內(nèi)部進(jìn)行深入的測試,而由于模塊接口的封裝性,無法直接訪問內(nèi)部數(shù)據(jù);對于這樣的情況,我們在設(shè)計這樣的模塊時,專門提供了測試接口。最后,開發(fā)中采用了cppunit、nunit和junit測試框架,通過測試框架來組織測試程序。  在測試階段,我們根據(jù)測試報告,對照測試大綱和用例設(shè)計,對當(dāng)前的測試進(jìn)行總結(jié),比如,何種測試用例發(fā)現(xiàn)何種錯誤,最常見的錯誤,如何從測試結(jié)果判斷是哪種錯誤,該錯誤所在的模塊是什么。在相關(guān)人員修改錯誤時,記錄排錯時的思路和過程。根據(jù)這些總結(jié),編寫了相應(yīng)文檔備查,事實(shí)證明,這些文檔在系統(tǒng)維護(hù)階段發(fā)揮了很大作用。  1.4 改善軟件的可擴(kuò)展性  監(jiān)控子系統(tǒng)采用網(wǎng)絡(luò)監(jiān)聽的方式獲取數(shù)據(jù)庫訪問的信息,這種方式的優(yōu)點(diǎn)是不給業(yè)務(wù)系統(tǒng)增加性能負(fù)擔(dān),缺點(diǎn)是由于數(shù)據(jù)庫協(xié)議不公開,雖然我們進(jìn)行了大量測試,但肯定仍有遺漏之處。  為了當(dāng)發(fā)現(xiàn)未能解析的數(shù)據(jù)包時,及時添加監(jiān)控子系統(tǒng),同時不重新編譯系統(tǒng),我們進(jìn)行了可擴(kuò)展性設(shè)計。我們采用了動態(tài)庫加載和針對接口編程的方法。監(jiān)控子系統(tǒng)啟動后,會加載指定目錄下的動態(tài)庫,這些動態(tài)庫都實(shí)現(xiàn)了規(guī)定的接口。  2 注重軟件管理  2.1 規(guī)范文檔  系統(tǒng)交付使用后,除了在培訓(xùn)時所了解的內(nèi)容之外,為了讓用戶對系統(tǒng)更好的理解和使用,向用戶提供了多種隨機(jī)文檔,包括功能說明,用戶使用手冊,參考手冊,管理員指南等。在文檔編寫的過程中,我們編寫了“綜合電子設(shè)備管理系統(tǒng)編寫規(guī)范”,對文檔格式和一些必要內(nèi)容進(jìn)行了規(guī)范,保證各文檔的風(fēng)格一致,內(nèi)容一致。對于一些用戶使用中容易出錯的地方,在用戶使用手冊中示例說明。在具體編寫文檔時,根據(jù)設(shè)計人員的反饋信息,也及時調(diào)整了文檔編寫規(guī)范。  在設(shè)計開發(fā)過程中,對某個問題進(jìn)行修改,或者功能增刪,要充分考慮到問題所涉及的不同文檔,保證前后文檔在該問題的一致性。對于所修改的部分,要填寫“更改單”,寫明更改人,更改理由,更改所影響的程序和文檔,更改日期,批準(zhǔn)人。采用case工具在這方面起到了事半功倍的作用。  2.2 使用case工具管理軟件版本  在軟件的設(shè)計編碼過程中,尤其在調(diào)試階段,會不斷的生成新的程序版本。為了有效的管理版本問題,采用ration公司的clearcase工具[5],由專人負(fù)責(zé)進(jìn)行管理,從而保證軟件版本的一致性。  3 結(jié)束語  在整個系統(tǒng)的開發(fā)過程中,采用不同的設(shè)計和措施對系統(tǒng)的可維護(hù)性影響是很大的。由于在系統(tǒng)設(shè)計上重視可維護(hù)性,軟件進(jìn)行模塊化設(shè)計,提供了完備的軟件文檔,維護(hù)人員可以較快的定位與解決問題;回歸測試集的提供使維護(hù)人員可以運(yùn)行回歸測試驗(yàn)證軟件質(zhì)量;監(jiān)控子系統(tǒng)的擴(kuò)展性設(shè)計使得維護(hù)人員可以及時增加新的協(xié)議包解析功能;這些設(shè)計在很大程度上提高了系統(tǒng)的可維護(hù)性。然而,由于初次在軟件開發(fā)過程中進(jìn)行可維護(hù)性設(shè)計,因此,還有許多需要改進(jìn)的地方,軟件可維護(hù)性設(shè)計領(lǐng)域還有很多知識點(diǎn)需要研究,在后續(xù)的開發(fā)過程中將對此繼續(xù)學(xué)習(xí)和實(shí)踐,開發(fā)具有高可維護(hù)性的軟件系統(tǒng)。  參考文獻(xiàn):  [1]soumyasch,file:dotnet.svg, http://en.wikipedia.org/wiki/file:  dotnet.svg.2009.3.28.  [2]james martin、carma mcclure,軟件維護(hù)-問題解答[m].北京:機(jī)械工業(yè)出版社,1990:34-36.  作者簡介:  楊薇(1975-),女,碩士,高級工程師,91550部隊(duì),研究方向:指揮自動化;吳小欣(1976-),女,本科,高級工程師,91550部隊(duì),研究方向:指揮控制;袁野(1982-),女,碩士,工程師,91550部隊(duì),研究方向:指揮自動化。
發(fā)布:2007-07-30 10:27    編輯:泛普軟件 · xiaona    [打印此頁]    [關(guān)閉]
相關(guān)文章:

泛普項(xiàng)目管理系統(tǒng)其他應(yīng)用

項(xiàng)目管理工具 禪道項(xiàng)目管理軟件 夢龍項(xiàng)目管理軟件 微軟項(xiàng)目管理軟件 裝飾管理系統(tǒng) 裝修預(yù)算軟件 項(xiàng)目計劃軟件 項(xiàng)目進(jìn)度管理軟件 軟件項(xiàng)目管理工具 材料管理軟件 工程項(xiàng)目管理軟件系統(tǒng) 項(xiàng)目管理系統(tǒng) 施工管理軟件 建筑工程項(xiàng)目管理軟件 工程管理軟件