李建東?許美錦
摘要:本文結合作者的實踐,以智慧蒙自——綜合運營管理平臺開發為例,討論RUP的應用。首先介紹了項目概況,然后對RUP進行了簡單的介紹,最后介紹了智慧蒙自——綜合運營管理平臺中如何利用RUP進行開發以及開發中所遇到的一些問題及解決方案。
關鍵詞:RUP;初始階段;細化階段;構建階段;移交階段
一、項目概況
根據上級領導的安排,我們單位負責建設我市智慧蒙自——綜合運營管理平臺,該平臺主要包括聯動治理、智慧城管、智慧創文、智慧黨建、智慧交通、智慧住建等多個子平臺以及與之配套的“智慧蒙自(政務版)”APP、“蒙自通”APP。該平臺實現了對智慧城市的總體運行態勢感知、受理調度、聯動治理、應急指揮及決策支持。城市治理大調度、大聯動的格局已經實現。
在該系統的開發中我們采用基于SOA(面向服務的體系結構)的WebService技術來實現該平臺,按照分層思想將所涉及的服務分為基礎服務、數據服務、業務服務和管理服務,利用WSDL、UDDI與SOAP等技術規范描述、發布和調用服務,并在服務管理中心統一管理下按照業務邏輯編排服務實現復雜的業務流程。該平臺的數據庫采用Oracle 11g。
二、RUP簡介
RUP(統一軟件過程)是一個通用過程框架,RUP中的軟件過程在時間上被分解為4個順序的階段,它們分別是初始階段、細化階段、構建階段和移交階段。每個階段在結束時都要安排一次技術評審,以確定這個階段的目標是否已經達到,如果目標已經達到,就允許項目進入下一個階段,如果目標沒有達到,就要對該階段的工作進行完善,直到達到目標為止。基于RUP的軟件開發過程是一個迭代的過程,每次經過這4個階段就是一個開發周期,就會產生一代軟件。除非產品退役,否則通過重復同樣的4個階段,產品將演化為下一代產品,但每一次的側重點都將放在不同的階段上。初始階段的任務是為系統建立業務模型并確定項目的邊界。所以初始階段的過程包括:明確項目規模;評估項目風險;制訂項目計劃;階段技術評審。細化階段的任務是分析問題領域,建立完善的架構,淘汰項目中最高風險的元素。所以細化階段的實現過程包括:確定架構;制訂構建階段計劃;建立支持環境;選擇構件;階段技術評審。構建階段,要開發所有剩余的構件和應用程序功能,把這些構件集成為產品,并進行詳細測試。構建階段結束時也要進行技術評審,評審產品是否可以在β測試環境中進行安裝和運行。當基線已經足夠完善,可以安裝到最終用戶實際環境中時,則進入移交階段。移交階段的重點是確保軟件對最終用戶是可用的。移交階段的主要任務是進行β測試,制作產品發布版本;對最終用戶支持文檔定稿;按用戶的需求確認新系統;培訓用戶和維護人員;獲得用戶對當前版本的反饋,基于反饋調整產品,例如,進行調試、性能或可用性的增強等。移交階段結束時也要進行技術評審,評審目標是否實現,是否應該開始演化過程,用戶對交付的產品是否滿意等。
三、RUP的應用
當我們接到開發智慧蒙自——綜合運營管理平臺的通知后,我們就進行了需求的初步調研,確定該系統為中型項目,我們組織相關技術人員召開了一次研討會,研討會的內容就是軟件開發方法的選擇。大家一致認為,由于該項目規模為中型項目,如果采用快速應用開發、敏捷方法等開發方法,不太適合,而RUP為重量級的開發方法,適用于大中型信息系統的開發,所以我們決定采用RUP為整個項目的開發方法。
在整個項目的開發過程中,我們按照RUP的4個順序的階段進行開發。在初始階段我們首先通過現場觀摩和用戶訪談的方式對涉及到本項目的所有單位以及部分市民進行了需求的獲取和分析,然后形成需求說明書,以需求說明書為主要依據,編制項目范圍說明書,在項目范圍說明書中,明確了軟件的規模,項目的范圍和邊界,即我們要做什么,不做什么。隨后我們進行項目風險的評估工作,在該評估工作中我們召集系統分析師、有類似項目經驗的軟件開發人員代表開會,會上大家暢所欲言,將每個階段可能出現的風險進行識別,并根據風險定性分析、風險定量分析,確定出最主要和影響最大的風險,并進行風險監控。在本項目中,由于開發人員已有類似項目開發成功的經驗,技術上的風險并不大,因為該項目為中型項目,模塊眾多,一個模塊的改動將會影響到很多模塊,所以主要的風險來自于需求的變更。為此,我們建立了一個強有力的變更控制系統,該系統事先確定了修改項目文件或改變項目活動時應遵循的程序,其中包括了必要的表格或其他書面文件、責任追蹤,以及變更審批制度、人員和權限;成立了變更控制委員會,變更控制委員會的組長由系統分析師兼任,成員由一些軟件設計師兼任,每一次需求的變更都必須經過變更控制委員會開會決定;制訂規范的變更控制流程,變更流程包括以下基本流程:(1)變更申請;(2)變更評估;(3)變更決策;(4)變更實施;(5)變更驗證;(6)溝通存檔。每一次需求的變更,都嚴格遵循變更控制流程。根據風險的可能性,我們進行了分析,并作出了具有15%資源預留的項目計劃。估計了整個項目的總體成本為××萬元左右,開發時間為1年左右,配備開發人員30人左右,并做出了項目進度表。在初始階段結束時,我們召集市政府領導、用戶代表、領域專家、項目經理、系統分析師、有類似項目經驗的開發人員代表召開了一次技術評審會議,在會議上討論了初始階段的目標是否完成,需求說明書和項目范圍說明書是否合適,項目開發時間、費用、開發隊伍人員配備、風險的防范策略是否合理等等,并且決定繼續進行項目還是取消項目。會后經用戶方和開發方達成一致意見,并在需求說明書、項目范圍說明書、項目計劃書上簽字確認。
在細化階段中,我們首先確定軟件的架構,由于智慧蒙自——綜合運營管理平臺由很多子平臺組成,每個子平臺相互獨立但又需要進行數據交換,為了保持子平臺的獨立性和易于添加新的子平臺,所以我們確定該平臺的架構為SOA。在此基礎上,為構建階段制訂了詳細的階段計劃并為其建立了基線。根據實際情況我們選擇了J2EE作為軟件開發平臺,Oracle 11g為后臺數據庫。然后進行構件的選擇,我們根據平臺的需求,從構件庫中提取一些符合要求的構件。在細化階段結束時,我們也召開了一次技術評審會議,對架構的選擇、構建階段計劃、開發環境的選擇、構件的選擇及主要風險的解決方案進行了討論,達成一致意見后便進入構建階段。
在構建階段,我們開發了一些智慧蒙自——綜合運營管理平臺所需要但構件庫中沒有的構件,并且完成了該平臺應用程序功能的編寫。最后,我們采用了面向對象的組裝技術與基于功能的組裝技術相結合。把構件庫中提取出來的符合要求的構件、新開發的構件、當前開發平臺中的軟件元素相連接,最終構成新的目標平臺。在構建階段結束時,我們也召開了一次技術評審會議,評審產品是否可以在β測試環境中進行安裝和運行。評審通過后便進入移交階段。
在移交階段,我們對智慧蒙自——綜合運營管理平臺進行β測試。然后對有關用戶和維護人員進行培訓。并獲得用戶、維護人員對當前版本的反饋,基于反饋調整產品。在構件階段結束時,我們也召開了一次技術評審會議,評審目標是否實現,是否應該開始演化過程,用戶對交付的產品是否滿意等。基于用戶需要增加一些新功能的要求,通過變更控制流程,我們決定產品進入下一個迭代過程,但這一個迭代過程,由于只是增加一些新的功能,側重點放在細化階段和構建階段。
在開發過程中我們也遇到了一些問題,由于RUP太過于龐大和復雜,每一次的需求變更都要經歷復雜的過程和很多額外的工作。這樣將造成成本的上升和進度的推延。但是需求變更是不可避免的,所以我們采取的措施是建立了一個強有力的變更控制系統;成立變更控制委員會;按照規范的變更控制流程處理變更。還有由于RUP的每個階段結束時都要進行一次技術評審,每一代產品的產生最少要經歷四次評審會。參會人員涉及到用戶方代表、領域專家、開發方代表等等,有時開會時間難以統一,為此我們采用正式評審和非正式評審相結合的方式。根據大部分參會人員或者是主要參會人員的時間確定開會的時間,然后對于不能按時參會的人員,把評審意見通過QQ群、電話聯系、郵件的方式進行評審,最后達成一致意見,形成評審結果。
在該平臺的開發中,由于全面采用了基于RUP的開發過程,規范了管理和開發流程,大大降低了該平臺出錯的機率,提高了該平臺的質量。
參考文獻:
[1] 系統分析師教程[M].張友生.北京:清華大學出版社.2010:348-360.
[2] 系統架構設計師教程[M].楊春暉,孫偉,孔學東等.北京:清華大學出版社.2009:90-109.
[3] 統一軟件過程在信息系統分析與設計中的應用[J].李立清.信息與電子工程.2009(05).
[4] 面向教學軟件的RUP改進模型的設計研究[J].余久久.電化教育研究.2012(04).
[5] 軟件工程技術在系統軟件開發過程的應用分析[J].方玉林.產業與科技論壇.2019(23).
作者簡介:
李建東(1976-08-),男,碩士研究生,國家系統分析師(軟件高工)、國家系統架構設計師(系統架構高工)、計算機硬件及應用高級工程師,主要研究領域為系統架構設計、需求獲取、需求分析、計算機網絡、信息安全等;
許美錦(1974-09-),女,大專,工程師,主要研究領域為計算機網絡、計算機硬件、信息安全、電子政務等。