南京軍區南京總醫院博士后工作站 田 軍
軟件工程在博士后網絡辦公平臺開發中的應用
南京軍區南京總醫院博士后工作站 田 軍
本文主要論述了在全國博士后網絡辦公平臺開發過程中,如何利用軟件工程的理論和方法指導和實施開發活動,使軟件實現快速交付的同時保證了軟件的高質量。
軟件工程;面向對象;進度計劃;質量保證;配置管理
我國博士后制度建立二十多年來,博士后規模發展異常迅速。博士后制度凝聚和培養了眾多高層次人才,催生了一大批優秀科研成果,為我國的經濟社會發展做出了重要貢獻。隨著博士后事業的發展壯大,我國博士后管理理念不斷創新,管理制度不斷完善,管理方式不斷改進。因此,原有的全國博士后信息系統的功能已無法滿足電子化辦公的需求,開發一套博士后網絡辦公平臺,為各級地方博士后管理部門(博士后站、設站單位、省市管理部門、博管會)提供規范化的審批、管理,實現電子化辦公,顯得尤為必要。
自上世紀六十年代以來,計算機軟件的開發和維護過程遇到了“軟件危機”:開發成本日益增長、開發進度難以控制、軟件質量無法保證、軟件維護困難等。究其原因,主要在于所開發的軟件規模越來越大,復雜度越來越高,缺乏軟件開發方法學和工具方面的支持。這使得人們開始用工程化的方法進行軟件的開發、管理和維護,即軟件工程。
結合網絡辦公平臺功能復雜度高,擴展性強的特點。也為了更好地提高開發的可見性和規范性,方便后期的運維和擴展,該系統平臺開發采用了軟件工程的理論方法貫穿設計、開發和運維的整個階段,取得了不錯的效果。
軟件需求是指用戶對目標軟件在功能、行為、性能、設計約束等方面的期望。通過對問題及其環境的理解與分析,為問題涉及的信息、功能及行為建立模型,將用戶需求精確化、完全化,最終形成需求規格說明,如圖2-1所示,整個活動構成軟件開發生命周期的需求分析階段。需求分析階段是軟件項目開發中其他四個階段的必備條件。
在軟件工程理論誕生之前,傳統的軟件開發普遍存在這樣的問題:1)重視開發,忽視前期的需求分析和設計;2)文檔不規范且不完備。這樣的做法固然可以將開發的階段提前,貌似加快了系統開發的進度。其實不然,由于用戶的需求在開發的過程中具有漸進性和增量變化的特點,且軟件的需求、開發、測試、維護過程中,系統變更的代價呈非線性增長,不完備的需求和文檔會大大增加需求變更情況下的工作量,而且也增加了系統交付后培訓和維護的工作量。
由于網絡辦公平臺最終目標是滿足用戶的無紙化辦公,平臺能否滿足用戶的日常辦公需求是評價軟件是否成功的關鍵因素。我們將需求分析作為了一個重要的階段,其主要工作是獲取用戶需求、設計系統模型、編寫需求文檔。在立項前期,通過調研問卷以及各級管理部門代表研討的方式分析當前網上辦公系統的特點,了解當前博士后網上辦公業務需求。從業務需求、用戶需求、功能需求、非功能需求四方面完成系統模型的初步設計,并以此為依據編寫規范的《項目需求分析說明書》,辦公平臺的基本功能需求如圖2-2。
系統常見的開發方法主要有結構化方法、原型法、面向對象的設計方法。
結構化方法是一種廣泛運用的開發方法,是設計人員、開發人員以及最終用戶按照用戶至上的原則,自頂向下分析與設計和自底向上逐步實施的建立計算機信息系統的一個過程,是組織、管理和控制信息系統開發過程的一種基本框架。其特點有:1)自頂向下整體地進行分析與設計和自底向上逐步實施的系統開發過程;2)用戶至上是影響成敗的關鍵因素,整個開發過程中,要面向用戶,用戶需求需要在系統建立之前就能被充分了解和理解;3)嚴格區分工作階段,把整個開發過程劃分為若干工作階段,每一個階段有明確的任務和目標、預期達到的工作成效,以便計劃和控制進度,協調各方面的工作。前一階段的工作成果是后一階段的工作依據;4)充分預料可能發生的變化。其缺點是開發周期長,耗費大,若用戶需求并不明確,會大大影響開發效率。
原型法是20世紀80年代提出的一種從設計思想、工具、手段都全新的系統開發方法。其特點有:1)系統開發循序漸進,需要反復修改原型;2)開發周期短,費用相對少;3)由于有用戶的直接參與,系統更加貼近實際;4)應變能力強,減少用戶的培訓時間。但缺點也比較明顯:不適合大規模系統的開發;開發過程管理要求高,整個開發過程要經過“修改—評價—再修改”的多次反復;開發人員易將原型取代系統分析;缺乏規范化的文檔資料。
面向對象的開發方法是一種常見的系統開發方法。它將對象作為程序的基本單元,將程序和數據封裝其中,以提高軟件的重用性、靈活性和擴展性。其特點是:1)封裝性。面向對象方法中,程序和數據是封裝在一起的,對象作為一個實體,其操作隱藏在方法中,從外界無從得知。封裝性構成了面向對象方法的基礎。簡單地說,面向對象就是“對象+屬性+方法”;2)抽象性。面向對象方法中,把從具有共同性質的實體中抽象出的事物本質特征概念,稱為“類”。類中封裝了對象共有的屬性和方法,通過實例化一個類創建的對象,自動具有類中規定的屬性和方法;3)多態性。多態性是用一個操作名稱實現不同數據類型的多種操作,運算符重載、函數名重載都是多態性實現的主要方法。由于多態性這一特性,增強了軟件的靈活性和重用性。

根據需求分析,可以看出本辦公平臺開發具有以下特點:1)系統功能復雜;2)開發過程管理要求高,需要規范化的管理;3)軟件復用要求高;4)需求功能相對明確。
因此,針對上述開發方法的特點,我們采用了面向對象和結構化方法相結合的開發方式。
眾所周知,項目的成功很大程度上歸功于開發者在項目過程中對進度的有效管理和控制。在軟件工程中,項目進度管理包括6個管理過程,即活動定義、活動排序、活動資源估算、活動歷時估算、制定進度表、進度控制。
活動,是實施項目時安排工作的最基本的工作單元。活動定義過程就是要把完成項目的所有活動都找出來。在活動定義活動中,最基本也是最重要的工作就是工作分解結構(WBS),工作結構分解是對項目范圍的一種逐級分解的層次化結構編碼,它以可交付成果為導向對項目要素進行的分組,歸納和定義了項目的整個工作范圍每下降一層代表對項目工作的更詳細定義。
工作分解結構應按照實際工作經驗和系統工作的方法、工程的特點、項目管理者的要求進行,其基本原則是:1)應在各層次上保證項目內容的完整性,不能遺漏任何必要的組成部分。2)一個項目單元只能從屬于某一上層單元,不能同時屬于兩個上層單元。3)項目單元應能區分不同的責任者和不同的工作內容,應有較高的整體性和獨立性。4)應考慮WBS與承包方式、合同結構的影響。5)能夠符合項目目標管理的要求,能方便的應用工期、質量、成本、合同、信息等手段。6)WBS不要太多層次,以四至六層為宜。最低層次的工作包的單元成本不宜過大、工期不要太長。
根據工作分解的基本原則,辦公平臺的開發工作從分析、設計、開發、測試、驗收、運維幾個方面被細分為50個基礎活動,通過活動資源估算和活動歷時估算,我們制定了詳細的進度計劃,如圖4-1所示。

表5-1 工程活動審核表

表5-2 工作產品審核表

圖4-1
項目進度計劃最終以甘特圖方式進入項目配置庫,作為項目進度控制的依據。如上圖所示,項目進度計劃定義了項目中每一個主要任務,并估算其所需時間和資源,為項目管理的評估和控制提供了一個清晰可見的框架。正因為實施了有效的進度管理,平臺開發工作順利地如期完成。在項目某一階段出現延遲時,規范的項目進度計劃幫助我們及時發現延遲,找出延遲的原因,針對性地調整開發計劃,從而保證了項目的整體進度。
軟件質量保證(SQA)是建立一套有計劃,有系統的方法,來向管理層保證擬定出的標準、步驟、實踐和方法能夠正確地被項目所采用,如表5-1、5-2。它是貫穿于整個軟件過程的第三方獨立審查活動,其目的是使軟件過程對于管理人員來說是可見的。如果將一個軟件開發類比于一種產品的生產。那么生產線就是過程,產品按照生產線的規定過程進行生產。軟件質量保證的職責就是保證過程的執行。
在本辦公平臺的項目組中,根據需要配備了專門的SQA人員。SQA人員活動貫穿了開發各個階段。在項目啟動階段,SQA人員就參與到制定《軟件開發計劃》的過程,根據項目的內容制定了《軟件質量保證計劃》。在軟件質量保證過程中,SQA人員的主要工作包括:1)評審軟件工程活動,對其是否符合定義好的軟件過程進行核實,記錄、跟蹤與過程的偏差。2)評審軟件工作產品,對其是否符合事先定義好的需求進行核實,對產品進行評審,識別、記錄和跟蹤出現的偏差并將工作結果向項目管理者報告。3)完成工程活動審核表、工作產品審核表,確保軟件工作及產品中的偏差已記錄在案,并根據預定的規程進行處理。
我們知道,在軟件建立時變更是不可避免的,而變更加劇了項目中軟件開發者之間的混亂。軟件配置管理作為軟件工程中一項重要活動,應用于整個軟件工程過程。軟件配置管理是一種標識、組織和控制修改的技術,目標就是為了標識變更、控制變更、確保變更正確實現并向其他有關人員報告變更。軟件配置管理可以提煉為兩個方面 的內容:Version Control-版本控制;Process Support-過程支持。
博士后網絡辦公平臺采用的配置管理工具為VSS,VSS的全稱為Visual Source Safe,它提供了完善的版本和配置管理功能,以及安全保護和跟蹤檢查功能。VSS通過將有關項目文件(包括文本文件、圖像文件、二進制文件、聲音文件、視頻文件、代碼文件)存入數據庫進行項目配置管理工作。用戶可以根據需要隨時快速有效地共享文件。文件一旦被添加進VSS,它的每次改動都會被記錄下來,用戶可以恢復文件的早期版本,項目組的其他成員也可以看到有關文檔的最新版本,并對它們進行修改,VSS也同樣會將新的改動記錄下來。
VSS可以同Visual Studio開發環境以及Microsoft Office應用程序集成在一起,提供了方便易用、面向項目的版本控制功能。VSS可以處理由各種開發語言、創作工具或應用程序所創建的任何文件類型。在提倡文件再使用的今天,用戶可以同時在文件和項目級進行工作。VSS面向項目的特性能更有效地管理工作組應用程序開發工作中的日常任務。
用VSS來組織管理項目,項目組的所有工作成果被完整地保留下來,使得項目組間的溝通與合作更簡易而且直觀。開發的資源可以很好地被項目組成員分享利用,每一位成員獲取的代碼和文檔都是最新的且是同步的。VSS也能很好地解決傳統開發中容易出現的版本錯亂問題,使得版本的維護變得簡單、清晰。
隨著電子辦公模式的迅速發展,網上辦公的應用越來越廣泛,用戶需求越來越復雜,采用傳統的軟件開發方法往往會失效。相對于傳統的軟件開發方法.軟件工程將軟件開發看成一項系統工程,一項需要需求分析、軟件開發過程、規范化的文檔和進度管理、系統配置管理、系統質量保證等方面工作互相配合,貫穿始終的工程,是人們在長期的軟件開發和維護的過程中積累下來的寶貴經驗。我們應當把它應用到具體的開發過程中,進行集成化開發,工程化管理,只有這樣才能提高軟件開發的成功率,縮短開發周期,減少重復開發,用較少的開發成本滿足用戶業務之需。
[1]夏雪剛.基于軟件工程的數據庫應用系統開發[J].科技信息,2009(1).
[2]王巍,周沫.軟件工程在軟件開發中的應用[J].軟件導刊,2010(9).
[3]王維國.淺談軟件工程中的面向對象方法[J].科協論壇,2012(3).
[4]谷鐵濤.兩類軟件工程的淺析——傳統軟件工程和面向對象軟件工程[J].科技創新導報,2009(14).
[5]唐勇.建立規范的軟件文檔提高軟件工程化程度[J].燕山大學學報,2002(2).