我是使用UML的新手,我不确定我的图表是否正确。我想从比我更有经验的人那里得到一些建议。
我的问题陈述说:
学生学习课程,每个学生可以参加几门课程“学习”。任何课程都可以有不止一个学生学习它。
通过数字代码识别的学生有姓名,出生日期和一个或多个国籍。 学习的学生可以获得奖学金。
学生每门课程可以获得一个以上的奖学金。和 个人奖学金可以授予一个以上的学生。该 奖学金有一个数字代码,用来标识它们,一个名字,一个 基数和不同的条件 任务。
我想要的是代表学生,助学金和学生所接受的课程,我不确定是否应该使用联想关系或三元关系。
有人可以确认我的提案UML图是否合适?
答案 0 :(得分:1)
几乎。菱形(或菱形)形状的元素本身是一个关联类,它将所有连接的类关联起来。您希望它是<div class="parent">
<div class="back">
back
</div>
<div class="front">
front
</div>
</div>
和Student
之间的简单关联类,如下所示:
Studies
代表学生在特定研究中通过的考试。关联类关系由链接到关联的虚线表示(具有m-n多重性)。
答案 1 :(得分:1)
与学生,课程和学生直接相关的唯一声明补助金是不清楚&#34; [a s] tudent每门课程可以获得一笔以上的补助金。#/ p>
它实际上只说每个学生课程对可以有多个相关的资助。 (也许作业的作者认为&#34; per&#34;句子说的不止于此,但事实并非如此。)它没有说明学生是否给予他们的资助取决于他们的课程,如果是的话。你的设计是最好的,给你一个三联体,你不能告诉任何其他三胞胎。与Takes(学生,课程)和&amp;设计接收(学生,课程,补助)与FK(外键){学生,课程}从Receives to Takes是最好的,如果你认识一个学生&amp;当然对然后你知道它的补助金。如果奖学金是独立于课程的学生,那么设计与Takes(学生,课程)&amp;收到(学生,补助金)就足够了。
与您的导师澄清。
答案 2 :(得分:1)
在获得任何属性之前,我没有看到问题陈述中的名词与您的班级之间的相关性。我希望看到以下课程:
Student
Course
Nationality
Scholarship
我还希望看到一个名为CourseEnrollment
的关联类,它在关联的末尾具有以下斜体属性:
Student
研究课程 [1 .. *] Course
Course
studyStudent [1 .. *] Student
该关联类将与名为Scholarship
的{{1}}建立另一个关联,该关联在关联的末尾具有以下斜体属性:
ScholarshipAward
获颁奖学金 [0 .. *] CourseEnrollment
Scholarship
接受课程注册 [0 .. *] Scholarship
通过这种安排,CourseEnrollment
可以授予Scholarship
和Student
的组合。