Penggunaan kelas asosiasi yang benar

Saya baru menggunakan UML dan saya tidak yakin apakah diagram saya benar. Saya ingin nasihat dari seseorang yang lebih berpengalaman dari saya.

Pernyataan masalah saya mengatakan:

Siswa mempelajari mata kuliah dan setiap siswa dapat mengambil beberapa mata kuliah “studi” masing-masing. Mata kuliah apa pun dapat memiliki lebih dari satu siswa yang mempelajarinya.

Siswa, yang diidentifikasi dengan kode numerik, memiliki nama, tanggal lahir dan satu atau lebih kewarganegaraan. Seorang siswa yang belajar dapat menerima beasiswa.

Seorang Siswa dapat menerima lebih dari satu beasiswa per kursus. Dan beasiswa perorangan dapat diberikan kepada lebih dari satu mahasiswa. Beasiswa memiliki kode numerik, yang mengidentifikasinya, nama, jumlah dasar dan kondisi berbeda yang harus dipenuhi pada saat penugasan.

Proposal saya adalah sebagai berikut: masukkan deskripsi gambar di sini

Yang saya inginkan adalah mewakili siswa, hibah, dan mata kuliah yang diambil siswa, dan saya tidak yakin apakah saya harus menggunakan hubungan asosiatif atau hubungan ternary.

Adakah yang bisa memastikan apakah diagram UML proposal saya benar?


person myhappycoding    schedule 26.05.2017    source sumber


Jawaban (3)


Satu-satunya pernyataan yang berhubungan langsung dengan pelajar, kursus & hibah adalah tidak jelas "[a s]siswa dapat menerima lebih dari satu hibah per kursus".

Ini sebenarnya hanya menyatakan bahwa setiap pasangan mahasiswa-mata kuliah dapat memiliki lebih dari satu hibah terkait. (Mungkin penulis tugas berpikir bahwa kalimat "per" mengatakan lebih dari itu, tapi sebenarnya tidak.) Siswa tidak mengatakan apakah hibah mereka bergantung pada kursus mereka, dan jika demikian bagaimana. Desain Anda paling baik jika diberi triplet, Anda tidak bisa mengetahui apa pun tentang triplet lainnya. Desain dengan Takes(student,course) & Accepts(student, course, grant) dengan FK (kunci asing) {student, course} dari Accepts to Takes adalah yang terbaik jika Anda mengenal pasangan mahasiswa & mata kuliah maka Anda mengetahui hibahnya . Jika hibah diberikan kepada siswa secara mandiri kursus maka desain dengan Takes(student,course) & Accepts(student,grant) sudah cukup.

Klarifikasi dengan instruktur Anda.

person philipxy    schedule 29.05.2017

Hampir. Elemen berbentuk permen (atau berlian) itu sendiri merupakan kelas asosiasi yang mengaitkan semua kelas yang terhubung. Yang Anda inginkan adalah kelas asosiasi sederhana antara Student dan Studies seperti ini:

masukkan deskripsi gambar di sini

Angka Scholarship mewakili ujian yang lulus oleh siswa dalam studi tertentu. Relasi kelas asosiasi ditunjukkan dengan garis putus-putus yang dihubungkan dengan asosiasi (yang mempunyai multiplisitas m-n).

person qwerty_so    schedule 26.05.2017
comment
Studies sepertinya bukan kelas yang valid bagi saya. - person Jim L.; 31.05.2017
comment
@JimL. Seharusnya itu adalah Course, menurutku. Saya cenderung memberikan jawaban yang agak ringkas di sini karena dalam banyak kasus model akan dibahas, itulah sebabnya UML digunakan. Jadi biasanya Anda tidak memiliki jawabannya melainkan bahan untuk dipikirkan. - person qwerty_so; 31.05.2017

Sebelum Anda mendapatkan atribut apa pun, saya tidak melihat korelasi antara kata benda dalam pernyataan masalah dan kelas Anda. Saya berharap untuk melihat kelas-kelas berikut:

  • Student
  • Course
  • Nationality
  • Scholarship

Saya juga berharap melihat kelas asosiasi, yang disebut CourseEnrollment, yang memiliki properti miring berikut di akhir asosiasi:

  • Student kursus yang dipelajari [1..*] Course
  • Course belajarSiswa [1..*] Student

Kelas asosiasi tersebut akan memiliki asosiasi lain dengan Scholarship, yang disebut ScholarshipAward, yang akan memiliki properti yang dicetak miring berikut di akhir asosiasi:

  • CourseEnrollment diberikan Beasiswa [0..*] Scholarship
  • Scholarship menerima Pendaftaran Kursus [0..*] CourseEnrollment

Dengan pengaturan ini, Scholarship dapat diberikan kepada kombinasi Student dan Course.

person Jim L.    schedule 29.05.2017