软件架构与设计模式ppt课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件系统架构要素
它是一个软件系统从整体到部分的最高层次的划分。一个系统通常是由组件组成的, 而这些组件如何形成、相互之间如何发生作用,则是关于这个系统本身结构的重要信 息。系统包括架构组件、连接器、任务流。架构组件是组成系统的核心“砖瓦”,而 连接器则描述这些 组件之间通讯的路径、通讯的机制、通讯的预期结果,任务流则描 述系统如何使用这些组件和连接器完成某一项需求。
打印机,与连接这些元素的部分。 组织架构—是一些关于商业进程,组织结构,规 则和职责,与组织核心能力的部分。 信息架构—包含组织好的信息结构。 软件架构、硬件架构、组织架构和信息架构是全 部系统架构的子结构。 企业架构与系统架构很相似,包括硬件,软件,
人员等。
7
架构师分类
企业架构师EA (Enterprise Architect) 的职责是决定整个公司的技术路线和技术发展方
它是建造一个系统所作出的最高层次的、以后难以更改的,商业的和技术的决定。这 样的决定必定是有关系统设计成败的最重要决定,必须经过非常慎重的研究和考察。
在决定时,要考虑独特的架构风格和恰当的架构模式。
12
软件架构的目标
可靠性(Reliable)。软件系统对于用户的商业经营和管理来说极为重要,因此软件 系统必须非常可靠。 安全性(Secure)。软件系统所承担的交易的商业价值极高,系统的安全性非 常重要。 可扩展性(Scalable)。软件必须能够在用户的使用率、用户的数目增加很快的情况 下,保持合理的性能,才能适应用户的市场扩展得可能性。 可定制化(Customizable)。同样的一套软件,可以根据客户群的不同和市场需求的 变化进行调整。
代码复制迁移的一致性约束;什么条件下此种连接无效等。
4
架构定义
软件架构不仅仅注重软件本身的结构和行为, 还注
重其他特性:使用, 功能性, 性能, 弹性, 重用, 可理
解性, 经济和技术的限制及权衡。
5
例: ACE的分层架构
6
架构的范围
软件架构—本门课程的主关注点。
硬件架构—包括CPU, 内存,硬盘,周边设备例如
13
软件架构的目标
可延伸性(Extensible)。在新技术出现的时候,一个软件系统应当允许导入新技术, 从而对现有系统进行功能和性能的扩展; 可维护性(Maintainable)。软件系统的维护包括两方面:1。排除现有的错 误,2。将新的软件需求反映到现有系统中去。一个易于维护的系统可以有效 地降低技术支持的花费 客户体验(Customer Experience)。软件系统必须易于使用。 市场时机(Time to Market)。软件用户要面临同业竞争,软件提供商也要面 临同业竞争。以最快的速度争夺市场先机非常重要。
软件架构师基本上是EA+TSA+IA,是程序员向上发展的道路,系统架构师实际
上是SA+TSA,更着力于综合运用已有的产品和技术,来实现客户期望的需求。
8
1.2 架构设计基本过程
概念化阶段
分析阶段 架构设Байду номын сангаас阶段
并行开发和测试阶段
愿景
需求 架构 可执行系统 交付的系统
9
验收与交互阶段
架构设计基本过程
Garlan & Shaw模型的基本思想是:软件体系结构={构件(component)、连 接件(connector)和约束(constrain)}:
构件可以是一组代码,如程序的模块;也可以是一个独立的程序; 连接件可以是过程调用、管道、远程过程调用(RPC)等,用于表示构件之 间的相互作用; 约束一般为对象连接时的规则,或指明构件连接的形式和条件,例如,上 层构件可要求下层构件的服务,反之不行;两对象不得递规地发送消息;
14
软件架构的种类
逻辑架构: 软件系统中元 件之间的关系, 比如用户界面, 数据库,外部 系统接口,商 业逻辑元件, 等等
软件系统的逻辑架构图
15
软件架构的种类
软件系统的物理架构图 物理架构: 软件元件是怎 样放到硬件上 的
16
软件架构的种类
系统架构:系统的非功能性特征,如可扩展性、可靠性、强壮性、灵活性、 性能等。 系统架构的设计要求架构师具备软件和硬件的功能和性能的过硬知识,是架 构设计工作中最为困难的工作。架构的两要素:元件划分和设计决定。 元件划分 一个软件系统中的元件首先是逻辑元件。这些逻辑元件如何放到硬件上,以 及这些元件如何为整个系统的可扩展性、可靠性、强壮性、灵活性、性能等 做出贡献,是非常重要的信息。 设计决定 进行软件设计需要做出的决定中,必然会包括逻辑结构、物理结构,以及它 们如何影响到系统的所有非功能性特征。这些决定中会有很多是一旦作出, 就很难更改的。
分析阶段 需求分析
领域建模
架构设计阶段
确定关键需求
概念性架构设计
细化架构 验证架构
10
软件需求
需求
系统必须满足的情况或提供的能力. 可以直接来自客户需要, 也可 以来自合同,标准,规范或其他有正规约束力的文档 功能需求 运行期质量属性
软件需求 非功能需求
质量属性 开发期质量属性 约束
11
1.3 软件架构的设计要素
向。盖茨给自己的Title是首席软件架构师,实际上就是EA角色; 基础结构架构师IA (Infrastructure Architect) 的工作是提炼和优化技术方面积累和沉淀
形成的基础性的、公共的、可复用的框架和组件,这些是技术型公司传承下来的最宝
贵的财富; 特定技术架构师TSA (Technology-Specific Architect)主要从事类似安全架构、存储架构 等专项技术的规划和设计工作; 解决方案架构师SA (Solution Architect)的工作则专于解决方案的规划和设计,所谓解决 方案,就是把产品、技术或理论,不断地进行组合,来创造出满足用户需求的选择。
‹#›
目录
软件架构
软件架构定义 架构设计方法与过程 软件架构的设计要点
模式简介 常用模式
模式的定义 模式的分类
典型面向服务的架构SOA
2
从混沌到结构 分布式基础设施 事件多路分离和分派 接口分割 组件分割
1. 软件架构
1.1 架构定义
软件体系结构通常被称为架构,指可以预制和可重构的软件框架结构,
它是一个软件系统从整体到部分的最高层次的划分。一个系统通常是由组件组成的, 而这些组件如何形成、相互之间如何发生作用,则是关于这个系统本身结构的重要信 息。系统包括架构组件、连接器、任务流。架构组件是组成系统的核心“砖瓦”,而 连接器则描述这些 组件之间通讯的路径、通讯的机制、通讯的预期结果,任务流则描 述系统如何使用这些组件和连接器完成某一项需求。
打印机,与连接这些元素的部分。 组织架构—是一些关于商业进程,组织结构,规 则和职责,与组织核心能力的部分。 信息架构—包含组织好的信息结构。 软件架构、硬件架构、组织架构和信息架构是全 部系统架构的子结构。 企业架构与系统架构很相似,包括硬件,软件,
人员等。
7
架构师分类
企业架构师EA (Enterprise Architect) 的职责是决定整个公司的技术路线和技术发展方
它是建造一个系统所作出的最高层次的、以后难以更改的,商业的和技术的决定。这 样的决定必定是有关系统设计成败的最重要决定,必须经过非常慎重的研究和考察。
在决定时,要考虑独特的架构风格和恰当的架构模式。
12
软件架构的目标
可靠性(Reliable)。软件系统对于用户的商业经营和管理来说极为重要,因此软件 系统必须非常可靠。 安全性(Secure)。软件系统所承担的交易的商业价值极高,系统的安全性非 常重要。 可扩展性(Scalable)。软件必须能够在用户的使用率、用户的数目增加很快的情况 下,保持合理的性能,才能适应用户的市场扩展得可能性。 可定制化(Customizable)。同样的一套软件,可以根据客户群的不同和市场需求的 变化进行调整。
代码复制迁移的一致性约束;什么条件下此种连接无效等。
4
架构定义
软件架构不仅仅注重软件本身的结构和行为, 还注
重其他特性:使用, 功能性, 性能, 弹性, 重用, 可理
解性, 经济和技术的限制及权衡。
5
例: ACE的分层架构
6
架构的范围
软件架构—本门课程的主关注点。
硬件架构—包括CPU, 内存,硬盘,周边设备例如
13
软件架构的目标
可延伸性(Extensible)。在新技术出现的时候,一个软件系统应当允许导入新技术, 从而对现有系统进行功能和性能的扩展; 可维护性(Maintainable)。软件系统的维护包括两方面:1。排除现有的错 误,2。将新的软件需求反映到现有系统中去。一个易于维护的系统可以有效 地降低技术支持的花费 客户体验(Customer Experience)。软件系统必须易于使用。 市场时机(Time to Market)。软件用户要面临同业竞争,软件提供商也要面 临同业竞争。以最快的速度争夺市场先机非常重要。
软件架构师基本上是EA+TSA+IA,是程序员向上发展的道路,系统架构师实际
上是SA+TSA,更着力于综合运用已有的产品和技术,来实现客户期望的需求。
8
1.2 架构设计基本过程
概念化阶段
分析阶段 架构设Байду номын сангаас阶段
并行开发和测试阶段
愿景
需求 架构 可执行系统 交付的系统
9
验收与交互阶段
架构设计基本过程
Garlan & Shaw模型的基本思想是:软件体系结构={构件(component)、连 接件(connector)和约束(constrain)}:
构件可以是一组代码,如程序的模块;也可以是一个独立的程序; 连接件可以是过程调用、管道、远程过程调用(RPC)等,用于表示构件之 间的相互作用; 约束一般为对象连接时的规则,或指明构件连接的形式和条件,例如,上 层构件可要求下层构件的服务,反之不行;两对象不得递规地发送消息;
14
软件架构的种类
逻辑架构: 软件系统中元 件之间的关系, 比如用户界面, 数据库,外部 系统接口,商 业逻辑元件, 等等
软件系统的逻辑架构图
15
软件架构的种类
软件系统的物理架构图 物理架构: 软件元件是怎 样放到硬件上 的
16
软件架构的种类
系统架构:系统的非功能性特征,如可扩展性、可靠性、强壮性、灵活性、 性能等。 系统架构的设计要求架构师具备软件和硬件的功能和性能的过硬知识,是架 构设计工作中最为困难的工作。架构的两要素:元件划分和设计决定。 元件划分 一个软件系统中的元件首先是逻辑元件。这些逻辑元件如何放到硬件上,以 及这些元件如何为整个系统的可扩展性、可靠性、强壮性、灵活性、性能等 做出贡献,是非常重要的信息。 设计决定 进行软件设计需要做出的决定中,必然会包括逻辑结构、物理结构,以及它 们如何影响到系统的所有非功能性特征。这些决定中会有很多是一旦作出, 就很难更改的。
分析阶段 需求分析
领域建模
架构设计阶段
确定关键需求
概念性架构设计
细化架构 验证架构
10
软件需求
需求
系统必须满足的情况或提供的能力. 可以直接来自客户需要, 也可 以来自合同,标准,规范或其他有正规约束力的文档 功能需求 运行期质量属性
软件需求 非功能需求
质量属性 开发期质量属性 约束
11
1.3 软件架构的设计要素
向。盖茨给自己的Title是首席软件架构师,实际上就是EA角色; 基础结构架构师IA (Infrastructure Architect) 的工作是提炼和优化技术方面积累和沉淀
形成的基础性的、公共的、可复用的框架和组件,这些是技术型公司传承下来的最宝
贵的财富; 特定技术架构师TSA (Technology-Specific Architect)主要从事类似安全架构、存储架构 等专项技术的规划和设计工作; 解决方案架构师SA (Solution Architect)的工作则专于解决方案的规划和设计,所谓解决 方案,就是把产品、技术或理论,不断地进行组合,来创造出满足用户需求的选择。
‹#›
目录
软件架构
软件架构定义 架构设计方法与过程 软件架构的设计要点
模式简介 常用模式
模式的定义 模式的分类
典型面向服务的架构SOA
2
从混沌到结构 分布式基础设施 事件多路分离和分派 接口分割 组件分割
1. 软件架构
1.1 架构定义
软件体系结构通常被称为架构,指可以预制和可重构的软件框架结构,