书籍详情
面向对象设计UML实践(第2版)
作者:Mark Priestley著;龚晓庆,卞雷等译
出版社:清华大学出版社
出版时间:2005-05-01
ISBN:9787302105879
定价:¥39.00
购买这本书可以去
内容简介
本书的目的是提供一本实用的和易于理解的面向对象设计的入门教程,它要求读者具有面向对象程序设计语言的知识(最好是Java),而且阐述了UML的原则和应用。本书针对的读者主要是计算机科学或软件工程专业的大学本科高年级学生或硕士生,当然也希望其他读者会发觉这本书是有用的。 本书的总体设想是强调设计的表示法与代码之间的联系。现在已经有许多讨论用UML进行系统分析和设计的教程,不过对最终产品,即被开发系统的代码,给予特别注意的还不多见。然而UML实质上是一种表达面向对象程序的设计语言,从这个角度考虑该语言的表示法和语义看来是很自然的。在过去几年,我已发现这是把设计表示法的真实含义传授给学生的好方法。 与这个总体设想有关,本书有两个主要目标。第一个是提供一个使用UML描述的面向对象开发的完整示例。开始讲述需求,最后讲述一个完整的可执行代码,这个代码可以运行、修改和扩展。 教程的目标限制了可以考虑的事例的规模。为此,本书采用一个典型的独立的桌面应用系统,作为范例体系结构。它支持图形用户界面并与关系数据库接口。在这个框架中,正文仔细地对某些核心功能的开发进行了探讨,并把系统的扩展作为练习留给读者。 第二个目标是对UML在开发这种应用的重要方面提供指导。特别把重点放在清楚地阐明此设计语言的结构和表示法,并通过示例说明设计和面向对象程序实现之间的紧密关系。这些问题在许多书中讲的相当粗略。然而,如果对此没有清楚的理解,就难以正确使用UML。 UML是一个庞大而复杂的语言,学习UML时的危险是被这些表示法的细节所淹没。为了避免这点,本书使用的是足以用于开发桌面应用的UML的一个子集。并发性、活动图和除了部署图的简要叙述外的其他部分,都作了相当大的省略。UML语言的这些方面对于UML的“工业化”应用显然是重要的,但是这些已超出本书针对的读者的经验。
作者简介
暂缺《面向对象设计UML实践(第2版)》作者简介
目录
第1章 UML导论
1.1 模型与建模
1.1.1 软件模型
1.1.2 应用模型
1.1.3 分析模型和设计模型的关系
1.2 方法学
1.2.1 方法学的分类
1.3 统一建模语言
1.3.1 视图
1.3.2 模型
1.3.3 模型元素
1.3.4 图
1.3.5 理解UML
1.4 设计模型和代码
1.5 软件开发过程
1.6 本章小结
1.7 练习题
第2章 对象建模
2.1 对象模型
2.1.1 对像模型在设计中的作用
2.1.2 一个库存控制的示例
2.2 类和对象
2.2.1 对象创建
2.3 对象的特性
2.3.1 状态
2.3.2 行为
2.3.3 本体
2.3.4 对象名
2.3.5 封装
2.4 避免数据重复
2.5 链接
2.5.1 对象图
2.6 关联
2.6.1 类图
2.7 消息传递
2.8 多态性
2.8.1 多态性的实现
2.8.2 UML的多态性
2.8.3 抽象类
2.9 动态绑定
2.10 对象模型的适用性
2.11 本章小结
2.12 练习题
第3章 软件开发过程
3.1 瀑布模型
3.1.1 瀑布模型中的风险管理
3.1.2 瀑布模型中的系统需求
3.2 非瀑布型
3.2.1 演化模型
3.2.2 螺旋模型
3.2.3 迭代和增量开发
3.3 统一过程
3.4 模型在开发中的作用
3.5 UML在统一过程中的运用
3.5.1 需求
3.5.2 用例驱动的过程
3.6 本章小结
3.7 练习题
第4章 餐馆系统的业务建模
4.1 非正式的需求
4.1.1 对计算机化系统的需求
4.1.2 定义一次迭代
4.2 用例建模
4.2.1 用例
4.2.2 参与者
4.2.3 用例图
4.3 描述用例
4.3.1 事件路径
4.3.2 用户界面原型
4.4 组织用例模型
4.4.1 用例包含
4.4.2 参与者泛化
4.4.3 用例扩展
4.5 完成用例模型
4.5.1 一个用例模型何时完成
4.6 领域建模
4.6.1 领域模型的正确性
4.7 术语表
4.8 本章小结
4.9 练习题
第5章 餐馆系统的分析
5.1 分析的目的
5.1.1 分析和设计的区别
5.2 对象设计
5.2.1 对象责任
5.3 软件架构
5.3.1 层次架构
5.3.2 分析类的构造型
5.4 用例实化
5.4.1 系统消息
5.4.2 存取预约
5.4.3 检索预约细节
5.4.4 细化领域模型
5.5 记录新预约
5.5.1 创建新对象
5.5.2 记录未预约顾客的预约
5.6 取消预约
5.6.1 细化领域模型
5.7 更新预约
5.7.1 调换餐桌
5.8 完成分析模型
5.9 本章小结
5.10 练习题
第6章 餐馆系统的设计
6.1 接收用户输入
6.2 产生输出
6.2.1 应用设计模式
6.3 持久数据存储
6.3.1 设计数据库模式
6.3.2 保存和装入持久对象
6.3.3 持久性和层次结构
6.4 设计模型
6.5 详细的类设计
6.6 动态行为建模
6.6.1 消息的顺序
6.6.2 与历史有关的行为
6.6.3 指定行为
6.7 预约系统的状态图
6.7.1 非确定性
6.7.2 监护条件
6.7.3 动作
6.7.4 组合状态
6.8 预定的状态图
6.9 本章小结
6.10 练习题
第7章 餐馆系统的实现
7.1 实现图
7.1.1 构件
7.1.2 构件图
7.1.3 部署图
7.2 实现策略
7.3 应用框架
7.3.1 热点
7.3.2 控制的倒置
7.4 Java AWT框架
7.4.1 用UML文档化一个框架
7.4.2 集成预约系统和AWT框架
7.5 类的实现
7.5.1 类
7.5.2 泛化
7.5.3 类的重数
7.6 关联的实现
7.6.1 双向性
7.6.2 关联的单向实现
7.6.3 实现重数约束
7.7 操作的实现
7.7.1 状态图的实现
7.8 本章小结
7.9 练习题
第8章 类图和对象图
8.1 数据类型
8.2 类
8.3 用类描述对象
8.3.1 属性
8.3.2 操作
8.3.3 标识对象
8.3.4 特征的可见性
8.4 关联
8.4.1 链接
8.4.2 关联端点的特性
8.4.3 导航性
8.4.4 关联的不同种类
8.4.5 标注关联
8.4.6 物化关联
8.5 泛化和特化
8.5.1 泛化的意义
8.5.2 抽象类
8.5.3 泛化层次
8.6 属性和操作的继承
8.6.1 向子类中增加特征
8.6.2 在子类中覆盖操作
8.6.3 抽象操作
8.7 聚合
8.8 组合
8.9 关联类
8.10 n-元关联
8.11 限定关联
8.12 接口
8.13 模板
8.14 本章小结
8.15 练习题
第9章 交互图
9.1 协作
9.2 类元角色
9.3 关联角色
9.4 交互图
9.4.1 顺序图
9.4.2 协作图
9.5 对象创建
9.6 对象销毁
9.7 角色的重数与迭代消息
9.8 多对象
9.9 条件消息
9.10 自返消息
9.11 本章小结
9.12 练习题
第10章 状态图
10.1 依赖状态的行为
10.2 状态、事件和转换
10.3 初始状态和终止状态
10.4 监护条件
10.5 动作
10.6 活动
10.6.1 完成转换
10.6.2 内部转换
10.7 组合状态
10.8 历史状态
10.9 CD播放机小结
10.10 实际中的动态建模
10.10.1 状态机和事件序列
10.10.2 付款之前选择车票
10.10.3 选择车票之前付款
10.10.4 集成交易
10.11 时间事件
10.12 活动状态
10.13 售票机小结
10.14 本章小结
10.15 练习题
第11章 构件图
11.1 依赖性
11.2 构件和制品
11.2.1 制品
11.3 构件图
11.4 某些常见的物理关系
11.4.1 源代码
11.4.2 编译
11.4.3 档案文件和库
11.5 编译依赖
11.5.1 依赖来自哪里
11.5.2 依赖图
11.5.3 物理层次
11.6 构件和接口
11.7 本章小结
11.8 练习题
第12章 约束
12.1 标准约束
12.1.1 xor约束
12.1.2 子集约束
12.2 对象约束语言
12.3 约束的上下文
12.4 导航表达式
12.4.1 跟随链接(Following links)
12.4.2 对象和聚集(collection)
12.4.3 迭代遍历
12.4.4 遍历限定关联
12.4.5 使用关联类
12.5 OCL数据类型和操作
12.5.1 基本类型
12.5.2 模型类型
12.5.3 聚集(collection)
12.5.4 聚集操作
12.6 约束
12.6.1 基本约束
12.6.2 组合约束
12.6.3 迭代约束
12.7 构造型的约束
12.7.1 类不变量
12.7.2 前置条件和后置条件
12.7.3 按契约设计
12.8 约束和泛化
12.9 本章小结
12.10 练习题
第13章 实现策略
13.1 实现关联
13.2 单向实现
13.2.1 可选关联
13.2.2 一对一关联
13.2.3 重数为多的关联
13.3 双向实现
13.3.1 一对一可选关联
13.3.2 一对多关联
13.3.3 多对多关联
13.3.4 不可变的双向关联
13.4 实现限定关联
13.5 实现关联类
13.6 实现约束
13.7 实现状态图
13.8 逆向工程
13.9 本章小结
13.10 练习题
第14章 原则和模式
14.1 开-闭原则
14.1.1 数据抽象
14.1.2 抽象接口类
14.2 无具体超类
14.3 接口层次的解耦
14.4 Liskov替换原则
14.5 交互决定结构
14.6 设计模式
14.6.1 模式的定义
14.6.2 模式和框
14.7 递归结构
14.7.1 组合模式
14.7.2 UML中的模式
14.8 状态和策略模式
14.9 MVC、文档/视图和观察者
14.9.1 模型-视图-控制者
14.9.2 文档/视图架构
14.9.3 观察者模式
14.10 访问者模式对库存控制程序的应用
14.11 本章小结
14.12 练习题
附录A UML表示法概述
A.1 一般概念
A.2 模型结构
A.3 用例图
A.4 对象图
A.5 协作
A.6 消息
A.7 协作图
A.8 顺序图
A.9 类图
A.10 状态图
A.11 构件图
A.12 模板
附录B OCL概述
B.1 约束
B.2 表达式
B.3 基本类型
B.3.1 OCL类型的特性
B.3.2 所有类型的特性
B.3.3 数字类型的特性
B.3.4 布尔特性
B.3.5 字符串特性
B.4 模型类型
B.5 聚集
B.5.1 谓词特征
附录C 用例描述模板
参考文献
术语表
1.1 模型与建模
1.1.1 软件模型
1.1.2 应用模型
1.1.3 分析模型和设计模型的关系
1.2 方法学
1.2.1 方法学的分类
1.3 统一建模语言
1.3.1 视图
1.3.2 模型
1.3.3 模型元素
1.3.4 图
1.3.5 理解UML
1.4 设计模型和代码
1.5 软件开发过程
1.6 本章小结
1.7 练习题
第2章 对象建模
2.1 对象模型
2.1.1 对像模型在设计中的作用
2.1.2 一个库存控制的示例
2.2 类和对象
2.2.1 对象创建
2.3 对象的特性
2.3.1 状态
2.3.2 行为
2.3.3 本体
2.3.4 对象名
2.3.5 封装
2.4 避免数据重复
2.5 链接
2.5.1 对象图
2.6 关联
2.6.1 类图
2.7 消息传递
2.8 多态性
2.8.1 多态性的实现
2.8.2 UML的多态性
2.8.3 抽象类
2.9 动态绑定
2.10 对象模型的适用性
2.11 本章小结
2.12 练习题
第3章 软件开发过程
3.1 瀑布模型
3.1.1 瀑布模型中的风险管理
3.1.2 瀑布模型中的系统需求
3.2 非瀑布型
3.2.1 演化模型
3.2.2 螺旋模型
3.2.3 迭代和增量开发
3.3 统一过程
3.4 模型在开发中的作用
3.5 UML在统一过程中的运用
3.5.1 需求
3.5.2 用例驱动的过程
3.6 本章小结
3.7 练习题
第4章 餐馆系统的业务建模
4.1 非正式的需求
4.1.1 对计算机化系统的需求
4.1.2 定义一次迭代
4.2 用例建模
4.2.1 用例
4.2.2 参与者
4.2.3 用例图
4.3 描述用例
4.3.1 事件路径
4.3.2 用户界面原型
4.4 组织用例模型
4.4.1 用例包含
4.4.2 参与者泛化
4.4.3 用例扩展
4.5 完成用例模型
4.5.1 一个用例模型何时完成
4.6 领域建模
4.6.1 领域模型的正确性
4.7 术语表
4.8 本章小结
4.9 练习题
第5章 餐馆系统的分析
5.1 分析的目的
5.1.1 分析和设计的区别
5.2 对象设计
5.2.1 对象责任
5.3 软件架构
5.3.1 层次架构
5.3.2 分析类的构造型
5.4 用例实化
5.4.1 系统消息
5.4.2 存取预约
5.4.3 检索预约细节
5.4.4 细化领域模型
5.5 记录新预约
5.5.1 创建新对象
5.5.2 记录未预约顾客的预约
5.6 取消预约
5.6.1 细化领域模型
5.7 更新预约
5.7.1 调换餐桌
5.8 完成分析模型
5.9 本章小结
5.10 练习题
第6章 餐馆系统的设计
6.1 接收用户输入
6.2 产生输出
6.2.1 应用设计模式
6.3 持久数据存储
6.3.1 设计数据库模式
6.3.2 保存和装入持久对象
6.3.3 持久性和层次结构
6.4 设计模型
6.5 详细的类设计
6.6 动态行为建模
6.6.1 消息的顺序
6.6.2 与历史有关的行为
6.6.3 指定行为
6.7 预约系统的状态图
6.7.1 非确定性
6.7.2 监护条件
6.7.3 动作
6.7.4 组合状态
6.8 预定的状态图
6.9 本章小结
6.10 练习题
第7章 餐馆系统的实现
7.1 实现图
7.1.1 构件
7.1.2 构件图
7.1.3 部署图
7.2 实现策略
7.3 应用框架
7.3.1 热点
7.3.2 控制的倒置
7.4 Java AWT框架
7.4.1 用UML文档化一个框架
7.4.2 集成预约系统和AWT框架
7.5 类的实现
7.5.1 类
7.5.2 泛化
7.5.3 类的重数
7.6 关联的实现
7.6.1 双向性
7.6.2 关联的单向实现
7.6.3 实现重数约束
7.7 操作的实现
7.7.1 状态图的实现
7.8 本章小结
7.9 练习题
第8章 类图和对象图
8.1 数据类型
8.2 类
8.3 用类描述对象
8.3.1 属性
8.3.2 操作
8.3.3 标识对象
8.3.4 特征的可见性
8.4 关联
8.4.1 链接
8.4.2 关联端点的特性
8.4.3 导航性
8.4.4 关联的不同种类
8.4.5 标注关联
8.4.6 物化关联
8.5 泛化和特化
8.5.1 泛化的意义
8.5.2 抽象类
8.5.3 泛化层次
8.6 属性和操作的继承
8.6.1 向子类中增加特征
8.6.2 在子类中覆盖操作
8.6.3 抽象操作
8.7 聚合
8.8 组合
8.9 关联类
8.10 n-元关联
8.11 限定关联
8.12 接口
8.13 模板
8.14 本章小结
8.15 练习题
第9章 交互图
9.1 协作
9.2 类元角色
9.3 关联角色
9.4 交互图
9.4.1 顺序图
9.4.2 协作图
9.5 对象创建
9.6 对象销毁
9.7 角色的重数与迭代消息
9.8 多对象
9.9 条件消息
9.10 自返消息
9.11 本章小结
9.12 练习题
第10章 状态图
10.1 依赖状态的行为
10.2 状态、事件和转换
10.3 初始状态和终止状态
10.4 监护条件
10.5 动作
10.6 活动
10.6.1 完成转换
10.6.2 内部转换
10.7 组合状态
10.8 历史状态
10.9 CD播放机小结
10.10 实际中的动态建模
10.10.1 状态机和事件序列
10.10.2 付款之前选择车票
10.10.3 选择车票之前付款
10.10.4 集成交易
10.11 时间事件
10.12 活动状态
10.13 售票机小结
10.14 本章小结
10.15 练习题
第11章 构件图
11.1 依赖性
11.2 构件和制品
11.2.1 制品
11.3 构件图
11.4 某些常见的物理关系
11.4.1 源代码
11.4.2 编译
11.4.3 档案文件和库
11.5 编译依赖
11.5.1 依赖来自哪里
11.5.2 依赖图
11.5.3 物理层次
11.6 构件和接口
11.7 本章小结
11.8 练习题
第12章 约束
12.1 标准约束
12.1.1 xor约束
12.1.2 子集约束
12.2 对象约束语言
12.3 约束的上下文
12.4 导航表达式
12.4.1 跟随链接(Following links)
12.4.2 对象和聚集(collection)
12.4.3 迭代遍历
12.4.4 遍历限定关联
12.4.5 使用关联类
12.5 OCL数据类型和操作
12.5.1 基本类型
12.5.2 模型类型
12.5.3 聚集(collection)
12.5.4 聚集操作
12.6 约束
12.6.1 基本约束
12.6.2 组合约束
12.6.3 迭代约束
12.7 构造型的约束
12.7.1 类不变量
12.7.2 前置条件和后置条件
12.7.3 按契约设计
12.8 约束和泛化
12.9 本章小结
12.10 练习题
第13章 实现策略
13.1 实现关联
13.2 单向实现
13.2.1 可选关联
13.2.2 一对一关联
13.2.3 重数为多的关联
13.3 双向实现
13.3.1 一对一可选关联
13.3.2 一对多关联
13.3.3 多对多关联
13.3.4 不可变的双向关联
13.4 实现限定关联
13.5 实现关联类
13.6 实现约束
13.7 实现状态图
13.8 逆向工程
13.9 本章小结
13.10 练习题
第14章 原则和模式
14.1 开-闭原则
14.1.1 数据抽象
14.1.2 抽象接口类
14.2 无具体超类
14.3 接口层次的解耦
14.4 Liskov替换原则
14.5 交互决定结构
14.6 设计模式
14.6.1 模式的定义
14.6.2 模式和框
14.7 递归结构
14.7.1 组合模式
14.7.2 UML中的模式
14.8 状态和策略模式
14.9 MVC、文档/视图和观察者
14.9.1 模型-视图-控制者
14.9.2 文档/视图架构
14.9.3 观察者模式
14.10 访问者模式对库存控制程序的应用
14.11 本章小结
14.12 练习题
附录A UML表示法概述
A.1 一般概念
A.2 模型结构
A.3 用例图
A.4 对象图
A.5 协作
A.6 消息
A.7 协作图
A.8 顺序图
A.9 类图
A.10 状态图
A.11 构件图
A.12 模板
附录B OCL概述
B.1 约束
B.2 表达式
B.3 基本类型
B.3.1 OCL类型的特性
B.3.2 所有类型的特性
B.3.3 数字类型的特性
B.3.4 布尔特性
B.3.5 字符串特性
B.4 模型类型
B.5 聚集
B.5.1 谓词特征
附录C 用例描述模板
参考文献
术语表
猜您喜欢