《系统架构设计师教程(第2版)》第10章-软件架构的演化和维护-01-软件架构演化概述

文章目录

  • 1. 演化的重要性
  • 2. 架构演化示例

教材中,本节名为:“软件架构演化和定义的关系”

1. 演化的重要性

  • 演化目的:维持软件架构自身的有用性
  • 为什么说,软件架构是演化来的,而不是设计来的?
    软件架构的演化就是软件整体结构的演化,演化过程涵盖软件架构的全生命周期,包括软件架构需求的获取、软件架构建模、软件架构文档、软件架构实现以及软件架构维护等阶段。
  • 架构演化的重要性

    1. 软件架构演化保障软件系统向人们的预期方向发展

    软件架构作为软件系统的骨架支撑着整个软件系统,是软件系统具备良好特性的重要保障,

    1. 软件演化从软件架构演化出发更加合理
      • 更好地保证软件演化的一致性和正确性
      • 明显降低软件演化的成本
      • 软件架构演化使得软件系统演化更加便捷

2. 架构演化示例

  • 注意:软件架构演化要根据具体软件架构的定义来确定

  • 示例,软件架构定义是 SA={components,connectors,constraints}

  • 分析

    • 可知,软件架构包括:组件 (Components)、 连接件 (Connectors) 和约束 (Constraints) 三大要素
    • 即软件架构需要考虑:组件、连接件、约束的添加、修改、删除
  • 组件的演化

    • 什么是组件?
      • 组件是软件架构的基本要素和结构单元,表示系统中主要的计算元素、数据存储以及一些重要模块
    • 什么会引起组件演化?
      • 如:消除软件架构存在的缺陷、增加新的功能、适应新的环境等
    • 组件的演化的体现是什么?
      • 在组件中模块的增加、删除或修改
    • 产生波及效应:
      • 增加模块会导致增加新的交互消息
      • 删除模块会导致删除已有交互消息
      • 改变模块会导致改变已有交互消息
  • 连接件的演化

    • 什么是连接件?连接件是组件之间的交互关系,大多数情况下组件的演化牵涉到连接件的演化
    • 什么会引起连接件演化?
      • 模块的改变
      • 由于系统内部结构调整导致的人与系统交互流程的改变
    • 连接件的演化体现是什么?
      • 组件交互消息的增加、删除或改变
  • 约束的演化

  • 什么是约束?

    • 约束是组件和连接件之间的拓扑关系和配置,它为组件和连接件提供额外数据支撑,可以是架构的约束数据,也可以是架构的参数
    • 约束的演化体现?
      • 知识库中仿真数据的增加、删除或改变。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/573098.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Shell】循环结构——for和while循环实例

Shell可以重复地执行特定的指令,直到特定的条件被满足为止。这重复执行的一组指令就叫做循环 特点: 首先,循环条件中使用的变量必须是已初始化的,然后在循环中开始执行每次在循环开始时进行一次测试重复地执行一个代码块 循环实例…

SD-WAN怎样提高企业网络体验

随着数字化转型的加速,传统基于MPLS的专用网络因其高度的结构化和僵化性,已无法满足现代企业对于灵活性和成本效益的日益增长的需求。相比之下,SD-WAN作为一种创新的网络架构,正以其卓越的性能和灵活的管理方式,成为企…

服务于金融新核心系统 星辰天合与中电金信完成产品兼容认证

近日,北京星辰天合科技股份有限公司(简称:XSKY星辰天合)与中电金信软件有限公司(简称:中电金信)完成产品兼容性认证,星辰天合的企业级分布式统一数据平台 XEDP 符合金融级数字底座&q…

ECG-Emotion Recognition(情绪识别)-- 数据集介绍WESADDREAMER

1、WESAD数据集 下载链接:WESAD: Multimodal Dataset for Wearable Stress and Affect Detection | Ubiquitous Computing (1)基本介绍 WESAD是一个用于可穿戴压力和影响检测的新的公开数据集。该多模式数据集以实验室研究期间15名受试者的生…

学习JFinal

1.五个配置类 configConstants(配置): configRoute(路由): 2.Controller层(控制器) 访问流程: Action: getPara: 参数说明:第一个参…

13.Blender 界面介绍(下) 雕刻、纹理绘制及属性

界面介绍 1. 布局 物体的移动旋转和缩放等操作 2. 建模 里面就是有一些建模常用的功能 里面的功能对于做MMD来说不是必备的操作 3. 雕刻 使用里面的工具可以对物体本身进行修改 4. UV编辑 如果想要编辑UV贴图 将编辑模式改为纹理绘制 再点击右边的工具 如果进行编…

MySQL-----多表查询(一)

目录 一.多表关系: 1.1 一对多(多对一): 1.2 多对多: 1.3 一对一: 二.多表查询概述: 三.连接查询: 3.1内连接: 3.2外连接: 3.3自连接查询: 3.4联合查询: 一.多表关系&…

告别单一密码,多因素身份认证带你进入安全新纪元!

文章目录 前言一、你知道什么?二、你拥有什么1.智能卡2.令牌 三、你是什么四、其他因素身份认证 前言 当我们探讨多因子/多因素身份认证时,我们可能会好奇这里的“因素”具体指的是什么?显然,用户名和密码是一种因素,…

iclientOpenlayer用uniapp开发移动端GIS应用设计及实现

GIS移动端应用是将地理信息系统(GIS)技术应用于移动设备(如智能手机、平板电脑)上,使用户能在户外或移动场景下访问、收集、分析和展示地理信息。以下是GIS移动端应用的一些关键特性和应用场景: 关键特性&…

淘宝新店没有流量和访客怎么办

淘宝新店没有流量和访客时,可以采取以下措施来提升店铺的流量和吸引更多的访客: 3an推客是给商家提供的营销工具,3an推客CPS推广模式由商家自主设置佣金比例,以及设置商品优惠券,激励推广者去帮助商家推广商品链接&…

c++初阶——类和对象(中)

大家好,我是小锋,我们今天继续来学习类和对象。 类的6个默认成员函数 我们想一想如果一个类什么都没有那它就是一个空类,但是空类真的什么都没有吗? 其实并不是,任何类在什么都不写时,编译器会自动生成以…

C++ | Leetcode C++题解之第43题字符串相乘

题目&#xff1a; 题解&#xff1a; class Solution { public:string multiply(string num1, string num2) {if (num1 "0" || num2 "0") {return "0";}int m num1.size(), n num2.size();auto ansArr vector<int>(m n);for (int i …

比亚迪海洋网再添实力爆款,海豹06DM-i、OCEAN-M、海狮07EV登陆北京车展

4月25日&#xff0c;比亚迪海洋网携海豹06DM-i、OCEAN-M、海狮07EV一齐亮相北京车展&#xff0c;引发关注热潮。其中&#xff0c;海洋网全新中型轿车海豹06DM-i价格区间12万-15万元&#xff0c;将于今年二季度上市&#xff1b;行业首款两厢后驱纯电钢炮OCEAN-M价格区间15万-20万…

重发布的原理及其应用

重发布的作用&#xff1a; 在一个网络中&#xff0c;若运行多种路由协议或者相同协议的不同进程&#xff1b;因为协议之间不能直接沟通计算&#xff0c;进程之间也是独立进行转发和运算的&#xff0c;所以&#xff0c;需要使用重发布来实现路由的共享。 条件 &#xff1a; 1&am…

RH850F1KM 搭建MCAL配置环境

1 搭建环境所需的安装包 安装以下软件安装包 1&#xff09;MCAL下载&#xff1a;AUTOSAR RH850/F1KM MCAL v42.11.00 Software 2&#xff09;Davinci工具 SIP包&#xff1a;DaVinci Configurator Pro 3&#xff09;下载网址&#xff1a;https://www.renesas.cn/cn/zh/product…

美团面试题-Nacos配置中心动态刷新原理

①&#xff1a;pull模式&#xff1a;主动拉去配置&#xff0c;通过固定的时间间隔。缺点&#xff1a;频繁请求&#xff0c;时效性不高&#xff0c;时间间隔不好设置。 ②&#xff1a;push模式&#xff1a;服务端检测到变化&#xff0c;主动将新配置推送给客户端&#xff0c;时效…

python的列表生成式

什么是列表生成式&#xff1f; 列表生成式&#xff0c;顾名思义&#xff0c;是生成列表的一个简单又直接的方法。它使用了一种紧凑的语法来构造列表&#xff0c;能够以一种更清晰、更简洁的方式来表达循环和过滤逻辑。 基础示例让我们先从一些简单的例子开始&#xff1a; 「生…

echarts 基础入门

前言&#xff1a;本文档主要讲解 echarts 在 vue3 中的用法&#xff0c;及其 echarts 的一些配置参数含义及用法。示例参考 echarts 示例 一&#xff1a;快速开始 1. 安装 echarts npm install echarts # or pnpm add echarts # or yarn add echarts 2. 使用 echarts <…

通过商品id采集京东商品详情数据(含价格、优惠券、详情、主图等字段)

item_get_app-获得JD商品详情原数据 公共参数 名称类型必须描述keyString是调用key&#xff08;注册账号获取测试key&#xff09;secretString是调用密钥api_nameString是API接口名称&#xff08;包括在请求地址中&#xff09;[item_search,item_get,item_search_shop等]cach…

【八股】Spring篇

why Spring? 1.使用它的IOC功能&#xff0c;在解耦上达到了配置级别。 2.使用它对数据库访问事务相关的封装。 3.各种其他组件与Spring的融合&#xff0c;在Spring中更加方便快捷的继承其他一些组件。 IoC和DI &#x1f449;IOC是Inversion of Control的缩写&#xff0c;“…
最新文章