前言:尋找寫(xiě)作靈感?中文期刊網(wǎng)用心挑選的設(shè)備管理遺留系統(tǒng)再工程技術(shù)綜述,希望能為您的閱讀和創(chuàng)作帶來(lái)靈感,歡迎大家閱讀并分享。
1遺留系統(tǒng)與軟件再工程
1.1遺留系統(tǒng)的定義、成因及處理策略
用戶(hù)需求和技術(shù)等外部環(huán)境的變更。盡管設(shè)備管理系統(tǒng)成功應(yīng)用后不會(huì)像硬件設(shè)備一樣因使用運(yùn)行時(shí)間過(guò)長(zhǎng)而出現(xiàn)疲勞磨損、老化而失效,但受制于企業(yè)用戶(hù)需求的變更和技術(shù)的發(fā)展,原系統(tǒng)的可用性會(huì)持續(xù)不斷下降,越來(lái)越跟不上企業(yè)業(yè)務(wù)需求和行業(yè)發(fā)展。設(shè)備管理遺留系統(tǒng)處理策略主要包括如下三類(lèi):①完全舍棄遺留系統(tǒng),并開(kāi)發(fā)新設(shè)備管理系統(tǒng)。首先全新開(kāi)發(fā)設(shè)備管理系統(tǒng),再導(dǎo)入老系統(tǒng)歷史數(shù)據(jù)。此方法需要投入較大的人力、物力、財(cái)力和時(shí)間成本,并承擔(dān)項(xiàng)目風(fēng)險(xiǎn),因此僅適用于原系統(tǒng)徹底不適應(yīng)企業(yè)需求、無(wú)法升級(jí)改造的情況。②遺留系統(tǒng)集成擴(kuò)展。此策略采用業(yè)務(wù)處理和決策支持分析相隔離的原則,保留原有業(yè)務(wù)平臺(tái),而重新開(kāi)發(fā)與之集成的決策支持系統(tǒng)。此方法適用于業(yè)務(wù)處理系統(tǒng)滿(mǎn)足需求,然而軟件難以直接擴(kuò)展,而企業(yè)又希望投入較小的精力和成本加強(qiáng)分析決策功能的情況。③遺留系統(tǒng)再造。基于對(duì)原設(shè)備管理系統(tǒng)的調(diào)研、梳理和評(píng)估,得出系統(tǒng)的原有問(wèn)題、最新需求和數(shù)據(jù)結(jié)構(gòu),再合理取舍原有代碼以便重用,并選用適合技術(shù)對(duì)遺留系統(tǒng)進(jìn)行改造,以適應(yīng)業(yè)務(wù)的最新需要。改造可包括系統(tǒng)架構(gòu)、數(shù)據(jù)結(jié)構(gòu)、人機(jī)界面、功能或性能的再工程。具體策略的選用需綜合考慮遺留系統(tǒng)的具體情況和客戶(hù)需求再做定奪。
1.2軟件再工程的定義和一般過(guò)程
軟件再工程(SoftwareRe-engineering),亦稱(chēng)為軟件革新或軟件改造,是指基于對(duì)現(xiàn)存系統(tǒng)的分析和改造,以新形式來(lái)重新組裝和構(gòu)建現(xiàn)有系統(tǒng),以提高軟件的可用性、可維護(hù)性和可升級(jí)性。廣義而言,軟件再工程一般不是從零全新開(kāi)發(fā),而是對(duì)一次工程后的成品軟件再次開(kāi)發(fā),并涵蓋了軟件生命周期維護(hù)階段的適應(yīng)性、完善性和預(yù)防性維護(hù)活動(dòng)[11]。軟件再工程是處理遺留系統(tǒng)的最有效方法,其一般過(guò)程包括三步:(1)逆向工程。分析程序以提取系統(tǒng)架構(gòu)、數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)等原設(shè)計(jì)或開(kāi)發(fā)信息,從而在比源代碼更高的抽象層次上復(fù)原或創(chuàng)建出程序蘊(yùn)藏的表示元。在原系統(tǒng)資料完整清晰的情況下,往往可直接用再設(shè)計(jì)取代繁瑣的逆向工程過(guò)程。(2)重構(gòu)。重構(gòu)是指在不影響系統(tǒng)的功能和使用的前提下,轉(zhuǎn)換系統(tǒng)同層次內(nèi)的抽象表示,以提升軟件質(zhì)量、穩(wěn)定性、擴(kuò)展性和可維護(hù)性。一般可按需進(jìn)行數(shù)據(jù)重構(gòu)和代碼重構(gòu)。(3)正向工程。該活動(dòng)基于逆向工程或類(lèi)似手段恢復(fù)或獲取的需求、設(shè)計(jì)信息、代碼信息等資源,結(jié)合需求變更、技術(shù)改造、代碼重用、重構(gòu)等手段,把設(shè)計(jì)信息轉(zhuǎn)化為代碼,以開(kāi)發(fā)一套新系統(tǒng),最終適應(yīng)客戶(hù)需求。每階段的工作難度和工作量視遺留系統(tǒng)的具體情況而定。
2某制造企業(yè)設(shè)備管理遺留系統(tǒng)存在的不足
某制造企業(yè)十多年前外購(gòu)并實(shí)施了基于C/S、B/S混合架構(gòu)的設(shè)備管理系統(tǒng)。該系統(tǒng)曾經(jīng)很好的滿(mǎn)足了企業(yè)的設(shè)備管理需求,然而隨著企業(yè)規(guī)模的擴(kuò)張和時(shí)間的推移,原系統(tǒng)缺陷日益凸顯,其主要體現(xiàn)在:(1)系統(tǒng)難以直接在當(dāng)前基礎(chǔ)上修改和迭代,具備明顯的遺留特性。由于時(shí)間久遠(yuǎn),原系統(tǒng)提供商早已不復(fù)存在,且其C/S界面采用PB語(yǔ)言開(kāi)發(fā),該技術(shù)平臺(tái)幾乎已被淘汰,不再適應(yīng)業(yè)界最新潮流。(2)用戶(hù)體驗(yàn)和功能方面難以滿(mǎn)足企業(yè)對(duì)設(shè)備信息日益增長(zhǎng)的需求。一是隨著企業(yè)設(shè)備管理的日益精細(xì)化,新增大量的設(shè)備統(tǒng)計(jì)報(bào)表需予以信息化和可視化;二是設(shè)備管理遺留系統(tǒng)操作和顯示不夠直觀;三是原系統(tǒng)的C/S版界面安裝繁瑣,操作不便,已不再適應(yīng)當(dāng)今潮流。(3)查詢(xún)統(tǒng)計(jì)運(yùn)行緩慢。原系統(tǒng)開(kāi)發(fā)時(shí)企業(yè)規(guī)模較小,且服務(wù)器性能一般,設(shè)計(jì)者對(duì)數(shù)據(jù)量和性能壓力估計(jì)不足。隨著企業(yè)設(shè)備資產(chǎn)、管理人員的增多及常年使用累計(jì)了海量的數(shù)據(jù)記錄,系統(tǒng)查詢(xún)、統(tǒng)計(jì)報(bào)表運(yùn)行速度較為緩慢,易于宕機(jī)。
3關(guān)鍵實(shí)現(xiàn)技術(shù)
通過(guò)分析設(shè)備管理遺留系統(tǒng)的不足、調(diào)研獲取的項(xiàng)目資料及客戶(hù)意見(jiàn),決定采用遺留系統(tǒng)再造即軟件再工程方法改造系統(tǒng)滿(mǎn)足客戶(hù)需求,其理由在于:(1)設(shè)備管理系統(tǒng)需保證日常不間斷使用,全新開(kāi)發(fā)意味著用戶(hù)需承擔(dān)丟棄老系統(tǒng)、重新大量投資和等待較長(zhǎng)時(shí)間的風(fēng)險(xiǎn),且項(xiàng)目預(yù)算有限,故排除全新開(kāi)發(fā)策略。(2)原業(yè)務(wù)系統(tǒng)采集數(shù)據(jù)無(wú)法滿(mǎn)足新增報(bào)表的字段需求,新增需求并非是決策支持,且技術(shù)平臺(tái)較老,擴(kuò)展性差,故不適合集成擴(kuò)展策略。(3)原系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)可在重用基礎(chǔ)上修改,存儲(chǔ)過(guò)程代碼和服務(wù)端軟件代碼部分可重用,符合軟件再工程的前提。此外,由于大部分源代碼和系統(tǒng)保留完整,且用戶(hù)需求清晰,本系統(tǒng)再工程無(wú)需采用逆向工程手段,可直接進(jìn)行系統(tǒng)再設(shè)計(jì)、重構(gòu)和正向工程開(kāi)發(fā)。由此,下文首先給出系統(tǒng)再工程情境下的總體架構(gòu)再設(shè)計(jì)、功能模塊再劃分及數(shù)據(jù)結(jié)構(gòu)重構(gòu)的思路,再闡述系統(tǒng)實(shí)現(xiàn)應(yīng)用的重構(gòu)及正向工程技術(shù)。
3.1系統(tǒng)再設(shè)計(jì)
3.1.1總體架構(gòu)再設(shè)計(jì)
為克服原系統(tǒng)弊端,首先將原系統(tǒng)的服務(wù)端代碼遷移為WCFRIAService模塊服務(wù),再基于Silverlight技術(shù)重寫(xiě)客戶(hù)端,最終升級(jí)為面向富客戶(hù)端環(huán)境的展現(xiàn)層、服務(wù)層和數(shù)據(jù)層三層架構(gòu)。系統(tǒng)總體架構(gòu)再設(shè)計(jì)后的主要技術(shù)特色為:(1)由技術(shù)滯后的C/S、B/S混合架構(gòu)升級(jí)到富客戶(hù)端架構(gòu),實(shí)現(xiàn)了客戶(hù)端技術(shù)和環(huán)境的統(tǒng)一,解決了客戶(hù)端異構(gòu)、瀏覽器異構(gòu)問(wèn)題,安裝升級(jí)運(yùn)維更加便捷。(2)展現(xiàn)層從單一的用戶(hù)界面擴(kuò)展為用戶(hù)界面和視圖模型,以支持?jǐn)?shù)據(jù)雙向綁定和頁(yè)面顯示邏輯,并實(shí)現(xiàn)基于RiaService類(lèi)與服務(wù)層交互,顯著減少了數(shù)據(jù)訪問(wèn)代碼的開(kāi)發(fā)量。(3)服務(wù)層在原數(shù)據(jù)訪問(wèn)、業(yè)務(wù)邏輯模塊的基礎(chǔ)上新增了WCFRIAService模塊,以支持統(tǒng)一的富客戶(hù)端架構(gòu)。(4)數(shù)據(jù)層組成不變,仍為設(shè)備數(shù)據(jù)庫(kù)和集成數(shù)據(jù)接口,然而其數(shù)據(jù)結(jié)構(gòu)需參照最新用戶(hù)需求重構(gòu)。
3.1.2功能模塊再劃分
根據(jù)調(diào)研用戶(hù)需求和分析原系統(tǒng),重劃分設(shè)備管理系統(tǒng)的功能結(jié)構(gòu),如圖2所示。再劃分前后的主要改進(jìn)為:(1)原系統(tǒng)僅支持單一企業(yè)運(yùn)行管控,改進(jìn)后的固定資產(chǎn)管理增加了集團(tuán)管理的功能,實(shí)現(xiàn)了集團(tuán)公司對(duì)下游分公司設(shè)備資產(chǎn)變更的管控。(2)設(shè)備日常運(yùn)行管理不僅負(fù)責(zé)采集設(shè)備利用率、綜合效率求解所需的運(yùn)行數(shù)據(jù),還應(yīng)記錄與故障密切相關(guān)的設(shè)備參數(shù),以便進(jìn)行預(yù)防性維護(hù)決策和故障分析。(3)新增設(shè)備布局功能界面,使得單據(jù)維護(hù)和設(shè)備選取可在直觀可視化的情境下完成,更為易用。(4)統(tǒng)計(jì)報(bào)表增加了瓶頸設(shè)備統(tǒng)計(jì)、工單完成率統(tǒng)計(jì),已便于定位影響生產(chǎn)效率的瓶頸設(shè)備及閉環(huán)化管理設(shè)備預(yù)防維護(hù)和故障維修工作。(5)系統(tǒng)基礎(chǔ)數(shù)據(jù)管理新增集成設(shè)置功能,專(zhuān)用于系統(tǒng)管理員或?qū)嵤┤藛T維護(hù)集成信息,以便對(duì)外部信息系統(tǒng)共享其所關(guān)注的設(shè)備信息。
3.1.3數(shù)據(jù)結(jié)構(gòu)重構(gòu)
為適應(yīng)系統(tǒng)功能模塊再劃分,系統(tǒng)數(shù)據(jù)結(jié)構(gòu)需進(jìn)行少量重構(gòu),主要變更如下:(1)所有數(shù)據(jù)表新增“所屬公司”和“所屬崗位”字段以細(xì)化記錄行歸屬定義,為未來(lái)集團(tuán)化的設(shè)備管理和用戶(hù)授權(quán)奠定數(shù)據(jù)基礎(chǔ)。(2)為實(shí)現(xiàn)設(shè)備布局功能,在數(shù)據(jù)庫(kù)中新增“指引線信息表”,以便以箭頭形式指示生產(chǎn)流程和設(shè)備間的工藝關(guān)聯(lián);新增“緩存版本表”,以便提升布局的加載速度和系統(tǒng)其他靜態(tài)信息的加載;設(shè)備實(shí)物信息表新增“X坐標(biāo)”“、Y坐標(biāo)”字段,以標(biāo)定設(shè)在布局中的相對(duì)位置。(3)為加快查詢(xún)速度,分別為各統(tǒng)計(jì)報(bào)表新增“統(tǒng)計(jì)結(jié)果臨時(shí)表”,統(tǒng)計(jì)報(bào)表模塊的存儲(chǔ)過(guò)程優(yōu)先寫(xiě)入此類(lèi)臨時(shí)表,以減少不必要的重復(fù)計(jì)算,并錯(cuò)開(kāi)報(bào)表獲取高峰,從而加快用戶(hù)查詢(xún)速度。
3.2基于MVVM設(shè)計(jì)模式的代碼重構(gòu)技術(shù)
設(shè)計(jì)模式是實(shí)現(xiàn)系統(tǒng)重構(gòu)和代碼重用的最重要手段之一。原系統(tǒng)的C/S、B/S程序未采用任何設(shè)計(jì)模式,其頁(yè)面代碼和展示邏輯代碼耦合性較強(qiáng),代碼冗余大,維護(hù)繁瑣。針對(duì)此問(wèn)題,在本項(xiàng)目軟件再工程中實(shí)施了MVVM設(shè)計(jì)模式,并收獲了良好的應(yīng)用效果。MVVM是“模型(Model)—視圖(View)—視圖模型(ViewModel)”的簡(jiǎn)稱(chēng),其基于Silverlight數(shù)據(jù)綁定特性,將設(shè)備管理系統(tǒng)中緊密聯(lián)系的前臺(tái)頁(yè)面和邏輯代碼靈活解耦為模型、視圖、視圖模型三大組成部分。如圖3所示,模型部分基于WCF數(shù)據(jù)通信技術(shù)提供對(duì)處于數(shù)據(jù)層的設(shè)備數(shù)據(jù)庫(kù)和集成數(shù)據(jù)接口的雙向操作,以便為視圖和視圖模型提供基礎(chǔ)數(shù)據(jù)支撐。視圖是模型的具體實(shí)現(xiàn)即設(shè)備管理系統(tǒng)的用戶(hù)界面,可根據(jù)業(yè)務(wù)和數(shù)據(jù)需求與多個(gè)視圖模型綁定,一個(gè)視圖模型也可映射到不同的視圖。視圖模型介于視圖和模型之間發(fā)揮解耦和承接作用,用于描述和存儲(chǔ)業(yè)務(wù)的概念模型,并可包含視圖所需的接口和屬性,響應(yīng)用戶(hù)界面的操作,以便從模型獲取最新數(shù)據(jù),并反饋結(jié)果給當(dāng)前用戶(hù)。相比重構(gòu)前,應(yīng)用MVVM設(shè)計(jì)模式重構(gòu)設(shè)備管理系統(tǒng)帶來(lái)的優(yōu)點(diǎn)主要有:(1)代碼耦合性和開(kāi)發(fā)量降低,可重用性顯著提升。此前系統(tǒng)的模型修改往往直接導(dǎo)致視圖不再可用,還需重新編寫(xiě)顯示邏輯代碼。而MVVM模式下視圖和模型不再直接關(guān)聯(lián),任意一方變動(dòng)并不意味著另一方必須隨之改變,一切的變化可通過(guò)視圖模型部分靈活協(xié)調(diào),且視圖模型中的方法和函數(shù)可在整個(gè)系統(tǒng)中大范圍重用。此外,數(shù)據(jù)綁定特性的存在也省去了大量的數(shù)據(jù)訪問(wèn)代碼。(2)實(shí)現(xiàn)了關(guān)注點(diǎn)分離,代碼層次大為清晰,易于分工協(xié)作,加快開(kāi)發(fā)效率。前端界面設(shè)計(jì)師可專(zhuān)注于設(shè)備管理系統(tǒng)前臺(tái)頁(yè)面設(shè)計(jì)和用戶(hù)體驗(yàn),后臺(tái)程序員可全力從事邏輯代碼的開(kāi)發(fā),相互影響減小到最低程度。專(zhuān)業(yè)分工有助于分類(lèi)測(cè)試和開(kāi)發(fā)管理,可提升軟件開(kāi)發(fā)質(zhì)量。
3.3基于組件式開(kāi)發(fā)的正向工程技術(shù)
原系統(tǒng)代碼調(diào)用和組裝較為隨意,冗余較大,不便維護(hù)。為克服上述缺點(diǎn),在本項(xiàng)目的正向工程中大力應(yīng)用了組件式開(kāi)發(fā)。軟件系統(tǒng)中的組件是一類(lèi)二進(jìn)制形式、面向?qū)ο蟆⒓床寮从谩⒖芍赜玫能浖募K。廣義而言,封裝的對(duì)象類(lèi)庫(kù)、框架、模型、文檔等可重用的軟件單元均屬于組件。組件式開(kāi)發(fā)即基于軟件復(fù)用思想,根據(jù)項(xiàng)目需求從組件庫(kù)中選配或定制開(kāi)發(fā)合適的組件,并將各組件連接組裝集成為一套功能完整、適合應(yīng)用的軟件系統(tǒng)。參照設(shè)備管理系統(tǒng)各模塊功能性及組件通用性特點(diǎn),本項(xiàng)目主要采用了程序級(jí)組件復(fù)用,總體上抽取和構(gòu)建了公用組件和專(zhuān)用組件兩大類(lèi)組件。公用組件一般提取自各模塊的共性需求,需跨模塊共享調(diào)用,如分頁(yè)組件、表頭工具欄組件、報(bào)表組件、統(tǒng)計(jì)組件、權(quán)限組件、數(shù)據(jù)校驗(yàn)組件、數(shù)據(jù)訪問(wèn)組件等。專(zhuān)用組件專(zhuān)門(mén)負(fù)責(zé)滿(mǎn)足某些特色功能需求,封裝后可在系統(tǒng)中小范圍重用,包括設(shè)備選擇、人員選擇、故障選擇、設(shè)備布局可視化等組件。應(yīng)用組件式開(kāi)發(fā)帶來(lái)的主要優(yōu)點(diǎn)有:(1)開(kāi)發(fā)效率高,縮短了工期,節(jié)約了正向工程的成本。由于大量基礎(chǔ)和公用功能為組件提供,減小了系統(tǒng)開(kāi)發(fā)的復(fù)雜度、工作量和開(kāi)發(fā)人員的勞動(dòng)強(qiáng)度,降低了開(kāi)發(fā)成本。(2)軟件可維護(hù)性、可升級(jí)性和質(zhì)量顯著提升。組件式開(kāi)發(fā)降低了設(shè)備管理系統(tǒng)模塊間的耦合性和冗余性,提升了軟件的一致性和可復(fù)用性,使其內(nèi)部層次更為清晰可讀,更易維護(hù)升級(jí),代碼質(zhì)量顯著提升。此外,原分散實(shí)現(xiàn)的查詢(xún)統(tǒng)計(jì)功能借由統(tǒng)一組件支持實(shí)現(xiàn),查詢(xún)性能得到了顯著提升。
4實(shí)踐
基于遺留系統(tǒng)再工程的思想、Silverlight5.0平臺(tái)為某企業(yè)升級(jí)開(kāi)發(fā)了設(shè)備管理遺留系統(tǒng)。由于采用了先進(jìn)的處理策略、開(kāi)發(fā)思想和平臺(tái),整套系統(tǒng)平臺(tái)從需求調(diào)研到做完升級(jí)開(kāi)發(fā)和數(shù)據(jù)遷移僅由4人小團(tuán)隊(duì)耗時(shí)4個(gè)月完成。再工程后系統(tǒng)功能、用戶(hù)體驗(yàn)和性能均顯著提升,類(lèi)似如圖4和圖5所示,改進(jìn)后實(shí)現(xiàn)直觀的可視化設(shè)備管理和故障統(tǒng)計(jì),優(yōu)于原系統(tǒng)的純表單錄入和查看,可滿(mǎn)足企業(yè)未來(lái)相當(dāng)長(zhǎng)時(shí)間內(nèi)的設(shè)備管理需求。項(xiàng)目符合客戶(hù)預(yù)期,解決了設(shè)備管理遺留系統(tǒng)難題,節(jié)約了甲乙雙方的成本和時(shí)間,還最大限度保護(hù)了企業(yè)已有和未來(lái)的IT投資,達(dá)到了雙方滿(mǎn)意共贏的效果。圖4基于設(shè)備布局的可視化設(shè)備管理Fig.4VisualEquipmentManagementbasedonEquipmentLayout圖5設(shè)備故障統(tǒng)計(jì)Fig.5EquipmentFailureStatistics
5結(jié)束語(yǔ)
針對(duì)設(shè)備管理遺留系統(tǒng)的升級(jí)和改造問(wèn)題,研究并提出了其軟件再工程策略和相關(guān)技術(shù)。相關(guān)研究成果有助于加速老舊信息系統(tǒng)改造,減小“信息孤島”現(xiàn)象,提升企業(yè)信息化水平和管理水平。鑒于遺留系統(tǒng)的升級(jí)改造問(wèn)題不僅存在于設(shè)備管理信息化環(huán)節(jié),還廣泛浮現(xiàn)于其他資源或業(yè)務(wù)的信息化領(lǐng)域,研究實(shí)踐對(duì)類(lèi)似遺留系統(tǒng)的處理也具備較好的借鑒意義。
作者:顧嘉 張華 涂海寧 熊根良 單位:南昌大學(xué)機(jī)電工程學(xué)院