根据前面的博客,我们已经大致了解了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反转控制和依赖注入就在一定程度上减少了系统的耦合度,提高了系统的性能。

基于ssh框架开发的购物系统的质量属性的更多相关文章

  1. SSH框架开发蛋糕房管理系统之质量属性

    SSH框架开发蛋糕房管理系统之质量属性 我要开发的系统是基于ssh框架的蛋糕房管理系统.本系统前台提供的主要功能是在线预定蛋糕,本店管理员拥有最高权限,包括收银管理,设备管理,日常销售管理,蛋糕定制管 ...

  2. 基于SSH的高校网上选课系统的质量属性的实现

    我对于基于SSH的高校网上选课系统的质量属性的实现是从可用性.性能.安全性.可维护性.易用性五个方面进行的实现. 可用性方面: 实现方式:(1)当系统试图超出限制范围来进行课程查询或选课时必须进行错误 ...

  3. 基于SSH框架的学生公寓管理系统的质量属性

    系统名称:学生公寓管理系统 首先介绍一下学生公寓管理系统,在学生公寓管理方面,针对学生有关住宿信息问题进行管理,学生公寓管理系统主要包含了1)学生信息记录:包括学号.姓名.性别.院系.班级:2)住宿信 ...

  4. 基于ssh框架的在线考试系统开发的质量属性

    我做的系统是基于ssh框架的在线考试系统.在线考试系统有以下几点特性:(1)系统响应时间需要非常快,可以迅速的出题,答题.(2)系统的负载量也需要非常大,可以支持多人在线考试(3)还有系统的安全性也需 ...

  5. 基于SSH框架的在线考勤系统开发的质量属性

    我要开发的是一个基于SSH框架的在线考勤系统. 质量属性是指影响质量的相关因素,下面我将分别从6个系统质量属性(可用性,易用性,可修改性,性能,安全性,可测试性)来分析我的系统,以及如何实现这些质量属 ...

  6. 基于SSH框架开发的《高校大学生选课系统》的质量属性的实现

    基于SSH框架开发的<高校大学生选课系统>的质量属性的实现 对于可用性采取的是错误预防战术,即阻止错误演变为故障:在本系统主要体现在以下两个方面:(1)对于学生登录模块,由于初次登陆,学生 ...

  7. 基于SSH框架的网上书店系统开发的质量属性

    基于SSH框架的网上书店系统开发的质量属性 对于我的基于SSH框架的网上书店系统的开发要实现的质量属性有可用性.可修改性.性能.安全性.易用性和可测试性. 1.对于可用性方面的战术: 可用性(Avai ...

  8. 基于SSH框架的学生选课质量属性分析

    系统:学生选课系统 框架:SSH(Struts2+Spring+Hibernate) 我做的是基于SSH框架的学生选课系统.学生选课系统的特性:①系统响应时间短,能够快速调出课程数据供学生选课提交.② ...

  9. 如何实现基于ssh框架的投票系统的的质量属性

    如何实现基于ssh框架的投票系统的的质量属性: 项目 :网上考试系统 我做的是网上考试系统,因为标准化的考试越来越重要,而通过计算机进行标准化判卷,系统会自动判卷出成绩,组织考试的人不用组织人员打印试 ...

随机推荐

  1. 时间戳与日期时间互转C语言

    /*  * ctime.h  *  *  Created on: May 19, 2016  *      Author: root  */   #ifndef CTIME_H_ #define CT ...

  2. 使用eclipse+fiddler+微信web开发者工具调试本地微信页面

    前面已经说了调试服务器上的微信页面,放链接:http://www.cnblogs.com/Gabriel-Wei/p/5977850.html 还有fiddler调试链接:http://www.cnb ...

  3. http升https笔记

    证书申请的: 1.lets encrypt 国际公益项目发展很快的,不过在国内暂时有些支持度还不够高,如微信安卓版就不认lets encrypt的证书.跳转进去一直处于空白页状态 2.沃通证书  国内 ...

  4. request getParameter getAttribute

    在浏览器地址输入,表示传入一个参数test,值为123 http://localhost:8888/Test/index.jsp?test=123 在index.jsp中尝试使用EL表达式取出,代码如 ...

  5. kettle系列-2.kettle源码结构分析

    kettle是一个开源产品,产品本身设计是很优秀的,代码应该是很多开源爱好者用业余时间贡献的,代码整体结构还是比较容易理解的,但具体到每一个控件内部就因人而异了,感觉还是挺复杂的,肯定别人考虑得比较全 ...

  6. android用户界面之Gallery3D学习资料汇总

    一.Gallery之根蒂根基教程1.Android Gallery与衍生BaseAdapter容器 http://www.apkbus.com/android-6249-1-1.html 2.Andr ...

  7. 激活Windows 8.1 RTM原来如此简单

    日前,Windows 8.1 RTM各种版本已经在坊间泄露开来,许多迫不及待的用户也开始跃跃欲试,但可能有人会疑惑,Windows 8.1RTM该如何激活?其实,它远比你想象的要简单. 实际上,Win ...

  8. js添加var和不加var区别

    var 声明的变量,作用域是当前 function 没有声明的变量,直接赋值的话, 会自动创建变量 但作用域是全局的. //----------------- function doSth() { a ...

  9. three.js自定义形状

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...

  10. Linux 计划任务

    实例: 每5分钟定时访问一个url # crontab -e #*/5 * * * * /usr/bin/curl http://aa.com:8080/tools/sitemap.php >& ...