基于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. 齐博软件 著名的老牌CMS开源系统 X1.0基于thinkphp开发的高性能免费开源PHP开放平台齐博x1.0基于thinkphp框架开发的高性能免费开源系统 主推圈子 论坛 预定拼团分销商城模块

    齐博X1--标签变量大全 1.网站名称: {$webdb.webname} 2.网址: {$webdb[www_url]} {:get_url('home')} 3.网站SEO关键词: 首页:{$we ...

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

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

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. 第3章 Git使用人门

    [初识Github] 首先让我们大家一起喊一句“Hello Github”.YEAH!就是这样. Git是一个分布式的版本控制系统,最初由Linus Torvalds编写,用作Linux内核代码的管理 ...

  2. Linux 小知识翻译 - 「Unix」和「兼容Unix的OS」

    经常有人会问「Linux和Unix有什么区别?」,「Linux就是Unix吗?」. 回答一般都是「Linux是仿照Unix而开发的OS」,「Linux和Unix相似但不是一种OS」之类的. 关于「Li ...

  3. 17秋 软件工程 团队第五次作业 Alpha Scrum1

    题目:团队作业--Alpha冲刺 17秋 软件工程 团队第五次作业 Alpha Scrum1 各个成员在 Alpha 阶段认领的任务 伟航:督促和监督团队进度,协调组内合作 港晨:APP前端页面编写: ...

  4. 新鲜出炉的jquery fileupload 插件

    内容属原创,转载请注明出处 为什么做这个东东 项目中需要用到一个多附件上传的控件,找了一圈没找到中意的(唯一一个中意点的还不开源,费用比较高),这不,只得自己抡刀上了. 需求是什么 这么个上传的东东, ...

  5. Weblogic读不到Word文件

    之前遇到一导出word文件的需求,我的做法是把对应导出内容放到一个word文件中,把其中变化的内容作为变量,然后把该word文件放在WEB-INF目录下用来作为模板.在导出时通过ServletCont ...

  6. Java中关于LockSupport的简单入门记录

    LockSupport的JDK的文档描述:Basic thread blocking primitives for creating locks and other synchronization c ...

  7. 深入理解mybatis原理, Mybatis初始化SqlSessionFactory机制详解(转)

    文章转自http://blog.csdn.net/l454822901/article/details/51829785 对于任何框架而言,在使用前都要进行一系列的初始化,MyBatis也不例外.本章 ...

  8. AI 隐马尔科夫模型

    隐马尔科夫模型(Hidden Markov Model,简称HMM),

  9. 【Codeforces 696D】Legen...

    Codeforces 696 D 题意:给\(n\)个串,每个串有一个权值\(a_i\),现在要构造一个长度为\(l\leq 10^{14}\)的串,如果其中包含了第\(i\)个串,则会得到\(a_i ...

  10. [TPYBoard - Micropython之会python就能做硬件 开篇]会python就能做硬件!

    转载请注明:@小五义http://www.cnblogs.com/xiaowuyiQQ群:64770604 会python就能做硬件! 在写这套教程之前,首先感觉山东萝卜电子科技有限公司(turnip ...