完整word版Rational+Rose网上选课系统.docx

上传人:b****7 文档编号:25550318 上传时间:2023-06-09 格式:DOCX 页数:26 大小:1.45MB
下载 相关 举报
完整word版Rational+Rose网上选课系统.docx_第1页
第1页 / 共26页
完整word版Rational+Rose网上选课系统.docx_第2页
第2页 / 共26页
完整word版Rational+Rose网上选课系统.docx_第3页
第3页 / 共26页
完整word版Rational+Rose网上选课系统.docx_第4页
第4页 / 共26页
完整word版Rational+Rose网上选课系统.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

完整word版Rational+Rose网上选课系统.docx

《完整word版Rational+Rose网上选课系统.docx》由会员分享,可在线阅读,更多相关《完整word版Rational+Rose网上选课系统.docx(26页珍藏版)》请在冰豆网上搜索。

完整word版Rational+Rose网上选课系统.docx

完整word版Rational+Rose网上选课系统

网上选课UML设计

网上选课系统主要包括如下功能:

管理员通过管理界面进入,建立本学期要开

的各种课程、将课程信息保存在数据库里并可以对课程进行改动和删除。

学生通过

客户机浏览器根据学号和密码进入选课界面,在这里学生可以进行三种操作:

查询已选课程、选课以及付费。

同样,通过业务层,这些操作结果存入数据库中。

本系统拟使用Java语言通过三层模型实现:

数据核心层,业务逻辑层和接入层.其中,数据核心层包括对于数据库的操作;业务逻辑层作为中间层对用户输入进行逻辑处理、再映射到相应的数据层操作;而接口层包括用户界面,包括系统登入界面、管理界面、用户选课界面等。

本系统涉及的用户包括管理员(Registrar)和学生(Student),他们是用例图中的活动.数据库管理系统是另外一个活动者。

注:

因为付费方式的多样化,所以在此将不讨论涉及到付费有关的设计。

1.1用例图

1.1.1事件流

①添加课程事件流:

1.管理员选择进入管理界面,用例开始。

2.系统提示输入管理员密码。

3.管理员输入密码。

4.系统验证密码。

A1:

密码错误

5.进入管理界面,系统显示目前所建立的全部课程信息.

6.管理员选择添加课程.

7.系统提示输入新课程信息。

8.管理员输入信息.

9.系统验证是否和已有课程冲突.

A2:

有冲突

10.系统添加新课程,提示课程添加成功。

11.系统重新进入管理主界面,显示所有课程。

12.用例结束。

其他事件流:

A1:

密码错误

1.系统提示再次输入。

2.用户确认。

3.三次错误,拒绝再次访问。

4.否则进入添加课程事件流第5步。

A2:

有冲突

1.系统提示冲突,显示冲突课程信息。

2.用户重新输入.

3.继续验证直到无冲突.

4.进入添加课程事件流第10步。

注:

删除课程事件流和修改课程事件流与此类似,在此不再详述.

②选课事件流:

1。

学生进入选课登入界面,用例开始.

2.系统提示输入学号和密码。

3。

学生输入学号密码。

4。

系统验证:

A1;验证失败。

5、进入选课主界面。

6、学生点击选课.

7、系统显示所有课程信息。

8、学生选择课程.

9、系统验证课程是否可选。

A2:

不可选.

10、系统提示课程选择成功,提示学生交费。

11、用例结束.

错误流:

A1:

验证失败

1.系统提示验证失败,提示重新输入。

2.三次失败,拒绝访问。

3.成功,转选课事件流第5步。

A2:

不可选

1.系统提示不可选及原因。

2.学生重新选课.

3.重新验证直至成功。

4.转选课事件流死10步。

注:

查询事件流比较简单,在此不详述。

1.1.2用例图

点击浏览器中的UseCaseView中的Main,弹出用例图窗口,添加用例如下图:

活动者包括:

People,Registrar,Student,Database。

其中Registrar和People之间是概括(generalization)关系,Student和People之间也是概括(generalization)关系。

用例包括:

SelectCourse,QueryCourse,PayforCourse,AddCourse,ModifyCourse,DeleteCourse.

1.2活动图

在用例图中分析了各个用例的事件流,故在此不在叙述。

根据用例里的事件流描述,得到各个用例的活动图.

1.2.1AddCourse活动图

在浏览器中,使用鼠标右键点击UseCaseView,在弹出的菜单里选择“New”—“ActivityDiagram",则在UseCaseView中添加一项”State/ActivityModel”,该项产生一个名为“NewDiagram”的活动图,将其改为“AddCourse".

AddCourse活动图如下:

分成三个泳道:

用户接口,业务逻辑接口,数据库接口。

1.2.2DeleteCourse活动图

在浏览器中,使用鼠标右键点击”State/ActivityModel”,在弹出的菜单里选择“New”—“ActivityDiagram”,该项产生一个名为“NewDiagram"的活动图,将其改为“DeleteCourse”。

DeleteCourse活动图如下:

同样分成三个泳道:

用户接口,业务逻辑接口,数据库接口.

1.2.3ModifyCourse活动图

在浏览器中,使用鼠标右键点击"State/ActivityModel”,在弹出的菜单里选择“New"—“ActivityDiagram”,该项产生一个名为“NewDiagram"的活动图,将其改为“ModifyCourse”.

ModifyCourse活动图如下:

分成三个泳道:

用户接口,业务逻辑接口,数据库接口。

1.2.4QueryCourse活动图

在浏览器中,使用鼠标右键点击”State/ActivityModel”,在弹出的菜单里选择“New”—“ActivityDiagram",该项产生一个名为“NewDiagram"的活动图,将其改为“QueryCourse”.

QueryCourse活动图如下:

该活动图比较简单。

1.2.5SelectCourse活动图

在浏览器中,使用鼠标右键点击”State/ActivityModel”,在弹出的菜单里选择“New”—“ActivityDiagram",该项产生一个名为“NewDiagram”的活动图,将其改为“SelectCourse”.

SelectCourse活动图如下:

分成三个泳道:

用户接口,业务逻辑接口,数据库接口。

1.3序列图和协作图

序列图主要由活动者(actor)、对象(object)、消息(message)、生命线(lifeline)和控制焦点(focusofcontrol)组成。

1.3.1SelectCourse序列图与协作图

查找SelectCourse用例的对象,包括有:

①界面②课程③对于业务层的操作,也应该有对象进行处理。

④事件流中设计的角色有:

学生、数据库.

分析对象角色之间交互的消息,本用例主要有以下交互:

1.学生通过界面发送选课命令。

2.界面向控制对象请求课程信息。

3.控制对象向数据库发送查询数据消息。

4.控制对象暂存数据库的查询结果。

5.界面对象从控制对象中取得所有的课程信息.

6.在界面上显示所有的课程信息。

7.界面对象发送命令要求控制对象删除课程信息。

8.学生选择课程.

9.界面对象要求学生输入学好。

10.界面对象向控制对象发送信息,查询该学生是否可以选择选定的课程。

11.控制对象从数据库中查询关联信息.

12.控制对象判断是否可以选课.

13.如果可以选课,则向数据库中添加关联信息。

14.向界面对象返回信息。

根据以上分析,整理的最终SelectCourse序列图如下:

选择SelectCourse序列图,按“F5”可以直接生成SelectCourse的协作图,如下:

1.3.2AddCourse序列图与协作图

查找AddCourse用例的对象,包括有:

①界面②课程③对于业务层的操作,也应该有对象进行处理。

④事件流中设计的角色有:

管理员、数据库。

分析对象角色之间交互的消息,本用例主要有以下交互:

1.管理员进入管理界面,选择添加课程功能。

2.界面提示用户输入课程信息.

3.界面对象创建一个课程对象。

4.通过控制对象来对课程信息进行合法性检查。

5.控制对象向课程对象返回结果.

6.控制对象向数据库查询课程相关信息。

7.控制对象对查询结果进行判断.

8.控制对象向数据库中插入数据。

9.在界面上显示结果。

10.控制对象撤消建立的课程对象.

根据以上分析,整理的最终AddCourse序列图如下:

选择AddCourse序列图,按“F5”可以直接生成AddCourse的协作图,如下:

1.3.3ModifyCourse序列图与协作图

采用同样的方法分析,ModifyCourse序列图如下:

选择ModifyCourse序列图,按“F5"可以直接生成ModifyCourse的协作图,如下:

1.3.4DeleteCourse序列图和协作图

删除课程的过程,涉及的对象有:

①管理员②界面③控制对象④数据库

这些对象的交互如下:

1.管理员输入待删除的课程信息(IID)等。

2.界面对象将信息发送给控制对象。

3.控制对象查询课程信息是否有效。

4.控制对象向界面返回信息,如果课程信息有效,则要求界面提示管理员确认删除。

5.管理员确认删除课程。

6.界面将确认删除的信息发送给控制对象。

7.控制对象将确认删除对象的信息发送给数据库。

8.数据库实施删除,并将结果返回过控制对象.

9.控制对象将结果返回给界面。

DeleteCourse序列图如下:

选择DeleteCourse,按“F5“可以直接生成DeleteCourse的协作图,如下:

1.3.5DeleteCourse序列图和协作图

QueryCourse序列图,如下:

选择QueryCourse,按“F5“可以直接生成QueryCourse的协作图,如下:

1.3.6RegistrarLogin序列图和协作图

管理员要对课程信息进行更改时,要输入用户名和密码,以确保其拥有相应的权限。

事件流如下:

1.系统提示管理员输入用户名和密码。

2.管理员输入用户名和密码.

3.系统检查用户名和密码的合法性.

4.将检查结果返回给用户。

查找RegistrarLogin用例的对象,从事件流中发现涉及以下对象:

①界面②控制对象③数据库④事件流中设计的角色有:

管理员、数据库。

分析对象、角色之间交互的消息,主要有以下交互:

1.界面对象提示用户输入注册信息。

2.用户输入注册信息。

3.界面将注册信息提交给控制对象。

4.控制对象到数据库中查询注册信息。

5.控制对象判断注册信息是否合法。

6.控制对象将检查结果返回到界面对象。

7.界面对象显示结果。

根据以上分析,最终的RegistrarLogin序列图,如下:

选择RegistrarLogin,按“F5”可以直接生成RegistrarLogin的协作图,如下:

 

1.4类图

1.4。

1类的创建

通过对本系统的分析可以抽象出7个类:

People(Student和Registrar的基类)、Student(学生类)、Registrar(管理员类)、FormObject(界面类)、Course(课程类)、ControlObject(控制对象类)、DataBase(数据库类)。

   People 主要有以下属性和操作:

          ⑴姓名(name)

          ⑵年龄(age)

⑶查询姓名(getname)

⑷设置姓名(setname)

⑸查询年龄(getage)

⑹设置年龄(setage)

Registrar(管理员类)主要有以下属性和操作:

          ⑴管理员编号(regID)

⑵初始化(构造函数)(registrar)

⑶查询管理员信息(getregistrar)

⑷设置管理员编号(setregID)

⑸查询管理员编号(getregID)

Student(学生类)主要有以下属性和操作:

          ⑴学号(studentID)

⑵初始化(构造函数)(student)

⑶查询对象学号(getstudentID)

⑷设置对象学号(setstudentID)

DataBase (数据库类)主要有以下属性和操作:

          ⑴连接的数据库名称(位置)(dbpath)

⑵查询课程(Querycourse)

⑶添加课程(Addcourse)

⑷删除课程(Deletecourse)

⑸查询所有的课程(Querycourse)

⑹查询关联(Queryassociation)

⑺添加关联(Addassociation)

⑻查询选择的课程信息(Queryselectcourse)

⑼查询密码(QuerypassWD)

⑽取得数据库名称(getDBpath)

⑾设置数据库名称(setDBpath)

⑿打开数据库(OpenDB)

ControlObject(控制对象类)主要有以下属性和操作:

          ⑴验证课程的合法性(verifycourse)

⑵判断能不能添加指定的课程(canadd)

⑶判断能不能修改指定的课程(canmodify)

⑷通过ID查询课程(QuerycoursebyID)

⑸确认删除(confirmDelete)

⑹查询所有的课程(getallcourse)

⑺查询关联(queryassociation)

⑻判断是不是能选择(canselect)

⑼查询课程列表(QuerycourseList)

⑽验证管理员的合法性(Verifyregistrar)

⑾检查密码(checkpassWD)

⑿构造函数(conttrolObject)

Course(课程类)主要有以下属性和操作:

⑴课程名称(name)

⑵开课教室(classroom)

⑶课程号(courseID)

⑷授课教师(teacher)

⑸选课的学生(students)

⑹开课起始时间(firstlessondate)

⑺允许选课的学生人数(maxstudents)

⑻设置课程名称(setname)

⑼设置开课教室(setclassroom)

⑽设置课程号(setcourseID)

⑾设置授课教师信息(setteacher)

⑿设置开课起始时间(setfirstlessondata)

⒀设置允许选课的学生人数(setmaxstudents)

⒁查询课程名称(getname)

⒂查询开课教室(getclassroom)

⒃查询课程号(getcourseID)

⒄查询授课教师信息(getteacher)

⒅查询开课起始时间(getfirstlessondate)

          ⒆查询允许选课的学生人数(getmaxstudents)

 FormObject(界面类)主要有以下属性和操作:

        ⑴查询课程信息(getcourseInfo)

⑵显示选课成功信息(showsuccessInfo)

⑶查询课程编号(getcourseID)

⑷显示确认页(showconfirmpage)

⑸确认删除(confirmdelete)

⑹选择命令(selectcommand)

⑺显示课程列表(displaycourseList)

⑻查询选择的课程(Queryselectcourse)

⑼构造函数(FormObject)

1.4.2类图的建立

最后详细的类图,如下:

(在该类图中由于空间的限制,故将其中的一些属性和操作隐藏。

1.5状态图

1.5.1实例分析

分析一个课程类(对象)(Course)的状态变化过程》课程对象被创建,添加到数据库中。

管理员可以删除、修改课程信息,在某个学期开设该课程,如果选修人数超过指定人数,就不再允许学会选这门课。

学期结束,课程的状态结束。

1.5.2状态图的建立

 在浏览器中选择“LogicalView”,按下鼠标右键,在弹出的菜单里选择“New”,再选择“StateDiagram”,创建一个新的状态图。

同时将名字改成“Course”,如图:

1.6组件图

1.6.1分析

在选课系统中,包括MainProgram类(主程序)、People类、ControlObject类、Student类、Registrar类、Course类和DataBase类。

其中,People类是Student类和Registrar类的基类,所以Student类和Registrar类依赖People类。

FormObject类和ControlObject类都和Course类相关, FormObject类和

ControlObject类依赖Course类。

ControlObject类和DataBase类相关,ControlObject类依赖DataBase类。

1.6.2组件图的建立

  在浏览器中选择“ComponentView”,按下鼠标右键,在弹出的菜单里选择“New”,再选择“Component”,创建一个新的组件。

如图:

(其中各个组件的创建,不再做详细的叙述)

     

1.7部署图

   1.7.1分析

分析该系统大致在服务器端使用了二台主机,一台做为数据库服务器,使用了Oracle服务器。

另一台是同一局域网上的机器,作为HTTP服务器,上面运行了HTTP服务器进程以及业务逻辑,同时还连接了打印机.

   1.7.2部署图的建立

在浏览器中选择“DeploymentView”,建立部署图,如下:

1.8代码生成

略。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 视频讲堂

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1