软件质量的好坏,不仅要看系统是否满足客户的功能性要求,也要看其是否满足客户的非功能性要求,系统非功能性用质量属性来描述。在软件体系结构设计中,相关的系统质量属性有可用性、可修改性、性能、安全性、可测试性和易用性,所以基于yii的医院信息管理系统应该满足可用性、可修改性、性能、安全性、可测试性和易用性。下面就以这六个质量属性通过场景来分析系统的质量属性。
1.可用性分析:
可用性是指系统能够正常运行的时间比例。它常用两次故障之间的时间长度或出现故障时系统能够回复正常的速度来表示。
场景部分 |
值 |
刺激源 |
系统外部 |
刺激 |
用户访问不存在的页面 |
制品 |
医院信息系统 |
环境 |
正常 |
响应 |
系统通过检测路由,提示用户页面不存在 |
响应质量 |
响应时间为0.8s |
实现方法:为了保证系统的可用性,提高系统的处理速度,搭建Centos服务器集群,其中Apache做web服务器,nginx做反向代理和负载均衡,同时设立缓存服务器,提高系统的处理速度和用户的访问速度。
2.可修改性分析:
可修改性是指能够快速地以较高的性价比对系统进行变更的能力。通常以某些具体的变更为基准。通过考察这些变更的代价来衡量可修改性。主要包括可维护性、可扩展性、结构重组和可移植性。
场景部分 |
值 |
刺激源 |
开发人员 |
刺激 |
修改系统的用户界面 |
制品 |
系统的用户界面 |
环境 |
构建时 |
响应 |
查找修改的位置,进行修改不会影响其业务逻辑和其他功能模块 |
响应质量 |
不影响对其他功能模块以及相应的业务逻辑的界面 |
实现方法:为实现修改系统的用户界面而不对其他功能模块的界面产生影响,系统采用mvc设计思想,model负责业务逻辑和采集数据,view负责用户界面渲染,controller接收用户请求调度model和view。这样,修改用户界面,只需到view层修改,而对业务逻辑和数据显示不造成任何影响。
3.性能分析:
性能是指系统的响应能力,即要经过多长时间才能对某个事件作出响应。或者在某段时间内系统所能处理的事件个数。经常用单位时间内所处理事务的数量或系统完成某个事务处理所需要的时间来对性能进行定量的表示。
场景部分 |
值 |
刺激源 |
用户 |
刺激 |
科室管理 |
制品 |
医院信息管理系统 |
环境 |
正常模式 |
响应 |
显示科室列表 |
响应质量 |
等待时间为0.5s |
实现手段:为实现系统的高性能,采用框架自身提供的与数据库进行交互的类,使用QueryBuilder建立SQL语句来与数据库进行交互,同时搭建MySQL数据库集群,提高访问数据库的速度,这样能大大加快系统的处理速度,提高系统性能。
4.安全性分析;
安全性是指系统在向合法用户提供服务的同时能够阻止非授权用户企图使用的或拒绝服务的能力。安全性是根据系统可能受到的安全威胁的类型来分类的。安全性又可划分为机密性、完整性、不可否认性及可控性等特性。机密性保证信息不泄露给未授权的用户、实体或过程;完整性保证信息的完整和准确,防止信息被非法修改;可控性保证对信息的传播及内容具有控制的能力,防止为非法者所用。
场景部分 |
值 |
刺激源 |
非法用户 |
刺激 |
访问用户首页 |
制品 |
医院信息管理系统 |
环境 |
正常模式 |
响应 |
系统检测到非法用户,直接重定向到登录界面 |
响应质量 |
在0.2s之内进行重定向 |
实现方法:为防止非法用户直接访问系统首页,使用框架本身提供的授权验证,在非法用户访问系统首页时,对用户身份进行检测,将该非法用户直接重定向到登录界面,强制非法用户输入合法的用户身份信息。
5.可测试性分析:
可测试性是指软件发生故障并隔离、定位其故障的能力特性,以及在一定的时间和成本前提下,进行测试设计和测试执行能力。通常,可测试性很好的软件必然是一个强内聚、弱耦合、接口明确、意图明显的软件,而不具有可测试性的软件往往是具有很强的耦合和混乱的逻辑。
场景部分 |
值 |
刺激源 |
测试人员 |
刺激 |
添加用户时,不输入用户名 |
制品 |
医院信息管理系统 |
环境 |
部署时 |
响应 |
系统提示用户名不能为空 |
响应质量 |
时间在0.2s内 |
实现方法:为保证系统的可测试性,系统对客户端和服务器端的数据都进行了合法性的校验,客户端使用JavaScript对用户输入的数据进行合法性校验,同时服务端也对用户提交的数据进行验证,然后提示用户错误的输入信息,保证了系统的可测试性。
6.易用性分析:
易用性是衡量用户使用一个软件完成指定任务的难易程度。用户对软件的易使用性、质量、效率以及效果的感觉,是交互的适应性、功能性和有效性的集中表现。
场景部分 |
值 |
刺激源 |
最终用户 |
刺激 |
登录到系统首页 |
制品 |
医院信息管理系统 |
环境 |
系统运行时 |
响应 |
反馈用户良好的交互性界面 |
响应质量 |
用户操作成功比例在90%以上 |
实现方法:为保证系统的易用性,用户界面交互性友好,导航一目了然,在用户与系统交互时,提供良好的操作提示,用户操作失败使,反馈良好的报错提示,提醒用户进行正确的操作。这样,不仅能提高系统的易用性,也能大大提高用户的满意程度。