软件质量属性---可修改性

软件质量的属性---可修改性 

可修改性软件质量属性中的可修改性是指容易修改的能力,包括修正,改进和用户需求的变化。包括易分析,易修改,易测试性,稳定性。

什么可以改变?

系统任何部分:功能、平台、环境、质量、容量

可修改性战术:其目标是控制实现、测试和部署变更的时间和成本。为根据相关战术在时间和成本允许的范围内完成系统的相关变更。

1.局部化变更:战术旨在把变更可选择的范围限制在可控范围之内,在设计程序时功能模块分配职责,把预期变更限制在可控范围内。防止选择了不可控的变更,导致软件质量下降。

  1. 语义一致性:语义指的是模块内各责任间的关系

确保各责任能够协调一致的工作,且一个模块不能够过多的依赖其他功能模块

根据是否支持预期的变更来判断一致性程度

  1. 设想可能的变更:尽可能的多考虑未来预期的变更,但很难能够预期所有重要的变更
  2. 泛化模块:设计程序时要使模块能够根据输入计算更广泛的功能

可把输入看作是该模块定义解释的语言

D.限制选项:在程序使用时可能可选范围很大,会影响很多模块,这时应该限制用户可选的功能模块范围。

2.防止连锁反应:防止连锁反应,旨在减少各模块之间的调用、接口访问,尽量减少各模块间的依赖,防止当修改其中一个模块时引起其他模块的变更,导致连锁反应.

防止连锁反应:一个模块对另一个模块的依赖性:

一. A产生并由B使用的数据,必须要与B所假定的数据类型一致.

二. A产生并由B使用的数据的语义,必须与B假定的一致

三. 要使B正确运行,必须要以一个固定的顺序接收A产生的数据

四. A有多个接口,要使B正确运行,该接口必须与B的假定一致

五. 要是B正确运行,A运行时的位置必须与B的假定一致

六. 要使B正确运行,A提供的服务/数据的质量必须与B的假定保持一致

七. 要使B正确运行,A必须存在

八. 要是B正确运行,A的资源行为必须与B的假定一致

A.隐藏信息:把某个实体的责任分解为更小的部分,并选择使用哪些信息成为共有/私有的,其可以使变更被隔离在某一个模块内部。

B.维持现有的接口:创建抽象接口,与具体接口隔离,实现接口隔离的设计模式原则。

添加接口:提供最新的服务或者是数据,添加适配器即给A添加适配器,把A包装起来,提供原始A的信息。

C.限制通信路径:限制与给定模块A共享数据的模块,减少两类模块的数量

  1. 使用仲裁者:对非语义型的依赖,可以在A\B间插入一个仲裁者,管理与该以来相关的活动。

3.推迟绑定时间:

运行时注册:即插即用

配置文件:再开机启动时,根据其设置参数

多态:允许方法调用的后期绑定

组件转换::允许载入时绑定

遵守已定义的协议:允许各个独立进程在运行时绑定

为了实现软件质量中的可修改性,我们应该采取像软件设计模式的核心思想“高内聚,低耦合”,用单一职责原则来设计模块功能,实现局部化变更,当变更发生时,只有局部化模块发生变化,而大局模块不会受到局部的变化而产生变化.

用接口隔离原则来实现定义抽象类,为未来的变更提供可实现的接口,通过接口来规范其发生变更的范围.

根据迪米特法则来实现与直接朋友进行交流,减少不必要的调用,减少模块间的依赖性.

参考连接:https://max.book118.com/html/2019/0223/7110163160002010.shtm

猜你喜欢

转载自www.cnblogs.com/zjl-0217/p/12369231.html
今日推荐