摘 要: 模塊化重構(gòu)是將代碼進(jìn)行封裝,一次編寫多處使用。本文通過一個基于VB.net的學(xué)生成績統(tǒng)計(jì)分析系統(tǒng),利用軟件模塊化的思想,把所有功能軟件進(jìn)行封裝,進(jìn)而通過接口重新構(gòu)建一個面向VB.Net的嶄新的罪犯勞教統(tǒng)計(jì)分析系統(tǒng)。
關(guān)鍵詞: VB.Net 軟件 模塊化重構(gòu)
1.引言
隨著全球化的發(fā)展趨勢和全球化市場競爭壓力的增加,一方面,企業(yè)需要更多的業(yè)務(wù)靈活性和創(chuàng)新能力。另一方面,不斷增加的IT環(huán)境復(fù)雜度和歷史遺留系統(tǒng),對企業(yè)的IT提出了新的挑戰(zhàn)。模塊化思想恰恰能夠幫助企業(yè)從根本上解決這一問題,它通過抽象、封裝、分解、層次化等基本的科學(xué)方法,對各種軟件構(gòu)件和軟件應(yīng)用進(jìn)行打包,提高對企業(yè)現(xiàn)資產(chǎn)的重用水平和能力?;谀K化思想,業(yè)界提出了SOA技術(shù),它提供一組基于標(biāo)準(zhǔn)的方法和技術(shù),通過有效整合和重用現(xiàn)有應(yīng)用系統(tǒng)和各種資源,對各種服務(wù)進(jìn)行服務(wù)組件化,并基于服務(wù)組件實(shí)現(xiàn)各種新的業(yè)務(wù)應(yīng)用的快速組裝,幫助企業(yè)很好地應(yīng)對業(yè)務(wù)的靈活性要求。它通過有效平衡業(yè)務(wù)的靈活性和IT的靈活性、平衡業(yè)務(wù)的靈活性和IT的復(fù)雜度,為IT人提供了一個業(yè)務(wù)視角,讓IT人學(xué)會用業(yè)務(wù)的眼睛看世界,有效地拉近了IT和業(yè)務(wù)的距離。
2.基于VB.Net的學(xué)生成績統(tǒng)計(jì)分析系統(tǒng)
2.1系統(tǒng)需求分析
學(xué)生成績統(tǒng)計(jì)分析系統(tǒng)對學(xué)生的考試信息進(jìn)行整理分析,進(jìn)而得到一些有助于教學(xué)的信息供教師采納,以便針對不同情況及時調(diào)整教學(xué)策略。其主要功能有:學(xué)生成績的統(tǒng)計(jì)排名、學(xué)生答題的情況分析(包括全班學(xué)生錯答率,以及全班每道試題答錯的學(xué)生統(tǒng)計(jì))、近三次考試學(xué)生成績排名的折線統(tǒng)計(jì)分析(即每次考試結(jié)果都存入數(shù)據(jù)庫中,且有單人名次排名曲線分析)等。
2.2系統(tǒng)模塊化設(shè)計(jì)
模塊化思維就是程序員在完成任何一個功能模塊或函數(shù)的時候,都要進(jìn)行多方面的思考,不能局限在完成當(dāng)前任務(wù)的簡單思路上,必須把該模塊是否可以脫離這個系統(tǒng)存在考慮在內(nèi),并且可以通過簡單的修改參數(shù)的方式在其他系統(tǒng)和應(yīng)用環(huán)境下直接引用,這樣就能極大避免重復(fù)性的開發(fā)工作。
本文采用模塊化思想,首先對本系統(tǒng)進(jìn)行功能分割,盡量令每一個功能都產(chǎn)生較小的耦合度,并盡量細(xì)化每一項(xiàng)功能,利用最小化功能模塊的原則。然后對每一項(xiàng)功能都單獨(dú)設(shè)計(jì),假設(shè)脫離當(dāng)前的系統(tǒng)需要,僅僅就某一項(xiàng)功能進(jìn)行獨(dú)立研究,保留相應(yīng)的接口便可。接著在VB中將各個模塊(包括界面)單獨(dú)做成DLL類庫。最后利用動態(tài)調(diào)用DLL類庫,把所有的功能像工廠組裝零件一樣重新組合。這體現(xiàn)了軟件架構(gòu)的兩個著眼點(diǎn),一是從用戶用這個軟件的角度來看,軟件要具有用戶想要的功能;二是軟件結(jié)構(gòu),從開發(fā)人員的角度看,有些模塊用來實(shí)現(xiàn)模塊化,與功能基本沒有關(guān)系,但通過這些結(jié)構(gòu)模塊,可能更新功能模塊,前者對應(yīng)于具體的專業(yè)問題,后者是軟件技術(shù)的基本問題。
從本系統(tǒng)中抽象出四個功能模塊,分別是數(shù)據(jù)庫的連接、統(tǒng)計(jì)排名情況模塊、情況分析模塊和折線統(tǒng)計(jì)模塊,再對其封裝為四個單獨(dú)的模塊類public class conn{}、public class tongji{}、public class qingkuang{}、public class zhexiantongji{},接著把此三類整合為一個DLL類庫zonghe.dll。最后進(jìn)行交互式的界面設(shè)計(jì)并調(diào)用zonghe.dll動態(tài)庫中的特定類完成所需要的各項(xiàng)工作。
3.重構(gòu)的罪犯勞教統(tǒng)計(jì)分析系統(tǒng)
在進(jìn)行罪犯勞教統(tǒng)計(jì)分析系統(tǒng)的設(shè)計(jì)編碼時,由于同時遇到和學(xué)生成績統(tǒng)計(jì)分析系統(tǒng)中的部分功能相近,就不必再重新對其進(jìn)行編碼,只需要直接引入所設(shè)計(jì)好的DLL類庫zonghe.dll,重新設(shè)計(jì)交互式界面并進(jìn)行必要的調(diào)整完成新功能的構(gòu)建情況,也可以根據(jù)情況進(jìn)行稍微的變化。如產(chǎn)量累計(jì)查詢時,可以參考zonghe.dll當(dāng)中的public class tongji{}類,通過傳遞不同的參數(shù)即可達(dá)到不同的統(tǒng)計(jì)目的。首先通過zonghe.dll當(dāng)中的public class conn{}進(jìn)行數(shù)據(jù)庫的連接。然后本系統(tǒng)可以按照傳遞時間段再動態(tài)調(diào)用public class tongji{}類實(shí)現(xiàn)按照時間段進(jìn)行產(chǎn)量累計(jì)統(tǒng)計(jì);傳遞姓名再動態(tài)調(diào)用public class tongji{}類實(shí)現(xiàn)按照姓名進(jìn)行產(chǎn)量累計(jì)統(tǒng)計(jì);傳遞工種再動態(tài)調(diào)用public class tongji{}類實(shí)現(xiàn)按照工種進(jìn)行產(chǎn)量累計(jì)和統(tǒng)計(jì)。
4.結(jié)語
本文通過一個系統(tǒng)模塊化設(shè)計(jì)的再重構(gòu)以實(shí)現(xiàn)不同的系統(tǒng),各模塊間的接口規(guī)范,有利于集成,每一個模塊單獨(dú)調(diào)試修改,從而實(shí)現(xiàn)了軟件的模塊化重構(gòu)的思路,極大地提高了軟件再建的速度和質(zhì)量。
參考文獻(xiàn):
?。?]魯佩云.ADO對象模型和用VB實(shí)現(xiàn)其應(yīng)用的兩種方式[J].計(jì)算機(jī)工程與設(shè)計(jì),2005,(07).
?。?]李永曦,陶偉蓮,關(guān)立行.在VB6.0中調(diào)用MATLAB程序[J].微機(jī)發(fā)展,2004,(01).
?。?]劉鋼.VB.NET程序設(shè)計(jì)基礎(chǔ).高等教育出版社,2009.7.
基金支持:衡水學(xué)院院級課題(課題編號:2011028