当前位置:文档之家› 毕业论文-学生成绩管理系统

毕业论文-学生成绩管理系统

目录

摘要................................................................................................................................................ I Abstract .......................................................................................................................................... II 1 引言. (1)

1.1 项目开发背景 (1)

1.2 项目开发的目标 (1)

1.3 项目提出的意义 (1)

2 相关技术 (3)

2.1 JSP (3)

2.1.1 JSP简介 (3)

2.1.2 JSP 的优点 (3)

2.2 Java Servlet (4)

2.2.1 Servlet 概述 (4)

2.2.2 Servlet API (4)

2.2.3 Servlet的优点 (4)

2.3 Java Bean (5)

2.3.1 JavaBean简介 (5)

2.3.2 JavaBean的Scope属性 (6)

2.4 UML(统一建模语言) (6)

2.4.1 UML(统一建模语言)简介 (6)

2.4.2 用例图-----捕获系统中用户能够看见的功能 (8)

2.4.3 类图-----捕获系统的词汇表 (9)

2.5 C/S结构和B/S结构 (9)

2.5.1 B/S模式的优势 (10)

2.5.2 C/S模式的优势 (10)

2.5.3 C/S模式与B/S模式相结合方案 (11)

3系统分析设计 (12)

3.1系统需求分析 (12)

3.1.1系统调查 (12)

3.1.2 系统需求说明 (12)

3.1.3 用户需求 (12)

3.2总体设计 (13)

3.3 UML建模 (13)

3.3.1 学生管理系统的用例分析 (13)

3.3.2 学生管理系统的领域分析 (14)

3.3.3 学生管理系统的设计 (15)

3.4数据库技术 (20)

3.4.1数据库管理系统选择 (20)

3.4.2 MySQL 概述 (20)

3.4.3 数据库ER图 (22)

3.4.4 构建系统数据库 (22)

3.5 系统配置 (25)

3.6 系统实现 (26)

3.6.1 用户登录界面 (26)

3.6.2 管理员登录后的操作界面 (26)

3.6.3 添加学生的操作界面 (27)

4. 总论 (29)

4.1系统的优点 (29)

4.2系统存在的不足 (29)

致谢 (30)

参考文献 (31)

摘要

近年来,我国高等教育迎来了蓬勃发展的新局面,采用传统的学生信息管理方法(如直接手工管理或者开放性程度不高的管理系统)不可避免的浪费大量人力、物力、财力资源,不能满足当前高等教育发展的需求,已经成为我国高等教育扩大规模的“瓶颈”。建立高性能的学生信息管理系统能高极大的提高学生信息管理的效率。本文采用面向对象技术,使用UML进行系统分析和设计,较成功地解决了学生管理信息地分散采集、综合利用、统一管理、资源共享等问题。主要介绍了学生信息管理系统地现状和主要特征,系统所采用的UML、Servlet、JavaBean、JSP与MySQL等技术和工具,C/S模式和B/S模式以及使用UML进行得系统的开发设计和功能模块的具体实现。

关键词:学生信息管理;JSP;MySQL数据库;统一建模语言

Abstract

Recently, the education of the higher schools has had a complexion with the schools’ enrolling large amount of freshmen. So adopting conventional students’ basic information procedure(as direct management by handiwork, administrative system not high of ope n degree) would waste a large amount of manpower, material and financial resources, and progressively ca n’t be met with the demand of the higher education’s development at present. All this has become the “bottleneck” in the course of enlarging China higher education’s scale. Establishment of high-efficient students’ information system has been an indispensable part in higher schools’ management. It will help to increase efficiency in management.

The paper mainly analyzes the target’s technology and explains the design of the students’ information management system using UML(Unified Modeling Language). So that it can solve such problems as scattering and gathering data, comprehensive utilization, unified management, resource-sharing, etc.

The paper mainly de als with the prevailing situation and characteristics of the students’ information management system, the technology and tools including UML、Servlet、JavaBean、JSP and MySQL, Model C/S and B/S and the process of the design of the system using UML as well as the implementation of each functional modulation

Key words: SIMS(student information management system);JSP;MySQL DataBase;UML

1 引言

1.1 项目开发背景

在现代社会中,教育界是IT厂商的重要客户之一,随着计算机的发展,各大中院校纷纷建设了自己的管理信息系统,其中,学生管理信息系统是一个重要组成部分。应该说,学生管理信息系统是一个比较古老的应用,在数据库应用刚出现时,就在DOS系统下出现了各种版本的学生管理信息系统。从dBase到Oracle,从单机版到网络版到目前的三层结构,学生管理信息系统也在不断地随计算机技术的发展扩充其功能。伴随着教育部的面向21世纪教育振兴行动计划(教育部1998年12月24日制定,国务院1999年1月13日批转)的实施,全国各个高校均大力推进高校内部管理体系改革。以计算机网络技术为核心的信息高速公路的兴起,更是突破了传统教育文化观念和教育活动的时空界限,使学校的教育手段和决策效率都发生了深刻的变化。随着校园网的投资兴建,信息现代化成为高校一个新的发展与竞争的热点,也成为影响学校教学、科研实力、学校管理水平的重要因素,如何实现基于校园网络的现代学生信息管理,这是目前学生管理的又一新课题。但目前许多高校学生管理工作依然为传统的学生管理模式,采用手工作业式管理,其文字工作量大,效率不高,资源综合利用差,各种报表完成周期长,且容易产生操作上的失误,常常使管理人员陷于繁杂的事务管理之中而达不到很好的管理效果。

实现学生管理信息化便于在各院系、一个学校、一个地区甚至全国同类院校中达到资源共享,取长补短,使学生管理更加科学化;同时,还有助于规范高等学校的管理,促进学校开展学生管理评估工作,提高办学质量,加强信息交流与处理,推动管理改革。所以实施学生信息化管理是目前高校学生管理工作发展的必然。

1.2 项目开发的目标

旧的管理手段已不能适应时代的发展,因为它浪费了了许多的人力和物力。在当今信息时代这种传统的管理方法必然被计算机为基础的信息管理系统所代替。利用计算机对学生信息进行管理,具有人工管理无法比拟的优点,如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等,这些优点能够极大的提高学生信息管理的效率,也是科学化、正规化的体现。因此,开发适应新形势需要的学生信息管理系统是很必要的。

建立学生信息管理系统,采用计算机对学生信息进行管理,进一步提高办学效益和现代化水平。帮助广大教师提高工作效率,实现学生信息管理工作流程的系统化、规范化和自动化。

1.3 项目提出的意义

二十世纪科技发展的卓越成就之一就是发明了电子计算机。它是一种自动、高速、精确地处理信息的现代化电子设备。由于它具有速度快、精度高、存储容量大、自动化程度高的特点,目前已广泛深入地适用社会生活的各个领域,对人类科学和生活发挥着不可估量的作用,从某种程度上讲,计算机理论水平及其应用的深度、广度已成为衡量一个国家现代化水平的重要标志之一。

随着高等教育改革的逐年加快,学生数量的稳定增加,旧的学生信息管理体制(如主要基于文字记录管理或者开放性程度不高的系统)已经不能适应当今社会发展的需要;以计算机技术为基础的新型学生信息管理系统已经成为我国高等教育扩大规模和培养高等人才跨世纪工程的关键环节,也是高等教育得以顺利发展的基础条件。建设相关的学生信息管理系统,将会促进高等教育的发展,进行基于网络环境的学生信息管理系统的研发可

以为我国高等教育扩大规模发展的跨世纪工程提供强有力的技术支持,具有一定的应用价值。如何有效管理学生信息、方便管理人员实时获取学生信息资料、保障系统安全已经成为当前开发学生信息管理系统面临的首要问题。

高层次人才培养的水平不应该只表现在数量上,更加应该是质量上的高标准。这必然会对管理上提出了更加的要求。为了提高高校学生教育的管理水平和效率,学校各部门积极引进和开发先进的计算机管理手段,促进了信息的收集、管理和交换,但是各个部门之间的软件模块存在体系不一致、系统兼容性差、不方便扩展、安全性能差、开放程度低等缺点。随着互联网技术的迅猛发展,校园内部网建立,为信息管理现代化和信息交流提供了良好的运行环境。迫切要求信息共享,对信息标准化的要求也更加的迫切,开发高效实时的学生信息管理系统。

2 相关技术

2.1 JSP

2.1.1 JSP简介

JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与建立的一种动态网页技术标准,该技术为创建显示动态内容的Web页面提供了一个简捷而快速的方法。JSP技术的设计目的是使得构建基于Web的应用程序更加容易和快捷,而这些应用程序能够与各种Web服务器、应用服务器、浏览器和开发工具共同工作。 JSP规范就是Web服务器、应用服务器、交易系统、以及开发工具供应商间广泛合作的结果。在传统的网页HTML 文件(*htm,*.html)中加入Java程序片段(Scriptlet)和JSP标记(tag),就构成了JSP网页(*.jsp)。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给客户。程序片段可以操作数据库、重新定向网页以及发送 email 等等,这正是建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是运行的结果,对客户浏览器的要求最低,可以实现无Plugin,无ActiveX,无Java Applet,甚至无Frame。

2.1.2 JSP 的优点[4]

2.1.2.1 将内容的生成和显示进行分离

使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使用JSP标识或者小脚本来生成页面上的动态内容(内容是根据请求来变化的,例如请求帐户信息或者特定的一瓶酒的价格)。生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。如果核心逻辑被封装在标识和JavaBeans中,那么其他人,如Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。在服务器端,JSP引擎解释JSP标识和小脚本,生成所请求的内容(例如,通过访问JavaBeans组件,使用JDBCTM技术访问数据库,或者包含文件),并且将结果以HTML(或者XML)页面的形式发送回浏览器。这有助于作者保护自己的代码,而又保证任何基于HTML的Web浏览器的完全可用性。

2.1.2.2 强调可重用的组件

绝大多数JSP页面依赖于可重用的,跨平台的组件(JavaBeans或者Enterprise JavaBeansTM组件)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件能够为更多的使用者或者客户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡

2.1.2.3 采用标识简化页面开发

Web页面开发人员不会都是熟悉脚本语言的编程人员。Java Server Pages技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成所需要的。标准的JSP标识能够访问和实例化JavaBeans组件,设置或者检索组件属性,下载Applet,以及执行用其他方法更难于编码和耗时的功能。

通过开发定制化的标识库,JSP技术是可以扩展的。今后,第三方开发人员和其他人员可以为常用功能创建自己的标识库。这使得Web页面开发人员能够使用熟悉的工具和如同标识一样的执行特定功能的构件来工作。

JSP技术很容易整合到多种应用体系结构中,以利用现存的工具和技巧,并且扩展到能够支持企业级的分布式应用。作为采用Java技术的家族的一部分,以及Java 2(企业

版体系结构)的一个组成部分,JSP技术能够支持高度复杂的基于Web的应用。

由于JSP页面的内置脚本语言是基于Java编程语言的,而且所有的JSP页面都被编译成为Java Servlet,JSP页面就具有Java技术的所有好处,包括健壮的存储管理和安全性。作为Java平台的一部分,JSP拥有Java编程语言“一次编写,各处运行”的特点。随着越来越多的供应商将JSP支持添加到他们的产品中,您可以使用自己所选择的服务器和工具,更改工具或服务器并不影响当前的应用。当与Java 2平台,企业版(J2EE)和Enterprise JavaBean技术整合时,JSP页面将提供企业级的扩展性和性能,这对于在虚拟企业中部署基于Web的应用是必需的。

2.2 Java Servlet

2.2.1 Servlet 概述

一个Servlet就是Java编程语言中的一个类,它被用来扩展服务器的性能,它是在服务器上驻留的可以通过“请求-响应”编程模型来访问的应用程序。Servlet是最主要的Java Web应用组件之一,是与平台无关的服务器端组件;运行在Servlet容器中。Servlet 容器负责处理客户请求、把请求传送给Servlet并把结果返回给客户。不同程序的容器实际实现可能有所变化,但容器与Servlet之间的接口是由ServletAPI定义好的,这个接口定义了Servlet容器在Servlet上要调用的方法及传递给Servlet的对象类。

Servlet的生命周期:

★Servlet容器创建Servlet的一个实例

★容器调用该实例的init()方法

★如果容器对该Servlet有请求,则调用此实例的service()方法

★容器在销毁本实例前调用它的destroy()方法

★销毁并标记该实例以供作为垃圾收集

一旦请求了一个Servlet,就没有办法阻止容器执行一个完整的生命周期。容器在Servlet首次被调用时创建它的一个实例,并保持该实例在内存中,让它对所有的请求进行处理。容器可以决定在任何时候把这个实例从内存中移走。在典型的模型中,容器为每个Servlet创建一个单独的实例,容器并不会每接到一个请求就创建一个新线程,而是使用一个线程池来动态的将线程分配给到来的请求,但是这从Servlet的观点来看,效果和为每个请求创建一个新线程的效果相同。

2.2.2 Servlet API

Servlet框架由两个包组成:javax.servlet和javax.servlet.http;其核心是javax.servlet.Servlet接口,该接口5个方法,其中有三个方法代表了Servlet的生命周期:

init() 负责初始化Servlet对象

service() 负责响应来自客户的请求

destroy() 当Servlet对象退出生命周期时,负责释放占用的资源

HTTP的请求方式包括DELETE、GET、OPTIONS、POST、PUT、TRACE,在HttpServlet类中分别提供了相应的方法: doDelete()、doGet()、doOptions()、doPost()、doPut()、doTrace()

2.2.3 Servlet的优点[5]

Servlet是Java技术对CGI编程的回答。Servlet程序在服务器端运行,动态地生成Web页面。与传统的CGI和许多其他类似CGI的技术相比,Java Servlet具有更高的效率,

更容易使用,功能更强大,具有更好的可移植性,更节省投资。

2.2.

3.1高效

在传统的CGI中,每个请求都要启动一个新的进程,如果CGI程序本身的执行时间较短,启动进程所需要的开销很可能反而超过实际执行时间。而在Servlet中,每个请求由一个轻量级的Java线程处理(而不是重量级的操作系统进程)。在传统CGI中,如果有N 个并发的对同一CGI程序的请求,则该CGI程序的代码在内存中重复装载了N次;而对于Servlet,处理请求的是N个线程,只需要一份Servlet类代码。在性能优化方面,Servlet 也比CGI有着更多的选择,比如缓冲以前的计算结果,保持数据库连接的活动,等等。2.2.3.2 方便

Servlet提供了大量的实用工具例程,例如自动地解析和解码HTML表单数据、读取和设置HTTP头、处理Cookie、跟踪会话状态等。

2.2.

3.3功能强大

在Servlet中,许多使用传统CGI程序很难完成的任务都可以轻松地完成。例如,Servlet能够直接和Web服务器交互,而普通的CGI程序不能。Servlet还能够在各个程序之间共享数据,使得数据库连接池之类的功能很容易实现。

2.2.

3.4可移植性好

Servlet用Java编写,Servlet API具有完善的标准。因此,为I-Planet Enterprise Server写的Servlet无需任何实质上的改动即可移植到Apache、Microsoft IIS或者WebStar,有的主流服务器都直接或通过插件支持Servlet。

2.2.

3.5节省投资

不仅有许多廉价甚至免费的Web服务器可供个人或小规模网站使用,而且对于现有的服务器,如果它不支持Servlet的话,要加上这部分功能也往往是免费的(或只需要极少的投资)。

2.3 Java Bean

2.3.1 JavaBean简介[4]

JavaBean是Sun公司为进入因特网、企业网以及万维网上进行分布式计算的组件结构的入口。按照Sun公司的定义,JavaBean是一个可重复使用的软件部分,该部件可以用来生成其进行可视化处理的组件。JavaBean是描述Java的软件组件模型,有点类似于Microsoft的COM组件概念。JavaBean组件是Java类,这些类遵循一个接口格式,以便于使方法命名、底层行为以及集成或实现的行为能够把类看做标准的JavaBean组件来进行构造。在Java模型中,通过JavaBean可以无限扩充Java程序的功能,通过JavaBean 的组合可以快速的生成新的应用程序。对于程序员来说,最好的一点就是JavaBean可以实现代码的重复利用,另外对于程序的易维护性等等也有很重大的意义。

JavaBean被称为是Java组件技术的核心。JavaBean的结构必须满足一定的命名约定。JavaBean类似于Windows下的ActiveX控件:它们都能够提供常用功能并且可以重复使用。JavaBean可以在JSP程序中应用,这使得开发人员可以把某些关键功能和核心算法提取出来,封装成为一个组件对象,增加了代码的重用率和系统的安全性。如将访问数据库的功能、数据处理功能编写封装为JavaBean组件,然后在某个JSP程序中加以调用。JavaBean 技术与ActiveX相比,有着很大的优越性,例如JavaBean与平台无关性,使得JavaBean 从一个平台移植到另外的平台上,代码可以不需要修改,甚至不需要重新编译。但是ActiveX就不同,它只能够应用于Windows平台,而且它的代码移植性很差,从Windows98平台移植到NT平台就需要重新编译代码,甚至要大幅度改写程序。另一方面JavaBean比ActiveX要容易编写很多,用起来也方便得多。JavaBean组件在使用以前不需要注册,而

ActiveX组件在使用以前必须在操作系统中注册,否则在运行的时候,系统会报错。

2.3.2 JavaBean的Scope属性

对于JSP程序而言,使用JavaBean组件不仅可以封装许多信息,而且可以将一些数据处理的逻辑隐藏到JavaBean的内部,除此之外,还可以设定JavaBean的Scope属性,使得JavaBean组件对于不同的任务具有不同的生命周期和不同的使用范围。

2.3.2.1 Application Scope

如果JavaBean的Scope属性被指定为Application,即这个JavaBean组件具有Application Scope。如果一个JavaBean组件具有Application Scope,那么它的生命周期JSP的Application对象同步,作用范围也和Application对象一样。使用这种类型的JavaBean组件,可以在多个用户之间共享全局信息。具体来说,它的生命周期是这样:如果某个JSP程序使用操作指令创建了一个JavaBean对象,而且这个JavaBean组件具有Application Scope,那么这个JavaBean就一直在服务器的内存空间中待命,随时处理客户端的请求,直到服务器关闭为止,它的保存信息才消失,它所占用的系统资源才会被释放。

2.3.2.2 Session Scope

如果一个JavaBean组件的属性值为Session,那么这个JavaBean组件的生命周期、作用范围就和JSP的Session对象的生命周期、作用范围一样。即这一类型的JavaBean 组件的生命周期就是某个会话过程所经历的时间。会话过程是对于单个用户而言的,会话过程的开始以用户开始访问某个网站为标志,会话过程的结束以用户结束对该网站的访问为标志。不同用户对应着不同会话过程,不同的会话过程之间互不干涉,互不影响。

2.3.2.3 Request Scope

如果JavaBean的Scope属性值被设为request,那么这种类型的JavaBean组件对象的生命周期、作用范围和JSP的Request对象一样。当一个JSP程序使用操作指令定向到另一个JSP程序或者是使用操作指令导入另外的JSP程序,那么第一个JSP程序会把Request对象传送到下一个JSP程序,而属于Request Scope的JavaBean组建对象也将伴随着Request对象送出,被第二个JSP程序接受。因此,所有通过这两个操作指令连接在一起的JSP程序都可以共享一个Request对象,共享这种类型的JavaBean组件对象。

这种类型的JavaBean组件对象使得JSP程序之间传递信息更为容易,不过美中不足的是这种JavaBean不能够用于客户端与服务器之间传递信息,因为客户端是没有办法执行JSP程序,创建新的JavaBean组件对象。

2.3.2.4 Page Scope

如果一个JavaBean的Scope属性被设为page,那么它的生命周期和作用范围在这四种类型的JavaBean组件中是最小的。Page Scope类型的JavaBean组件的生命周期为JSP 程序的运行周期,当JSP程序运行结束,那么该JavaBean组件的生命周期也就结束。Page Scope类型的JavaBean组件程序的作用范围只限于当前的JSP程序中,它无法在别的JSP 程序中起作用,对应于不同的客户端请求,服务器都会创建新的JavaBean组件对象,而且一旦客户端的请求执行完毕,那么该JavaBean对象会马上注销,无法为别的客户端请求所使用。

2.4 UML(统一建模语言)

2.4.1 UML(统一建模语言)简介

UML(统一建模语言)是为软件系统的制品进行详述(specifying)、可视化

(visualizing)、构造化(constructing)、文档化(documenting)的一种语言。UML目前是软件行业标准的建模语言。可以采用UML对需求、分析、设计、实现、部署等工作进行标准的形式化描述,达到交流共同的作用。同时基于UML的模型驱动开发支持以架构为核心、、快速分析设计、迭代增量的开发方法。

UML语言由图元、关系、扩展机制和对象约束语言(OCL)组合。

2.4.1.1图元

图2-1 图元图

2.4.1.2关系[1]

2.4.1.2.1依赖关系

依赖关系是一种使用关系,特定事物的改变有可能会影响到使用该事物的事物,反之不成立。在我们想显示一个事物使用另一个事物时使用依赖关系。通常情况下,依赖关系体现在某个类的方法使用另一个类作为参数。

2.4.1.2.2关联关系

关联表示两个类之间存在某种语义上的联系。例如,一个人为一家公司工作,一家公司有许多办公室。我们就认为人和公司、公司和办公室之间存在某种语义上的联系。在分析设计的类图模型中 , 则在对应人类和公司类、公司类和办公室类之间建立关联关系。

关联有两元关系和多元关系。两元关系是指一种一对一的关系,多元关系是一对多或多对一的关系。一般用实线连接有关联的同一个类或不同的两个类。当我们想要表示结构化关系时使用关联。

关联可以有方向,表示该关联单方向被使用。关联上加上箭头表示方向,在 UML 中称为导航。我们将只在一个方向上存在导航表示的关联,称作单向关联,在两个方向上都有导航表示的关联,称作双向关联。

既然关联可以是双向的,最复杂的命名方法是每个方向上给出一个名字,这样的关联有两个名字,可以用小黑三角表示名字的方向。为关联命名有几种方法,其原则是该命名是否有助于理解该模型。

关联两头的类以某种角色参与关联。例如:" 公司 " 以 " 雇主 " 的角色," 人 " 以" 雇员 " 的角色参与的 " 工作合同 " 关联。 " 雇主 " 和 " 雇员 " 称为角色名。如果在关联上没有标出角色名,则隐含地用类的名称作为角色名。

角色还具有多重性 (Multiplicity),表示可以有多少个对象参与该关联。多重性表示参与对象的数目的上下界限制。 "*" 代表 0 ~∞,可以用一个单个数字表示,也可以用范围或者是数字和范围不连续的组合表示。

2.4.1.2.3聚集关系

聚集是一种特殊形式的关联。聚集表示类之间的关系是整体与部分的关系。一辆轿车包含四个车轮、一个方向盘、一个发动机和一个底盘,这是聚集的一个例子。在需求分析中," 包含 "、" 组成 "、"分为……部分" 等经常设计成聚集关系。

聚集可以进一步划分成共享聚集和组成。例如:课题组包含许多成员,但是每个成员又可以是另一个课题组的成员,即部分可以参加多个整体,我们称之为共享聚集。另一种情况是整体拥有各部分,部分与整体共存,如整体不存在了,部分也会随之消失,这称为组成。例如:我们打开一个可视窗口 , 它就由标题、外框和显示区所组成。一旦消亡则各部分同时消失。在 UML 中,聚集表示为空心菱形 , 组成表示为实心菱形。

2.4.1.2.4泛化关系

泛化关系是继承关系,是“ is-a-kind-of ”的关系。人们将具有共同特性的元素抽象成类别,并通过增加其内涵而进一步分类。例如:动物可分为飞鸟和走兽,人可分为男人和女人。在面向对象方法中一般将前者称为父元素,将后者称为子元素。继承定义了父元素和子元素之间的分类关系。例如将客户进一步分类成个体客户和团体客户,使用的就是继承关系。

在 UML 定义中对继承有三个要求:

子元素应与父元素完全一致,父元素所具有的关联、属性和操作,子元素也都隐含性地具有;

子元素还应包含额外信息;

允许使用父元素实例的地方,也应能使用子元素。

2.4.1.2.5实现关系

实现关系中的一方(甲方)作为要求被提出,另一方(乙方)具体履行要求中声明的任务。类图中出现得实现关系大多表述子系统或类实现接口。例如,雇佣“家庭保姆”或将孩子送到“幼儿园“都可以完成接口“照顾学龄前儿童”中规定得任务。

实现关系得表述方式为虚线加上一个空心箭头,如果甲方是接口,对应于接口的两种表述形式,实现关系也有两种表现形式:简略的形式和详细的形式。

2.4.1.3扩展机制

UML本身提供扩展机制,可以扩展UML的语义来建立针对特定对象的描述机制,UML的构造型包括:

构造型

约束

特征值

注释

图2-2 扩展机制图

2.4.2 用例图-----捕获系统中用户能够看见的功能

1) 角色:任何一个与系统发生相互作用的事物都可以表现为一个角色。角色可以是

人也可以是物。

2) 一个用例定义了一组系统要做的有序的动作序列,并且这个动作序列要产生一个可观测的结果,返回给某一个特定的角色。

单个执行者可与多个用例联系;反过来,一个用例可与多个执行者联系。对同一个用例而言,不同执行者有着不同的作用;他们可以从用例中取值,也可以参与到用例中。

2.4.3 类图-----捕获系统的词汇表

1) 类是具有相同属性、操作、关系的对象集合的总称。通常在 UML 中类被画成矩形。

2) 类图:描述类和类之间的静态关系,在系统的整个生命周期都是有效的。与数据模型不同,它不仅显示了信息的结构,同时还描述了系统的行为。类图是定义其它图的基础。在类图的基础上,状态图、协作图等进一步描述了系统其他方面的特性。

3) 名称:每个类都必须有一个名字,用来区分其它的类。类名是一个字符串,称为简单名字。

4) 属性:是指类的命名的特性,常常代表一个类的取值。类可以有任意多个属性,也可以没有属性。可以只写上属性名,也可以在属性名后跟上类型甚至缺省取值。根据图的详细程度,每条属性可以包括属性的可见性、属性名称、类型、缺省值和约束特性。UML 规定类的属性的语法为:" 可见性属性名:类型=缺省值{ 约束特性 }" 。

常用的可见性有 Public、Private和Protected 三种,在 UML 中分别表示为 "+"、"-" 和 "#" 。

类型表示该属性的种类。它可以是基本数据类型,例如整数、实数、布尔型等,也可以是用户自定义的类型。一般它由所涉及的程序设计语言确定。

约束特性则是用户对该属性性质一个约束的说明。例如 "{ 只读 }" 说明该属性是只读属性。

5) 操作:是类的任意一个实例对象都可以调用的,并可能影响该对象行为的实现。该项可省略。操作用于修改、检索类的属性或执行某些动作。它们被约束在类的内部,只能作用到该类的对象上。 UML 规定操作的语法为:可见性操作名 ( 参数表 ) :返回类型 { 约束特性 } 。

6) 约束:在 UML 中,可以用约束表示规则。约束是放在括号 "{ }" 中的一个表达式,表示一个永真的逻辑陈述。

7) 组织属性和方法:在画类图的时候没有必要将全部的属性和操作都画出来。实际上,在大部分情况下我们也不可能在一个图中将类的属性和操作都画出来。在画类图时可以只将感兴趣的属性和操作画出来就可以了。可以用” ... ”表示还有属性或方法没有画出来。

2.5 C/S结构和B/S结构

C/S模式主要由客户应用程序(Client)、服务器管理程序(Server)和中间件(middleware)三个部件组成。客户应用程序是系统中用户与数据进行交互的部件。服务器程序负责有效地管理系统资源,如管理一个信息数据库,其主要工作是当多个客户并发地请求服务器上的相同资源时,对这些资源进行最优化管理。中间件负责联结客户应用程序与服务器管理程序,协同完成一个作业,以满足用户查询管理数据的要求。

B/S模式是一种以Web技术为基础的新型的MIS系统平台模式。把传统C/S模式中的服务器部分分解为一个数据服务器与一个或多个应用服务器(Web服务器),从而构成一个三层结构的客户服务器体系。

第一层客户机是用户与整个系统的接口。客户的应用程序精简到一个通用的浏览器软件,如Netscape Navigator,微软公司的IE等。浏览器将HTML代码转化成图文并茂的网

页。网页还具备一定的交互功能,允许用户在网页提供的申请表上输入信息提交给后台,并提出处理请求。这个后台就是第二层的Web服务器。

第二层Web服务器将启动相应的进程来响应这一请求,并动态生成一串HTML代码,其中嵌入处理的结果,返回给客户机的浏览器。如果客户机提交的请求包括数据的存取,Web服务器还需与数据库服务器协同完成这一处理工作。

第三层数据库服务器的任务类似于C/S模式,负责协调不同的Web服务器发出的SQL 请求,管理数据库。

2.5.1 B/S模式的优势

2.5.1.1它简化了客户端

它无需像C/S模式那样在不同的客户机上安装不同的客户应用程序,而只需安装通用的浏览器软件。这样不但可以节省客户机的硬盘空间与内存,而且使安装过程更加简便、网络结构更加灵活。假设一个企业的决策层要开一个讨论库存问题的会议,他们只需从会议室的计算机上直接通过浏览器查询数据,然后显示给大家看就可以了。甚至与会者还可以把笔记本电脑联上会议室的网络插口,自己来查询相关的数据。其次,它简化了系统的开发和维护。系统的开发者无须再为不同级别的用户设计开发不同的客户应用程序了,只需把所有的功能都实现在Web服务器上,并就不同的功能为各个组别的用户设置权限就可以了。各个用户通过HTTP请求在权限范围内调用Web服务器上不同处理程序,从而完成对数据的查询或修改。现代企业面临着日新月异的竞争环境,对企业内部运作机制的更新与调整也变得逐渐频繁。相对于C/S,B/S的维护具有更大的灵活性。当形势变化时,它无须再为每一个现有的客户应用程序升级,而只需对Web服务器上的服务处理程序进行修订。这样不但可以提高公司的运作效率,还省去了维护时协调工作的不少麻烦。如果一个公司有上千台客户机,并且分布在不同的地点,那么便于维护将会显得更加重要。

2.5.1.2 它使用户的操作变得更简单

对于C/S模式,客户应用程序有自己特定的规格,使用者需要接受专门培训。而采用B/S模式时,客户端只是一个简单易用的浏览器软件。无论是决策层还是操作层的人员都无需培训,就可以直接使用。B/S模式的这种特性,还使MIS系统维护的限制因素更少。

2.5.1.3 B/S特别适用于网上信息发布,使得传统的MIS的功能有所扩展

这是C/S所无法实现的。而这种新增的网上信息发布功能恰是现代企业所必需的。这使得企业的大部分书面文件可以被电子文件取代,从而提高了企业的工作效率,使企业行政手续简化,节省人力物力。

鉴于B/S相对于C/S的先进性,B/S逐渐成为一种流行的MIS系统平台。各软件公司纷纷推出自己的Internet方案,基于Web的财务系统、基于Web的ERP。一些企业已经领先一步开始使用它,并且收到了一定的成效。

B/S模式的新颖与流行,和在某些方面相对于C/S的巨大改进,使B/S成了MIS系统平台的首选,也使人忽略了B/S不成熟的一面,以及C/S所固有的一些优点。下面让我们来看C/S相对于B/S的一些优势。

2.5.2 C/S模式的优势

2.5.2.1交互性强是C/S固有的一个优点

在C/S中,客户端有一套完整的应用程序,在出错提示、在线帮助等方面都有强大的功能,并且可以在子程序间自由切换。B/S虽然由JavaScript、VBScript提供了一定的交互能力,但与C/S的一整套客户应用相比是太有限了。

2.5.2.2 C/S模式提供了更安全的存取模式

由于C/S是配对的点对点的结构模式,采用适用于局域网、安全性比较好的网络协议

(例如:NT的NetBEUI协议),安全性可以得到较好的保证。而B/S采用点对多点、多点对多点这种开放的结构模式,并采用TCP/IP这一类运用于Internet的开放性协议,其安全性只能靠数据服务器上管理密码的数据库来保证。现代企业需要有开放的信息环境,需要加强与外界的联系,有的还需要通过Internet发展网上营销业务,这使得大多数企业将他们的内部网与Internet相连。由于采用TCP/IP,他们必须采用一系列的安全措施,如构筑防火墙,来防止Internet的用户对企业内部信息的窃取以及外界病毒的侵入。

2.5.2.3采用C/S模式将降低网络通信量

B/S采用了逻辑上的三层结构,而在物理上的网络结构仍然是原来的以太网或环形网。这样,第一层与第二层结构之间的通信、第二层与第三层结构之间的通信都需占用同一条网络线路。而C/S只有两层结构,网络通信量只包括Client与Server之间的通信量。所以,C/S处理大量信息的能力是B/S所无法比拟的。

2.5.2.4 由于C/S在逻辑结构上比B/S少一层,对于相同的任务,C/S完成的速度总比B/S 快。使得C/S更利于处理大量数据。

B/S模式的先进性和C/S模式的成熟性使人在现代企业MIS系统平台的选择上难定取舍。究竟应该选择哪种模式呢,有没有两种平台相结合的模式呢?

2.5.3 C/S模式与B/S模式相结合方案

系统分析员可以根据系统的特点,灵活地为不同的子功能采用不同的MIS系统平台,将两种模式交叉并行使用。

首先,开发者根据一定的原则,将系统的所有子功能分类,决定哪些子功能适合采用C/S,哪些适合采用B/S。适合采用C/S的子功能应具备以下特点:1)安全性要求高;2)要求具有较强的交互性;3)使用范围小,地点固定;4)要求处理大量数据。例如,仓库管理系统中的入库单、领料单的输入功能,财务系统中的凭证输入功能等等。而适合采用B/S的子功能应具备以下特点:1)使用范围广,地点灵活;2)功能变动频繁;3)安全性、交互性要求不同。例如:企业内部信息发布功能,意见箱输入功能,公司财务分析表的查询功能,总裁决策支持系统中的查询功能等等。

相对于单独采用C/S或B/S,这种方案的优点在于:1)保证敏感数据的安全性,特别是对数据库的修改和新增记录加强了控制;2)经济有效地利用企业内部计算机的资源,简化了一部分可以简化的客户端;3)既保证了复杂功能的交互性,又保证了一般功能的易用与统一;4)系统维护简便,布局合理;5)网络效率最高。

如果系统开发者在系统设计阶段决定采用这种C/S与B/S相结合的模式,那么在系统开发生命周期的如下各个阶段相对这种新模式都应有所响应。

在系统设计阶段主要考虑的是MIS系统平台选择问题。在详细设计阶段,系统开发者需要根据企业自身的业务特点,以及一定的选择原则,来决定各个子功能采用哪一种模式并在系统说明书上分别注明。在编码设计阶段,系统开发者需要针对采用不同模式的子功能,选用不同的编码方式(例如:C/S可以采用Java编程环境,而B/S采用JSP方法),然后编译生成不同的客户应用及Web服务程序。在安装调试阶段,其特点主要体现在系统的物理结构上,即特定的客户应用程序将被安装在特定的使用者的客户端上,Web服务程序需要被安装在Web服务器上,而每个客户端上都将被安装上浏览器,同时,客户应用的使用者必须接受一定的培训。在软件维护阶段,针对不同模式的子功能应采取不同维护方式。

3 系统分析设计

3.1 系统需求分析

3.1.1 系统调查

21世纪以来,人类经济高速发展,人们发生了日新月异的变化,特别是计算机的应用及普及到经济和社会生活的各个领域;使得原本的旧的管理方法越来越不适应现在社会的发展。但许多人还停留在以前的手工操作,这大大地阻碍了人类经济的发展。为了适应现代社会人们高度强烈的时间观念,基于网络环境的学生管理系统的开发势在必行。本系统采用Servlet+JSP+JavaBean+MySQL 设计方式,其中Servlet担当主要逻辑控制,通过接受JSP传来的用户请求,调用以及初始化JavaBean,在通过JSP传到客户端,本系统中SQLBean 担当主要的与数据库的连接与通信,JavaBean在本系统中主要担当配合JSP以及Servlet来完成用户的请求,而JSP主要担当接受与响应客户端。

3.1.2 系统需求说明

(1) 要求系统可以准确地记录和查询学生信息,包括学生的学号(唯一)、姓名、所属班级、院系、年龄、性别等。

(2)要求系统可以准确地记录和查询教师信息,包括教师的代号(唯一)、姓名、职称、所属院系等。

(3)要求系统可以准确地记录和查询课程信息,包括课程的课程号、课程名、学分、所属院系等。

(4)要求系统可以准确地记录和查询管理员信息,包括管理员的帐号、姓名、所属院系等。

(5) 要求系统可以准确地记录学生的每一次奖惩情况以及学籍变动情况。

(6) 系统可以对学校的院系、班级情况进行管理。

(7) 系统应该可以对基础数据进行维护,主要包括数据库信息的添加、修改和删除。

(8) 系统应该有一个较好的容错性、图形用户界面和跨平台性。

(9) 系统应该有很好的可扩展性。

3.1.3 用户需求

学生:对各科成绩的查询,修改登录密码。

教师:输入所教授科目的学生成绩,修改登录密码。

管理员:输入并维护学生、教师、课程等的基本信息。查看、修改、添加学生的奖励、处罚、学籍变动等信息以及学生各科的成绩。根据权限分为全局管理员和院系管理员,全局管理员处理上述操作外,还可以制定、修改奖励、处罚的标准以及学籍变动的形式,对院系管理员的基本信息进行维护,添加、删除、调整教学安排等,在整个系统中拥有最高权限。

3.2 总体设计框架[13]

图3-1 总体设计图

3.3 UML建模

3.3.1 学生管理系统的用例分析

学生管理信息系统的全部用例包括记录学生情况、修改学生信息的学生基本信息模块,记录教师情况、修改教师信息的教师基本信息模块,记录管理员情况、修改管理员信息的管理员基本信息模块,记录学生奖惩情况、修改学生奖惩情况的学生奖惩模块,记录学生学籍变动情况、修改学生学籍变动情况的学籍变动模块,记录课程情况、修改课程情况的课程管理模块,记录教学安排、修改教学安排的教学管理模块,记录学生成绩、修改学生成绩、查询学生成绩的成绩管理模块以及设置班级情况的班级模块,设置奖惩学籍变动标

准的模块和设置院系情况的院系模块。这里,使用Eclipse 的MyEclipse 插件中的UML 建模。系统用例图如下(图3-2):

图3-2 系统用例图

3.3.2 学生管理系统的领域分析

UML 建模的第二步就是领域分析。实际开发学生管理信息系统时,领域分析是建立在用例分析基础上的,要了解系统要处理的概念。学生管理信息系统中的域主要包括:学生信息、学院信息、班级信息、奖惩学籍变动信息、教师信息、课程信息和数据字典。可以在类图中将上面这些域以及它们之间的关系表示出来。图3-3 不仅给出了各个域间的关系还描述了各个域的名称、各项属性和操作。

奖惩标准、学籍变动形式

图3-3 系统类图

3.3.3 学生管理系统的设计

在设计阶段,首先要设计类的状态图。不是所有的类都有状态图。有些类可以用UML

状态图来显示类的对象的不同状态以及改变状态的事件。在本系统中有状态图的类只有学生信息。

图3-4 学生状态图

设计阶段的最后是设计UML模型,也就是将前面设计的模型进行扩展和细化。为了描述域类的动态行为,可以使用UML的时序图、协作图或者活动图。这里,选用时序图;时序图的基础是用例。在时序图中,要说明域类是如何协作以操作系统中的用例。当然,在建立时序图时,将会发现新的操作,并将其加入类中,将在后面看到所建立的时序图模型。此外,操作仅仅是草案,同样也要用说明详细描述。分析的目的是对要建立的系统有更好的了解,而不是要设计一个完整详细的学生管理信息系统的设计方案。

用户(学生)登录的时序如图3-5:

相关主题
文本预览
相关文档 最新文档