Simbol diagram kelas UML untuk fungsi tingkat atas

13

Dalam notasi diagram kelas UML, bagaimana cara menunjukkan fungsi tingkat atas yang tidak memiliki kelas enkapsulasi atau struktur lainnya?

misalnya saya memiliki fungsi yang digunakan untuk mengambil data dari URL. Karena ini adalah fungsi (dalam arti matematika) hanya parameter dan keadaan global bersama, fungsi tidak dimasukkan ke dalam kelas tetapi dibiarkan sebagai metode tingkat atas.

Namun sekarang, saya perlu membuat diagram UML untuk program yang menggunakannya, dan saya tidak dapat menemukan apa pun tentang cara menunjukkan fungsi tingkat atas. Bagaimana saya melakukan ini?

AJMansfield
sumber
Anda dapat memodelkannya sebagai staticmetode kelas khusus yang disebut egglobal
xmojmr
1
Jawaban di bawah ini bagus. Namun, daripada memanggil kelas atau stereotip "global", saya pikir "StandaloneFunction" lebih baik karena sangat eksplisit untuk maksud Anda. Dengan mengatakan itu, IMO akan lebih baik untuk meletakkan fungsi "tingkat atas" dalam namespace bernama baik yang memungkinkan untuk mengatur fungsi dan kemudian memberi Anda kelas untuk menempatkannya. Dengan demikian, menempatkan fungsi dalam namespace yang disebut UrlUtilities jauh lebih unggul daripada hanya memiliki fungsi "tingkat atas" ini. Tetapi sekali lagi, pada titik ini Anda mungkin juga meletakkannya di kelas UrlUtilities sebagai metode statis yang merupakan pilihan terbaik.
Dunk

Jawaban:

10

Bahasa UML tidak mendukung gagasan fungsi yang berdiri sendiri. Dalam UML, semua fungsi harus menjadi bagian dari kelas.

Sebagai solusi, Anda dapat memodelkan fungsi yang berdiri sendiri sebagai anggota statis kelas yang terkait erat dengannya. Jika tidak ada kelas seperti itu, maka Anda bisa memodelkan fungsi-fungsi itu sebagai bagian dari kelas dummy, seperti globalkelas yang disebutkan oleh @xmojmr di komentar.

Bart van Ingen Schenau
sumber
7

Buat stereotip yang bisa Anda lampirkan ke classifier "class", mis <<global function>>. , . Anda kemudian dapat membuat "kelas" stereotip tunggal untuk setiap fungsi global yang berisi satu operasi statis yang ditentukan sepenuhnya.

Stereotip yang saya usulkan memberi tahu orang yang membaca diagram untuk menafsirkan pengklasifikasi sebagai fungsi. Persegi panjang (dengan stereotip) pada diagram yang diberikan akan mewakili fungsi tunggal, sedangkan dependensinya mewakili ketergantungan fungsi tunggal itu.

Doug Knesek
sumber
Saya mengalami kesulitan melihat bagaimana jawaban Anda berbeda dari jawaban Bart ...
Adam Zuckerman
3
@AdamZuckerman - Bart menciptakan kelas tunggal yang disebut "global" yang menggabungkan semua fungsi global, sehingga sulit untuk mengetahui fungsi dan dependensi global mana yang berlaku dalam konteks pemberian. Stereotipe yang saya usulkan memberitahu orang yang membaca diagram untuk menafsirkan kelas sebagai fungsi saja. Persegi panjang kelas (dengan stereotip) akan mewakili fungsi tunggal, sedangkan dependensinya mewakili dependensi dari fungsi tunggal itu.
Doug Knesek