软件体系结构概论
软件体系结构产生背景
软件重用的定义
在开发新的系统软件时对已有软件的重新使用,该软件可以是已存在的软件,也可以是专门设计的可重用构件。
软件 重用类型
依据不同的分类:
- 依据重用的对象 产品重用 过程重用
- 依据重用的方式 黑盒重用 白盒重用
- 依据重用方法 组合式重用 生成式重用
- 依据应用的领域范围 横向重用 纵向重用
软件成分重用的方式
- 源代码的重用
- 目标代码级重用 使用函数库的方式体现
- 设计和分析结果重用
- 类的重用
- 构件重用
主流核心模型
构件的定义
将大而复杂的应用软件分解为一系列可先行实现,易于开发,理解,重用和调整的软件单元。只有当构件达到一定规模,形成构件库时,才能有效支持构件在产品线上的重用。
基于构件的开发思想
将用户需求分解为一系列子功能构件,在开发的过程中不必重新设计这些子模块,只需从现有的构件库中寻找合适的构件来组装应用系统。
软件体系结构建模
ADL(体系结构描述语言)
用于把体系结构文档化的工具集合。
广泛使用的ADL
- ACME
- Rapide
- Unicon
- Wright
- Darwin
- Aesop
- SADL
- MetaH
- C2
描述体系结构的两种方法
ACME的基本特征
- 提供了基本的元素描述体系结构,应提供拓展
- 提供灵活的注解机制来描述系统的非结构性信息
- 提供了可对软件体系结构风格重用的模板机制
- 提供开放的语义框架,对体系结构描述进行形式化推理
UML ADL的关系
- ADL是研究软件体系结构规范及模型的形式化工具,但应用领域狭窄
- UML是建模语言,用来对软件进行描述的文档
4+1视图模型
记住图P36
基于体系结构的软件开发过程
图P57
软件体系结构风格
可划分为五大类
- 数据流风格:批处理序列,管道过滤器
- 仓库风格:数据库系统 超文本系统 黑板系统(知识源 黑板 控制组件)
- 独立构件风格:进程通信 事件系统
- 调用/返回风格:主程序/子程序 面向对象 层次结构
- 虚拟机风格:解释器 基于规则的系统
特定领域软件体系结构
DSSA
是在特定应用领域中为一组应用提供组织结构参考的标准软件体系体系
特征
- 它是对整个领域适度的抽象
- 具有严格定义的问题域和解决方案域
- 具有该领域固有的,典型的开发过程中可重用的元素
- 具有普遍性,既可用于领域中某个特定应用的开发
DSSA包含的两个过程
领域工程
为一组相似或相近的应用建立基本能力与必备基础的过程,以形成领域模型
人员划分及其任务
- 领域专家 提供知识
- 领域分析人员 知识获取
- 领域设计人员 建立领域模型
- 领域实现人员 提起使用构件
应用工程
应用过程是对领域模型的实例化的过程
- 以领域工程的成果为基础,针对特定的需求产生特定的设计和实现,进行应用工程的开发。
- 领域工程处于较高的级别上
- 领域工程为应用工程提供了支持
- 在很多方面都可以进行类比
领域分析的三个阶段及其目标
领域分析
主要目标是产生领域模型,活动包括领域定义和建立领域模型
领域设计
开发出相应的设计模型
领域实现
组织开发可重用因素
web service与SOA
定义
是一个为了实现跨网络操作而设计的软件系统,提供了相应的操作接口,其他应用可以使用SOAP消息,以预先指定的方式与web services进行交互。
目标
消除语言差异,平台差异,协议差异和数据结构差异,成为不同构建模型与异构系统之间的集成技术。
优点
- 良好的封装性,开放性,维护性和伸缩性
- 高度的集成性,跨平台性和语言独立性
- 自描述和发现性以及协议通用性
- 协约的规范性
- 松散的耦合性
体系结构模型
三种角色 三个操作
服务提供者 发布WSDL UDDI到
服务注册中心 查找WSDL UDDI给
服务请求者 和服务提供者双向绑定SOAP(简单对象访问协议)
工作机制
主要采用的技术
- 可拓展标记语言XML
- 简单对象访问协议SOAP
- web service描述语言 WSDL
- 统一描述,查找和集成协议UDDI
- web services流程语言WSFL
- 业务流程执行语言BPEL
SOA定义
SOA优缺点
优点
- 具有良好的平台无关性,可适用性和可拓展性
- 技术与业务对齐,具有更好的集成效果,更好的定价和销售模式
- 减少系统耦合,提高系统的复用粒度,降低开发成本
- 使企业的信息化建设真正以业务为核心,业务人员根据需求编排服务,而不必考虑技术细节
缺点
- 降低了系统的性能
- 服务的划分和编排困难
- 如果选择的接口标准有问题,会带来系统的额外开销,并因此而最终导致整个系统不稳定性的增加
- 对IT硬件资源并没有重用
- 主流实现方式接口很多,从而松散,脆弱
- 主流实现方式只局限于不带界面的服务共享
web servce 与SOA的关系
软件体系结构评估
评估的定义
对系统的某些值得关心的属性,如性能,可靠性,可修改性等进行评价和判断
评估的目的
识别体系结构设计中潜在的风险
评估技术的三种方式及其方法
P249
SAAM
评估中场景的描述
基于场景的体系结构:SAAM 和ATAM的不同之处
SAAM的评估过程
ATAM的评估过程
简单质量效用树的特点
云计算 公共云 私有云 混合云
云计算的体系结构和核心技术
软件体系结构期末笔记
原文:https://www.cnblogs.com/senup/p/12115331.html