第1章  软件需求分析技术	1
     
1.1  案例:中国石油物资采购管理信息系统软件需求分析	2
1.1.1  项目概述	2
1.1.2  业务需求概述	7
1.1.3  业务流程分解	11
1.1.4  功能需求描述	16
1.2  业务流程图的重要性	17
1.2.1  基本流程图	17
1.2.2  复杂流程分解	19
1.2.3  角色参与流程	19
1.3  UML与软件需求	20
1.3.1  UML介绍	20
1.3.2  UML用例图	21
1.3.3  UML状态图	24
1.3.4  UML活动图	27
1.4  软件需求概念模型	28
1.4.1  实体与属性	29
1.4.2  实体之间的关系	30
第2章  软件架构设计	32
2.1  架构设计五视图	32
2.2  开发架构模式选择	33
2.3  软件三层架构	34
2.4  MVC架构	38
2.5  AJAX架构	41
2.6  前后台分离架构	43
2.7  Java EE架构	45
2.7.1  Java EE架构介绍	45
2.7.2  创建EJB项目	47
2.7.3  编写EJB服务	47
2.7.4  Web站点调用EJB服务	53
2.8  Web服务架构	54
2.8.1  Web服务与RPC	54
2.8.2  创建Web服务	56
2.8.3  编写Web服务	57
2.8.4  Web站点调用Web服务	58
2.9  微服务架构	59
2.9.1  Spring Cloud Netflix介绍	59
2.9.2  Spring Boot与Spring Cloud	60
2.9.3  注册服务器Eureka	61
2.9.4  服务提供者	63
2.9.5  服务消费者	65
2.9.6  微服务异常传递	68
2.10  Dubbo架构	70
2.10.1  Dubbo 3介绍	71
2.10.2  Dubbo 3新特性	73
2.10.3  Dubbo注册中心	76
2.10.4  Dubbo服务提供者	78
2.10.5  Dubbo服务消费者	80
2.10.6  Dubbo交互协议	83
2.11  MOM架构	85
2.11.1  JMS与MOM	86
2.11.2  ActiveMQ服务器搭建	87
2.11.3  发送点对点消息	88
2.11.4  主动接收点对点消息	90
2.11.5  监听接收点对点消息	91
2.11.6  发送主题消息	93
2.11.7  主动接收主题消息	93
2.11.8  监听接收主题消息	93
2.11.9  多用户同时接收点对点消息	94
2.11.10  多用户同时接收主题消息	95
2.11.11  消息生命期	96
2.11.12  会话与消息确认模式	96
2.11.13  案例:JTA与MOM实现用户异步注册	100
2.12  案例:电影院综合票务管理平台架构设计	105
2.12.1  票务平台业务需求	105
2.12.2  票务平台行业规范	106
2.12.3  票务平台整体架构设计	109
2.12.4  院线票务系统架构设计	110
2.12.5  网络代售系统架构设计	111
2.12.6  院线票务系统与授权管理平台接口设计	112
2.12.7  院线票务系统与影院管理系统接口设计	115
2.12.8  院线票务系统与网络代售系统接口设计	116
2.12.9  院线票务系统消息通知设计	122
2.12.10  自动取票接口设计	123
第3章  项目模块设计	124
3.1  UML与逻辑设计	124
3.1.1  UML类图	124
3.1.2  UML时序图	130
3.1.3  UML协作图	131
3.2  新闻系统模块设计	132
3.2.1  新闻系统功能描述	132
3.2.2  新闻系统开发架构	133
3.2.3  新闻系统主页设计	133
3.2.4  新闻目录列表页设计	136
3.2.5  新闻页设计	139
3.2.6  新闻评论页设计	141
3.2.7  新闻发布设计	143
3.3  物流管理系统模块设计	145
3.3.1  物流管理系统需求分析	145
3.3.2  物流管理系统模块设计	148
第4章  持久层物理表设计	155
4.1  持久层设计原则	156
4.1.1  三范式原则	156
4.1.2  反范式原则	158
4.1.3  BASE与ACID原则	160
4.1.4  事务隔离级别	162
4.1.5  CAP原则	164
4.1.6  内存一致性	165
4.2  PowerDesigner与物理模型	165
4.2.1  PowerDesigner功能介绍	166
4.2.2  PowerDesigner概念数据建模	167
4.2.3  PowerDesigner逻辑数据建模	167
4.2.4  PowerDesigner物理数据建模	168
4.3  案例:ERP系统员工与用户表设计	169
4.3.1  项目功能需求	169
4.3.2  物理表设计	170
4.4  案例:业务系统权限表设计	171
4.4.1  简单业务系统的权限表设计	171
4.4.2  中型业务系统的权限表设计	172
4.4.3  Spring Security权限设计	177
4.4.4  大型业务系统的权限设计	181
4.5  案例:学校设备管理系统表设计	184
4.5.1  项目功能需求	184
4.5.2  物理表设计	184
4.5.3  项目核心代码参考	185
4.6  案例:企业会议室预订系统表设计	187
4.6.1  项目功能需求	187
4.6.2  物理表设计	188
4.6.3  项目核心代码参考	190
4.7  案例:网上订餐系统表设计	192
4.7.1  项目功能需求	192
4.7.2  物理表设计	192
4.8  案例:当当书城系统表设计	195
4.8.1  项目功能需求	195
4.8.2  物理表设计	195
4.8.3  项目核心代码参考	198
4.9  案例:户外旅游网系统表设计	201
4.9.1  项目功能需求	201
4.9.2  物理表设计	203
4.9.3  项目核心代码参考	206
4.10  案例:新闻系统表设计	208
4.10.1  项目功能需求	208
4.10.2  物理表设计	208
4.10.3  项目核心代码参考	210
4.11  案例:物流管理系统表设计	210
4.11.1  项目功能需求	210
4.11.2  物理表设计	210
4.12  案例:学生在线考试系统表设计	212
4.12.1  项目需求用例分析	212
4.12.2  项目需求流程分解	213
4.12.3  项目总体设计	214
4.12.4  项目物理表设计	219
4.13  案例:影院管理系统表设计	221
4.13.1  项目需求与设计	221
4.13.2  物理表设计	223
4.13.3  项目核心代码	224
4.14  案例:分布式连锁酒店管理系统表设计	226
4.14.1  项目需求与设计	227
4.14.2  物理表设计	230
4.14.3  项目核心代码	233
4.15  案例:中国石油物资采购管理信息系统表设计	237
4.15.1  项目功能需求与设计	237
4.15.2  物理表设计	240
4.15.3  项目核心代码	244
第5章  持久层Redis数据库设计	247
5.1  Redis功能介绍	247
5.2  Redis应用场景	248
5.3  Redis下载与安装	248
5.4  案例:当当书城Redis实战	250
5.4.1  Jedis连接Redis服务器	250
5.4.2  图书缓存和排序	251
5.4.3  统计图书访问次数	253
5.4.4  图书评论	255
5.4.5  图书评论点赞	257
5.5  Spring整合Redis管理HTTP Session	258
第6章  持久层MongoDB数据库设计	261
6.1  集合与文档	261
6.2  MongoDB应用场景	262
6.3  MongoDB下载与安装	264
6.4  系统数据库与用户库	266
6.5  权限管理	267
6.6  文档的CRUD操作	269
6.7  内嵌文档	270
6.8  索引	272
6.9  查询分析	274
6.10  案例:新浪微博MongoDB实战	276
6.10.1  微博项目分析	276
6.10.2  Java连接MongoDB	278
6.10.3  微博项目代码实现	279
第7章  项目部署	286
7.1  中型项目部署架构	286
7.2  Nginx	287
7.2.1  Nginx介绍	287
7.2.2  Nginx下载与安装	288
7.2.3  Nginx文件服务器配置	289
7.2.4  Nginx反向代理服务器配置	291
7.3  Docker虚拟化	293
7.3.1  Docker容器与镜像	293
7.3.2  Docker下载与安装	294
7.3.3  Docker常用命令	296
7.3.4  Docker搭建Tomcat集群	299
7.3.5  项目部署到Tomcat集群	301
7.3.6  Nginx路由Tomcat集群	302
7.4  MySQL集群部署	302
7.4.1  Master Slave Replication	303
7.4.2  MHA Cluster	304
7.4.3  Galera Cluster(PXC)	305
7.4.4  MGR Cluster	307
7.4.5  NDB Cluster	308
7.5  Redis集群部署	309
7.5.1  Master Slave Replication	309
7.5.2  哨兵模式	309
7.5.3  Redis Cluster	310
7.6  MongoDB集群部署	312
7.6.1  主从集群	312
7.6.2  副本集	312
7.6.3  分片集群	314

IV


V