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