根据前面的博客,我们已经大致了解了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. October 22nd Week 43rd Saturday, 2016

    Beware the barrenness of a busy life. 当心忙碌的生活荒芜了人生. Recently I was busy in debugging an equipment, I ...

  2. c#去掉小数点后的无效0

    decimal d = 0.0500m; d.ToString("0.##")就出来了 也可以这样 string.Format("{0:0.##}",d000) ...

  3. mysql explain用法

    explain显示了mysql如何使用索引来处理select语句以及连接表.可以帮助选择更好的索引和写出更优化的查询语句. 使用方法,在select语句前加上explain就可以了,如: explai ...

  4. C++基本语法

    一.static成员变量和static成员函数 1.普通成员变量每个对象有各自的一份,而静态成员变量一共就一份,为所有对象共享 2.普通成员函数必须具体作用于某个对象,而静态成员函数并不具体作用于某个 ...

  5. AngularJS学习之依赖注入

    1.什么是依赖注入:简称DI,是一种软件设计模式,在这种模式下,一个或更多的依赖(或服务)被注入(或者通过引用传递)到一个独立的对象(或客户端)中,然后成为了该客户端状态的一部分. 该模式分离了客户端 ...

  6. 3Sum——leetcode

    Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all un ...

  7. nginx 直接在配置文章中设置日志分割

    直接在nginx配置文件中,配置日志循环,而不需使用logrotate或配置cron任务.需要使用到$time_iso8601 内嵌变量来获取时间.$time_iso8601格式如下:2015-08- ...

  8. [BZOJ1501][NOI2005] 智慧珠游戏

    Input 文件中包含初始的盘件描述,一共有10行,第i行有i个字符.如果第i行的第j个字符是字母”A”至”L”中的一个,则表示第i行第j列的格子上已经放了零件,零件的编号为对应的字母.如果第i行的第 ...

  9. 有了门面,程序会更加体面!- pos软件基于三层架构 -09

    续上篇)        大鸟说道:“实际上没有学过设计模式去理解三层架构会有失偏颇的,毕竟分层是更高一级别的模式,所谓的架构模式.不过在程序中,有意识的遵循设计原则,却也可以有效的做出好的设计.”   ...

  10. table常用功能总结

    1,设置表格边框为单线框 table, th, td { border: 1px solid blue; }加上:table { border-collapse:collapse; } 由于 tabl ...