本书介绍使用UML进行软件建模的方法与软件工程的基础知识。全书主要分为三部分。第1部分(第1~3章)简要介绍软件工程的产生、发展历史及重要作用,对面向对象方法的概念和原则加以阐释,由此推出UML的概念和作用,介绍UML的基本概念模型,并介绍多种UML建模的重要工具。第2部分(第4~13章)对每种UML图进行具体介绍,内容涵盖UML中的用例图、类图、对象图、包图、顺序图、通信图、状态机图、活动图、组件图、部署图。第3部分(第14~17章)结合UML的使用过程,介绍统一软件开发过程的相关概念,并且通过小型网上书店系统、小型二手货交易系统、汽车服务管理系统三个具体案例,使读者在实际开发过程中加深对使用UML的理解。本书理论与实践结合,可以很好地帮助读者掌握UML建模的基本思想,并学会读懂和建立UML模型。本书既可作为高等院校计算机类相关专业的教材,也可作为软件从业人员的学习指导用书。
为便于教学,本书提供丰富的配套资源,包括教学大纲、教学课件、电子教案、开发文档、程序源码、模拟试卷、实验素材、在线作业、习题答案和750分钟的微课视频。本书提供9个完整的项目案例:小型网上书店系统|小型二手货交易系统|汽车服务管理系统|技术分享类博客网站|学习生活交流论坛|青年租房管理系统|图书影视交流平台|问卷星球|在线音乐播放平台。
前言
党的二十大报告指出: 教育、科技、人才是全面建设社会主义现代化国家的基础性、战略性支撑。必须坚持科技是优质生产力、人才是优质资源、创新是优质动力,深入实施科教兴国战略、人才强国战略、 创新驱动发展战略,开辟发展新领域新赛道,不断塑造发展新动能新优势。高等教育与经济社会发展紧密相连,对促进就业创业、助力经济社会发展、增进人民福祉具有重要意义。
本书第1版出版于2018年5月,第2版出版于2021年5月,得到了许多高校教师和学生的肯定,在教学中取得了良好的效果。为了能及时反映软件工程领域UML的进展,保持教材内容的先进性,编者对第2版进行了全面的修订、再组织和更新,形成了现在的第3版。
本书改动内容如下。
(1) 对各章的内容重新进行了梳理,改正了所发现的错误,以及修改了不适当的描述。
(2) 将8个项目案例调整成10个。其中,替换了“学习生活交流论坛”和“书籍影视交流平台”; 增加了“问卷星球”和“在线音乐播放平台”。
(3) 全书的微课视频从620分钟增加为750分钟。
(4) 第2章增加了对“软件建模”的描述。
(5) 第3章的“UML建模工具”移到了第2章。
(6) 每一章的章首都增加了“本章学习目标”,章后都增加了“填空题”。
(7) 附录A改为“软件设计模式及应用”。
(8) 附录B改为“附加案例”。
希望通过这样的修改之后,教师和学生会更喜欢这本教材;希望本教材信息容量大、知识性强、面向对象的开发能力的全面培养和实际应用的这些特点能够很好地延续下去。
为便于教学,本书提供丰富的配套资源,包括教学大纲、教学课件、电子教案、程序源码、在线题库、习题答案和750分钟的微课视频。
资源下载提示
课件等资源: 扫描封底的“图书资源”二维码,在公众号“书圈”下载。
素材(源码)等资源: 扫描目录上方的二维码下载。
在线自测题: 扫描封底的作业系统二维码,再扫描自测题二维码,可以在线做题及查看答案。
微课视频: 扫描封底的文泉云盘防盗码,再扫描书中相应章节的视频讲解二维码,可以在线学习。
本书的作者为吕云翔、赵天宇,曾洪立参与了部分内容的编写并进行了素材整理及配套资源制作等。
由于软件工程在不断发展中,UML面向对象分析、建模与设计的教学方法本身也还在探索中,加之编者的水平和能力有限,本书难免有疏漏之处,恳请各位同仁和广大读者批评指正。
编者2025年5月
目录
资源下载
第1部分
第1章软件工程与面向对象方法
1.1软件工程
1.1.1软件工程的历史
1.1.2软件工程的目标和原则
1.2面向对象方法
1.2.1面向对象方法简介
1.2.2面向对象方法的历史
1.2.3面向对象方法的概念
1.2.4面向对象方法的优点
小结
习题1
第2章UML
2.1软件建模简介
2.1.1什么是模型
2.1.2建模的重要性
2.1.3建模的基本原理
2.2UML简介
2.3UML的历史
2.3.1UML出现的历史背景
2.3.2UML的诞生与标准化
2.3.3UML 2的诞生
2.4UML的目标与应用范围
2.4.1UML的目标
2.4.2UML的应用范围
2.5UML建模工具
小结
习题2
第3章认识UML
3.1UML构造块
3.1.1事物
3.1.2关系
3.1.3图
3.2UML通用机制
3.2.1规格说明
3.2.2修饰
3.2.3通用划分
3.2.4UML扩展机制
3.3“4+1”视图模型
3.3.1“4+1”视图模型的概念和组成
3.3.2“4+1”视图模型要解决的问题
3.3.3运用“4+1”视图方法进行软件架构设计
小结
习题3
第2部分
第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.5实验: 绘制“机票预订系统”的用例图
小结
习题4
第5章类图
5.1什么是类图
5.2类图的组成元素
5.2.1类
5.2.2接口
5.2.3类图中的关系
5.2.4类的高级概念
5.3应用类图建模
5.3.1类图建模技术
5.3.2使用类图进行正向工程与逆向工程
5.3.3面向对象的设计原则
5.4实验: 绘制“机票预订系统”的类图
小结
习题5
第6章对象图
6.1什么是对象图
6.2对象图的组成元素
6.2.1对象
6.2.2链
6.3应用对象图建模
6.3.1对象图建模技术
6.3.2使用对象图进行逆向工程
6.3.3对象图使用要点
6.4实验: 绘制“机票预订系统”的对象图
小结
习题6
第7章包图
7.1什么是包图
7.2包图的组成元素
7.2.1包
7.2.2包的依赖关系
7.3包图的建模技术
7.4实验: 绘制“机票预订系统”的包图
小结
习题7
第8章顺序图
8.1什么是顺序图
8.2顺序图的组成元素
8.2.1对象与生命线
8.2.2激活
8.2.3消息
8.3顺序图中的结构化控制
8.4顺序图的建模技术
8.5顺序图的变体——时间图
8.6实验: 绘制“机票预订系统”“登录”用例的顺序图
小结
习题8
第9章通信图
9.1什么是通信图
9.2通信图的组成元素
9.2.1对象
9.2.2链
9.2.3消息
9.3通信图与顺序图
9.4通信图的建模技术
9.5实验: 绘制“机票预订系统”“查询航班”用例的通信图
小结
习题9
第10章状态机图
10.1什么是状态机图
10.1.1状态机
10.1.2状态机图
10.2状态机图的组成元素
10.2.1简单状态
10.2.2转换
10.2.3伪状态
10.2.4复合状态
10.3状态机图的建模技术
10.4实验: 绘制“机票预订系统”“航班”类的状态机图
小结
习题10
第11章活动图
11.1什么是活动图
11.2活动图的基本组成元素
11.2.1动作和活动节点
11.2.2开始和终止
11.2.3控制流
11.2.4判断节点
11.2.5合并节点
11.2.6泳道
11.3活动图的高级组成元素
11.3.1分叉节点与结合节点
11.3.2对象流
11.3.3扩展区域
11.4活动图的建模技术
11.5实验: 绘制“机票预订系统”“购买机票”用例的活动图
小结
习题11
第12章组件图
12.1什么是组件图
12.2组件图的组成元素
12.2.1组件
12.2.2接口
12.2.3端口
12.2.4组件的内部结构
12.3组件图的建模技术
12.4实验: 绘制“机票预订系统”的组件图
小结
习题12
第13章部署图
13.1什么是部署图
13.2部署图的组成元素
13.2.1节点
13.2.2连接
13.3部署图的建模技术
13.4实验: 绘制“机票预订系统”的部署图
小结
习题13
第3部分
第14章统一软件开发过程
14.1统一软件开发过程概述
14.1.1什么是软件开发过程
14.1.2统一软件开发过程简介
14.1.3统一软件开发过程的发展历程
14.2过程总览
14.3阶段和迭代——时间维度
14.3.1起始阶段
14.3.2细化阶段
14.3.3构建阶段
14.3.4转化阶段
14.3.5迭代
14.4过程的静态结构
14.4.1工作者
14.4.2活动
14.4.3制品
14.4.4工作流
14.4.5核心工作流
14.5在统一软件开发过程中使用UML
14.5.1起始阶段常用的UML图
14.5.2细化阶段常用的UML图
14.5.3构建阶段常用的UML图
14.5.4转化阶段常用的UML图
小结
习题14
第15章案例: 小型网上书店系统
15.1需求分析
15.1.1项目背景描述
15.1.2系统需求分析
15.1.3用户管理模块
15.1.4订单管理模块
15.1.5书目管理模块
15.2系统的UML基本模型
15.2.1需求分析阶段模型
15.2.2基本动态模型
15.3类的设计与实现
15.3.1系统设计类
15.3.2类的实现
15.4系统的组件图和部署图
15.4.1系统的组件图
15.4.2系统的部署图
第16章案例: 小型二手货交易系统
16.1需求分析
16.1.1子系统划分
16.1.2系统功能需求
16.1.3非功能需求
16.2系统设计
16.2.1系统设计类图
16.2.2关键用例的动态模型
16.2.3类的代码框架
第17章案例: 汽车服务管理系统
17.1需求分析
17.1.1系统功能需求
17.1.2车辆及路线管理模块
17.1.3人员管理模块
17.1.4信息管理模块
17.2系统的UML基本模型
17.2.1需求分析阶段模型
17.2.2基本动态模型
17.3系统中的类
17.3.1系统类图
17.3.2生成类的代码框架
17.4系统的划分与部署
17.4.1系统的包图
17.4.2系统的部署图
附录A软件设计模式及应用
A.1软件设计模式
A.1.1工厂模式
A.1.2桥接模式
A.1.3策略模式
A.1.4其他模式
A.2软件设计模式应用
附录B附加案例
参考文献