云计算百科
云计算领域专业知识百科平台

【架构专栏】第10章 软件架构演化与维护 2/2

架构设计 相关文档,希望互相学习,共同进步

风123456789~-CSDN博客


系统架构设计 相关文章:

【架构专栏】架构考试介绍

【架构专栏】架构知识点


知识总览

共19章内容,主要包括:

       1)1绪论、2计算机系统、3信息系统、4信息安全技术、5软件工程

       2)6数据库设计、7系统架构设计基础知识

       3)8系统质量属性与架构评估、9软件可靠性

           10软件架构演化与维护、11未来信息综合技术

       4)12信息系统架构设计、13层次式架构设计、14云原生架构设计、

             15面向服务架构设计、16嵌入式系统架构设计、17通信系统架构设计、

             18安全架构设计、19大数据架构设计

每天进步一点点,加油!小伙伴们!💪


 本文学习 第10章 软件架构演化与维护,以下为个人笔记,希望有所帮助,共同学习。

        (来源教材,扩展少,偏理论,单项3-5分,案例、论文)

包括:

       软件架构演化和定义的关系(演化的重要性、演化和定义的关系)

       面向对象软件架构演化过程(对象演化、消息演化、复合片段演化、约束演化)

       软件架构演化方式的分类(软件架构演化时期、软件架构静态演化 | 动态演化)

       软件架构演化原则、

       软件架构演化评估方法(演化过程已知的评估、演化过程未知的评估)

       大型网站系统架构演化实例

       软件架构维护(软件架构知识管理、修改管理、版本管理、可维护性度量实践)

第10章 软件架构演化与维护

       为了使软件能适应环境变化和满足用户需求,在软件架构生命周期中,不断迭代的演化和维护至关重要。考试中很多案例分析题、甚至论文题会出自本章内容。

      软件架构的演化和维护:对架构进行修改和完善的过程,目的就是为了使软件能够适应环境的变化而进行的纠错性修改和完善性修改等,是一个不断迭代的过程,直至满足用户需求。

◆本质上讲,软件架构的演化就是软件整体结构的演化,演化过程涵盖软件架构的全生命周期,包括软件架构需求的获取、软件架构建模、软件架构文档、软件架构实现、软件架构维护等阶段。

10.1-10.3 软件架构演化和定义的关系、面向对象软件架构的演化、软件架构演化方式的分类

【架构专栏】第10章 软件架构演化与维护 1/2https://blog.csdn.net/weixin_42081167/article/details/165355771

10.4 软件架构演化原则

软件结构包括 18 种可持续演化原则:

(1)演化成本控制原则:演化成本要控制在预期的范围之内。

(2)进度可控原则:架构演化要在预期的时间内完成。

(3)风险可控原则:架构演化中的经济风险、时间风险、人力风险、技术风险和环境风险在 可控范围内。

(4)主体维持原则:软件演化的平均增量的增长须保持平稳,保证软件系统主体行为稳定。 (5)系统总体结构优化原则:使演化后的软件系统整体结构(布局)更加合理

(6)平滑演化原则:软件的演化速率趋于稳定。 (7)目标一致原则:架构演化的阶段目标和最终目标要一致。

(8)模块独立演化原则:软件中各模块自身的演化最好相互独立。

(9)影响可控原则:如果一个模块发生变更,给其他模块带来的影响在可控范围内。

(10)复杂性可控原则:必须控制架构的复杂性,保障软件的复杂性在可控范围内。

(11)有利于重构原则:使演化后软件架构便于重构。

(12)有利于重用原则:演化最好能维持,甚至提高整体架构的可重用性。

(13)设计原则遵循性原则:架构演化最好不能与架构设计原则冲突。

(14)适应新技术原则:软件要独立于特定的技术手段,可运行于不同平台

(15)环境适应性原则:架构演化后的软件版本比较容易适应新的硬件环境和软件环境。

(16)标准依从性原则:演化不违背相关质量标准(国际标准、国家标准、行业标准等)。

(17)质量向好原则:使所关注的某个质量指标或质量指标的综合效果变更好

(18)适应新需求原则:很容易适应新的需求变更。

习题:

10.5 软件架构演化评估方法

     根据演化过程是否己知可将评估过程分为:演化过程己知的评估、演化过程未知的评估。 

10.5.1 演化过程已知的评估

◆演化过程己知的评估,目的:通过对架构演化过程进行度量,比较架构内部结构上的差异以及 由此导致的外部质量属性上的变化,对该演化过程中相关质量属性进行评估

1.评估流程

      将架构度量应用到演化过程中,通过对演化前后的不同版本的架构分别进行度量,得到度量结果的差值及其变化趋势,并计算架构间质量属性距离,对相关质量属性进行评估。

2.架构演化中间版本度量

    每经过一次原子演化,即可得到一个架构中间演化版本Ai。对每个中间版本架构进行度量,得到架构Ai的质量属性度量值Qi。D(i-1, i)是版本间的质量属性距离。 

3.架构质量属性距离

     1)可维护性距离计算方法

     2)可靠性距离计算方法

     3)非相邻版本架构质量属性距离

4.架构演化评估

   ◆基于度量的架构演化评估方法,其基本思路在于通过对演化前后的软件架构进行度量,比较架构内部结构上的差异以及由此导致的外部质量属性上的变化。具体包括:架构修改影响分析、监控演化过程、分析关键演化过程

10.5.2 演化过程未知的评估

      当演化过程未知时,我们无法像演化过程已知时那样追踪架构在演化过程中的每一步变化,只能根据架构演化前后的度量结果逆向推测出架构发生了哪些改变,并分析这些改变与架构相关质量属性的关联关系

演化过程未知的评估,其架构演化评估过程:

10.6 大型网站系统架构演化实例

主要解决大数据和高并发问题。

第一阶段:单体架构

       应用程序、数据库、文件等所有资源都在一台服务器上

第二阶段:垂直架构

       应用和数据分离,整个网站使用 3 台服务器:应用服务器、文件服务器、数据服务器。

第三阶段:使用缓存改善网站性能

       包括在应用服务器上的本地缓存和在专门的分布式缓存服务器上的远程缓存

第四阶段:使用服务集群改善网站并发处理能力

       通过负载均衡调度服务器,将来自用户浏览器的访问请求分发到应用服务器集群中的任何一台 服务器上,解决高并发、海量数据问题。

第五阶段:数据库读写分离

       应用服务器在写数据时,访问主数据库,主服务器通过主从复制机制将数据更新同步到从服务 器。在应用服务器读数据时,访问从数据库。

第六阶段:使用反向代理和C D N加速网站响应

   1)CDN 部署在网络提供商的机房,用户在请求网站服务时,可在距离最近的网络提供商机 房获取数据。

   2)反向代理部署在网站的中心机房,用户请求到达中心机房后,先访问反向代理服务器。

第七阶段:使用分布式文件系统分布式数据库系统

    进行业务分库,将不同业务的数据部署在不同的物理服务器上。

第八阶段:使用 NoSQL 和 搜索引擎

第九阶段:业务拆分

     将一个网站拆分成许多不同的应用,每个应用独立部署。

第十阶段:分布式服务

      分布式服务。可以将共用的业务提取出来,独立部署。由这些可复用的业务连接数据库,提供共用业务服务,而应用系统只需要管理用户界面,通过分布式服务调用共用业务服务完成具体业务操作。

10.7 软件架构维护

软件架构维护过程包括:软件架构知识管理、软件架构修改管理、软件架构版本管理等。    

10.7.1 软件架构知识管理

    软件架构知识管理 是对架构设计中所隐含的决策来源进行文档化表示,进而在架构维护过程中帮助维护人员对架构的修改进行完善的考虑,并能够为其他软件架构的相关活动提供参考。

1.架构知识的定义

架构知识的定义:架构知识 = 架构设计 + 架构设计决策。即需要说明在进行架构设计时采用此种架构的原因。

2.架构知识管理的含义

      架构知识管理侧重于软件开发和实现过程所涉及的架构静态演化从架构文档等信息来源中捕捉架构知识,进而提供架构的质量属性及其设计依据以进行记录和评价。

3.架构知识管理的需求

架构知识管理的需求:防止关键的设计知识“沉没”在软件架构中

10.7.2 软件架构修改管理

      在软件架构修改管理中,一个主要的做法就是建立一个隔离区域保障该区域中任何修改对其他部分的影响比较小,甚至没有影响。为此,需要明确修改规则、修改类型,以及可能的影响范围和副作用等。

10.7.3 软件架构版本管理

     软件架构版本管理为软件架构演化的版本演化控制、使用和评价等提供了可靠的依据,并为架构演化量化度量莫定了基础。

10.7.4 软件架构可维护性度量实践

架构可维护性的 6 个度量指标:

   圈复杂度(CNN)、        扇入扇出度(FFC)、

   模块间耦合度(CBO)、 模块的响应(RFC)、

   紧内聚度(TCC)、         松内聚度(LCC)。

ok, 今天就到这里吧 🤗


相关系列文章,欢迎点赞、收藏,提供意见!

计算机系统基础知识 1分:概述、计算机硬件、计算机软件   操作系统 3分:进程管理、存储管理、文件管理、设备管理    数据库技术 3分:数据库设计、关系代数、范式、事务并发、数据库安全、新技术 嵌入式技术 3分:嵌入式硬件、嵌入式操作系统、嵌入式软件开发 计算机网络 3分(超纲较多):OSI七层模型、TCP/IP协议族、网络生命周期、IP地址 其他计算机系统基础知识 1分:计算机语言、多媒体、系统工程 系统性能 1分:性能指标、性能设计 信息系统基础知识 3分:信息系统生命周期、开发方法、五大典型系统 信息安全技术基础 5分:安全属性、信息安全技术、网络安全技术、安全协议

软件工程 12分:概述、需求工程、系统设计、运维、测试、基于构件;

面向对象技术 3分:面向对象基础、分析设计、UML关系、图 项目管理 1分:进度管理、配置管理、质量管理、风险管理

系统架构设计 20分:架构概念、生命周期、ABSD、DSSA、架构风格、

                                  架构复用、质量属性、架构评估 软件可靠性 2分:可靠性建模、软件可靠性设计

软件架构的演化和维护1分:架构演化分类、评估、面向对象架构演化 未来信息综合技术 3分:信息物理系统、人工智能、边缘计算、机器人、数字李生、云计算 数学与经济管理 2分:最小生成树、最短路径、网络与最大流量、线性规划、决策论 知识产权和标准化 2分:知识产权属性、保护期限、产权人确定、侵权判定 专业英语 5分:完形填空,大学英语3级难度,自学

架构专栏  知识点

【架构专栏】架构考试介绍

【架构专栏】架构知识点

【架构专栏】第1章 绪论 【架构专栏】第11章 未来信息综合技术
【架构专栏】第2章 计算机基础知识 【架构专栏】第12章 信息系统架构设计理论与实践
【架构专栏】第3章 信息系统基础知识 【架构专栏】第13章 层次式架构设计理论与实践
【架构专栏】第4章 信息安全技术基础知识 【架构专栏】第14章 云原生架构设计理论与实践
【架构专栏】第5章 软件工程基础知识 【架构专栏】第15章 面向服务架构设计理论与实践
【架构专栏】第6章 数据库设计基础知识 【架构专栏】第16章 嵌入式系统架构设计理论与实践
【架构专栏】第7章 系统架构设计基础知识 【架构专栏】第17章 通信系统架构设计理论与实践
【架构专栏】第8章 系统质量属性与架构评估 【架构专栏】第18章 安全架构设计理论与实践
【架构专栏】第9章 软件可靠性基础知识 【架构专栏】第19章 大数据架构设计理论与实践
【架构专栏】第10章 软件架构的演化和维护



希望有所帮助,互相学习、共同进步,欢迎点赞、收藏!

赞(0)
未经允许不得转载:网硕互联帮助中心 » 【架构专栏】第10章 软件架构演化与维护 2/2
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!