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

时间:2022-09-13 12:34:15

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

对于可用性采取的是错误预防战术,即阻止错误演变为故障;在本系统主要体现在以下两个方面:(1)对于学生登录模块,由于初次登陆,学生可能不知道自己的用户名和密码,此时可以在界面中显示一个温馨提示,从而告知学生其首测登录系统的用户名和密码都为其学号,而防止学生在不知情的情况下根据自己的思维方式屡屡输入用户名和密码却屡屡收到系统给出的错误提示,无法进入系统进行相关的操作,而由于多次输入错误而导致系统故障;当然在登陆界面中,点击“忘记密码”超链接后,接着在跳转的界面中输入相应的登陆条件后即可对自己的信息进行检索,可以对自己的信息进行修改,密码修改后,其次登陆都得使用此密码,这是考虑到人人都会有忘记密码的时候的情形以及需要对个人信息进行修改的情形,同样的管理员模块亦是如此,如若忘记密码或需要修改个人信息时,便可以以点击超链接的形式找回密码以及对信息作出修改,从而顺利的进入系统:(2)当以各自的身份进入到相对应的页面后,便可以进行相关的操作了,对于管理员来说,可以对学生和课程的信息进行增删改查的操作,对于信息的添加,我们都知道表中的每一条记录都有一个唯一的标识符来作为它们之间差异的体现,它们被其所标识,但是毕竟一个表中主码的值是不允许重复使用的,故在此处,我的界面上会在每一条记录的主码位置设计一个按钮,目的是为了检测此时插入的主码是否与已存入表中的记录的主码重复,这就在很大程度上避免了当你已经完整的把相关信息填完后,但是由于你重复的插入了主码而导致系统报错或导致系统故障,你又得反复重新输入新的信息;对于修改信息操作,我们都知道对于每一条记录,我们不能修改其主码,但是有些人并没有注意到这个问题,一旦修改了之后可能造成主码重复等等相关问题而导致系统报错,并且从逻辑上讲人或物的标识码一般是不会变的,被修改的情况是很小的,对于这种情况,我的系统会在信息修改这个界面把相关信息都显示出来,但是主码这一栏不允许编辑,将其设置为只读状态。

易用性方面所采用的战术是运行时战术,即一旦系统执行,就可以为用户提供关于系统正在做什么的反馈;在本系统中主要体现为以下两个方面:(1)系统涉及到两个角色:管理员和学生,以不同的身份进入的是不同的主页,进行的也是不同的操作,当你进入了主页后,我的系统会提示你是以何种身份进入的,并提示你可以做哪些操作,这其实就类似用户使用说明手册一样,告诉你系统的功能,这在很大程度上为用户无头绪的使用减轻了负担,更容易增强用户的自信度和满意度;(2)对于系统涉及到的对各个实体信息的增删改查操作而言,只要用户采取了相关行动之后,系统会在用户所要进行操作的页面上显示出对应的信息操作提示,对于“删除”操作,点击“删除”按钮后,系统会提示“是否删除当前记录?”,选择“是”后,系统会提示“当前信息删除成功”,“否”则没有删除信息;对于学生选课这个模块,当学生选完课后,还可以对课程进行“退选”操作,点击“退选”按钮后,系统会提示:“是否要退选此课程?”,选择“是”后,系统会自动提示:“已成功退选该门课程”,“否”则没有进行退选操作。

可修改性方面所采取的战术是防止连锁反应,即模块之间应尽可能的脱耦,对此可采用信息隐藏战术来实现,即把某个实体或系统的责任分解为更小的部分,目的是将变更隔离在一个模块内,防止变更扩散;在本系统中主要体现在以下三个方面:(1)对于登录模块,虽然会以不同的身份登录系统,但登陆时所进行的操作都是一样的,都需要输入用户名和密码,当用户点击登陆按钮后系统会对提交的数据进行校验,一般是设计DAO类来对其进行校验,从理念上讲完全可以设计一个公共DAO类来分别让AdminDAO类和StudentDAO类来继承共同使用此公共父类,来对信息进行校验,但是考虑到后期的使用,可能会为各个角色在登陆时设置不同的限制行为,而不至于在后期更改时“牵一发而动全身”,故本系统是分别设计了AdminDAO类和StudentDAO类对登陆进行验证;(2)同样的,对于进入系统后对不同实体的增删改查操作而言,本来也是可以为CRUD操作提供一个公共的DAO类来作为各个实体的DAO类进行CDUD操作的父类,但是为了今后对不同实体需求变更的操作进行轻量级的修改,以此分别设计了各个实体的DAO类,很大程度上把它们之间的耦合性和内聚性都降低了;(3)本系统所采用的是SSH框架,我们知道struts负责控制Service(业务逻辑处理类),从而控制Service的生命周期,这样层与层之间的依赖很强,属于耦合。这时,使用spring框架就起到了控制Action对象(Strus中的)和Service类的作用,两者之间的关系就松散了,以此就降低了它们之间的耦合度,这样在对系统的某一业务进行修改时,就只需找到其在ApplicationContext.xml中的配置位置,并对其进行修改即可,这样修改省事又方便。

性能方面所采用的战术是改进资源需求战术,以此可以采用提高计算效率即算法的改进战术来实现;在本系统中主要是体现在对各个实体信息进行CRUD操作时的算法上,过去在对数据进行CRUD操作时用的是SQL语句,我们都知道SQL语句很长,执行效率也相对比较低下,对提交的数据进行相应的操作时间会很慢,针对此处本系统对数据操作采用的是Hibernate机制中的HQL查询以及Hibernate对封装后的数据对应的实体的CRUD操作,这属于面向对象编程的思想,很明显可以看出直接对实体进行操作的方式要比用SQL机制来对实体进行CRUD操作的方式的效率要高很多,故以此来提高系统对用户操作的响应能力。

安全性方面采用的是抵抗攻击战术,即对传输数据进行加密,对数据提供检验;在本系统中体现在用户的登录模块,用户在进行登陆时都要输入自己的用户名和密码,用户只要登录系统,其所输入的信息,特别是密码很容易被获取,其隐私很容易被泄露,以此为了在一定程度上对用户的隐私进行保护,本系统采取了这样一个策略:首先Database中所存取的用户密码是已经经过MD5加密算法进行加密后的密文,接下来对于用户在登陆界面的密码框中所输入的密码,系统依然采用MD5加密算法先将其进行加密成为密文,接着对其进行校验后才决定用户接下来的操作,这样用户在向系统提交隐私数据时,为了抵抗攻击,本系统相当于为用户的隐私数据加了一把锁,从而使用户的隐私信息更具有安全性。

对于可测试性方面,采取的是管理输入/输出采取将接口与实现分离的战术;在本系统中此战术是体现在对系统中的实体进行操作时为具体的实体的操作提供了一个公共的接口,其中定义了操作的方法,而在实体的操作类中具体去实现这些方法,这就把接口与实现进行了分离,以此来增强本系统的可测试性。

基于SSH框架开发的《高校大学生选课系统》的质量属性的实现的更多相关文章

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

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

  2. 基于ssh框架开发的购物系统的质量属性

    根据前面的博客,我们已经大致了解了ssh架构开发整体概念:Struts是一个实现了MVC模式的经典的框架:Hibernate是轻量级Java EE应用的持久层解决方案,以面向对象的方式提供了持久化类到 ...

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

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

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

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

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

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

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

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

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

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

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

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

  9. 文献综述十八:基于SSH框架的进销存管理系统设计与实现

    一.基本信息 标题:基于SSH框架的进销存管理系统设计与实现 时间:2017 出版源:内蒙古科技与经济 文件分类:对框架的研究 二.研究背景 进销存管理系统在各企业中广泛应用,使用SSH框架,很大程度 ...

随机推荐

  1. jquery Datatables 行数据删除、行上升、行下降功能演示

    Datatables 是一款jquery表格插件.它是一个高度灵活的工具,可以将任何HTML表格添加高级的交互功能. 官方网站:http://www.datatables.net Datatables ...

  2. Oracle RMAN 备份一例

    Oracle RMAN备份一例: Solaris 10 + Oracle 11.2.0.3 Shell:csh,安装有bash,脚本调用bash 备份策略:周日0级备份,周一~周六1级备份,每6小时备 ...

  3. 程序的内存分配 C\C++

    原文:http://blog.csdn.net/oohaha_123/article/details/24460425 程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1.栈区( ...

  4. IntelliJ IDEA 15开发Java Maven项目

    1.安装好之后开始创建项目

  5. [Python shelve模块Error]bsddb.db.DBPageNotFoundError: (-30986, 'DB_PAGE_NOTFOUND: Requested page not found')

    在用scrapy抓数据,用shelve保存时出现了这个Error,目标是储存一串unicode字符串组成的列表,exception代码是tempbase['joke']=joke_list,测试只要j ...

  6. CCF-CIDR合并-201812-3

    看着很长的一道题目,其实还可以...但我只有90分...可能有些细节没有注意到...难受! 思路: 数据结构: string str ;  存储32位01串 int  len: 前缀长度 首先将输入的 ...

  7. Harry Potter and J.K.Rowling(半平面交+圆和矩形交)

    Harry Potter and J.K.Rowling http://acm.hdu.edu.cn/showproblem.php?pid=3982 Time Limit: 2000/1000 MS ...

  8. 5分钟搞定jQuery+zepto.js+面向对象插件

    今天分享一下快速使用jQuery+zepto.js的技巧,需要的记得收藏 1.jQuery的引入:本地下载jQuery(后面简称jq)的源文件,开发版本使用非min版,线上使用min版,zepto.j ...

  9. sp_executesql动态执行sql语句并将结果赋值给一变量

    需求场景: 需动态拼接sql语句进行执行,并将执行的结果赋值给一指定变量. 样例代码如下: SELECT @tableName = TAB_NAME FROM dbo.NMR_BLYWBDY WHER ...

  10. [C++] Class (part 2)

    Members that are const or reference must be initialized. Similary, members that are of a class type ...