首页 » 排名链接 » 【2024软考架构师自学笔记】10.软件架构的演化和维护(演化架构软件服务器改变)

【2024软考架构师自学笔记】10.软件架构的演化和维护(演化架构软件服务器改变)

落叶飘零 2024-07-24 19:10:57 0

扫一扫用手机浏览

文章目录 [+]

1.软件架构演化定义

2.软件架构演化的重要性

3.面向对象的软件架构演化

【2024软考架构师自学笔记】10.软件架构的演化和维护(演化架构软件服务器改变) 排名链接
(图片来自网络侵删)

4.演化方式分类

5.软件架构演化时期

6.静态演化动态演化

7.演化原则18种

8.大型网站演化实例

9.软件架构维护

正文

10.1 软件架构演化和定义的关系

1.基本概念

软件架构包括组件 (Components)、 连接件 (Connectors) 和约束 (Constraints) 三大要素,这类软件架构演化主要关注的就是组件、连接件和约束的添加、修改与删除等。

2.演化的重要性

1)是软件系统具备诸多好的特性的重要保障。

2)为人们宏观管理软件的整体复杂性和变化性提供了一条有效途径。

3)可以更好的保证软件演化的一致性和正确性。

10.2 面向对象的软件架构演化过程

1.对象演化

AO 为实现新功能增加新对象。

DO 移除功能。

2.消息演化

AM 需要为对象间增加新交互行为时候。

DM 删除消息。

OM 反转消息发送对象和接收对象,发生在需要改变消息本身时候。

SMO 改变消息时间顺序,发生在需要改变两个交互行为之间的时候。

CMM 改变消息发送或接收对象,发生在需要改变消息本身时候。

3.复合片段演化

AF 在某几条消息上新增复合片段,发生在需要添加新控制流时候。

DF 删除复合片段。

FTC 改变复合片段类型。

FCC 改变复合片段内部执行条件。

4.约束演化

AC 添加新约束。

DC 删除约束。

10.3 软件架构演化方式分类

1.演化方式分类

1)按照软件架构的实现方式和实施粒度分类:

基于过程和函数的演化、面向对象的演化、基于组件的演化和基于架构的演化。

2)按照研究方法将软件架构演化方式分为4类:

对演化的支持、版本和工程的管理工具、架构变换的形式方法、架构演化的成本收益分析。

3)针对软件架构的演化过程是否处于系统运行时期分类:静态演化、动态演化。

2.软件架构演化时期(1)设计时演化:发生在体系结构模型与之相关的代码编译之前。
(2)运行前演化:发生在执行之前、编译之后。
(3)有限制运行时演化:只发生在某些特定约束满足时。
(4)运行时演化:发生在运行时不能满足要求时。

3.静态演化

静态演化的一般过程:软件理解→需求变更分析→演化计划→系统重构→系统测试。

4.动态演化

1)软件动态性的等级:交互动态性、结构动态性、架构动态性。
2)动态演化的内容:属性改名、行为变化、拓扑结构改变、风格变化。

10.4 软件架构演化原则

18种。

10.5 软件架构演化评估

1)演化过程已知的评估。

2)演化过程未知的评估。

10.6 大型网站演化实例

1)第一阶段:单体架构。

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

2)第二阶段:垂直架构。

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

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

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

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

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

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

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

6)第六阶段:使用反向代理和 CDN 加速网站响应。
CDN 和反向代理的基本原理都是缓存。

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

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

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

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

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

9)第九阶段:业务拆分。

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

10)分布式服务。

10.7 软件架构维护

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

1)软件架构知识管理。

(1)架构知识的定义:架构知识=架构设计+架构设计决策。

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

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

2)软件架构修改管理。

主要是建立一个隔离区域,保障该区域中任何修改对其他部分影响最小。

3)软件架构版本管理。

为软件架构演化的版本演化控制、使用和评价提供可靠依据。

4)软件架构可维护性度量实践。

架构可维护性的 6 个度量指标:圈复杂度(CNN)、扇入扇出度(FFC)、模块间耦合度(CBO)、模块的响应(RFC)、紧内聚度(TCC)、松内聚度(LCC)。

标签:

相关文章

女装(女装会员让你钻石营收)

·1、预存一定金额到会员卡中,可用于二次消费抵扣;·2、享受所有衣服的88折优惠;·3、邀请好友购买,可获得成交额的10%奖励;·...

排名链接 2024-12-07 阅读568 评论0