资源描述
目录
目 录
1 绪论 4
1.1 网上成绩管理系统概述 4
1.2 统一建摸语言(UML) 4
1.3 J2EE技术简介 4
1.4 J2EE的四层模型 4
1.4.1 模型-视图-控制器开发模式(MVC) 4
1.4.2 J2EE组件的UML表示 4
1.5 主页面组装技术 4
1.6 网上成绩管理系统的系统构架 4
2 网上成绩管理系统的需求分析 4
2.1 用例分析 4
2.1.1 用户登陆网上成绩管理系统 4
2.1.2 用户修改个人信息 4
2.1.3 学生用户查看本人所有学期的平均绩点 4
2.1.4 学生用户查看本人在某学期中各科课程的分数 4
2.1.5 班干部用户查看本班某一同学所有学期的平均绩点 4
2.1.6 班干部用户查看本班某生在某一学期所有课程的分数 4
2.1.7 班干部用户查看本班的所有学生在某一学期的平均绩点 4
2.1.8 班干部用户登记本班学生在某一学期上某一课程所得到的分数 4
2.1.9 教师用户查看某位学生所有学期的平均绩点 4
2.1.10 教师用户查看某生在某一学期的所有课程的分数 4
2.1.11 教师用户查看某班所有学生在某个学期的平均绩点 4
2.1.12 教师用户查看某年级所有学生在某个学期的平均绩点 4
2.1.13 班干部用户查看自己成绩 4
2.2 系统用例图 4
3 基于MVC构架的网上成绩管理系统的UML设计 4
3.1 网上成绩管理系统UML用例分析类图 4
3.2 用户基本用例分析 4
3.2.1 用户登陆系统顺序图 4
3.2.2 用户修改个人信息顺序图 4
3.3 学生用例分析 4
3.3.1 查看自己各个学期的平均绩点顺序图 4
3.3.2 查看自己某一学期所有课程的分数顺序图 4
3.4 班干部主要用例分析 4
3.4.1 查看本班所有学生在某一学期的平均绩点 4
3.4.2 登记本班学生分数 4
3.5 教师主要用例分析 4
3.5.1 查看某班在某学期所有学生的平均绩点 4
3.6 用例分析的思路 4
3.7 利用Rational Rose 开发的UML模型 4
4 系统设计的性能分析 4
4.1 系统的可维护性 4
4.1.1 分解业务层 4
4.1.2 隐藏数据库平台 4
4.2 系统的复用性 4
4.2.1 代码复用和模块的耦合度 4
5 利用UML分析J2EE项目的难题 4
6 总结 4
致谢 4
参考文献 4
1-IV
目录
1 绪论
1.1 网上成绩管理系统概述
传统的成绩管理系统大都基于单机版的PC操作方式进行管理,这带来了很多不便:学生查询成绩手续复杂,教师管理成绩也很麻烦。如何有效的利用信息化手段来方便有效的进行成绩管理是许多学校面临的一大挑战。伴随着internet的飞速发展,网络的不断普及,采用网上成绩管理系统来取代原有的单机版结构的管理系统,是教育现代化的一个必然趋势。网上成绩管理系统能很好的克服单机版管理成绩的种种不便问题,为学生提供出一个查询成绩的良好平台,也为班干部和教师提供出一个管理成绩的良好平台,极大的方便了成绩管理,同时也节约了选课的人力和物力。
新的系统采用先进的J2EE体系结构和分布式应用模型对原系统进行改造和优化设计。在本系统中程序、数据库及其它一些组件都集中在服务器端,客户端除了浏览器外无需其它任何组件,用户需要查询的数据和文档都来源于同一个数据源,从而保证了数据的及时性和完整性。新系统提供中间层集成框架用来满足无需太多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求。通过提供统一的开发平台,J2EE降低了开发多层应用的费用和复杂性,同时提供对现有应用程序集成强有力支持,有良好的向导支持打包和部署应用,添加目录支持,增强了安全机制,提高了性能。随着时间的推移,用户需求可能会不断发生变化,当成绩管理逻辑发生变化时,只需在服务器端修改程序,重新发布即可,使开发发布过程方便轻松,对用户没有任何影响。
1.2 统一建摸语言(UML)
UML(Unified Modeling Language统一建模语言),属于第三代面向对象开发的编制文档可开发的方法,由Grady Booch, James Rumbaugh和Ivar Jacobson三位著名的方法学家提出,己经成为业界标准。UML不是可视化的程序设计语言,而是一种可视化的建模语言。UML构架UML由图和元模型组成,其中,图是语法,而元模型是语义。UML语义定义在一个四层(也就是四个抽象级)建模概念框架中,这四层分别是:
l 元元模型(meta-meta model)层:组成UML最基本的元素事务" (Thing) ",代表要定义的所有事物。
l 元模型(meta model)层:组成uml基本元素,包括面向对象和面向组件的概念,这一层的每个概念都是元元模型中的事物,概念的实例。
l 模型(model)层:组成UML的模型,这一层中的每个概念都是元模型中概念的一个实例,这层的模型通常叫做类模型(class model)或类型模型(type model)。
l 用户模型(user model)层:这层中的所有元素都是UML模型的例子,这层的每个概念都是模型层的一个实例(通过分类),也是元模型层的一个实例(通过版类化),这层模型通常叫做对象模型(object model)或实例模型(instance model)。
UML可以由下列五类图来定义(如图1-1所示):
l 用例图(use case diagram):从用户角度描述系统功能,并指出各功能的操作者。
l 逻辑视图(Logical diagram):包括类图、对象图和包图。其中类图描述系统中类的静态结构。不仅定义系统中的类,表示类之间的联系如关联、依赖、聚合等,也包括类的内部结构(类的属性和操作)。类图描述的是一种静态关系,在系统的整个生命周期都是有效的。对象图是类图的实例,几乎使用与类图完全相同的标识。他们的不同点在于对象图显示类的多个对象实例,而不是实际的类。一个对象图是类图的一个实例。由于对象存在生命周期,因此对象图只能在系统某一时间段存在。包由包或类组成,表示包与包之间的关系。包图用于描述系统的分层结构。
l 进程视图:建模在我们系统中的可执行线程和进程作为活动类。它是逻辑视图面向进程的变体,包含所有相同的制品。
l 部署视图:建模把组件物理地部署到一组物理的、可计算节点上,如计算机和外设上。它允许你建模横跨分布式系统节点上的组件的分布。
l 实现图(Implementation diagram):其中构件图描述代码部件的物理结构及各部件之间的依赖关系。一个部件可能是一个资源代码部件、一个二进制部件或一个可执行部件.它包含逻辑类或实现类的有关信息。部件图有助于分析和理解部件之间的相互影响程度。部署图定义系统中软硬件的物理体系结构。它可以显示实际的计算机和设备(用节点表示)以及它们之间的连接关系,也可显示连接的类型及部件之间的依赖性.在节点内部,放置可执行部件和对象以显示节点跟可执行软件单元的对应关系。
逻辑视图
类图 状态图 对象图
实现视图
组件图
进程视图
类图 对象图
部署视图
部署图
用例视图
用例图 交互图
图1-1 UML “4+1视图” 结构
1.3 J2EE技术简介
J2EE (java2 Enterprise Edition)是一种利用Java 2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。
1.4 J2EE的四层模型
J2EE使用多层的分布式应用模型,应用逻辑按功能划分为组件,各个应用组件根据他们所在的层分布在不同的机器上。J2EE的多层企业级应用模型将两层化模型中的不同层面切分成许多层。一个多层化应用能够为不同的每种服务提供一个独立的层,以下是J2EE典型的四层结构:
1) 运行在客户端机器上的客户层组件.
2) J2EE应用程序可以是基于web方式的,也可以是基于传统方式的口J2EE的web层组件可以是JSP页面或Servlets,按照32EE规范,静态的HTML页面和Applets不算是web层组件。web层可能包含某些JavaBean对象来处理用户输入,并把输入发送给运行在业务层上的EJB来进行处理。
3) 运行在J2EE服务器上的业务逻辑层组件.业务层代码的逻辑用来满足商务领域的需要,由运行在业务层上的EJB进行处理。EJB从客户端程序接收数据,进行处理,并发送到EIS层储存的,这个过程也可以逆向进行。有三种EJB:会话(session) beans,实体(entity) beans, 和消息驱动(message-driven) beans. 会话bean表示与客户端程序的临时交互.当客户端程序执行完后,会话bean。和相关数据就会消失相反,实体bean。表示数据库的表中一行永久的记录。当客户端程序中止或服务器关闭时,就会有潜在的服务保证实体bean的数据得以保存。消息驱动bean结合了会话bean和JMS的消息监听器的特性,允许一个业务层组件异步接收JMS消息。
4) 运行在EIS服务器上的企业信息系统(Enterprise information system)层软件。企业信息系统层处理企业信息系统软件包括企业基础建设系统例如企业资源计划(ERP),大型机事务处理,数据库系统,和其它的信息系统.例如,J2EE应用组件可能为了数据库连接需要访问企业信息系统。
1.4.1 模型-视图-控制器开发模式(MVC)
MVC模式,即模型-视图-控制器(Model-View-Controller)模式。它的结构图如图1-2所示。
图1-2 MVC结构图
在这个模型中,系统的活动时序如下所示:
(1) Servlet 相当于控制器(Controller)角色,它负责接受客户端请求并处理此请求。
(2) 根据请求的类型,Servlet可以选择创建一个JaveBean对象,并从请求的处理过程中取得的结果作为初始化参数传给JaveBean对象。
(3) Servlet也可以直接存取数据库中的数据。
(4) Servlet将请求传递给合适的JSP,而JSP则显示给用户。
(5) JSP仅仅从JaveBean中读取数据,JaveBean直接与数据库打交道。JSP不与数据库打交道。
(6) JSP返还给客户端。
从图中可以看出,在MVC模式中,它强制性的使应用程序的输入、处理和输出分开,使其被分成三个核心部件:模型(Model)、视图(View)、控制器(Controller)。各个核心部件各自处理自己的任务。
Model(模型)
模型是执行某些任务的代码,包含了应用程序的核心功能。封装了应用程序的状态。它对视图或控制器一无所知。在模型端只有纯粹的功能性接口,也就是一系列的公开方法。通过这些公开方法,便可以取得模型端的所有功能。模型通常由JavaBeans/EJBs实现。
View(视图)
视图提供模型的表示。它是应用程序的外观,是用户看到并与之交互的界面。在视图中其实没有真正的处理逻辑,它只是作为一种输出数据并允许用户操纵的方式。视图通常由JSP实现。
Controller(控制器)
控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型组件去处理请求,然后用确定用哪个视图来显示模型处理返回的数据。控制器通常由servlet实现。
1.4.2 J2EE组件的UML表示
当我们试图用UML来对J2EE应用程序进行建模时,需要利用UML的扩展机制,对UML进行一些扩展,以便能将J2EE程序的一些组件和标准的UML元素相对应起来
1) Servlet的UML建模
在扩展的UML中Servlet在建模是被当作一般的类来处理的,Servlet和普通的类来进行区别以及不同的Servlet间的区别是通过原型的设置来实现的。
2) JSP的UML建模
JSP的建模是个比较棘手的问题,因为在JSP中某些部分是属于服务器端的程序,如用JaveBean写的数据库连接程序和动态显示的内容等;还有些部分是属于客户端的内容,如用JavaScript写的客户端判断程序以及页面显示的内容。解决的办法是将JSP建模成两个独立的逻辑实体类:一个类是ServerPage,它抽象了JSP在服务器端的行为;一个类是ClientPage,它抽象了JSP在客户端的逻辑。ServerPage 和ClientPage的关系是build,表示后者是前者构建出来的。图1-3显示了一个含有表单的HTML页面向JSP页面之间的关系,并且包含了Servlet的表示。
图1-3 包含JSP,Servlet,form等的UML表示法
1.5 主页面组装技术
在J2EE显示层中,有许多jsp页面要显示。而这些页面中有些信息是重复的,在传统的显示方法里,没有将共同部分提取出来,即增加了页面中的代码段,又难于维护。在本系统的设计中,为了有效的管理显示,使用基于组合视图模式的主页面组装技术。
组合视图(Composite View)设计模式的基本结构如图1-4所示。它是J2EE中常用的Web层设计模式之一。通过使用父视图累计子视图,使总体视图成为各个小图的合成视图。这样可以减少不同视图重复部分重复代码,保证不同视图之间的一致性,使视图维护与管理更简单。
图1-4 Composite View设计模式
主页面组装技术,就是基于组合视图模式来组装不同的视图。应用了Compostie View模式的示意图如图1-5。
图1-5 基于Composite View 显示页面
在主页面显示技术中,显示页面需要将总响应的各个支持部分组装起来。一般而言,显示页面包含特定功能的视图组件或程序代码段,以创建适当的HTML表结构及在适当的位置嵌入页眉、页角和可视元素。在主页面显示技术中,显示页面仅是总响应的另外一部分内容,由主页面包含进来。如图1-6所示。
Include
Master.jsp
<html>
<table>
…
…
…
</table>
</html>
Include
请求
TopNav.jsp
….
Include
Home.jsp
响应
Header.jsp
Include
Footer.jsp
图1-6使用主页面组装技术的Master.jsp
在页面执行时,通过jsp页面中嵌入的代码: <jsp:include page = “<%= variableName%>”/>. 我们就可以把在处理逻辑中设置好的variableName,通过主显示页面将结果显示给用户。
1.6 网上成绩管理系统的系统构架
在网上成绩管理系统的分析与设计中,采用了MVC (Model-View-Controller)设计模式,同时在显示模块应用J2EE中常用的Web层设计模式之一Composite View.
在MVC设计模式中,将对象分成三类:模型对象专门用来包装应用程序的状态, 视图用来负责屏幕上的展现,控制器则负责定义应用程序的各种动作和反应。
视图是用户看到并与之交互的界面。对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术己层出不穷,它们包括Flash和标识语言及Web services. MVC一个大的好处是它能为你的应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。但是,由于某些视图中可以出现许多相同的信息,而且这些信息可以事先设定,通过一个特定的模块或页面来实现。因而,可以应用Composite View技术,在一个大的页面嵌套这些模块。
模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务,能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。在本系统的分析中,就有一些类处理分数等信息。
控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后用确定用哪个视图来显示模型处理返回的数据。在本系统的分析中,由Servlet来处理用户请求。
MVC的处理过程,首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理,然后模型用业务逻辑来处理用户的请求并返回数据,最后控制器用相应的视图格式化模型返回的数据,并通过表示层呈现给用户。小的应用程序常常是要么不使用程序框架,要么是使用简单的请求分配机制和松散的代码编写规范.而大的应用程序则经常采用MVC应用程序框架,因为应用这种框架的程序的结构稳定,MVC的功能分离, 从而使程序更可靠,更容易维护和扩展,同时为这种框架开发的应用组件常常更容易再用。也就是这些原因,我们的选课系统决定采用MVC应用程序构架。
因而,在对网上成绩管理系统的设计与分析时,我们将系统的业务逻辑处理机制分为三大部分:业务层,数据模型层,表示层。
业务层负责程序的业务处理逻辑,它接受用户的输入并调用模型和视图去完成用户的需求,由Servlet实现。数据模型负责封装应用程序的核心功能及数据状态等。表示层是用户看到并与之交互的界面,负责模型的表示,是应用程序的外观。
2 网上成绩管理系统的需求分析
网上成绩管理系统的最终用户有3类:分管学生工作的老师,每个班级的学生干部(主要是班长),学生。
学生通过本系统能够十分方便的查询到自己的分数,每个学期的各门课程的成绩以及绩点。
学生干部即能够查看到本班每位同学详细的成绩情况,还是兼户着成绩管理与维护的职责。它在每学期结束时,以学生每门课程的所考的分数为基础,通过Internet访问本系统,管理学生成绩的后台数据库,及时做出管理与维护,以便学生或老师能够查看成绩信息。
分管学生工作的老师能够查询整个班级、年级或单个学生的详细成绩情况,能够获得对学生成绩的第一手的详细的管理资料。
使用这套系统,大大减轻了学生干部和学生工作老师的工作量,提高了他们的工作效率;同时每个学生查询自己的成绩分数也十分方便快捷。
2.1 用例分析
2.1.1 用户登陆网上成绩管理系统
在网上成绩管理系统中,首先是用户登陆用例。每个普通用户要从网上登陆到系统,必须进行身份确定,输入用户名和密码之后,系统对其进行认证,在用户名和密码认证通过后,系统将根据用户类型将指定的页面显示给用户。
2.1.2 用户修改个人信息
在网上成绩管理系统中,用户进入个人信息修改页面。在这个页面中,用户输入将要进行修改的密码、昵称、Email等信息,系统在接受这些信息后,更新用户数据,在成功更新了数据库后,将用户新的个人信息情况发送给用户。
2.1.3 学生用户查看本人所有学期的平均绩点
当用户成功登陆网上成绩管理系统后,系统根据他的用户类型是Student,将主界面设置为学生登陆后的界面。在学生主界面中,用户选择“查看本人所有学期的平均绩点”操作。系统在接受到这个请求后,从后台数据库中得到该学生所有学期的平均绩点,而后将结果返回到用户端,供学生查看。
2.1.4 学生用户查看本人在某学期中各科课程的分数
当用户成功登陆网上成绩管理系统后,系统根据他的用户类型是Student,将主界面设置为学生登陆后的界面。在学生主界面中,用户选择“查看本人在某学期中各科课程的分数”操作后,再输入将要查看成绩的学期。系统根据这个学期,从后台数据库中得到该学生在这个学期的所有课程的分数,而后将这些分数返回到用户端,供学生查看。
2.1.5 班干部用户查看本班某一同学所有学期的平均绩点
当用户成功登陆网上成绩管理系统后,系统根据他的用户类型是Monitor,将主界面设置为班干部登陆后的界面。在班干部主界面中,用户选择“查看本班某一同学所有学期的平均绩点”操作后,再选择输入将要查看成绩的本班同学。系统根据这个请求,从后台数据库中得到这个学生所有学期的平均绩点,而后将这些绩点返回到用户端,供班干部查看。
2.1.6 班干部用户查看本班某生在某一学期所有课程的分数
当用户成功登陆网上成绩管理系统后,系统根据他的用户类型是Monitor,将主界面设置为班干部登陆后的界面。在班干部主界面中,用户选择“查看本班某生在某一学期所有课程的分数”操作后,再选择输入将要查看成绩的本班同学和学期。系统根据这个请求,从后台数据库中得到该学生在这个学期的所有课程的分数,而后将这些分数返回到用户端,供班干部查看
2.1.7 班干部用户查看本班的所有学生在某一学期的平均绩点
当用户成功登陆网上成绩管理系统后,系统根据他的用户类型是Monitor,将主界面设置为班干部登陆后的界面。在班干部主界面中,用户选择“查看本班的所有学生在某一学期的平均绩点”操作后,再选择输入将要查看成绩的学期。系统根据这个请求,从后台数据库中得到本班所有学生在这个学期的平均绩点,而后将这些平均绩点返回到用户端,供班干部查看
2.1.8 班干部用户登记本班学生在某一学期上某一课程所得到的分数
当用户成功登陆网上成绩管理系统后,系统根据他的用户类型是Monitor,将主界面设置为班干部登陆后的界面。在班干部主界面中,用户选择“登记本班学生在某一学期上某一课程所得到的分数”操作后,先选择好学期和课程后,再按照学生与分数相对应的方式输入成绩。系统在接收到这些分数登记信息后,将成绩插入数据库中,以供用户查看这些新的数据。
2.1.9 教师用户查看某位学生所有学期的平均绩点
当用户成功登陆网上成绩管理系统后,系统根据他的用户类型是Teacher,将主界面设置为教师登陆后的界面。在教师主界面中,用户选择“查看某位学生所有学期的平均绩点”操作,而后输入将要查看成绩的学生,系统在接受到这个请求后,从后台数据库中得到这个学生所有学期的平均绩点,而后将结果返回到用户端,供教师查看。
2.1.10 教师用户查看某生在某一学期的所有课程的分数
当用户成功登陆系统后,系统根据他的用户类型是Teacher,将主界面设置为教师登陆后的界面。在教师主界面中,用户选择“查看某生在某一学期的所有课程的分数”操作,而后输入将要查看成绩的学生和学期,系统在接受到这个请求后,从后台数据库中得到这个学生在这个学期的所有课程的成绩,而后将结果返回到用户端,供教师查看。
2.1.11 教师用户查看某班所有学生在某个学期的平均绩点
当用户成功登陆系统后,系统根据他的用户类型是Teacher,将主界面设置为教师登陆后的界面。在教师主界面中,用户选择“查看某班所有学生在某个学期的平均绩点”操作,而后输入将要查看成绩的班级和学期,系统在接受到这个请求后,从后台数据库中得到这个班级所有学生在这个学期的绩点,而后将结果返回到用户端,供教师查看。
2.1.12 教师用户查看某年级所有学生在某个学期的平均绩点
当用户成功登陆系统后,系统根据他的用户类型是Teacher,将主界面设置为教师登陆后的界面。在教师主界面中,用户选择“查看某年级所有学生在某个学期的平均绩点”操作,而后输入将要查看成绩的年级和学期,系统在接受到这个请求后,从后台数据库中得到这个年级所有学生在这个学期的绩点,而后将结果返回到用户端,供教师查看。
2.1.13 班干部用户查看自己成绩
班干部用户查看自己成绩可看成学生用户查看自己成绩。这是因为可将班干部看成是一类特殊的学生用户。因而学生的用例也应该适合于班干部,所以学生用户查看本人所有学期的平均绩点和学生用户查看本人在某学期中各科课程的分数用例也适合于班干部。
2.2 系统用例图
根据3.1中“参与者和用例分析”,可以将系统的用户分为三大类:student,monitor,teacher. 这三类用户都是从user类继承下来,其中monitor 从student继承下来。各个用例和用户之间的关系如图3.1所示。
图3-1 网上成绩管理系统用例图
3 基于MVC构架的网上成绩管理系统的UML设计
3.1 网上成绩管理系统UML用例分析类图
在对网上成绩管理系统进行UML分析时,根据MVC架构的设计方式,将系统的类分为大致三大类:业务层,数据模型层,表示层。
一 业务层类图
对于涉及业务层逻辑的类,将其放在包controls中,它由StudentServlet,MonitorServlet,TeacherServlet,LoginServlet,ModifyInfoServlet和ManageDB组成。如图4-1所示。
图4-1业务层类图
在业务层中:LoginServlet负责用户登陆系统的处理逻辑,主要功能是密码认证。ManageDB负责系统对后台数据库的管理,包括读取学生分数、平均绩点和记录学生课程分数等的处理逻辑。ModifyServlet负责用户修改个人信息的处理逻辑。StudentServlet负责当学生用户使用系统时,提供相应的处理逻辑给学生,包括处理学生查询自己分数、绩点的功能。 MonitorServlet负责当班干部用户使用系统时,提供班干部的功能处理给用户,包括查询本班学生分数、绩点、和输入成绩等功能的处理。TeacherServlet负责教师用户使用系统时,提供查看班级、年级、学生个人等成绩的处理功能。
二 数据模型层
对于涉及数据模型层的类,将其放在包entries中,它由UserInfo、Session、 CourseScore 、GPA类组成。如图4-2所示。
图4-2数据模型层类图
在数据模型层中:userInfo负责在用户登陆系统后,记录其个人信息。CourseScore负是责记录学生课程分数的bean。 GPA是负责记录学生平均绩点的bean. Session 是J2EE中处理系统与用户动态交互时,交换相关信息的类。
三 表示层
对于涉及表示层的类,将其放在包interface中,它由Login.jsp、 relogin.jsp、StudentLogged.jsp、 MonitorLogged.jsp、TeacherLogged.jsp 、 ChooseTerm.form、 ChooseStudent.form 、ChooseClass.form 、ChooseGrade.form等 类组成。如图4-3所示。
图4-3表示层类图
在表示层中:StudentLogged.jsp、 MonitorLogged.jsp 、TeacherLogged.jsp分别是学生用户、班干部用户、教师用户登陆系统后的主界面。ChooseTerm.form、 ChooseStudent.form 、ChooseClass.form 、ChooseGrade.form表示选择学期、学生、班级、年级的功能。<<Jsp:include>> 表示在该jsp页面中提供了相对应的选择的功能。带后缀_client的类,表示它是客户端的页面,是服务器端的jsp页面在客户端的显示。
3.2 用户基本用例分析
用户基本用例包括“用户登陆系统”和“用户修改个人信息”。
3.2.1 用户登陆系统顺序图
用户从网上登陆系统的交互图如图4-4所示
图4-4网上登陆系统的交互图
用户从网上登陆系统的事件流如下:
1) 用户进入登陆界面login.jsp,输入用户名和密码,而后提交。
2) login页面将用户的登陆请求发送给LoginServlet,由它来处理这个操作。
3) LoginServlet收到请求后,从自身的request中得到用户名。
4) LoginServlet再从自身的request中得到密码。
5) LoginServlet以用户名和密码为参数调用类ManageDB的check方法,进行密码认证。
6) ManageDB以用户名和密码为查询参数,从后台数据库读取结果。
7) 如果读取失败,返回false给ManageDB
8) ManageDB再将false返回给LoginServlet.
9) LoginServlet根据false结果,将页面转到重登陆界面relogin.jsp
10) 如果步骤6)返回结果为true给ManageDB
11) ManageDB在从数据库读取用户信息等
12) ManageDB将用户信息返回给LoginServlet
13) LoginServlet根据用户信息建立UserInfo,
14) LoginServlet将UserInfo放入 session,存储用户信息以供系统使用
15) LoginServlet 根据用户类型为Student ,将主界面转入StudentLogged.jsp
16) LoginServlet 根据用户类型为Monitor,将主界面转入MonitorLogged.jsp
17) LoginServlet 根据用户类型为teacher,将主界面转入TeacherLogged.jsp
3.2.2 用户修改个人信息顺序图
用户从网上修改个人信息的交互图如图4-5所示
图4-5用户修改个人信息顺序图
用户从网上修改个人信息的事件流如下:
1) 用户选择修改个人信息操作,并在userInfo.jsp页面中输入要修改的个人信息,如password,nickName,email等
2) userInfo.jsp将用户修改个人信息的请求发送给ModifyInfoServlet处理
3) ModifyInfoServlet收到修改个人信息请求后,从自身的request中获取将要修改的password.
4) ModifyInfoServlet从自身的request中获取将要修改的nickName.
5) ModifyInfoServlet从自身的request中获取将要修改的email.
6) ModifyInfoServlet以password,nickName,email为参数调用ManageDB的updateUserInfo方法,进行数据库更新。
7) ManageDB在后台对数据库进行更新。
8) 更新完成后,ModifyInfoServlet将页面转向userInfo.jsp
9) userInfo.jsp自动更新,将修改后的个人信息显示给用户
3.3 学生用例分析
根据MVC的设计方式,对学生用户在使用系统时,后台使用StudentServlet处理学生使用网上成绩管理系统的处理逻辑,前台显示由学生主页面负责。
3.3.1 查看自己各个学期的平均绩点顺序图
学生用户查看自己各个学期的平均绩点的交互图如图4-6所示
学生用户查看自己各个学期的平均绩点的事件流如下:
1) 学生用户提交查看自己各个学期的平均绩点的请求给studentLogged.jsp主界面。
2) studentLogged.jsp将请求交给StudentServlet来处理
3) StudentServlet首先调用Session,得到用户的个人信息以便获得用户的学号。
4) session创建用户个人的信息userInfo。
5) StudentServlet从userInfo中得到用户的学号。
6) StudentServlet以学号为参数,调用ManageDB的getStuGPAs 方法,获得该学生的各个学期的平均绩点。
7) ManageDB从后台数据库中得到该学生各个学期的平均绩点。
8) ManageDB将该学生各个学期的平均绩点放入类GPAs 的实例中存储。
9) 该实例返回给StudentServlet。
10) StudentServlet将这个GPAs的实例转发到平均绩点显示页面GPAs.jsp中,作为该页面显示的数据。
图4-6学生查看自己各个学期的平均绩点的交互图
3.3.2 查看自己某一学期所有课程的分数顺序图
学生用户查看自己某一学期所有课程的交互图如图4-7所示
图4-7学生用户查看自己某一学期所有课程的交互图
学生用户查看自己某一学期所有课程的事件流如下:
1) 学生在主界面studentLogged.jsp中选择要查看自己某一学期所有课程的学期。
2) 学生在主界面下的chooseTerm.form中选择学期。
3) 学生提交查询的请求
4) studentLogged.jsp将请求交给StudentServlet来处理
5) StudentServlet首先调用Session,得到用户的个人信息以便获得用户学号。
6) session创建用户个人的信息UserInfo。
7) StudentServlet从UserInfo中得到用户的学号。
8) StudentServlet以学号和学期为参数,调用ManageDB的getStuCourseScores 方法,获得该学生的某一学期所有课程的分数。
9) ManageDB从后台数据库中得到该学生某一学期所有课程的分数。
10) ManageDB将该学生某一学期所有课程的分数放入类CourseScores 的实例中存储。
11) 该实例返回给StudentServlet。
12) StudentServlet将这个CourseScores的实例转发到成绩显示页面Scores.jsp中,作为该页面显示的数据。
3.4 班干部主要用例分析
根据MVC的设计方式,对班干部用户在使用系统时,后台使用MonitorServlet处理班干部使用网上成绩管理系统的处理逻辑,前台显示由班干部主页面负责。
班干部的用例主要有四个:查看本班某一学生在所有学期的平均绩点,查看本班某一学生在某一学期的所有课程的分数,查看本班所有学生在某一学期的平均绩点,登记本班学生分数。在此,以查看本班所有学生在某一学期的平均绩点和登记本班学生分数为代表进行分析。
3.4.1 查看本班所有学生在某一学期的平均绩点
班干部用户查看本班所有学生在某一学期的平均绩点的交互图如图2-8所示。
图2-8班干部用户查看本班所有学生在某一学期的平均绩点的交互图
班干部用户查看本班所有学生在某一学期的平均绩点的事件流如下:
1) 班干部在主界面MonitorLogged.jsp中选择要查看的学期。
2) 班干部在主界面下的chooseTerm.form中选择学期。
3
展开阅读全文