实验一 面向对象需求分析方法
一、实验目的
- 掌握Visio(或Rational Rose)的特点、运行环境及获取方法;
- 掌握Visio(或Rational Rose)基本使用方法;
- 掌握使用Visio(或Rational Rose)绘制用例图、类图及活动图的步骤。
二、实验环境与设备
- 硬件环境:微机1台。
- 软件环境:操作系统:Windows 10;建模工具:Visio或Rose;数据库:MySQL(可选);开发工具包:JDK(可选);开发环境:MyEclipse(可选);Web服务器:Tomcat(可选);浏览器:IE(可选)。硬件环境:微机1台。
三、实验内容
- 安装建模工具并熟悉其操作与使用,包括用例建模的基本元素、用例建模技术等。
- 根据附件1给出的《简单的学生选课管理系统》,采用面向对象分析方法,给出系统的用例图、课程注册用例活动图、分析类图。
- 分析对比功能模块和用户需求。
- 完成实验报告。
四、建模思路
4.1 系统角色分析
4.1.1 学生角色
- 学生可以查询新学期将开设的课程;
- 学生可以查询讲课教师情况;
- 学生可以选择自己要学习的课程进行“课程注册”;
- 学生可以查询成绩单;
- 使用系统需经过登录。
4.1.2 教师角色
- 教师可以查询新学期将开设的课程;
- 教师可以查询选课学生情况;
- 教师可以登记成绩单。
- 使用系统需经过登录。
4.1.3 教务管理员角色
- 教务管理员可以进行教师信息、学生信息和课程信息的维护;
- 教务管理员可以开启和关闭“课程注册”;
- 使用系统需经过登录。
4.2 课程注册用例分析
在教务管理员开启“课程注册”后,学生经登录进入“课程注册”用例来完成选课。进入后首先获得该学期的课程目录表,课程目录表列出每门课程的所有信息,诸如课程名、学时、学分、基本信息、开课教师、开课院系和选课条件等。每个学生可以从开课列表中选择不超过3门的选修课,每门课程最多不能超过30人,最少不能低于5人,低于5人的课程将被取消。在选课期间允许学生试听并改变已注册课程,开学两周后教务管理员关闭“课程注册”。
4.3 整体系统服务分析
系统一共面向学生、教师、教务管理员三类用户,均需通过输入账号、密码登录系统。若没有账号,需完成注册后登录。为便于管理,我设置了用户类,并且学生、教师、管理员三个类对它进行继承。
学生可以通过课程目录表查询新学期开设的课程和讲课教师情况,内容包括:课程名、学时、学分、基本信息、开课教师、开课院系和选课条件等;可以从课程目录中选择1-3门选修课和若干必修课进行“课程注册”;可以通过对成绩表的查看查询成绩。教师可以通过课程目录表查询新学期开设的课程;可以通过课程注册查看选课学生情况;可以通过对成绩表的修改登记成绩。教务管理员可以进行教师信息、学生信息和课程信息的维护;可以开启和关闭“课程注册”。
对于课程,我设计了必修课类、选修课类、课程类、课程目录表、课程注册类五类。其中必修课和选修课继承于课程类;课程目录表与课程类存在聚合关系;课程注册类与必修课类存在1对多的关系,与选修课类存在1对1-3的关系。对于成绩,我设计了成绩表类,它依赖于课程注册类。
五、建立模型
5.1 角色用例图
5.2 课程注册用例活动图
5.3 类图
六、结果分析
6.1 功能模型和用户需求的对照比较
学生选课管理系统的功能模型可以分成四大模块,分别是登录模块、学生管理模块、教师管理模块和教务管理员管理模块。
登录模块:使用系统的所有用户都需经过登录。
学生管理模块:用户为学生,下分课程查询、选课、成绩查询三部分。对应学生用户的需求为:学生使用该系统可以查询新学期将开设的课程和讲课教师情况,选择自己要学习的课程进行“课程注册”,并可以查询成绩单。
教师管理模块:用户为教师,下分课程查询、选课情况查询、成绩登记三部分。对应教师用户的需求为:教师使用该系统可以查询新学期将开设的课程和选课学生情况,并可以登记成绩单。
教务管理员管理模块:用户为教务管理员,下分信息维护、开启和关闭课程注册两部分。对应管理员用户的需求为:教务管理员使用该系统可以进行教师信息、学生信息和课程信息的维护,开启和关闭“课程注册”。
上述所构建的用例模型较好地对接了系统中用户的各个功能需求,有比较匹配的一致型。并且运用面向对象的思想,对用户需求进行了抽象提取与封装。
七、心得体会
这是软件工程的第一次实验课,主要是针对课本第四章的内容进行了巩固与实践。通过对学生选课系统进行面向对象的需求分析,设计用例图、活动图和类图,我的实验工具主要使用了EdrawMax和Visio软件。
第一个实验内容围绕系统的用例图展开。通过对系统的用户角色进行分析,我绘制了以学生、教师、教务管理员为用户的用例图;并且根据两周的时间限制,设置了定时器(Timer)作为执行者。
第二个实验内容围绕课程注册用例的活动图展开。通过对课程注册这一用例的详细描述,我设置了三个泳道,分别由教务管理员、学生、课程设计管理三个对象负责。
第三个实验内容围绕系统的类图展开。通过对系统整体服务的分析,我设计了用户、学生、教师、教务管理员、课程、课程目录表、必修课、选修课、课程注册、成绩表十个类,并且分析了各类之间存在的关系,最终得出类图。
由于我参加了服务外包竞赛团队,画这些工程图是我们前期写文档时需要进行的工作,所以对于这几种工程图原先就有所了解,并且也使用过像EdrawMax这样的绘图软件,整个实验过程还是蛮顺利的。不过在实验中,我也有几点心得体会:一,各种图之间其实有着密切的联系。比如我在系统的用例图中添加了检测课程冲突用例,那么在活动图中也需要进行修改,否则容易产生工程上需求分析的误解。二,要考虑实际应用时的情况,运用面向对象的设计思想,如果不能在前期做好合理分析,后期很容易造成设计困难。
本次实验,我掌握了基本的需求获取与分析方法;掌握了用例图、活动图、类图的画法,分别在三个题目中得到了实践;进一步熟练操作EdrawMax绘图软件,并且初步了解了Visio软件的基本使用。