陶慧
摘 要:本文分析了軟件工程及J2EE體系統架構,介紹了軟件工程化的項目化及管理原則,網上銀行軟件工程化實施步驟,J2EE體系統架構及開發環境。
關鍵詞:軟件工程;J2EE體;架構
網上銀行業務的興起從開始到現在僅僅只經過十來年的發展,歷史非常短。最開始其只是用于網上業務查詢、轉賬等資金業務,伴隨著實體經濟的發展,網上銀行逐漸應用于實體經濟交易當中。關于網上銀行的研究,首要的是關注網上銀行的安全性,其次才是功能的便捷性和全面性。相對而言國外銀行電子化工作開展較早,對于應用軟件的安全性研究也比較深入。
1 軟件工程化的項目化及管理原則
軟件工程是指計算機軟件開發和維護的工程學科,工程化是指將軟件工程實踐化,具體應用于實際項目中,實現在人、技術、過程在項目生命周期中的集成化,以求在時間(T)、質量(Q)、成本(C)、服務(S)方面使得軟件開發組織產品開發的產品得到最大程度的平衡。
軟件工程是一個涉及組織許多部門的基礎建設,一般情況下可以當作是一個項目來進行管理。因此在軟件工程的實現過程中,運用項目管理的相關理論,有利于提高軟件工程化的實施質量。軟件工程化具有以下幾個明顯的特點:(1)一次性,即工程化有明確的開始時間和明確的結束時間,在這個時間段內由此而專門組織起來的人員來完成某一項任務。該任務應明確需要利用的資源范圍和需要達到的預期目標。(2)工程化組織的臨時性。為完成軟件工程,一般通過項目組人員來完成對各類資源的調配和使用,但是這一組織會隨著項目的結束而結束(當然不排除部份人員繼續為項目的后期工作服務)。(3)軟件工程作為管理對象的整體性。一個軟件工程是一個整體的管理對象,它可能由多個子軟件工程組成。軟件工程化小組通過對軟件工程進行整體管理,能提高軟件工程的總體效益,達到數量、質量、結構的總體優化。事實上,類似于軟件工程的活動在我們日常生活中隨處可見,它可大可小,如舉辦一個奧運會、修建一座橋梁、修建地鐵、研發一種新型客機等大項目,也可以是舉辦一次小型會議、組織一次旅游、推廣某種產品的小項目。這些項目都具有一次性的特點,它要求在一定的時間內完成。因此也有人認為“項目是新企業、新產品、新工程、新系統和新生技術的總稱”。網上銀行軟件工程的特殊性在于,它是以無形的軟件產品作為最終的產品,而且直接關系到銀行、企業、消費者以及合作伙伴的交易方式等,對社會經濟有非常大影響,特別是在資金安全方面。因此,網上銀行軟件工程應遵循以下幾個原則:
(1)組織最高管理者參與原則。軟件工程涉及到多部門的協調,而且可能直接關系到組織的變革、管理的革新、技術的革命等。組織的最高管理者不僅需要看到這種革命帶來的作用和效益,還要認識到軟件工程化過程中所產生的風險和必須的持續的投入。對于網上銀行軟件工程而言,只允許成功,不允許失敗,因為失敗極可能意味著安全信用的缺失,進而威脅到銀行的生存。
(2)總體規劃,分步實施、重點突破的原則。這是分散軟件工程化帶來的風險的較好的方式。軟件開發組織存在的基礎就是創造效益,在網上銀行系統構建的整個項目開發過程中,涉及到較大的人力、物力以及時間成本投入,沒有預期的效益評估,就缺乏整個工程開發的動力,這就要求給予項目一個規定的開始時間和結束時間,對系統內容做一個規劃和分工工作。
(3)培訓優先原則。無論是實施前、實施中還是實施后都應以培訓為先導。不管是開發者、還是測試者、最后的使用者,他們對軟件的運用的實際情況很大程度上決定了軟件工程的成敗與否。因此要在組織內部開展全方位、多層次的培訓,尤其要重視崗位培訓,讓他們理解業務、理解管理革新的迫切性和必要性。
2 網上銀行軟件工程化實施步驟
對于任何項目的開展,都可以分為項目前期準備工作,項目中期實施工作以及項目后期維護工作三個方面。無論是SW-CMM,IS09000標準還是CIMS應用示范工程的項目實踐,其具體過程有相似之處,大概步驟如下:
(1)前期準備工作。在高層決定實施網上銀行系統項目開發之后,首要工作就是進行各類準備。①成立項目小組。該小組核心成員將伴隨軟件工程的開始到結束。項目小組長應對信息系統及銀行業務具有較為全面的了解,同時具備較高的管理能力和協調能力。項目小組成員為各業務部門經理或項目經理及相關人員。成立項目小組時要以項目的規模,項目的主要開發內容為出發點,確定項目小組的構成成員。②確定項目基本需求。項目必須給定一個確定的開始時間和結束時間,在整個項目的開展工作中,將項目任務進行階段性劃分,確定各階段的項目需求和項目階段性任務驗收標準。
項目前期準備工作也就是確認項目成員,項目任務,項目控制,項目管理,項目驗收等各方面的規劃工作,并形成相應的文檔,作為項目實施階段的參照、遵守憑證。
(2)中期實施工作。①現狀調研。軟件工程小組成員需結合具體的業務人員(特別是部門領導)和具體的技術人員,對銀行業務進行詳盡的調研,了解企業目前的技術狀況,確定現有的過程、組織、角色及職責等。該環節非常重要,因為開發人員往往不懂得業務,而銀行業務本身較為復雜,對系統邏輯的嚴謹性和嚴密性有著非常高的要求。②形成網上銀行工程模型。對調研報告進行分析整理,作為項目工程模型的設計需求輸入,形成項目開發的總體方案以及階段性目標。調研報告應包含各類資源,如人力、網絡、硬件基礎(包含服務器,操作系統,數據庫,終端機,甚至攝像頭等設備)以及各類業務的運作方式。特別是對網上銀行的性能需求應有明確的目標或定義,如系統的開放性和系統的可擴充性,系統的易用性和易維護性以及最重要的安全性。③確定網上銀行系統詳細設計方案。以項目總體方案和階段性目標為藍本,制作項目實施的詳細設計方案。對各階段的任務進行進一步的細分,包含各詳細任務的具體責任人,具體完成時間。④開始實施。銀行業務人員應和技術人員密切溝通和配合,保證實施按照系統設計書進行。實施后軟件工程化工作應納人相應的職能部門,主要負責對項目數據的采集和分析、改進過程的實施。
(3)后期維護工作。項目的整個生命周期包含項目產品發布后的維護工作,在產品的運行工程中,可能要出現一些新的問題,這需要安排相應的人員進行跟進、維護工作。
3 J2EE體系架構及開發環境
J2EE(即Java2平臺企業版,Java Enterprise Edition)是由Sun公司主持推出的一項中間技術,它是使用Java技術開發企業級應用的一種事實上的工業標準,它是Java技術不斷適應和促進企業級應用過程中的產物。J2EE以容器模塊為基礎,它為應用服務器提供了特定功能的軟件模塊,一般的軟件工程項目開發,只需要開發滿足項目需求的程序構件即可,然后通過各種容器把各種構件連接起來。該組件結構展現了J2EE典型的三層模型,它將業務邏輯層從客戶層分離出來,獨立作為一層。在這個模型中,表現層負責用戶界面的展示和頁面流轉控制,業務邏輯層根據業務規則,完成對業務邏輯的實現,為表示層提供服務。持久層主要是負責實現數據持久化,對數據庫進行訪問及各項操作。這種模式克服了傳統的C/S模式,將表示邏輯與業務邏輯相分離,大大的降低了系統的耦合度,結構更加清晰,層與層之間的職責更加明確,很好的解決了業務邏輯代碼和頁面顯示代碼混淆的問題,為系統的靈活性、擴展性和易維護性提供了良好的機制。業務邏輯層從客戶層分離出來,運行于應用服務器上,也很大程度的減輕了客戶端的處理壓力,實現了瘦客戶胖服務的效果。