我对于基于SSH的高校网上选课系统的质量属性的实现是从可用性、性能、安全性、可维护性、易用性五个方面进行的实现。
可用性方面:
实现方式:(1)当系统试图超出限制范围来进行课程查询或选课时必须进行错误检测并且抛出异常,中止进一步的错误操作,所采用的战术为错误(异常)检测, 此异常属于Action层,只捕获自定义应用异常,其他异常上抛。Struts2提供了异常拦截器,拦截器会将定义的异常捕获,记录日志,然后根据配置的异常的类型顺序跳转到相应的页面。(2)遵从J2EE的系统提供了可以使用的事务服务,当很多学生对同一门课程进行选课时,使用事务可以防止访问相同数课程的几个同时线程之间发生冲突。通过提供内建的故障恢复机制,提高了应用的可用性和可靠性。Spring提供了事务处理的功能,保证了数据的完整性。(3)在学生选课时,在线选课人数达到系统所能承担的最大负载量时,对于后面的学生在进入时,要提示选课人数已满,不能再进入。而对于在线选课人数没有达到最大负载量时,系统对于用户的命令要有一个即时的响应。此时采用的战术是错误检测里的命令与响应。Strust根据strust_config.xml文件中的配置信息,再接收到命令(客户端请求)后,会检索和请求相匹配的Action,根据文件中的配置信息返回相关信息或跳转到相关页面,返回给用户。
性能方面:
实现方式:(1)学生在访问的网上选课系统时,系统对于学生的一系列动作应该能在规定的时间内做出响应,如果系统由于网络或者数据库等原因不能在规定时间内做出反应,那么系统应该提出警告,不能出现学生用户无故长时间等待的情况。并且在学生进行选课动作时,要保证系统在很短的时间内做出反应,并且对相冲突的动作要有一个快速的处理,不能影响到系统的运行以及用户的使用。所采用战术是限制访问队列的大小以及缓冲池技术,Spring DAO和Spring ORM集成了对Hibernate等流行的对象关系映射框架的支持模块,并且提供了缓冲连接池的服务功能,保证了系统的性能;(2)当应用程序需要在关联关系间进行导航的时候,有Hibernate获取关联对象。同时Hibernate的Session在事务级别进行持久化数据的缓存操作,提供了一级缓存和二级缓存。所采用的战术是资源管理。(3)在很多学生对同一门课进行选择的时候,进行选课的动作数多余课程所剩容量时,此时可以通过资源仲裁战术对资源的分配做一个调度。通过对资源的调度改变等待时间。
安全性方面:
实现方式:(1)高校网上选课系统需要对学生信息进行保护,防止学生选课信息被修改,防止主机被攻击等等,这就需要系统有抵抗攻击的能力,需要有用户身份验证、对用户进行授权、维护数据的机密性、限制访问。遵从J2EE的系统提供了由容器进行授权校验的基于角色的安全性机制,以及已经为使用做好准备的在程序中进行授权检查的安全性机制。(3)Spring利用AOP来实现权限拦截,还提供了一个成熟的,简洁清晰的安全框架,使用Spring自带的安全框架,过滤器控制资源权限,通过对spring bean的封装机制来实现。使用SSH框架可以不对数据库进行直接的操作,保证了数据库的安全性。
可测试性方面:
实现方式:在完成系统开发的一个增量后,较轻松地对软件进行测试,所采用的战术:输入、输出。SSH框架实现了接口与实现的分离。将接口与实现的分离允许实现的代替,以支持各种测试的目的。
可易用性方面:
实现方式:(1)遵从J2EE的系统提供了支持内容的渲染的技术,以满足不同用户的需求,所采用的战术:将用户接口与应用的其余部分分离开来,MVC模式很好的实现了该战术。(2)用户在对系统进行操作时能得到正确解释的反馈,所采用的战术是运行时战术,维持任务的一个模型,任务模型用于确定上下文,以使该系统了解用户试图做什么,并提供各种协作;维持用户的一个模型,它确定了用户对该系统的了解,用户在期望的响应时间方面的行为,以及特定于某个用户或某类用户的其他方面;维持系统的一个模型,它确定了期望的系统行为,以便为用户提供适当的反馈。