列表

详情


阅读以下关于软件系统建模的叙述,在答题纸上回答问题1至问题3。
【说明】
某软件公司计划开发一套教学管理系统,用于为高校提供教学管理服务。该教学管理系统基本的需求包括:
(1)系统用户必须成功登录到系统后才能使用系统的各项功能服务;
(2)管理员(Registrar)使用该系统管理学校(University)、系(Department)、教师(Lecturer)、学生(Student)和课程(Course)等教学基础信息;
(3)学生使用系统选择并注册课程,必须通过所选课程的考试才能获得学分;如果考试不及格,必须参加补考,通过后才能获得课程学分;
(4)教师使用该系统选择所要教的课程,并从系统获得选择该课程的学生名单;
(5)管理员使用系统生成课程课表,维护系统所需的有关课程、学生和教师的信息;
(6)每个月到了月底系统会通过打印机打印学生的考勤信息。
项目组经过分析和讨论,决定采用面向对象开发技术对系统各项需求建模。

【问题1】(7分)
用例建模用来描述待开发系统的功能需求,主要元素是用例和参与者。请根据题目所述需求,说明教学服务系统中有哪些参与者。
【问题2】(7分)
用例是对系统行为的动态描述,用例获取是需求分析阶段的主要任务之一。请指出在面向对象系统建模中,用例之间的关系有哪几种类型?对题目所述教学服务系统的需求建模时, “登录系统”用例与“注册课程”用例之间、“参加考试”用例与“参加补考”用例之间的关系分别属于哪种类型?
【问题3】(11分)
类图主要用来描述系统的静态结构,是组件图和配置图的基础。请指出在面向对象系统建模中,类之间的关系有哪几种类型?对题目所述教学服务系统的需求建模时,类University与类Student之间、类University和类Department之间、类Student和类Course之间的关系分别属于哪种类型? 

参考答案:

【问题1】
学生、教师、管理员、时间、打印机。
【问题2】
用例之间的关系包括:包含、扩展、泛化。
“登录系统”用例与“注册课程”用例之间的关系为:包含关系。
“参加考试”用例与“参加补考”用例之间的关系为:扩展关系。
【问题3】
类之间的关系包括:关联、聚合、组合、依赖、泛化、实现(可写可不写,因为实现是接口与类之间的关系,而接口是一种特殊的类)
类University与类Student之间的关系是:聚合关系。
类University与类Department之间的关系是:组合关系。
类Student与类Course之间的关系是:关联关系。

详细解析:

【问题1】

参与者是指系统以外的,需要使用系统或与系统交互的事物,包括:人或组织、设备、外部系统等。在本题中,较为容易识别的参与者包括:学生、教师、管理员,比较隐晦的参与者包括:时间、打印机。

【问题2】

用例之间的关系主要有泛化(Generalization)、包含(Include)和扩展(Extend)。
(1)当可以从两个或多个用例中提取公共行为时,可以使用包含关系来表示。
(2)如果一个用例混合了两种或两种以上不同场景,即根据情况可能发生多种分支,则可以将这个用例分为一个基本用例和一个或多个扩展用例。
(3)当多个用例共同拥有一个类似的结构和行为的时候,可以将它们的共性抽象成父用例,其他的用例作为泛化关系中的子用例。
在题目要求中,用例“登录系统”是用例“注册课程”和其他用例执行的公共行为,两者是包含(Include)关系。用例“参加补考”是用例“参加考试”的一种分支和特殊场景,两者之间的关系是扩展(Extend)关系。

【问题3】

依赖关系:一个事物发生变化影响另一个事物。泛化关系:特殊/一般关系。
关联关系:描述了一组链,链是对象之间的连接。
聚合关系:整体与部分生命周期不同。
组合关系:整体与部分生命周期相同。
实现关系:接口与类之间的关系。

在题目要求中,类University与类Student之间的关系是整体与部分关系,而且具有不同的生存周期,所以是聚合关系。类University和类Department之间的关系是整体与部分的关系,两者具有相同的生存周期,所以是组合关系。类Student和类Course之间为连接关系,所以属于关联关系。

上一题