软件架构实践

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
.
1.2 软件架构概述
.
1.2.1 软件架构的定义
什么是软件架构,网上有60多个定义 多数人认可的定义:
软件系统的一个或多个结构,包括软件 组件、这些组件的外部可见特性,以及 这些组件之间的相互关系。
软件架构包含了 组件 组件的外部可见特性 组件之间的相互关系
.
1.2.1 软件架构定义
1.2.1 软件架构的定义
进一步理解软件架构定义 架构是一个或多个系统的抽象 是由抽象的组件来表示的 组件具有外部的可见特性 组件相互之间是有联系的
系统抽象屏蔽了组件内部特有的细节 系统抽象:
组件与联系 用视图的方式表示
.
1.2.1 软件架构的定义
常见的软件架构: 由结构和功能各异、相互作用组件的 集合,按照层次构成。
软件架构包含了 系统的基础构成单元(组件) 它们之间的作用关系(连接/连接件) 在构成系统时,它们的集成方法以及 对集成约束的描述。
• 《操作系统原理》课程其实最主要的意义和价值 就是介绍一个实际的软件系统构架的案例
.
1.2.2 软件架构的作用
(2)除了描述系统的构成和结构关系外, 软件构架还表达了系统关键需求与系统构 成之间的对应关系,这为系统的设计,提 供了分析和评价的依据
• 因为
– 软件构架比需求更进一步要面对或满足系统 非功能性的内容,如:容量、数据吞吐量、 一致性、兼容性、安全性、可靠性
.
1.2.3 软件架构的表示方法
最简单的架构视图:物理视图
(计算机系统构架) .
传感器监控的功能视图
规范显示 信息
产生显示 信息
产生报警 信号
传感器监控
选择空线 拨号
等待线路空 闲
传感器输入控制
报警器条件控制
报警器输出控制
图例
产生显示信息
功能组件
依赖关系
显示信息规范化 产生报警信号
选择空线拨号
产生显示信息 .
等待线路空闲
基于WEB的应用系统架构视图
UML架构视图
.
抽象工厂的类代码视图
• AbstractFactory:声明创建2个抽象产品对象的接口 • ConcreatFactory1/2:实现创建具体产品对象的操作 • AbstractProductA/B:为各产品对象声明一个接口 • ProductA1/A2/B1/B2:定义一个将被相应的具体工厂创建的
这是现代软件工程更关注的地方。
.
1.2.2 软件架构的作用
.
1.2.2 软件架构的作用
(1)软件架构定义了软件计算的组件、局部 和总体的构成关系、以及这些组件之间的相 互作用
• 计算组件:
– 客户、服务器、数据库、中间件、程序包、过程、子程 序、进程等——切碎、再切碎(粒度)
• 相互作用关系:
– 过程调用、共享变量访问、信号灯、进程通信、消息传 递、访问/网络协议等
软件架构实践
SOFTWARE ARCHITECTURE IN PRACTICE
软件系统设计与体系结构
.
软件架构实践
第1章 认识软件架构
.
第1章 认识软件架构
• 1.1 软件架构与软件工程 • 1.2 软件架构概述 • 1.3 感受身边的架构存在 • 1.4 两个简单程序的架构实现与分析 • 1.5 本章小结
.
什么是软件架构?
架构={ 组件、连接件、约束 } 组 件:一组程序代码、进程、接口 连接件:调用、管道、消息 约 束:组件之间的连接关系
.
由于架构是关于软件系统Hale Waihona Puke Baidu织的配置定义 因此
它定义了: 组成系统的结构(结构元素/组件) 结构或组件间特定的构成和协作关系 系统的集成方法和约束
所以,软件架构不但决定了系统的物理构成 也支配了开发的组织行为 需求分配、范围和任务定义、进度计划、测 试方案、集成方法、配置项与基线管理……
产品对象、实现AbstractProduct接口 • Client:仅使用声明的接口 .
MVC构架的并发视图
.
一个由Struts实现的MVC构架
.
相关文档
最新文档