我要做的事网上答题系统,通过注册登录到答题页面。
这其中数据库的连接靠Hibernate,数据库的增删改查用Sruts2实现。
关于Struts2的学习,仅仅在action的表面上,可以在action里写一些代码,做一些数据处理,而关于struts2的深层的学习还在进行中,这个学习的过程真的很漫长。对于那些老师没有讲过的东西自己学起来真的很慢,很难。
软件需求分析的另一个任务是定义软件的质量属性。对用户来说,重要的质量属性包括有效性、高效性、灵活性、安全性、互操作性、可靠性、健壮性和易用性等,对开发者来说重要的质量属性包括可维护性、可移植性、可复用性、可测试性和可理解性等。在实际项目中,定量地描述用户期望的质量属性是很重要的。质量属性是很难定义的,并且他们经常造成开发者设计的产品和客户满意的产品之间的差异。就像Robe藏charene(1990)指出的那样:“真正的现实系统中,在决定系统的成功或失败的因素中,满足非功能需求往往比满足功能需求更为重要。”为此,讨论分析如下:
1.有效性
用户注册,用户登录,用户选择下一题,用户提交,给出答案响应时间的系统的有效性达到90%以上。
2.高效性
系统效率主要在于对题目结果进行判断上,有两种方式:第一:答出一道题目进行一次判断,第二:提交答案后统一对题目进行答案校验,给出成绩。感觉前者在效率上还是比较高的,毕竟一道题一道题在数据库里校验答案时间比较分散,但是耽误用户答题的时间。后者在最后统一校验答案,需要用户等待一个反应时间。
3.灵活性
灵活性反映的是在软件中添加新功能时所需要的工作量。当用户要求灵活性时,会迫使开发者考虑系统今后的扩充问题。这里我们给出一个描述灵活性需求的例子:“在库存管理系统中,一个具有6个月以上开发经验的软件维护人员能够在4个小时之内为系统添加一个统计报表,并且这个统计报表的数据项不超过20项,所涉及的数据库表不超过5个。”用这种非常量化的招标要求系统的灵活性,设计人员在设计系统时就会考虑如何实现灵活性需求。
4.安全性
本系统一共涉及到两种身份。一为普通用户,注册登录答题,一为管理员,对题目信息、用户信息进行管理。只有管理员才有权限登录到后台。
5.互操作性
用户登录后进入答题首页,首页显示欢迎+用户名,然后将一定的题目展示给用户,用户提交后,产生答题结果和成绩,并将成绩记录到用户信息。
6.易用性
美观的注册、登陆页面,登录到页面后即可答题,然后下一题,下一题最后提交。没有任何的操作难度。
7.可维护性
本系统的可维护性极高,Hibernate连数据库,对数据库的访问极其方便。对数据的处理都在servlet中实现,将界面和控制完全的分离。
8.可移植性
本系统为web版,使用任何浏览器。数据库为Sqlserver,连接方式为Hibernate,连接性能绝对极佳。
9.可测试性
它是指测试软件组件或集成产品时查找缺陷的难易程度。如果软件中包含复杂的算法和处理逻辑,或者使用了复杂的数据结构,或者功能模块间的关系复杂,则可测试性的设计尤为重要。对于经常更改的软件,其也是相当重要的。定量的可测试性需求描述的例子是:“一个模块的最大循环复杂度不能超过20。”因为经常对产品进行回归测试来判断更改是否破坏了现有的功能,因为随着图形引擎功能的不断增强我们需要对它进行多次测试,所以做出了如上的设计目标。循环复杂度是衡量—。个模块源代码中逻辑分支数目的参数,一个模块中的逻辑分支过多会影响可测试性。
刺激源:如今网络技术越来越发达,足不出户便可实现网上考试,用户对网上答题的需要,驾照科目一,科目四考试。
刺激:用户实名注册,登陆,答题。
环境:用户登陆本系统(允许大量用户同时登陆),进行考试,模拟考试。
制品:考生提交答卷后,系统自动校对答案,并给出成绩。
响应:当用户数量达到上限时,要求用户排队,当成绩信息出错或丢失时,报告给用户,要求重新考试。
响应度量:熊可用时间间隔
架构的质量属性
a概念完成性:首先系统阿噶爱可以分三层,第一:用户注册登录,第二:用户答题并提交,第三:给出成绩。
b正确性和完整性:架构能够满足系统的各种需求以及运行时的资源要求的必要条件。
c可构建性:系统结构简单,有一个人可以完成,只是时间问题,如果开发,大约一周时间可以。
目前真在进行Spring的学习,当Spring拿下后系统的完成也就快了。