软件体系结构软件体系结构笔记

Posted pass night

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件体系结构软件体系结构笔记相关的知识,希望对你有一定的参考价值。

概论

什么是软件架构(Software Architecture)

​ 有关软件整体结构与组件的的抽象描述,用于知道大型软件系统各个方面的设计

软件架构产生的背景

软件架构的主要思想和特征

主要焦点

  1. 系统的总体结构
  2. 需求和实现的对应

主要思想

  1. 运用抽象方法屏蔽错综复杂的模块间连接

特征

  1. 注重可重用性:关注组件级重用,提高软件质量
  2. 利益相关者多:
  3. 关注点分离:将复杂的问题分而治之,降低复杂度
  4. 质量驱动
  5. 概念完整性
  6. 循环风格

软件架构的发展阶段

大致流程

高级语言的出现 面向过程开发 面向对象开发 面向服务开发 云和移动服务 智能化软件开发

提出阶段

概念体系和核心技术形成阶段

  1. 软件组件技术:组件之间状态独立

理论体系丰富发展阶段

  1. 架构的描述与表示
  2. 软件架构分析、设计、测试
  3. 软甲架构发现、演化、重用
  4. 基于软件架构的开发方法

理论完善和普及应用阶段

软件架构研究和应用现状

软件架构理论和方法研究

架构的表示

  1. 各种ADL
  2. 4+1架构模型
  3. UML
  4. IEEE架构描述规范

软件架构的分析、设计、测试

分析
  1. 目的是预测质量属性
  2. 内容可分为:结构分析、功能分析、非功能分析
  3. 常见方法有:基于场景的架构分析 SAAM,架构折中分析方法 ATAM
分析
测试
  1. 着重于仿真系统模型,解决架构层的主要问题
  2. 由于测试的抽象层次不同,架构测试策略可分为:单元、子系统、集成、验收等阶段的测试策略

软件架构发现、演化、复用

发现

​ 从已有的系统提取软件的架构,属于逆向工程

演化

​ 由于系统需求、技术、环境、分布等因素的变化而最终导致软件架构的变动

重用

​ 结构重用属于设计重用,是一种比代码重用更抽象的重用

基于软件架构的开发模型

软件架构的风格与模式

产品线架构

软件架构支持工具

  1. 静态分析工具
  2. 类型检查工具
  3. 架构层次依赖分析工具
  4. 动态动态特性仿真工具
  5. 支持架构性能仿真工具

软件架构的概念

定义

  1. 组成派:关注与软件本身,组件和交互的集合

    1. Dawayne Perry 和 Alexander Wolf
      1. 软件架构=元素+组成+原理
      2. 架构元素:具有一定形式的结构化元素,包括处理元素、数据元素和廉洁元素
      3. 架构组成:由加权的属性和关系构成。属性用来约束架构元素的选择,关系用来约束架构元素的放置
      4. 架构原理:捕获在选择架构风格、架构元素和架构形式的选择动机
    2. Mary Shaw 和 David Garlan
      1. 软件架构是软件设计过程的层次之一,该层次超越计过程中的算法设计和数据结构设计
      2. 软件架构包含:组件、连接件、和约束三大要素
      3. 组件:可以是一组代码,也可以是独立的程序
      4. 连接件:可以是过程调用、管道和消息等,用于表示组件之间的相互关系
      5. 约束:一般为组件连接时的条件
  2. 决策派:关注与软件架构中的实体,一系列重要设计决策的集合

    1. Booch,Rumbaugh and jacobson 的定义

      1. 软件架构是一系列重要决策的集合,这些决策关于:
      2. 软件系统的组织
      3. 组成系统的结构元素和他们之间的接口,以及当这些元素相互协作时所体现的行为
      4. 如何组合这些元素,使他们逐渐合成为一个更大的子系统
      5. 架构风格
      6. 这些元素以及他们的接口、协作和组合
    2. 等等等等

  3. 参考定义框架:组件、连接件、配置、端口、角色五种元素构成

    1. 组件:具有某种功能可重用软件模块单元,表示了系统中主要的计算单元和数据存储

      1. 组件主要有两种:复合组件和原子组件
    2. 连接件:表示了组件之间的交互

      1. 简单的连接件有:管道,过程调用,事件广播
      2. 复杂的连接件有:客户-服务器通信协议,数据库和应用之间的SQL连接等
    3. 配置:表示了组件和连接件的拓扑逻辑约束

    4. 端口:组件作为一个封装的实体,只能通过其接口与外部交互,组件的接口由一组端口组成,每个端口表示了组件和外部环境的交汇点

      1. 通过不同的端口类型,一个组件可以提供多重接口
      2. 端口可以很简单,如过程调用;也可以很复杂,如通信协议
    5. 角色:连接件作为建模软件体系结构的主要实体,同样也有接口,连接件的接口由一组角色组成,连接件的每个角色定义了该连接件表示的交互参与者。

      1. 二元连接件有两个角色

        1. RPC的角色为caller和callee
        2. pipe的角色是reading和writing
        3. 消息传递的角色是sender和receiver
      2. 有的连接件有多于两个角色

        1. 如事件广播有一个事件发布者角色和任意多个事件接受者角色

软件架构的模型

《软件设计与体系结构》期末考试过线笔记

以上是关于软件体系结构软件体系结构笔记的主要内容,如果未能解决你的问题,请参考以下文章

软件体系结构软件体系结构笔记

软件设计学习笔记1_架构

软件架构师如何工作-架构漫谈阅读笔记

汽车软件架构学习笔记:九问软件架构

汽车软件架构学习笔记:九问软件架构

《软件构架实践》阅读笔记一