前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >软考系统架构设计师(六):软件架构

软考系统架构设计师(六):软件架构

作者头像
陈大剩博客
发布2023-03-20 11:17:23
1.1K0
发布2023-03-20 11:17:23
举报
文章被收录于专栏:陈大剩博客专栏

架构的本质

  1. 软件架构为软件系统提供了一个结构、行为和属性的高级抽象
  2. 软件架构风格是特定应用领域的惯用模式,架构定义一个词汇表和一组约束

架构的作用

  1. 软件架构是项目干系人进行交流的手段
  2. 软件架构是可传递和可复用的模型,通过研究软件架构可能预测软件的质量。
  3. 软件架构使推理和控制的更改更加简单,有助于循序渐进的原型设计,可以作为培训的基础。

架构发展历程

4+1 视图

软件架构风格

  1. 架构风格反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个构件有效地组织成一个完整的系统。
  2. 架构风格定义了用于描述系统的术语表和一组指导构建系统的规则。

五大架构风格

子风格

数据流风格

批处理、管道-过滤器

调用/返回风格

主程序/子程序、面向对象、层次结构

独立构件风格

进程通信、事件驱动系统(隐式调用)

虚拟机风格

解释器、规则系统

仓库风格

数据库系统、黑板系统、超文本系统

软件架构风格-数据流风格

优点

1、松耦合【高内聚-低耦合】; 2、良好的重用性/可维护性; 3、可扩展性【标准接口适配】; 4、良好的隐蔽性; 5、支持并行。

缺点

1、交互性较差; 2、复杂性较高; 3、性能较差(每个过滤器都需要解析与合成数据);

典型实例

传统编译器、网络报文处理

子风格

软件架构风格–调用/返回风格

分层架构风格(子风格)
子风格

软件架构风格-独立构件风格

缺点
  1. 松耦合。
  2. 良好的重用性/可修改性/可扩展性。
缺点
  1. 构件放弃了对系统计算的控制。一个构件触发一个事件时,不能确定其他构件是否会响应它。而且即使它知道事件注册了哪些构件的过程,它也不能保证这些过程被调用的顺序。
  2. 数据交换的问题。
  3. 既然过程的语义必须依赖于被触发事件的上下文约束,关于正确性的推理就存在问题。
特点

系统由若干子系统构成且成为一个整体;系统有统一的目标;子系统有主从之分;每一子系统有自己的事件收集和处理机制

软件架构风格–虚拟机风格

子风格

软件架构风格-仓库风格

子风格
黑板系统

软件架构风格–闭环控制架构(过程控制)

软件架构风格-C2风格

软件架构风格-层次架构风格

构件组成一个层次结构,连接件通过决定层间如何交互的协议来定义。每层为上一层提供服务,使用下一层的服务,只能见到与自已邻接的层。通过层次结构,可以将大的问题分解为若干个渐进的小问题逐步解决,可以隐藏问题的复杂度。修改某一层,最多影响其相邻的两层(通常只能影响上层)。

层次结构优点:

  1. 支持基于可增加抽象层的设计,允许将一个复杂问题分解成一个增量步骤序列的实现。
  2. 不同的层次处于不同的抽象级别,越靠近底层,抽象级别越高;越靠近顶层,抽象级别越低。
  3. 由于每一层最多只影响两层,同时只要给相邻层提供相同的接口,允许每层用不同的方法实现,同样为软件复用提供了强大的支持。

缺点:

  1. 并不是每个系统都可以很容易的划分为分层的模式。
  2. 很难找到一个合适的、正确的层次抽象方法。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-03-19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 架构的本质
  • 架构的作用
  • 架构发展历程
  • 软件架构风格
    • 软件架构风格-数据流风格
      • 优点
      • 缺点
      • 典型实例
      • 子风格
    • 软件架构风格–调用/返回风格
      • 分层架构风格(子风格)
      • 子风格
    • 软件架构风格-独立构件风格
      • 缺点
      • 缺点
      • 特点
    • 软件架构风格–虚拟机风格
      • 子风格
    • 软件架构风格-仓库风格
      • 子风格
    • 软件架构风格–闭环控制架构(过程控制)
      • 软件架构风格-C2风格
      • 软件架构风格-层次架构风格
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档