基于ASP.NET的江苏海院船员考试系统设计

时间:2019-05-15 00:22:45下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《基于ASP.NET的江苏海院船员考试系统设计》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《基于ASP.NET的江苏海院船员考试系统设计》。

第一篇:基于ASP.NET的江苏海院船员考试系统设计

基于ASP.NET的江苏海院船员考试系统设计

摘要:如何与现代信息化技术相融合,解决传统教学的一些不足之处,已成为需要积极面对和解决的问题。拟引入ASP.NET技术思想,结合文献研究法和经验总结法,设计江苏海院船员考试系统,并在此基础上总结设计技巧,提出研究心得。

关键词:考试系统;信息;设计

随着计算机、手机等多媒体终端的普及,信息技术的快速发展,以及日益丰富的网络资源,为现代教育带来了便捷和机遇的同时,也带来了新的挑战。如何利用现代互联网技术,解决传统教学的一些不足之处,如传统的纸质考试等,已成为当下广大教育界的师生需要积极面对和解决的问题。江苏海院船员考试系统拟引入微软(Microsoft)的ASP.NET(Active Server Page.NET)技术思想,在Microsoft Visual Studio(简称VS)平台应用程序的集成开发环境基础上,使用C#(C Sharp)编程语言进行研究和开发。江苏海院船员考试系统将整个设计过程分解为系统目标、系统功能结构、业务流程图和数据库设计。

考试系统目标

江苏海院船员考试系统属于智能化网络在线考试系统,可以从各考试科目既定的试题数据库(tb_Test)中,按照各课程标准中规定的权重随机抽取试题,并在考试结束后,自动对考生的答题进行评分。考生可以在线查阅考试成绩,老师可以在线查阅考试结果,管理员可以对老师、考生和试题等信息进行维护。为此,本考试系统主要研究目标有:(1)人机交互(Human-Computer Interaction,HCI)模式,操作界面易用、合理和美观,信息检索灵活、方便,数据库存储安全可靠;(2)可以从试题数据库中按一定的权重随机抽取试题并自动生成试卷;(3)对用户输入的数据,进行严格的有效性验证;(4)对考试结果的自动评价;(5)对试题、考试结果和其他信息的维护管理;(6)易维护性和安全性。

考试系统功能结构

2.1 考试系统前台管理功能结构

江苏海院船员考试系统前台主要设计有人员登录模块、随机抽取试题模块和自动评分模块,其中随机抽取试题模块在考生登录界面后,又展开为阅读考试规则、选择考试科目和开始考试三个环节。整个考试系统前台功能的结构如图1所示。

2.2 考试系统后台管理功能结构

江苏海院船员考试系统后台主要设计有试题管理模块和后台管理员模块。其中,试题管理模块主要包含教师登录、试题信息管理、考试结果管理和个人信息维护;后台管理员模块主要包含管理员登录和管理员信息维护,以及考生、老师和试题、科目等信息管理。整个考试系统后台功能的结构如图2所示。

图2 后台功能结构图

业务流程图

江苏海院船员考试系统的业务流程设计为:首先是人员系统登录,判断是否登录,若登录,判断身份(教师、考生和管理员),根据身份的不同,具有不同的权限和操作项目。其中,教师主要有试题信息管理、考试结果管理和个人信息维护,考生主要有阅读考试规则、选择考试科目、开始考试和交卷评分,管理员主要有管理员、考生、老师和试题等信息管理。具体如图3所示。

图3 业务流程图

考试系统数据库设计

在设计江苏海院船员考试系统时,设计人员具体分析了该系统的数据量,由于江苏海院船员考试系统中试题(10门以上课程)及其它信息如考生(每年约1000人)的数据量会很大,为满足信息存储的安全性和在任何时候的可用性,因此选择Microsoft SQL Server 2014版本的数据库存储相关数据信息。该数据库命名为JMI_Exam Online,在其中创建了管理员、考试科目、考试记录、考生、教师和试题6个数据表用于存储不同的信息。

4.1 管理员信息表

管理员信息表主要储存系统编号、管理员编号、管理员姓名和管理员登陆密码等信息,其信息实体图(E-R,Entity Relationship Diagram)如图4所示。

图4 管理员信息E-R图

4.2 考试科目信息表

考试科目信息表主要储存管理员登陆密码和添加日期信息,其E-R图如图5所示。

图5 考试科目信息E-R图

4.3 考试记录信息表

考试记录信息表主要存储考生编号、考生姓名和考试得分等信息,其E-R图如图6所示。

图6 考试记录信息E-R图

4.4 考生信息表

考生信息表主要存储考生编号、考生姓名、考试登陆密码和考生性别等信息,其E-R图如图7所示。

图7 考生信息E-R图

4.5 教师信息表

教师信息表主要储存教师编号、教师姓名和教师负责的科目等信息,其E-R图如图8所示。

图8 教师信息E-R图

4.6 试题信息表

试题信息表主要储存试题题目、试题答案、试题正确答案等信息,其E-R图如图9所示。

图9 试题信息实体E-R图

结束语

江苏海院船员考试系统经过系统的设计,初步具备了前台登录、随机组卷、自动评分和后台管理等5个功能模块。相比较而言,本考试系统具有以下特点:

(1)人机互动,功能较为全面;

(2)随机组卷,自动评分;

(3)齐备的信息汇集存储,安全可靠;

(4)无纸化、网络化、智能化。基本实现了既定的设计目标。

参考文献

[1]薛乐,于建军.浅谈高校在线考试系统的设计与实现[J].科技咨询,2012(26):213.[2]关德君.基于.NET技术的考试系统的设计与实现[J].通化师范学院学报,2012(12):43-44.[3]张跃廷.ASP.NET开发技术大全[M].北京:清华大学出版社,2010:213-219.

第二篇:基于ASP.NET的教务管理系统的设计与实现

基于ASP.NET的教务管理系统的设计与实现 摘要

教务管理系统为满足高校日益繁杂的教务工作,提升信息的流通速度,增 加师生间的沟通和交流,提高各个部门的工作效率而开发的管理信息系统。教务 信息管理系统是融合管理科学、信息科学、系统科学和网络技术为一体的综合性 先进管理手段。该系统是基于B/S(浏览器/服务器)模式的信息管理系统,选用

ASP.NET+SQL Server 2000数据库进行开发。全文设计开发的教务管理系统结

合了面向对象的编程思想,其开发主要包括后台数据库的建立和维护以及前端应 用程序的开发两个方面。通过系统实现,用户可以在网络环境下直接访问操作权 限范围内的各项信息。

在开发系统过程中,严格按照软件工程的开发理念,采用了基于先进的统 一建模语言.IdML的面向对象技术进行系统的分析与设计。UML是一种对面向 对象系统进行可视化、详细描述、构造和文档化的规范建模语言。特别是在统一 建模过程RUP出现后,UML的应用更加广泛。UML可以应用在软件工程的每 个阶段,本文使用Rational Rose 2003对UML中涉及到的视图进行建模。本文详细阐述了基于UML的面向对象的系统分析与设计、数据库设计以及 UML模型向关系数据库的映射方法。在数据库的需求分析中,使用Microsoft Visio进行E.R图的建模。在需求分析中,详细分析了系统所面向的用户对系统 的功能需求,基于此需求,确定参与者及参与者所感受的系统服务或功能单元,经过多次迭代和细化后建立需求模型,制品为用例图。在用例视图基础上,进入 系统分析阶段,识别系统全部的类,建立类图,并对每一个类判定其构造型,建 立系统分析阶段的静态模型。为了描述系统各对象在执行期间不同时间点是如何 动态交互的以及结果如何,建立系统分析阶段的动态模型,包括序列图和协作图。在系统设计阶段,对系统进行分层和刻画子系统,本文所论述的教务管理 系统共分为学生登录模块、教师登录模块、教务管理员登录模块和教材管理员登 录模块。其中教务管理员登录模块中,又分为学生信息管理、师资管理、网上选 课、工作量计算、教学计划管理等几个模块,是整个系统的开发重点。数据库设 计阶段,依据数据库三种模式之间的两种映射关系,将对象模型向数据库模式映 射,建立数据库模型。

本文建立了较为完整的UML模型,对各个开发过程中的分析与建模作了较 充分的阐述,为应用软件提供了清晰的解决方案,因而,本论文对使用UML进 行软件开发的读者具有一定得参考价值和实用价值。

关键词:教务管理系统;统一建模语言;面向对象;ASP.NET

The Des i gn and I mp I ementat i on of Educat i ona I Adm i n i st rat i on System Based on ASP.NET Abstract The educational implementation system is planed for the satisfaction of the increasingly complex educational administration work in tmiversity, for the promotion of the information circulative speed,for the increasing contact and communication between teachers and students,as well as for the improvement of working efficiency amony different branches.The educational administration system is such comprehensively advanced management methods as administrative science,information science,systematic science and network technique,all routed into one.

The system is established by the information administration。which is based on the B/S model,and selects the data base ofASP.NET+SQL.Server2000 to apply.Focus of the thesis is to design the educational administration system,and employs the typical administrative system by the theory of objects·oriented.The development includes two aspects:the establishment and reservation of the backstage data base;the development of front applied programs.By achieving this system,users can directly visit all kinds of information、析m in the authority of operation under the netwok environment.

During the process of development,the thesis bases strictly on the concept of software project,and makes systematic analysis and design,aimed the technology of directed objects on UML.Uniform Modeling Language(UML)is the one to visible,fully describe,build and docnmentalizc for objects-oriented,especially applied in Rational Unified Process.UML Can be used in stage of software engineering project,therefore,the thesis models the views related to UMLby using Rational Rose 2003.

In the practice of systematic design,the thesis fully elaborates the objects-oriented,the plan for the data base and the mapping methods from UML to relational data base. And it also models the E—R diagram with the help of MicrosoR Visio,in the demand analysis of data base.Furthermore,it analyses the functional demands of the users in the system,defines the system services or function units enjoyed by interparticipants,establishes the needed models and detailed division.division.On the basis of the Use Case Diagram,the thesis enters the stage of systematic analysis,distinguishes all the classes诵tll in the system,establishes the Class Diagram,judges the structure of each class,and finally builds the static models in the stage.In order to describe how the objects interact dynamically in different period of time,the thesis continues to establish the static models in systematic analysis stage,including Sequence Diagram and Collaboration Diagram.

It is because of the stratification and carving sub—system that the educational administration system in this sense Can bc divided into students login model,teachers login model,educational administrators login model and teaching material

administrators login model is the focus of administrators login model.The educational development for the whole system,among which can be divided into such models as students information management,teach management,optional courses on line,work load calculation,teaching plan management,and SO on.In the state of designing data base,it shines upon the data base model from object models and establishes them in view of 2 mapping relations among the 3 models in data base.

To skim up,the thesis has established completed UML models,elaborated the analysis and models in the process of exploitation in details,and provided clear solutions to the applied software.Therefore,it is of great help and value to the reads who are intended to develop software by using UML.

Key Words:Educational Administration System;Uniform Modeling Language;0bject-Oriented;ASP.NET

O引言

近年来随着教育普及,高校教育体制改革,各高校扩大招生规模,使得在校 学生人数有了突飞猛进的发展,办学规模逐渐增大,专业设鼍日趋多样化,招生 人数逐年增加,教学计划不断更新,这使得高校教务管理的工作量大幅度增加。并且,随着教育改革的深化,教学管理模式也在发生变化,如学分制的逐步实行、学生可以自主选课等。这就对原有的教学管理模式提出了更高的要求。另一方面,随着计算机网络技术的发展,校园网引进各个高校,为无纸化办公提供了有利条 件。在这样的形势下,开发一个集成化的教务管理系统不仅势在必行,而且成为 一个紧迫的任务。

由于国内各高校的教务管理模式不尽相同,不同学校的实际教务管理情况各 有自己的特点,因而各高校需要针对自己的教务管理模式和特点建立自己的教务 管理系统。教务管理包括对教学资源——如教室、办公用品等的管理,新生注册 和学籍的管理、各学期学生成绩的管理、教学培养方案的执行、教学计划的安排、学生考试的管理、教师评教以及工作量的计算等大量信息。如何高效率的进行管 理,并且有序的存放和处理这些巨大的信息,并使之成为教学管理分析和决策的 手段,为教学活动产生更好的促进作用,是教务管理信息系统主要功能。教务管理系统是以管理信息系统为理论依据的。管理信息系统的发展伴随着 软件工程的发展而日趋成熟。不断增长的复杂性、多样性和相互关联性是当今管 理信息系统的共同特征。而开发一个管理信息系统往往要结合软件工程的理念,使用系统化的方法进行管理信息系统的开发,从而更能有效地控制程序复杂性,减少系统的不合理,减轻维护成本。

从技术层次上,软件工程是从一系列建模任务开始的,由这些任务产生出软 件完整的需求规格说明和软件设计的表示。80年代末期,当面向对象程序设计 语言产生后,人们将面向对象的软件建模方法引入到软件工程的各个阶段。并迅 速发展成为当代软件界研究的热点课题之一。这种开发方法是一种运用对象、类、继承、封装、聚合、消息传送、多态性等概念来构造系统的软件开发方法【11。面 向对象的程序设计立意于创建软件重用代码,它通过在程序中加入扩展语句把函 数“封装“进编程所需要的“对象’’中。从本质上来讲软件开发就是对软件所要 处理的问题集进行正确的认识,并把这种认识正确地描述出来。面向对象的软件 开发就是直接面对问题集当中客观存在的事物来进行软件开发。

面向对象的开发方法的精髓是从不稳定的需求中分析出稳定的对象,以对象 为基础来组织需求、构架系统【2】。这种开发方法包括面向对象分析和面向对象设

计。

面向对象分析的目的是认知客观世界的系统并对系统进行建模,那么就需要 在面向对象分析过程中根据客观世界的具体实例在问题中准确、具体、严密的分 析模型。如图O.1所示为面向对象的分析过程。

图O一1面向对象的分析过程

面向对象的设计是把分析阶段得到的需求转变成符合成本和质量要求的,抽 象的系统实现方案的过程。设计的准则包括模块化、抽象、信息隐藏、低耦合和 高内聚等特征【11。

公认的面向对象建模语言出现于20世纪70年代中期,从1989~1994年,其 数量从不到十种增加到了五十多种。建模语言中用的最广的是Booch的Booch 93、Jacobson的面向对象软件工程(OOSE)和Rumbaugh的对象建模技术(OMT-2)。面向对象建模方法出现以来,各种面向对象的分析与设计方法的主 导思想以及所采用的主要概念与原则大体上是一致的,但是也存在不少的差异。统一建模语言UMLCOnified Modeling Language)lE是为结束这种差异的局面应运

而生的。

1994年10月,Grady Booch和Jim Rumbaugh开始致力于这一工作。他们首

先将Booch 93方法和OMT-2方法统一起来,并于1995年10月发布第一个公开

版本UML0.8。1995年秋,OOSE创始人Ivar Jacobson也加入了。三人共同致力 于设计统一建模语言,他们同面向对象方法学的创始人共同合作,为这项工作注 入了强大的动力,打破了面向对象软件开发领域内原有的平衡。目前UML得到 了诸多大公司的支持,如IBM、HP、Oracle、Microsoft等,已成为面向对象技 术领域内占主导地位的规范化建模语言,并且已被OMG组织采纳的建模语言规 范。Booch、Rumbaugh和Jacobson在一些文献中经常被称作“三个好朋友”(three amigos)【3】。UML的发展过程如图0.2所示。本文所论述的系统在需求分析、系 统分析与设计阶段,都采用UML进行建模。

图0-2 UML的主要发展历程

被OMG采纳的UML只是一种建模语言,并不包含对软件开发过程的指导。在讨论UML时,人们往往谈论到统一过程(Rational Unified Process,RUP)。RUP是一个最佳软件开发实践,根据字面理解,可以知道RUP包括3方面的意

思,即Rational、Unified和Process。Rational表示RUP是由Rational公司开发

并维护的;Unified表示RUP采用了现代软件工程开发的6项最佳实践:Process 表示RUP是一种软件开发过程14】。Rational统一过程的动态结构是通过对迭代式软件开发过程的周期、阶段、迭代过程以及里程碑等的描述来进行表示的。

本文基于UML建模方法对我校教务管理系统做了较深入的分析,并基于物 理模型进行了系统的设计与实现。对于建模的工具的选择,本文选择Rational Rose,它提供了UML的所有建模元素的可视化编辑环境,并提供了基于组件的 开发以及对软件开发全过程的支持。除了支持UML的类图、交互图、组件图和

配置图外,Rational Rose是一个独立的工具,通过应用程序接口(API)层与市

场主导的各种IDE结合来支持各种编程语言和其他实现技术【51,从而全面支持面

向对象分析、设计和编码。Rational Rose支持软件系统的面向对象的开发,它通

过用例图、逻辑类图、序列图等支持面向对象的分析和设计,在不同的视图中建 立相应UML图形来反映系统的不同特征。

在开发工具的选择上,本文采用了新的ASP.NET技术,结合.NET框架所支 持的VB语言来实现教务系统的各项功能。ASENET不仅仅是下一版本的Active Server Page(ASP),它还是统一的Web开发平台,方便开发人员开发企业级W曲

应用程序。它是一个已编译的、基于.NET的环境,可以用任何与.NET兼容的语 言创建应用程序。另外,任何ASENET应用程序都可以使用整个.NET框架,并 且可以无缝地与HTML编辑器及其他编程工具一起工作。这使Web开发变得更

加方便。

数据库的开发工具上,选用SQL Server 2000开发环境。SQL Server2000是能 够支持企业级关系型数据库的管理系统,它能与Windows操作系统紧密集成,具有方便易用的图形管理界面,其用户界面风格与Windows一样非常友好。SQL Server2000在存储大容量数据方面,在数据的安全性和完整性方面,在分布式处 理等都是适合于企业级应用的。而其相对Oracle,DB/2等大型数据库来说,学习更为容易,应用成本也相对较低。采用SQL Server2000+ASP.Net开发本系统 是一个较为理想的组合。

综上所述,开发这样一个系统不但可以降低工作量、提高办公效率,而且使 目前分散的教务信息得到集中管理。这对减轻教务工作负担、提高教务管理水平、实现教务管理的现代化具有重要意义。论文分为引言、正文和结束语三部分。

引言部分简要地论述了当前高校管理信息化的必要性、高校教务管理系统开 发的重要意义以及高校教务管理系统开发所使用的技术。正文部分共分4章,其内容安排如下:

第一章:需求分析与建模。本章对教务管理系统进行需求分析,逐步对系统 分析细化,找出参与者和用例等,作出Use Case图。在用例图的基础上,从现 实或原型方面来透视的系统,进一步作出系统的静态模型。还有表示对象类之间 的通信及对话的动态模型。

第二章:系统概要设计。阐述了系统体系结构,和为什么选择采用B/S模式。介绍了系统实现基于的三层架构,即数据访问层、业务外观层和页面层。最后对 系统的层次和模块进行细化。

第三章:系统详细设计。对数据进行全面分析,得到E.R图,建立数据库表,完成存储过程的设计。举例介绍了系统中类的设计,以及几个代表性的功能模块 的设计思想。

第四章:系统实现。本文所论述的系统是用ASP.NET+SQL Server开发的。在这一章中主要是对笔者负责的部分,进行阐述。并以UML建模为基础,实现

系统功能。

结束语对本文工作进行简明扼要的总结,并指出本文存在的不足和改进方向,以及对未来的展望。

本文的创新性在于结合我校教务工作的实际问题,有针对性的对教务工作的 各个环节进行UML建模,从对象模型到动态模型再到系统功能的建模,让系统 分析更全面,系统实现更完善。系统实现采用三层架构,即数据访问层、业务外 观层和页面层。在业务外观层扩展出业务规则层,数据层扩展为数据存取层和存 储过程层,使业务逻辑与用户界面分开,增加程序的可扩展性和可维护性。

1需求分析与建模

需求分析是软件开发过程的重要环节,是软件开发的基础,通过与用户的反 复沟通,勾勒出系统的框架,需求分析的好坏决定了软件设计的成败,好的需 求分析也能减少资金的浪费。

1.1功能需求

教务管理系统系统主要是为完成日常教学任务而开发的,其主要目标是对学 生个人信息、师资信息、教学资源信息、课程信息、学生成绩信息等进行管理 及维护,减轻教学工作的压力,提高教学管理工作的效率。

通过对学校教学管理的业务调查,得知教务管理人员可通过此系统实现对学 生和教学资源的管理与维护,学生可以通过此系统进行个人信息、考试成绩查 询以及完成选课等相关功能,教师可以通过此系统完成个人信息管理、学生成 绩输入、教学任务查询等等功能。系统的总体任务是实现整个教学信息管理的 系统化、规范化和自动化。

在日常教学工作中,教务处有整体规划和辅助教学的任务,各个院系上报的 教学任务和教学计划都要上报给教务处,由教务处根据上报的材料分配教学资 源,如教室等,并且安排教师上课时间和上课的周次,然后再将教师上报的教 材征订单传达给教材科,由教材科根据开课学生人数订教材。教务处还要将一 切安排妥当的事宜公布在网络上,以供教师和学生查询。

因此,该系统主要的使用对象是教务管理人员、学生、教师和系统维护人员。这些使用者对教务管理系统的功能要求是不同的。(1)教务管理人员对功能的需求 ·学籍管理

功能包括:学生注册、学生基本信息管理(包括添加、删除和更新学生信息,可按姓名或学号查询学生信息)、学籍变动管理、毕业管理等。·师资管理

6功能包括:各专业课教师个人基本信息管理、教学任务发布、教学工作量管

理、考评考核管理、科研管理等。

●选课管理

功能包括:教务管理人员依据教学计划和培养计划,设置选课课程并统计生 成己选课学生名单等。

●教学计划管理

功能主要包括:根据培养计划和各个专业上报的教学计划,添加各专业教学 计划,包括教学计划的修改删除等操作。

●成绩管理

功能包括:每门课程结束后,由教师进行成绩登记,然后教务管理人员对登 记的信息进行管理,如教师登录成绩后发现成绩有错误,只能由教务管理人员 核实后进行修改。还有根据成绩就算出学生的学分,以便学籍管理的需要。

●课程管理

功能主要有:安排各个专业所开设课程的上课时间和上课教室。(2)教材管理人员功能需求

功能包括:教材的基本信息的管理(按书名或作者等查询各专业教材、添加 修改删除教材信息等)、统计教材数量、教材费用、教材的入库和出库管理等。

(3)学生对功能的需求

学生有两类,分别是本科生和研究生。每一类学生对于功能的要求还是有区 别的,如研究生有科研和论文的内容。在本文中,只分析了本科生的功能需求。·个人信息管理

功能包括:浏览个人基本信息,具体内容包括姓名、性别、学号、民族、出 生日期、籍贯、所在专业班级等,这些信息是以学籍管理表中的信息为准,所 以不允许学生自行更改,只能进行查询。还包括个人课表查询,成绩查询等。·更改系统登录信息

功能包括:学生登录系统后,修改登录信息,为了保证系统的安全性,只要 求学生修改个人密码。

● 网上选课

功能包括:网上查看可选课程,添加、删除所选课程等功能。

7(4)教师对功能的需求

●个人基本信息的维护

功能包括:教师基本信息的添加和修改等,如出生日期、毕业学校、学历和 学位等信息,但是职工编号和姓名是不允许教师在系统中进行修改的。·教学信息查询

功能包括:教学任务查询、教学自然班名单下载打印、教学质量评价查询和 工作量计算结果的查看等。●学生成绩录入

功能主要包括:本学期学生考试成绩的录入,一旦用录入密码录入成绩成功 后,就不能任意修改学生成绩,必须由教务处管理人员修改。(5)系统管理员的需求

系统管理员主要是对教务管理系统进行维护和更新,并保证系统的安全性,以及数据库的安全性。

从以上可以看出,各种人员对于系统的需求是不同的,对于学生来说,教务 人员的操作是不能使用的,也是不可见的,所以要在用户登录系统时,就做出 判断该用户可以使用哪些功能,这就需要设置不同的登录权限。系统管理人员 具有最高的权限,可以添加、删除用户,并可设置和修改不同的用户权限。因 此在数据库设计中,要有权限的定义。

权限的定义其实是系统安全性的一种需求,采用身份认证机制对一般用户进 行管理,以教工号和学生学号来判断登录者的权限,并且以这两种身份来判断 登录者是否该校的校内人士,如果是校外人士,则具有浏览这样的最低权限。系统的安全性需求还有另外一方面内容——数据安全性,对于数据库服务器,要避免系统崩溃等意外事件发生而导致数据全部丢失,常用的方法是采用 RAIDS磁盘阵列,其次是对数据库系统提供完全、增量等多种备份方式,如把 数据定期刻成光盘保存。对于数据安全性,本文不做详细的阐述。

根据以上对系统的功能的分析,我们可以大体总结出系统的一个大概框架和 系统应该分为哪些子系统。根据所完成的功能和用户角色的不同,我们将系统 分为教师子系统(完成教师登录后的功能)、学生子系统(完成学生登录后的功 能)、教务管理子系统(完成繁杂的教务工作的功能)和教材管理子系统(完成 教材有关的功能)四个子系统。在这四个子系统中又可以划分出多个小模块,例如,教务管理子系统是一个非常大的子系统,我们将它再次细化,可以分成 学生学籍管理模块、网上选课模块、教学计划管理模块、课程管理模块等。用 一个系统结构框图来表示,如图1.1所示。

图1.1教务管理系统总体框图

1.2用例图

图1.1教务管理系统总体框图

需求获取阶段的主要工作是建立待开发系统的模型。本文中采用统一建模语 言对系统的需求进行建模,UML的用例和用例模型是建立这种需求模型的合适 方法。

系统需求建模是为描述系统需求而建立的相应模型,其重要性在于:通过系 统模型可评估系统构件及其相互关系,确定需求如何适应其布局,以及评估系 统的“美学’’等方面【31。

在计算机图形学中,有一句名言,叫做“一幅图顶得上一千个字’’。同样的 道理,在软件开发过程中,模型的重要性也十分明显,它可以达到以下目的: >使用模型可以加强人员之间的沟通

>使用模型可以更早的发现错误或疏漏的地方

>模型为最后的代码生成提供依据 >使用模型可以更好的理解问题 >使用模型可以获取设计结果

面向对象的软件建模方法主要从面向对象程序设计领域演变发展而来,它是 对象问题域进行完整的映射的过程。“对象“的主要特征包括如下内容:

(1)它包括了事物的数据特征和行为特征,对象是系统中用来描述客观事物 的一个实体,具有它自己的静态特征和动态行为,是构成系统的一个基本单位。(2)它通过封装、继承、消息通信等原则使问题域的复杂性得到控制。(3)它用聚合和链接如实反映问题域中事物间的关系,“任何两个对象之间 的关系都包含其中一个对另一个的假设”。

正是拥有上述特征,从而使面向对象建模方法能够完整和直接的映射出问题 域,所以其在模拟现实世界方面具有天然的优势。

UML是用图来进行“说话”的,图是UML的关键。用UML开发的图在软 件开发生命周期(SDLC)的每个阶段中起着关键的文档作用。此外,你可用 UML来开发基于任何SDLC模型的软件系统【6】。1.2.1用例图概述

用例视图指出系统提供给每个利益相关者的功能。由于UML中的各个构件 和概念之间没有明显的划分界限,为方便起见,选用视图来划分这些概念和构 件。视图只是表达系统某一方面特征的UML建模构件的子集。用例视图是视 图中的一种。用例视图约束其他视图,在建模过程中居于非常重要的位置。项 目开始时,项目小组就可以在用例视图中生成业务模型。开发者既可以把用例 视图用于构建一个新系统的功能视图,还可以把已有的用例视图修改或扩充后,产生新的版本,也就是在现有的视图上加入新功能(即在视图中加入新的执行

者和用例)。

用例图是把满足用户需求的基本功能聚集起来的强有力的工具。对于正在构 造的新系统,用例描述系统应该做什么;对于已经构建完毕的系统,用例则反 映了系统能够完成什么样的功能【71。用例图包括用来描述最终用户、分析人员 和测试人员的角度所看到的系统行为的用例。

用例图的基本组成部件是用例、执行者和系统。用例用于描述系统的功能,也就是从外部用户的角度观察系统应支持哪些功能,帮助分析人员理解系统的

行为,即站在系统外部看系统功甜引。在用例模型中系统仿佛是实现各种用例 的黑盒子。我们只关心该系统实现了哪些功能,并不关心内部的具体实现细节。用例模型主要用于工程开发的初期,在进行系统需求分析时使用。用例模型由用例图构成。用例图中显示执行者、用例和用例之间的关系。1.2.2建立用例图

建立Use Case图可以按下列步骤进行:(1)确定系统范围和边界

所谓系统的边界是指系统与系统之间的界限。系统同时又是相对的,在这里,我们只说明第一次迭代的系统边界。教务管理系统以教学计划的实施为线索,对教务管理实行一体化操作,涉及学籍管理、教学计划管理、课程管理、选课 管理、成绩管理、教师管理、教材管理等。这些内容都属于教务管理系统的职 责范围。而学校的其他管理工作,如人事、财务、资产等管理不属于该系统的 职责范围。虽然有系统边界的存在,但是使用Rational Rose画图并不画出系统

边界。

(2)确定主要参与者

参与者(Actor)是指存在于系统外部并直接与系统进行交互的人、系统、子系 统或类的外部实体的抽象。参与者有自己的目标,通过与系统的交互达到目标。参与者包括人参与者(Human Actor)和外部系统参与者(System Actor)。在与系统 打交道的人员中,凡是直接使用系统的人员可以确认为人参与者;凡是与系统 相联,并与系统交互的外部系统,可以确认为系统参与者。

一个参与者可以参与一个或多个Use Case,而一个Use Case可以有一个或 多个参与者运行。在本系统中确定教务管理员、教材管理员、学生、教师和系 统管理员为活动者。(3)确定用例

用例(Use Case)是参与者可以感受到的系统服务或功能单元。它定义了系

统是如何被参与者使用的,描述了参与者为了使用系统所提供的某一完整功能 而与系统之间发生的一段对话。每一个用例都是一个参与者与系统交互中执行 的有关事务的序列【9】。虽然用例描述了活动者与系统交互中的对话,但是,它 只描述了该做些什么,并不描述该如何做。全部的用例构成了对于系统外部是

可见的行为的描述。应当根据系统需求找出全部的用例,并从参与者的角度给 出事件流和用例执行时系统可以提供给参与者的服务。

在教务管理系统中,我们可以确定以下一些主要用例:学生管理(学生基本 信息的维护)、师资管理、课程管理、教学计划管理、选课管理、成绩管理、教 材管理(教材信息查询,教材的入库和出库等),系统维护等。本文只列出几个主要的用例图加以介绍。①系统管理用例 >创建新账号 >设置账号基本信息 >查看账号

>删除账号 >系统维护和更新

建立用例图,如图1.2所示,图1.2系统管理员用例图

②教务管理用例

由于教务管理的事务繁琐复杂,因此功能的划分就很细致,用例数目就比较 多。我们先列出顶层用例,然后再将粒度大的用例进行分析。>登录系统 >学生学籍管理 >教学计划管理 >选课管理 >课程管理 >师资管理 >成绩管理

建立教务管理顶层用例图,如图1.3所示。然后将粒度大的用例进行进一步 分析,例如,师资管理工作,可以包括教师信息管理、评教情况、工作量计算、科研情况等。每一项工作都可以作为功能的细化,而看作是一个用例。因此,以师资管理为例,将教务管理顶层用例进一步细化,如图1.4所示。将顶层的用例模型进一步细化,划分为粒度小的用例,以便深入分析系统的 要求和目标,这一过程也是迭代过程【101。对顶层用例图逐步分解,精细化,直 到能清晰的表达问题,满足系统分析与建立模型的需要。又如,图1.5所示为 细化后的网上选课用例。

图1-3教务管理顶层用例图

图l-4师资管理三次迭代后的用例图

图1.5选课管理用例图

③学生用例 >登录系统 >个人信息管理 >成绩查询 >网上选课

建立学生用例图,如图1-6所示。

图1.6学生用例图 ④教师用例 >登录系统 >个人信息管理 >登录成绩 >教学任务查询 >教学班名单打印 >教材查询

建立教师用例图,如图1.7所示。

图1.7教师用例图

⑤教材管理用例

>登录系统

>教材信息管理 >入库

> 出库

建立教材管理用例图,如图1.8所示。

图1.8教材管理用例图

161.3静态结构模型

系统的静态结构模型主要由类图和对象图表达。类图从抽象的角度描述系统 的静态结构,而对象是类的实例化表示,对象图是系统静态结构的一个快照⋯l。对象图和类图类似,也是表达系统的静态开发视图,但它是从现实或原型方面 来透视的,说明在类图中所发现的事物实例的数据结构和静态快照。当要在动 态建模的交互图中表示动态场景的一个静态画面时,可以使用对象图来重现系 统中存在的实例以及它们之间的相互关系。类图展示了一组类、接口和协作及 它们间的关系,建模中所建立的最常见的图就是类图。类图中包含了三方面的信息:

(1)对象类:对象类简称类,是面向对象模型最基本的模型元素,类有属性、操作、约束以及其他成分等。“属性”描述类性质的实例所能具有的值;“操作” 实现类的服务功能,它可以被本类的对象请求执行,从而发生某种行为。(2)用户接口:用户和系统交互的界面,它也可以用类表示。

(3)联系:表示类之间的关系,这种关系可以有多种,关联、依赖、泛化、聚合都是非常重要的联系。

在建立静态模型时,首先要对类进行识别,类的识别通常是由系统分析员在 分析问题域的基础上来完成的,它是面向对象开发中一项困难较大的活动【12】。对类的识别,通常的方法是从用例中来识别。用例图实际上就是一种对系统描 述的形式,因此,可以根据用例图来识别类。

所有被识别的类只包括三种构造型中的一种:边界类(Boundary Class)、实 体类(Entity Class)和控制类(Control Class)。使用类的构造型可以方便的对 类进行分类。按照类的识别顺序,首先识别出系统的实体类,然后进一步识别 出边界类和控制类。

实体类(Entity Class):实体类的信息和行为通常存在较长的时间,实体类 是现实问题的抽象,这种类型的类通常对应现实世界中的实体,或者需要执行 系统的内部事务f13】。例如学生、教师、教材等。而且每个实体类在数据库中都 有相应的表,实体类的属性对应数据库表中的字段。表1.1列出了教务管理系 统中一些重要的实体类。

边界类(Boundary Class):负责系统与系统外部环境的通信。位于系统与外 界的交界处,工作在系统和角色之间【81。因此,通常又被称为“接口类”。包括 所有窗体、报表、打印机和扫描仪等硬件接口以及与其他系统的接口。在教务 系统中的边界类有,用户登录界面、学生基本信息管理界面、教师基本信息管 理界面、教学工作量信息管理界面、科研情况管理界面、学生成绩管理界面、教学计划管理界面、选课界面等等。

控制类(Control Class):负责协调其他类的工作,通常其本身并不完成任何 功能,其他类也不向其发送很多消息,而是由控制类以委托责任的形式向其他 类发出消息。将教务管理系统中的业务逻辑抽象为以下的一些控制类,如表112 所示。

表1-2教务管理系统中的控制类

对类进行分析完毕接下来,就可以建立初步分析模型。例如,教材管理中,类的初步模型如图1-9所示。

图卜9教材管理用例类的初步建模

课程管理中,类的初步模型如图1.10所示。

教材

图1.10教材管理用例类的初步建模

选课记录

根据初步建模图,确定各个类的属性和方法后,再次建模,如图1.11所示

图1_11确定了属性和方法的类建模

根据己定义的类及其联系,以及对象类的多重性、角色、导航等性质,可以 画出对象类图。如图1.12是教务管理系统的主要类及其关系。图1.12教务管理系统主要的类及其关系图

所有系统均可表示为两个方面:静态结构和动态行为。类图最适合于描述系 统的静态结构:类、对象以及它们之间的关系,而状态、时序、协作和活动图 则适合于描述系统的动态行为,即描述系统中的对象在执行期间中不同时间点 是如何动态交互的。

系统中的对象需要相互通信,通常情况下,~个消息就是一个对象激活另一 个对象中的操作调用【141。对象是如何进行通信以及通信的结果如何,则是系统 的动态行为,也就是说,对象通过通信进行协作及对象在系统的生命期中改变 状态的方式是系统的动态行为。一组对象为了实现一些功能而进行通信称之为 交互。交互图(Interaction Diagram)是用来描述对象之间以及对象与参与者之 间的动态协作关系以及协作过程中行为次序的图形文档,它包括序列图

(Sequence Diagram)和协作图(Collaboration Diagram)两种形式。序列图着

2l重描述对象按照时间顺序的消息交换,协作图着重描述系统成分如何协同工作。

序列图和协作图从不同的角度表达了系统中的交互和系统的行为,它们之间可 以相互转化。(1)序列图的建立

序列图(Sequence Diagram)是由对象、生命线、激活和消息等构成。序列 图的目的就是按照交互发生的一系列顺序显示对象之间的交互【31。下面列出学生选课的序列图,如图1.13所示。教学计划管理的序列图,如 图1.14所示。

图1.13学生选课基本事件序列图

基于ASENET的教务管理系统的设计与实现 图1.14教学计划管理基本事件序列图

图1.15学籍管理模块添加成绩序列图

序列图作为一种描述在给定语境中消息是如何在对象间传递的图形化方式,在使用其进行建模时,可以将其用途分为以下3个方面。

·确认和丰富一个使用语境的逻辑表达:一个系统的使用环境就是系统潜

在的使用方式的描述,也就是它的名称所要描述的。一个使用环境的逻 辑可能是一个用例的一部分或是一条控制流。

● 细化用例的表达:序列图的主要用途之一就是把用例表达的需求转化为

进一步、更加正式层次的精细表达。用例常常被细化为一个或者更多的

序列图。

●有效的描述如何分配各个类的职责以及各类具有相应职责的原因:可以

根据对象之间的交互关系来定义类的职责,各个类之间的交互关系构成 一个特定的用例。例如,“用户对象向地址对象请求其街道名称“指出 用户对象应该具有“知道其街道名’’这个职责。

(2)协作图的建立

协作图(Collaboration Diagram)是由对象、消息和链等构成【15J。协作图通 过各个对象之间的组织交互关系以及对象彼此之间的链接,表达对象之间的交 互。

与序列图不同的是,在协作图中明确表示了角色之间的关系,通过协作角色

来限定协作中的对象或链。另一方面,协作图不将时间作为单独的维来表示,所以必须使用顺序号来判断消息的顺序以及并行线程【2】。序列图和协作图表达 的是类似的信息,虽然它们使用不同的方法表示,但可以通过适当的方式将它

们进行转换。

将图1.13和1.14中的序列图转换为协作图,分别见图1.15和图1.16。

1.15学生选课协作图

协作图作为一种在给定语境中描述协作中各个对象之间的组织交互关系的 空间组织结构的图形化方式,在使用其进行建模时,可以将其作用分为以下三 个方面:

·通过描绘对象之间消息的传递情况来反映具体的使用语境的逻辑表达: 一个使用情景的逻辑可能是一个用例的一部分或是一条控制流。这和序 列图的作用类似。

●显示对象及其交互关系的空间组织结构:协作图显示了在交互过程中各 个对象之间的组织交互关系以及对象彼此之间的链接。与序列图不同,协作图现实的是对象之间的关系,并不侧重于交互的顺序,它没有将时 间作为一个单独的维度,而是使用序列号来确定消息及并发线程的顺 序。

·表现一个类操作的实现:协作图可以说明类操作中使用到的参数、局部 变量以及返回值等。当使用协作图表现一个系统行为时,消息编号对应 了程序中嵌套调用的结构和信号传递过程。

2系统概要设计

经过需求分析后,对于系统是“做什么”已经清楚了,这一章的内容主要讨 论系统“怎样做“116]。总体设计的基本目的就是回答“概括地说,系统应该如 何实现?”这个问题。设计工作集中在细化阶段结束、构造阶段之时开始。它 将产生合理、健壮而稳定的构架,创建实现模型的蓝图‘171。

2.1系统体系结构

教务管理系统是由Web后台进行统一管理,所有业务逻辑都集中在Web应 用程序中管理和制定,具有数据的添加、搜索和查询统计等功能,客户端的分 布广泛,数据集中处理,因此在设计时充分考虑各种体系结构的优缺点,B/S 结构对异种机、异种应用的连机、连网及统--N务具有很好的作用,因此选择 B/S结构进行开发实现。

B/S模式是三层结构体系,对比过去C/S结构,B/S在客户机和服务器之间 增加了一个Web服务器。当客户端发出请求时,由Web服务器向数据库服务器 取出数据并计算,然后将计算结果返回给客户端,用户通过安装在客户端的浏 览器浏览计算结果。在B/S模式下,客户端只需装上浏览器以及相应的操作系 统、网络协议软件即可,而所有应用软件的开发、维护、升级等工作由服务器 承担【18】。B/S模式是三层结构体系如图2.1所示。

图2-1 B/S的三层结构体系

教务系统的软件开发在B/S体系结构基础上,程序设计过程采用三层架构,即数据层,业务外观层和页面表示层(应用层)。将UML建模使用到体系结构 的设计中来,也是本论文的一大创新点。

页面表示层表示软件界面,包括大量控件,并以事件为触发机制,在事件响 应程序中调用业务外观层中的接口完成相关操作。图2.2表示了页面表示层与

其它层的交互。

图2—2页面表示层交互图

业务外观层将用户界面和业务功能的具体实现分割开,对业务规划层和数据 访问层的所有调用必须通过此层进行。一般将业务外观层扩展出业务规则层,业务外观层就位于Web层与业务规划层之间,主要完成与Web层交互以及在对 “业务规则“层的调用之间维护临时状态【191。图2.3表示了业务外观层与其它 层的交互。

图2-3业务外观层交互图

数据层为业务外观层和业务规则层提供数据服务,并解决数据存取的问题。

对数据库的操作全部封装到对数据库服务器端的存储过程层调用中【191。图2.4 表示了数据层与其它层的交互。

图2—4数据层交互图

2.2系统模块划分 图2—4数据层交互图

在第一章的需求分析中,初步将本系统划分为4个子系统,每一个子系统面 向不同的用户。接下来在概要设计中,要将这四个子系统进一步细化,细化成

低耦合、高内聚的模块。

系统的总体框图在需求分析中已经列出,具体查看第一章的图1.1。根据总 体框图继续将框图中的每一个模块进一步细化。细化的结果按照模块独立性原

理来进行验证。

模块独立的概念是模块化、抽象、信息隐藏和局部化概念的直接结果【16】。模 块的独立程度可以由两个方面度量,分别为内聚和耦合。耦合强弱决定模块间 接口的复杂程度,接口越简洁,临界值的测试也越容易,不但是程序不容易出 错,后期维护成本也会降低。内聚是衡量一个模块内部各个成员彼此结合的紧 密程度,理想内聚的模块只完成一件任务。

按照软件工程中的这一理论,将教务管理系统进行细化。(1)学生子系统

学生子系统是学生身份登录后所使用的功能,按照功能的不同,将学生子系 统进一步细化,如图2.5所示。

图2.5学生子系统细化后结构图

(2)教师子系统

教师子系统面向的是普通教师,根据需求分析得到的结果,将教师子系统进 行多次细化后得到如图2-6的模块结构。(3)教材管理子系统

教材管理实质是教务管理的一部分,但是由于其管理对象与教务管理的工作 对象有很大差异,属于一种教学资源的管理,因此将教材管理从教务管理中划 分出来作为一个单独的子系统。其用户为教材科管理员,登录后不进入教务管 理界面,而进入教材管理界面。按功能细化后的模块结构如图2.7所示。

图2-6教师子系统细化后结构图

图2-7教材管理子系统细化后结构图

(4)教务管理子系统

教务管理子系统是所有子系统中功能最复杂的一个子系统,涉及了整个日常 教务和教学工作。将该系统第一步细化,按功能分成学生学籍管理、师资管理、选课管理、教学计划管理、成绩管理和课程管理六个大的模块,如图2.8所示。

图2-8对教务管理子系统二次细化

二次细化后的模块并不是最优模块,每一个模块都完成若干项工作,因此还 要再次细化。下面依次列出多次精细化后的模块结构图。① 生学籍管理

图2-9学生学籍管理结构图

②师资管理

图2.10师资管理结构图

③教学计划管理 图2-ll教学计划管理结构图

④学生选课管理

图2-12教学计划管理结构图

⑤学生成绩管理 生成绩管理结构图

⑥课程管理

2-13学

图2.14课程管理结构图

综合以上结构图,可以发现,在每个子系统中都包含了数据的一些基本操作,如添加记录、删除记录、修改记录和数据统计等,还有报表的制作、打印等常 见的功能。根据面向对象思想,可以将这些程序代码进行封装,增加代码的重

用。

3系统详细设计

详细设计阶段的根本目标是确定应该怎样具体的实现所要求的系统【16】。这一 阶段应该得出对系统的精确描述。

3.1数据库设计

数据位于信息集成系统的中心,是信息系统的灵魂,因此,数据库设计直接 影响着数据库系统的性能以及整个教务管理系统的功能。所以数据结构应该是 稳定的,变化的只是处理过程。本系统在侧重信息需求的同时兼顾处理需要,这个设计按照关系模型和第三范式理论,直接面向数据设计。数据库设计有如下三个基本阶段:

>需求信息的收集一一与客户、最终用户以及公司中定义数据库需求的管 理者进行调研的过程。收集的信息主要有,业务如何处理、业务规则、当前所使用的数据库信息等。

>数据建模一一通过可视化的方式分析业务数据,并最终将业务模型转换 为数据模型的过程。所产生的数据模型用来创建表、视图和数据库所需 的其他对象。

>数据库设计和规范化一一业务模型转换为物理模型的过程。并减少冗余 数据。

ANSI/SPARC模式规定,数据库可分为三层:内模式、中间模式和外模式【201,简单的说,数据库模式是指数据库中一组相关对象。在模式结构中,对象之间 并不是互相独立的,它们之间存在相互关联的关系。它统一地考虑了所有用户 的需求,并把这些需求所涉及的记录、记录间的联系有机地结合为一个整体,描述概念模式的常用方法是E.R图(Entity.Relationship approach,实体-联系方 法)【19lo 外模式也叫应用软件接口,是数据库的外层,是与用户进行互动的一层。子 模式是模式的子集。外模式允许在用户应用软件和数据模型之间创建关系。

35内模式也叫物理模型,具体描述了数据如何组织并存入外部存储器上,处理

数据库的物理存储和数据访问。内模式一般由系统程序员根据计算机系统的软 硬件配置决定数据存储方式,并编制程序实现存取。

中间模式也叫逻辑模型,是数据库的基本模型,它主要处理用来定义数据库 结构的一些数据结构,例如,表和约束条件。

数据库三个模式之间存在两种映射,一是模式与子模式之间的映射,这种映 射把概念数据库与用户数据库联系起来,另一种映射是模式与内模式之间的映 射,这种映射把概念数据库与物理数据库联系起来【211。有了这两种映射,才把 用户对数据库的逻辑操作转换为对数据库的物理操作。3.1.1数据库需求分析

用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据 库结构能充分满足各种信息的输出和输入。收集基本数据、数据结构以及数据 处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础。仔细分析本系统的有关信息,设计如下面所示的主要数据项和数据结构:

●学生基本信息

包括的数据项有:学号、姓名、性别、出生年月、籍贯、政治面貌、学院编 号、专业编号、班级编号、家庭住址、联系方法、照片、备注等。·学院信息

包括的数据项有:学院编号、学院名称、专业编号、专业名称、各专业班级 编号、班级名称、班级人数等。·教师信息

包括的数据项有:员工编号、姓名、性别、出生年月、籍贯、政治面貌、职 称、学院编号、职务等。·课程信息

包括的数据项有:课程编号、课程名称、课程类型编号、理论学时、实验学

时等。

·教学计划

包括的数据项有:学院编号、专业编号、班级编号、课程编号、开设时间等。●教材信息

包括的数据项有:教材ISBN编号、教材名、作者、出版社、版次、库存量

等。

·评教信息

包括的数据项有:员工编号、评教时间、评教成绩等。·工作量信息

包括的数据项有:员工编号、计算学年、课程编号、理论学时、实验学时、总工作量等。·科研信息

包括的数据项有:项目编号、项目名称、项目负责人、项目完成时间、项目 内容、获奖情况等。·选课信息

包括的数据项有:课程编号、教师姓名、最大人数、已选学生数等。●成绩信息

包括的数据项有:学生学号、课程编号、成绩、是否重修等。·系统用户信息

包括的数据项有:用户ID、用户权限、用户密码。根据以上的数据结构和数据项,进行下面的数据库设计。

3.1.2 E.R图设计

E.R方法是一种用来在数据库设计过程中表示数据库系统结构的方法,又被 称为实体.联系模型。它的主导思想是使用实体(Entity)、实体属性(Attribution)以及实体之间的联系(Relationship)来表示数据库系统的结构。

实体有描述其特征的属性,一个或多个属性表征一个实体。在E.R图中,实 体用长方形表示,属性用椭圆表示。

联系是指实体之间的关联,E.R模型清楚地定义了联系,每个联系都有名字。联系的元是参加联系的实体的数目,大多数联系是二元的,有三种类型:一对 一联系、一对多联系和多对多联系。联系用菱形表示。

对关系数据库而言,就是要将E.R模型转换为关系模型,并对其进行优化。将E.R图转换为关系模型实际上就是要将实体、实体的属性和实体之间的联系 转化为关系模型,这种转换一般遵循如下原则:

(1)一个实体型转换为一个关系模型。实体的属性就是关系的属性,实体的 码就是关系的码;

(2)一个一对一联系可以转换为一个独立的关系模型,也可以与任意一端对 应的关系模型合并;

(3)一个一对多联系可以转换为一个独立的关系模型,也可以与多端对应的 关系模型合并;

(4)一个多对多联系转换为一个关系模型;

(5)--个或三个以上实体间的一个多元联系转换为一个关系模型;

(6)同一实体集的实体间的联系,可以按照一对一、一对多、多对多三种情 况分别处理;

(7)具有相同码的关系模型可合并。3.1.3系统的E.R模型

教务管理系统中对于学生信息管理、选课管理以及成绩管理的相关功能在第 一章的需求分析和建模中也做了详细说明。这几个子系统中所涉及到的角色主 要是教务管理人员、教师和学生。实体主要有学生、教师、课表、成绩、教学 计划5个,具体的E.R模型如下列各图所示。图3.1教务系统E.R图图3-2学生选课成绩管理E-R图

图3.3学生选课E.R图

3.1.4数据库表建立

图3.3学生选课E.R图

教务管理系统数据库表数量很多,在这里仅列出具有代表性的几个重要模块 中的数据库表。

表3.1用户登录信息表

表3-2学生基本信息表

表3.3课程信息表

表3.4成绩信息表表3.5教材信息表表3-6教师信息表表3.7科研信息表表3.8评教信息表表3-9工作量统计表

表3—10教学计划信息表3.1.5数据完整性设计

数据的完整性是指存储在数据库中的数据的正确性和可靠性,它是衡量数据 库中数据质量好坏的一种标准。满足数据完整性要求的数据应具有以下特点:

>数据类型准确无误

≯数据的值满足范围设置 >同一表格数据之间不存在冲突 >多个表格数据之间不存在冲突 数据完整性可以分为以下四类:

(1)实体完整性(Entity Integrity):实体完整性的目的是确保数据库中所有实 体的唯一性,也就是不应使用完全相同的数据记录。可以通过设定主键、唯一 键、唯一索引等多种方法来实现实体完整性,其中最常用的是使用主键。如,本文中的学生信息表,学生的学号是唯一的值,是学生信息表的主键。(2)区域完整性(Domain Integrity):区域完整性是要求数据表中的数据位于 某一个特定的允许范围内。可以使用默认值(Default)、核查(Check)、外键、数据类型和规则(Rule)等多种方法来实现区域完整性。如,限制“sex”性别 字段的数据值可以是“F”或“M",那么,输入的其他数值将被SQL Server拒

绝。

(3)参考完整性(Referemial Integrity):参考完整性是用来维护相关数据表之 间数据一致性的手段,通过实现参考完整性,可以避免因一个数据表的记录改 变而造成另一个数据表内的数据编程无效的值‘221。可利用外键、触发器和存储 过程来实现。如,在教师数据表和工作量数据表中,如果要删除教师数据表中 的一条记录,而同时在工作量数据表中存在需要参考该记录的记录集,那么该 删除操作将会失败。

(4)用户定义完整性:这种数据完整性由用户根据实际应用中的需要自行定 义。可以用来实现用户定义完整性的方法有:规则、触发器、存储过程和数据 表创建时可以使用的所有约束。

通过使用这些强制的完整性定义,数据库管理系统将提供更可靠的数据,同 时避免在多个用户同时操作数据库时可能发生的数据不一致。3.1.6数据库表的实现

经过前面的需求分析和概念结构设计以后,得到数据库的逻辑结构。接下来

要在SQL Server 2000数据库系统中实现该逻辑结构。利用SQL Server 2000的

SQL查询分析器实现。下面是创建表格的SQL语句,由于篇幅原因,只列出部 分语句。

(1)创建系统用户表格Admin CREATE TABLE[dbo].[Admin](【usedd】【int]NOT NULL,【pwd][varchar](20)COLLATE Chinese—PRC—CI—AS NULL,[group]【char](5)COLLATE Chinese—PRC—CI—AS NULL)ON[PRIMARY】

(2)创建学生基本信息表格Student~Info CREATE TABLE【dbo].【Student_lnfo】([stuid】[int]NOT NULL,【stuname]【varchar】(1 O)COLLATE Chinese—PRC—Cl—AS NULL,[Sex】[char](4)COLLATE Chinese~PRC—CI—AS NULL,【age】[tinyint】NULL,【studepartment】[int](4)COLLATE Chinese—PRC—CI—AS NULL,[stucid】[int](4)COLLATE Chinese_PRC CI_AS NULL,【smgid】[int](4)COLLATE Chinese—PRC—CI—AS NULL,[birthday】[datetime]NULL,【address][varchar](50)COLLATE Chinese—PRC—C1一AS NULL,[phone][varchar](12)COLLATE Chinese—PRC—CI—AS NULL,[Jiguan】[varchar](1 o)COLLATE Chinese._PRC_CI_AS NULL)ON[PRIMARY](3)课程信息表格Course—Info CREATE TABLE[dbo].【Course_Info]([cid]【int](4)NOT NULL,[cname][varchar](30)COLLATE Chinese—PRC—CI—AS NULL,【ctypeid】【int](4)COLLATE Chinese—PRC CI_AS NULL 【clong][int](4)COLLATE Chinese—PRC—CI—AS NULL)ON[PRIMARY](4)成绩信息表格Score—Info CREATE TABLE【dbo].【Score_Info】(【stuid】【int]NOT NULL,【cid】【int】(4)COLLATE Chinese_PRC CI AS NOT NULL,【score】【smallint】NULL [restudy】【char](2)COLLATE Chinese—PRC—CI—AS NOT NULL)ON[PRIMARY】

(5)教材信息表格Book—Info CREATE TABLE[dbo].【Book._Info】(【bid】【varchar](1 5)COLLATE Chinese—PRC—CI—AS NOT NULL,[bname】【varchar](30)COLLATE Chinese—PRC—CI—AS NULL,【bwriter】【varchar]O o)COLLATE Chinese—PRC—CI—AS NULL,【bpublishl[varchar】(30)COLLATE Chinese—PRC—CI—AS NULL,【bci】【int](4)COLLATE Chinese—PRC_CI_AS NULL,【bcoum】【int】(4)COLLATE Chinese—PRC—CLAS NULL,)ON[PRIMARY】

(其他表格创建略)3.1.7存储过程的设计

存储过程可以使得对数据库的管理、以及显示关于数据库及其用户信息的工

作容易得多。存储过程是SQL语句和可选控制流语句的预编译集合,以—介名

称存储并作为一个单元处理【23】。存储过程存储在数据库内,可由应用程序通过 一个调用执行,而且允许用户声明变量、有条件执行以及其他强大的编程功能。Admin表相关存储过程。对Admin表进行的操作有,增加管理员(或用户)、验证管理员(或用户)、删除管理员(或用户)、修改管理员(或用户)权限、修改管理员(或用户)密码、得到所有管理员(或用户)、通过用户名查找管理 员(或用户)信息等等若干操作。由于篇幅原因,我们只列举部分的设计思路

和方法。

(1)增加管理员。在系统中系统管理员有权限添加管理员,建立存储过程在 Admin表中添加管理员,用户名为参数@usefid,用户密码为参数@pwd,用户 权限为参数@group。SQL脚本:

CREATE PROCEDUREjw_addadmin@usefid int(4),@pwd varchar(20),@group varchar(5)as insert into Admin values(@usefid int,@pwd,@group,0,”,”)90(2)验证管理员。添加管理员时,需要验证管理员是否已存在,通过选择Admin 表中是否有同名管理员用户来验证,查询条件为从Admin表中得到userid字段 等于参数@userid的数据,如果所得数据集为零说明管理员名不冲突,大于零时 说明已存在此管理员。

SQL脚本:

CREATE PROCEDUREjw_addadminvalidate@userid int(4)AS select事from Admin where userid=@userid go(3)得到管理员相关信息。当登录管理后台时,系统需得到管理员信息,以 验证管理员权限和是否有权利登录,验证管理员主要是通过用户名和密码来匹 配管理员信息,如果数据为空说明不存在此用户或密码错误,数据不为空则此

用户存在,得到管理员信息。SQL脚本:

CREATE PROCEDURE jw_getinfo@usedd int(4),@pwd varchar(20)AS select事劬m AdmiIl where usedd=@userid and pwd:@pwd 90(4)通过用户名查找管理员信息。在系统中,需得到管理员信息,即在Admin 表中得到userid字段等于参数@userid的数据。SQL脚本:

CREATE PROCEDUREjw_seladminbyuserid@userid int(4)AS select幸from Admin where userid=@:userid 90 463.2类设计

本系统是以面向对象设计思想为基础的,需求分析是用UML进行建模,因 此在模型基础上就可以进行类设计。

根据概要设计中的各个模块图,可以发现,每个子系统在对于数据库的操作 时都存在一些共同的行为,如添加、更新、搜索等,根据面向对象的封装特性,可以将这些行为封装成组件。同样,对于一些非数据库的操作,例如在教务管 理子系统中有工作量的计算,这样的操作也可以封装成类,使用设计模式使得 程序更加灵活、易于修改,并且易于复用。准确的说,就是让业务逻辑与界面 逻辑分开。

数据访问层类设计:数据访问层负责链接到数据源,构建类型化数据集,然 后该数据集从对象的方法中返回【22】。

建立一个数据访问组件visitjwdata,可以创建这个类的实例来使用。它的每 一个实例都是到数据源的一个链接。可以为每一个数据表定义一个这样的实例。该组件包括了三个方法,getdata引用数据集;deldata从后台数据源中删除数据 集;updatedata将数据集的变化添加到后台数据源中。类图如图3.4所示。

图3.4数据访问组件visitjwdata 另外,将数据库中的表格看做是对象,字段就是该对象的属性。数据库记录 就是一个实例化对象。

在第一章的静态建模中,我们分析系统中的主要类,并作出类图,根据静态 结构建模中创建的类,VB.NET语言实现。

3.3模块设计

第一章动态行为模型中的序列图和协作图对系统设计有很重要的帮助。序列 图是模块通信流程的一种抽象表示,从序列图中很容易看出各个对象之间承上 启下的关系,因为序列图主要是以时间作为单独的维来表示的。协作图和序列 图有着密切的关联,它是序列图的另一种表现形式,是通过协作角色来限定协 作中的对象或链。虽然它们的表示方法不同,但可以在Rational Rose中通过适 当的方式相互转换。

由于静态结构模型属于系统分析,动态行为模型属于系统设计,因此在这一 章里,我们就以第一章详细的建模为基础,不在对详细设计作过多的论述。在 模块设计中我们采用流程图来表达模块的算法,这里只列出几个代表性的模块。(1)登录模块

与数据库中的Admin表格关联,检查用户id字段和12令字段,结合SQL语 句实现。流程如图3.5所示(2)选课模块

根据登录的学生身份读取学生信息数据库表的院系、专业和班级字段值,通 过这些信息显示选课界面中相关的课程,并在学生提交自己的选课后,判断所 选课程是否符合要求,一方面选课总数限制,另一方面选择的课程为选满。流

程如图3-6所示 .5登录流程图

(3)教材管理模块

与数据库表教材信息表关联。教师在选用教材时,首先查询数据库中是否有 合适的教材,若没有则填写教材征订表提交给教材管理人员,由教材管理人员 进行课本的采集。

书本的出库业务流程如图3.7所示。

3图3-6选课流程图

图3.7出库业务流程图

4系统的实现

本系统在开发工具上,选择了Visual Studio.NET 2005。Visual Studio.NET是 一套完整的开发工具,用于生成ASP.NET Web应用程序、XML Web services、桌面应用程序和移动应用程序1241。Visual Basic.NET、Visual C++.NET、Visual C群.NET和Visual J撑.NET全都使用相同的集成开发环境(IDE),该环境允许

它们共享工具并有助于创建混合语言解决方案。另外,这些语言利用了.NET Framework的功能,此框架提供对简化ASENET Web应用程序和XML Web services开发的关键技术的访问。

Visual Studio.NET是用于快速生成企业级ASENET Web应用程序和高性

能桌面应用程序的工具。Visual Studio支持Microsott.NET Framework,该框架 提供公共语言运行库和统一编程类。公共语言运行库是.NET框架的基础。运行 库可以看作一个在执行时管理代码的代理,提供核心服务,而且还强制实施严 格的类型安全以及可确保安全性和可靠性的其他形式的代码准确性【25】。以运行 库为目标的代码称为托管代码,而不以运行库为目标的代码成为非托管代码。类库是一个综合性的面向对象的可重用类型集合,用户可以用它开发包含从传 统的命令行或图形用户界面应用程序到基于最新的ASP.NET技术在内的应用 程序【25】。在数据库的开发上,本文论述的系统将采用Microsoft SQL Server2000作为 系统的DBMS支撑,SQL Server2000是能够支持企业级关系型数据库的管理系 统,它能与Windows操作系统紧密集成,具有方便易用的图形管理界面,其用 户界面风格与Windows一样非常友好1261。SQL Server2000在存储大容量数据方 面,在数据的安全性和完整性方面,在分布式处理等都是适合于企业级应用的。而其相对Oracle,DB/2等大型数据库来说,学习更为容易,应用成本也相对较 低。采用SQL Server2000 4-ASP.Net开发本系统是一个较为理想的组合。

4.1登录模块

在用户登录界面中,最关键的问题是用户的验证,在这里可以将用户的验证 独立成一个模块。在该系统中,将用户分为几种不同的权限,每一种权限的用 户所面对的用户操作界面是不同,系统所提供的功能也是不同的,因此在数据 库中等门添加用户权限的字段,为的就是在用户登录时,比对数据表中的权限 值来判断是何种用户,从而展现给用户不同的操作界面。

实现思想:根据用户名即usefid字段和用户密码即pwd字段是否符合数据 库中的数据来决定该用户是否为已注册用户,如果不一致则有两种可能:一是 该用户的用户名或密码输入错误,二是该用户可能是未注册用户,数据库中还 没有该用户的信息。遇到这两种情况中的一种,都要弹出提示,指示用户要么 重新输入用户名和密码,重新登录;要么就要进行信息注册。若用户的名和密 码与数据库中数据相符,则进行下一步判断,验证同一条记录的另一个字段即 group权限字段,根据权限字段的值决定显示何种操作界面。如图4一l所示。

图4—1教务管理系统登录页面

这一模块中有一个功能“注册”功能,选择“注册”后,会出现一个注册页 面,这一页面中有多个表单输入框,用户在进行输入后,表单提交到Web服务 器端时,要验证表单字段的合法性,在这里使用ASENET的验证控件.这样可 以防止用户向数据库表提交错误类型的数据。验证控件会在客户端(浏览器)和服务器端都默认执行验证。从用户角度看,这一功能非常好,因为无论何时 把一个无效的值输入表单字段都能立即得到反馈。

每个验证控件都包含一个lsValid属性,如果验证过程中未发现错误,这个 属性将会返回True值。如果页面中所有的验证控件的lsValid都返回True,那 么Page.IsValid属性就是True。因此模块代码中通过检查Page.IsValid属性判断 是否将表单值填入数据库表。图4.2所示为注册页面中添加了验证控件的效果。

图4-2验证控件

4.2教师功能模块

教师登录系统成功后能够执行的操作,共有4个主要菜单,成绩录入、信息 维护、信息查询和选课(自然班)名单打印。(1)基本信息管理

主要功能是输入教师的一些基本信息,供教务部门查阅和调用。其中有一些 档案中的基本信息,是直接从数据库中读取的,不能随意更改,另外一些不重 要的信息由教师选择是否添加和更新。这里也是使用了表单验证控件防止非法 的数据写入数据库当中。图4.3是教师基本信息管理的页面。(2)信息查询

主要完成教师对自己工作上的一些信息的浏览。如本学期课表、教学计划、选课情况、教学质量信息等。(3)成绩录入

主要功能是对本学期教学班成绩的输入,每个学期学校教务部门对每门课程 每教学班下发专门的成绩录入密码,教师获得密码后登录成绩,然后使用密码 提交,提交后不能再修改。(4)选课(自然班)名单打印

选择该菜单后进入如图4-4所示界面。在这一页面中,根据教师选择的学年 学期以及教师所教授的课程名,弹出符合选择条件的学生班级人员列表。也可 以在班级选择栏中,找到要查找的班级列出班级列表。

图4-3教师基本信息管理界面

图4-4教师所教班级学生名单

每个学期的学期未,教务处会开放选课功能,并规定学生在限定的时间内进 行网上选课。在指定的时间内,学生可以多次进行网上选课。选课的条件有:

(1)选修课程数的限定:根据每学年的培养计划,设簧不同年级的限选门数。(2)选修年级的限定:不同的年级学生在登录选课模块后,查看到的所选课 程名称是不同的,某些课程只面向固定的年级。

(3)选修人数的限定:每个选修课程可以设置最大选课人数,并可咀选择选 课人数满时的解决办法,如禁选,或者允许继续选择,当选课结束时由教务人 员筛选。

(4)选修名单已经确定,或者被管理员设置禁选的课程,在选课时间范围内 只接受己选中的学生退选要求。

设计思路:学生登录后,根据学生的身份,及判断学生过去的选修记录来显 示该学生的选课界面,首先从课程信息表中找到课程类型(ctypeid字段)为选 修课的这类课程,并且满足crime字段的值为本学期.这样的课程以表格形式 显示;其次,对显示的每--1]课程添加复选框,允许学生选中或者退选。复选 框checked属性若为True,说明被选中,否则未被选中。在接到学生提交的选 课信息时,检查学生的选择是否有效,即判断学生的选课总数是否超出该年级 的限选门数,并判断选课人数是否超出限选人数,也就是判断该课是否设为满 即禁选。如果满足以上条件,将本次选课记录写入数据库中。在本功能模块中,还存在一种校验功能.检查学生所选课程是否时间矛盾,如果矛盾则及时通知 学生,以便重新选课.图4-5学生选课界面

4.4教学计划管理模块

教学计划是根据每个专业制定的学生培养计划和教学课程大纲而延伸出来 的与课程安排、教师排课、成绩等信息有着密切关系的文件,是教务管理的核

心内容。

教学计划中每学期的所教授的课程明细是由教务管理人员根据学生培养计 划和教学课程大纲列出,然后送达各个院系。由学院的教研室主任根据各个教 师的实际情况分配教学任务。然后将教学任务返回教务处。教师在接到教学任 务后,根据教学课程大纲中的教学要求,详细写出自己课程的教学授课计划,并从教务管理系统输入,这样教务处和学生都能看到了。

教学计划分成了两大部分,教务处制定的总的计划和教师制定的课程详细计 划,这些都可以通过网络向全校人员公布。

在教学计划管理页面上,有些信息是教务管理人员在后台输入的,是教师不 能修改的,这部分信息就是教务处制定的总的计划。教师指定的课程详细计划 是可以由教师修改添加的。如图4-6和4.7所示,为教务计划页面的部分截图。

图4-6由后台输入不能修改的信息

第三篇:ASP.NET的网站新闻管理系统设计与实现[定稿]

【摘要】利用ASp.NET和ADO.NET技术开发的网站新闻管理系统,实现了网站新闻的动态管理,使得对信息的管理更加及时、高效,提高了工作效率。同时对系统的开发原理、系统的功能特点和设计方案进行了介绍。【关键词】ASp.NET ADO.NET 新闻 管理 数据库随着Internet的普及,越来越多的企业建立了自己的www.xiexiebang.command cmd=new SqlCommand(sql,conn);dr=cmd.ExecuteReader();//保留用户注册与否信息bool isRegUserExist=dr.Read();//关闭DataReaderdr.Close();//取得用户名的密码string sqlBoth=“select * from reg where name='”+name+“'”;sqlBoth+=“and pwd='”+pwd+“'”;SqlCommand cmdBoth=new SqlCommand(sqlBoth,conn);SqlDataReader drBoth;drBoth=cmdBoth.ExecuteReader();//保留用户名+密码同时存在信息bool isBothExist=drBoth.Read();//关闭DataReaderdrBoth.Close();conn.Close();//判断用户是否注册if(!isRegUserExist){Response.Write(“