1、完整word版Rational+Rose网上选课系统 网上选课UML设计 网上选课系统主要包括如下功能:管理员通过管理界面进入,建立本学期要开的各种课程、将课程信息保存在数据库里并可以对课程进行改动和删除。学生通过客户机浏览器根据学号和密码进入选课界面,在这里学生可以进行三种操作:查询已选课程、选课以及付费。同样,通过业务层,这些操作结果存入数据库中。本系统拟使用Java语言通过三层模型实现:数据核心层,业务逻辑层和接入层.其中,数据核心层包括对于数据库的操作;业务逻辑层作为中间层对用户输入进行逻辑处理、再映射到相应的数据层操作;而接口层包括用户界面,包括系统登入界面、管理界面、用户选课界面等
2、。本系统涉及的用户包括管理员(Registrar)和学生(Student),他们是用例图中的活动.数据库管理系统是另外一个活动者。注:因为付费方式的多样化,所以在此将不讨论涉及到付费有关的设计。11用例图 111事件流 添加课程事件流:1.管理员选择进入管理界面,用例开始。2.系统提示输入管理员密码。3.管理员输入密码。4.系统验证密码。 A1:密码错误5 进入管理界面,系统显示目前所建立的全部课程信息.6 管理员选择添加课程.7 系统提示输入新课程信息。8 管理员输入信息.9 系统验证是否和已有课程冲突. A2:有冲突10系统添加新课程,提示课程添加成功。11系统重新进入管理主界面,显示所有
3、课程。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、系统提示课程选择成功,提示学
4、生交费。11、用例结束. 错误流: A1:验证失败1系统提示验证失败,提示重新输入。2三次失败,拒绝访问。3成功,转选课事件流第5步。A2:不可选1系统提示不可选及原因。2学生重新选课.3重新验证直至成功。4转选课事件流死10步。 注:查询事件流比较简单,在此不详述。 112用例图 点击浏览器中的 Use Case View中的Main,弹出用例图窗口,添加用例如下图: 活动者包括:People , Registrar , Student ,Database。其中Registrar和People之间是概括(generalization)关系,Student和People之间也是概括(gener
5、alization)关系。用例包括:Select Course , Query Course , Pay for Course ,Add Course ,Modify Course , Delete Course.12活动图在用例图中分析了各个用例的事件流,故在此不在叙述。根据用例里的事件流描述,得到各个用例的活动图. 121 Add Course 活动图 在浏览器中,使用鼠标右键点击Use Case View,在弹出的菜单里选择“New”“Activity Diagram,则在Use Case View 中添加一项”State/Activity Model” ,该项产生一个名为“New Di
6、agram”的活动图,将其改为“Add Course. Add Course 活动图如下: 分成三个泳道:用户接口,业务逻辑接口,数据库接口。 122 Delete Course 活动图 在浏览器中,使用鼠标右键点击”State/Activity Model”,在弹出的菜单里选择“New”“Activity Diagram”,该项产生一个名为“New Diagram的活动图,将其改为“Delete Course”。 Delete Course 活动图如下:同样分成三个泳道:用户接口,业务逻辑接口,数据库接口. 123 Modify Course 活动图 在浏览器中,使用鼠标右键点击State/
7、Activity Model”,在弹出的菜单里选择“New“Activity Diagram”,该项产生一个名为“New Diagram的活动图,将其改为“Modify Course”. Modify Course 活动图如下:分成三个泳道:用户接口,业务逻辑接口,数据库接口。 124 Query Course 活动图在浏览器中,使用鼠标右键点击”State/Activity Model”,在弹出的菜单里选择“New”“Activity Diagram,该项产生一个名为“New Diagram的活动图,将其改为“Query Course”. Query Course 活动图如下:该活动图比较简
8、单。125 Select Course 活动图在浏览器中,使用鼠标右键点击”State/Activity Model”,在弹出的菜单里选择“New”“Activity Diagram,该项产生一个名为“New Diagram”的活动图,将其改为“Select Course”. Select Course 活动图如下:分成三个泳道:用户接口,业务逻辑接口,数据库接口。13序列图和协作图序列图主要由活动者(actor)、对象(object)、消息(message)、生命线(lifeline)和控制焦点(focus of control)组成。131 Select Course 序列图与协作图 查找
9、Select Course用例的对象,包括有:界面课程对于业务层的操作,也应该有对象进行处理。事件流中设计的角色有:学生、数据库. 分析对象角色之间交互的消息,本用例主要有以下交互:1学生通过界面发送选课命令。2界面向控制对象请求课程信息。3控制对象向数据库发送查询数据消息。4控制对象暂存数据库的查询结果。5界面对象从控制对象中取得所有的课程信息.6在界面上显示所有的课程信息。7界面对象发送命令要求控制对象删除课程信息。8学生选择课程.9界面对象要求学生输入学好。10界面对象向控制对象发送信息,查询该学生是否可以选择选定的课程。11控制对象从数据库中查询关联信息.12控制对象判断是否可以选课.
10、13如果可以选课,则向数据库中添加关联信息。14向界面对象返回信息。 根据以上分析,整理的最终Select Course序列图如下: 选择Select Course 序列图,按“F5”可以直接生成Select Course的协作图,如下: 132 Add Course 序列图与协作图查找Add Course用例的对象,包括有:界面课程对于业务层的操作,也应该有对象进行处理。事件流中设计的角色有:管理员、数据库。分析对象角色之间交互的消息,本用例主要有以下交互:1管理员进入管理界面,选择添加课程功能。2界面提示用户输入课程信息.3界面对象创建一个课程对象。4通过控制对象来对课程信息进行合法性检查
11、。5控制对象向课程对象返回结果.6控制对象向数据库查询课程相关信息。7控制对象对查询结果进行判断.8控制对象向数据库中插入数据。9在界面上显示结果。10控制对象撤消建立的课程对象. 根据以上分析,整理的最终Add Course序列图如下:选择Add Course 序列图,按“F5”可以直接生成Add Course的协作图,如下:133Modify Course 序列图与协作图采用同样的方法分析,Modify Course序列图如下:选择Modify Course 序列图,按“F5可以直接生成Modify Course的协作图,如下:134Delete Course 序列图和协作图删除课程的过程
12、,涉及的对象有:管理员界面控制对象数据库 这些对象的交互如下:1管理员输入待删除的课程信息(IID)等。2界面对象将信息发送给控制对象。3控制对象查询课程信息是否有效。4控制对象向界面返回信息,如果课程信息有效,则要求界面提示管理员确认删除。5管理员确认删除课程。6界面将确认删除的信息发送给控制对象。7控制对象将确认删除对象的信息发送给数据库。8数据库实施删除,并将结果返回过控制对象.9控制对象将结果返回给界面。 Delete Course序列图如下:选择Delete Course,按“F5“可以直接生成Delete Course的协作图,如下:135Delete Course 序列图和协作图
13、Query Course序列图,如下:选择Query Course,按“F5“可以直接生成Query Course的协作图,如下:136Registrar Login序列图和协作图管理员要对课程信息进行更改时,要输入用户名和密码,以确保其拥有相应的权限。事件流如下:1系统提示管理员输入用户名和密码。2管理员输入用户名和密码.3系统检查用户名和密码的合法性.4将检查结果返回给用户。查找Registrar Login用例的对象,从事件流中发现涉及以下对象:界面控制对象数据库事件流中设计的角色有:管理员、数据库。分析对象、角色之间交互的消息,主要有以下交互:1界面对象提示用户输入注册信息。2用户输入
14、注册信息。3界面将注册信息提交给控制对象。4控制对象到数据库中查询注册信息。5控制对象判断注册信息是否合法。6控制对象将检查结果返回到界面对象。7界面对象显示结果。根据以上分析,最终的Registrar Login序列图,如下:选择Registrar Login, 按“F5”可以直接生成Registrar Login的协作图,如下:14类图14。 1类的创建 通过对本系统的分析可以抽象出个类:eople (Student和egistrar的基类)、tudent(学生类)、Registrar(管理员类)、ormObject(界面类)、ourse(课程类) 、ControlObject(控制对象类
15、)、DataBase(数据库类)。 eople主要有以下属性和操作:姓名(name)年龄(age) 查询姓名(getname) 设置姓名(setname) 查询年龄(getage) 设置年龄(setage) Registrar(管理员类)主要有以下属性和操作:管理员编号(regID) 初始化(构造函数)(registrar) 查询管理员信息(getregistrar) 设置管理员编号(setregID) 查询管理员编号(getregID) Student( 学生类) 主要有以下属性和操作:学号(studentID) 初始化(构造函数)(student) 查询对象学号(getstudentID)
16、 设置对象学号(setstudentID) DataBase(数据库类)主要有以下属性和操作:连接的数据库名称(位置)(dbpath) 查询课程(Querycourse) 添加课程(Addcourse) 删除课程(Deletecourse) 查询所有的课程(uerycourse) 查询关联(Queryassociation) 添加关联(Addassociation) 查询选择的课程信息(Queryselectcourse) 查询密码(QuerypassWD) 取得数据库名称(getDBpath) 设置数据库名称(setDBpath) 打开数据库(OpenDB) ControlObject(控制
17、对象类)主要有以下属性和操作:验证课程的合法性(verifycourse) 判断能不能添加指定的课程(canadd) 判断能不能修改指定的课程(canmodify) 通过查询课程(QuerycoursebyID) 确认删除(confirmDelete) 查询所有的课程(getallcourse) 查询关联(queryassociation) 判断是不是能选择(canselect) 查询课程列表(QuerycourseList) 验证管理员的合法性(Verifyregistrar) 检查密码(checkpassWD) 构造函数(conttrolObject) ourse(课程类)主要有以下属性和
18、操作:课程名称(name)开课教室(classroom)课程号(courseID)授课教师(teacher)选课的学生(students)开课起始时间(firstlessondate)允许选课的学生人数(maxstudents)设置课程名称(setname)设置开课教室(setclassroom)设置课程号(setcourseID)设置授课教师信息(setteacher)设置开课起始时间(setfirstlessondata)设置允许选课的学生人数(setmaxstudents)查询课程名称(getname)查询开课教室(getclassroom)查询课程号(getcourseID)查询授课教
19、师信息(getteacher)查询开课起始时间(getfirstlessondate)查询允许选课的学生人数(getmaxstudents)ormObject(界面类) 主要有以下属性和操作:查询课程信息(getcourseInfo) 显示选课成功信息(showsuccessInfo) 查询课程编号(getcourseID) 显示确认页(showconfirmpage) 确认删除(confirmdelete) 选择命令(selectcommand) 显示课程列表(displaycourseList) 查询选择的课程(Queryselectcourse) 构造函数(FormObject). 类图
20、的建立最后详细的类图,如下:(在该类图中由于空间的限制,故将其中的一些属性和操作隐藏。)1状态图实例分析分析一个课程类(对象)(ourse)的状态变化过程课程对象被创建,添加到数据库中。管理员可以删除、修改课程信息,在某个学期开设该课程,如果选修人数超过指定人数,就不再允许学会选这门课。学期结束,课程的状态结束。状态图的建立在浏览器中选择“Logical View”,按下鼠标右键,在弹出的菜单里选择“ew”,再选择“State Diagram”,创建一个新的状态图。同时将名字改成“ourse”,如图:6组件图分析在选课系统中,包括MainProgram类(主程序)、People类、ontrol
21、Object类、Student类、Registrar类、Course类和ataBase类。其中,People类是Student类和egistrar类的基类,所以Student类和egistrar类依赖People类。ormObject类和ontrolbject类都和Course类相关,FormObject类和ontrolObject类依赖ourse类。ontrolObject类和DataBase类相关,ControlObject类依赖DataBase类。 2组件图的建立在浏览器中选择“omponent View”,按下鼠标右键,在弹出的菜单里选择“ew”,再选择“Component”,创建一个新的组件。如图:(其中各个组件的创建,不再做详细的叙述)部署图分析分析该系统大致在服务器端使用了二台主机,一台做为数据库服务器,使用了racle服务器。另一台是同一局域网上的机器,作为服务器,上面运行了服务器进程以及业务逻辑,同时还连接了打印机.部署图的建立在浏览器中选择“Deployment View”,建立部署图,如下:代码生成略。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1