郭子源

摘要
目前,隨著互聯網的廣泛普及應用,計算機軟件產業已經深刻影響著社會各行業的發展.較早之前,快速準確的開發符合客戶需求的軟件產品是比較困難的,但隨著軟件復用的研究與發展,以及軟件產品線的產生,使得可以在滿足用戶個性化需求的前提下,通過產品線的定制以及調整,快速有效的生產軟件產品本文對教學服務管理領域進行了研究,并運用領域工程方法給出解決方案,從而為該領域內一系列新系統的設計與開發提供了可復用資產,有助于提高該領域的軟件開發質量和效率。同時基于實際應用背景,運用領域工程的成果設計開發了教學服務管理系統,初步對本方案可行性進行了驗證。
【關鍵詞】教學服務管理 軟件產品線 領域工程 可變性
1 緒論
目前,社會各行業己開始廣泛應用軟件系統,而軟件企業需要縮短軟件產品上市時間,并在保證軟件質量的前提下,縮減開發中的開銷成本。在軟件產業發展過程中,根據軟件大規模復用以及軟件密集型系統的研究,產生了軟件產品線技術。軟件產品線著眼于領域內一系列相似系統,新系統的需求往往與己有系統存在很多相似性,使用軟件產品線就可以達到節省軟件開發過程開銷、提高開發效率的作用。
軟件產品線包括領域工程和應用工程兩個生命周期。在進行領域工程的過程中,為了表達領域內存在的相似性,引入了特征作為工具,面向特征的分析已經是最流行的領域分析方法。在軟件產品線中,所有產品通常都可以利用特征模型表示出來,這樣就可以利用一組特征的特定組合,來表達所有產品的特性。
2 面向特征領域分析方法
面向特征的領域分析方法是由SEI提出的,在眾多領域中被成功應用,它被認為是最為實用的領域建模技術之一。FODA方法中最關鍵的就是通過領域模型對領域中的特征進行明確的表達,并由此建立出特征模型。
面向特征的領域分析方法主要包含兩個工作階段上下文分析(語境分析)和領域建模。
2.1 上下文分析
該階段的主要目標是通過分析和評估領域內元素和領域外元素之間的關系,來界定相應領域的領域范圍。最終建立領域涉眾表及領域字典等用以表達領域上下文。
2.2 領域建模
該階段的主要任務是對領域內一組系統所存在的共性特征和可變特征進行獲取,最終完成對領域模型構建。
3 教學服務管理領域分析
本文所研究的范圍是教學服務管理領域。教學服務管理系統需要統一地對教師、學生以及教務管理員所涉及的相關事宜,如課程資源、作業、教務通知、教學反饋等各個方面進行管理,并承擔起教學和管理平臺的重任。
在領域分析過程中,我們對教學服務管理的共性和可變性特征進行捕獲、選擇、抽象和表達。構建出的領域模型主要由行為層、功能層以及服務層三個層次組成。
3.1 領域服務層分析
該層的主要任務是找出領域內存在的服務,獲得每個服務具有的服務特征。這些特征既包括了領域共性特征,也包括領域變化性特征。
3.2 領域功能層分析
該層的主要任務是通過對領域內服務功能的分析,獲得相應的功能特征。領域功能層特征分為可選特征和必選特征:可選特征能良好的反映領域內的系統之間的差異性;必選特征是領域中所有的系統都必須擁有的特征。以作業管理這一領域服務為例,必選特征包括布置作業、提交作業、批閱作業,可選特征包括查看結果,如圖1所示。
3.3 行為特點層分析
該層的主要任務是得到領域功能具有的行為特點,主要包含了分析執行時前期及后期的行為特點。前期行為特點包括前期準備、前置條件等后期行為特點包括控制權限的變化、后置條件等。以領域服務層中布置作業特征為例,相應的行為特點分析結果如圖1所示。
4 教學服務管理領域體系結構設計
利用分層的體系結構可以很好的降低B/S架構中系統存在的耦合度,因此分層體系結構被廣泛使用。我們設計了如圖2所示的教學服務管理系統多層體系結構。
該體系機構的具體各層分解如下:
4.1 基礎構件層
該層處在系統的最底層,主要包括了提供系統支持的基礎構件。在該層通過對數據進行代碼封裝,并以一定的組織形式構成數據構件。該層為其上層提供調用接口,有效的支持了系統各業務的完成與實現。
4.2 原子業務構件層
該層是在對業務細化的前提下,組織和整合基礎構件層所提供的構件。最終形成一系列數據處理構件、界面構件等。
4.3 基礎業務構件層
該層的構件可以直接面向具體的應用,直接處理部分相關業務,但并不能滿足所有應用的需求。該層構件是通過組織若干個原子業務層所提供的原子構件而形成的。
4.4 通用應用構件層
通過基礎業務構件以及原子構件等一系列小粒度構件原料的組織整合,最終形成了該層構件。該層構件在級別上處于領域子系統級別。當然不同的領域,不同的業務所產生的通用應用構件也就不盡相同。
4.5 領域應用構件層
該層是將上述幾層的構件進行篩選、聚合、組裝而形成的更加復雜的領域應用構件,最終形成符合特定領域需求的通用領域構件。
5 教學服務管理領域實現
J2EE是一個被廣泛認可的工業標準,是由多個行業內權威企業共同發起的標準。J2EE提供了支持HTTP訪問的Servlets和JSP.對業務邏輯封裝的EJB(Enterprise Java Beans)組件技術、以及對XML的全面支持。J2EE提供了一系列支持良好的實現機制,來對不同行業的特定需求進行適應,在使用J2EE做為開發平臺時,系統可以有很強的穩定性、可移植性、易維護性。
在完成教學服務管理系統的領域分析和設計之后,我們應用J2EE及框架技術進行功能模塊的實現。根據實際教學服務管理系統的特定需求,我們對領域的工作流程、用戶權限、界面顯示等進行了定制。本教學服務管理系統實現了作業管理、考試安排、教學反饋、論壇中心、個人中心等功能模塊。教學服務管理系統的學生主界面如圖3。
6 總結
本文采用了基于領域工程的軟件開發方法設計實現了教學服務管理系統,相比傳統開發方式,軟件質量及效率都有所提升。但由于時間、精力及研究方向的深度探索等問題,仍然存在很多可以改進之處:領域工程整個過程需要不斷精化及循環回溯,今后在新需求的基礎上,對教學服務管理系統領域再進行領域工程,使領域可復用資產得到擴展及精化;此外,特征的溯源性這一方面也是值得深入研究的,通過特征的追根溯源,可以完成由特征到體系結構的平滑過渡。
參考文獻
[1]鄧小娥.軟件產品線工程方法的研究和應用[D].東華大學,2011.
[2]Bjorner,Dines.A survey of domainengineering.Software EngineeringConference(APSEC),2012 19th Asia-Pacific.
[3]周錦程,王丹,余泉,夏開建,洪華軍.基于領域工程的構件化可擴展管理信息系統[J].計算機系統應用,2010(12).
[4]A component-based approach tothe design and implementationof assembly automation system.Proceedings of the Institution ofMechanical Engineers,PartB:Journalof Engineering Manufacture,2007.
[5]崔發強.基于領域工程的構件化預算管理系統設計與實現[D].電子科技大學,2012.
[6]DeePak Alur,John Crupl,Dan Malks.Core J2EE patterns[M].機械工業出版社.2002.1 .
[7]格根其.基于教學服務系統的數據庫存儲過程的研究[D].天津科技大學,2014.