软件体系架构——质量属性
以《淘宝网》为例,描绘质量属性的六个常见属性场景,将上述整理为一篇博客发表。
1、可用性分析
可用性分析所关注的方面包括:如何检测系统故障,系统故障发生的频度,出现故障时会发生什么情况,允许系统有多长时间非正常运行,什么时候可以安全地出现故障,如何防止故障的发生以及发生故障时要求进行哪种通知。
场景:双十一或者春晚抽奖导致淘宝用户猛增
刺激源:淘宝用户
刺激:登录人数过多,导致淘宝无法响应,淘宝瘫痪,网页无法向下进行
制品:淘宝的处理器、通信通道、存储器、进程
环境:用户的正常浏览操作
响应:淘宝页面呈现“网络出现故障,重新刷新”等的提示信息,提示用户下一步操作
响应度量:系统降级模式下继续运行,用户刷新页面或者重新登录之后可继续正常使用。
2、可修改性分析
可修改性是有关变更的成本问题。可以修改什么(制品)和何时进行变更以及由谁进行变更(环境)。
场景:新年来临,淘宝app要修改自己的系统页面,并且添加一些其他的功能
刺激源:系统开发人员
刺激:系统界面要修改为新年主题,增加抽奖红包等功能
制品:淘宝界面即抽奖领取红包界面
环境:淘宝正常登录运行时
响应:针对页面查找构架中需要修改的位置,进行修改添加并且不影响其他功能,对修改进 行测试,部署所做修改
响应度量:系统人员后台更新,测试部署成功自动更新,用户登录即可
3、性能分析
性能与时间有关。事件(中断、消息、用户请求或时间已到)发生时,系统必须做出响应。事件到达和相应有很多特性,但性能基本上与事件发生时,将要耗费系统多长时间做出响应有关。
场景:淘宝用户购买商品
刺激源:淘宝用户
刺激:购买商品
制品:系统生成订单
环境:淘宝正常运行
响应:淘宝生成订单,提示用户进行支付,检测网络环境
响应度量:在短时间内显示商品状态以及支付状态,显示交易的完成度
4、安全性分析
安全性是衡量系统在向合法用户提供服务的同时,阻止非授权使用的能力。试图突破安全防线的行为被称为攻击,它可以是未经授权试图访问数据或服务,或试图修改数据,也可能是试图使系统拒绝向合法用户提供服务。
场景:一个通过身份验证的人试图从外部站点更改系统数据
刺激源:淘宝用户
刺激:试图从外部站点修改系统数据
制品:系统服务、系统中的数据
环境:在线连接有防火墙
响应:对用户身份进行验证,阻止其对数据的访问
响应度量:短时间内审核身份,拒绝其访问,并限制系统可用性
5、可测试性分析
软件可测试性是指通过测试揭示软件缺陷的容易程度。
场景:单元测试人员测试商品浏览查询模块
刺激源:单元测试人员
刺激:测试人员输入商品关键词,进行商品查询
制品:商品搜索模块的代码
环境:在开发时进行
响应:通过商品关键词查询,所检索出的商品信息呈列表显示
响应度量:在较短的时间内完成对商品的检索
6、易用性分析
易用性关注的是对用户来说完成某个期望任务的容易程度和系统所提供的用户支持的种类。
场景:用户取消自己即将生成的交易
刺激源:淘宝用户
刺激:用户放弃自己的商品交易,选择取消交易
制品:淘宝系统
环境:系统正常运行,用户正常购买商品
响应:取消交易成功,淘宝系统删除交易,恢复到以前页面
响应度量:取消在一秒内发生,且不影响后序操作