Pambuka
Aku mikir kabeh wong wis krungu ing kanak-kanak ujar kaya " Ukur kaping pindho, potong sepisan ." Iku padha ing pemrograman. Iku tansah luwih apik kanggo mikir babagan implementasine sadurunge nglampahi wektu nglakokaké. Asring sajrone implementasine sampeyan kudu nggawe kelas lan nggawe interaksi. Lan asring perwakilan visual iki bisa mbantu ngatasi masalah kanthi cara sing paling bener. Iki ngendi UML mbantu kita .Apa UML?
Yen sampeyan ndeleng gambar ing mesin telusuran, bakal dadi jelas yen UML minangka diagram, panah lan kotak. Sing penting UML nerjemahake menyang Unified Modeling Language . Tembung Unified penting ing kene. Tegese, gambar kita bakal dingerteni ora mung dening kita, nanging uga wong liya sing ngerti UML. Pranyata iki minangka basa internasional kanggo nggambar diagram.
Minangka Wikipedia ngandika
UML minangka basa deskripsi grafis kanggo model obyek ing pangembangan piranti lunak, model proses bisnis, desain sistem, lan nampilake struktur organisasi.Bab sing paling menarik sing ora saben wong mikir utawa ngerti yaiku UML duwe spesifikasi. Kajaba iku, ana uga spesifikasi UML2. Rincian liyane babagan spesifikasi bisa ditemokake ing situs web Object Management Group . Bener, klompok iki ngembangake spesifikasi UML. Sampeyan uga menarik yen UML ora diwatesi kanggo njlèntrèhaké struktur kelas. Ana akeh jinis diagram UML. A gambaran Brief saka jinis diagram UML bisa katon ing Wikipedia padha: diagram UML utawa ing video dening Timur Batyrshinov Review saka diagram UML . UML uga akeh digunakake kanggo njlèntrèhaké macem-macem proses, contone ing kene: Single sign-on nggunakake JWT . Bali menyang nggunakake diagram kelas UML, iku worth kang lagi nyimak buku Head First: Design Patterns , kang pola sing digambarke dening sing padha diagram UML. Pranyata UML pancen digunakake. Lan ternyata kawruh lan pangerten babagan aplikasi kasebut minangka katrampilan sing migunani.
Aplikasi
Ayo goleki carane sampeyan bisa nggarap UML sing padha saka IDE. Ayo dadi njupuk IntelliJ Idea minangka IDE . Yen kita nggunakake IntelliJ Idea Ultimate , kita bakal duwe plugin " Dhukungan UML " diinstal metu saka kothak. Ngidini sampeyan nggawe diagram kelas sing apik kanthi otomatis. Contone, nggunakake Ctrl + N utawa item menu "Navigasi" -> "Kelas" kita pindhah menyang kelas ArrayList . Saiki, liwat menu konteks kanggo 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 bakal entuk rong kothak sing makili kelas. Kaya sing dingerteni, loro kelas kasebut ngetrapake antarmuka List. Hubungan kelas iki diarani implementasi. Kanggo nggambarake sambungan kasebut, gunakake panah kanthi garis burik. Ayo digambarake:
interface List
List <|.. ArrayList
List <|.. LinkedList
List
- salah sawijining kelas bocah Collection
. Sing, iku warisan saka Koleksi. Sambungan iki diarani generalisasi. Iku katon kaya panah karo baris terus-terusan biasa. Ayo digambarake:
interface Collection
Collection <|-- List
Kanggo jinis sambungan ing ngisor iki, tambahake katrangan kelas babagan ArrayList
entri babagan paket pribadi unsur:
~Object[] elementData
Saiki kita pengin nuduhake apa sing ArrayList
ngemot sawetara obyek. Ing kasus iki, jinis sambungan bakal dadi agregasi . Unit ing kasus iki ArrayList
, amarga isine obyek liyane. Kita milih agregasi amarga obyek ing dhaptar bisa urip tanpa dhaptar: dudu bagean integral. Umure ora ana gandhengane karo umur dhaptar. Agregat diterjemahake saka basa Latin minangka "dirakit," yaiku, sing digawe saka sesuatu. Contone, ing urip ana unit pumping, kang kasusun saka pump lan motor. Unit kasebut dhewe bisa dibongkar, ninggalake sawetara komponen. Contone, kanggo ngedol utawa sijine menyang unit liyane. Mangkono uga dhaptar. Lan iki ditulis ing wangun berlian kosong cedhak unit lan baris terus. Ayo digambarake kaya mangkene:
class Object{
}
ArrayList o- Object
Saiki kita pengin nuduhake yen, ora kaya ArrayList
, kelas kasebut LinkedList
ngemot Node
wadhah sing nuduhake data sing disimpen. Ing kasus iki, Node
dheweke dadi bagean saka awake dhewe LinkedList
lan ora bisa urip kanthi kapisah. Node
ora langsung disimpen isi, nanging mung ngemot link menyang. Contone, nalika kita nambah menyang LinkedList
larik, kita nambah anyar Node
, kang ngemot link menyang larik, uga link menyang sadurungé lan sabanjuré Node
. Jenis komunikasi iki diarani komposisi . Kanggo nampilake komposit (sing kasusun saka bagean), digambar berlian berwarna, kanthi garis sing terus-terusan. Ayo saiki nulis iki minangka tampilan teks sambungan:
class Node{
}
LinkedList *-- Node
Lan saiki kita kudu sinau carane nampilake jinis hubungan penting liyane - hubungan dependensi . Iki digunakake nalika siji kelas nggunakake liyane, lan kelas ora ngemot kelas digunakake lan dudu turunane. Contone, LinkedList
padha ArrayList
ngerti carane nggawe ListIterator
. Ayo ditampilake minangka panah kanthi garis putus-putus:
class ListIterator
ListIterator <... ArrayList : create
ListIterator <... LinkedList : create
Sawise kabeh iki bakal katon kaya iki:
Otomasi
Ana macem-macem cara kanggo nggawe diagram PlantUML kanthi otomatis. Contone, Idea duwe plugin SketchIT , nanging ora nggambar kanthi bener. Contone, implementasine antarmuka ora digambar kanthi bener (ditampilake minangka warisan). Ana uga conto ing Internet babagan carane nggawe iki dadi siklus urip proyek sampeyan. Ayo ana conto kanggo Maven nggunakake uml-java-docklet . Kanggo nuduhake carane iki rampung, kita bakal nggunakake Maven Archetype kanggo cepet nggawe project Maven. Ayo nglakokake printah:mvn archetype:generate
Yen dijaluk milih saringan ( Pilih nomer utawa aplikasi filter ), ninggalake standar kanthi mung mencet Ketik. Iki mesthi " maven-archetype-quickstart ". Pilih versi paling anyar. Sabanjure, kita mangsuli pitakon lan ngrampungake nggawe proyek kasebut:
mvn clean install
dumunung: lan mvn javadoc:javadoc
. Saiki, yen kita mbukak dokumentasi sing digawe (target panjelajah\site\apidocs\index.html), kita bakal weruh diagram UML. Miturut cara, implementasine wis ditampilake kanthi bener ing kene)
GO TO FULL VERSION