网上选课系统设计建模
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
案例2:网上选课系统
二、设计建模
(一)系统总体设计
1、系统的体系架构
“网上选课系统”是一个基于Web的网络应用系统,在进行软件体系架构分析时,我们采用了典型的三层架构模式(B/A/S)来对其进行建模:
在分析阶段重点识别了问题域中的实体类,但只有实体类还不能使整个系统正常地运转起来,我们必须细化,为系统添加界面类和控制类。
2、组件设计(2种方法)
图2:组件图(1)
MainProgram
图3:组件图(2)
3、部署设计
图4:部署图
(二)、系统详细设计
对用例的事件流进行梳理,逐一确定边界对象和实体对象,将边界对象放在界面层、实体对象和业务规则放在业务逻辑层,并根据流程确定接口;然后再根据业务逻辑层的实体类需要的数据存储来分析数据访问层;对分布式、并发、安全和日志等其他机制进行处理。
1、建立动态模型
(1)对管理员“添加课程”行为进行分析
“添加课程”用例的事件流如下:
1)管理员选择进入登录界面,用例开始
2)系统提示输入管理员密码
3)管理员输入密码
4)系统验证密码
A1:密码错误
5)进入管理界面,系统显示目前所建立的全部课程信息。
6)管理员选择添加课程
7)系统提示输入新课程信息
8)管理员输入信息
9)系统验证是否和已有课程冲突
A2:有冲突
10)系统添加新课程,提示课程添加成功
11)系统重新进入管理主界面,显示所有课程
12)用例结束
首先查找“添加课程”用例的对象,从事件流中发现涉及以下对象:(1)界面
(2)课程
(3)对于业务层的操作,也应该有对象进行处理。
(4)事件流中设计的角色有:管理员、数据库。
然后,分析对象、角色之间交互的消息。本用例主要有以下交互:(1)管理员进入管理界面,选择添加课程功能
(2)界面提示用户输入课程信息
(3)界面对象创建一个课程对象
(4)通过控制对象来对课程信息进行合法性检查
(5)控制对象向课程对象返回结果
(6)控制对象向数据库查询课程相关信息
(7)控制对象对查询结果进行判断
(8)控制对象向数据库中插入数据
(9)在界面上显示结果
(10)控制对象撤消建立的课程对象
(2
“选课”用例的事件流见“网上选课系统需求建模-1”
首先查找“选课”用例的对象,从事件流中发现涉及以下对象:(1)界面
(2)课程
(3)对于业务层的操作,也应该有对象进行处理。
(4)事件流中设计的角色有:学生、数据库。
分析对象、角色之间交互的消息。
1)学生通过界面发送选课请求
2)界面控制对象课程信息
3)控制对象向数据库发送查询数据消息
4)控制对象暂存数据库的查询结果
6)在界面上显示所有课程信息
7)界面对象发送命令要求控制对象删除课程信息
8)学生选择课程
9)界面对象要求学生输入学号
10)界面对象向控制对象发送信息,查询该生是否可以选择选定的课程
11)控制对象从数据库中查询关联信息
12)控制对象判断是否可以选课
13)如果可以选课,则向数据库中添加关联信息
14)向界面对象返回信息
(4)对查询课程行为进行分析
“删除课程”的过程和“修改课程”类似,涉及以下对象:
(1)界面
(2)管理员
(3)控制对象
(4)数据库
分析对象、角色之间交互的消息。
1)管理员输入待删除的课程信息(IID)等
2)界面对象将信息发送给控制对象
3)控制对象查询课程信息是否有效
4)控制对象向界面对象返回信息,如果课程信息有效,则要求界面提示管理员确认删除
5)管理员确认删除课程
6)界面对象确认删除的信息发送给控制对象
7)控制对象将确认删除对象的信息发送给数据库
8)数据库实施删除,并将结果返回给控制对象
9)控制对象将结果返回到界面
(6)对登录系统行为进行分析
用户要对课程信息进行操作时,要输入用户名和密码,以确保其拥有相应的权限。事件流如下:
1)系统提示用户输入用户名和密码
2)用户输入用户名和密码
3)系统验证用户名和密码的合法性
4)将检查结果返回给用户
首先查找“登录系统”用例的对象,从事件流中发现涉及以下对象:(1)界面
(2)控制对象
(3)数据库
(4)事件流中设计的角色有:用户、数据库
分析对象、角色之间交互的消息。
1)界面对象提示用户输入注册信息
2)用户输入注册信息
3)界面对象将注册信息提交给控制对象
4)控制对象到数据库中查询注册信息
(5)控制对象判断注册信息是否合法
(6)控制对象将检查结果返回到界面对象
(7)界面对象显示结果
2、建立设计类图
选课系统中定义的类
(1)类People的属性和操作
(2)类Student的属性和操作
(3)类Registrar的属性和操作
(5)类ControlObject的属性和操作
(7)类FormObject的属性和操作