本套書匯集了兩位作者豐富的軟件過程經驗、10余位業(yè)界杰出人士的親身體會以及《軟件開發(fā)》和《計算機語言》雜志中的精彩論文,提出了軟件開發(fā)過程中的最佳實踐方法,指導讀者有效而且高效地執(zhí)行這些過程。同時,作者還綜合了統一過程和其他軟件過程,形成了一個處理真實世界軟件開發(fā)和產品需要的更完整、更健壯的統一過程。本套書共有四本,其中介紹的最佳實踐方法分別對應統一軟件過程的四個階段:初始階段、細化階段、構造階段、移交和產品化階段。本書是這套書的第3本,重點介紹與統一軟件過程構造階段有關的最佳實踐。本書可以作為軟件項目管理人員、軟件開發(fā)工程師、過程工程師、系統工程師等專業(yè)人員的指導用書,也可作為高等院校計算機及相關專業(yè)學生的參考書。本書前言在《軟件開發(fā)》雜志和它的前身《計算機語言》中已經刊登了大量關于如何成功開發(fā)軟件的文章。為這一雜志撰稿的人包括許多業(yè)界最著名的專家,比如KarlWiegers、SteveMcConnell、EllenGottesdiener、JamesBach、JimHighsmith、WarrenKeuffel和LucyLockwood。簡而言之,信息產業(yè)的大師們在這些年里一直在這本值得尊敬的雜志中與我們分享他們的智慧成果。近來,在幾乎所有的組織中,對軟件過程改進的關注越來越多了。這有一部分是因為千年蟲(Y2K)問題、大規(guī)模軟件項目的高失敗率以及人們漸漸意識到遵循成熟的軟件過程是軟件項目成功的關鍵因素。從20世紀90年代中期開始,Rational公司控股和合并了其他一些軟件工具公司;隨著公司的發(fā)展,這些工具所支持的各種過程也被合并成一種開發(fā)方法,稱為“統一過程”(UnifiedProcess)。是否有可能讓整個軟件過程自動化?如果有可能,那么Rational公司是否擁有一套完整的工具集?對上述問題我們并不確定。但幸運的是,其他人也在定義軟件過程,所以我們還可以從多個角度來看事物應怎樣運作。這些過程包括:OPEN聯盟的OPEN過程、面向對象軟件過程(OOSP)的過程模式以及極限編程(XP)。這些不同的視角可以用來推動統一過程觀點,使其更加健壯,結果就產生了一個更能準確反映你所在組織現實需要的增強的統一過程生命周期。因為我們相信《軟件開發(fā)》中包含的多年收集的智慧能夠用來充實統一過程—真正將我們產業(yè)的最佳實踐統一起來,所以我們編寫了本系列叢書。為什么軟件過程如此重要呢?讓我們先設想一下。假如你想請人給你建造一間房子,讓兩位承包商來競標。第一位承包商告訴你,通過使用一項最新的建筑技術給你蓋房,如果從明天就開始的話,他能在兩個星期內就把房子建好,造價只有10萬美元。這個承包商手下有一流的木匠和水管工,他們以前用這項新技術建造過一個花園涼棚,他們愿意日夜加班以按期交付你的新屋。而第二位承包商告訴你,她需要先和你討論你想要建一間什么類型的房子。然后,一旦她確定明白你的需要,她將在一個星期內提供一整套設計藍圖供你審閱和提意見。這個初始階段只會花你1萬美元,當你決定了最終方案,對于其余的工作她將給出詳細計劃和成本估算。你會覺得選哪個承包商更放心呢?是想馬上開始建房的那個,還是先搞清楚要建什么樣的房子,再建模型,再詳細計劃,最后動工修建的那個?顯然,后者更有可能成功地交付給你一間符合你實際需要的房子?,F在,設想你要構建的是軟件—這通常是復雜得多而且遠比房子更昂貴的項目,再設想你還是面對兩個與前面采取相同方法的承包商。選擇哪個你會更放心呢?希望你的回答仍是第二個;她有一個更明智的過程。但不幸的是,實踐顯示:在大多數時間里,組織似乎喜歡選擇第一個承包商的方法;熱衷于新技術而忽視過程。當然,實踐也顯示:在我們的產業(yè)里,建造大型的、具有關鍵任務的系統的失敗率在85%以上。也許這兩種現象有一定的關聯。構造階段構造階段是軟件開發(fā)5個階段(初始、細化、構造、移交和產品化階段)中的第3個階段,每個軟件的發(fā)布版本在其生命周期內都將遍歷這些階段。構造階段的目標是:*描述剩下的需求。*充實你的系統設計。*保證你的系統達到用戶的要求,并與你所在組織的系統整體設計相適合。*完成構件開發(fā)和測試,包括軟件產品和它的文檔。*依靠資源優(yōu)化來把開發(fā)成本降到最低。*盡快地獲得足夠高的質量。*為你的系統開發(fā)有用的版本(a版、b版等)。本書向讀者呈現了業(yè)界專家所撰寫的描述軟件領域最佳實踐的文章。本書乃至本系列叢書的一個目標是提供已證實的統一過程所包含技術的可替代方案。另一個目標是彌補統一過程中的一些缺陷。因為統一過程是一個開發(fā)過程,而不是軟件過程,它不可避免地遺漏或缺少了一些對軟件專業(yè)人員來說非常重要的概念。幸運的是,《軟件開發(fā)》雜志的作者們已經對過程范圍有了更廣泛的了解,并已經為我們彌補了許多缺陷。關于本套叢書本套叢書由四卷組成:第1卷介紹初始階段,第2卷介紹細化階段,第3卷介紹構造階段,第4卷介紹移交和產品化階段。每卷都可獨立成書,但是如果想對整個軟件過程有一個完整的認識,你需要通讀全套叢書。本套叢書的文章覆蓋了整個過程,在每卷之間沒有重復。我們在為本書選擇材料時確實費了一番心思,有大量可以選擇的材料,但是篇幅有限,縮小選擇范圍并不總是那么容易。如果時間和容量沒有限制,那么每一本書都可能會有現在的兩倍那么厚。通過縮小選擇范圍,我們相信留下來的文章一定都是精華中的精華。