下面是我在做一个产品中总结的对于一些常用质量属性使用的战术,对于质量属性驱动的软件构架有一定的指导意义。
一、 可用性战术
1)HAC双机热备:主动式冗余,切换时间非常短,数据和计算都热备
2)总控双机热备:被动式冗余,异地数据灾备,主要是数据的热备,发生故障,需要手工切换
3)故障检测:提供ping后台主机、总控和HAC心跳检测、日志空间告警、内存/日志空间检测、异常信息记录至日志文件、升级操作的回滚
4)错误预防:进程监视,如果异常退出则重启;配置备份和恢复;日志备份
二、 可修改性战术
1)功能模块划分独立,封装变化点,降低模块依赖性,接口保持不变,能够适应需求变更,需求变更只需做局部化少量修改;
2)使用ODBC操作数据库;
3)采用配置文件,使得用户可灵活设置想要的功能;
4)防止连锁反应,即修改一个错误导致另一个错误的产生,通过代码复查、单元测试、QA、生产人员多道关卡;
5)(软件热插拔,多态性)
三、 性能战术
1)资源管理战术:
增加可用资源:更快的处理器、多处理器、更大的内存、硬盘,分1U和2U设备;
采用缓冲技术:减少资源竞争;
引入并发机制:大量采用多进程、多线程技术
负载均衡:VDH采用负载均衡
2)资源需求战术:
提高计算效率:使用更高效的算法;找出处理的瓶颈部分,采用异步处理方式
减少计算开销:优化各个进程的内存和CPU占用率
控制取样频率:总控系统收集会话日志文件控制了下载的速度;
3)资源仲裁战术:
采用合适的调度策略:日志文件二次处理采用FIFO队列方式;保证实时进程的优先级; 考虑线程的优先级问题
四、 安全性战术
要求:不可否认性、保密性、完整性、身份一致性、可用性(没DOS)
1)抵抗攻击战术:
身份认证战术:静态口令、动态令牌、证书key认证、LDAP认证、A/D域认证、Radius认证、(生物识别技术)
授权战术:基于角色和权限的方式进行访问控制;访问时间控制;访问时长控制;IP地址黑白名单;
保密性战术:传输过程加密,SSL技术,https技术,(VPN技术);文件存储加密;密码存储加密
完整性战术:传输过程的完整性依赖于SSL的哈希算法;升级包的完整性采用生成MD5校验的方法;文件的变化使用sum程序来检测;
可用性战术:总控和HAC之间的连接为独占式长连接,其他连接一律拒绝,DOS攻击也无效;
限制开放端口:比如常用服务端口,不用的时候都关闭,比如ssh端口22;
2)检测攻击战术:
通过审计日志记录,可以识别一些非法的攻击记录,追踪攻击者,支持不可否认性
3)从攻击中恢复:
使用前面提到的可用性战术,备份、冗余等技术;
采用电子盘技术,程序无法被篡改,重启后即可恢复;
五、 可测试性战术
可测试性目标:允许在完成软件开发的一个增量后,较轻松的对软件进行测试。
测试在系统开发中占很高比例,在架构设计时可测试性往往得不到足够关注。
1)(接口与实现分离,允许实现的替换,以支持各种测试目的;
2)组件、模块或子系统提供可测试的接口;
3)提供内部监视器,以方便测试人员获取各种组件、模块或子系统的状态;)
六、 易用性战术
1)界面风格统一,操作简单。
2)界面与业务逻辑分离。
3)(文档视图架构);
4)(MVC模式);
5)(表现–抽象–控制);
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!