编辑推荐
无论编程语言或开发工具多么复杂,都是为了用产品或服务来表达对事物的分析、解构、抽象与重构,从而满足客观存在的需求。
源于一线教学实践,融入系统分析经验,深刻诠释UML理论与工具的实际应用,全面剖析面向对象建模。
内容简介
《UML基础与Rose建模案例(第3版)》介绍了使用UML(统一建模语言)进行软件建模的基础知识以及RationalRose2007工具的使用方法。
《UML基础与Rose建模案例(第3版)》在第2版的基础上,充分吸取了读者宝贵的反馈意见和建议,更新了大部分案例。书中前11章是基础部分,对软件工程思想、UML的相关概念、RationalRose工具、RUP软件过程,以及UML的双向工程等进行了详细的介绍;后3章是案例部分,通过档案管理系统、新闻中心管理系统以及汽车租赁系统3个综合实例,对UML建模(以RationalRose2007为实现工具)的全过程进行了剖析;最后的附录中给出了UML中常用的术语、标准元素和元模型,便于读者查询。
《UML基础与Rose建模案例(第3版)》是一本基础与实例紧密结合的UML书籍,可以作为从事面向对象软件开发人员的学习指导用书,也可以作为高等院校计算机或软件工程相关专业的教材。
内页插图
目录
第1章 软件工程与UML概述
1.1 软件工程概述
1.1.1 软件工程的发展历史
1.1.2 软件工程的生命周期
1.2 建模的目的
1.2.1 建模的重要性
1.2.2 建模四原则
1.2.3 面向对象建模
1.3 UML概述
1.3.1 UML的历史
1.3.2 UML包含的内容
1.3.3 UML的定义
1.3.4 UML的应用领域
第2章 Rational Rose使用
2.1 Rational Rose概论
2.1.1 常用UML建模工具
2.1.2 Rational Rose的优势
2.2 Rational Rose安装前的准备
2.3 Rational Rose的安装
2.3.1 安装前的准备
2.3.2 安装步骤
2.4 Rational Rose使用介绍
2.4.1 Rational Rose主界面
2.4.2 Rational Rose中的四个视图
2.4.3 使用Rational Rose建模
2.4.4 UML图设计
第3章 UML语言初览
3.1 概述
3.2 视图
3.2.1 “RUP4+1”视图
3.2.2 UML视图
3.3 UML中的事物
3.3.1 结构事物(Structure Things)
3.3.2 行为事物(Behavior Things)
3.3.3 组织事物(Grouping Things)
3.3.4 辅助事物(Annotation Things)
3.4 UML中的关系
3.4.1 关联(Association)关系
3.4.2 聚合关系
3.4.3 依赖(Dependency)关系
3.4.4 泛化(Generalization)关系
3.4.5 买现(Realization)关系
3.5 UML中的图
3.6 通用机制
3.6.1 修饰
3.6.2 注释
3.6.3 规格说明
3.6.4 通用划分
3.6.5 扩展机制
3.7 UML建模的简单流程
第4章 用例视图
4.1 概述
4.2 参与者(Actor)
4.2.1 参与者概念
4.2.2 确定参与者
4.2.3 参与者间的关系
4.3 用例(Use Case)
4.3.1 用例的概念
4.3.2 识别用例
4.3.3 用例与事件流
4.3.4 参与者、用例间的关系
4.4 用例图建模技术
4.4.1 对语境建模
4.4.2 对需求建模
4.4.3 用例粒度
4.5 实例--图书馆管理系统中的用例视图
4.5.1 确定系统涉及的内容
4.5.2 确定系统参与者
4.5.3 确定系统用例
4.5.4 使用Rational Rose来绘制用例图
第5章 静态图
5.1 概述
5.2 类图
5.2.1 类图的概念和内容
5.2.2 类图的用途
5.2.3 类图元素--类
5.2.4 类图元素--接口(Interface)
5.2.5 类图元素--关系
5.2.6 类图建模技术
5.3 对象图
5.3.1 对象图的概念和内容
5.3.2 对象图建模
5.4 包图
5.4.1 包的名字
5.4.2 包拥有的元素
……
第6章 交互图
第7章 状态图和活动图
第8章 UML组件与配置
第9章 扩展机制
第10章 Rose的双向工程
第11章 UML与统一开发过程
第12章 档案管理系统
第13章 新闻中心管理系统
第14章 汽车租赁系统
附录A 术语
附录B 标准元素
附录C 元模型
附录D 软件菜单列表
参考文献
精彩书摘
第7章状态图和活动图
状态图是系统分析的一种常用工具,它通过建立类对象的生存周期模型来描述对象随时间变化的动态行为。系统分析员在对系统建模时,最先考虑的不是基于活动之间的控制流,而是基于状态之间的控制流,因为系统中对象的状态变化最易被发现和理解。
活动图是UML用于对系统的动态行为建模的另一种常用工具,它描述活动的顺序,展现从一个活动到另一个活动的控制流。活动图在本质上是一种流程图。
7.1状态图(StatechartDiagram)
在系统分析员对某对象建模时,最自然的方法并不是着眼于从活动到活动的控制流,而是着眼于从状态到状态的控制流。例如,按下电灯的开关,电灯改变了它的状态;拉上卧室的窗帘,卧室里亮度的状态由亮变暗等。系统中对象状态的变化是最容易被发现和理解的,因此在UML中,可以使用状态图展现对象状态的变化。
7.1.1状态机
状态机是展示状态与状态转换的图。在计算机科学中,状态机的使用非常普遍:在编译技术中通常用有限状态机描述词法分析过程;在操作系统的进程调度中,通常用状态机描述进程的各个状态之间的转化关系。此外,在面向对象分析与设计中,对象的状态、状态的转换、触发状态转换的事件、对象对事件的响应(即事件的行为)都可以用状态机来描述。
UML用状态机对软件系统的动态特征建模。通常一个状态机依附于一个类,并且描述一个类的实例(即对象)。状态机包含了一个类的对象在其生命期间所有状态的序列以及对象对接收到的事件所产生的反应。
利用状态机可以精确地描述对象的行为:从对象的初始状态起,开始响应事件并执行某些动作,这些事件引起状态的转换;对象在新的状态下又开始响应状态和执行动作,如此连续进行直到终结状态。
状态机由状态、转换、事件、活动和动作5部分组成。
(1)状态表示一个模型在其生存期内的状况,如满足某些条件、执行某些操作或等待某些事件。一个状态的生存期是有限的一个时间段。
(2)转换表示两个不同状态之间的联系,事件可以触发状态之间的转换。
(3)事件是在某个时间产生的,可以触发状态转换的部分,如信号、对象的创建和销毁、超时和条件的改变等。
(4)活动是在状态机中进行的一个非原子的执行,由一系列动作组成。
……
前言/序言
《UML建模之道:从概念到实战》(修订版) 一、 现代软件工程的基石:理解模型驱动的软件开发 在当今快速迭代、高度复杂的软件开发环境中,仅仅依靠代码来描述和管理系统已经显得力不从心。模型驱动的软件开发(Model-Driven Software Development, MDSD)应运而生,它强调以模型为中心,通过图形化的方式来表达软件系统的结构、行为和需求,从而提升开发的效率、质量和可维护性。UML(Unified Modeling Language,统一建模语言)作为一种国际标准的建模语言,正是MDSD的核心工具,它提供了一套标准化的符号和语义,能够清晰、准确地描述各种软件系统的设计。 本书旨在为读者提供一个全面、深入的学习UML的平台,不仅仅停留在语言本身的掌握,更侧重于如何运用UML的强大能力来解决实际的软件工程问题。我们将从最基础的概念入手,逐步深入到UML的各个核心图示,并最终引导读者掌握如何将UML应用于软件开发的各个生命周期阶段,构建高质量、易于理解和维护的软件系统。 二、 UML精髓解析:掌握七大核心图示的建模艺术 UML提供了丰富多样的图示,用于从不同角度刻画软件系统的方方面面。本书将系统地解析UML的九种主要图示,并重点讲解其中最核心的七种,帮助读者构建完整的系统视图。 1. 用例图(Use Case Diagram): 用例图是需求分析阶段的利器,它描绘了系统的外部行为,展现了用户(Actor)与系统之间的交互。我们将深入探讨如何识别和定义用例,如何区分参与者,以及如何利用用例图清晰地表达系统的功能需求,为后续的设计奠定坚实的基础。 2. 类图(Class Diagram): 类图是UML中最具表现力的图示之一,它描述了系统的静态结构,包括类、接口、它们之间的关系(关联、聚合、组合、继承、实现)以及类的属性和操作。本书将详细讲解如何设计高质量的类图,包括如何识别类、定义属性和方法、以及如何运用各种关系来构建清晰、高效的类模型。 3. 对象图(Object Diagram): 对象图是类图的实例,它描绘了特定时刻系统中对象的快照,展示了对象之间的具体关联和状态。我们将学习如何创建对象图来验证类图的设计,以及如何用它来理解和调试复杂的系统状态。 4. 序列图(Sequence Diagram): 序列图是行为建模的重要工具,它以时间顺序展示了对象之间消息的传递过程。本书将指导读者如何精确地描绘对象之间的交互时序,理解方法调用流程,从而有效地分析和设计系统的动态行为。 5. 通信图(Communication Diagram): 与序列图类似,通信图也描述了对象之间的交互,但它更侧重于展示对象之间的协作关系,而不是严格的时间顺序。我们将学习如何利用通信图来分析对象之间的通信模式,理解协作结构。 6. 状态机图(State Machine Diagram): 状态机图用于描述对象在其生命周期内所经历的状态以及状态之间的转换。它对于建模具有复杂行为的对象至关重要。本书将深入讲解如何设计清晰的状态机图,捕捉对象的状态变化和事件驱动的转换。 7. 活动图(Activity Diagram): 活动图是描述系统或业务流程的流程图。它能清晰地展现工作流、并行处理、分支和合并等过程。我们将学习如何利用活动图来模拟业务流程,设计复杂的算法,并与用例图相结合,全面理解系统功能。 三、 深度建模实践:从需求到设计的桥梁 理解UML图示只是第一步,更重要的是将它们应用于实际的软件开发流程中。本书将引导读者深入实践,将UML作为连接需求与设计的强大桥梁。 需求建模: 我们将从需求获取阶段开始,重点关注如何使用用例图来捕捉用户的需求,并利用活动图来描绘业务流程,确保系统设计能够准确地满足业务目标。 设计建模: 在设计阶段,类图将成为核心工具,我们将学习如何进行面向对象的分析与设计(OOAD),如何运用各种设计原则(如SOLID原则)来构建健壮、可扩展的系统架构。序列图和状态机图将辅助我们细化关键对象的行为设计。 代码生成与反向工程: 许多UML建模工具支持从模型生成代码,以及从现有代码反向生成模型。本书将探讨这些先进功能,帮助读者理解如何利用建模工具提高开发效率,并保持模型与代码的一致性。 系统演化与维护: 软件系统并非一成不变,随着业务的发展,系统需要不断演化和维护。我们将探讨如何利用UML模型来理解遗留代码,方便地进行系统修改和扩展,以及如何通过模型驱动的方式来管理系统的生命周期。 四、 案例驱动的深入学习:理论与实践的完美结合 理论知识的掌握需要通过实践来巩固和升华。本书摒弃了枯燥的理论堆砌,而是采用案例驱动的学习方式,通过一系列精心设计的建模案例,带领读者逐步领略UML的强大威力。 本书中的案例将涵盖不同类型的软件系统,例如: 简单的Web应用程序建模: 从一个基础的电商网站或博客系统入手,逐步学习如何构建其用例模型、类模型、以及关键的交互序列。 面向服务的系统建模: 针对分布式系统或微服务架构,我们将探讨如何使用UML来描述服务之间的关系、接口定义以及消息传递模式。 复杂业务逻辑建模: 针对具有复杂状态转换和流程控制的业务系统,我们将重点运用状态机图和活动图来精确刻画其行为。 数据持久化建模: 结合数据库设计,我们将学习如何使用UML的类图来设计关系型数据库的表结构,并理解对象与关系数据的映射。 每个案例都将遵循从需求分析到详细设计的完整流程,并配备详细的UML图示和文字说明,让读者能够清晰地理解建模的思路和步骤。通过亲手实践这些案例,读者不仅能够熟练掌握UML图示的绘制,更重要的是能够培养出优秀的建模思维和解决实际问题的能力。 五、 提升软件开发品质的利器 掌握UML建模不仅仅是为了绘制漂亮的图表,它的终极目标是提升软件开发的整体品质: 清晰沟通: UML提供了一种通用的语言,能够让开发团队、业务分析师、项目经理甚至客户之间进行清晰、无歧义的沟通,减少信息传递的失真。 提高设计质量: 通过对系统进行建模,可以及早发现设计中的潜在问题,优化系统架构,提高代码的可维护性、可扩展性和可重用性。 降低开发风险: 提前识别和解决设计和需求上的问题,可以大大降低项目延期和失败的风险。 促进团队协作: 标准化的建模语言有助于团队成员之间的理解和协作,尤其是在大型或分布式团队中。 加速开发进程: 高质量的模型可以作为代码生成的蓝图,减少不必要的返工,加快开发速度。 六、 谁适合阅读本书? 本书适合以下人群: 软件工程师和开发人员: 希望系统学习UML,提升设计能力,构建更优质软件的开发者。 软件架构师: 需要通过建模来设计和沟通系统整体架构的专业人士。 系统分析师和业务分析师: 需要清晰地捕获和表达系统需求,与开发团队有效沟通的专业人士。 项目经理: 需要理解项目进展,评估技术方案,并与技术团队进行有效沟通的项目管理者。 计算机科学专业的学生: 作为学习面向对象分析与设计(OOAD)和软件工程理论的重要补充。 希望提升软件开发效率和质量的任何IT从业者。 结语 《UML建模之道:从概念到实战》(修订版)将带您踏上一段充实的UML学习之旅。我们相信,通过对本书内容的深入学习和实践,您将能够掌握UML这门强大的建模语言,并将其有效地应用于您的软件开发实践中,最终构建出卓越的软件产品。让我们一同探索UML的无限可能,赋能您的软件开发之路!