1

我是使用UML的新手,我不確定我的圖是否正確。我希望得到比我更有經驗的人的建議。正確使用關聯類

我problema的聲明說:

學生學習課程,每個學生可以採取幾門課程「研究」每種。任何課程都可以有不止一名學生學習。

以數字代碼標識的學生有姓名,出生日期和一個或多個國籍。 一個學習的學生可以獲得獎學金。

一個學生每個課程可以接受一個以上的獎學金。並且可以向不止一名學生提供個人獎學金。 獎學金有一個數字代碼,它標識它們,名稱, 基本金額以及在 時間要完成的不同條件。

我的建議如下: enter image description here

我想是代表學生,助學金和學生拿到課程,我不知道我是否應該使用關聯關係或三元關係。

任何人都可以確認我的提議UML圖是否正確嗎?

回答

1

與學生直接相關的唯一聲明,&補助是不清楚「[學生可以每個課程獲得一個以上的補助金」。

它實際上只是說每個學生課程對可以有多個關聯的授權。 (也許作業的作者認爲那個「每個」句子說的比這個更多,但它不是)。它不會說學生他們的補助金是否取決於他們的課程,如果是的話如何如何。給三聯體時,你的設計是最好的,你不能告訴任何其他三聯體。與Takes(學生,課程)&設計從接收到Takes接收(學生,課程,授予)FK(外鍵){學生,課程}是最好的,如果你知道一個學生&課程對,那麼你知道它的資助。如果給予獨立於課程的學生補助金,那麼帶有Takes(學生,課程)&接收(學生,補助)的設計就足夠了。

與你的老師澄清。

1

差不多。菱形(或鑽石)形元素本身就是一個關聯類,它將所有連接的類關聯起來。你要什麼像這樣StudentStudies之間的簡單關聯類:

enter image description here

Scholarship代表由學生在具體研究通過了考試。關聯類關係由與關聯關聯的虛線(其具有m-n多重性)表示。

+0

'研究'似乎對我來說不是一個有效的課程。 –

+0

@JimL。我想,它應該是課程。我傾向於在這裏給出相當簡潔的答案,因爲在大多數情況下,模型是「要討論的」,這就是使用UML的原因。所以通常你沒有答案,只有想到的食物。 –

1

在你找到任何屬性之前,我沒有看到問題陳述中的名詞和你的類之間的相關性。我希望看到以下類:

  • Student
  • Course
  • Nationality
  • Scholarship

我也希望看到一個關聯類,稱爲CourseEnrollment,這將有在協會結尾的以下斜體屬性:

  • StudentstudiedCourse [1 .. *] Course
  • CoursestudyingStudent [1 .. *] Student

這關聯類將有Scholarship另一個協會,叫ScholarshipAward,在該協會的末端將具有以下斜體屬性:

  • CourseEnrollmentawardedScholarship [0 .. *] Scholarship
  • ScholarshipreceivingCourseEnrollment [0 .. *] CourseEnrollment

利用這種佈置,一個Scholarship可授予的Student的組合和Course