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

Introducing Architectural Concepts and Diagrams

介绍架构概念和架构图

 

//红字是论坛自动上的色

 

目标

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

1、区别架构和设计

2、描述阶层,层,系统品质

3、描述架构工作流

4、描述重要的架构视角的图

5、选择架构类型

6、创建架构工作流工件

 

证明为什么要架构师这个角色

为什么软件工程现在需要雇佣这个角色的人?因为两个关键的改变

1、规模

2、分步

 

大规模,分布式企业系统的(关联)风险

迷你分布式系统(如客户端-服务器模式):

 

高度分布的系统:

 

架构和设计之间的区别

设个表格显示了架构师是如何与设计者不同

架构原则

1、相关性分离

2、依赖翻转原则

3、把易变性与稳定组件隔离

4、使用组件和容器框架

5、保持组件界面简单和干净

6、保持远程组件界面粗粒度

 

依赖翻转原则

“Depend  on  abstractions.  Do  not  depend  on  concretions.”
                                                                (Knoernschild page 12)

依赖抽象。不要依赖结核物。----Knoernschild12页

 

架构模式和设计模式

1、一个架构师计划系统,这个系统使用一个介于模式的合理步骤

2、一个架构师必须对多样的模式熟悉,以至于有高效性

3、模式种类:

     3.1设计模式定义结构和行为,以至于构建高效的,可重用的面向对象软件组件,

          去支持功能性需求

     3.2架构模式定义为系统和子系统定义j结构和行为,去做支持非功能性需求

 

阶层,层和系统品质

SunTone架构方法论介绍架构的维度:

1、阶层用来分割逻辑相关(的方面)

2、层用来组织组件和容器的关系

3、系统品质定义贯穿阶层和层的策略和模式

 

应用SunTone架构方法论

阶层

tiers – “A logical or physical organization of components into an ordered chain of service providers

and consumers.”
                                                                                   (SunTone Architecture Methodology page 10)

阶层-“一个逻辑或物理组织的组件,这些组件是在服务和消费者之间的有序链条中”

                                                                                  (SunTone Architecture Methodology 10 页)

1、客户层-包含一个薄的客户端,例如一个浏览器

2、呈现层-提供HTML页面和表单,这些被送到网页并处理用户的请求

3、逻辑业务层-提供业务服务和实体

4、集成层-提供组件去把逻辑业务层和资源层

5、资源层-包括所有的后台资源,例如数据库管理系统(DBMS)或企业信息系统(EIS)

 

layers–“The hardware and software stack that hosts services within  a  given  tier. 

(layers  represent  component/container relationships)”

                                                      (SunTone Architecture Methodology page 11)

层-“在一个给出的阶层主持服务的硬件或软件栈”

                                                    -- (SunTone Architecture Methodology 11 页)

1、应用层-提供一个组件的实体实现,去满足功能性需求

2、虚拟平台层-通过应用组件实现的应用程序接口

3、高端平台层-包含产品,例如网页和EJB技术容器以及中间件

4、低端平台层-包含操作系统

5、硬件层-包括计算硬件,例如服务器,储存器和网络服务

 

系统品质
“The   strategies,   tools,   and   practices   that   will   deliver   the requisite quality of service

across the tiers and layers.”                   (SunToneArchitecture Methodology page 11)

“贯穿阶层和层的,传递服务的必要品质的策略,工具,惯例”

1、表现性-称为反应到底的品质-用户体验

2、可操作性-称为系统执行时的品质

3、可开发性-称为计划,花费和系统的物理实现时的品质

4、可进化性-称为系统长期拥有中的品质

 

//2016年11月20日23:32:00 尽快搞完。最近在做另外一件事,扫描大学书成电子文档。

 

浏览架构工作流

架构模型对解决模型的创建是必要的:

 

介绍架构工作流

1、为系统选择一个架构类型

2、为架构上的重要的用例创建详细的部署图

3、精炼架构模型以满足非功能性需求

4、创建和测试架构的基线

5、记录在包图阶层的技术选择

6、根据最终的,详细的部署图创建架构模板

 

设计模型例子

 

架构模型例子

解决模型例子

 

架构视角

架构模型视角需要许多表单。一些元素(例如风险缓解计划)是用文字记录的。

其他可以用UML图:

1、包图

2、组件图

3、部署图

 

定义包图的元素

1、一个UML包图展现包之间的依赖,它可以包含任何UML元素

2、UML包图标记:

     2.1、包的名字可以放入主盒子或者放入名字盒子

     2.2、你可以把任何实体放入包,包括其他包

 

包图例子

一个抽象的包图

//2016年11月21日22:39:03 这一章讲的是架构,从更高的角度讲软件,涵盖了前几章的知识

 

定义组件图的元素

一个UML组件图由以下元素组成:

 

UML2需求的接口的画法:

 

一个组件的特质

1、一个组件可以代表任何软件单元

2、一个组件可以很广大和抽象

3、一个组件可以很小

4、一个组件可能有一个接口,这个接口可以作为服务导出给其他组件

5、一个组件可以是一个文件,例如一个源代码文件,一个对象文件,一个完整的可执行文件,

一个数据文件,HTML文件(超文本标记语言),媒体文件,等等

 

组件的类型

一个组件是任何物理的软件单元:

 

组件图例子

组件图可以显示软件依赖。这个例子显示RMI(远程方法请求)依赖:

 

组件图也可以显示软件依赖。这个例子显示Web Service依赖:

//WebService技术是将XML格式数据放在HTTP头中做请求。SOAP是WebService的一种实现形式。

 

组件图可以代表建造结构:

 

定义部署图的元素

 

一个部署图的目标

1、硬件节点可以代表任何物理硬件的类型

2、硬件之间的连接线表示连接,并且可以包含节点之间使用的通信协议

3、软件组件被放在硬件节点之中,去展示软件在网络之间的分布

 

部署图的类型

有两种形式:

1、一个描述符部署图展示基础的硬件配置

2、一个实例部署图展示一个详细的硬件配置。例如:

 

选择架构类型

你使用的架构依赖多种元素,包括:

1、系统需求中的平台限制

2、用户交互模式

3、持久化机制

4、数据和事务的继承

 

有上百种成功软件的架构。有许多共同的类型:

1、脱机应用

2、客户端/服务器(2阶层)应用

3、N阶层应用

4、以网页为中心的N层应用

5、企业N阶层应用

 

脱机应用

1、没有额外的数据资源(所有应用数据存在于文件服务器)

2、没有网络通信(所有应用的组件存在于一个机器)

 

客户端/服务器(2阶层)应用

1、厚客户端(在客户端层中带有业务逻辑)

2、数据存储管理数据完整性

 

N层应用

1、薄客户端(业务逻辑是存在于应用服务器)

2、应用服务器管理数据完整性

 

以网页为中心的N层应用

1、网页服务器变成薄客户端

2、网页服务提供呈现和业务逻辑

 

企业N阶层应用

 

1、两个客户端:

      1.1、为英特网用户的网页浏览器

      1.2、为内网用户的GUI(图片化用户界面)薄客户端

2、网页应用服务器提供呈现逻辑

3、应用服务器提供业务逻辑

 

 

旅馆预订系统架构

 

创建详细的部署图

1、为架构上重要的用例设计组件

2、将设计的组件放入架构模型

3、从设计和基础组件的出现,画出详细的部署图

//2016年11月26日23:56:57 不晚了

 

创建架构模板

1、将详细的部署图分成一组设计组件:边界、服务、实体

2、使用设计组件的类型替换名称(例如,ResvSvcImpl_Stub成为Service Impl_Stub)

 

创建阶层和层的包图

每一阶层:

1、决定哪个应用组件存在

2、决定组件需要的技术API,通信协议,必要的说明

3、决定使用哪一个容器产品

4、决定使用哪一个操作系统

5、决定使用哪个硬件

 

旅馆App的阶层和层的图

 

旅馆系统网页呈现的阶层和层的图

 

总结

1、架构和设计之间的区别

     1.1、设计产生组件,去实现一个用例

     1.2、架构提供模板到被实现的设计组件中

 

你可以通过以下对架构建模:

1、部署图

2、组件图

3、包(图)

4、阶层和层

 

 


//2016年11月27日20:56:57 最近又忙起来了,速度有些慢,这章内容真多

//联系我,邮箱:bourne_w@sina.com

交个朋友吧

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值