“学生成绩管理系统”对象类模型设计
摘 要
随着当前计算机产业中面向对象技术的飞速发展,UML统一和发展了多种建模表示方法,成为了“面向对象”技术领域内占主导地位的标准建模语言。在面向对象的处理中,类图处于核心地位,它提供了用于定义和使用对象的主要规则。
上海市精品课程“.NET程序设计”所使用的案例“学生成绩管理系统”对课程建设做出了贡献,但是至今没有使用UML模型。本文研究应用UML对“学生成绩管理系统”建立对象类模型,并通过时下最新的ASP .NET MVC框架进行开发,证明对象类模型设计的正确性和可实现性。
本文中作者的主要贡献是:
1. 分析“学生成绩管理系统”案例现状,明确和制定UML对象类模型设计
方案和计划。
2. 根据初步设计规划,研究应用统一建模语言UML2.1对“学生成绩管理系
统”进行对象类模型设计。
3.
通过分析和考察,选用时下最新开发框架ASP .NET MVC进行“学生成绩管理系统”实验性开发,验证对象类模型设计的正确性和可实现性。
关键字:UML建模,面向对象,对象类模型,ASP .NET MVC开发验证
I
“学生成绩管理系统”对象类模型设计
“STUDENT PERFORMANCE MANAGEMENT
SYSTEM”CLASS MODEL DESIGN
Abstract
With the rapid development of object-oriented technology in current IT industry , UML (Unified Modeling Language)unified and developed Several Modeling Representation, become the dominant standard modeling language in object-oriented technology. In object-oriented processing, the class diagram has a core position , which provides the primary rules of the object definition and using.
Shanghai boutique course \". NET Programming\" used case \"STUDENT PERFORMANCE MANAGEMENT SYSTEM\" to the course construction, but has yet to use the UML model of this system, the research achievement of this thesis will make a positive contribution to the course construction.
This thesis is based on the analysis of \"STUDENT PERFORMANCE MANAGEMENT SYSTEM\" , the purpose is to produce an object class model, and finish the system programing by the latest programing language ASP. NET MVC,in order to prove the prove the validity and achievability of the UML Class Modeling.
My main contributions are as follows,
1. Analysis the situation of \"STUDENT PERFORMANCE MANAGEMENT SYSTEM\" , clear
and make the plan of UML Class Modeling.
2. According to the initial design and planning, research and application of Unified Modeling
Language UML2.1 on \"student achievement management system\" to design object class model. 3. Through the analysis and investigation, the latest framework ASP. NET MVC has been choosen
to the programming of \"STUDENT PERFORMANCE MANAGEMENT SYSTEM\" , the purpose is to verify the correctness and enforceability of the UML Class Modeling.
Key words:UML modeling, object-oriented, Class modeling, ASP. NET MVC,
II
“学生成绩管理系统”对象类模型设计
目录
1. 前言 .......................................................... 1 1.1 1.2 1.3 1.4
UML建模概述 ............................................... 1 UML建模的分类 ............................................. 2 对象类模型建模的意义 ...................................... 4 主要工作及论文结构 ........................................ 4
2. “学生成绩管理系统”业务流程 .................................. 6 2.1
“学生成绩管理系统”功能 .................................. 7
2.1.1 用例图 ................................................... 7 2.1.2 功能描述 ................................................. 7 2.2
“学生成绩管理系统”运行环境 .............................. 9
2.2.1 部署图 ................................................... 9 2.2.2 运行环境描述 ............................................. 9 2.3
类图的标示 ............................................... 10
3. “学生成绩管理系统”对象类模型的建模 ......................... 13 3.1 3.2
包图分析 ................................................. 13 类模型分析 ............................................... 14
3.2.1 Business类图 ............................................ 15 3.2.2 Database类图 ............................................ 16 3.2.3 Models类图 .............................................. 17 3.2.4 Views类图 ............................................... 17
III
“学生成绩管理系统”对象类模型设计
3.2.5 Controllers类图 ......................................... 18 3.2.6 Web.Controls类图 ........................................ 19 3.3 3.4
组件图分析 ............................................... 20 “浏览学生”对象图 ....................................... 21
4. “学生成绩管理系统”——ASP.NET MVC开发 ...................... 25 4.1 4.2 4.3 4.4 4.5 4.6
“学生成绩管理系统”系统开发意义 .......................... 25 开发平台的选择 ........................................... 25 “学生成绩管理系统”功能概述 ............................. 27 ASP.NET MVC开发成果 ...................................... 27 系统性能测试 ............................................. 28 改进与建议 ............................................... 29
5. 结论 ......................................................... 30 6. 参考文献 ..................................................... 31 致 谢 ............................................................ 33 附 录 ............................................................ 34
IV
“学生成绩管理系统”对象类模型设计
1. 前言
上海市精品课程“.NET程序设计”所使用的案例“学生成绩管理系统”对课程建设做出了贡献,但是至今没有使用UML模型。若能通过本课题的研究产生完整的UM对象类模型,必将促进“.NET程序设计”的教学。
本课题的任务在于,结合本系的实际与“学生成绩管理系统”的现实需求,研究应用统一建模语言UML2.1对“学生成绩管理系统”进行初步分析,重点设计对象类模型。
1.1 UML建模概述
统一建模语言UML(Unified Modeling Language)是国际对象管理组织OMG(Object Management Group)推荐的构建系统模型尤其是软件系统模型的有力工具[1]。
面向对象(Object Oriented,OO)是当前计算机界关心的重点,它是90年代软件开发方法的主流。面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围[2]。由此,面向对象的模型建模成为了计算机界面临的一大热点问题,建模表示方法有许多,如Booch方法、OMT方法、OOSE方法等,然而,UML不仅统一了的表示方法,而且对其作了进一步的发展,最终统一为大众接受的标准建模语言[3]。UML是一种定义良好、易于表达、功能强大且普遍适用的建
1
“学生成绩管理系统”对象类模型设计
模语言。它融入了软件工程领域的新思想、新方法和新技术。它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发全过程[4]。
1.2 UML建模的分类
UML2.0中有五类图(共13种基本图形)形成模型的不同视图。可以分为五类[5][6]。
(1) 用例图(Use Case),从用户角度描述系统功能,并指出各功能的操作者。
(2) 静态图(Static diagram),包括类图、对象图和包图。描述系统的静态结构。
(3) 行为图(Behavior diagram),描述系统的动态模型和组成对象间的交互关系。
(4) 交互图(Interactive diagram),描述对象间的交互关系。 (5) 实现图( Implementation diagram )。其中构件图描述代码部件的物理结构及各部件之间的依赖关系。
从应用的角度看,当采用面向对象技术设计系统时第一步是描述需求;第二步是根据需求建立系统的静态模型,以构造系统的结构;第三步是描述系统的行为。其中在第一步与第二步中所建立的模型都是静态的,包括包图、类图、对象图、组件图和部署图等五个图形,是标准建模语言UML的静态建模机制[8]。
2
“学生成绩管理系统”对象类模型设计
因此,标准建模语言UML的主要内容也可以归纳为静态建模机制和动态建模机制两大类。本课题的研究内容,是针对“学生成绩管理系统”的UML静态模型设计。
Kruchten的4+1视图模型图下[7]:
图1 4+1视图模型图
为什么要建模?一个基本理由是:建模是为了能够更好地理解正在开发的系统。通过建模,要达到4个目的:
(1) 模型有助于按照实际情况或按照所需要的样式对系统进行可视化。
(2) 模型能够规约系统的结构或行为。 (3) 模型给出了指导构造系统的模板。 (4) 模型对做出的决策进行文档化。
模型是什么?简单地说:模型是对现实的简化。模型提供了系统的蓝图。模型既可以包括详细的计划,也可以包括从很高的层次考虑系统的总体计划。一个好的模型包括那些有广泛影响的主要元素,而忽略那些与给定的抽象水平不相关
3
“学生成绩管理系统”对象类模型设计
的次要元素。
建模并不只是针对大的系统。即使像“学生成绩管理系统”这样规模较小的服务系统也能从一些建模中受益。然而,可以明确地讲,系统越大、越复杂,建模的重要性就越大,人对复杂问题的理解能力是有限的。通过建模,缩小所研究问题的范围,一次只着重研究它的一个方面,这就是“分而治之”的基本方法,即把一个困难问题划分成一系列能够解决的小问题;解决了这些小问题也就解决了这个难题。
1.3 对象类模型建模的意义
每个系统都可以从不同的方面用不同的模型来描述,因而每个模型都是一个在语义上闭合的系统抽象。
任何建模语言都以静态建模机制为基础,标准建模语言UML也不例外。UML的静态建模机制包括、类图(Class diagram)、对象图(Object diagram )、包(Package)、构件图(Component diagram)和配置图(Deployment diagram)。
其中类图描述系统中类的静态结构。不仅定义系统中的类,表示类之间的联系如关联、依赖、聚合等,也包括类的内部结构(类的属性和操作)。类图描述的是一种静态关系,在系统的整个生命周期都是有效的。
1.4 主要工作及论文结构
本文通过理论联系实际的方法来完成对“学生成绩管理系统”的对象类模型
4
“学生成绩管理系统”对象类模型设计
设计。在理论方面主要研究方法(技术路线)有:对象类模型建模方法、面向对象思想、ASP.NET MVC、.NET技术等相关知识;在理论设计的基础上,开发了带有基本功能的学生成绩管理系统,证明了本文的研究成果——“学生成绩管理系统”对象类模型的正确性和可行性。
论文的结构也将按照上面的思路来安排。
5
“学生成绩管理系统”对象类模型设计
2. “学生成绩管理系统”业务流程
考虑到UML统一建模语言的学习难度和复杂性,虽然本课题的设计基于现实应用和实际经验,但理论设计本身有一定局限性,如果在对象类模型设计的基础上,进行相关实验工作,将有助于验证理论设计的正确性,同时,可以直观展现理论设计的成果。
ASP.NET MVC是微软官方提供的MVC模式编写ASP.NET WEB应用程序的一个框架,作为时下最新的WEB框架技术,学习和使用此框架作为开发方式具有很强的先进性和挑战性[9]。
综上所述,在对象类模型设计完成之后,使用ASP.NET MVC框架进行“学生成绩管理系统”的开发,不仅能够以直观的操作界面和运行实态证明本文理论设计的全面性、正确性和可行性,还有助于读者和学习人员理解本文相对抽象的理论设计成果。
所以本论文将按照理论设计在先,技术实现在后的顺序,通过对“学生成绩管理系统”的整体而全面的分析,尤其是“学生成绩管理系统”的功能部分,结合开发环境,即ASP.NET MVC框架的实际应用约定,分析和设计部署图、包图、组件图和各个类图。
6
“学生成绩管理系统”对象类模型设计
2.1 “学生成绩管理系统”功能
2.1.1 用例图
图2 用例图
2.1.2 功能描述
操作员(未登录用户)可以浏览学生、课程、成绩数据。
管理员(已登录用户)不但可以浏览数据,还可以增加学生、修改学生、删除学生、增加课程、修改课程、删除课程、增加成绩、修改成绩和删除成绩,还可以查询学生、查询课程、查询成绩和制作成绩报表。
7
“学生成绩管理系统”对象类模型设计
表1 “学生成绩管理系统”——操作员功能 功能编号 GN01 GN02 GN03 功能说明 浏览学生数据 浏览课程数据 浏览成绩数据 表2“学生成绩管理系统”——管理员功能 功能编号 GN03 GN04 GN05 GN06 GN07 GN08 GN09 GN10 GN11 GN12 GN13 GN14 功能说明 增加学生数据 修改学生数据 删除学生数据 增加课程数据 修改课程数据 删除课程数据 增加成绩数据 修改成绩数据 删除成绩数据 查询学生信息 查询课程信息 查询成绩信息 8
“学生成绩管理系统”对象类模型设计
2.2 “学生成绩管理系统”运行环境
2.2.1 部署图
通过分析“学生成绩管理系统”的实际使用情景,绘制出部署图。
图3 部署图
2.2.2 运行环境描述
“学生成绩管理系统”的运行环境由一台服务器和若干台PC通过HTTP协议连接。“学生成绩管理系统”在服务器上运行,其支撑环境是微软的WEB服务系统Internet Information Server 7、数据库管理系统SQL Express 2008、.NET虚拟机(.NET Framework 3.5+SP1和ASP.NET MVC 2)。客户端使用微软的Internet Explorer 7或以上版本。
9
“学生成绩管理系统”对象类模型设计
2.3 类图的标示
图4 类图标示
UML的类图包括各种标示,图4中的Worker是类名称,name和no是类的属性,可见性是私有。getName()、setName()、getNo()、setNo()是操作,可见性是共有。除此之外还包括类与类之间的关系等标示[10],详细说明如下:
名称:类的名称是每个类中所必有的构成元素。 属性(Attribute)包括以下四种:
(1) 可见性:类中属性的可见性主要包括公有(public)、私有(Private)和受保护(Protected)。在UML中,公有类型的用“+”表达,私有类型用“-”表达,而受保护类型则用“#”表达。UML的类中不存在默认的可见性,如果没有显示任何一种符号,就表示没有定义该属性的可见性。
(2) 属性名:按照UML的约定,单字属性名小写。如果属性名包含多个
10
“学生成绩管理系统”对象类模型设计
单词,这些单词要合并,且除了第一个单词外其余单词的首字母要大写。
(3) 属性字符串。属性字符串用来指定关于属性的其他信息,例如某个属性应该是永久的。任何希望添加在属性定义字符串值但又没有合适地方可以加入的规则,都可以放在属性字符串里。
(4) 类属性。属性也可以作为一个类属属性来定义,这就意味着此属性被该类的所有对象共享。在类图中,类属性带有一条下划线。
操作(Operation):类的操作是对类的对象所能做的事务的抽象,相当于一个服务的实现。
职责:在操作部分下面的区域,可以用来说明类的职责。职责是类或其他元素的契约或义务。类的职责是是自由形式的文本,写一个短语,一个句子等。在UML中,把职责列在类图底部的分隔栏中。
约束:说明类的职责是消除二义性的一种非形式化的方法,形式化的方法是使用约束。约束指定了该类所要满足的一个或多个规则。在UML中,约束是用一个花括号括起来的自由文本。
继承:人们将具有共同特性的元素抽象成类别,并通过增加其内涵而进一步分类。子类直接拥有父类的属性和方法。
extend:扩展关系,例如:在注册操作中,注册出错提示框extend出错处理。
include:包含关系,例如:在增加学生操作中,成功增加学生include用户身份验证。
11
“学生成绩管理系统”对象类模型设计
对象:类的实例。
Association:关联关系,表示两个类之间存在某种语义上的联系,关联有两种:聚集和组成。
关联的方向:关联可以有方向,表示该关联单方向被使用。
依赖关系:有两个元素X、Y,如果修改元素X的定义可能会引起对另一个元素Y的定义的修改,则称元素Y依赖(Dependency)于元素X。
12
“学生成绩管理系统”对象类模型设计
3. “学生成绩管理系统”对象类模型的建模
通过分析“学生成绩管理系统”,从整体来看,在逻辑上可以得到包图,在物理上可以得到组件图。从局部上分析,可以归纳出若干类图。
3.1 包图分析
包图是维护和控制系统总体结构的重要建模工具。包由包或类组成,表示包与包之间的关系。包图用于描述系统的分层结构。将语义相近并倾向于同一变化的元素组织起来可以便于理解和处理整个模型[11]。
基于系统功能和后期技术实现的双重考虑,MVC框架有其自己的特性,故在包图的设计阶段,就要考虑达到“以问题域类的设计为核心,表现层可以容易地替换,数据字段的变动对系统影响不大”的效果。
在数据方面,达到数据表尽量规范化,表名用英文复数,字段名用中文[12]。数据访问类用于访问数据表。
13
“学生成绩管理系统”对象类模型设计
图5 包图
3.2 类模型分析
类定义了一组有着状态和行为的对象。其中,属性和关联用来描述状态。属性通常用没有身份的数据值表示,如数字和字符串。关联则用有身份的对象之间的关系表示。行为由操作来描述,方法是操作的实现。对象的生命期则由附加给类的状态机来描述。
14
“学生成绩管理系统”对象类模型设计
根据用例图和ASP.NET MVC框架约定,同时,鉴于ASP.NET MVC中已具备身份验证(注册、登录)和授权的类体系[13],设计类及其关系。
3.2.1 Business类图
站在整个项目的角度来看,“学生成绩管理系统”的业务包括两个重要方面,即使用人员和运行环境,只有达到人机俱备的条件,才能维持系统运行,同时,对使用人员必然有一定的要求,如键盘打字、微软系统的基本操作等。因而,Bussiness类在业务这一方面明确地表达了使用的人员和运行的环境的必要性。
图6 Business类图
15
“学生成绩管理系统”对象类模型设计
3.2.2 Database类图
在“学生成绩管理系统”的运作过程中,必然涉及数据存储,MVC开发成果将适用于各类系统和网页浏览器,不同的计算机,使用的数据库各异,所以需要考虑多种数据库的情况,包括OdbcDb、SqlDb、OleDb、OraDb、XML等[14][15]。
图7 Database类图
16
“学生成绩管理系统”对象类模型设计
3.2.3 Models类图
MVC把一个WEB应用分成了三个部分:M是指数据模型model,V是指用户界面view,C则是控制器controller。使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新[16]。
Models类图,即数据模型类图,它定义了获取、增加、删除、修改、保存学生信息操作的方法。
图8 Models类图
3.2.4 Views类图
MVC中的V是指用户界面view,用户界面V可以随着数据模型M的改变
17
“学生成绩管理系统”对象类模型设计
而同步更新。
Views类图,即用户界面类图,它包含了学生、课程、成绩各自的Index、Add、Edit、Delete、Details类。
图9 Views类图
3.2.5 Controllers类图
MVC的C则是控制器controller。使用MVC的目的是将数据模型M和用户界面V的实现代码分离,从而使同一个程序可以使用不同的表现形式。控制器C存在的目的则是确保数据模型M和用户界面V的同步,一旦数据模型M改变,用户
18
“学生成绩管理系统”对象类模型设计
界面V应该同步更新。
Controllers类,即控制器类,其中Studentscontroller表示学生信息控制类,ScoreController表示成绩控制类,CoursesController表示课程控制类,其中,又各自包含了index()、create()、edit()、delete()、details()方法。
图10 Controllers类图
3.2.6 Web.Controls类图
“学生成绩管理系统”的网络用户直接通过网页界面得到学生成绩信息。将学生成绩公布到网上供教师和学生浏览的时候,会用到很多的控件。为了便于使
19
“学生成绩管理系统”对象类模型设计
用这些控件,将在页面上可能用到的控件归为一个类。其中包括:根据输入的学生姓名查询成绩的标签、文本和按钮控件;显示学生成绩时的窗格和表格控件。
图11 Web.Controls类图
3.3 组件图分析
如上图所示,“学生成绩管理系统”基本需要6个接口来实现。分别是桌面控制接口IDControls、业务接口IBussiness、数据库接口Idatabase、网络服务器接口IWService、网路控制接口IWControls和通用接口ICommon。
这些接口相互之间的联系与部署图所表达的内容是一致的,都描述了桌面程序用户、网络端用户、数据库服务器和网络服务器之间互相协作的关系。
20
“学生成绩管理系统”对象类模型设计
图12 组件图
3.4 “浏览学生”对象图
对象图(Object Diagram)是类图的实例,几乎使用与类图完全相同的标识。他们的不同点在于对象图显示类的多个对象实例,而不是实际的类。一个对象图是类图的一个实例。由于对象存在生命周期,因此对象图只能在系统某一时间段存在。
对象图是显示了一组对象和他们之间的关系。使用对象图来说明数据结构,类图中的类或组件等的实例的静态快照。对象图和类图一样反映系统的静态过程,但它是从实际的或原型化的情景来表达的。对象图对象图显示某时刻
21
“学生成绩管理系统”对象类模型设计
对象和对象之间的关系。
本次,选择“浏览学生”动作作为对象图设计目标,运行系统,登录以后,点击“学生”标签,达到“浏览学生”的目的,具体如下图:
图13 执行“浏览学生”操作图
为了更好的得到对象图,考虑先设计顺序图,顺序图是将交互关系表示为一个二维图。纵向是时间轴,时间沿竖线向下延伸。横向轴代表了在协作中各独立对象的类元角色。类元角色用生命线表示。当对象存在时,角色用一条虚线表示,当对象的过程处于激活状态时,生命线是一个双道线。
具体设计如下图所示:
22
“学生成绩管理系统”对象类模型设计
图14 “浏览学生”顺序图
结合顺序图的分析结果,在对象图中筛选出“浏览学生”动作所需要的类。 由于是针对“学生”的操作,在对象图中,所有类都将为“浏览学生”服务,浏览的学生操作是Index,表明需要浏览所有学生信息,通过数据模型Models中的GetAll()方法得到数据库中的所有学生信息,控制器类Controllers给予“浏览”指令,再反应于界面类Views上。
“浏览学生”操作,涉及到的类有:界面类图中的Students类,控制器类图中的StudentsController类,模型类图中所有类(除了Course类和Score类)。因为
23
“学生成绩管理系统”对象类模型设计
此操作只牵扯到学生信息,故在对象图中,与课程、成绩相关的类是无关的,故不体现。也不需要牵涉到编辑的各种方法,包括增加学生、修改学生、删除学生等,所以在对象图中,可以看到只有浏览功能。
图15 “浏览学生”对象图
24
“学生成绩管理系统”对象类模型设计
4. “学生成绩管理系统”——ASP.NET MVC开发
4.1 “学生成绩管理系统”系统开发意义
考虑到UML统一建模语言的学习难度和复杂性,虽然本课题的设计基于现实应用和实际经验,但理论设计本身有一定局限性,如果在对象类模型设计的基础上,进行相关实验工作,将有助于验证理论设计的正确性,同时,可以直观展现理论设计的成果。
单一的类图设计,具有局限性和实现不便性,如果可以结合后阶段的开发环境进行整合考虑,则可以在学习开发技术的同时,完善和改对象进类模型设计。融合了对系统所需功能和后期开发环境的双重分析,可以得到更具操作性和实现性的对象类模型。
综上所述,在对象类模型设计完成之后,开发可运行的“学生成绩管理系统”项目,不仅能够以直观的操作界面和运行实态证明本文理论设计的正确性和可行性,还有助于理解本文相对抽象的理论设计成果。
4.2 开发平台的选择
ASP.NET MVC是微软官方提供的MVC模式编写ASP.NET WEB应用程序的一个框架,作为时下最新的WEB框架技术,学习和使用此框架作为开发方式具有很强的先进性和挑战性。
25
“学生成绩管理系统”对象类模型设计
MVC把一个WEB应用分成了三个部分:M是指数据模型model,V是指用户界面view,C则是控制器controller[17]。使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新[18]。ASP.NET MVC框架具有以下优势[19][20]:
(1) 低耦合性。视图层和业务层分离,允许更改视图层代码而不用重新编译模型和控制器代码,一个应用的业务流程或者业务规则的改变只需要改动MVC的模型层即可。因为模型与控制器和视图相分离,很容易改变应用程序的数据层和业务规则。使得复杂项目更加容易维护。
(2) 高重用性和可适用性。随着技术的不断进步,现在需要用越来越多的方式来访问应用程序。MVC允许使用各种不同样式的视图访问同一个服务器端的代码。它包括任何WEB浏览器或者无线浏览器。由于模型返回的数据没有进行格式化,所以,同样的构件能被不同的界面使用。
(3) 快速的部署。使用MVC模式使开发时间得到相当大的缩减,它使程序员集中精力于业务逻辑,界面程序员集中精力于表现形式上。
(4) 易测性和默认的测试驱动组件。所有mvc用到的组件都基于接口并且可以被mock对象测试到,无需在asp.net进程中运行controller就可以使用测试[21]。使测试更加快速和简捷。
(5) 可扩展的简便的框架。mvc框架被设计用来更轻松的移植和定制功能。你可以加入自己的视图引擎,url重写策略。重载action方
26
“学生成绩管理系统”对象类模型设计
法等。
4.3 “学生成绩管理系统”功能概述
围绕对象类模型设计依据(分析系统功能)和设计成果,删繁就简,抓取重点,分析得到所开发系统必须具备的功能:
(1) 可以注册和登录;
(2) 可以浏览、增加、删除、修改和存储学生数据; (3) 可以浏览、增加、删除、修改和存储课程数据;
(4) 可以浏览、增加、删除、修改和存储指定学生和课程的成绩数据。
同时,系统要具备直观且美观的操作界面,要进行严格的测试以保证系统的可靠性,要具备可扩展性和可维护性。
开发环境:Office2003/2007、Visual Studio 2008+ASP.NET MVC RTM、
UModel2009、SQL Express 2008。
4.4 ASP.NET MVC开发成果
由于ASP.NET MVC框架的先进性,如今市面上的相关教育书籍屈指可数,为了学习ASP.NET MVC框架,只有利用丰富和时效的网络资源。而最新的计算机技术资源,往往使用了英语,通过学习英文原版视频教程、电子书籍和网页教程,以及指导老师的帮助和解惑,基于《任务书》中所提出的功能需求,成功地
27
“学生成绩管理系统”对象类模型设计
采用ASP.NET MVC框架开发了可运行WEB系统。
系统界面如下:
图16系统界面图
4.5 系统性能测试
(1) 用户的注册和登录功能。登陆前后的页面改变。
(2) 登录用户与非登录用户的权限差别。非登录用户只能浏览数据,无法修改数据。登录用户可以修改数据。
(3) 点击学生标签,可以看到学生信息(姓名、年龄、毕业情况),通过超链接,可以看到该生的各科成绩。
(4) 点击课程标签,可以看到课程信息(名称、课程性质),通过
28
“学生成绩管理系统”对象类模型设计
超链接,可以看到参加该课程考试的学生成绩。
(5) 考查学生、成绩以及课程的增加、删除、修改操作执行情况。
4.6 改进与建议
通过.Net和UML的相关课程学习与本次毕业设计,我觉得“UML统一建模语言”和“.NET程序设计”课程安排同一位老师来教授是非常明智的,也是值得延续的。
在课程的时间安排上,“UML统一建模语言”课程应该先于“.NET程序设计”课程,这样更有利于在教授“.NET程序设计”课程时,直接引用UML的思想,也有助于在“UML统一建模语言”课程中,使用原有的PC端“学生成绩管理系统”与本次课题所开发的WEB版“学生成绩管理系统”进行教学辅助。
与此同时,如果本专业的其他相关专业课程也可以引用“学生成绩管理系统”的UML模型作为教学素材的话,则更有利于同学们从设计到编程的转变,如“软件工程”课程。
29
“学生成绩管理系统”对象类模型设计
5. 结论
本文围绕“学生成绩管理系统”的类模型设计展开,从整体上分析系统,放眼全局,对模型进行整体的概念和规划,分析“学生成绩管理系统”的业务流程和功能需求,完成了符合教学实际和应用需求的“学生成绩管理系统”对象类模型设计,对上海市精品课程“.NET程序设计”做出了积极的贡献。
在理论设计的基础上,采用了时下最新的开发框架ASP.NET MVC进行系统开发,不仅验证了理论设计的正确性和可行性,也丰富和完善了本系“UML统一建模语言”和“.NET程序设计”课程的教学素材。
30
“学生成绩管理系统”对象类模型设计
6. 参考文献
[1] 牛丽平 郭新志 等著.UML面向对象设计与分析,清华大学出版社,2007 [2] 刘欣怡著.软件工程,清华大学出版社,2007
[3] 迈尔斯 等著.UML 2.0学习指南,清华大学出版社,2007 [4] 张海藩著.软件工程导论,第五版.清华大学出版社,2008
[5] 普里斯特著.面向对象设计UML实践,第二版. 清华大学出版社,2005 [6] 巴拉赫 兰宝等著.UML面向对象建模与设计,第二版.人民邮电出版社,
2006
[7] 施穆勒著.UML基础、案例与应用(第3版),第三版.人民邮电出版社,2006 [8] 罗夫 张瑜著.UML基础教程,清华大学出版社,2007 [9] 王先国著.UML统一建模实用教程,清华大学出版社,2009
[10] 龚赤兵著.Web开发新体验:ASP.NET 3.5 MVC架构与实战,电子工业出版
社,2009
[11] 张跃廷 顾彦玲著.ASP.NET从入门到精通,清华大学出版社,2008 [12] 勒华著.ASP.NET3.5宝典,电子工业出版社,2009
[13] 顼宇峰著.ASP+SQL Server典型网站建设案例,清华大学出版社,2006 [14] 福塔著.SQL Server编程必知必会,人民邮电出版社,2009 [15] 何玉洁著.数据库原理与应用,机械工业出版社,2007
31
“学生成绩管理系统”对象类模型设计
[16] 鲍威尔著.数据库设计入门经典,清华大学出版社,2007 [17] 史嘉权著.数据库系统概论,清华大学出版社,2006
[18] “Creating a Movie Database Application with MVC”.http://www.asp.net/learn,
2009
[19] “Creating Model Classes with LINQ to SQL”.http://www.asp.net/learn,2009 [20] “Understanding Models,Views,and Controllers”.http://www.asp.net/learn,
2007
[21] “ What is ASP.NET MVC?”.http://www.asp.net/learn,2009
32
“学生成绩管理系统”对象类模型设计
致 谢
值此毕业设计完成之际,首先向我的指导老师徐布克教授致以最诚挚的谢意。在整个毕业设计期间和论文撰写的过程中,一直得到徐布克老师的悉心指导和极大的支持。徐布克老师不但以他深刻的理论知识和丰富的实践经验在学术理论上、科研方法上给予了我精心指导,而且还多次利用休息时间组织集体讨论和交流,同学之间交流毕业设计进展情况和心得,互相帮助和促进。
感谢本校机房的各位老师,所提供的良好的网络环境,完善的硬件和软件支持,使本次毕业设计得以顺利进行,并且得到理想的成果。
最后,感谢所有关心我的老师、家人、同学和朋友。
33
“学生成绩管理系统”对象类模型设计
附 录
Worker.cs
using System;
using System.Collections.Generic; using System.Linq; using System.Web;
namespace MVC.Models {
/// /// 功能:问题域类:工作者,实现业务逻辑,为子类共享,不可实例化。 ///
public abstract class Worker {
///
protected DataAccessDataContext db = new DataAccessDataContext();
///
db.SubmitChanges(); } } }
34
“学生成绩管理系统”对象类模型设计
Course.cs
using System;
using System.Collections.Generic; using System.Linq; using System.Web; namespace MVC.Models {
/// /// 功能:问题域类:课程,实现业务逻辑。 ///
public class Course : Worker {
///
/// return db.Courses; } /// /// 主键 /// return db.Courses.SingleOrDefault(s => s.CourseID == id); } /// /// 在课程集合中增加课程 /// /// 要增加的课程 35 “学生成绩管理系统”对象类模型设计 public void Add(Courses Course) { db.Courses.InsertOnSubmit(Course); } /// /// 从课程集合中删除课程,及其成绩 /// /// 要删除的课程 public void Delete(Courses Course) { db.Scores.DeleteAllOnSubmit(Course.Scores); db.Courses.DeleteOnSubmit(Course); } } } Score.cs using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace MVC.Models { /// /// 功能:问题域类-成绩,实现业务逻辑。 /// public class Score : Worker { /// 36 “学生成绩管理系统”对象类模型设计 /// /// return db.Scores; } /// /// 主键 /// return db.Scores.SingleOrDefault(s => s.ScoreID == id); } /// /// 在成绩集合中增加成绩 /// /// 要增加的成绩 public void Add(Scores score) { db.Scores.InsertOnSubmit(score); } /// /// 从成绩集合中删除成绩 /// /// 要删除的成绩 public void Delete(Scores score) { db.Scores.DeleteOnSubmit(score); } } } 37 “学生成绩管理系统”对象类模型设计 Student.cs using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace MVC.Models { /// /// 功能:问题域类:学生,实现业务逻辑。 /// public class Student : Worker { /// /// return db.Students; } /// /// 主键 /// return db.Students.SingleOrDefault(s => s.StudentID == id); } /// /// 在学生集合中增加学生 /// 38 “学生成绩管理系统”对象类模型设计 /// 要增加的学生 public void Add(Students student) { db.Students.InsertOnSubmit(student); } /// /// 从学生集合中删除学生,及其成绩 /// /// 要删除的学生 public void Delete(Students student) { db.Scores.DeleteAllOnSubmit(student.Scores); db.Students.DeleteOnSubmit(student); } } } 39 因篇幅问题不能全部显示,请点此查看更多更全内容