出版時間:2006-5 出版社:機械工業(yè)出版社 作者:拉曼 頁數(shù):500 譯者:李洋,鄭?
Tag標(biāo)簽:無
前言
感謝你閱讀本書!我提供問題解答、咨詢或培訓(xùn)等服務(wù)(在OOA/D、UML、建模、迭代和敏捷方法等方面),歡迎訪問我的網(wǎng)站www.craiglarman.com。本書是面向?qū)ο蠓治龊驮O(shè)計(OOA/D)的實用指南,并且闡述了迭代開發(fā)相關(guān)方面的內(nèi)容。我很高興地看到本書的第1版和第2版在全世界范圍內(nèi)得到廣泛認(rèn)可。我衷心地感謝所有讀者!通過閱讀本書,你將會有如下收益:第一,對象技術(shù)已廣泛地應(yīng)用在軟件開發(fā)中,掌握OOA/D對創(chuàng)建健壯、可維護(hù)的對象系統(tǒng)至關(guān)重要。
內(nèi)容概要
本書英文版面世以來,廣受業(yè)界專家和讀者的好評,歷經(jīng)3個版本的錘煉,吸收了大量OOA,D的精華思想和現(xiàn)代實踐方法。全書敘述清晰、用詞精煉、構(gòu)思巧妙,將面向?qū)ο蠓治鲈O(shè)計的概念、過程、方法、原則和個人的實踐建議娓娓道來,以實例為證,將軟件的分析和設(shè)計的過程敘述得如邏輯推理一般,于細(xì)節(jié)處見真知。 本書是一本經(jīng)典的面向?qū)ο蠓治鲈O(shè)計技術(shù)的入門書,適用范圍廣泛,從初學(xué)者到有一定對象技術(shù)知識但希望進(jìn)一步提高開發(fā)水平的中級讀者,甚至是資深的專業(yè)人員,都可以從本書獲益匪淺,同時,本書也適合作為高等院校相關(guān)課程的教材和各類培訓(xùn)班的輔導(dǎo)教材。 作者簡介: Craig Larman,Valtech公司首席科學(xué)家,Valtech是一家領(lǐng)先的跨國技術(shù)咨詢公司,在美國、歐洲和亞洲都有分支機構(gòu)。他是國際軟件界知名的專家和導(dǎo)師,專長為OOA/D與設(shè)計模式、敏捷/迭代方法、統(tǒng)一過程的敏捷途徑和UML建模。除本書外,他還著有暢銷的《Agile and lterative Development:A Manager's Guide》(敏捷迭代開發(fā),該書影印版由機械工業(yè)出版社引進(jìn)出版)一書,并且與Rhett Guthrie合著了《Java 2 Performance and ldiom Guide》一書。Larman是ACM和IEEE會員,擁的計算機科學(xué)學(xué)士和碩士學(xué)位。他的中文網(wǎng)站是www.craiglarman.cn。
書籍目錄
譯者序序前言第一部分 緒論 第1章 面向?qū)ο蠓治龊驮O(shè)計 1.1 本書的主要內(nèi)容 1.2 最重要的學(xué)習(xí)目標(biāo) 1.3 什么是分析和設(shè)計 1.4 什么是面向?qū)ο蠓治龊驮O(shè)計 1.5 簡短示例 1.6 什么是UML 1.7 可視建模的優(yōu)點 1.8 歷史 1.9 參考資料 第2章 迭代、進(jìn)化和敏捷 2.1 什么是UP?其他方法能否對其進(jìn)行補充 2.2 什么是迭代和進(jìn)化式開發(fā) 2.3 什么是瀑布生命周期 2.4 如何進(jìn)行迭代和進(jìn)化式分析和設(shè)計 2.5 什么是風(fēng)險驅(qū)動和客戶驅(qū)動的迭代計劃 2.6 什么是敏捷方法及其觀點 2.7 什么是敏捷建模 2.8 什么是敏捷UP 2.9 UP的其他關(guān)鍵實踐 2.10 什么是UP的階段 2.11 什么是UP科目 2.12 如何定制過程和UP開發(fā)案例 2.13 判斷你是否理解迭代開發(fā)或UP 2.14 歷史 2.15 參考資料 第3章 案例研究 3.1 案例研究中涵蓋的內(nèi)容 3.2 案例研究策略:迭代開發(fā)+迭代學(xué)習(xí) 3.3 案例一:NextGen POS系統(tǒng) 3.4 案例二:Monopoly游戲系統(tǒng) 第二部分 初 始 階 段 第4章 初始不是需求階段 4.1 什么是初始 4.2 初始階段的持續(xù)時間 4.3 初始階段會創(chuàng)建的制品 4.4 何時知道自己并不了解初始階段 4.5 初始階段中有多少UML 第5章 進(jìn)化式需求 5.1 定義:需求 5.2 進(jìn)化式需求與瀑布式需求 5.3 尋找需求可以采用的方法 5.4 需求的類型和種類 5.5 UP制品如何組織需求 5.6 本書是否包含這些制品的示例 5.7 參考資料 第6章 用例 6.1 示例 6.2 定義:參與者、場景和用例 6.3 用例和用例模型 6.4 動機:為什么使用用例 6.5 定義:用例是功能性需求嗎 6.6 定義:參與者的三種類型 6.7 表示法:用例的三種常用形式 6.8 示例:詳述風(fēng)格的處理銷售 6.9 各小節(jié)的含義 6.10 表示法:有其他格式嗎?兩欄變體 6.11 準(zhǔn)則:以無用戶界面約束的本質(zhì)風(fēng)格編寫用例 6.12 準(zhǔn)則:編寫簡潔的用例 6.13 準(zhǔn)則:編寫黑盒用例 6.14 準(zhǔn)則:持有參與者和參與者目標(biāo)的視點 6.15 準(zhǔn)則:如何發(fā)現(xiàn)用例 6.16 準(zhǔn)則:什么樣的測試有助于發(fā)現(xiàn)有用的用例 6.17 應(yīng)用UML:用例圖 6.18 應(yīng)用UML:活動圖 6.19 動機:用例還有其他益處嗎?語境中的需求 6.20 示例:Monopoly游戲 6.21 過程:在迭代方法中如何使用用例 6.22 歷史 6.23 參考資料 第7章 其他需求 7.1 如何完成這些示例 7.2 準(zhǔn)則:初始階段是否應(yīng)該對此徹底地進(jìn)行分析 7.3 準(zhǔn)則:這些制品是否應(yīng)該放在項目Web站點上 7.4 NextGen示例:(部分)補充性規(guī)格說明 7.5 注解:補充性規(guī)格說明 7.6 NextGen示例:(部分)設(shè)想 7.7 注解:設(shè)想 7.8 NextGen示例:(部分)詞匯表 7.9 注解:詞匯表(數(shù)據(jù)字典) 7.10 NextGen示例:業(yè)務(wù)規(guī)則(領(lǐng)域規(guī)則) 7.11 注解:領(lǐng)域規(guī)則 7.12 過程:迭代方法中的進(jìn)化式需求 7.13 參考資料 第三部分 細(xì)化迭代1—基礎(chǔ)第四部分 細(xì)化迭代2—更多模式第五部分 細(xì)化迭代3——中級主題第六部分 其他主題參考文獻(xiàn)術(shù)語表
媒體關(guān)注與評論
實踐之旅――評《UML和模式應(yīng)用》 李洋 多年來,無數(shù)軟件開發(fā)的實踐者都懷揣著一個夢想,希望軟件開發(fā)像設(shè)計和構(gòu)造建筑一樣,即能夠優(yōu)雅和藝術(shù)地設(shè)計,又可以精準(zhǔn)和穩(wěn)定地實施。基于這樣的理想,實踐者們不斷艱辛地開拓,從而涌現(xiàn)出大量方法和理論。其中引導(dǎo)當(dāng)今軟件開發(fā)的、最令人矚目的莫過于直觀反映實現(xiàn)世界的面向?qū)ο笏枷?、描繪軟件藍(lán)圖的UML、易于付諸實踐的敏捷過程和有效復(fù)用的設(shè)計模式等。 然而,這些理論的博大精深往往會使學(xué)習(xí)者怯而止步或迷失方向。例如,人們在閱讀了大量面向?qū)ο蟮臅?,卻在實踐中忽略了最為本質(zhì)的內(nèi)涵;在了解了敏捷過程的思想之后,卻不知從何入手;在學(xué)習(xí)了UML語法和語義后,卻迷失于表象,等等。這些現(xiàn)象都反映出了學(xué)習(xí)途徑上的缺失,即缺乏可遵循和模仿的實踐之路?! ∩鐣W(xué)習(xí)理論認(rèn)為,學(xué)習(xí)的產(chǎn)生是通過模仿過程獲得的。如果存在一些實際項目案例,能夠綜合應(yīng)用這些理論知識,并加以深刻的刨析,那么學(xué)習(xí)者就可以獲得模仿的樣本,從而在自己的項目實踐中加以模仿、思考并升華?! 碪ML和模式應(yīng)用》正是一本這樣的書,值得我們置于案頭,隨時參考采擷。 Craig Larman以其對面向?qū)ο笏枷牒蛙浖^程的深刻理解,加之其數(shù)十載的項目和教學(xué)經(jīng)驗,使得本書對概念和理論進(jìn)行精確闡述的同時,又能夠給出完整深入的學(xué)習(xí)案例。并且,正是有了貫穿全書的兩個實際軟件開發(fā)項目,才使得面向?qū)ο蠓治雠c設(shè)計、UML、模式、敏捷過程等理論知識以生動和實用的方式呈現(xiàn)在讀者面前。 讀者在閱讀本書過程中,既能夠獲取大量準(zhǔn)確深入的理性知識,又同時會得到對這些知識的大量感性認(rèn)識。例如,文中有大量迭代精化的用例,可以讓讀者感受到有效用例的內(nèi)容與形式,通過什么樣的活動來逐步形成這樣的用例,用例的本質(zhì)是什么等等。再如,文中介紹了大量敏捷過程的活動形式,包括包裝盒設(shè)計、投票表決、白板和數(shù)據(jù)相機的使用等等,這些活動或技巧看似簡單,卻往往是我們?nèi)菀缀鲆暤?,并且是在我們束手無策時能夠行之有效的方法?! ∵@些實際案例正是我們可以模仿并用于實踐的,同時也使讀者更易于理解和感受表象背后的原理。隨著作者的深入闡述和我們在模仿中的思考,我們將會更容易掌握靈活運用的方法。作者正是通過這樣一條實踐之旅,幫助讀者更容易掌握軟件開發(fā)的方法。 此外,許多大師級人物都對本書有過贊譽之辭,但更為可貴的是,Craig Larman并沒有止步于前,而是不斷吸收軟件領(lǐng)域新興并被驗證過的知識,繼續(xù)豐富和修訂了本書的內(nèi)容。本書第三版較之前的版本而言,更加務(wù)實并更為準(zhǔn)確,尤其是吸收了敏捷思想,并結(jié)合于統(tǒng)一過程之中,使得這一實踐之旅更具有現(xiàn)實意義。 總而言之,獲得一本讓人茅塞頓開的書籍實為不易,但正如Martin Fowler大師所說“人們經(jīng)常問我,對于介紹OO設(shè)計而言,哪本書最好?在遇到〈UML和模式應(yīng)用》之后,我毫無保留地選擇了它”。 串起珍珠的項鏈 ?。?評 〈UML和模式應(yīng)用》第三版 陶達(dá)其 面向?qū)ο蠹夹g(shù)無疑是當(dāng)今最為流行的軟件設(shè)計方法,而且在今后的很長一段時間內(nèi),都將是占據(jù)業(yè)界的主流.正因為如此,幾乎每位程序員都有過曾經(jīng)學(xué)習(xí)面向?qū)ο笤O(shè)計思想經(jīng)歷或者正在開始學(xué)習(xí)面向?qū)ο笏枷? 不知道各位是如何開始的面向?qū)ο笾?我記得我學(xué)習(xí)面向?qū)ο缶幊淌菑腃++ 編程思想開始第一步的,可以說從實踐中摸索.之后更加深入學(xué)習(xí)便是從GoF的那本設(shè)計模式 可以說很多人都是從同樣的學(xué)習(xí)過程中走過來的。如果你也剛剛開始學(xué)習(xí)面向?qū)ο蟮睦碚?,那太好?不必在像我一樣“摸石過橋”, 從我建議你放下手中的其它書籍,跑到書店,先買一本 最新的〈UML和模式應(yīng)用》第三版(以下簡稱 〈U?!?),因為只有這樣,你才能更快更好的理解面向?qū)ο蟮木?,才能更加游刃有余的把OO思想運用到實踐中。 本書被包括Martin Fowler等無數(shù)大師評價為OO設(shè)計的最佳入門書籍,從亞馬遜的眾多讀者評論上,我們也可以清晰地看出這一點,初學(xué)者剛剛開始學(xué)習(xí)面向?qū)ο蟮臅r候,常常容易被時髦的技術(shù)吸引,設(shè)計模式,重構(gòu),UML,敏捷編程,分析模式,每一種技術(shù)好像都像是面向?qū)ο蠹夹g(shù)上的一個珍珠,當(dāng)我們努力學(xué)習(xí)了這一切所有技術(shù),認(rèn)為自己終于修煉完畢,成為“面向?qū)ο蟆钡奈淞指呤至?。 然而?dāng)我們接觸到真實世界的案例的時候,卻發(fā)現(xiàn)自己甚至不能動手開工,因為自己根本不知道從那里開始,不知道把現(xiàn)實的需求變成OO代碼應(yīng)該遵循什么樣的流程,不知道如何進(jìn)行系統(tǒng)分析,不知道開發(fā)應(yīng)遵循什么樣的項目流程,雖然我們每項技術(shù)都很熟練。這是因為我們的知識缺少了一個系統(tǒng)的結(jié)構(gòu),這些技術(shù)珍珠缺少一個將他們串在一起的一個鏈子?! raig Larman 〈U模》3的就是起了這樣一個關(guān)鍵的角色,它像一根鏈子一樣把各種面向?qū)ο蠹夹g(shù)有機的結(jié)合起來,讓你的知識結(jié)構(gòu)成為完整的一體?! ∽x者在讀這本書的時候,隱約會有一種空虛的感覺,因為書中沒有深入介紹某一種具體的技術(shù)。 而是圍繞著兩個“NextGen POS系統(tǒng)” 和 “Monopoly游戲系統(tǒng)”的案例,從需求分析循序漸進(jìn)的開始,經(jīng)過一次次的迭代,漸入的引入了需求分析,用例模型 領(lǐng)域模型,設(shè)計模式,重構(gòu),迭代開發(fā) 等幾乎全部的面向?qū)ο笾R。讀者隨著作者的這個案例最終完成,也把自己的面向?qū)ο?的技術(shù)從頭到尾來了一遍“三軍大演習(xí)”,真正的在實戰(zhàn)中從項目開始到代碼完成演練了一個完整的案例. 值得一提的是:雖然本書贊譽不斷,作者Craig Larman卻沒有因此而停步不前,從本書的第一版到第三步, 作者一直不遺余力地大幅度更新書的內(nèi)容. 從書的副標(biāo)題可以清晰的看出這一點. 1. Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design (1e) 2. Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and the Unified Process (2e) 3. Applying UML and Patterns : An Introduction to Object-Oriented Analysis and Design and Iterative Development (3e) 軟件工程界一直是活躍的,不斷有新的思想迸發(fā),Craig Larman 深知這一點,每一次更新,不僅對前一版進(jìn)行更正和改進(jìn),并且加入最新的軟件工程的技術(shù),使得本書一直緊跟時代?! 〉谌娴母羌尤肓嗣艚菟枷牒偷_發(fā),使得本書不僅含有經(jīng)典的OO 分析,還包含了最新流行的OO分析技術(shù)和項目管理成果. 對這本書的介紹,多為最佳的OO入門教科書,其實這本書遠(yuǎn)遠(yuǎn)不止入門這么簡單,書中涉及了眾多的技術(shù),用例技術(shù),需求獲取,領(lǐng)域模型,設(shè)計模式,UML,簽約式編程,GRASP 模式,敏捷建模等等,而且運用了一個實例有機結(jié)合了起來,我想即使對每種技術(shù)都很熟悉的OO開發(fā)人員,對如何把這些技術(shù)聯(lián)系起來也缺少系統(tǒng)的知識,這本書就能起到這樣的作用.并且本書并不是像教科書那樣說教,作者Craig Larman圍繞實例來說明問題,給讀者以感性上的認(rèn)識?! ≡凇碪?!?當(dāng)中,處處閃現(xiàn)著充滿了智慧的簡約明言,這些大多是作者對多年軟件開發(fā)的精髓的體會和感悟,我在讀這本書的時候經(jīng)常會被這樣語句拍案叫絕。:比如 (1)分析和設(shè)計被概括為:做正確的事(分析),正確的做事(設(shè)計)?! 。?)最關(guān)鍵的軟件開發(fā)工具是受過良好設(shè)計原則訓(xùn)練的思維,而不是UML或任何其他技術(shù) 這樣的句子在排版上都被粗體字或者方框標(biāo)示,閱讀的時候碰到這樣句子,你就要提醒自己多讀兩遍,然后仔細(xì)地體會一下這些軟件開發(fā)的至理名言,相信你也會被作者生動而精辟的描寫而打動的. 可能很多讀者在讀完這本書感到很不過癮,因為書中對太多技術(shù)均有涉及,不可能對每種技術(shù)進(jìn)行深入的探討,Craig Larman 也看到了這點, 在每一章的最后,都有供讀者進(jìn)一步深入的書籍列表.對于國內(nèi)已經(jīng)引進(jìn)的書籍譯者都體貼地加以了注釋。當(dāng)然 Craig Larman 推薦的書都是每個領(lǐng)域響當(dāng)當(dāng)權(quán)威之作,讀者如果想深入了解某一方面的主體,不需要去網(wǎng)上搜索,只需按圖索驥便可,在我看來,單單這份書單,就已經(jīng)賺回這本書一半的價格了. 從第一版到第三版,這本經(jīng)典著作機械工業(yè)出版社都已經(jīng)引進(jìn)了,不過直到第三版,封面才改成了跟英文原版相同經(jīng)典的封面,不像前面兩版,使用系列書籍雷同的頁面,很容易淹沒在良莠不齊的叢書當(dāng)中,本書還有配套的中文站點在上面你可以找到豐富教學(xué)資料和Craig Larman 的其他文章. 〈U?!?譯者的翻譯中規(guī)中矩,建議大家閱讀中文版,畢竟中文的閱讀速度遠(yuǎn)遠(yuǎn)大于英文?! ∵€是開頭的那段話,如果你現(xiàn)在正在學(xué)習(xí)OO技術(shù),希望你先拿起〈U?!?這根黃金項鏈,然后再去采摘其他珍珠,然后把這些珍珠一個個串到這根項鏈上。如果你已經(jīng)學(xué)習(xí)了很多OO技術(shù),也請你拿起這本書,把這些你這些散亂的珍珠,用〈U?!?串成一個完整的項鏈,最終完成自己的OO珍珠項鏈。
編輯推薦
《UML和模式應(yīng)用(原書第3版)》的結(jié)構(gòu)和重點建立在作者多年教授和培訓(xùn)成千上萬學(xué)生掌握OOA/D的經(jīng)驗之上,它提供了一個精煉的、已證明的和高效率的掌握OOA/D的學(xué)習(xí)方法。 “人們經(jīng)常問我,介紹OO設(shè)計的最佳圖書是哪一本。讀過《UML和模式應(yīng)用(原書第3版)》之后,我毫無保留地選擇了它?!?——Martin Fowler,《UML Distilled》和《Refactoring》的作者 “這一版體現(xiàn)了Larman一貫的風(fēng)格,精確且富有思想,確實是一本上乘之作。” ——Alistair Cockburn,《Writing Effective Use Cases》和《Surviving OO Projects》的作者 “很少有人擁有解釋事物的技巧,擁有軟件分析和設(shè)計能力的人就更少了,但Craig Larman同時擁有這兩種能力。” ——John Vlissides,《Design Patterns》和《Pattern Hatching》的作者 · 享譽世界的嶄新版本,面向?qū)ο蠓治雠c設(shè)計及UML的介紹。 · 全面升級到UML 2和最新的迭代/敏捷實踐。 · 增加了全新的案例研究,闡述了大量關(guān)鍵思想。 《UML和模式應(yīng)用(原書第3版)》介紹了“對象思想”,并在實際的面向?qū)ο蠓治龊驮O(shè)計中應(yīng)用了這一思想,即如何以對象進(jìn)行思考和設(shè)計,以及如何創(chuàng)建精致、健壯和可維護(hù)的系統(tǒng)。 開發(fā)者和學(xué)生可以通過貫穿全書的兩個案例研究的三個迭代來學(xué)習(xí)面向?qū)ο蠓治龊驮O(shè)計(OOA/D),這兩個案例研究增量地介紹了關(guān)鍵技能、OO的本質(zhì)原則和模式、UML表示法和最佳實踐。讀者不僅可以從中學(xué)習(xí)到UML圖,更重要的是可以學(xué)習(xí)到如何在OO軟件開發(fā)環(huán)境下應(yīng)用UML。 · 享譽世界的嶄新版本,面向?qū)ο蠓治雠c設(shè)計及UML的介紹。 · 全面升級到UML 2和最新的迭代/敏捷實踐。 · 增加了全新的案例研究,闡述了大量關(guān)鍵思想。 無論對于專業(yè)人士還是教師來說,本書都堪稱世界一流。書中介紹了“對象思想”,并在實際的面向?qū)ο蠓治龊驮O(shè)計中應(yīng)用了這一思想,即如何以對象進(jìn)行思考和設(shè)計,以及如何創(chuàng)建精致、健壯和可維護(hù)的系統(tǒng)。 開發(fā)者和學(xué)生可以通過貫穿全書的兩個案例研究的三個迭代來學(xué)習(xí)面向?qū)ο蠓治龊驮O(shè)計(OOA/D),這兩個案例研究增量地介紹了關(guān)鍵技能、OO的本質(zhì)原則和模式、UML表示法和最佳實踐。讀者不僅可以從中學(xué)習(xí)到UML圖,更重要的是可以學(xué)習(xí)到如何在OO軟件開發(fā)環(huán)境下應(yīng)用UML。 基于廣受贊譽的前兩版,本版進(jìn)行了修訂,充分反映了新的UML 2標(biāo)準(zhǔn),提倡了具有高度影響的、迭代的和有效的敏捷建模實踐,有助于讀者掌握對象設(shè)計,理解進(jìn)化式需求和用例、領(lǐng)域?qū)ο蠼?、職?zé)驅(qū)動設(shè)計、OO設(shè)計本質(zhì)、分層架構(gòu)、“四人幫”設(shè)計模式、GRASP、迭代方法、UP的敏捷途徑等。該版本的主要改進(jìn)包括: · 更專注于幫助讀者掌握OOA/D,通過案例研究論述了關(guān)鍵的OO原則和模式,同時還應(yīng)用了UML。 · 涵蓋了UML 2、敏捷建模、測試驅(qū)動開發(fā)和重構(gòu)。 · 針對迭代和進(jìn)化式開發(fā)與OOA/D的結(jié)合增加了大量技巧。 · 更加易于學(xué)習(xí),引入了新的學(xué)習(xí)幫助和插圖。 · 增加了新的教學(xué)資源。 · 對以輕量和敏捷精神應(yīng)用UP給予了指導(dǎo),補充了諸如XP和Scrum等其他迭代方法。 · 增加了應(yīng)用UML對架構(gòu)進(jìn)行文檔化的技術(shù)。 · 對進(jìn)化式需求增加了新的章節(jié)。
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載