文檔組
是保證項目開發完畢的同時,內部文檔和外部文檔都同時完成。內部文檔的及時產生和規范,是保證項目開發各小組能夠更好的接口和溝通的重要前提,從另一個方面講,也是保證工程不被某個關鍵路徑所阻塞而延滯的前提。如上所述,文檔組還是保證質量監督組得以發揮作用的基礎。
文檔組的主要職責包括: 完善各個部門發送需要存檔和進行版本控制的文檔; 對文檔進行單向出入的控制; 對所有存檔的文檔進行版本控制; 書寫文檔規范,并傳達到開發組中; 書寫部分外部文檔。
技術支持部
技術支持部的存在是保證軟件在用戶使用的過程中,為用戶提供及時的技術服務,也為項目開發人員抽身進行新版本軟件開發保證。技術支持部的人員能夠作到對軟件的使用人員進行軟件的安裝、配置、正確使用進行培訓。能夠解決由于軟件的不當使用產生的各種問題。技術支持部的人員也有對軟件系統分析監督的作用。技術支持人員是軟件開發過程中的虛擬用戶,也是說在軟件未正式提交用戶之前,技術支持人員充當用戶的角色。
合作伙伴提供的保證
軟件的開發我們選用微軟公司的Windows平臺和Visual Studio為主要開發工具。 我公司是微軟(Microsoft)在中國大的技術方案提供商,在軟件開發方面能夠直接從微軟公司獲得快全面的技術支持。另一方面,公司能快速的獲得微軟新的企業解決方案的培訓和咨詢。同時我公司還是微軟出版社中國總代理,公司擁有微軟全面的書面資訊。
項目進度的保證
項目進度是項目進行是否順利的直觀表現。顯然在項目開始之前,項目開發計劃是必須的。如果項目開發計劃的制定的是完全合理的,那項目進度也真正表達了項目與終的交付使用之間的距離,然而要制定完全合理的項目開發計劃幾乎不太可能。可見要保證項目進度,首先要保證項目開發計劃盡可能合理。
項目計劃的合理程度與項目計劃制定者從事類似規模和類似業務的項目的經驗有直接關系,通過經驗往往能夠預見潛在的阻礙,從而制定較為合理的項目開發計劃。本公司已經開發過鐵道部的結算系統,開發中的子項目多達六個,歷時十五個月,目前多數項目已經開發完畢,有些系統已經投入運營五個月,項目金額數千萬元。在這樣的項目中,從管理者到開發人員到測試人員都積累了較為豐富的經驗,特別是項目開發計劃的制定,和項目進度的控制。
項目計劃以里程碑為界限,將整個開發周期劃分為若干階段。根據里程碑的完成情況,適當的調整每一個較小的階段的任務量和完成的任務時間,這種方式非常有利于整個項目計劃的動態調整。也利于項目質量的監督。
里程碑是對項目在開發過程中完成的較大成果的定義,比如需求分析完畢、代碼生產完畢、正確性測試完畢,都被定義為一個里程碑,每一個里程碑都需要對完成的界定方式進行定義。比如需求分析完畢為一里程碑,這一里程碑完成的定義是:《系統需求說明》必須經過客戶的確認,并在文檔組進行了相應的歸檔工作。當然把完成需求分析作為里程碑不一定恰當,因為系統開發往往伴隨著需求的不斷變化和新需求的不斷產生。 如此又引出新的問題,即如何定義恰當的里程碑,如何界定里程碑的完成。 里程碑將項目分成若干個較小的段,通過保證每一個段的順利完成,來保證整個項目順利完成,同時通過每個段的完成質量,可以測度整個項目質量。同時里程碑保證各個階段的產品的依賴關系盡可能的小,并以完備的文檔作為里程碑完成的重要標志之一。在里程碑和完備文檔的控制之下,項目已完成的階段是受到保護的,在任何時間,人員變動,甚至是開發商的變動,都不至于造成特別重大的損失,通過完備的文檔,原有的成果能夠被延續進行開發。
項目開發方法對項目質量的保證
項目的開發方法對項目的質量和按時完成也有較大的影響。
面向對象的開發方法有利于對問題領域的深入理解,也有利于將問題空間向解空間映射從而得到更加理想和完整的系統模型。同時面向對象的開發方法和實現方法也有利于系統錯誤被局限在較小的范圍內,不會出現骨牌效應。面向對象的開發方法也有不利的方面。開發人員對它的熟悉程度不如傳統的結構化的開發方法。對面向對象中新出現的名詞需要重新在開發隊伍中進行定義,以便在開發的過程中彼此交流時表達的更加準確,從而減少開發隊伍之間的通訊量。通訊量的降低意味著效率的提高,減少了占用開發時間討論一個彼此立場根本一致的"問題"的時間。軟件構架定義了該領域中特定對象必然發生關系的發生方式,這種發生方式以構架中抽象類之間定義的關系被固化在構件中,開發人員在開發應用系統時不必再為定義這種相互作用方式而書寫代碼,這為將來系統的維護奠定了堅實的基礎,也為將來新版本軟件的透明升級并保持兼容性和正確性提供了有利保證。通過面向對象的繼承特性,可以在不傷害原有系統的情況下,任意替換功能模塊,從而以效率更高的模塊代替原有模塊,從另一角度講,也實現了軟件模塊的配置功能。要實現真正的軟件模塊的即插即用,還需要利用面向對象的另一優勢--組件。
面向對象使得面向對象的類或對象可以以與語言無關的二進制方式被存儲和調用。這是COM技術。顯然軟件構架實現的基礎是COM組件。由于COM是二進制的方式被存儲,因而它可以被任何語言編寫的軟件所調用。組件與系統分離,只是在發生系統調用時才被調入內存執行,這保證了系統更高層次的即插即用。
鑒于如此多的好處,采用面向對象的技術進行該項目的開發是值得的。
對于上面提到的面向對象的不利因素采用如下方法進行克服:第一,在系統開發之前,首先定義技術術語,然后定義領域術語,這樣保證了開發過程中開發人員用同種"語言"進行交流,避免了文不對題的討論或爭論。第二,指定技術規范。在殊途同歸的情況下,我們只允許那些在技術規范之內的技術來實現。技術規范定義了若干種對象技術,這些技術規范在整個開發小組中進行統一認識方面的學習。
開發策略是針對不同開發技術和問題領域而作出的策略性的考慮。顯然開發策略與所用的開發方法、實現技術以及問題領域的特征密切相關。一般來講,鑒于面向對象的"無縫"特性,采用原形法比較恰當,而開發過程則采用螺旋式開發方法。螺旋式開發方法提高了人員的利用率,使得軟件開發的局部階段相互重疊,在整體上形成多道流水線重疊并行。顯然這又縮短了開發的總周期。
項目開發各階段的質量保證