对于实现图书管理系统的质量属性分析
我主要通过以下六个方面,来总结在我的系统中,实现质量属性的途径。
- 可用性(Availability)的战术
- 易用性(Usability)战术
- 可修改性(Modifiability)的战术
- 性能(Performance)的战术
- 安全性(Security)的战术
- 可测试性(Testability)战术
1.可用性战术
我认为可用性是一个系统最基本的属性,说的直白一点就是系统能否正常无错的使用,其故障的出现频率等等,是系统的产品质量,也是用户首先关注的一点。可用性战术主要分为三类:错误检测、错误恢复、和错误预防。
1.1错误检测
错误检测的三个战术分别为:信号/响应、心跳、异常。其中信号/响应机制我认为会是在我的系统中最常用也是最常见的一种方法。
图书信息的管理最重要的就是图书信息的记录,因此图书信息在数据库中能否正常存储就非常重要,信息是否能正确的写入写出是这个系统最基本的事情,因此在连接数据库时,以及在写入写出图书的各项信息时,我会在代码中写入一些控制台输出的信息,通过控制台输出的信息,大概就可以判断出是哪一块的代码出现了问题。比如说插入图书信息时出现错误,如果控制台成功输出了数据库已经正常连接的信息,那么问题就一定出现在后面的代码中。
心跳和异常用的相对较少。在连接数据库进行各种数据的操作时,会用到异常处理块。
1.2错误恢复
错误恢复的战术包括表决、主动冗余、被动冗余、备件、状态再同步等等。其中在我的系统中会使用备件的方法,用于更换不同的故障模块,错误恢复的时间很快。
1.3错误预防
错误预防的战术包括:从服务中删除、事务和进程监听器。其中事务接触的比较多,即在数据库的操作中,定义一个事务,其中包含的语句全部执行或者全部不执行,操作的所有部分一起成功或者全部失败并恢复。
2.易用性战术
易用性相比可用性,把侧重点放在了软件的使用体验上,它的特征主要包括软件的易理解性、易学习性和易操作性,即用户是否可以方便的使用系统。指软件产品被理解、学习、使用和吸引用户的能力。易用性的战术分为运行时战术和设计时战术。
2.1运行时战术
运行时战术是在系统运行时,能够通过各种提示让用户明白系统正在做什么。我的系统中,在用户进行信息修改和删除时,鼠标滑过时会有设计有相应的文字提示用户,这是哪个功能的按钮,点下去后能够完成什么功能。能够让用户在进行这些操作前,通过系统主动的提示信息,更好的了解和使用这些功能,更快的熟悉系统的各项功能,是一种“系统主动”的人机交互。
2.2设计时战术
设计系统时使用MVC的框架思想来设计模块功能代码,使系统在后期修改维护时更加方便。
3.可修改性战术
可修改性战术根据目标进行分组,可以分为3类:减少由某个变更直接影响的模块的数量的局部化修改、防止连锁反应、推迟绑定时间。
3.1局部化修改
局部化修改其战术有维持语义的一致性、预计期望的变更、泛化模块和限制可能的选择。维持语义的一致性是保证模块中不同责任之间可以协同工作,不要太多的依赖于其他的模块。比如显示图书信息的页面、添加图书信息的页面、以及提示操作成功的页面,每个页面之间都不设计有跳转等等的关系,每个功能都可以独立完成。图书信息的数据类型比较单一,因此泛化模块在我的系统中并没有设计体现。
3.2防止连锁反应和推迟绑定时间
防止连锁反应方面我会尽量维持现有接口或类的名字等不变,把要改动的模块尽量降到最低。推迟绑定时间在我的系统中还没有体现出来。
4.性能的战术
性能是指系统的响应能力,一般来说衡量性能的指标就是等待时间、处理期限、丢失数据等。因此我们就要从这几个指标上入手。关于性能的战术分为资源控制、资源管理和资源仲裁。
4.1资源控制
减少等待时间最直接的方法就是减少系统需要处理运行的各种运算。我使用的struts2框架中,通过action来控制用户各种功能的实现,通过一个配置文件来设置页面之间的跳转,相比以前设计的通过servlet来实现各种功能,并且在其中直接写入页面跳转的方法这种方式来说,减少了很多重复的代码,简化了处理方式,也可以在一定意义上提高速度。
4.2资源管理和资源仲裁
资源管理和资源仲裁其中有些包括了硬件方面的优化,比如说提高CPU的处理速度、增加内存等等,在我的系统中这两个战术没有很明显的体现。
5.安全性测试
安全性战术分为抵抗攻击、检测攻击和攻击恢复。是关于系统安全性方面的性能。
5.1抵抗攻击
抵抗攻击战术在我的系统中会体现的比较多。首先,用户必须先登录才能进入系统,我们要对想要登录进系统的用户进行身份验证,验证其是否有权限登录系统。如果没有权限,则不能进入系统。
其次,不同的用户被赋予了不同的权限,系统中有用户和管理员两个角色,因此在登录时,会有权限检测,通过检测来决定登录的用户在这个图书系统中拥有怎样的权限。权限不同,用户能够使用的功能也不同。
5.2检测攻击和攻击恢复
目前图书系统还没有设计检测攻击和攻击恢复。
6.可测试性战术
可测试性是在软件的测试方面对软件产品提出的要求。可测试性战术分为输入/输出和内部监视。图书管理系统的代码中,各种类库的使用,以及struts2这种框架的使用理念,都体现了接口与实现分开的理念。在测试中可以更容易方便的测试出错误。