การใช้คลาสสมาคมอย่างถูกต้อง

ฉันยังใหม่กับการใช้ UML และฉันไม่แน่ใจว่าไดอะแกรมของฉันถูกต้องหรือไม่ ฉันต้องการคำแนะนำจากผู้มีประสบการณ์มากกว่าฉัน

คำแถลงปัญหาของฉันพูดว่า:

นักเรียนเรียนหลักสูตรต่างๆและนักเรียนแต่ละคนสามารถเรียน "เรียน" ได้หลายหลักสูตรในแต่ละครั้ง ทุกหลักสูตรสามารถมีผู้เรียนได้มากกว่าหนึ่งคน

นักเรียนที่ถูกระบุด้วยรหัสตัวเลข มีชื่อ วันเกิด และสัญชาติหนึ่งหรือหลายสัญชาติ นักศึกษาที่เรียนอยู่สามารถรับทุนการศึกษาได้

นักศึกษาสามารถรับทุนการศึกษาได้มากกว่าหนึ่งทุนต่อหลักสูตร และสามารถมอบทุนการศึกษารายบุคคลให้กับนักเรียนมากกว่าหนึ่งคนได้ ทุนการศึกษาจะมีรหัสตัวเลขซึ่งระบุชื่อ จำนวนเงินพื้นฐาน และเงื่อนไขต่างๆ ที่ต้องปฏิบัติตามในเวลาที่ได้รับมอบหมาย

ข้อเสนอของฉันมีดังต่อไปนี้: ป้อนคำอธิบายรูปภาพที่นี่

สิ่งที่ฉันต้องการคือการเป็นตัวแทนของนักเรียน ทุนสนับสนุน และหลักสูตรที่นักเรียนเรียน และฉันไม่แน่ใจว่าฉันควรใช้ความสัมพันธ์เชิงเชื่อมโยงหรือความสัมพันธ์แบบไตรภาค

ใครสามารถยืนยันได้ว่าแผนภาพ UML ข้อเสนอของฉันถูกต้องหรือไม่


person myhappycoding    schedule 26.05.2017    source แหล่งที่มา


คำตอบ (3)


ข้อความเดียวที่เกี่ยวข้องโดยตรงกับนักเรียน หลักสูตร และทุนสนับสนุนคือ ไม่ชัดเจน "[a s]นักเรียนสามารถรับทุนได้มากกว่าหนึ่งทุนต่อหลักสูตร"

จริงๆ แล้วบอกเพียงว่าคู่หลักสูตรนักเรียนแต่ละคู่สามารถมีทุนสนับสนุนที่เกี่ยวข้องได้มากกว่าหนึ่งรายการ (บางทีผู้เขียนงานคิดว่าประโยค "ต่อ" มีความหมายมากกว่านั้น แต่ไม่ใช่) มันไม่ได้บอกว่านักเรียน ว่าทุนของพวกเขาขึ้นอยู่กับหลักสูตรของพวกเขาหรือไม่ และถ้าเป็นเช่นนั้น อย่างไร. การออกแบบของคุณดีที่สุดเมื่อได้รับแฝดสาม คุณจะไม่สามารถบอกอะไรเกี่ยวกับแฝดอื่นๆ ได้ การออกแบบด้วย Takes(student,course) & Receives(student, course, grant) ด้วย th FK (foreign key) {student, course} จากการรับไปจนถึง Takes จะดีที่สุดเมื่อคุณรู้จักคู่ของนักเรียนและหลักสูตร คุณจะทราบทุนของมัน . หากมอบทุนให้กับนักเรียนโดยไม่ขึ้นอยู่กับหลักสูตร การออกแบบที่มี Takes(student,course) & Receives(student,grant) ก็เพียงพอแล้ว

ชี้แจงกับอาจารย์ผู้สอนของคุณ

person philipxy    schedule 29.05.2017

เกือบ. องค์ประกอบรูปทรงสี่เหลี่ยมขนมเปียกปูน (หรือเพชร) นั้นเป็นคลาสที่เชื่อมโยงกันซึ่งเชื่อมโยงคลาสที่เชื่อมต่อกันทั้งหมด สิ่งที่คุณต้องการเป็นคลาสการเชื่อมโยงแบบง่าย ๆ ระหว่าง Student ถึง Studies เช่นนี้:

ป้อนคำอธิบายรูปภาพที่นี่

Scholarship หมายถึงการสอบที่นักเรียนสอบผ่านในการศึกษาเฉพาะเรื่อง ความสัมพันธ์ระดับความสัมพันธ์ระบุด้วยเส้นประที่เชื่อมโยงกับการเชื่อมโยง (ซึ่งมีหลายหลาก m-n)

person qwerty_so    schedule 26.05.2017
comment
Studies ดูเหมือนจะไม่ใช่ชั้นเรียนที่ถูกต้องสำหรับฉัน - person Jim L.; 31.05.2017
comment
@จิมแอล. ฉันเดาว่ามันควรจะเป็นหลักสูตรมากกว่า ฉันมักจะให้คำตอบที่ค่อนข้างกระชับที่นี่ เนื่องจากในกรณีส่วนใหญ่ จะมีการพูดคุยถึงโมเดล ซึ่งเป็นเหตุผลว่าทำไมจึงใช้ UML ดังนั้น โดยปกติแล้ว คุณจะไม่มีคำตอบ แต่มีเพียงอาหารแห่งความคิด - person qwerty_so; 31.05.2017

ก่อนที่คุณจะเข้าใจคุณลักษณะใดๆ ฉันไม่เห็นความสัมพันธ์ระหว่างคำนามในประโยคปัญหาและชั้นเรียนของคุณ ฉันคาดว่าจะเห็นชั้นเรียนต่อไปนี้:

  • Student
  • Course
  • Nationality
  • Scholarship

ฉันคาดหวังที่จะเห็นคลาสการเชื่อมโยงที่เรียกว่า CourseEnrollment ซึ่งจะมีคุณสมบัติตัวเอียงต่อไปนี้ที่ส่วนท้ายของการเชื่อมโยง:

  • Student หลักสูตรที่เรียนแล้ว [1..*] Course
  • Course กำลังศึกษานักเรียน [1..*] Student

คลาสการเชื่อมโยงนั้นจะมีการเชื่อมโยงอื่นกับ Scholarship ซึ่งเรียกว่า ScholarshipAward ซึ่งจะมีคุณสมบัติตัวเอียงต่อไปนี้ที่ส่วนท้ายของการเชื่อมโยง:

  • CourseEnrollment ได้รับทุนการศึกษา [0..*] Scholarship
  • Scholarship การรับการลงทะเบียนหลักสูตร [0..*] CourseEnrollment

ด้วยข้อตกลงนี้ Scholarship สามารถมอบให้กับการรวมกันของ Student และ Course

person Jim L.    schedule 29.05.2017