软件架构的演化和维护

软件架构演化方式

软件架构演化时期

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

软件架构静态演化
静态演化的一般过程

软件理解→需求变更分析→演化计划→系统重构→系统测试

软件架构动态演化
动态演化的类型

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

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

第一阶段:单体架构。
应用程序、数据库、文件等所有资源都在一台服务器上。
第二阶段:垂直架构。
将应用和数据分离,整个网站使用 3 台服务器:应用服务器、文件服务器、数据服务器。
第三阶段:使用缓存改善网站性能。
包括在应用服务器上的本地缓存和在专门的分布式缓存服务器上的远程缓存。
第四阶段:使用服务集群改善网站并发处理能力。
通过负载均衡调度服务器,将来自用户浏览器的访问请求分发到应用服务器集群中的任何一台服务器上,解决高并发、海量数据问题。
第五阶段:数据库读写分离。
应用服务器在写数据时,访问主数据库,主服务器通过主从复制机制将数据更新同步到从服务器。在应用服务器读数据时,访问从数据库。
第六阶段:使用反向代理和 CDN 加速网站响应。CDN 和反向代理的基本原理都是缓存。
(1)CDN 部署在网络提供商的机房,用户在请求网站服务时,可在距离最近的网络提供商机
房获取数据。
(2)反向代理部署在网站的中心机房,用户请求到达中心机房后,先访问反向代理服务器。
第七阶段:使用分布式文件系统和分布式数据库系统。
进行业务分库,将不同业务的数据部署在不同的物理服务器上。
第八阶段:使用 NoSQL 和搜索引擎。
第九阶段:业务拆分。
将一个网站拆分成许多不同的应用,每个应用独立部署。第十阶段:分布式服务。

软件结构演化原则

(1)演化成本控制原则:演化成本要控制在预期的范围之内。
(2)进度可控原则:架构演化要在预期的时间内完成。
(3)风险可控原则:架构演化中的经济风险、时间风险、人力风险、技术风险和环境风险在可控范围内。
(4)主体维持原则:软件演化的平均增量的增长须保持平稳,保证软件系统主体行为稳定。
(5)系统总体结构优化原则:使演化后的软件系统整体结构(布局)更加合理。
(6)平滑演化原则:软件的演化速率趋于稳定。
(7)目标一致原则:架构演化的阶段目标和最终目标要一致。
(8)模块独立演化原则:软件中各模块自身的演化最好相互独立。
(9)影响可控原则:如果一个模块发生变更,给其他模块带来的影响在可控范围内。
(10)复杂性可控原则:必须控制架构的复杂性,保障软件的复杂性在可控范围内。
(11)有利于重构原则:使演化后软件架构便于重构。
(12)有利于重用原则:演化最好能维持,甚至提高整体架构的可重用性。
(13)设计原则遵循性原则:架构演化最好不能与架构设计原则冲突。
(14)适应新技术原则:软件要独立于特定的技术手段,可运行于不同平台。
(15)环境适应性原则:架构演化后的软件版本比较容易适应新的硬件环境和软件环境。
(16)标准依从性原则:演化不违背相关质量标准(国际标准、国家标准、行业标准等)。
(17)质量向好原则:使所关注的某个质量指标或质量指标的综合效果变更好。
(18)适应新需求原则:很容易适应新的需求变更。

软件架构维护

软件架构维护过程

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值