内容简介
绪论 软件设计与架构概述
一、Java与UML建模
二、Java设计模式
三、系统架构
第1部分Java与UML建模
第1课UML快速入门
1.1 UML建模概述
1.1.1面向对象方法
1.1.2面向对象建模OMT
1.1.3统一建模语言UML
1.1.4 UML的起源和发展
1.1.5为什么要使用UML
1.2 UML基本构成元素
1.2.1 4种事物
1.2.2 4种关系
1.2.3 10种图
1.2.4 UML图的分类
1.3 UML设计工具
1.3.1使用Rose进行UML建模
1.3.2使用Visio进行UML建模
1.4本课小结
1.4.1本课图例打包uml.mdl
1.4.2总结本课的知识点
1.4.3要掌握的关键点
1.4.4课后上机作业
1.4.5继续下一课:用例图
第2课 用例图
2.1用例概述
2.1.1什么是用例
2.1.2为什么要使用用例
2.1.3用例图的基本模型元素
2.2用例图的绘制
2.2.1参与者的表示法
2.2.2用例的表示法
2.2.3系统边界的表示法
2.2.4通信关联的表示法
2.3用例图的建立过程
2.3.1发现参与者及检查标准
2.3.2发现用例及检查标准
2.3.3编写用例规约
2.3.4用例图创建技巧
2.4本课小结
2.4.1本课图例打包usecase.mdl
2.4.2总结本课的知识点
2.4.3要掌握的关键点
2.4.4课后上机演练——企业产品生产销售管理系统
2.4.5继续下一课:静态图——类图、对象图、包图
第3课 静态图——类图、对象图、包图
3.1类图的绘制
3.1.1类图的表示法
3.1.2接口的表示法
3.1.3类图之间的4种关系
3.2对象图的绘制
3.2.1对象图的表示法
3.2.2对象图的使用场景——序列图和协作图
3.3包图的绘制
3.3.1包图的表示法
3.3.2使用包包含类
3.3.3使用包包含子包
3.3.4包的依赖关系
3.4本课小结
3.4.1本课图例打包class.mdl
3.4.2总结本课的知识点
3.4.3课后上机演练——企业信息管理系统用户登录和注册模块
3.4.4继续下一课:实现图——组件图与部署图
第4课 实现图——组件图与部署图
4.1组件图的绘制
4.1.1组件的表示法
4.1.2程序的表示法
4.1.3包的表示法
4.1.4任务的表示法
4.1.5组件之间的依赖
4.2部署图的绘制
4.2.1处理器节点的表示法
4.2.2设备节点的表示法
4.2.3节点之间的关联
4.3本课小结
4.3.1本课图例打包component.mdl
4.3.2总结本课的知识点
4.3.3要掌握的关键点
4.3.4课后上机演练——企业信息管理系统部署图
4.3.5继续下一课:行为图——状态图
第5课 行为图——状态图
5.1状态图的绘制
5.1.1状态图的基本模型
5.1.2状态的表示法
5.1.3转换的表示法
5.2状态的绘制
5.2.1初始状态的表示法
5.2.2终止状态的表示法
5.2.3子状态的表示法
5.2.4历史状态的表示法
5.3本课小结
5.3.1本课图例打包statechart.mdl
5.3.2总结本课的知识点
5.3.3要掌握的关键点
5.3.4课后上机演练
5.3.5继续下一课:行为图——活动图
第6课 行为图——活动图
6.1活动图的绘制
6.1.1活动图的基本模型
6.1.2活动的表示法
6.1.3转换的表示法
6.1.4分支与合并的表示法
6.1.5分叉与汇合的表示法
6.1.6泳道的表示法
6.2本课小结
6.2.1本课图例打包activity.mdl
6.2.2总结本课的知识点
6.2.3要掌握的关键点
6.2.4课后上机演练
6.2.5继续下一课:交互图——序列图
第7课 交互图——序列图
7.1序列图的绘制
7.1.1序列图的基本模型
7.1.2对象生命线的表示法
7.1.3激活的表示法
7.1.4消息的表示法
7.1.5自调用消息的表示法
7.2本课小结
7.2.1本课图例打包sequence.mdl
7.2.2总结本课的知识点
7.2.3要掌握的关键点
7.2.4课后上机演练
7.2.5继续下一课:交互图——协作图
第8课 交互图——协作图
8.1协作图的绘制
8.1.1协作图的基本模型
8.1.2对象的表示法
8.1.3连接的表示法
8.1.4消息的表示法
8.1.5自调用消息的表示法
8.2本课小结
8.2.1本课图例打包collaboration.mdl
8.2.2总结本课的知识点
8.2.3要掌握的关键点
8.2.4课后上机演练
8.2.5 继续下一课:使用UML进行系统设计——Bug管理系统
第9课 使用UML进行系统设计——Bug管理系统
9.1 UML系统设计概述
9.1.1软件开发的驱动方法
9.1.2正向工程与逆向工程
9.1.3 UML建模的受众分析
9.1.4 UML建模的过程
9.2 Bug管理系统的模型驱动开发过程
9.2.1需求分析——用例图
9.2.2系统分析:分析业务规则——状态图
9.2.3系统分析:分析业务流程——活动图
9.2.4系统设计:设计静态结构——类图和包图
9.2.5系统设计:Action类被调用关系——序列图
9.2.6系统设计:用户调用Action类的过程——协作图
9.2.7系统架构——组件图和部署图
9.2.8编码实现
9.2.9 UML图例打包bug.mdl
9.3本课小结
9.3.1总结本课的知识点
9.3.2要掌握的关键点
9.3.3课后上机演练
9.3.4继续下一课:Java设计模式
第2部分Java设计模式
第10课 设计模式概述
10.1了解设计模式
10.1.1设计模式的概念
10.1.2设计模式的产生——23种设计模式与GoF“四人帮”
10.1.3设计模式不是技术而是思想——构建可重用的程序
10.1.4为什么要使用设计模式
10.2设计模式的分类
10.2.1创建型模式
10.2.2结构型模式
10.2.3行为型模式
10.2.4并发型模式
10.2.5线程池模式
10.3设计模式六大原则
10.3.1开闭原则
10.3.2里氏代换原则
10.3.3依赖倒转原则
10.3.4接口隔离原则
10.3.5迪米特法则(最少知道原则)
10.3.6合成复用原则
10.4模式的讲解思路
10.5本课小结
10.5.1总结本课的知识点
10.5.2要掌握的关键点
10.5.3继续下一课:5种创建型模式
第11课5种创建型模式
11.1工厂方法模式
11.1.1工厂方法模式的核心思想及分类
11.1.2第一种——工厂方法模式
11.1.3第二种——多个工厂方法模式
11.1.4第三种——静态工厂方法模式(简单工厂模式)
11.1.5何时使用工厂方法模式
11.1.6 Java中的应用——Swing中的静态工厂类BorderFactory
11.2抽象工厂模式(Abstract Factory)
11.2.1抽象工厂模式的核心思想
11.2.2何时使用抽象工厂模式
11.3单例模式(Singleton)
11.3.1单例模式的核心思想
11.3.2何时使用单例模式
11.3.3属性文件加载工厂实例
11.3.4 Java中的应用——日历单例类Calendar
11.4建造者模式(Builder)
11.4.1建造者模式的的核心思想
11.4.2何时使用建造者模式
11.4.3 Java中的应用——字符串建造者类StringBuilder
11.4.4 Java中的应用——进程建造者类ProcessBuilder
11.5原型模式(Prototype)
11.5.1原型模式的核心思想
11.5.2浅复制与深复制
11.5.3何时使用原型模式
11.6本课小结
11.6.1总结本课的知识点
11.6.2要掌握的关键点
11.6.3继续下一课:7种结构型模式
第12课7种结构型模式
12.1适配器模式(Adapter)
12.1.1适配器模式的核心思想
12.1.2第一种:类的适配器模式(对类进行适配)
12.1.3第二种:对象的适配器模式(对对象进行包装)
12.1.4第三种:接口的适配器模式(对接口抽象化)
12.1.5何时使用适配器模式
12.1.6 Java中的应用——Iterator适配器(对象的适配器模式)
12.1.7 Java中的应用——Enumeration适配器(对象的适配器模式)
12.1.8 Java中的应用——AWT事件适配器(接口的适配器模式)
12.1.9 Java中的应用——I/O字节流到字符流的适配器(对象的适配器模式)
12.2装饰器模式(Decorator)
12.2.1装饰器模式的核心思想
12.2.2何时使用装饰器模式
12.2.3 Java中的应用——I/O输入/输出流管道的装饰器模式
12.2.4 Java中的应用——Sitemesh装饰器
12.3代理模式(Proxy)
12.3.1代理模式的核心思想
12.3.2何时使用代理模式
12.3.3 Java中的应用——Java动态代理机制
12.4外观模式(Facade)
12.4.1外观模式的核心思想
12.4.2何时使用外观模式
12.4.3 Java中的应用
12.5桥接模式(Bridge)
12.5.1桥接模式的核心思想
12.5.2何时使用桥接模式
12.5.3在Java中的应用——JDBC桥DriverManager
12.6组合模式(Composite)
12.6.1组合模式的核心思想——树形结构
12.6.2何时使用组合模式
12.6.3 Java中的应用——AWT容器Container
12.7享元模式(Flyweight)
12.7.1享元模式的核心思想——共享
12.7.2何时使用享元模式
12.7.3 Java中的应用——数据库连接池
12.8本课小结
12.8.1总结本课的知识点
12.8.2要掌握的关键点
12.8.3继续下一课:11种行为型模式
第13课11种行为型模式
13.1策略模式(Strategy)
13.1.1策略模式的核心思想
13.1.2何时使用策略模式
13.1.3 Java中的应用——AWT布局管理器
13.1.4 Java中的应用——Swing边界类Border
13.2模板方法模式(Template Method)
13.2.1模板方法模式的核心思想
13.2.2何时使用模板方法模式
13.2.3 Java中的应用——HTTP请求处理类HttpServlet
13.3观察者模式(Observer)
13.3.1观察者模式的核心思想
13.3.2何时使用观察者模式
13.3.3 Java中的应用——Observable和Observer观察者实现
13.3.4 Java中的应用——AWT事件监听机制
13.4迭代子模式(Iterator)
13.4.1迭代子模式的核心思想
13.4.2何时使用迭代子模式
13.4.3 Java中的应用——Java集合类迭代子Iterator和Enumeration
13.4.4 Java中的应用——JDBC查询数据集迭代子ResultSet
13.4.5 Java中的应用——JSP分页器
13.5责任链模式(Chain of Responsibility)
13.5.1责任链模式的核心思想
13.5.2何时使用责任链模式
13.5.3 Java中的应用——I/O输入/输出流管道的责任链模式
13.6命令模式(Command)
13.6.1命令模式的核心思想
13.6.2何时使用命令模式
13.6.3 Java中的应用——AWT界面事件处理
13.7备忘录模式(Memento)
13.7.1备忘录模式的核心思想
13.7.2何时使用备忘录模式
13.7.3 Java中的应用——Session和Application对象
13.8 状态模式(State)
13.8.1状态模式的核心思想
13.8.2何时使用状态模式
13.8.3 Java中的应用——Java工作流引擎
13.9访问者模式(Visitor)
13.9.1访问者模式的核心思想
13.9.2何时使用访问者模式
13.9.3 Java中的应用——Java Annotaion访问者实现
13.10中介者模式(Mediator)
13.10.1中介者模式的核心思想
13.10.2何时使用中介者模式
13.10.3 Java中的应用——Java多线程数据共享
13.11解释器模式(Interpreter)
13.11.1解释器模式的核心思想
13.11.2何时使用解释器模式
13.11.3 Java中的应用——Java正则表达式解释器Pattern
13.12本课小结
13.12.1总结本课的知识点
13.12.2要掌握的关键点
13.12.3继续下一课:面向服务架构SOA
第3部分 面向服务架构SOA
第14课Web服务协议——SOAP、 WSDL、 UDDI和WS协议集
14.1 Web服务概述
14.1.1什么是Web服务
14.1.2为什么要使用Web服务
14.1.3使用Web服务的方式
14.2 Web服务基本规范
14.2.1 Web服务协议族
14.2.2 Web服务通信协议——简单对象访问协议(SOAP)
14.2.3 Web服务描述协议——Web服务描述语言(WSDL)
14.2.4 Web服务发现协议——统一描述、发现和集成(UDDI)
14.3 Web服务扩展规范——WS协议集
14.3.1 WS安全(WS-Security)
14.3.2 WS策略(WS-Policy)
14.3.3 WS寻址(WS-Addressing )
14.3.4 WS业务流程(WS-BPEL )
14.4本课小结
14.4.1总结本课的知识点
14.4.2要掌握的关键点
14.4.3继续下一课:Web服务开发技术——使用JAX-WS开发Web服务
第15课Web服务开发技术——使用JAX-WS开发Web服务
15.1 JAX-WS概述
15.1.1 JAX-WS简介
15.1.2 JAX-WS与JAX-RPC之间的关系
15.1.3为什么要使用JAX-WS
15.2 JAX-WS快速上手——HelloWorld实例
15.2.1开发Web Service服务器端——JAXWSHelloWorldServer项目
15.2.2发布Web Service服务
15.2.3开发Web Service客户端——JAXWSHelloWorldClient项目
15.2.4打包JAXWSHelloWorldServer.zip和JAXW SHelloWorldClient.zip
15.3本课小结
15.3.1总结本课的知识点
15.3.2要掌握的关键点
15.3.3继续下一课:Web服务开发框架——使用Axis框架开发Web服务
第16课Web服务开发框架——使用Axis框架开发Web服务
16.1常用的Web服务框架
16.1.1 Apache服务框架Axis
16.1.2 CodeHaus服务框架XFire
16.1.3 Apache服务框架CXF
16.2 Axis服务框架简介
16.2.1 Axis框架
16.2.2 Axis2框架
16.2.3 Axis2的扩展
16.3 Eclipse+Axis2整合开发Web Service——HelloWorld实例
16.3.1下载并安装Axis2
16.3.2配置Eclipse与Axis2的集成
16.3.3开发Web Service服务器端—— AxisHelloWorldServer项目
16.3.4开发Web Service客户端——AxisHelloWorldClient项目
16.3.5打包AxisHelloWorldServer.zip和AxisHelloWorldClient.zip
16.4本课小结
16.4.1总结本课的知识点
16.4.2要掌握的关键点
16.4.3继续下一课:SOA面向服务架构——Sun的JBI和IBM/BEA的SCA/SDO
第17课SOA面向服务架构——Sun的JBI和IBM/BEA的SCA/SDO
17.1 SOA概述
17.1.1 SOA的基本定义——SOA是一种架构模型
17.1.2 SOA的本质特征——SOA不是一种技术,而是一种的样式
17.1.3使用SOA的好处
17.2构成SOA的技术
17.2.1构成SOA的技术
17.2.2实现SOA的技术标准
17.2.3本书SOA讲解的内容
17.3本课小结
17.3.1总结本课的知识点
17.3.2要掌握的关键点
17.3.3继续下一课:JBI业务集成架构——Java实现SOA的标准途径
第18课JBI业务集成架构——Java实现SOA的标准途径
18.1 JBI概述
18.1.1 JBI是什么
18.1.2 JBI产生的原因
18.1.3如何使用JBI
18.2 JBI服务架构——基于插件方式的架构
18.2.1组件框架——把不同类型的组件部署到JBI容器
18.2.2规范化消息路由器——利用标准机制实现服务间消息交换
18.2.3管理框架——基于JMX进行部署、管理及监控JBI容器中的组件
18.3应用JBI解决方案
18.3.1 JBI系统开发任务分解
18.3.2 JBI可以集成的功能
18.3.3 JBI开源项目
18.4本课小结
18.4.1总结本课的知识点
18.4.2要掌握的关键点
18.4.3继续下一课:SCA服务组件架构——实现SOA的最佳方式
第19课SCA服务组件架构——实现SOA的最佳方式
19.1 SCA概述
19.1.1 SCA的产生
19.1.2 SCA服务架构
19.1.3 SCA基本概念
19.1.4 SCA基本规范
19.1.5 SCA的扩展性
19.1.6 SCA的优势
19.1.7 SCA与JBI的区别
19.2 SCA解决方案
19.2.1 SCA开源项目
19.2.2 SCA商业产品
19.2.3 Apache的Tuscany
19.2.4 Eclipse下SOA开发插件STP
19.3使用Tuscany构建SCA服务器端与客户端——计算器实例
19.3.1新建项目并设置Tuscany环境
19.3.2开发SCA服务器端组件
19.3.3传统的调用方式
19.3.4 配置SCA服务器端
19.3.5开发SCA客户端
19.3.6运行客户端
19.3.7打包SCAJava.zip
19.4使用Tuscany构建分布式Web服务——HelloWorld实例
19.4.1通过SCA服务器端发布Web服务
19.4.2通过SCA客户端访问远程Web服务
19.4.3打包SCAWSServer.zip和SCAWSClient.zip
19.5本课小结
19.5.1总结本课的知识点
19.5.2要掌握的关键点
19.5.3继续下一课:SDO服务数据对象——SCA数据服务组件
第20课SDO服务数据对象——SCA数据服务组件
20.1 SDO概述
20.1.1 SDO是什么
20.1.2 SDO数据模型
20.1.3 SDO的特性
20.2 SDO与其他数据模型对比
20.2.1 SDO与DAO的对比
20.2.2 SDO与JDO的对比
20.2.3 SDO与JAXB的对比
20.2.4 SDO与ADO.NET的对比
20.3 SDO核心类简介
20.3.1 SDO数据对象DataObject
20.3.2 SDO数据图DataGraph
20.3.3 SDO数据类型Type
20.3.4 SDO帮助类
20.4本课小结
20.4.1总结本课的知识点
20.4.2要掌握的关键点
20.4.3继续下一课:OSGi体系架构——SCA的一种实现方式
第21课OSGi体系架构——SCA的一种实现方式
21.1 OSGi概述
21.1.1什么是OSGi
21.1.2 OSGi体系结构
21.1.3 OSGi开源框架
21.2 OSGi与SCA的关系
21.2.1 OSGi与SCA的区别
21.2.2 OSGi与SCA结合的架构
21.2.3 OSGi与SCA结合的方式
21.3 OSGi在实际中的应用
21.3.1 OSGi与Eclipse和Equinox
21.3.2 OSGi在Spring上的应用
21.3.3 Eclipse下的OSGi开发样例——HelloWorld实例
21.4本课小结
21.4.1总结本课的知识点
21.4.2要掌握的关键点
21.4.3继续下一课:SOA延伸技术——BPEL、 ESB与EAI
第22课SOA延伸技术——BPEL业务流程管理、ESB企业服务总线与EAI企业应用集成
22.1 BPEL业务流程管理——实现Web服务整合
22.1.1什么是业务流程
22.1.2什么是BPEL
22.1.3 BPEL产生的背景
22.1.4使用BPEL的好处
22.1.5 BPEL开源引擎
22.2 ESB企业服务总线——提供统一的Web服务总线
22.2.1 ESB产生的原因
22.2.2 ESB服务总线架构
22.2.3 ESB服务总线的作用
22.2.4 ESB开源实现
22.3 EAI企业应用集成
22.3.1 EAI的产生
22.3.2 EAI是什么
22.3.3 EAI系统架构
22.3.4 EAI相关技术
22.3.5 EAI开源实现
22.4本课小结
22.4.1总结本课的知识点
22.4.2要掌握的关键点
22.4.3继续下一课:SOA扩展应用——Portal门户组件与Portlet窗口组件
第23课SOA扩展应用——Portal门户组件与Portlet窗口组件
23.1 Portal门户技术
23.1.1什么是Portal
23.1.2 Portal的功能
23.1.3 Portal工作原理
23.1.4 Portal开源框架
23.2 Portlet组件技术
23.2.1什么是Portlet
23.2.2 Portlet执行过程
23.2.3 Portlet生命周期
23.2.4 Portlet编程方式
23.3本课小结
23.3.1总结本课的知识点
23.3.2要掌握的关键点
23.3.3继续下一课:SOA服务架构开发实战——基于Tuscany+Spring的企业信息管理系统
第24课SOA服务架构开发实战——基于Tuscany+Spring的企业信息管理系统
24.1了解并运行原有系统——基于Struts 2+Spring+Hiberante的Web应用
24.1.1基本功能——登录、退出与注册
24.1.2业务功能——企业信息管理系统功能
24.1.3数据库结构
24.1.4安装并运行MySQL数据库
24.1.5导入项目并运行系统
24.2开发基于Tuscany+Spring的SCA服务器端
24.2.1新建项目EmisService并添加JAR和Tuscany支持库
24.2.2添加DAO层和Service层代码
24.2.3添加Pager分页类的具体类
24.2.4将Service接口设置为远程接口
24.2.5将Service发布为Web服务——集成配置Tuscany+Spring组件
24.2.6开发SCA服务启动类EmisServiceServer.java
24.2.7启动SCA服务并查看Web服务
24.3开发基于Struts2+Spring+SCA的Web应用——SCA服务的客户端
24.3.1新建项目EmisWeb并添加JAR和Tuscany支持库
24.3.2添加Web层和Action层代码
24.3.3添加Service层接口代码
24.3.4配置SCA客户端访问Web服务
24.3.5配置Spring访问SCA组件——集成配置Spring+Tuscany组件
24.3.6运行程序
24.4打包EmisService.zip和EmisWeb.zip
24.5本课小结
24.5.1总结本课的知识点
24.5.2要掌握的关键点
24.5.3继续下一课:面向资源架构ROA——基于REST风格的Web服务
第4部分 面向资源架构ROA
第25课ROA面向资源架构——基于REST风格的Web服务
25.1 REST概述
25.1.1 REST产生的背景
25.1.2什么是REST——REST是一种架构样式
25.1.3 REST基本原理——使用CRUD原则表达URI
25.1.4 REST设计方法
25.1.5 REST开源框架
25.2 ROA面向资源架构
25.2.1构建REST式的Web服务
25.2.2 ROA面向资源架构
25.3本课小结
25.3.1总结本课的知识点
25.3.2要掌握的关键点
25.3.3继续下一课:面向云架构COA
第5部分 面向云架构COA
第26课COA面向云架构——云计算与云架构
26.1云计算的发展
26.1.1网格计算
26.1.2集群计算
26.1.3分布式计算
26.1.4云计算
26.2云计算与云架构
26.2.1云计算的特点
26.2.2云计算的实现形式
26.2.3云计算的实际应用
26.3本课小结
26.3.1总结本课的知识点
26.3.2要掌握的关键点
26.3.3继续下一课:架构师之路
第6部分 架构师之路
第27课 软件架构师职业规划
27.1了解软件架构
27.1.1软件架构与软件架构师
27.1.2软件架构的历史
27.1.3软件架构的目标
27.2软件架构师的职责
27.2.1软件架构师的具体工作
27.2.2软件架构师的要求
27.2.3软件架构师的成长阶段
27.3软件架构师职业发展
27.3.1产品管理
27.3.2项目管理
27.3.3团队建设
27.3.4发展战略CTO
27.4本课小结
27.4.1总结本课的知识点
26.4.2要掌握的关键点
27.4.3本课总结
《高手真经》系列后记