软件非功能属性及策略

大类:可修改性、可用性、性能、安全性、可测试性、易用性

 

可修改性策略:

一、 局部化修改

1、  高内聚、低耦合

2、  为变更预留接口(针对接口编程)

3、  通过方法和函数(传入参数)

4、  限制修改范围

 

二、 防止连锁反应

1、  信息隐藏:将变更隔离在一个模块内,防止变更扩散到其他模块

2、  维持现有接口:添加接口、添加适配器

3、  限制通信路径:减少数据产生/使用导致连锁反应得依赖。

4、  仲裁者:类似门面模式

 

三、 推迟邦定时间

1、  运行时注册:如发布/订阅注册,但要管理注册的额外开销

2、  配置文件:启动时设置参数

3、  多态:允许方法调用后期邦定

4、  组件更换:载入时间邦定

 

可用性策略:

一、 错误检测

1、  命令/相应

2、  心跳

3、  异常

 

二、 错误恢复

1、  表决

2、  主动冗余

3、  被动冗余

4、  备件

5、  Shadow操作

6、  状态再同步

7、  检查点/回滚

 

三、 错误预防

1、  从服务中删除:重启

2、  事务

3、  进程监视器

 

性能策略

一、 资源需求

1、  提高计算效率

2、  减少计算开销

3、  减少管理事件率

4、  减少控制采样率

5、  限制执行时间

6、  限制队列大小

 

二、 资源管理

1、  引入并发

2、  维持数据或计算的多个副本

3、  增加可用资源

 

三、 资源仲裁

1、  先进先出

2、  固定优先级调度

3、  动态优先级调度

4、  静态调度

 

安全策略

一、 抵抗攻击

1、  对用户身份验证

2、  对用户进行授权

3、  维护数据机密性

4、  维护数据完整性(哈希校验)

5、  限制信息暴露

6、  限制访问(网络)

 

二、 检测攻击

三、 从攻击中恢复

 

可测试性策略

一、 输入、输出

1、  记录/回放

2、  将接口和实现分离

3、  特化访问路径/接口

 

二、 内部监视

1、  内置监视器

 

易用性策略

一、 运行时战术(不理解)

二、 设计时战术(不理解)

 

 

 


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值