注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網(wǎng)絡軟件工程及軟件方法學小型團隊軟件開發(fā):以RUP為中心的方法

小型團隊軟件開發(fā):以RUP為中心的方法

小型團隊軟件開發(fā):以RUP為中心的方法

定 價:¥26.00

作 者: (美)Gary Pollice等著;宋銳,張靜,張煜譯;宋銳譯
出版社: 中國電力出版社
叢編項: 軟件工程系列
標 簽: 軟件方法 軟件工程理論 軟件工程及軟件方法學 計算機與互聯(lián)網(wǎng)

ISBN: 9787508324708 出版時間: 2004-08-01 包裝: 平裝
開本: 23cm 頁數(shù): 197 字數(shù):  

內(nèi)容簡介

  本書不是一本關于RUP、敏捷開發(fā)過程或者項目管理的教材,而是一份來源于實際工作的“戰(zhàn)地”報告。它記錄了一個小型的分布式團隊,經(jīng)歷許多變化最終成功地完成任務,向用戶交付一個有價值的、可用的軟件產(chǎn)品的過程。在本書中,這些“戰(zhàn)士們”以直述的方式講述了他們的故事,沒有試圖去“執(zhí)導”有關的內(nèi)容。我經(jīng)常聽到:“我們不需要采用一個開發(fā)過程,因為我們的項目又小又簡單。”可能你也有類似的感覺。但是,實際上你總會采用某種開發(fā)過程,而且這一過程很可能是臨時發(fā)明出來的。在我們的行業(yè)中有一種普遍存在的印象,就是一個預先描述好的開發(fā)過程只適合于大公司、用于大型項目、管理幾百個開發(fā)人員;而對于小型項目來說,這種開發(fā)過程只會使開發(fā)人員過得更加痛苦。在本書中,你將會看到一個很小的團隊在解決一個中等的項目時,如何按照他們的需要采用和剪裁RUP這樣一個描述化的開發(fā)過程。他們并沒有因為采用這一開發(fā)過程而增加過多的正規(guī)性。他們只選擇了那些對自己有用的要素,甚至采用了類似PSP(PersonalSoftwareProcess,個體軟件開發(fā)過程)、極限編程(eXtremeProgramming)以及其他一些敏捷開發(fā)方法。我也經(jīng)常聽到:“讓我看看你到底是如何做的?!背晒椖康睦雍湍承┎怀晒椖康姆蠢3J菍е麻_始采用一個新開發(fā)過程的關鍵。僅僅埋頭于書本中或者網(wǎng)站上,苦讀一頁頁有關某種理想處理方法的描述,對于我們大多數(shù)人來說都太抽象了。包裝好的、與理論嚴格匹配的完美示例沒有太多的說服力。本書最大的價值在于,它帶領讀者接觸到一個實際項目中的真實經(jīng)歷,包括了其中的失敗、錯誤的開始以及各種限制;而作者以批判的眼光來分析他們所采取的做法,以及這些做法為什么會成功或者失敗。我們從自己的經(jīng)驗以及與別人經(jīng)驗的對比中進行學習?!班蓿堑?,我知道這種模式;我也曾經(jīng)處于這種境地。啊,你是這樣解決的。”本書討論了在傳統(tǒng)的開發(fā)過程(包括RUP)中都沒有涉及到的問題。作者大膽地探索了關于開發(fā)人員、關于形成一個團隊的力量、關于分布式環(huán)境中的通信聯(lián)系、關于使用基于Internet的協(xié)作工具等方面的內(nèi)容,而所有這些要素都是當前許多小型開源軟件項目的組成部分。最后,本書強調(diào)了一個常常在計劃中標明了,而在趕著完成任務的過程中通常被遺忘的關鍵性的實踐步驟:自?。╯elf-reflection),有時也被稱為事后分析(post-mortem)或者回顧(retrospective)。這一步驟就是暫時停下,回頭看看我們做過的、我們是如何做的,看看哪些做法有效,哪些做法無效,以及導致這種結果的原因。而這整本書就是一個非常完整的事后分析的極好例子,坦白而謙虛。本書不能代替你沒有做的那些事后分析和回顧,但是可以讓你意識到可能錯過了哪些東西。那么,哪些人需要使用這本書以及何時需要這本書?可能性有很多:如果你剛接觸現(xiàn)代的開發(fā)過程,如RUP、敏捷開發(fā)方法、PSP等等,那么本書可以讓你了解它們的精髓,而不用深入到細節(jié)中去。如果你不確定該如何處理小型的分布式項目,你將可以學到極有價值的內(nèi)容,這些內(nèi)容的作者也曾經(jīng)問過自己那些你可能會提出的問題。他們對這些問題曾經(jīng)做出過選擇,這些選擇的對與錯都通過最終的結果反映了出來。你很可能發(fā)現(xiàn)一些熟悉的模式,從書中的解答和解決方案中學會一些東西;這意味著在你自己的項目中犯的錯誤會更少。如果你是這些方法的專家,那么本書將為你打開新的途徑——如何結合不同的方法或者縮減一個開發(fā)過程,并告訴你自省的價值。我從這本書中學到了許多關于RUP的知識,并學會了從不同的角度來看待它。感謝Gary、Jas、Liz和Chris與我們分享他們的經(jīng)驗?!狿hilippeKruchten于加拿大溫哥華在本書中,GaryPollice、LizAugustine、ChrisLowe和JasMadhur四位作者以自己的親身經(jīng)歷說明了如何在一個小型團隊、小型項目中應用Rational統(tǒng)一過程。其中包含了對開發(fā)過程中各種做法的原因和結果的全面分析,說明了開發(fā)團隊如何對開發(fā)過程與開發(fā)環(huán)境進行動態(tài)的調(diào)整。本書的主要內(nèi)容包括:如何在開發(fā)人員、開發(fā)過程和開發(fā)工具之間尋求平衡,并且在軟件開發(fā)的整個過程中動態(tài)地維持這種平衡;如何組合RUP和敏捷開發(fā)原則中的多征方法來建立團隊自身的開發(fā)過程,并且在項目進程中對開發(fā)過程進行適當?shù)恼{(diào)整;如何選擇適當?shù)拈_發(fā)工具來對團隊的活動提供支持,尤其是對于一個小型的分布式團隊需要考慮哪些問題;客戶的參與和意見關系到軟件產(chǎn)品最終能否有效地滿足客戶需求。對本書的贊譽“我向所有那些希望在小型項目中實施RUP的人強烈推薦此書。Pollice和他的伙伴們揭開了籠罩著RUP的神秘面紗,并且在保證不遺失其精華的基礎上進行了有效的縮減。此書是所有RUP使用者的必備書籍。”——豐田汽車銷售公司過程工程學顧問ChrisSoskin“許多RUP使用者都在尋找其實際應用的例子,此書恰恰為如何在小型項目中實際應用RUP提供了非常好的示例。它將引導你穿越從項目啟動到項目完成的不同階段。作者非常成功地強調(diào)了他們所遭遇的困難以及他們所取得的成功?!薄狪BM公司Rational軟件公司RUP部門經(jīng)理PerKroll“這本書明了易讀,且有許多對軟件開發(fā)人員有幫助的好東西,所以我很喜歡它。它描述了一個小型團隊如何有效地使用RUP——一種通常被認為只適用于大型的、規(guī)范度高的團隊的開發(fā)過程。作者以直截了當?shù)姆绞奖磉_了許多嚴肅的事實與建議。每個人的書架上都應該有一本這樣的書。”——NetObjectives公司高級顧問DanRawsthorne博士軟件開發(fā)的目標是向用戶交付具有一定價值的產(chǎn)品。為了提高工作效率,你必須在開發(fā)人員、開發(fā)過程與開發(fā)工具之間維持適度的平衡。每個人似乎都有自己最喜歡的開發(fā)工具、技巧和開發(fā)過程。軟件公司把開發(fā)工具和方法賣給你,幫助你提高構建軟件時的效率。顧問們向你宣講他們的方法,試圖讓你相信他們知道如何幫助你的機構和項目團隊做得更好。而我們開發(fā)人員則不停地學習新的技術、采用新的工具,來幫助我們在更短的時間里以更高的質(zhì)量完成更多的工作。我們這些作者在各種軟件項目中工作和對之進行觀察的時間累計起來超過了七十五年。根據(jù)這些年中所得到的經(jīng)驗,我們得出一個結論,很可能一些聰明的讀者也已經(jīng)想到了:每一個項目都不一樣,那些幫助某個團隊取得了巨大成功的方法如果不具有通用性,可能會導致另一個團隊的慘痛失敗。每個團隊都需要確定如何使用一個特定的開發(fā)過程,然后不斷地進行調(diào)整才能取得進步。而在這種不會停止的變化面前,一個項目團隊如何知道改變哪些做法可以獲得最大的效果?我們的答案是,依靠學習盡可能多的技術,依靠學習有效使用支持不同技術的開發(fā)工具,然后確定哪些組合可以工作得最好,以及它們在什么情況下最有效。這也意味著一個不斷學習的過程。好的程序員從其他的程序員那里學習。他們通過查看代碼和閱讀關于不同編程方法的書籍進行學習。測試人員通過學習測試專家的技巧、研究測試設計方案和學習如何使用新技術與新工具來獲得提高。實際上,每一個獨立的實踐者都可以從其他從事相同工作的人那里,或者通過觀察范例來學到知識。每個實踐者都需要形成自己高效工作的風格,既作為獨立的個人也作為一個更大的團隊的一員。團隊也一樣需要利用其他團隊如何工作的范例,來形成自己團隊協(xié)同工作的風格。本書是關于一個小型團隊如何開發(fā)一個軟件工具的例子。它是關于我們做了什么以及為什么這樣做的一本大事記。我們嘗試著解釋了為什么某些做法有效(或者無效),并討論了下一次我們會改變些什么。在此過程中,我們特別指出了所獲得的經(jīng)驗和教訓,并提供了一些將這些經(jīng)驗通用化的思路。讀者所要做的,就是觀察我們所做的工作并汲取我們的經(jīng)驗。如果你正在從事小型的軟件開發(fā)項目,你將立刻根據(jù)我們的經(jīng)歷發(fā)現(xiàn)一些問題。你可能已經(jīng)面臨一些我們曾遭遇的問題,并按照自己滿意的方式解決了,或者你仍在試圖找到合適的解決方法。我們希望本書能夠為你提供一些有用思路,幫助你選擇和使用合適的開發(fā)工具,與他人一起有效地工作,并選擇最適合你個人和所在團隊風格的技術。本書的所有作者都曾在軟件行業(yè)的不同類型項目中工作了許多年,從很小的項目到很大的項目都曾涉及。我們對自己的工作都充滿熱情。我們在為Rational軟件公司(現(xiàn)已被IBM公司收購)工作時相互結識。啟動此項目的Gary曾經(jīng)在第一個RationalSuite項目中工作,然后轉(zhuǎn)到RationalUnifiedProcess,即RUP團隊工作。Liz和Chris曾和Gary一起在RationalSuite團隊中工作,而Jas是RUP團隊的成員。我們看到過采用RUP或者其他開發(fā)過程并取得成功的項目,我們也看到過同樣采用這些開發(fā)過程卻失敗了的項目。我們希望?彩齙惱飧魷钅磕莧〉貿(mào)曬ΑN頤僑銜約喝肥黨曬α?。更重要的薁楷晤U塹目突銜頤淺曬α?,震q褪俏頤塹墓適攏M隳芄幌不端???關于本書在本書中,我們講述了我們?nèi)绾巫鳛橐粋€團隊一起工作的故事。我們談及了面對的一些技術障礙以及克服它們的方法。我們描述了遇到的一些模式以及我們?nèi)绾螌⑺鼈儜糜谧约旱膱F隊、項目以及代碼。我們說明了這個小團隊如何發(fā)展了一種在成員之間以及與用戶之間進行有效交流的方法。我們還討論了所采用的不同技術和方法,并根據(jù)不同的開發(fā)方法學,如RUP、極限編程(XP)等等,進行了調(diào)整。本書并不包含任何一種特定軟件開發(fā)技術的全部技術細節(jié)。它并沒有描述一個開發(fā)過程。它并不是關于編寫高效的代碼、調(diào)試方法、測試技巧、需求管理或者過程工程的書。不過本書涉及了所有上述主題。PSPTools項目本書是關于我們開發(fā)一個軟件項目——PSPTools的經(jīng)歷的大事記。PSPTools的目標是為WattsHumphrey的PSP(PersonalSoftwareProcess,個體軟件開發(fā)過程)提供自動化的支持。在版本1中,我們?yōu)橹С諴SP等級1實現(xiàn)了計時器和數(shù)據(jù)收集工具。(關于PSP的更多內(nèi)容,請參見附錄B。)本書包含了屏幕截圖、表格以及其他反映我們工作進展的材料片段。為了使讀者可以了解我們的實際工作方式,我們據(jù)實地展現(xiàn)了自己的經(jīng)歷以及最終的軟件,而不是理想化地解釋我們希望如何工作。在本書的網(wǎng)站www.awprofessional.com/titles/0321202945,包含了我們的所有代碼、其他一些非代碼的項目制品、到其他有用網(wǎng)站的鏈接以及其他后來發(fā)生的新聞。我們也很希望能夠聽到大家的意見,無論是對此書的反映,還是關于你自己的軟件開發(fā)經(jīng)歷。我們的電子郵件地址是psptools@yahoo.com。本書的組織結構本書的組織結構如下:第1~3章介紹此項目的相關情況。我們介紹了自己進行軟件開發(fā)的方法;對于在開發(fā)人員、開發(fā)過程與開發(fā)工具之間維持平衡的重要性的觀點;及對PSPTools項目的描述。第4、5、6、8、10和11章分別從團隊和過程的角度說明了這個項目。我們討論了RUP的不同階段以及我們在每一階段中做了什么。第7章和第9章提供了有關我們所處理的代碼和使用的技術的詳細情況。這兩章并不是對整個應用的全面展示,而是用于體現(xiàn)一些代碼的風格并解釋我們所做的一些技術決策。我們希望這兩章能夠鼓勵你從本書的網(wǎng)站下載整個項目內(nèi)容來進行更深入的研究。附錄中提供了一些主題的信息,如RUP、PSP和XP,我們假設你對它們已經(jīng)有一定程度的了解。誰需要閱讀此書?如果你是下列人士之一,那么你應該閱讀此書:一個正在尋求有關的技術指南,以使得團隊整體以及其中的個人都能更有效率工作的項目領導者。書中也討論了我們所使用的開發(fā)工具以及它們的替代產(chǎn)品,還提供了關于如何使用類似RUP之類的開發(fā)過程來幫助、促進交流的實踐性建議。一個工作于小型項目的獨立實踐者(一個程序員、一個測試員或者一個分析師)。本書可以幫助你學會如何在不增加無理負擔的情況下,與團隊中的其他成員進行交流。這里推薦了一些可能會有幫助的工具,并展示了如何有效地應用一種開發(fā)過程來指導、幫助你集中注意力,而不是給你增加負擔。一個工作于開源項目的獨立實踐者。本書沒有專門討論開源開發(fā),但確實提供了一些類似于開源項目的經(jīng)驗。它提供了一個如何組織分布于不同地點的團隊開展工作的范例。顯示了這個團隊如何調(diào)整其工作風格與使用的開發(fā)工具,以適應地理的分隔、完全不同的開發(fā)工具以及在相互獨立的網(wǎng)絡上進行工作。其他對小型項目或者敏捷開發(fā)技術感興趣,并對它們?nèi)绾闻c其他開發(fā)過程(如RUP)結合感到好奇的獨立實踐者。致謝如果沒有很多人的努力與貢獻,本書將不可能得以出版。然而對于文中出現(xiàn)的任何錯誤,我們將承擔相關責任。我們要感謝以下人士,他們的工作使得本書內(nèi)容更為豐滿、有趣和可信。Gary感謝整個開發(fā)團隊。你們中的每一個人都在整個項目過程中提供了自己的見解、知識、努力與支持。RajSrinivasan在我們急需測試人員的時候加入進來,提供了有所側重的、有益的問題報告。我要特別感謝PhilippeKruchten和PerKroll,從他們那里我領會了RUP的精神,從而形成了我自己在小型項目中使用RUP的風格。敏捷開發(fā)社區(qū)中的許多活躍分子教會了我很多事情,我試圖將它們包含于我個人的開發(fā)過程中。我尤其感謝與BobMartin、RonJeffries和RandyMiller的交流。我確信其他的作者和我一樣感謝為本書提供了極有價值的見解的審閱者們。除了PerKroll和PhilippeKruchten,我們很榮幸地請JamesDunion、MagnusLyckå、BobMartin、DanRawsthrone和ChrisSoskin對我們的工作進行了審閱。我們也很感謝來自于Rational軟件公司的支持。最后,我們感謝Addison-Wesley出版公司那些過去和現(xiàn)在幫助我們完成本書的人們,他們是:PaulBecker、MaryO’Brien、BrendaMulligan、AmyFleischer、PatrickCash-Peterson,以及我們有才華的、仁慈的編輯RebeccaGreenberg。感謝你們付出的時間和無盡的耐心。Liz非常感謝我的經(jīng)理KarlHakkarainen,他支持并鼓勵我在此項目中進行工作。感謝Gary領導了這一項目,同時感謝其他作者——Chris、Jas和Gary——在完成項目的過程中與他們一起工作非常開心。最后,我還要感謝本書的審閱者們,他們充滿理解力的、大量而風趣的評論促使此項目富有成果。Jas真誠地感謝Gary、Liz和Chris,感謝你們的善意、友好、見解與支持。Chris我想感謝與我同一辦公室的SteveZerfas。他一直忍受著作為PSP項目一個組成部分的大量會議電話。他也比任何人更多地聽我說:“在PSP項目中,我們……”。如果沒有我的經(jīng)理DaveZygadlo的寬宏許可,我將無法在此項目中工作。他即使在“午夜項目”不時地延伸到白天后仍保持著活力。最后,我希望感謝我的妻子Carmen,她對我寫程序到深夜或長途旅行去拜訪Gary從無怨言,而且始終歡迎Gary在來參加編程討論時訪問我們家。

作者簡介

  GaryPollice擁有近35年的軟件開發(fā)經(jīng)驗。他在開始寫作本書時是Rational軟件公司RUP方面的元老,后來轉(zhuǎn)向教育行業(yè),擔任WorcesterPolytechnicInstitute計算機科學系的實踐學教授。LizAugustine在軟件行業(yè)工作了20多年,先是作為軟件開發(fā)人員,現(xiàn)在是一位技術文檔作者。在其職業(yè)生涯中,她在項目中的主要職責是幫助軟件開發(fā)人員更有效地工作。ChrisLowe為DEC公司、Funk軟件公司、Rational軟件公司和IBM公司開發(fā)過軟件。在業(yè)余時間里,Chris是ToastmastersInternational的成員,也是所在社區(qū)教堂的鍵盤手和歌手,是波士頓科學博物館的志愿者,還是一名業(yè)余木工。JasMadhur從1985年開始在加拿大溫哥華的高技術園區(qū)工作。他是最早的RUP團隊的一員,后來擔任過顧問,建立了一家e-learning公司。他在不列顛哥倫比亞大學教授軟件工程過程學,還是國際系統(tǒng)工程協(xié)會(InternationalCouncilofSystemsEngineering,INCOSE)的成員。

圖書目錄

第1章  寫在開始  1  
1.1  組成團隊  4  
1.2  后續(xù)內(nèi)容  6  
第2章  在小型項目中使用開發(fā)過程  8  
2.1  什么是小型項目?  8  
2.2  對小型項目運用的開發(fā)過程如何?  8  
2.3  從使用RUP開始  9  
2.4  讓團隊成員參與的技巧  13
2.5  照規(guī)矩辦事  14
2.6  參考信息  14
2.7  小結  15
第3章  人員、過程與工具  16
3.1  人員  16
3.2  過程  23
3.3  工具  27
3.4  什么會出錯?  29
3.5  小結  30
第4章  項目啟動:項目成員形成團隊  31
4.1  結合成一個團隊  31
4.2  編寫開發(fā)案例  35
4.3  關于我們進度的報告  39
4.4  為初始階段建立迭代計劃  42
4.5  小結  43
第5章  初始階段:我們開始取得進展  45
5.1  項目前景:設定目標  45
5.2  處理和管理需求  49
5.3  定義初始用例  52
5.4  項目管理  55
5.5  建立開發(fā)環(huán)境  59
5.6  迭代評估  62
5.7  這聽起來確實像瀑布式  62
5.8  小結  63
第6章  細化階段:建立框架  64
6.1  細化階段的目標  64
6.2  生成測試和測試計劃  69
6.3  建立PSP  Tools的架構  72
6.4  對工具環(huán)境的改變  75
6.5  推遲建立數(shù)據(jù)庫  77
6.6  范圍管理:盡早并經(jīng)常進行剪裁  79
6.7  不能安裝該產(chǎn)品是什么意思?  80
6.8  對細化階段進行評估  82
6.9  小結  83
第7章  細化階段詳情  84
7.1  開始細化階段  84
7.2  PSP  Tools用戶界面  87
7.3  PSP  Tools數(shù)據(jù)庫  94
7.4  單元測試  97
7.5  小結  103
第8章  構造階段:構建PSP  Tools  104
8.1  再次調(diào)整開發(fā)環(huán)境  104
8.2  構造階段的目標  108
8.3  構造階段計劃:項目的心跳  108
8.4  實現(xiàn)過程加速  111
8.5  在構造階段中前進  114
8.6  為什么開發(fā)會加速?  120
8.7  其余的構造階段迭代  123
8.8  每個人都會在某個時候需要朋友:結對編程  125
8.9  在構造階段進行測試  126
8.10  預見團隊成員的變化  127
8.11  小結  128
第9章  構造階段詳情  129
9.1  精細調(diào)節(jié)用戶界面  129
9.2  完成數(shù)據(jù)庫  139
9.3  測試  145
9.4  小結  148
第10章  移交階段:交付PSP  Tools  149
10.1  什么是移交階段?  149
10.2  向移交階段過渡  150
10.3  移交階段的目標  150
10.4  需求怎么樣了?  150
10.5  移交階段的代碼變更  153
10.6  獨立測試人員的重要性  153
10.7  產(chǎn)品打包  156
10.8  用戶培訓  158
10.9  我們完成了嗎?  160
10.10  小結  161
第11章  事后分析:如何改進下一版?  162
11.1  進行事后回顧的益處  162
11.2  引導事后分析回顧  162
11.3  我們的事后分析回顧  167
11.4  為下一個項目團隊進行清理  170
11.5  變化的地形  175
11.6  PSP  Tools的將來  178
11.7  小結  178
附錄A  Rational統(tǒng)一過程介紹  180
A.1  通向RUP之門  180
A.2  RUP的關鍵概念  182
A.3  RUP里程碑  185
A.4  小結  188
附錄B  個體軟件開發(fā)過程概述  189
B.1  個體軟件開發(fā)過程  189
B.2  目標與關注的重點  190
B.3  結論  191
附錄C  極限編程介紹  192
C.1  主要的價值  192
C.2  極限編程實踐方法  193
推薦讀物  194

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號