UML 软 件 工 程
组织
火龙果软件工程技术
中心
更多技术资源 文章,讲座 ,培训,咨询 请访问 www.uml.org.cn
学籍管理系统建模
来源:.5iuml.com
1.实验目的
了解一个简单的软件项目的 UML 建模过程和主要建模元素。
2.实验内容与要求
根据学籍管理系统的主要需求,用 Rose 工具软件完成对学籍管理系统的建模。
3.实验工具和方法
需要在 Windows 下安装 ROSE 工具软件。
4.实验步骤/操作指导
在实验5-1的基础上,根据学籍管理系统的主要需求完成以下四个步骤的内容。
(1)分析并得出系统的主要参与者与主要用况,并画出系统的用况图。为所有的用况撰
写脚本,将脚本放于单独的 word 文档中,并将文档与相应的用况相连接。
1)确定系统的使用者
通过对上面问题陈述的分析,我们可以发现系统的使用者主要有 Student 和 Professor,
同时还需要 Registrar 来维护这个系统。此外,由于需要打印 Student 列表,故需要参与者
Billing System;由于需要自动维护课程目录的改变,故需要参与者 Course Catalog。因此
应该在用况视图中添加如图5-15所示的参与者。
图5-15 参与者
2)确定系统的用况
通过对上面问题陈述的分析,我们可以知道参与者 Student 主要要做 view report cards
和 register for courses 两件工作,而参与者 Professor 主要要做 Select Courses to Teach
和 Submit Grades 两件工作。参与者 Registrar 要维护信息,即要做 Maintain Professor
Information 和 Maintain Student Information 两件工作,此外 Registrar 还要控制注册何
时结束,即要做 Close Registration 的工作。由于安全性的原因,要使用系统还需要首先做
Login 的工作。因此,应在用况视图中添加如图5-16所示用况。
图5-16 用况列表
3)用况图
通过上面的分析我们确定了系统中的参与者,用况以及它们之间的关系,根据这些关系,
可以画出系统用况视图中的 Main 用况图,如图5-17所示:
图5-17 用况图
(2)实现关键用例。做出相应的顺序图和协作图,对于每一个协作,说明其静态结构和
动态结构。
为了说明协作的动态结构,我们可以画出其顺序图与协作图。对于 Login 协作而言,由于
只有一个边界类 LoginForm 与系统的使用者交互,而任何系统的使用者都必须登陆,故可画
出其顺序图和协作图,如图5-18和图5-19所示。
图5-18 Login 顺序图
图5-19 Login 协作图
上面我们通过构造 Login 协作实现了 Login 用况,这里再给出 register for courses 用
况的顺序图和协作图,如图5-20所示。
图5-20 register for courses 顺序图
图5-21 register for courses 协作图
(3)做出系统的关键抽象,并设计相应的类和类图。
1)发现系统中的类
在设计时,可以从问题陈述中提炼出关键的概念,并将其抽象成相应的类。由上面的问题
陈述可知,主要有 Student 和 Professor 使用系统,Student 应该有 Schedule,系统关键处
理的是 Course,而应该由 CourseOffering 来提供相应的 Course。在系统之外还有遗留下来
的 CourseCatalog 系统。
因此可以如下图所示抽象出这些关键概念,以及与之相关的一些概念。同时还可以绘制这
些关键抽象的类图,如图5-22所示。
图5-22 关键抽象的类图
2)确定关键类的属性
以 CourseOffering 类的属性为例,由于实体类 CourseOffering 的属性指明了所提供课程
的关键性质,故单独对其画出类图 CourseOffering (attributes),如图5-23所示。
图5-23 CourseOffering 类的属性
3)类图
针对每个关键类给出类图。以 CourseOffering 为例,由于实体类 Schedule 与实体类
CourseOffering 存在着主修与选修两种关联,而对于不同的关联存在不同的特征信息与处
理 , 故 对 于 这 两 个 关 联 分 别 设 置 关 联 类 ScheduleOfferingInfo 与
PrimaryScheduleOfferingInfob,用关联类的属性刻画关联的特征信息,而将关联的处理映
射为关联类的操作。这里应特别注意的是对于不同的关联,CourseOffering 扮演的角色以及
多重性都不同。
根据上面的分析,画出 CourseOffering 关联类图,如图5-24所示。
图5-24 CourseOffering 类图
在分析过程中,我们已经知道了实体类 Schedule 与实体类 CourseOffering 之间的主修与
选修两种关联关系,对于不同的关联关系设置了关联类并画出了类图。现在,我们只需要对
于分析中得出的类图作进一步完善,加入实体类 Schedule 的详细设计信息后,画出类图
Schedule,如图5-25所示。
图5-25 Schedule 类图
对于实体类 Professor 而言,由于它要给出所提供的课程,因此它与 CourseOfferingList
类有关联,且 Professor 在此关联中扮演 instructor 角色。故可画出类图 Professor,如图
5-26所示。
图5-26 Professor 类图
对于实体类 Student 而言,由于它要被分成 Fulltime 和 Parttime 两类,因此建立类
Classification,并通过实体类 Student 对于类 Classification 的聚合来表现出 Student
所具有的分类特征。此外还须建立类 Classification 的子类 FulltimeClassification 和
ParttimeClassification,它们的构造型均为 entity,故用它们具体表现不同类 Student 所