CodeGym /Java Blog /Acak /Diagram Kelas UML
John Squirrels
Level 41
San Francisco

Diagram Kelas UML

Dipublikasikan di grup Acak

Perkenalan

Saya pikir semua orang pernah mendengar pepatah "Ukur dua kali, potong sekali". Itu saran yang benar dalam pemrograman. Itu selalu lebih baik untuk memikirkan penerapannya sebelum Anda menghabiskan waktu untuk melaksanakannya. Selama implementasi, Anda sering perlu membuat kelas dan memikirkan bagaimana mereka akan berinteraksi. Representasi visual dari semua itu seringkali dapat membantu Anda menemukan solusi yang paling tepat. Di sinilah Diagram Kelas UML membantu kami.

Apa itu UML?

Jika Anda melihat gambar yang relevan di mesin pencari, Anda akan melihat bahwa UML ada hubungannya dengan diagram, panah, dan kotak. Perlu Anda ketahui bahwa UML adalah singkatan dari Unified Modelling Language. Bersatu adalah kata penting di sini. Artinya, gambar kita akan dipahami tidak hanya oleh kita, tetapi juga oleh siapa saja yang mengetahui UML. Ini adalah lingua franca untuk menggambar diagram.

Menurut Wikipedia,

"UML adalah tujuan umum, pengembangan, bahasa pemodelan di bidang rekayasa perangkat lunak yang dimaksudkan untuk menyediakan cara standar untuk memvisualisasikan desain sistem."
Hal yang paling menarik, yang tidak semua orang duga, adalah UML memiliki spesifikasi. Dan bahkan ada spesifikasi UML 2. Informasi lebih lanjut tentang spesifikasi tersedia di situs web Object Management Group . Bahkan, kelompok ini mengembangkan spesifikasi UML. Menarik juga bahwa UML tidak terbatas pada mendeskripsikan struktur kelas. Ada banyak jenis diagram UML. Wikipedia memiliki deskripsi singkat tentang berbagai jenis diagram UML: Diagram UML . Kembali ke diagram kelas UML, ada baiknya menyebutkan buku "Head First Design Patterns" , menggunakan diagram UML untuk mengilustrasikan pola desain. Intinya adalah UML benar-benar digunakan. Dan ternyata mengetahui dan memahami cara penggunaannya cukup bermanfaat.

Aplikasi

Mari kita cari tahu apakah kita bisa bekerja dengan UML dalam IDE. Kami akan menggunakan IntelliJ IDEA sebagai IDE kami. Jika Anda menggunakan IntelliJ IDEA Ultimate, maka kami akan menginstal plugin "Dukungan UML" "di luar kotak". Ini memungkinkan Anda secara otomatis menghasilkan diagram kelas yang indah. Misalnya, gunakan Ctrl+N atau item menu "Navigate" -> "Class" untuk masuk ke kelas ArrayList. Sekarang di menu konteks nama kelas, pilih "Diagram" -> "Show diagram popup". Hasilnya, kami mendapatkan diagram yang indah. UML: dari teori ke praktik - 2 Tetapi bagaimana jika Anda ingin menggambar sendiri diagramnya? Dan bagaimana jika Anda tidak memiliki versi Ultimate? Menggunakan Edisi Komunitas IntelliJ IDEA, kami tidak punya pilihan lain. Jadi kita perlu memahami bagaimana diagram UML diatur. Pertama,. Ini adalah seperangkat alat visualisasi grafik. Plugin yang akan kita gunakan bergantung padanya. Setelah instalasi, Anda perlu menambahkan direktori bin dari direktori instalasi Graphviz ke variabel lingkungan PATH. Setelah itu, di IntelliJ IDEA, pilih File -> Settings di menu. Di jendela "Pengaturan", pilih kategori "Plugin", klik tombol "Jelajahi repositori", dan instal plugin integrasi PlantUML . Apa kelebihan PlantUML? Ini menggambarkan UML menggunakan bahasa deskripsi grafik yang disebut "dot", yang membuatnya lebih universal, karena bahasa dot digunakan oleh lebih dari sekedar PlantUML. Terlebih lagi, semua yang kami lakukan di bawah ini dapat dilakukan tidak hanya dalam IDE, tetapi juga secara online di planttext.com. Setelah menginstal plugin PlantUML, kita dapat membuat diagram UML menggunakan "File" -> "New". Mari buat diagram "kelas UML". Ini secara otomatis akan menghasilkan template dengan contoh. Kami akan menghapus kontennya dan menambahkan konten kami sendiri. Untuk memahami cara merepresentasikannya dalam teks, lihat manual PlantUML: diagram kelas plantuml. UML: dari teori ke praktik - 3Dengan mengandalkan bahan-bahan ini, mari kita mulai membuat diagram UML kita. Tambahkan konten berikut, yang menjelaskan dua kelas:

@startuml
class ArrayList {
}
class LinkedList {
}
@enduml
Untuk melihat hasilnya di IDEA, pilih "View" -> "Tool Windows" -> "PlantUML". Kami hanya mendapatkan dua kotak yang mewakili kelas. Kita tahu bahwa kedua kelas ini mengimplementasikan antarmuka Daftar . Hubungan kelas ini disebut realisasi. Hubungan ini direpresentasikan menggunakan panah dengan garis putus-putus. Mari menggambarnya:

interface List
List <|.. ArrayList
List <|.. LinkedList
List adalah salah satu anak dari kelas Koleksi . Artinya, itu mewarisi Collection . Hubungan ini disebut generalisasi. Itu terlihat seperti panah dengan garis kontinu biasa. Mari menggambarnya:

interface Collection
Collection <|-- List
Untuk jenis hubungan berikutnya, tambahkan ke deskripsi kelas ArrayList sebuah entri tentang sebuah paket elemen array pribadi:

~Object[] elementData
Sekarang kami ingin menunjukkan bahwa ArrayList berisi beberapa objek. Dalam hal ini, akan ada hubungan agregasi. ArrayListadalah agregat, karena mengandung objek lain. Kami mengatakan agregasi karena objek daftar bisa ada tanpa daftar: mereka bukan bagian integral dari daftar. Masa hidup mereka tidak terikat dengan masa hidup daftar tersebut. Kata "agregat" berasal dari bahasa Latin dan diterjemahkan sebagai "dirakit", yaitu sesuatu yang terdiri dari sesuatu. Misalnya, dalam kehidupan kita memiliki rakitan pompa (agregat), yang terdiri dari pompa dan motor. Rakitannya sendiri dapat dibongkar, dan kita dapat membiarkan beberapa komponennya sendiri. Misalnya untuk dijual atau dimasukkan ke rakitan lain. Itu cara yang sama dalam daftar. Ini diekspresikan dengan belah ketupat kosong pada agregat dan garis kontinu. Kami akan mewakili ini sebagai berikut:

class Object{
}
ArrayList o- Object
Sekarang kami ingin menunjukkan bahwa tidak seperti ArrayList , kelas LinkedList berisi Node s — wadah yang mereferensikan data yang disimpan. Dalam hal ini, Node s adalah bagian dari LinkedList dan tidak memiliki eksistensi independen. Node bukanlah konten itu sendiri . Itu hanya berisi referensi ke konten. Misalnya, ketika kita menambahkan string ke LinkedList , kita menambahkan Node baru yang berisi referensi ke string tersebut, serta tautan ke Node sebelumnya dan berikutnya. Hubungan ini disebut komposisi. Itu digambarkan dengan menggambar garis kontinu dengan belah ketupat yang diisi pada komposit (sesuatu yang terbuat dari bagian-bagian penyusunnya). Sekarang kita akan merepresentasikan hubungan sebagai teks:

class Node{
}
LinkedList *-- Node
Dan sekarang Anda perlu mempelajari cara menggambarkan jenis hubungan penting lainnya: ketergantungan. Ini digunakan ketika satu kelas menggunakan yang lain, tetapi kelas tersebut tidak mengandung atau mewarisi kelas yang digunakan. Misalnya, LinkedList dan ArrayList mengetahui cara membuat ListIterator . Kami mewakili ini sebagai panah dengan garis putus-putus:

class ListIterator
ListIterator <... ArrayList : create
ListIterator <... LinkedList : create
Setelah melakukan semua ini, kami mendapatkan: UML: dari teori ke praktik - 4Anda dapat menambahkan detail sebanyak yang diperlukan. Tentu saja, tidak ada yang supranatural dalam menggambar diagram seperti itu. Saat mengerjakan tugas Anda sendiri, Anda dapat dengan cepat menggambarnya dengan tangan. Ini akan membantu Anda mengembangkan kemampuan untuk memikirkan arsitektur aplikasi dan mengidentifikasi kekurangan dalam struktur kelas sejak awal, bukan setelah Anda menghabiskan hari menerapkan model yang salah. Itu sepertinya alasan yang bagus untuk mencobanya, bukan? :)

Otomatisasi

Ada berbagai cara untuk membuat diagram PlantUML secara otomatis. Misalnya, IDEA memiliki plugin SketchIT , tetapi tidak sepenuhnya menggambar diagram dengan benar. Katakanlah implementasi antarmuka digambar dengan tidak benar (ditampilkan sebagai warisan). Internet memiliki contoh cara mengintegrasikan ini ke dalam proses pembangunan proyek Anda. Misalnya, Anda dapat menemukan cara menggunakan uml-java-docklet dengan Maven. Untuk mendemonstrasikan, kami akan menggunakan Pola Dasar Maven untuk membuat proyek Maven dengan cepat. Berlari

mvn archetype:generate
Menanggapi Pilih nomor atau terapkan filter, biarkan default — cukup tekan Enter. Itu akan selalu menjadi "maven-archetype-quickstart". Pilih versi terbaru. Selanjutnya, kami akan menjawab beberapa pertanyaan dan menyelesaikan pembuatan proyek: UML: dari teori ke praktik - 5Maven bukan subjek artikel ini, sehingga Anda dapat menemukan jawaban atas pertanyaan Anda tentang Maven di Pusat Pengguna Maven . Di proyek yang dibuat, buka file deskripsi proyek, pom.xml, untuk diedit. Kami akan menyalin konten dari deskripsi pemasangan uml-java-docklet ke file ini. Artefak yang digunakan dalam deskripsi tidak dapat ditemukan di repositori Maven Central. Tetapi yang berikut ini berhasil untuk saya: https://mvnrepository.com/artifact/com.chfourie/uml-java-doclet/1.0.0. Dengan kata lain, dalam deskripsi Anda hanya perlu mengganti groupId dari "info.leadinglight" menjadi "com.chfourie" dan menyetel versinya ke "1.0.0". Setelah itu, kita dapat mengeksekusi perintah berikut di direktori dengan file pom.xml:

mvn clean install
Dan

mvn javadoc: javadoc
Jika sekarang kita membuka dokumentasi yang dihasilkan (explorer target\site\apidocs\index.html), kita akan melihat diagram UML. Omong-omong, hubungan implementasi sekarang ditampilkan dengan benar :)

Kesimpulan

Seperti yang Anda lihat, UML memungkinkan Anda memvisualisasikan struktur aplikasi Anda. Tetapi UML dapat melakukan lebih banyak lagi. Anda dapat menggunakan UML untuk mendeskripsikan berbagai proses dalam perusahaan Anda atau untuk mendeskripsikan proses bisnis yang mencakup fungsi yang sedang Anda tulis. Anda harus memutuskan sendiri seberapa berguna UML bagi Anda secara pribadi, tetapi apa pun yang Anda putuskan, akan sangat membantu jika Anda meluangkan waktu untuk mempelajarinya lebih lanjut.
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION