完成学生选课系统的 UML 建模
UML系统分析设计与建模
-----------学生选课系统
以简单的学生选课系统进行详细的系统分析与建模。
(一)系统用例图
1.首先根据需求分析可知:管理员维护课程信息,对其进行添加、修改、删除等。学生可以在线查询课程信息,并进行选课,也可以在规定时间内更改选修的课程。我们发现系统中的参与者有:管理员和学生,然后从参与者的角度就可以发现系统的用例,并绘制出系统的用例图,如图1所示:
2.对部分用例进行描述:
“添加课程”用例
1) 用例名:添加课程
2) 执行者:管理员
3) 目的:管理员通过系统界面进入,添加所要开设的课程,确认无误后将其信息保存到数据库中,以供学生选择。
4) 过程描述:
5) 管理员选择进入管理界面,用例开设
6) 系统提示输入管理密码
7) 管理员输入密码
8) 系统验证密码
9) A1:密码错误
10) 进入管理界面,系统显示目前所建立的全部课程信息
11) 管理员选择添加课程
12) 系统提示输入新课程信息
13) 管理员输入信息
14) 系统验证是否和已有的课程冲突
15) A2:有冲突
16) 10)系统添加新课程,提示课程添加成功
17) 11)系统重新进入管理界面,显示所有课程
18) 12)用例结束
19) 异常事件流处理:
20) A1:密码错误 :1)系统提示再次输入。2)用户确认后进入第5)步。
21) A2:有冲突 :1)系统提示冲突,显示冲突的课程信息。2)用户重新输入,验证无误后进入第10)步。
“选课”用例
1) 用例名:选课
2) 执行者:学生
3) 目的:学生进入选课系统界面,浏览的课程,最后选择一门自己喜欢的课程并提交。
4) 过程描述:
5) 1)学生进入选课登录界面,用例开始
6) 2) 系统提示输入学号与密码
7) 3) 学生输入学号与密码
8) 4)系统验证
9) A1:验证错误
10) 5) 进入选课主界面
11) 6)学生点击选课
12) 7)系统显示所有课程信息
13) 8)学生选择课程
14) 9)系统验证课程是否可选
15) A2:不可选
16) 10)系统提示课程选择成功
17) 11)用例结束
18) 异常事件流处理:
19) A1:验证错误: 1)系统提示验证错误,提示重新输入。2)验证成功,进入第5)步
20) A2:不可选 1)系统提示课程不可选及原因。2)学生重新选课。3)验证成功后进入第10)步
“修改”用例
1) 管理员选择进入管理界面,用例开设
2) 系统提示输入管理密码
3) 管理员输入密码
4) 系统验证密码
A1:密码错误
5) 进入修改主界面,系统显示目前所建立的全部课程信息
6) 管理员选择要修改的课程
7) 是否确定修改该课程
A2:不修改
8) 系统显示全部课程信息
9) 管理员输入新信息
10) 验证是否有课程冲突
A3:冲突
11) 系统修改课程,提示修改成功
12) 系统重新进入主界面,显示所有课程
13) 用例结束
异常事件流处理:
A1:密码错误 :1)系统提示再次输入。2)用户确认后进入第5)步。
A2:不修改:1) 系统提示重新选择。2)用户确认后进入第8)步。
A3:有冲突 :1)系统提示冲突,显示冲突的课程信息。2)用户重新输入,验证无误后进入第11)步。
(二)系统活动图
活动图实际上也是一种流程图,它描述活动的序列,即系统从一个活动到另一个活动的控制流。所以常用活动图来进一步描述用例的具体功能实现流程,比文字描述跟形象直观,能够更准确地理解具体实现要求。
以“增加课程”用例为例,建立系统的活动图。其它用例的活动图不在叙述。
1.对“增加课程”用例进行分析,描述完成该操作所需要的活动。首先从“输入课程各项信息”开始,在输入工作完成后,进入业务逻辑界面的“验证课程”活动,然后进行“创建课程对象”活动,并输入“在数据库中查询课程”,查看数据库中是否已存在该课程。根据查询的结果“判断增加课程是否合法”,如果不合法(如重名等),提示“重新输入”返回到“输入课程各项信息”;如合法,则在数据库中正式增加这个对象。最后进行“判断添加是否成功”,如果成功,返回用户界面“显示添加成功信息”提示用户活动结束:如失败,“显示添加失败信息”,提示任务没有完成,活动结束。
2.根据对“增加课程”用例的分析,画出其活动图,如图2:
(三)系统顺序图
顺序图注重的是消息的时间顺序,它描述对象间的交互行为。而合作图强调对象间关系,这两种图可以有效地帮助我们观察和分析系统的交互行为。
以 “选课”用例为例,建立系统的顺序图。其它用例的顺序图不再叙述。
1.首先,查找“选课”用例的对象,它涉及到课程,界面,控制对象。设计的角色有student,database。然后通过选课事件流具体分析对象与角色之间的交互的消息。
2.根据以上分析,可以得到的顺序图如图3:
(四)系统合作图
根据上述建立的顺序图,选中它然后按下F5键,生成对应的合作图(在设计中,只要做成其中的一种,就可生成另一种图)
(五)系统状态图
状态图用来建模对象是如何改变其状态以响应事件和展示对象从创建到删除的生命周期。状态图的任务就是用来描述一个对象所处的可能状态以及状态之间的转移,并给出状态变化序列的起点和终点。
以 “课程”这一对象为例,建立课程的状态图。其它对象的状态图不再叙述。
(六)系统类图
建立学生选课系统详细的类图,正确分析类间的关系以及它们在UML中的表示。对类正确分析是画好类图的关键,类的属性,操作的定义要恰当,各个类间的关系准确才能画出完整的正确类图。
1.系统中设计了界面类,课程类;角色有student,register,people,database。分析这些类和角色之间的关系,画出详细的类图。
2.得到详细的类图如图6:
学生选课系统使用说明书
配置源程序
附加数据库2005
(1)打开SQL Server 2005(该应用程序中我以SQL Server身份登录),然后展开本地服务器,在“数据库”数据项上单击鼠标右键,在弹出的快捷菜单中选择“附加”菜单项。
(2)将弹出“附加数据库”对话框,在该对话框中单击【】按钮,选择所要附加数据库的db_xuanke.mdf文件,单击【确定】按钮,即可完成数据库的附加操作。
(3)打开visual studio 2008,找到“服务器资源管理器”,“添加链接”,在“链接到一个数据库”选项下选择名为db_xuanke文件,点击“测试链接”,链接成功,确定即可。
使用说明
系统介绍
本系统属于小型简单的学生选课系统,可以有效地对学生选课进行管理,本系统应达到以下目标:
l 系统采用人机交互的方式,界面美观友好,信息查询灵活、方便,数据存储安全可靠。
l 实现教师进行添加,删除,修改,查询课程及基本设置;学生选课,查询自己已选课程等操作,以及教师,学生查看全体选课情况等。
l 对输入的数据,进行严格的数据检验,尽可能的避免人为错误。
l 系统应最大限度地实现易维护性和易操作性。
操作注意事项
(1)本系统教师名为:yang,密码为:111。学生先注册,才能登录系统。
(2)本系统共分为两种操作权限,分别为学生,教师:
l 学生:可以对学生,工具,帮助,退出菜单,及窗口布局“打开”进行使用操作。
l 教师:可以对除“学生”菜单和“打开”功能外的所有菜单进行管理操作。
(3)教师可以设置选课截止时间,学生选课总学分上限进行相关设置。
(4)当学生进行选课后,主窗口立即显示全体选课情况的更新。
操作流程
(1) 启动系统,进入登录界面。如图1.1所示
(2) 若是学生登录系统,应先进行注册,然后才能登录系统。注册功能的界面如图1.2所示。(这里我实现如果注册成功,用户名自动显示在登录窗体的“用户名”文本框中)
(3) 用户输入用户名及密码,根据不同的权限进入不同的操作界面,如图1.3
(4) 当以教师身份进入系统后,进行添加,删除,修改等相关操作,如图1.4
(5) 教师可以对选课信息进行相关的设置,如图1.5
(6) 当已学生身份进入系统时,学生可进行选课,其选课的日期,总学分已被设置。(同时,该界面也显示了用户已选的所有课程)如图1.6
(7) 查询自己已选课程时,可选择“学生”菜单的“查询已选课程”,或者直接单击右下角的“打开”按钮进行查询。如图1.7
(8) 在“工具”菜单中,可进行万年历,计算器,截图工具操作。万年历窗体如图1.8
其它操作在这里就不在累述了。大致的使用说明就介绍到这里。
推荐阅读
-
什么是数据库事物?为什么需要数据库事物,事物有哪些特征?事物的隔离级别是什么?-1.什么是数据库事务? 1.事务是作为一个逻辑单元执行的一系列操作。一个逻辑工作单元必须具备四个属性,即ACID(原子性、一致性、隔离性和持久性)属性,只有这样才能成为事务: 原子性 2.事务必须是一个原子工作单元;它的数据修改要么全部执行,要么全部不执行。 一致性 3.事务完成时,所有数据必须保持一致。在相关数据库中,所有规则都必须适用于事务的修改,以保持所有数据的完整性。事务结束时,所有内部数据结构(如 B 树索引或双向链接表)必须正确无误。 隔离 4.并发事务的修改必须与其他并发事务的修改隔离。一个事务会在另一个并发事务修改之前或之后查看某一状态下的数据,而不会查看中间状态下的数据。这就是所谓的可序列化,因为它允许重新加载起始数据和重放一系列事务,从而使数据最终处于与原始事务执行时相同的状态。 持久性 5.事务完成后,它对系统的影响是永久性的。即使在系统发生故障的情况下,修改也会保留。 2. 为什么需要数据库事物,事物有哪些特征? 事物对数据库的作用是对数据进行一系列操作,要么全部成功,要么全部失败,防止出现中间状态,确保数据库中的数据始终处于正确、和谐的状态。 特征:原子性、一致性、隔离性、持久性,以及其他特征 原子性(Atomicity):所有操作在事务开始后,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出现错误时,会回滚到事务开始前的状态,所有操作就像没有发生一样。也就是说,事务是一个不可分割的整体,就像化学中的原子一样,是物质的基本单位。 一致性(Consistency):在事务开始之前和结束之后,数据库的完整性约束都没有被破坏。例如,如果 A 转钱给 B,A 不可能扣除这笔钱,但 B 却没有收到这笔钱。 隔离:在同一时间内,只允许一个事务请求相同的数据,不同事务之间没有干扰。例如,甲正在从一张银行卡上取款,在甲取款过程结束之前,乙不能向这张卡转账。 持久性(耐用性):事务完成后,事务对数据库的所有更新都将保存到数据库中,无法回滚 3.事务的隔离级别有哪些? 数据库事务有四种隔离级别,从低到高分别是未提交读取(Read uncommitted)、已提交读取(Read committed)、可重复读取(Repeatable read)、可序列化(Serializable)。此外,事务的并发操作中可能会出现脏读、不可重复读、幽灵读等情况。事务并发问题 脏读:事务 A 读取事务 B 更新的数据,然后事务 B 回滚操作,那么事务 A 读取的数据就是脏数据。 不可重复读取:事务 A 多次读取同一数据,事务 B 在事务 A 多次读取期间更新并提交数据,导致事务 A 多次读取同一数据时结果不一致。 幻影读取:系统管理员 A 将数据库中所有学生的具体分数改为 ABCDE 等级,但系统管理员 B 在此时插入了具体分数的记录,当系统管理员 A 更改结束后发现仍有一条记录未被更改,仿佛发生了幻觉,这称为幻影读取。 小结:不可重复读和幻读容易混淆,不可重复读侧重于修改,幻读侧重于增删。解决不可重复读问题只需锁定满足条件的行,解决幻读问题则需要锁定表 MySQL 事务隔离级别
-
完成学生选课系统的 UML 建模
-
使用UML建模图书馆图书管理系统的方法
-
使用Java和Swing搭建的学生选课管理系统的第三部分:退课功能实操
-
BIT2022春季智慧校园数据管理系统:软件需求工程与UML建模的最终版本
-
数据库课程设计———–学生选课管理系统的设计「建议收藏」