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.

@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: 
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: 
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 :)
GO TO FULL VERSION