软件体系结构软件体系结构笔记
Posted pass night
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件体系结构软件体系结构笔记相关的知识,希望对你有一定的参考价值。
概论
什么是软件架构(Software Architecture)
有关软件整体结构与组件的的抽象描述,用于知道大型软件系统各个方面的设计
软件架构产生的背景
软件架构的主要思想和特征
主要焦点
- 系统的总体结构
- 需求和实现的对应
主要思想
- 运用抽象方法屏蔽错综复杂的模块间连接
特征
- 注重可重用性:关注组件级重用,提高软件质量
- 利益相关者多:
- 关注点分离:将复杂的问题分而治之,降低复杂度
- 质量驱动
- 概念完整性
- 循环风格
软件架构的发展阶段
大致流程
提出阶段
概念体系和核心技术形成阶段
- 软件组件技术:组件之间状态独立
理论体系丰富发展阶段
- 架构的描述与表示
- 软件架构分析、设计、测试
- 软甲架构发现、演化、重用
- 基于软件架构的开发方法
理论完善和普及应用阶段
软件架构研究和应用现状
软件架构理论和方法研究
架构的表示
- 各种ADL
- 4+1架构模型
- UML
- IEEE架构描述规范
软件架构的分析、设计、测试
分析
- 目的是预测质量属性
- 内容可分为:结构分析、功能分析、非功能分析
- 常见方法有:基于场景的架构分析 SAAM,架构折中分析方法 ATAM
分析
测试
- 着重于仿真系统模型,解决架构层的主要问题
- 由于测试的抽象层次不同,架构测试策略可分为:单元、子系统、集成、验收等阶段的测试策略
软件架构发现、演化、复用
发现
从已有的系统提取软件的架构,属于逆向工程
演化
由于系统需求、技术、环境、分布等因素的变化而最终导致软件架构的变动
重用
结构重用属于设计重用,是一种比代码重用更抽象的重用
基于软件架构的开发模型
软件架构的风格与模式
产品线架构
软件架构支持工具
- 静态分析工具
- 类型检查工具
- 架构层次依赖分析工具
- 动态动态特性仿真工具
- 支持架构性能仿真工具
软件架构的概念
定义
-
组成派:关注与软件本身,组件和交互的集合
- Dawayne Perry 和 Alexander Wolf
- 软件架构=元素+组成+原理
- 架构元素:具有一定形式的结构化元素,包括处理元素、数据元素和廉洁元素
- 架构组成:由加权的属性和关系构成。属性用来约束架构元素的选择,关系用来约束架构元素的放置
- 架构原理:捕获在选择架构风格、架构元素和架构形式的选择动机
- Mary Shaw 和 David Garlan
- 软件架构是软件设计过程的层次之一,该层次超越计过程中的算法设计和数据结构设计
- 软件架构包含:组件、连接件、和约束三大要素
- 组件:可以是一组代码,也可以是独立的程序
- 连接件:可以是过程调用、管道和消息等,用于表示组件之间的相互关系
- 约束:一般为组件连接时的条件
- Dawayne Perry 和 Alexander Wolf
-
决策派:关注与软件架构中的实体,一系列重要设计决策的集合
-
Booch,Rumbaugh and jacobson 的定义
- 软件架构是一系列重要决策的集合,这些决策关于:
- 软件系统的组织
- 组成系统的结构元素和他们之间的接口,以及当这些元素相互协作时所体现的行为
- 如何组合这些元素,使他们逐渐合成为一个更大的子系统
- 架构风格
- 这些元素以及他们的接口、协作和组合
-
等等等等
-
-
参考定义框架:组件、连接件、配置、端口、角色五种元素构成
-
组件:具有某种功能的可重用的软件模块单元,表示了系统中主要的计算单元和数据存储
- 组件主要有两种:复合组件和原子组件
-
连接件:表示了组件之间的交互
- 简单的连接件有:管道,过程调用,事件广播
- 复杂的连接件有:客户-服务器通信协议,数据库和应用之间的SQL连接等
-
配置:表示了组件和连接件的拓扑逻辑和约束
-
端口:组件作为一个封装的实体,只能通过其接口与外部交互,组件的接口由一组端口组成,每个端口表示了组件和外部环境的交汇点
- 通过不同的端口类型,一个组件可以提供多重接口
- 端口可以很简单,如过程调用;也可以很复杂,如通信协议
-
角色:连接件作为建模软件体系结构的主要实体,同样也有接口,连接件的接口由一组角色组成,连接件的每个角色定义了该连接件表示的交互参与者。
-
二元连接件有两个角色
- RPC的角色为caller和callee
- pipe的角色是reading和writing
- 消息传递的角色是sender和receiver
-
有的连接件有多于两个角色
- 如事件广播有一个事件发布者角色和任意多个事件接受者角色
-
-