欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

软件架构综述

程序员文章站 2022-06-24 22:42:27
软件架构概述软件架构产生的背景软件架构的主要思想和特征主要思想软件架构的特征软件架构的发展阶段软件架构研究和应用现状软件架构理论和方法研究软件架构的应用研究参考书籍备注软件架构产生的背景  软件架构用来刻画软件系统整体抽象结构的一种手段。卡耐基梅隆大学的Mary Shaw和David Garlan的专著中推广软件架构的概念,即组件、连接件和风格的集合。软件架构两个主要的关注点:  1. 系统的总体结构  2. 需求与实现之间的对应软件架构的主要思想和特征主要思想  软件架构的主要思想,将注意...

软件架构产生的背景

  软件架构用来刻画软件系统整体抽象结构的一种手段。卡耐基梅隆大学的Mary Shaw和David Garlan的专著中推广软件架构的概念,即组件、连接件和风格的集合。
软件架构两个主要的关注点:
  1. 系统的总体结构
  2. 需求与实现之间的对应

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

主要思想

  软件架构的主要思想,将注意力集中在系统总体结构的组织上,实现的手段是运用抽象方法来屏蔽错综复杂的模块间连接,是人们的认知提升,并保持在整体结构的组件交互层次,并进一步将交互从计算中分离出来,建立“组件+连接件+配置”的软件系统高层结构组织方式。

软件架构的特征

软件架构的特征:

  1. 注重可复用性
      避免重复劳动,不再采用一切“从零开始”的模式,充分借鉴已有的知识和经验。
      组件就是重用思想的重要体现。
  2. 利益相关者较多
      软件系统需要满足每个利益相关者的需求
  3. 关注点分离
      分而治之的思想,模块化是其中具体设计原则之一
  4. 质量驱动
      软件架构是处理质量属性需求和控制复杂性的主要手段,质量驱动是最为重要的关注点
  5. 提倡概念完整性
      所有的设计决策必须遵守概念完整性,要求用相似的方法做相似的事情
  6. 循环风格

软件架构的发展阶段

软件架构的发展可以分成如下几个阶段:

  1. 基础研究阶段(1968-1994)
    1. 模块设计原则:
    2. 高内聚
    3. 低耦合
    4. 模块大小适度
    5. 模块调用链的深度不可过多
    6. 接口干净,信息隐蔽
    7. 尽可能复用已有的模块
  2. 概念体系和核心技术形成阶段(1991-2000)
    • 组件化开发:业务组件相对独立,具有可组装性和可插拔性。每个组件的运行仅依赖于平台或容器,组件与组件之间不存在直接的耦合关系。同时组件之间并非完全独立,经过组装后可以与其他组件进行业务上的交互。
  3. 理论体系完善和发展阶段(1996年至今)
    1.研究热点
    1. 软件架构分析、设计、测试;
    2. 软件架构发现、演化、重用;
    3. 基于软件架构的开发方法;
    4. 软件架构风格等
  4. 普及应用阶段(1999年至今)

软件架构研究和应用现状

目前软件架构的相关研究主要集中在以下两个方面:

  1. 软件架构理论和方法研究
  2. 软件架构的应用研究

软件架构理论和方法研究

  1. 软件架构描述和构造表示
    架构表示是指按照一定的描述方法,用架构描述语言对架构进行说明的结果,并将架构描述的过程称为架构构造。
    形式化的方法是在严格的数学基础上(逻辑、代数、自动机、图论等)之上的方法,该方法可以分成5类:
    1. 基于模型的方法
    2. 代数方法
    3. 过程代数方法
    4. 基于逻辑的方法
    5. 基于网格的方法
  2. 软件架构分析、设计及测试
    软件架构设计是只生成一个满足用户需求的软件机构的过程。
  3. 软件结构发现、演化、复用
    软件系统在运行时刻的架构变化称为架构动态性,而将架构的静态修改称为架构扩展。
  4. 基于软件架构的开发模型
  5. 软件架构风格与模式
    架构风格(架构模式)是针对特定场景中常见的问题提供的一般性可重用方案,反应了领域中众多系统所共有的结构和语义特性,并指导如何将各个模块和子系统有效的组织成一个完整的系统。
    架构风格主要有5种主要类型:
    1. 数据流风格:批处理序列,管道-过滤器
    2. 调用/返回风格:主程序/子程序,面向对象,层次化结构
    3. 独立组件风格:进程通信,事件系统
    4. 虚拟机风格:解释器,基于规则的系统
    5. 仓库风格:数据库系统,超文本系统,黑板系统
  6. 软件产品线架构
    软件产品线表示一组具有公共的系统需求集的软件系统,都是基于基本的用户需求对标准的产品线架构进行定制,将可重用组件与系统独有的部分集成而得到的。
  7. 软件架构支持工具

软件架构的应用研究

  1. 软件架构风格的应用
    不同的架构风格具有各自的优缺点和应用场景。
  2. 软件架构在开发过程中的应用
    软件架构是软件生命周期种的重要产物,它影响软件开发的各个阶段。
  3. 常见的软件产品的结构
    1. 人人网采用JavaEE技术作为主要的业务解决方案,基本按照通用的JavaEE模型进行设计。
    2. 金蝶EAS(Enterprise Application Suite)系统在架构模型上遵循SOA架构体系。
    3. Lucene作为优秀的全文搜索引擎,其系统架构具有强烈的面向对象特征。
    4. 12306网站或系统采用的是两地三中心混合云架构。
    5. 大数据时代,移动互联、社交网络、数据分析等应用的迅速普及,对数据中心提出革命性需求,存储基础架构已经成为IT核心之一。数据驱动的软件架构(Data-Driven Software Architecture, DDSA)目前在各行各业得到研究开发和推广。

参考书籍

备注

  • 本文仅为对软件架构理论与实践的日常学习总结

本文地址:https://blog.csdn.net/hren_ron/article/details/108864196