完整word版Rational+Rose网上选课系统.docx
《完整word版Rational+Rose网上选课系统.docx》由会员分享,可在线阅读,更多相关《完整word版Rational+Rose网上选课系统.docx(26页珍藏版)》请在冰豆网上搜索。
完整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代码生成
略。
。
。
。