基于ssh框架开发的购物系统的质量属性
根据前面的博客,我们已经大致了解了ssh架构开发整体概念:Struts是一个实现了MVC模式的经典的框架;Hibernate是轻量级Java EE应用的持久层解决方案,以面向对象的方式提供了持久化类到数据表之间的映射,是优秀的ORM框架;Spring为企业应用提供了轻量级的解决方案:它的Ioc容器,AOP思想,以它为核心,整合持久层框架和Web MVC框架。通过三个框架的整合,可以构建可扩展、可复用、可移植、可维护的软件系统。其中可扩展、可复用、可移植、可维护的等等这些形容词是我们用来评判一个系统好坏的,也就是形容系统的质量。系统的质量是指系统满足指定需求或用户需求及期望的程度,质量属性是指影响系统质量的相关因素,是对质量的描述。
常见的6个质量属性有可用性(Availability)可修改性(Modifiability)性能(Performance)安全性(Security)可测试性(Testability)易用性(Usability),其他质量属性有可移植性、可重用性、可集成性等。下面从几个质量属性的概念和实现上来讨论网上书店系统。
(1)可用性:可用性是指系统正常运行时间的比例,通过两次故障之间的时间长度或在系统崩溃的情况下能够恢复正常运行速度来衡量的。
可用性=平均正常工作时间/(平均正常工作时间+平均修复时间)*100%。
- 本系统的可用性主要体现在系统的响应时间与内存使用量上:忽略网络环境因素及功能插件运作的因素,以本地测试为准,测试和控制数据库安装响应时间、前台浏览响应时间、后台操作响应时间。对于实现网上书店的项目的可用性,首先应该尽量规避错误,规避错误的实现首先是系统要编码规范,ssh架构设计上要简单易行,框架清晰,避免冗余。其中Struts是整体的框架,在Struts.xml文件中设计整体的包、jsp和类的整体结构,为系统的代码实现作铺垫。其次容器通过数据库连接池解决获取数据库连接的耗时问题和连接数有限的问题,提高了系统的可用性。再者系统设计时要增加一些错误提示机制,一旦发生错误,系统应立即报错且界面应出现友好性提示。
(2)可修改性关注于可以修改什么,何时以及谁进行修改。
- 对于网上书店系统来说,应该可以修改图书的属性,即图书的名称,价格等,这种情况下需要管理员进行操作。还有用户的登录密码的可修改性。系统的可修改性主要体现在堆数据库数据的修改操作上,也就是说通过Hibernate实现的表的映射,尽量不直接在代码上进行数据操作。再者,因为ssh将界面和后台分离开来,所以对界面的修改和优化更加方便。
(3)性能是指系统的响应能力--即对外部刺激(事件)做出反应所需要的时间或在某段时间内所处理的事件个数。一般用等待时间、处理期限、系统吞吐量、响应抖动(等待时间变化)、未处理事件(由于系统太忙无法响应)、丢失数据(由于系统太忙)等指标。
- 系统在设计和开发的时候,首先充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足用户的需求。对于网上书店系统来说查询功能对整个系统处理的准确性和及时性有着很大的影响。还可以使用InProc模式的Session来提高速率。
(4)安全性是衡量系统在向合法用户正常提供服务的情况下,组织非授权使用的能力。控制以未经授权试图访问数据或服务、修改数据、使用系统拒绝向合法用户提供的服务等攻击。
- 后台的界面访问、路径访问、操作执行的前后,均受登陆会话管理和用户权限管理的控制。只有符合条件和身份的用户才能进入相应的操作界面。不同的用户对应不同的权限。密码进行加密处理等。
(5)可测试性指通过测试揭示软件缺陷的难易程度。
- 首先使用ssh框架,在整体的架构上是很清楚的,测试时通过Struts.xml可以了解整体结构,有利于测试和修改错误;前台用户根据自己的需要浏览站内图书,后台数据库根据匹配到的信息,输出数据到用户浏览器,前台用户下订单或者进行信息的修改维护的时候,系统根据响应的处理将结果同步到数据库,并将处理结果显示到前台界面上。清晰地流程和操作步骤也充分体现了可测试性。
(6)易用性关注的是对用户来说完成某个期望任务的难易程度。分为有效性,错误避免及错误处理,用户自信和满意度,可学习性。
- 网上书店系统的使用主要是针对普通用户,普通用户可能对于系统的操作不能理解整体流程,所以系统应该有良好的人机交互界面,采用用户熟悉的术语和中文信息界面。界面采用css和js技术和部分html标签进行美化,在开始界面提供帮助功能等。
(7)其他质量属性
- 系统在开发过程中还要考虑以后的可扩充性,使用ssh模式也是为了使系统有更好的扩充性,比如用户的需求增加需要对系统进行功能增加,只要符合一定的规范,就可以进行简单的添加和减少模块,配置系统的硬件。通过软件的修补,替换进行软件的升级。
- 同时也要考虑系统的标准性,系统开发设计中设计到很多的计算机硬件,软件,要符合国家和行业标准,比如TCP/IP的网络协议和ISO标准要求的质量规范等,开发系统时,要指定一定的软件工程规范,保证代码的易读性,可操作性和可移植性。
总结:在设计和编写程序的时候,注意使用ssh的特点即优点,比如数据库连接池,springd的ICO反转控制和依赖注入就在一定程度上减少了系统的耦合度,提高了系统的性能。