书籍详情
《UML2面向对象分析与设计》[28M]百度网盘|亲测有效|pdf下载
  • UML2面向对象分析与设计

  • 出版社:清华大学出版社
  • 出版时间:2018-12
  • 热度:4370
  • 上架时间:2024-06-30 09:08:33
  • 价格:0.0
书籍下载
书籍预览
免责声明

本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正

内容介绍

产品特色

内容简介

分析和设计是软件开发中至关重要的一环,面向对象的方法是主流的软件开发方法,UML是用于面向对象分析设计的标准化建模语言。本书围绕这3个方面展开,以论述分析设计建模过程为最终目标,以面向对象方法作为建模的理论基础,以UML作为建模支撑语言。全书从面向对象和UML的基本概念入手,循序渐进地讲解业务建模、需求建模、需求分析、设计原则和模式、架构设计、构件设计和代码生成等分析设计中的各个知识点,并通过多个贯穿全书的案例将各个知识点串联起来,形成一套完整的面向对象分析设计方法论。

本书是作者多年从事软件工程教学和软件项目开发实践的总结,书中并没有太多抽象的概念,主要关注实际软件开发中所需要的知识和实践技能,力求做到通俗易懂。
本书既可作为高等院校软件工程专业及计算机相关专业高年级本科生或研究生的教材,也可供软件开发人员阅读和参考。

作者简介

介绍新的UML 2.5和一些建模领域的新发展和应用, 书中涉及的案例模型也同时提供了Rational Rose和Enterprise Architect 12这两个工具的版本

目录

目录
第1章上升到面向对象
1.1从素数问题看面向对象
1.1.1问题的提出
1.1.2传统的结构化解决方案
1.1.3面向对象的解决方案
1.1.4从结构化到面向对象
1.2面向对象技术基础
1.2.1面向对象技术的发展历史
1.2.2面向对象技术的优势
1.3对象和类
1.3.1对象
1.3.2类
1.4面向对象技术的相关原则
1.4.1抽象
1.4.2封装
1.4.3分解
1.4.4泛化
1.4.5多态
1.4.6分层
1.4.7复用
1.5建立面向对象思维
1.5.1引入案例
1.5.2用面向对象思维分析案例
1.5.3利用UML表达分析结果
1.6练习题
第2章可视化建模技术
2.1可视化建模基础
2.1.1建模的目的
2.1.2建模的基本原则
2.2统一建模语言
2.2.1选择UML
2.2.2UML统一历程
2.3UML 2组成结构
2.3.1UML语法结构
2.3.2UML语义结构
2.4UML 2概念模型
2.4.1构造块
2.4.2通用机制
2.4.3架构
2.5应用UML 2建模
2.5.1用例图
2.5.2活动图
2.5.3类图、对象图、包图和组合结构图
2.5.4顺序图
2.5.5交互概览图
2.5.6通信图
2.5.7时间图
2.5.8状态机图
2.5.9构件图和部署图
2.6练习题
第3章业务建模
3.1分析设计过程简介
3.1.1UML分析设计过程解析
3.1.2结合过程应用UML
3.2业务建模基础
3.3业务用例模型
3.3.1识别业务参与者
3.3.2识别业务用例
3.3.3利用活动图描述业务用例
3.4业务对象模型
3.5业务建模实践
3.5.1建模前的准备
3.5.2旅店业务建模案例
3.6从业务模型到系统模型
3.7练习题
第4章用例建模
4.1理解需求
4.2从业务模型获取需求
4.2.1寻找业务改进点
4.2.2定义项目远景
4.2.3导出系统需求
4.3建立用例模型
4.3.1获取原始需求
4.3.2识别参与者
4.3.3识别用例
4.3.4绘制用例图
4.3.5用例建模实践
4.4编写用例文档
4.4.1用例文档基础
4.4.2参与者与涉众
4.4.3前置条件和后置条件
4.4.4事件流
4.4.5补充约束
4.4.6场景
4.4.7用例文档实践
4.5重构用例模型
4.5.1使用用例关系
4.5.2用例分包
4.5.3用例分级
4.6其他问题
4.6.1用例建模中的常见问题
4.6.2用例模型与需求规约
4.6.3用例建模的适用场合
4.6.4用例与项目管理
4.7练习题
第5章用例分析
5.1理解分析
5.1.1从需求到分析
5.1.2分析模型
5.1.3分析的基本原则
5.2从用例开始分析
5.2.1用例驱动的迭代开发
5.2.2用例实现
5.3架构分析
5.3.1备选架构
5.3.2分析机制
5.3.3关键抽象
5.4构造用例实现
5.4.1完善用例文档
5.4.2识别分析类
5.4.3分析交互
5.4.4完成参与类类图
5.4.5处理用例间的关系
5.4.6总结: 构造用例实现
5.5定义分析类
5.5.1定义职责
5.5.2定义属性
5.5.3定义关系
5.5.4限定分析机制
5.5.5统一分析类
5.6练习题
第6章面向对象的设计原则
6.1设计需要原则
6.1.1从问题开始
6.1.2设计质量和设计原则
6.2Liskov替换原则
6.2.1基本思路
6.2.2应用分析
6.2.3由LSP引发的思考
6.2.4从实现继承到接口继承
6.3开放—封闭原则
6.3.1基本思路
6.3.2应用分析
6.3.3运用OCP消除设计“臭味”
6.4单一职责原则
6.4.1基本思路
6.4.2应用分析
6.5接口隔离原则
6.5.1基本思路
6.5.2应用分析
6.6依赖倒置原则
6.6.1基本思路
6.6.2应用分析
6.6.3运用DIP进行设计
6.7练习题
第7章面向对象的设计模式
7.1模式与设计模式
7.1.1模式基础
7.1.2设计模式
7.2GoF模式
7.2.1GoF模式清单
7.2.2应用GoF模式
7.2.3培养模式思维
7.2.4运用模式设计可复用构件
7.3更多的设计模式
7.4职责分配模式
7.4.1通用职责分配软件模式
7.4.2迪米特准则
7.5其他问题
7.5.1设计模式与编程语言
7.5.2设计模式与重构
7.6练习题
第8章架构设计
8.1过渡到设计
8.1.1理解设计
8.1.2从分析到设计
8.2架构设计基础
8.2.1架构
8.2.2包图
8.2.3包设计原则
8.2.4利用包图设计架构
8.3确定设计元素
8.3.1从分析类到设计元素
8.3.2确定事件和信号
8.3.3组织设计类
8.3.4确定子系统和接口
8.3.5确定复用机会
8.3.6更新软件架构
8.4引入设计机制
8.4.1从分析机制到设计机制
8.4.2确定设计机制
8.5定义运行时架构
8.5.1描述并发需求
8.5.2进程和线程建模
8.5.3分配设计元素
8.6描述系统部署
8.6.1分布模式
8.6.2部署建模
8.6.3定义分布机制
8.7练习题
第9章构件设计
9.1用例设计
9.1.1从用例分析到用例设计
9.1.2引入设计元素
9.1.3使用架构机制
9.1.4利用子系统封装交互
9.1.5细化并完善用例实现
9.2子系统设计
9.2.1子系统设计基础
9.2.2分配子系统职责
9.2.3描述子系统内部结构
9.2.4定义子系统间的关系
9.2.5子系统与构件
9.3类设计
9.3.1设计类
9.3.2创建初始设计类
9.3.3定义操作
9.3.4定义方法
9.3.5状态建模
9.3.6定义属性
9.3.7细化关联关系
9.3.8使用聚合和组合关系
9.3.9引入依赖关系
9.3.10设计泛化关系
9.3.11其他问题
9.4数据库设计
9.4.1数据模型
9.4.2从对象模型到数据模型
9.4.3利用对象技术访问关系数据
9.5练习题
第10章从模型到代码
10.1正向工程
10.1.1从类图生成框架代码
10.1.2从交互图创建操作调用代码
10.2逆向工程
10.3模型驱动架构
10.4练习题
参考文献

精彩书摘

  第3章业务建模
  软件开发的最终目标是为了满足业务需求,以帮助用户解决业务中的问题。早期的软件开发方法并没有充分意识到业务的重要性,而随着RUP中将业务建模作为软件开发的第一个工作流,业务建模的重要性也日益被人们所认识; 良好的业务建模可以为软件的成功开发奠定坚实的基础。UML主要用于软件系统的分析和设计,但是其强大的扩展机制使得利用UML进行业务建模成为可能。本章从基本的业务建模概念入手,重点介绍利用UML进行业务建模的全过程。
  本章目标
  业务建模是项目的起源,是描述项目开发的依据,还是后续需求建模的基础。通过对本章的学习,读者能够了解业务建模的概念,掌握利用用例技术进行业务建模的方法和实践过程,并对从业务模型转换到系统模型的过程有一定的了解。
  主要内容
  (1) UML与软件工程过程的区别和联系。
  (2) 业务建模的基本概念: 业务参与者、业务用例、业务工人、业务实体和业务用例实现。
  (3) 基于用例技术的业务建模方法和实践: 业务用例图和业务活动图。
  (4) 从业务模型到系统模型的映射。
  3.1分析设计过程简介
  为了能够有效地进行软件系统的分析和设计,需要将各个技术层次合理地、适时地结合在一起,这就需要遵循一定的过程,也就是软件工程过程所要求的内容。虽然UML提供了有效地表达分析和设计思想的手段,但是如何合理地、适时地利用这些手段去进行分析和设计是UML所不能提供的。因此,从本质上来讲,UML仅仅是一种标准的表达形式,它提供了统一的符号体系,使人们摆脱了符号之间的困扰,从而可以专心面对业务问题。而用好UML除了需要掌握面向对象分析和设计的基本原则和方法外,还需要借助一定的软件开发过程。
  与UML配套的软件工程过程很多,其中应用最广的还是与UML同出一门的Rational统一过程(Rational Unified Process,RUP)。Rational统一过程是一个庞大的、应用于企业应用开发的工程过程,它提供了如何在开发组织中严格分配任务和职责的方法,其目标是按照预先制定的时间计划和经费预算,开发高质量的软件产品以满足用户的需求,其核心思想是用例驱动、以架构为中心的迭代增量开发。本书并不是一本介绍过程的书,但是为了能够有效地进行分析和设计,还必须采纳一定的过程,而RUP过程本身过于复杂,并不符合本书的学习要求。因此本书在借鉴RUP思想的基础上,定义了重点关注分析和设计的简化过程,这样既保证能够按照有效的过程进行分析和设计,又不会因为过于复杂的过程而影响到对分析和设计方法的学习。
  3.1.1UML分析设计过程解析
  本书所讨论的UML分析设计过程起始于业务建模,接下来是需求建模、用例分析、架构设计和构件设计,最后终止于代码实现。本书的后续内容将按照这个过程展开。当然,这个过程并不是完整的软件开发过程(如缺少计划、管理、测试、维护等方面的内容),这里重点关注的是分析和设计。此外,书中对于这些阶段的描述是线性的,但在实际应用过程中它应该是一个迭代增量的过程。这个过程如图31所示,框内的图示是相关阶段所要使用的主要的UML图例。
  图31UML分析设计过程
  (1)
  业务建模: 采用软件建模方法分析和理解待开发的业务,描述业务流程; 其目标是认识业务本质,该业务本质是后续用例建模的基础。此部分内容对应本书第3章。
  (2)
  用例建模: 采用UML用例建模技术描述软件需求,该需求模型将为后续用例分析提供输入。此部分内容对应本书第4章。
  (3)
  用例分析: 采用UML用例分析技术分析软件需求,建立软件系统的分析模型。此部分内容对应本书第5章。
  (4)
  架构设计: 在系统的全局范围内,以分析模型为基础,设计系统的架构。此部分内容对应本书第8章(第6章和第7章是设计的基础理论)。
  (5)
  构件设计: 根据架构设计的成果,将分析模型细化,设计系统构件的实现细节。此部分内容对应本书第9章。
  (6)
  代码实现: 将系统构件映射到目标语言上。此部分内容对应本书第10章。
  3.1.2结合过程应用UML
  UML和过程本身并不存在严格的对应关系,它们之间是一种多对多的关系; 不同的过程、不同的阶段对UML使用有不同的要求。如RUP方法中提供了4个阶段9个工作流的二维过程模式,但是在某个特定的阶段、对于特定的工作流采用何种UML模型进行建模,这些在RUP中并没有做强制的规定。不过RUP却提供了很多最佳实践,这些最佳实践提醒用户只有合理地利用UML,才能发挥RUP方法的特点。
  关于UML和过程的关系可以采用一个形象的比喻: 过程是一种“战术”,它决定了项目团队如何去合理地安排资源、进度或人员; 而UML则是一种“作战技能”,是团队成员的使能技术,再好的战术缺少合适的人去执行也是空谈。这两者之间是相辅相成的。
  本书在定义UML分析设计过程时,给读者提供了一些可参考的最佳实践。正如图31所示,每个阶段都有不同的UML模型去支撑。在业务阶段,采用扩展的业务用例模型进行业务建模,采用活动模型进行业务流程的细化。在用例建模阶段,采用用例模型进行需求建模,采用用例文档来详述需求。在用例分析阶段,采用扩展的类模型表示静态关系,采用交互模型表示动态交互。在设计阶段则采用包、构件、部署等模型表示软件架构,采用静态类图、动态交互图、状态模型来进行详细的类设计。在代码实现阶段,则根据设计类图、设计交互图生成代码。这些模型的细节和使用方式将在本书的后续章节中详细展开讨论。
  图31给出的是一个相对完整的在系统开发过程中使用UML的示意图。在项目实践过程中,团队可以根据自身的实际情况逐步引入不同的UML模型。早期,可以只在需求阶段采用用例建模技术,后续过程仍沿用以前传统的方式进行分析和设计。在此基础上,下一步可以利用UML类图进行静态分析和设计。最后,可以更进一步使用UML交互模型进行动态分析和设计,从而使用UML模型覆盖项目的全生命周期。
  ……

前言/序言

  第2版前言
  自2013年出版后,本书第1版被多所高校选用,得到了大家的认可。随着UML语言自身的发展和广泛应用,以及在这期间部分使用者反馈的意见,我们发现有必要对书中的内容进行修订。本次修订除了修改书中的差错外,对书中的部分内容也进行了调整,主要包括以下几个方面。
  (1) 增加了200道练习题。在每一章的最后新增了数量不等的练习题,题型包括选择题、简答题和应用题。这些习题主要来自编者多年来的教学实践积累。其中,选择题主要涉及书中的重要概念和典型应用,可用于课堂教学过程中的随堂测试; 简答题涵盖了每个章节的核心知识点,可用于学生课后复习; 而应用题则为案例实践和部分课外调研,可用于学生课外综合实践。读者可联系出版社或编者本人获取习题答案。
  (2) 更新部分内容。结合UML 2.5和建模领域的新发展与应用,更新了书中的部分内容,包括第2章UML组成结构、第3章UML活动图等内容。
  (3) 更新有关建模工具的使用。本书第1版中建模实践的内容主要是围绕Rational Rose工具开展的。新版在保留原有的内容基础上,增加了目前流行的Enterprise Architect 12工具使用的介绍,对书中涉及的案例模型同时提供了这两个工具的版本。
  (4) 增加了多媒体教学资料。除了第1版提供的教学PPT和课程案例模型外,新版还配套录制了一些教学视频,主要讲解各类建模操作实践,欢迎读者观看。
  当然,书中还难免存在一些不足或者疏漏之处,欢迎各位读者批评指正; 如有疑问或问题,请随时与编者联系,电子邮箱: thbin@buaa.edu.cn,编者在博客园上的个人博客主页会发布图书相关信息,网址为http://www.cnblogs.com/thbin/。
  编者2018年9月
  第1版前言
  毋庸置疑,面向对象的方法已成为现代软件开发中最主流的方法,即便是SOA、云计算等概念也均是建立在面向对象方法基础之上的进一步抽象。与此同时,自1997年UML正式诞生,到2011年发布的UML 2.4.1,经历了多个版本的发展和完善,UML已成为建模语言的国际标准(ISO 19501和ISO 19505),基于UML的面向对象分析设计方法也日益成熟。然而,UML只是提供了一种标准的表示法,在分析设计过程中,什么时候以什么方式使用什么UML模型等具体的建模实践并没有在UML中定义,而这才是广大软件开发人员所要掌握的实践技能,也是本书所关注的内容。
  本书目标
  本书系统地介绍了利用UML 2进行面向对象分析与设计的过程,主要目标包括以下3个方面。
   ◆
  OO(面向对象): 建立对象的思维方式,对面向对象思想和理论有深入的理解。
   ◆UML(统一建模语言): 能够熟练地使用UML表达面向对象的设计思想。
   ◆Model(建模): 运用面向对象的一般原则和模式进行应用系统的分析和设计建模。
  组织结构
  本书总体结构可以分为三大部分。
  第一部分为基础概念,包括第1章和第2章。其中,第1章为上升到面向对象,通过案例引出面向对象的方法,并重点介绍了对象技术中的几个核心概念; 第2章为可视化建模技术基础,全面介绍了有关UML 2的组织结构和内容。这些基础概念将在后续的分析设计中被广泛使用。
  第二部分为面向对象的分析,包括第3~5章。其中,第3章为业务建模,原始业务是需求分析的出发点,本章简要地介绍了业务建模的基本概念和方法,并提供了一些实践指南; 第4章为用例建模,系统地介绍了利用UML用例模型进行需求定义的过程和实践; 第5章为用例分析,介绍了如何围绕第4章所建立的用例模型进行面向对象分析的方法和实践。
  第三部分为面向对象的设计,包括第6~10章。其中,第6~7章为设计基础,分别介绍了有关面向对象设计的基本原则和模式,这些原则和模式将有效地指导后续的设计过程; 第8章为架构设计,介绍了如何在系统的全局范围内,基于分析活动的成果定义设计元素、设计机制等内容,从而构造系统的组织结构; 第9章为构件设计,介绍了如何在系统的局部设计各个细节,包括用例设计、子系统设计、类设计和数据库设计等方面的内容; 第10章为从模型到代码,简单地介绍了设计模型和代码之间的映射,为后续编码做准备。
  在案例设计方面,本书设计了两个贯穿全书的案例: 旅店预订系统和旅游业务申请系统。这两个案例各有侧重,通过它们,读者不仅可以掌握UML建模的基本方法,还可以全面了解在整个系统开发过程中从分析模型到设计模型不断演化的过程。此外,在各个章节中,针对一些特定的知识点,设计了各种小的案例进行阐述,这些案例包括第1章开篇的素数问题、第2章的图书馆管理系统、第3章的饭店系统、第6章的咖啡机系统、第7章的可复用按钮等。
  有关UML内容,本书从两个层面进行介绍: 首先在第2章中对UML基本概念、组织结构和各种模型进行了系统、初步的介绍; 然后在后续的分析设计实践中针对一些重点UML模型的使用进行详细、深入的论述,使读者在掌握UML基本概念后,能够在需要的地方进行应用。有关各章节中涉及的UML模型和核心概念如下表所示。
  章节章 节 名 称章 节 性 质UML模型核 心 概 念
  第1章上升到面向对象基础面向对象技术、类、对象
  第2章可视化建模技术基础*(全部)UML组织结构
  第3章业务建模业务活动图业务参与者、业务用例、活动
  第4章用例建模需求用例图用例、参与者、用例关系
  第5章用例分析分析顺序图、类图用例实现、分析类(边界类、控制类和实体类)
  第6章面向对象的设计原则设计基础通信图设计原则
  第7章面向对象的设计模式设计基础模式、设计模式、GRASP
  第8章架构设计设计包图、部署图构架、设计元素、设计机制、
  进程、线程
  第9章构件设计设计类图、状态机图、构件图接口、子系统、组合结构操作、方法、状态、关系
  第10章从模型到代码实现正向工程、逆向工程
  有关UML工具的选择,也是读者所关心的问题。市面上有很多商业的或开源的UML工具,这些工具各有特点,但核心建模功能都相差不大。工具本身只是一种实现手段,选择哪款UML工具,并不影响对本书概念的理解和实践。本书中的UML模型绘制主要采用IBM Rational Rose 2003和Sparx Systems Enterprise Architect 7.5工具,都不算最新的工具,够用即可。选择Rose是因为编者从最早学习UML开始就一直使用该工具,虽然有点老,但能满足大部分建模需求; 不过由于Rose 2003不支持最新的UML 2,因此针对UML 2中的新概念选择了Enterprise Architect(没有选择IBM Rational的后续版本RSA是因为这个工具集过于庞大,更倾向于一个集成开发平台,不适合作为一个普通的UML工具进行介绍; 此外,其默认的图形样式颜色较淡,不适合放在书中展示)。当然,这两个工具也无法覆盖到所有的UML概念,因此书中有些模型是选择其他的UML工具或一些绘图工具完成的。
  致谢
  本书是编者在北京航空航天大学软件学院近10年的研究生面向对象分析与设计课程教学基础上编写而成的,非常感谢软件学院的领导、教师和学生提供这样的交流平台,书中大部分内容和案例都是通过此课程的教学不断形成和完善的。在此,还要特别感谢在课程教学和教材编写过程中提供帮助的姚淑珍教授、林广艳副教授、杨文龙教授、孟岩老师等学院教师和企业导师。此外,编者还曾参加过IBM组织的面向对象分析与设计课程培训、UML China公开课等,也曾为一些软件企业进行过有关方面的培训,这些来自企业的经历也充实了课程和教材内容,在此一并表示感谢。最后,还需要感谢我的家人,正是因为她们无私的奉献才使得我有更多的精力投入到课程教学和教材编写中。
  编者
  2012年10月