- 出版社: 清华大学出版社
- ISBN:9787302301202
- 版次:1
- 商品编码:11617975
- 品牌:其他品牌
- 包装:平装
- 开本:16开
- 出版时间:2013-01-01
- 用纸:胶版纸
- 页数:391
- 字数:616000
- 正文语种:中文
内容简介
《面向对象的分析与设计》分为3部分。第一部分为基础篇,论述面向对象方法的基本思想和主要概念,对不同的分析与设计方法进行综述,对统一建模语言(UML)和《面向对象的分析与设计》提出的方法做概要介绍。第二部分为分析篇,详细介绍面向对象分析的全过程,围绕面向对象建模中的需求模型(用况图)、基本模型(类图)、辅助模型(包图、顺序图、活动图以及其他各种 UML模型图)和模型规约,对面向对象的分析进行深入讨论,给出详细的过程指导和工程策略,并对相关的UML内容做较详细的介绍。第三部分为设计篇,介绍如何在面向对象分析模型基础上,针对具体的实现条件进行面向对象的系统设计,包括问题域部分、人机交互部分、控制驱动部分和数据接口部分4个主要部分的设计,最后介绍如何进行构件化与系统部署。
《面向对象的分析与设计》是作者多年来在面向对象技术领域长期从事科研、教学和工程实践的总结,在广泛借鉴该领域的经典理论和当前新研究成果的基础上,坚持独立思考、实事求是的科学态度,对该领域的诸多问题提出了新的学术观点和解决方案。
《面向对象的分析与设计》可供计算机软件领域的研究人员和工程技术人员,计算机软件专业的教师、研究生和高年级本科生阅读参考。
作者简介
维忠,北京大学信息科学技术学院教授、博士生导师,中国计算机学会理事。1970年毕业于北京大学数学力学系,1979一1983年在计算机科学与技术系任教并攻读硕士学位。早期主要从事操作系统和软件工程领域的教学、科研与开发。1987一1989年在新加坡国立大学参加科技合作,回国后在导师杨芙清院士主持的国家“八五”、“九五”重点科技攻关课题“大型软件开发环境——青鸟系统”和“软件工程环境工业化生产技术及系统”中担任主要技术负责人。自1991年起注重于面向对象建模方法的研究,并开设了研究生课程和本科生课程。组织研制了“青鸟面向对象建模工具集”,并指导其新版本的开发。写作和翻译了多部学术著作。最近几年在面向对象技术、软件复用与构件技术、中间件技术等领域承担了多项国家高技术研究发展计划(863)项目、国家重大基础研究(973)项目和国家自然科学基金项目。曾获国家科技进步二等奖及国家部委级奖励多项。
杨芙清,女,1932年生。江苏无锡人。计算机软件与软件工程领域科学家、教育家。北京大学教授,中国科学院院士,IEEE Fellow。现任北京大学信息与工程科学学部主任、软件工程国家工程研究中心首席科学家、软件与微电子学院理事长。1951年考入清华大学数学系,1952年院系调整转入北京大学数学力学系,1958年研究生毕业留校任教至今。在系统软件、软件工程、软件工业化生产技术与系统等方面进行了开创性、系统性和创新性的研究,取得了一系列重要的科学技术成果。
目录
第一部分 基础篇
第1章 面向对象方法概论
1.1 什么是面向对象
1.2 从认识论看面向对象方法的形成
1.2.1 软件开发——对事物的认识和描述
1.2.2 语言的鸿沟
1.2.3 编程语言的发展使鸿沟变窄
1.2.4 软件工程学的作用
1.2.5 面向对象是软件方法学的返璞归真
1.3 面向对象方法的基本概念
1.3.1 对象
1.3.2 类
1.3.3 封装
1.3.4 继承
1.3.5 聚合
1.3.6 关联
1.3.7 消息
1.3.8 多态性
1.3.9 其他
1.3.10 术语对照
1.4 面向对象方法的历史及现状
1.4.1 历史
1.4.2 发展到软件生存周期全过程
1.4.3 渗透到计算机软件的各个领域
第2章 不同的分析与设计方法
2.1 功能分解法
2.2 结构化方法
2.3 信息建模法35目录面向对象的分析与设计
2.4 面向对象方法
2.4.1 什么是
2.4.2 什么是
2.4.3 面向对象方法的主要优点
2.4.4 几种典型的面向对象方法
2.4.4.1 Booch方法
2.4.4.2 Coad/Yourdon方法
2.4.4.3 Jacobson方法
2.4.4.4 Rumbaugh方法
第3章 统一建模语言UML简介
3.1 UML的背景与发展历史
3.2 UML1概况
3.2.1 UML1规范的主要组成部分
3.2.2 语言体系结构和定义方式
3.2.3 UML1的各种图和扩展机制
3.3 UML2概况
3.3.1 从UML1到
3.3.2 UML2的4个规范
3.3.2.1 UML基础结构
3.3.2.2 UML上层结构
3.3.2.3 对象约束语言
3.3.2.4 UML图交换
3.3.3 UML2的各种图
第4章 本书的OOA&D方法概貌
4.1 引言
4.2 主要概念
4.2.1 主要模型元素
4.2.2 面向对象建模的主要原则
4.3 模型及其规约
4.3.1 基本模型——类图
4.3.2 需求模型——用况图
4.3.3 辅助模型——其他各种图
4.3.4 模型规约
4.3.5 OOA模型框架OOA模型框架
4.3.6 OOD模型框架OOD模型框架
4.4 建模过程
4.4.1 OOA过程
4.4.2 OOD过程
4.5 OOA与OOD的关系
4.5.1 一致的概念与表示法
4.5.2 不同的目标、内容和抽象层次
4.5.3 在软件生存周期中的位置
4.5.4 两种不同的分工观点
4.5.5 从模型驱动的体系结构看OOA与OOD的关系
第二部分 分析篇
第5章 建立需求模型——用况图
5.1 需求分析和系统分析
5.2 基于用况的需求分析基本思路
5.3 系统边界与参与者
5.3.1 系统边界
5.3.2 参与者
5.4 用况
5.4.1 什么是用况
5.4.2 用况的内容与格式
5.4.3 如何定义用况
5.5 用况图
5.5.1 模型元素及表示法
5.5.2 几个值得商榷的问题
5.6 开发过程与建议
第6章 发现对象、定义对象类
6.1 对象和类的概念及其运用
6.1.1 概念
6.1.2 类的语义
6.1.3 在类的抽象层次建模
6.1.4 如何运用对象和类的概念
6.2 表示法
6.3 发现对象
6.3.1 研究问题域
6.3.2 正确地运用抽象原则
6.3.3 策略与启发
6.3.4 审查与筛选
6.4 对象分类
6.4.1 将对象抽象为类
6.4.2 审查与调整
6.4.3 类的命名
第7章 定义对象的属性和操作
7.1 属性和操作
7.2 表示法
7.3 定义属性
7.3.1 策略与启发
7.3.2 审查与筛选
7.3.3 推迟到OOD考虑的问题
7.3.4 属性的命名和定位
7.4 定义操作
7.4.1 行为分类
7.4.2 策略与启发
7.4.3 审查与筛选
7.4.4 认识对象的主动行为
7.4.5 描述操作流程
7.4.6 操作的命名和定位
7.5 接口的概念及其用途
第8章 建立对象间的关系
8.1 一般-特殊结构
8.1.1 相关概念
8.1.2 表示法
8.1.3 如何发现一般-特殊结构
8.1.4 审查与筛选
8.1.5 一般-特殊结构的简化
8.1.6 多继承及多态性问题
8.2 整体-部分结构
8.2.1 相关概念
8.2.2 表示法
8.2.3 如何发现整体-部分结构
8.2.4 审查与筛选
8.2.5 整体-部分结构的高级应用技巧
8.2.5.1 简化对象的定义
8.2.5.2 支持软件复用
8.2.5.3 表示数量不定的组成部分
8.2.5.4 表示动态变化的对象特征
8.2.6 两种结构之间的变通
8.3 关联
8.3.1 相关概念
8.3.2 表示法及实现技术
8.3.2.1 基本表示法
8.3.2.2 二元关联的实现
8.3.3 运用简单的关联概念解决复杂的关联问题
8.3.3.1 带有属性和操作的关联
8.3.3.2 三元关联和n元关联
8.3.3.3 一个类在关联中多次出现
8.3.3.4 关联端点的复杂情况
8.3.4 如何建立关联
8.4 消息
8.4.1 什么是消息
8.4.1.1 顺序系统中的消息
8.4.1.2 并发系统中的消息
8.4.1.3 消息对面向对象建模的意义
8.4.2 消息的表示法
8.4.3 如何建立消息
8.5 关于依赖关系
8.5.1 什么是依赖
8.5.2 依赖的定义方式和表示法
8.5.3 依赖关系对面向对象建模的作用
第9章 建立辅助模型
9.1 类图与其他模型图之间的关系
9.2 包图
9.2.1 包的概念、用途及表示法
9.2.2 包之间的关系及表示法
9.2.3 如何建立包图
9.2.3.1 将模型元素打包
9.2.3.2 包的命名
9.2.3.3 组织嵌套的包
9.2.3.4 减少包的嵌套层次
9.2.3.5 建立包之间的关系
9.2.4 用包图控制系统的视野
9.3 顺序图
9.3.1 顺序图及其用途
9.3.2 主要概念及表示法
9.3.3 顺序图的组织机制与复用
9.3.4 关于顺序图的若干问题讨论
9.3.5 如何建立顺序图
9.4 活动图
9.4.1 活动图及其用途
9.4.2 主要概念及表示法
9.4.3 一个活动图的例子
9.4.4 关于活动图的若干问题讨论
9.4.5 如何建立活动图
9.5 状态机图
9.5.1 状态机图与状态建模
9.5.2 主要概念及表示法
9.5.3 一个状态机图的例子
9.5.4 如何建立状态机图
9.6 构件图
9.6.1 构件图的由来及用途
9.6.2 主要概念及表示法
9.6.3 如何建立构件图
9.7 UML的其他几种模型图
9.7.1 对象图
9.7.2 组合结构图
9.7.3 通信图
9.7.4 交互概览图
9.7.5 定时图
9.7.6 部署图
第10章 模型规约
10.1 相关概念及问题讨论
10.1.1 什么是模型规约
10.1.2 模型规约是给谁看的
10.1.3 描述语言的选择
10.1.4 模型规约的组织方式
10.1.5 关于对象约束语言
10.2 类图的规约
10.2.1 目标与措施
10.2.2 类规约的内容
10.2.3 类规约的格式
10.3 其他模型图的规约
10.4 模型规约的建立过程
第三部分 设计篇
第11章 问题域部分的设计
11.1 什么是问题域部分
11.2 实现条件对问题域部分的影响
11.3 设计过程
11.3.1 设计准备
11.3.2 设计内容及策略
11.3.2.1 针对编程语言支持能力的调整
11.3.2.2 增加一般类,提供共同协议
11.3.2.3 为实现复用采取的设计策略
11.3.2.4 提高性能
11.3.2.5 为实现对象持久存储所做的修改
11.3.2.6 完善对象的细节
11.3.2.7 定义对象实例
11.3.2.8 修改或补充辅助模型及模型规约
11.3.3 建立与OOA文档的映射
第12章 人机交互部分的设计
12.1 什么是人机交互部分
12.2 人机交互部分的需求分析
12.2.1 分析参与者——与系统交互的人
12.2.2 从用况分析人机交互
12.2.3 分析处理异常事件的人机交互
12.2.4 命令的组织
12.2.5 输出信息的组织
12.3 人机界面的设计准则
12.4 人机界面的面向对象设计
12.4.1 选择界面支持系统
12.4.2 选用实现交互界面元素
12.4.3 用面向对象概念表示界面元素
12.5 可视化编程环境下的人机界面设计
12.5.1 问题的提出
12.5.2 所见即所得的界面开发
12.5.3 设计的必要性
12.5.4 基于可视化编程环境的设计策略
第13章 控制驱动部分的设计
13.1 什么是控制驱动部分
13.2 相关技术问题
13.2.1 系统总体方案系统总体方案
13.2.2 软件体系结构
13.2.3 网络环境中的软件体系结构
13.2.4 系统的并发性
13.2.4.1 顺序程序和并发程序
13.2.4.2 进程和线程
13.2.4.3 应用系统的并发性
13.2.4.4 术语讨论
13.3 如何设计控制驱动部分
13.3.1 选择软件体系结构风格
13.3.2 确定系统分布方案
13.3.3 识别控制流
13.3.4 用主动类表示控制流
第14章 数据接口部分的设计
14.1 什么是数据接口部分
14.2 数据管理系统及其选择
14.2.1 文件系统
14.2.2 数据库管理系统
14.2.2.1 关系数据库和数据库管理系统
14.2.2.2 面向对象数据库和数据库管理系统
14.2.3 数据管理系统的选择
14.3 对象存储方案和数据接口的设计策略
14.3.1 针对文件系统的设计
14.3.1.1 对象在内存空间和文件空间的映像
14.3.1.2 对象存放策略
14.3.1.3 设计数据接口部分的类
14.3.1.4 问题域部分的修改
14.3.2 针对RDBMS的设计
14.3.2.1 对象及其对数据库的使用
14.3.2.2 对象在数据库中的存放策略
14.3.2.3 数据接口部分类的设计和问题域部分的修改
14.3.3 针对OODBMS的设计
第15章 构件化与系统部署
15.1 面向对象方法与构件技术
15.2 面向对象模型的构件化
15.3 系统部署
15.3.1 软件制品的组织
15.3.2 系统部署过程与策略
索引
参考文献
精彩书摘
《面向对象的分析与设计》:
以相同的方式与系统进行交互的参与者可能有多个。例如在一个超级市场中有多个收款员。在识别收款员这种参与者时,是按照人类通常采用的抽象思维方式,把所有的收款员作为一个概念来考虑的,而不是单个地考虑每一个具体的收款员。在用况图中,一个表示参与者的图形符号代表了同一类型的全部参与者。
在需求分析中要找出每一类参与者,但是对参与者的描述并不需要太多信息,通常只要给出它们的名称。如果其名称不足以准确地表达这类参与者是一种什么人或者物,可以在用况图的规约中附加一点简明扼要的文字说明。
用况图中的参与者和类图中的类都是对现实世界中某些事物的抽象。那么,二者之间有什么区别?根本的区别是:类是系统的构成元素,位于系统边界以内,在编程时需要用程序来实现;参与者不是系统的构成元素,只是位于系统边界以外与系统交互的外界事物,不对应任何程序代码。对现实世界中的某一事物,如何判断它应该成为系统中的对象还是作为系统以外的参与者?可通过以下条件来判断:
如果某一事物需要由系统来保存、管理和使用它的某些信息,或者由系统来实现它的某些行为,则它应该被抽象为系统中的对象,用类图中的类来表示;
如果某一事物将与系统直接进行交互,以使用系统的某些功能,则它应该被看成系统的参与者,在用况图中表示;
如果某一事物同时具备以上两个条件,则它既要被抽象为系统中的对象,又要作为系统的参与者,在类图和用况图中都要加以表示;
如果某一事物不具备上述任何条件,则它与系统没有任何关系,应该被忽略。
发现参与者的基本思路是:分析用户所要求的每一项功能是由哪些人员、设备或外系统来使用的,或者说每一项功能的执行需要哪些人员、设备或外系统与系统进行信息交互。这些与系统交互的人员、设备或外系统就是系统的参与者。以下分别讨论3类参与者的发现策略。
1.人员
首先从接受系统服务的人员中发现参与者。找出哪些人员是系统的直接使用者。注意,这里强调的是“直接使用”。间接地使用系统的人不能看成参与者。例如,公司的经理如果只是阅读秘书从系统获得的报表,而自己并不直接操纵系统,那么,参与者应该是秘书而不是经理。
……