书籍推荐 —— UML和模式应用(原书第3版)

内容简介

■关于面向对象分析与设计及UML的经典之作。
  ■全面升级到UML 2和新的迭代/敏捷实践。
  ■增加了全新的案例研究,阐述了大量关键思想。

  无论对于专业人士还是教师来说,本书都堪称经典之作。本书介绍了对象思想,并在实际的面向对象分析和设计中应用这一观点。本书的第1版和第2版广受赞誉,在第3版中,作者Craig Larman所作的更新充分反映了新的UML 2标准,有助于读者掌握对象设计,并且提倡具有高度影响的、迭代和有效的敏捷建模实践。
  开发者和学生可以通过两个贯穿全书的案例研究来学习面向对象分析和设计(OOA/D)。这些案例研究循序渐进地介绍了关键技能、OO的本质原则和模式、UML表示法和佳实践。读者不仅能够学习UML图,更重要的是能够理解如何在OO软件开发环境下应用UML。
  作为成功的导师和顾问,Larman拥有丰富的实践经验,能够帮助读者理解进化式需求和用例、领域对象建模、职责驱动设计、OO设计本质、分层架构、GoF设计模式、GRASP、迭代方法、UP的敏捷途径等知识。
  第3版实用、易懂,介绍了如何以对象进行思考和设计,以及如何创建健壮和可维护的系统。

本书的特点
  ●注重帮助读者掌握OOA/D,本书通过案例研究论述了关键的OO原则和模式,同时应用了UML。
  ●增加对UML 2、敏捷建模、测试驱动开发和重构的介绍。
  ●增加大量结合迭代和进化式开发的技巧。
  ●引入了新的学习帮助和插图,使读者更容易学习。
  ●增加了新的教学资源。
  ●对以轻量和敏捷精神应用UP给予了指导,补充了诸如XP和Scrum等迭代方法。
  ●介绍应用UML对架构进行文档化的技术。
  ●更详细地介绍进化式需求。

作者简介

Craig Larman: Craig Larman Valtech公司首席科学家,Valtech是一家领先的跨国技术咨询公司,在美国、欧洲和亚洲都有分支机构。他是国际软件界知名的专家和导师,专长为OOA/D与设计模式、敏捷/迭代方法、统一过程的敏捷途径和UML建模。除本书外,他还著有畅销的《Agile and Iterative Development: A Manager's Guide》(敏捷迭代开发,该书影印由机械工业出版社引进出版)一书,并且与Rhett Guthrie合著了《Java 2Performance and Idiom Guide》一书。Larman是ACM和IEEE会员,拥有计算机科学学士和硕士学位。他的中文网站是www.craiglarman.cn。

目录

第一部分 绪   论
第1章  面向对象分析和设计 2
1.1 本书的主要内容 2
1.2  最重要的学习目标 4
1.3  什么是分析和设计 5
1.4  什么是面向对象分析和设计 5
1.5  简单示例 5
1.6  什么是UML 8
1.7  可视化建模的优点 10
1.8  历史 10
1.9  参考资料 12
第2章  迭代、进化和敏捷 13
2.1  什么是UP?其他方法能否对其进行补充 13
2.2  什么是迭代和进化式开发 15
2.3  什么是瀑布生命周期 17
2.4  如何进行迭代和进化式分析和设计 18
2.5  什么是风险驱动和客户驱动的迭代计划 20
2.6  什么是敏捷方法及其观点 20
2.7  什么是敏捷建模 22
2.8  什么是敏捷UP 23
2.9  UP的其他关键实践 24
2.10  什么是UP的阶段 25
2.11  什么是UP科目 25
2.12  如何定制过程和UP开发案例 27
2.13  判断你是否理解迭代开发或UP 28
2.14  历史 29
2.15  参考资料 29
第3章  案例研究 31
3.1  案例研究中涵盖的内容 31
3.2  案例研究策略:迭代开发+迭代学习 32
3.3  案例一:NextGen POS系统 32
3.4  案例二:Monopoly游戏系统 33
第二部分  初 始 阶 段
第4章  初始不是需求阶段 36
4.1  什么是初始阶段 36
4.2  初始阶段的持续时间 37
4.3  初始阶段会创建的制品 38
4.4  何时知道自己并不了解初始阶段 39
4.5  初始阶段中有多少UML 39
第5章  进化式需求 40
5.1  定义:需求 40
5.2  进化式需求与瀑布式需求 41
5.3  寻找需求可以采用的方法 42
5.4  需求的类型和种类 42
5.5  UP制品如何组织需求 43
5.6  本书是否包含这些制品的示例 43
5.7  参考资料 44
第6章  用例 45
6.1  示例 45
6.2  定义:参与者、场景和用例 47
6.3  用例和用例模型 47
6.4  动机:为什么使用用例 48
6.5  定义:用例是功能性需求吗 48
6.6  定义:参与者的三种类型 48
6.7  表示法:用例的三种常用形式 49
6.8  示例:详述风格的处理销售 49
6.9  各小节的含义 55
6.10  表示法:有其他格式吗?两栏变体 60
6.11  准则:以无用户界面约束的本质风格编写用例 60
6.12  准则:编写简洁的用例 62
6.13  准则:编写黑盒用例 62
6.14  准则:采用参与者和参与者目标的视点 62
6.15  准则:如何发现用例 62
6.16  准则:什么样的测试有助于发现有用的用例 65
6.17  应用UML:用例图 67
6.18  应用UML:活动图 69
6.19  动机:用例还有其他益处吗?语境中的需求 69
6.20  示例:Monopoly游戏 70
6.21  过程:在迭代方法中如何使用用例 71
6.22  历史 75
6.23  参考资料 75
第7章  其他需求 76
7.1  如何完成这些示例 77
7.2  准则:初始阶段是否应该对此彻底地进行分析 77
7.3  准则:这些制品是否应该放在项目Web站点上 77
7.4  NextGen示例:(部分)补充性规格说明 78
7.5  注解:补充性规格说明 80
7.6  NextGen示例:(部分)设想 82
7.7  注解:设想 84
7.8  NextGen示例:(部分)词汇表 87
7.9  注解:词汇表(数据字典) 87
7.10  NextGen示例:业务规则(领域规则) 88
7.11  注解:领域规则 89
7.12  过程:迭代方法中的进化式需求 89
7.13  参考资料 90
第三部分  细化迭代1—基础
第8章  迭代1—基础 92
8.1  迭代1的需求和重点:OOA/D技术的核心 92
8.2  过程:初始和细化 94
8.3  过程:计划下一个迭代 96
第9章  领域模型 98
9.1  示例 99
9.2  什么是领域模型 100
9.3  动机:为什么要创建领域模型 102
9.4  准则:如何创建领域模型 104
9.5  准则:如何找到概念类 104
9.6  示例:寻找和描绘概念类 106
9.7  准则:敏捷建模—绘制类图的草图 107
9.8  准则:敏捷建模—是否要使用工具维护模型 107
9.9  准则:报表对象—模型中是否要包括“票据” 108
9.10  准则:像地图绘制者一样思考;使用领域术语 108
9.11  准则:如何对非现实世界建模 108
9.12  准则:属性与类的常见错误 109
9.13  准则:何时使用“描述”类建模 109
9.14  关联 111
9.15  示例:领域模型中的关联 115
9.16  属性 117
9.17  示例:领域模型中的属性 122
9.18  结论:领域模型是否正确 123
9.19  过程:迭代和进化式领域建模 124
9.20  参考资料 125
第10章  系统顺序图 126
10.1  示例:NextGen SSD 126
10.2  什么是系统顺序图 128
10.3  动机:为什么绘制SSD 128
10.4  应用UML:顺序图 129
10.5  SSD ......

前言/序言

感谢你阅读本书!我可以提供(OOA/D、UML、建模、迭代和敏捷方法等方面的)问题解答、咨询或培训等服务,欢迎访问我的网站www.craiglarman.com(中文站点是www.craiglarman.cn)。
  本书是面向对象分析和设计(OOA/D)的实用指南,并且阐述与迭代开发相关的内容。我很高兴地看到本书的第1版和第2版在全世界范围内得到了广泛认可。我衷心地感谢所有读者!
  通过阅读本书,你将会有如下收益:
  第一,对象技术已获得广泛应用,掌握OOA/D对于成功进行软件开发是至关重要的。
  第二,如果你刚刚接触OOA/D,你将会面临如何掌握这个复杂主题的挑战。本书提供了一个良好定义的迭代式路线图(统一过程的敏捷方法),帮助你一步一步地完成从需求到编码的全部工作。
  第三,统一建模语言(UML)已成为建模的标准表示法,所以能够熟练应用UML是很有用的。
  第四,设计模式表达了面向对象设计专家用于创建系统的“最佳实践”的习惯用法和方案。在本书中,你将学习如何应用设计模式,包括流行的GoF模式和GRASP模式。学习和应用这些模式将有助于你更快地掌握分析和设计技能。
  第五,本书的结构和重点基于作者多年来教授和培训成千上万学生掌握OOA/D的经验,它提供了一个精炼的、已证明的和高效的掌握OOA/D的学习方法,使你能够用尽量少的阅读和学习时间掌握OOA/D。
  第六,本书详尽地说明两个案例研究,以便实际地说明整个OOA/D过程,并深入讨论棘手的细节问题。
  第七,本书说明如何将对象设计制品映射成Java代码,还介绍了测试驱动开发和重构。
  第八,本书解释如何设计一个分层架构,以及如何将用户界面层与领域层和技术服务层关联起来。
  最后,本书展示如何设计一个面向对象框架的相关知识,并应用这些知识来创建一个在数据库中持久化存储的框架。

教学和Web资源
  你可以在www.craiglarman.com找到相关文章。
  在全球范围内,有成百上千名教师在使用本书,并且本书至少已被翻译为10种语言。在我的网站上有各种教师资源,包括PowerPoint形式的本书所有插图、OOA/D的PowerPoint演示以及其他更多内容。如果你是教师,欢迎与我联系以获取这些资源。
  我从使用过本书的教师那里收集了一些资料,以便与其他教师共享。如果你也有可以共享的资料,请与我联系。

读者对象—入门级
  本书是一本入门书,主要介绍OOA/D以及相关的需求分析,并以统一过程作为样例过程来阐述迭代开发。本书不是有关OOA/D的高级教材。它适合以下读者阅读:
  * 具有面向对象编程经验但是刚刚接触OOA/D的开发者和学生。
  * 在计算机科学和软件工程课程中学习对象技术的学生。
  * 熟悉OOA/D但希望学习UML表示法、应用模式的读者,或者希望加强和提高自己的分析和设计技能的读者。

预备知识
  本书假设读者已具备如下必需的知识:
  * 面向对象程序设计语言(如Java、C#、C++或Python)的知识和经验。
  * 面向对象技术的基本概念和知识,如类、实例、接口、多态、封装和继承。
  在本书中没有定义基本的面向对象技术概念。

Java示例,但是……
  本书一般用Java语言编写示例代码,这是因为Java使用广泛。然而,本书的观点适用于大多数(即使不是全部)的面向对象程序设计语言,包括C#、Python等。

本书的组织结构
  本书按与软件开发项目类似的顺序引入分析和设计的主题,包括“初始”阶段(统一过程中的术语)及后续的三个迭代(见图P-1)。
  1) 初始阶段的各章介绍需求分析的基本知识。
  2) 迭代1介绍OOA/D的基本知识以及如何为对象分配职责。
  3) 迭代2重点介绍对象设计,特别是介绍一些常用的“设计模式”。
  4) 迭代3介绍多个不同的主题,如架构分析和框架设计。
图P-1  本书的组织结构遵循项目的开发过程

关于作者
  Craig Larman是Valtech公司的首席科学家。Valtech公司是一家国际性的咨询和技术转让公司,在欧洲、亚洲和北美洲都有分支机构。他还是《敏捷迭代开发:管理者指南》(Agile and Iterative Development: A Manager誷 Guide)一书的作者,这是一本关于软件工程和迭代、敏捷开发方面的畅销书籍。他在全球各地游历,足迹遍布从美国印地安那州到印度的很多地方,为开发团队和管理人员进行培训。
  20世纪80年代中期以来,Craig帮助了数以千计的开发者,使他们能够应用OOA/D、熟练使用UML建模技术、采用迭代开发实践。
  在结束其街头流浪音乐家生涯后,Craig在20世纪70年代开始使用APL、PL/I和CICS建立系统。从20世纪80年代初期开始,他开始对人工智能产生兴趣,并用Lisp机器、Lisp、Prolog和Smalltalk建立过知识系统。他也为使用Java、.NET、C++和Smalltalk建立系统的公司工作过。他在大部分业余时间里担任过Changing Requirement乐队(曾经称为Requirement,但是成员上有些变动)的主音吉他手。

 

UML模式应用(原书第3).pdf是一本关于软件开发UML(统一建模语言)和设计模式应用的书籍。这本书主要介绍了如何使用UML来进行软件设计和建模,并且讲解了常用的设计模式和它们在不同情况下的应用UML是一种通用的建模语言,可以帮助软件开发人员在软件设计开发过程中进行建模和分析。它提供了一系列的图表和符号,用于描述系统的结构和行为。通过使用UML开发人员可以更好地理解系统的特性和需求,并为开发过程提供指导。 而设计模式是经过反复使用和验证的软件开发经验的总结,它提供了一种解决常见设计问题的方法。设计模式可以帮助开发人员提高代码的复用性、可维护性和可拓展性。这本书详细介绍了23种经典的设计模式,包括单例模式、工厂模式、观察者模式等。 该书的第三版UML设计模式应用进行了全面的更新和扩展。它增加了对新兴技术(如云计算和容器化)的讨论,并提供了更多实际案例和示例代码来帮助读者理解和应用这些概念。 通过阅读该书,读者可以掌握使用UML进行系统建模和分析的技巧,以及如何在实际项目中应用设计模式解决具体问题。它适用于软件开发人员、架构师和系统分析师等从事软件开发设计工作的专业人士。 总而言之,UML模式应用(原书第3).pdf提供了一个全面且实用的指南,帮助读者更好地应用UML设计模式来进行软件开发设计。对于想要深入了解和应用这些概念的人来说,这本书是一本不可或缺的参考资料。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值