Object-Oriented Analysis and Design Using UML 翻译与学习 (十二)

来源:互联网 发布:linux jdk1.8安装教程 编辑:程序博客网 时间:2024/05/12 11:00

Introducing the Architectural Tiers

介绍架构阶层


//2017年1月1日15:51:15 新年快乐!停了一段时间,最近在给大学的书做图书扫描


目标

完成这个模块(章节),你可以:

1、描述客户端阶层呈现阶层的概念

2、描述逻辑业务阶层的概念

3、描述集成阶层资源阶层的概念

4、描述解决模型概念


步骤图



介绍客户端阶层和呈现阶层

客户端阶层和呈现阶层主要包含:

1、控制器组件

    1.1从边界控制输入表单

    1.2采取输入合理检查

    1.3调用业务逻辑方法

    1.4分发视图组件

2、视图组件

    2.1检出视图请求的数据

    2.2将视图准备成对接收端合适的格式

    2.3添加客户端合理性检查(可选)


//2017年1月1日16:46:18 鼠标有点问题,修一下


边界界面技术

主边界接口类型是:

1、图像用户界面(GUI)

2、网页用户界面(Web UI)

3、机器或设备用户界面(例如,Web Service)


其他边界接口类型:

1、触摸平板

2、直接人工操作

3、摇杆

4、交互式声音识别

5、小键盘

6、命令行


通用应用程序组件

有四种基本的应用程序组件类型:



//2017年1月5日12:55:17 抽了点时间


//2017年2月2日16:45:52 主板坏了,修了一段时间就要过年

//今天想起来写了,有客来就招待客人,没有客人就学习一下


图形用户界面屏幕设计




顾客图形用户界面的组件层级树



图形用户界面事件模型

Java™技术使用 事件-监听 机制:



图形用户界面监听器作为控制器元素



MVC模式

经典的MVC模式,model-view-controller。

MVC将视图和控制器与模型隔离



MVC组件类型

MVC将服务组件和实体组件分到一组,成为单独的组件,成为模型:



MVC模式使用例子



回顾阶层和层的包图


//2017年2月2日18:22:46 吃饭


======================================================================================


浏览Web用户界面

一个Web UI 提供以浏览器为基础的用户界面。所有Web UI都有以下特征:

1、采取少量的大的用户行为(HTTP 请求)

2、一个单独的用例经常打散成多个屏幕(页面,不是指物理屏幕)

3、经常有一个单独的路径观察多个屏幕(页面,不是指物理屏幕)

4、经常只打开一个屏幕(页面,不是指物理屏幕)


Web UI设计

1、一个Web UI 被构建成一个连串的页面。

2、每个页面都有一个UI组件层级树。

3、一个Web UI页面代表用户对领域模型的视角,也代表用户的动作控制。

4、很少同一个页面被多个用例使用


Web页面流程例子

“在线创造一个预定”用例可以被看做一个串Web UI页面:



Web UI事件模型

1、微事件可以被Javascript™技术代码处理

2、宏事件可以被当做HTTP请求处理,其从web浏览器传递到web服务器


WebMVC模式

webMVC模式是基于MVC模式,但是没有模型到视图的更新:



WebMVC模式组件类型



WebMVC模式

Model 2架构使用这些组件:

1、Java servlets 作为控制器去处理HTTP请求

    1.1验证HTML表单数据

    1.2更新业务模型

    1.3选择和分发到下一个视图

2、JavaServer Pages™技术作为视图发送给用户

3、Java技术类(无论本地还是分布式)作为业务服务和实体的模型


回顾阶层和层的包图



======================================================================================


介绍业务阶层

业务阶层主要包括:

1、实体组件

2、服务组件

    2.1采取业务规则的验证的行动

    2.2采取关于实体的更新的行动


业务阶层可以通过以下

1、本地组件

2、远程组件,例如:

    2.1远程方法请求(RMI)

    2.2web service服务协议


本地访问服务组件



应用依赖翻转原则


//2017年2月3日23:00:48 不晚了洗洗睡


一个访问远程服务的虚拟版本



使用RMI访问远程服务




RMI使用序列化传递参数



RMI注册(服务)为远程查看保存存根



回顾详细的部署图



概观阶层和层的包图



======================================================================================


浏览资源阶层

资源阶层包括:

1、数据库

2、文件

3、Web Service(这是一种基于xml,通过http传递信息的技术,服务)

4、企业信息系统(EIS)


浏览对象持久

Persistence is “The property of an object by which its existence transcends time and space.” 

                                                                                            (Booch OOAD with Apps page 517)

持久化是“一个对象的属性,通过这个属性它的存在可以超越时间和空间”

                                                                        ---- Booch OOAD with Apps 517 页

//好霸气的一段话


一个持久化对象是:

1、一个对象,它存在超越应用的一次单独执行的一段时间。

2、一个对象,它被单独地保存在应用的地址空间中。


持久化问题

有一些持久化问题必须指出:

1、数据保存的类型

2、射到领域模型的数据库模式(文件)

3、集成组件

4、CRUD操作:创建,查找,更新和删除


//2017年2月5日00:13:48 不晚了,突然发现这章还有挺多



//2017年2月26日20:38:23 停了一段时间


为领域模型创建数据库模

定义数据库模一般用两步完成:

1、逻辑上的实体-关系(ER)图包括:

    1.1面向对象实体作为表

    1.2面向对象实体的属性作为表的字段

    1.3面向对象的关联作为表之间的关系

2、物理上的ER图有逻辑上的图和以下构成:

    2.1字段的类型

    2.2表的索引

    2.3数据的完整性约束


把领域模型转化成逻辑上的ER图的策略是:

1、把每个类转化成表

2、声明每个表的主键

3、使用多样性关联去决定ER关联的类型


简化旅馆系统模型

这个例子使用简单的领域模型:


第一步--映射实体到数据库表

为每一个领域模型中的实体创建表


第二步--声明主键

加入主键字段:


第三步--声明一对多关系

使用外键


第四步--说明多对象关系

引入一个解决表:



浏览详细的部署图


浏览阶层和层的包图



浏览集成阶层技术

集成层把实体组件和资源(阶层)分开

需要集成的资源阶层类型有:

1、数据资源

2、企业信息系统(EIS)

3、计算库

4、短消息服务

5、B2B(网页到网页)服务


DAO(设计)模式

数据访问对象(DAO)设计模式:

1、将CRUD操作的实现与应用阶层分开

2、为CRUD操作封装数据存储机制,为每个实体提供一个对应的DAO组件

3、如果数据存储机制很可能改变,那么为DAO组件提供一个抽象工厂


DAO模式:例子1



DAO模式:例子2



DAO(设计)模式


//2017年3月1日23:38:45 早睡早起身体好


浏览详细的部署图



浏览层和阶层的包图


======================================================================================


JAVA™持久化API

java持久化API:

1、对DAO来说是可选的

2、利用从可选的持久化技术来的最好的的理念,(技术)例如 Hibernate, TopLink,

and Java Data Objects (JDO)

3、使用持久化提供者,如HibernateTopLink

4、是一个简单的,老的,java对象持久API,是为了对象/关系映射

5、使用实体管理者去管理对象


Java持久化API实体管理者

一个java持久API实体管理者(器)可以被请求:

1、通过保持对象的数据与数据库记录同步来管理数据

2、持久或(使)消失不被管理的对象,这样管理这些对象

3、通过一个对象的主键查找对象,这样从数据库记录创建一个对象


======================================================================================


介绍解决模型

解决模型是基于 开发团队将构建系统的解决方案的代码。


解决模型是通过将设计模型合并到架构模型中创建的。



//2017年3月2日22:33:43 按部就班


//2017年3月3日22:15:39 昨天保存时卡了一下,还没写完就发表了


浏览为GUI应用使用的解决模型

GUI应用使用标准的一组设计组件



创建预定(房间)用例的一个完整的设计模型



创建预定(房间)用例的一个完整的解决模型


//2017年3月3日23:09:59 实际上就是前面几幅图的组合


浏览Web用户界面应用的解决方案

web应用将边界组件分为两个独立组件:视图和控制器



创建预定用例的一个完整的设计模型



在线创建预定用例的一个完整的解决模型



总结

1、客户端阶层和呈现阶层包括边界视图组件控制器组件

2、业务阶层包括业务服务组件实体组件

3、集成阶层包括把业务实体资源总分开的组件

4、资源阶层包括一个或多个数据源,例如 关系型数据库(RDBMS),面向对象数据库( OODBMS),企业信息系统( EIS),

Web服务(Web services)或者文件。

5、解决模型提供了一个可以通过代码实现的软件系统的视角。

6、解决模型是通过将设计模型合并到架构模型中实现的。



//2017年3月3日23:55:47 这张终于搞完了,遇到困难把它当成歌来唱
//另外,鄙人从事软件开发,英语过6级,求兼职
//联系我,邮箱:bourne_w@sina.com

交个朋友吧












0 0