可修改性阅读笔记

六大常见软件质量属性:可用性、可修改性、性能、易用性、安全性、可测试性

可修改性的基本概念:指系统或软件的能够快速地以较高的性价比对系统进行变更的能力。比如说:对于一个网站,我们要修改它某一板块的UI界面,当我们对界面进行修改时是否会引起对另一个UI模块的影响,是否会引起后台控制,业务逻辑代码的变更,是否会引起整个网站的崩溃,这体现了一个网站的整个架构的是否具备可修改性。生活中也可以看见各种购物网站,在不同节日或活动期间,会修改某一模块或者修改部分商品的信息,但另外一些是不应该发生变化的,这就出现了对该网站是否可修改的重要性。如何设计网站的架构使其能够快速响应需求变化,是网站可扩展架构主要的目的。

设计可修改性的目的:1、用户需求:用户的需求并不是一成不变的,在项目完成之后,随着系统的使用,也有可能会产生原有系统不能满足的需求。但也需要判断需求的重要性,这就需要对该需求对系统成本所产生的影响进行判断,假如它严重影响了系统发展,那就必须进行修改了。2、系统需求:对于系统本身来说,系统的发展与使用有时也会使系统进行迫不得已的修改,因为原有的基础已经不能支撑改系统继续使用和进步,那就需要修改将其适应于系统即将或未来要发展的状态。例如数据库的使用,在一些系统初期,数据量比较小,利用mysql对这些数据的操作就已经足够了,但随着系统逐渐做大做强,用户增加,系统产生的数据量也日渐庞大,小型的数据库已经不能支撑对大量数据的存储与处理,这就需要对数据库体系结构进行不断的优化与更新,否则,就难以继续发展甚至出现一些不可避免的问题。3、其他需求:比如技术需求、系统使用出现bug、新元素融合、引入第三方开发者等。

可修改性的战术分类:1、局部化变更:局部化意味着实现“模块化”思想,一个模块只负责一个部分的内容,通过责任单一来防止职责过多引起整体变更的繁琐,避免出现各种意料之外的问题,实现“高内聚、低耦合”。2、防止连锁反应。连锁反应常出现于类或函数被其他类或函数调用,以至于在修改时影响其他函数的现象。防止连锁反应的操作:信息隐藏、维持现有的接口、限制通信路径、使用仲裁者。3、推迟绑定时间:将有可能出现修改的部分尽量使用配置文件,或者其他后期让非开发人员可调整的方式来实现。(1)将数据库可能发生的修改放在配置文件中,可减少部署时间,甚至没有变更基础的人员也可以实现对数据库配置的修改。(2)框架级可修改性:平台代码、应用代码、后台模块代码分离(3)根据场景、调用后台模块出参入参可配原性修改,服务变更无需通过编码即可修改。(4)分布式服务:将业务和可复用服务分离,通过分布式服务框架调用。

 

posted @ 2023-03-02 19:30  _Pi  阅读(117)  评论(0)    收藏  举报