南 京 邮 电 大 学
实验报告
课程名称:软件工程
课题名称 教务系统课程设计
专 业: 广播电视工程
学生姓名: 陈超 班级学号: 指导教师: 范山岗 日期: 2015 年 12 月 25 日
实验 面象对象软件设计
一、实验目的
用面象对象方法设计实用软件,掌握需求分析方法,掌握掌握UML设计方法。
二、实验性质 验证、设计实验。 三、实验要求
1、选定题目编写需求分析说明 2、学习Rational Rose环境
3、学习通过Rational Rose绘制各类框图的方法。 四、环境简介
1、 Rational Rose可视化环境组成
Rose界面的五大部分是浏览器、文档工具、工具栏、框图窗口和日志。见图1-1。 图1-1:Rose界面
浏览器:用于在模型中迅速漫游。
? 文档工具:用于查看或更新模型元素的文档。 ? 工具栏:用于迅速访问常用命令。
? 框图窗口:用于显示和编辑一个或几个UML框图。 ? 日志:用于查看错误信息和报告各个命令的结果。 1.2浏览器和视图
浏览器是层次结构,用于在Rose模型中迅速漫游。在浏览器中显示了模型中增加的一切,如参与者、用例、类、组件等。浏览器中包含四个视图:Use Case视图、Logical视图、Component视图和Deployment视图。点击每个视图的右键,选择new就可以看到这个视图所包含的一些模型元素。
1.3框图窗口
在框图窗口中,我们可以浏览模型中的一个或几个UML框图。改变框图中的元素时,Rose自动更新浏览器。同样用浏览器改变元素时,Rose自动更新相应框图。这样,Rose就可以保证模型的一致性。
五、实验步骤
1、编写需求分析说明书
对系统需求进行初步的整理与分析,是后续建模和设计工作的基础。需求分析说明书详情请见附录。
2、用UML语言对系统进行分析与建模(OOA) 2.1建立用例图use case diagram
从用例图中我们可以看到系统干什么,与谁交互。用例是系统提供的功能,参与者是系统与谁交互,参与者可以是人、系统或其他实体。一个系统可以创建一个或多个用例图。
实例:
1) 教务管理系统主要用例图。
用例图说明:教务管理系统主要用例图实现三个主要参与者——管理员、教师与学生和系统六大主要用例——登陆管理、账号管理、班级管理、课程管理、选课管理、成绩管理之间的关系。管理员主要参与用例账号管理、课程管理与班级管理;教师主要
涉及用例选课管理与成绩管理;而参与者学生主要参与选课管理与成绩管理,其中登陆管理是三个主要参与者共同参与的用例。 2) 教务管理系统——班级管理用例图
用例图说明:管理员实现班级管理,班级管理用例包括录入、查看、修改与删除班级基本信息,其中,教师也可对班级基本信息进行查看。 3) 教务管理系统——成绩管理用例图
用例图说明:教师实现成绩管理,主要功能是录入、修改、查看与删除成绩,其中查看成绩可泛华为按学期查询或按学年查询,并注意学生参与用例查看成绩对自己所修课程成绩进行查看。
以下用例图也可根据截图进行如上分析。 4) 教务管理系统——登录管理用例图 5)教务管理系统——课程管理用例图 6)教务管理系统——选课管理用例图 7)教务管理系统——账号管理用例图
2.2建立活动图 activity diagram
活动图显示了从活动到活动的流。活动图可以在分析系统业务时用来演示业务流,也可以在收集系统需求的时候显示一个用例中的事件流。活动图显示了系统中某个业务或者某个用例中,要经历哪些活动,这些活动按什么顺序发生。
实例
1)管理员添加课程活动图 2)管理员修改课程活动图 3)学生选择课程活动图 4)学生退选课程活动图 2.3建立类图class diagram
类图显示系统之中类和类之间的交互。 实例:
类图说明如下:? 1)
User类是一个系统角色用户的基类。
属性有: User ID对象的账号。User Password对象的密码。 方法有:?getID()获得对象的账号。?
modifyPassword()设置新建对象的密码。
? getPassword()获得对象的密码。 ? User()为构造函数。? 2)Administrator类继承自User类。 属性有: name管理员姓名。ID管理员账号。 方法有:?CourseManager()进行课程管理操作。
IDManager()进行账号管理操作。 ClassManager()进行班级管理操作。 Administrator()为构造函数。
3)Student类继承自User类。
属性有: name学生姓名。Sex学生性别。Class学生所在班级。Grede学生所在
年级。ID学生账号。
方法有:?SelectElect()用于选择课程。 ? delElect()用于删除所选择的课程。?
addElect()用于添加所选课程;
? updateElect()用于更新查询选课信息。
Student()为构造函数。
4)Teacher类继承自User类。
属性有: name教师姓名。ID教师账号。
方法有:?GradeManager()教师进行成绩管理操作。
Teacher()为构造函数。?
5)Course类是一个课程管理类。
属性有: courseID课程代号。courseName课程名称。courseTime课程时间。
teacherName课程教师名称。
方法有: addCourse()用于添加课程;?
delCourse()用于删除课程;? updateCourse()用于修改课程信息;
? getCourses()用于获取课程信息。
getselectedCourse()用于获取学生所选课程。 Course()为构造函数。
6)Elect类是一个选课管理类。
属性有: stuID学生姓名。courseID课程代号。Score课程成绩teacher课程教
师。
方法有:?elect()选择课程。 ? electDel()退选课程。?
getElectInfo()查询课程信息。?
? getSchedule()获取课程表信息。 7)ID类是登陆管理类。
属性有: ID账号。Password密码。 方法有: added()用于添加账号。
modifyID()用于修改账号。 getID()用于查询账号信息。 delID()用于删除账号。
8)Class类是班级管理类。 属性有: student班级学生。
方法有: addClass()用于添加班级基本信息。
modifyClass()用于修改班级基本信息。 getClass()用于查询班级基本信息。 delClass()用于删除班级基本信息。
9)Grade类是成绩管理类。
属性有: course课程。Student学生。grade成绩。 方法有: addGrade()用于录入成绩。
modifyGrade()用于修改成绩。 getGrade()用于查询成绩信息。 delGrade()用于删除成绩。
10)DataCase类为数据库类。
主要方法有:update()进行数据库更新信息操作。
show()进行显示数据库所查询信息的操作。 Datacase()为构造函数。
序列图显示用例中的功能流程。