Yani’s Weblog

it’s all about software engineering…

OOD: Association between objects

Seperti telah dijelaskan sebelumnya, asosiasi memodelkan komunikasi antar objek saat run-time. Seperti halnya objek yang kita instansiasi dari kelasnya, maka saat run time, akan terbentuk instans dari asosisasi yang disebut link. Link ini bisa terbentuk dan terputus secara dinamis selama eksekusi. Asosiasi menggambarkan bahwa sebuah objek menggunakan fasilitas objek lainnya; misalnya mengakses atributnya atau memanggil salah satu method-nya.

Ada dua jenis khusus asosisasi:

  • agregasi; sebuah objek “berisi” objek yang lain; sebuah objek (whole) merupakan agregat (gabungan) dari beberapa objek yang lain (parts)…
  • komposisi; bentuk khusus dari agregasi dengan kepemilikan yang lebih kuat (strong ownership); objek-objek parts dimiliki oleh hanya satu objek whole; saat objek whole ‘hilang’ dari memori, maka seluruh objek part-nya ikut ‘hilang’…

Sebuah asosiasi bisa kita lengkapi informasi tambahan berupa nama asosiasi, role suatu objek pada setiap asosiasi, serta multiplicity-nya (1:1, 1:N, N:M, dst). Nama dan role akan membantu pemahaman kita terhadap model (mis. pada diagram kelas). Multiplicity memberikan gambaran jumlah link yang mungkin terbentuk saat run time.

Apakah model design kita harus selengkap ini ?

Sekali lagi, model yang lengkap akan membantu kita saat akan merancang setiap kelas lebih detil lagi (detail design), sehingga akhirnya siap dipetakan ke bahasa pemrograman tertentu…

Dan satu lagi, model yang baik adalah model yang secara komprehensif menyatakan persoalan yang sebenarnya, serta mudah dipahami (aspek readability)…

January 13, 2009 Posted by yaniwid | design | | 4 Comments