logo资料库

面向对象分析与设计教学案例研究(UML建模全过程).pdf

第1页 / 共23页
第2页 / 共23页
第3页 / 共23页
第4页 / 共23页
第5页 / 共23页
第6页 / 共23页
第7页 / 共23页
第8页 / 共23页
资料共23页,剩余部分请下载后查看
面向对象分析与设计教学案例研究 教学案例 该案例示范了使用 Rational Rose 如何对系统进行建模。使用用例和领域分析的方法来对系统 进行分析并且设计一个分析模型。然后把分析模型扩展成设计模型,此设计模型描述了一种技术方 案。最终,设计模型转变为用面向对象的编程语言创建的可以运行的程序。 这里将把某大学课程管理的问题作为本部分的示例。 【案例材料】 1. 某大学背景 学生登记在大学里是一种非常耗时的活动,学校还面临着给教室排课的问题。在每个教师决定 了他这个学期将讲授什么课程之后,教务处将这些信息输入到一个计算机系统,然后给每个教师打 印一份报表,最后要打印一份课程目录给学生。 依照现有系统,学生填写注册表并确定他们所选的课程,然后将所有信息递交到教务处。一个 学生在一段时间内最多选四门课。教务处将这些信息输入到计算机。一旦输入了学生所选的课程, 就会把学生安排到这些课程。大多数时候,学生得到他们选课的课程,但是,当发生冲突时,教务 处将询问学生以便得到其他的选择。一旦给所有学生都排好了课,学生的课表将打印出来给学生以 便得到他们的确认。大多数学生登记将在一周内完成,但是有些特殊情况要花两周来进行。 当最初的登记周期结束时,教师会得到他们所讲的每一门课程的学生名单。 2. 课程登记问题的风险 开发团队觉得这个系统最主要的风险是有效地存储和获取课程信息。他们开发了几个原型来评 价每一个备选的数据库管理系统的数据和访问机制。他们还开发了一些原型来研究学校运行联机登 记系统的硬件需求。 3. 某大学课程登记问题状态 在学期之初,学生会需要一份这个学期要开的课程列表。每门课程的信息,如教师、部门和课 程需要的前提条件将包含在这个清单里来帮助学生们选择课程。 新系统允许学生在每个学期里选四门课。另外,每个学生还要提交两个备选课程以预防课程被 选满或取消的情况。少于三个学生选择的课将被取消。一旦学生登记完成,登记系统将信息传入财 务系统,学生就可以交这个学期的学费了。 教师要进入联机系统确认他们所讲授的课程和每门课程有哪些学生。 在每个学期的这段时间里,学生可以改变他们的计划。学生可以在这段时间内进入系统增加或 删除课程。 - 1 -
教学案例 4. 某大学课程登记系统中的角色 ① Student(学生):登记选课。 ② Teacher(教师):选择想教的课。 ③ Registrar(登记员):创建课程和学期的课表,维护所有课程、教师和学生的信息。 ④ Billing System(财务系统):接受系统的财务信息。 一、在 Rational Rose 中使用用例 1. 创建角色 ① 右击浏览器中的用例视图包,显示快捷菜单。 ② 选择 New->Actor 菜单。浏览器中会出现一个叫做 New Class 的操作。 ③ 选择<>NewClass 重命名。 按照这种方法创建角色:Student、Teacher、Registrar、Billing System。图 1 显示了某大 学课程登记系统中角色的浏览器视图。 图 1 角色 2. 角色文档 ① Student:在学校里登记选课的人。 ② Teacher:在学校里有资格教课的人。 ③ Registrar:对课程登记系统维护负责的人。 ④ Billing System:负责学生财务的外部系统。 3. 创建文档 ① 通过在 View 菜单中选择 Documentation 菜单打开文档窗口。 ② 单击选择浏览器中的角色。 - 2 -
教学案例 ③ 将鼠标定位在文档窗口并输入角色的文档信息。 4. 某大学课程登记系统中的用例 系统需要实现以下功能: ① Student 角色使用系统进行选课登记。 ② 选课结束后,要提供财务给财务系统。 ③ Teacher 角色要用系统选择这个学期要教授的课程,还要从系统中得到一个课程清单。 ④ 登记员负责制定这个学期的课程目录,维护教师和学生需要的课程信息。 基于上述原因,确定了以下用例: ① Register for courses(登记课程)。 ② Select courses to teach(选择所教课程)。 ③ Request course list(获取课程清单)。 ④ Maintain course information(维护课程信息)。 ⑤ Maintain teacher information(维护教师信息)。 ⑥ Maintain student information(维护学生信息)。 ⑦ Create course catalouge(创建课程目录)。 5. 创建用例 ① 在浏览器中右击用例视图以显示快捷菜单。 ② 选择“New:Use Case”。在浏览器中会出现一个新的未命名用例。 ③ 选择用例并命名。 图 2 显示了在浏览器视图中所包含的课程登记系统中的所有用例。 图 2 用例 - 3 -
6. 创建用例描述 ① 在浏览器中单击选择用例。 ② 将鼠标放在文档窗口并输入用例的规格说明。 登记课程用例的描述如图 3 所示。 教学案例 图 3 用例的简短描述 7. 选择所教课程用例事件流文档示例 (1) 前置条件 Create Course Offerings(创建课程)提供了 Maintain Courses 用例的子事件流,要在这个 用例之前进行。 (2) 主事件流 这个用例的起始事件是教师输入密码并登录系统。系统验证密码(E-1)并提示教师选择这个 学期或下个学期(E-2)。教师输入想要的学期。系统提示教师选择想要的操作:增加、删除、查 询、打印或退出。 如果选择的操作是增加,S-1:执行 Add a Course Offering(增加课程)子事件流。 如果选择的操作是删除,S-2:执行 Delete a Course Offering(删除课程)子事件流。 如果选择的操作是查询,S-3:执行 Review a Course Offering(查询课程)子事件流。 如果选择的操作是打印,S-4:执行 Print a Course Offering(打印课程)子事件流。 如果选择的操作是退出,S-5:用例结束。 (3) 扩展事件流 S-1:Add a Course Offering。此系统显示了一个包含课程名和数量的所有课程界面。教师 输入课程名和代码(E-3),系统显示输入的将提供的课程(E-4)。教师选择一门课。系统把教师 和他所选择的课程联系起来(E-5)。用例重新开始。 S-2:Delete a Course Offering。此系统显示了一个包含课程名和数量的所有课程界面。教 师输入所提供课程的名称和代码(E-6),系统根据教师的输入将此课程删除(E-7)。用例重新开 始。 S-3:Review a Course Offering。系统得到并显示给教师分课信息(E-8),包括课程名、 代码、课时数、周数和地点。当教师确认过一遍后,用例重新开始。 S-4:Print a Course Offering。系统打印教师的课程计划(E-9)。用例重新开始。 - 4 -
教学案例 (4) 异常事件流 E-1:An invalid teacher ID number is entered(输入无效教师 ID)。用户可以重新输入 一个教师 ID 或终止用例。 E-2:An invalid semester is entered(输入非法的学期)。用户可以重新输入学期或终止 用例。 E-3:An invalid course name/number is entered(输入无效的课程名或课程代码)。用户 可以重新输入一个有效的课程名或课程代码或者终止用例。 E-4:Course offering cannot be displayed(不能显示提供的课程)。通知用户这个选择此 时是无效的。用例重新开始。 E-5:A link between the teacher and the course offering cannot be created(教师和 提供的课程之间无法建立关联)。系统保存此信息并在稍后创建关联,用例继续。 E-6:An invalid course offering name/number is entered(输入无效的课程名或课程代 码)。用户可以重新输入一个有效的课程名或课程代码或者终止用例。 E-7:A link between the teacher and the course offering cannot be removed(教师和 所提供课程之间的关联无法删除)。系统保存此信息并在稍后删除关联。用例继续。 E-8:The system cannot retrieve schedule information(系统无法得到计划表)。用例重 新开始。 E-9:The schedule cannot be printed(无法打印计划表)。通知用户当前操作不可用。用 例重新开始。 8. 把事件流文档连接到用例 ① 将事件流保存为文本文件。 ② 在浏览器中右击用例以显示快捷菜单。 ③ 选择 Specifications 菜单。 ④ 选择 File 标签。 ⑤ 右击显示快捷菜单。 ⑥ 选择 Insert File 菜单。 ⑦ 浏览适当的目录并选择想要的文件。 ⑧ 单击 Open 按钮。 ⑨ 单击 Ok 按钮关闭规格说明。 一个连接到用例的事件流文档如同 4 所示。 - 5 -
教学案例 图 4 连接到用例的事件流文档 9. 创建主用例图 ① 在浏览器的用例视图中双击 Main 图以打开它。 ② 单击选择浏览器中的角色,并将角色拉至图中。 ③ 对图中所需的其他角色重复步骤②。 ④ 单击选择浏览器中的某个用例,并将它拖至图中。 ⑤ 重复步骤④,在图中加上所需的其他用例。 10.创建关联 ① 从图的工具栏中单击并选择关联图标或者单向关联图标。 ② 单击角色开始一个关联并将此关联和相关的用例联系起来。 11. 创建使用关系 ① 在工具栏中单击选择泛化图标。 ② 单击使用用例并将泛化图标和被使用的用例联系起来。 ③ 双击泛化箭头显示规格说明。 ④ 如果是第一次创建使用关系,在构造型字段上输入 Uses。如果已经创建了 Uses 构造型, 单击构造型字段中的箭头显示菜单并选择 Uses。 ⑤ 单击 Ok 按钮关闭规格说明。 ⑥ 右击泛化箭头显示快捷菜单。 - 6 -
教学案例 ⑦ 选择 Show Stereotype 菜单选项。 12. 创建扩展关系 ① 在工具栏中单击选择泛化图标。 ② 单击有扩展功能的用例并将泛化图标和基用例联系起来。 ③ 双击泛化箭头显示规格说明。 ④ 如果是第一次创建扩展关系,在构造型字段上输入 Extends。如果已经创建了 Extends 构 造型,单击构造型字段中的箭头显示菜单并选择 Extends。 ⑤ 单击 Ok 按钮关闭规格说明。 ⑥ 右击泛化箭头显示快捷菜单。 ⑦ 选择 Show Stereotype 菜单选项。 图 5 显示了某大学课程登记系统的主用例图。 图 5 主用例图 - 7 -
教学案例 13. 创建附加用例图 ① 右击浏览器中的用例视图显示快捷菜单。 ② 选择 New:Use Case Diagram 菜单项。 ③ 选择用例图,输入名称。 ④ 打开用例图,添加所需的角色、用例和交互。 图 6 显示了一个附加用例图。 图 6 附加用例图 二、在 Rational Rose 中使用类图 1. 创建类 ① 右击选择浏览器中的逻辑视图。 ② 选择 New:Class 菜单项。浏览器中出现了一个新的名为 NewClass 的类。 ③ 选择类并输入类名。 2. 创建类的构造型 ① 在浏览器中右击,选择类并显示快捷菜单。 ② 选择 Specification 菜单项。 ③ 选择 General 标签。 ④ 输入构造型名称。 - 8 -
分享到:
收藏