CodeGym /Blog Jawa /Acak /Diagram Kelas UML
John Squirrels
tingkat
San Francisco

Diagram Kelas UML

Diterbitake ing grup

Pambuka

Aku kabeh wis krungu paribasan "Ukur kaping pindho, potong sepisan". Iku saran bener ing program. Iku tansah luwih apik kanggo mikir babagan implementasine sadurunge nglampahi sembarang wektu nindakake. Sajrone implementasine, sampeyan kerep kudu nggawe kelas lan mikir carane bakal sesambungan. Perwakilan visual kabeh bisa mbantu sampeyan nemokake solusi sing paling bener. Iki ngendi Diagram Kelas UML teka kanggo bantuan kita.

Apa UML?

Yen sampeyan ndeleng gambar sing cocog ing mesin telusur, sampeyan bakal weruh manawa UML ana hubungane karo diagram, panah lan kotak. Sampeyan kudu ngerti yen UML iku singkatan saka Unified Modeling Language. Unified minangka tembung penting ing kene. Iki tegese gambar kita bakal dingerteni ora mung dening kita, nanging uga wong liya sing ngerti UML. Iki minangka lingua franca kanggo nggambar diagram.

Miturut Wikipedia,

"UML minangka tujuan umum, pangembangan, basa model ing bidang rekayasa piranti lunak sing dimaksudake kanggo nyedhiyakake cara standar kanggo nggambarake desain sistem."
Sing paling menarik, sing ora saben wong bisa ngira, yaiku UML duwe spesifikasi. Lan malah ana spesifikasi UML 2. Informasi luwih lengkap babagan spesifikasi kasedhiya ing situs web Object Management Group . Nyatane, klompok iki ngembangake spesifikasi UML. Sampeyan uga menarik yen UML ora diwatesi kanggo njlèntrèhaké struktur kelas. Ana akeh jinis diagram UML. Wikipedia nduweni katrangan ringkes babagan macem-macem jinis diagram UML: diagram UML . Bali menyang diagram kelas UML, iku worth sebutno buku "Pola Desain Kepala First" , nggunakake diagram UML kanggo ilustrasi pola desain. Ing ngisor iki UML pancen digunakake. Lan ternyata ngerti lan ngerti carane nggunakake cukup migunani.

Aplikasi

Ayo ngerteni manawa kita bisa nggarap UML ing IDE. Kita bakal nggunakake IntelliJ IDEA minangka IDE kita. Yen sampeyan nggunakake IntelliJ IDEA Ultimate, kita bakal duwe plugin "Dhukungan UML" diinstal "metu saka kothak". Ngidini sampeyan nggawe diagram kelas sing apik kanthi otomatis. Contone, gunakake Ctrl + N utawa item menu "Navigasi" -> "Kelas" kanggo pindhah menyang kelas ArrayList. Saiki ing menu konteks jeneng kelas, pilih "Diagram" -> "Show diagram popup". Akibaté, kita entuk diagram sing apik. UML: saka teori nganti praktik - 2 Nanging apa yen sampeyan pengin nggambar diagram dhewe? Lan apa yen sampeyan ora duwe versi Ultimate? Nggunakake IntelliJ IDEA Community Edition, kita ora duwe pilihan liyane. Dadi, kita kudu ngerti carane diagram UML diatur. pisanan,. Iki minangka set alat visualisasi grafik. Plugin sing bakal digunakake gumantung saka iku. Sawise instalasi, sampeyan kudu nambah direktori bin saka direktori instalasi Graphviz menyang variabel lingkungan PATH. Sawise iku, ing IntelliJ IDEA, pilih File -> Setelan ing menu. Ing jendhela "Setelan", pilih kategori "Plugins", klik tombol "Browse repositories", lan nginstal plugin integrasi PlantUML . Apa sing apik babagan PlantUML? Iki nggambarake UML nggunakake basa deskripsi grafik sing diarani "titik", sing ndadekake luwih universal, amarga basa titik digunakake luwih saka mung PlantUML. Apa maneh, kabeh sing ditindakake ing ngisor iki bisa ditindakake ora mung ing IDE, nanging uga online ing planttext.com. Sawise nginstal plugin PlantUML, kita bakal bisa nggawe diagram UML nggunakake "File" -> "Anyar". Ayo nggawe diagram "kelas UML". Iki bakal kanthi otomatis ngasilake cithakan kanthi conto. Kita bakal mbusak isine lan nambah dhewe. Kanggo mangerteni carane makili iki ing teks, deleng manual PlantUML: plantuml class-diagram. UML: saka teori nganti praktik - 3Ngandelake materi kasebut, ayo miwiti nggawe diagram UML. Tambah konten ing ngisor iki, sing nggambarake rong kelas:

@startuml
class ArrayList {
}
class LinkedList {
}
@enduml
Kanggo ndeleng asil ing IDEA, pilih "View" -> "Tool Windows" -> "PlantUML". Kita mung entuk rong kotak sing makili kelas. Kita ngerti yen loro kelas kasebut ngetrapake antarmuka List . Hubungan kelas iki diarani realisasi. Hubungan iki diwakili nggunakake panah kanthi garis burik. Ayo digambar:

interface List
List <|.. ArrayList
List <|.. LinkedList
Dhaptar minangka salah sawijining bocah saka kelas Koleksi . Sing, iku warisan Koleksi . Hubungan iki diarani generalisasi. Iku katon kaya panah karo garis terusan biasa. Ayo digambar:

interface Collection
Collection <|-- List
Kanggo jinis hubungan sabanjure, tambahake katrangan kelas ArrayList entri babagan paket pribadi unsur:

~Object[] elementData
Saiki kita pengin nuduhake yen ArrayList ngemot sawetara obyek. Ing kasus iki, bakal ana hubungan agregasi. ArrayListminangka agrégat, amarga ngemot obyek liyane. Kita ngomong agregasi amarga obyek dhaptar bisa ana tanpa dhaptar: dudu bagean integral saka dhaptar. Umure ora diikat karo umur dhaptar. Tembung "agregat" asale saka basa Latin lan diterjemahake minangka "dirakit", yaiku, sing digawe saka sesuatu. Contone, ing urip, kita duwe Déwan pump (agregat), kang kasusun saka pump lan motor. Déwan dhewe bisa disassembled, lan kita bisa ninggalake sawetara saka sawijining komponen piyambak. Contone, kanggo ngedol utawa sijine menyang perakitan liyane. Cara sing padha ing dhaptar. Iki dituduhake kanthi rombus kosong ing agregat lan garis sing terus-terusan. Kita bakal makili iki minangka nderek:

class Object{
}
ArrayList o- Object
Saiki kita pengin nuduhake yen ora kaya ArrayList , kelas LinkedList ngemot Node s - wadhah sing ngrujuk data sing disimpen. Ing kasus iki, Node s minangka bagéan saka LinkedList lan ora duwe eksistensi independen. A Node dudu isi kasebut dhewe. Iku mung ngemot referensi kanggo isi. Contone, nalika kita nambah string menyang LinkedList , kita nambah Node anyar sing ngemot referensi kanggo string, uga link menyang Node sadurunge lan sabanjure.. Hubungan iki diarani komposisi. Iki digambarake kanthi nggambar garis sing terus-terusan kanthi rombus sing diisi ing komposit (sesuatu sing digawe saka bagean konstituen). Saiki kita bakal makili hubungan minangka teks:

class Node{
}
LinkedList *-- Node
Lan saiki sampeyan kudu sinau carane nggambarake jinis hubungan penting liyane: ketergantungan. Iki digunakake nalika siji kelas nggunakake liyane, nanging kelas ora ngemot utawa warisan kelas digunakake. Contone, LinkedList lan ArrayList ngerti carane nggawe ListIterator . Kita makili iki minangka panah kanthi garis putus-putus:

class ListIterator
ListIterator <... ArrayList : create
ListIterator <... LinkedList : create
Sawise nindakake kabeh iki, kita njaluk: UML: saka teori nganti praktik - 4Sampeyan bisa nambah minangka akeh rinci minangka perlu. Mesthine, ora ana sing gaib babagan nggambar diagram kasebut. Nalika nggarap tugas dhewe, sampeyan bisa kanthi cepet nggambar kanthi tangan. Iki bakal mbantu sampeyan ngembangake kemampuan kanggo mikir babagan arsitektur aplikasi lan ngenali kekurangan ing struktur kelas ing awal, ora sawise sampeyan wis ngginakaken dina ngleksanakake model sing salah. Iku misale jek kaya alesan sing apik kanggo nyoba, ta? :)

Otomasi

Ana macem-macem cara kanggo nggawe diagram PlantUML kanthi otomatis. Contone, IDEA duwe plugin SketchIT , nanging ora nggambar diagram kanthi bener. Contone, implementasine antarmuka ora digambar kanthi bener (ditampilake minangka warisan). Internet duwe conto carane nggabungake iki menyang proses mbangun proyek sampeyan. Contone, sampeyan bisa nemokake carane nggunakake uml-java-docklet karo Maven. Kanggo nduduhake, kita bakal nggunakake Maven Archetype kanggo nggawe proyek Maven kanthi cepet. Mlayu

mvn archetype:generate
Nanggepi Pilih nomer utawa aplikasi filter, ninggalake standar - mung pencet Ketik. Bakal mesthi "maven-archetype-quickstart". Pilih versi paling anyar. Sabanjure, kita bakal mangsuli sawetara pitakonan lan rampung nggawe proyek: UML: saka teori nganti praktik - 5Maven dudu subyek artikel iki, supaya sampeyan bisa nemokake jawaban kanggo pitakonan sampeyan babagan Maven ing Pusat Pangguna Maven . Ing proyek sing digawe, bukak file deskripsi proyek, pom.xml, kanggo nyunting. Kita bakal nyalin isi saka katrangan panginstalan uml-java-docklet menyang file iki. Artefak sing digunakake ing katrangan ora bisa ditemokake ing gudang Maven Central. Nanging ing ngisor iki bisa digunakake kanggo kula: https://mvnrepository.com/artifact/com.chfourie/uml-java-doclet/1.0.0. Ing tembung liyane, ing gambaran sampeyan mung kudu ngganti groupId saka "info.leadinglight" kanggo "com.chfourie" lan nyetel versi kanggo "1.0.0". Sawise iku, kita bisa nglakokake printah ing ngisor iki ing direktori nganggo file pom.xml:

mvn clean install
lan

mvn javadoc: javadoc
Yen saiki mbukak dokumentasi sing digawe (target explorer\site\apidocs\index.html), kita bakal weruh diagram UML. Miturut cara, hubungan implementasine saiki ditampilake kanthi bener :)

Kesimpulan

Kaya sing sampeyan ngerteni, UML ngidini sampeyan nggambarake struktur aplikasi sampeyan. Nanging UML bisa nindakake luwih akeh. Sampeyan bisa nggunakake UML kanggo njlèntrèhaké macem-macem proses ing perusahaan sampeyan utawa kanggo njlèntrèhaké proses bisnis sing nyakup fungsi sing sampeyan tulis. Sampeyan kudu mutusake dhewe sepira migunani UML kanggo sampeyan, nanging ora preduli apa sing sampeyan pilih, golek wektu kanggo sinau luwih lengkap babagan iki bakal migunani.
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION