【说明】
某大学准备开发一个学生课程注册系统,学生可以使用该系统查询新学期将开设的课程和讲课教师情况,选择自己要学习的课程进行登记注册,并可以查询成绩单;教师可以使用该系统查询新学期将开设的课程和选课学生情况,并可以登记成绩单;注册管理员使用该系统进行注册管理,包括维护教师信息、学生信息和课程信息等。
在每个学期的开始,学生可以获得该学期的课程目录表,课程目录表列出每门课程的所有信息,诸如基本信息、教师、开课系和选课条件等。
新学期开始前两周为选课注册时间,在此期间学生可以选课注册,并且允许改变或取消注册申请,开学两周后注册管理员负责关闭课程注册。每个学生可以选择不超过4门课程,同时指定2门侯选课程以备主选课程未选上。每门课程最多不能超过10人,最少不能低于3人,低于3人选课的课程将被取消。一旦学生的注册过程完毕,注册系统将有关信息提交收费系统以便学生付费。如果在实际注册过程中名额已满,系统将通知学生在提交课程表之前予以更改。
在学期结束时,学生可以存取系统查看电子成绩单。由于学生成绩属于敏感信息,系统必须提供必要的安全措施以防非法存取。
【用例图】
【表】
表3-1 学生课注册系统的实体类
实体类 | 说明 |
Professor | 学校中讲课的教师 |
Strdent | 学校中注册课程的学生 |
Schedule | 学生在新学期选择登记的课程列表 |
CourseCatalog | 学校所有课程的目录 |
Course | 课程的基本信息 |
CourseOffering | 新学期课程的开设信息,如课课教师、时间、地点等信息 |
表3-2 学生课程注册系统的边界类
边界类 | 说明 |
LoginForm | 为教师、学生和注册管理提供登录的操作 |
RegisterCoursesForm | 为学生提供选课注册的操作 |
ViewReportForm | 为学生提供成绩查询的操作 |
SelectTeachCoursesForm | 为教师提供查看学生选课情况的操作 |
SubmitGradesForm | 为教师提供登记成绩的操作 |
MaintainProfessorsForm | 为注册管理员提供维护教师信息的操作 |
MaintainStudentsForm | 为注册管理员提供维护学生信息的操作 |
MaintainCoursesForm | 为注册管理员提供维护课程信息的操作 |
CloseRegistrationForm | 为注册管理员提供关闭注册的操作 |
BillingSystemNotice | 提供与收费系统的信息交换接口 |
表3-3 学生课程注册系统的控制类
控制类 | 说明 |
RegisterCoursesControl | 负责新学期学生的选课登记 |
ViewReportControl | 负责学生成绩的查询 |
SelectTeachCoursesControl | 负责新学期课程的学生选择情况 |
SubmitGradesControl | 负责学生成绩的登记 |
CloseRegistrationControl | 负责关闭课程注册 |
【时序图】
注释1:学生打算注册新的课程。
注释2:一张这学期可选择的课程列表。
注释3:显示一张为学生选课用的空白登记表。
【问题1】 在UML中,用例代表一个完整的功能,如与角色通信、进行计算或在系统内工作等。请简要说明用例具有哪些的特征,并指出用例图中(1)~(3)处表示的内容。 |
参考答案:
解析:用例的特征如下:用例总是由角色初始化:用例为角色提供值;用例具有完全性,即不管其内部是如何实现的,只有最终产生了返回角色的结果,用例的执行才能完毕。 (1)登记成绩(2)查询成绩单(3)关闭注册
[分析]: 用例描述了它所代表的功能的各个方面,即包含了用例执行期间可能发生的各种情况。用例和角色之间具有“关联”的连接关系,表示什么角色与该用例进行通信。在UML语言中,用例用—个椭圆图形和名称表示。 在本题中,我们通过题目说明可以识别以下用例: 1.与教师有关的用例: 1)选择课程——选择所教的课程,并获得学生名册。 2)登记成绩——在学期结束时,提交学生的课程成绩。 2.与学生有关的用例: 1)注册课程——在学期开始进行选课注册,允许在一段时间内更改或删除,课程目录系统提供当前学期的所有可选课程列表。 2)查看成绩单——学生可以查看以前学期的电子成绩单。 3.与注册管理员有关的用例: 1)维护课程信息——在系统中增加、修改和删除课程信息。 2)维护学生信息——在系统中增加、修改和删除学生信息。 3)维护教师信息——在系统中增加、修改和删除教师信息。 4)关闭注册——删除少于3人的课程,并由付费系统通知学生缴费。 4.与安全性要求有关的用例: 登录——使用此系统的人员需要进行登录,以验证其身份和权限。 发现和定义对象类应以问题域和系统责任为出发点,正确地运用抽象原则,尽可能全面地发现对象的因素,并对其进行检查和整理,最终得到系统的对象类。我们可以在用例模型的基础上,通过识别实体类、边界类和控制类,从而发现和定义系统中的对象类。识别上述对象类之后,通过建立交互图,将用例的行为分布到这些对象类中。时序图表示完成某项行为的对象类和这些对象类之间传递消息的时间顺序,其中,对象生命线是一条垂直的虚线,表示对象存在的时间;控制焦点是一个细长的矩形,表示对象执行一个所经历的时间段;消息是对象之间的一条水平箭头线,表示对象之间的通信。协作图包含一组对象和以消息交换为纽带的关联,用于描述系统的行为是如何由系统的成分合作实现的。