JavaRush /Blog Jawa /Random-JV /UML: saka teori nganti praktik
Viacheslav
tingkat

UML: saka teori nganti praktik

Diterbitake ing grup

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.

UML: saka teori nganti praktik - 1

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:
UML: saka teori nganti praktik - 2
Nanging yen sampeyan pengin nggambar dhewe, lan sampeyan ora duwe versi Ultimate Idea? Yen kita nggunakake IntelliJ Idea Community Edition, kita ora duwe pilihan liyane. Kanggo nindakake iki, sampeyan kudu ngerti carane diagram UML kuwi wis kabentuk. Pisanan, kita kudu nginstal Graphviz . Iki minangka sakumpulan utilitas kanggo nggambarake grafik. Iki digunakake dening plugin sing bakal digunakake. Sawise instalasi, sampeyan kudu nambah direktori bin saka direktori instalasi Graphviz menyang variabel lingkungan PATH . Sawise iku, ing IntelliJ Idea, pilih File -> Setelan saka menu. Ing jendhela "Setelan", pilih kategori "Plugins", klik tombol "Browse repositories" lan nginstal plugin integrasi PlantUML . Napa PlantUML apik banget ? Iki nggunakake basa deskripsi grafik sing diarani " titik " kanggo njlèntrèhaké UML lan iki ngidini dadi luwih universal, amarga ... Basa iki ora mung digunakake dening PlantUML. Kajaba iku, kabeh sing ditindakake ing ngisor iki bisa ditindakake ora mung ing IDE, nanging uga ing layanan online planttext.com . Sawise nginstal plugin PlantUML, kita bakal bisa nggawe diagram UML liwat "File" -> "Anyar". Ayo nggawe diagram saka jinis "kelas UML". Sajrone proses iki, cithakan kanthi conto digawe kanthi otomatis. Ayo mbusak isine lan nggawe dhewe, bersenjata karo artikel saka Habr: Hubungan kelas - saka UML nganti kode . Lan kanggo mangerteni carane nggambarake iki ing teks, ayo njupuk manual PlantUML: plantuml class-diagram . Ing wiwitan ana tabel sing nuduhake carane sambungan kudu diterangake:
UML: saka teori nganti praktik - 3
Kita uga bisa ndeleng sambungan dhewe ing kene: " Hubungan antarane kelas ing UML. Conto ." Adhedhasar materi kasebut, ayo miwiti nggawe diagram UML. Ayo nambahake konten ing ngisor iki sing nggambarake rong kelas kasebut:

@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 ArrayListentri babagan paket pribadi unsur:
~Object[] elementData
Saiki kita pengin nuduhake apa sing ArrayListngemot 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 LinkedListngemot Nodewadhah sing nuduhake data sing disimpen. Ing kasus iki, Nodedheweke dadi bagean saka awake dhewe LinkedListlan ora bisa urip kanthi kapisah. Nodeora langsung disimpen isi, nanging mung ngemot link menyang. Contone, nalika kita nambah menyang LinkedListlarik, 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, LinkedListpadha ArrayListngerti 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:
UML: saka teori nganti praktik - 4
Sampeyan bisa pindhah menyang minangka akeh rinci minangka perlu. Kabeh sebutan dituduhake ing kene: " PlantUML - Diagram Kelas ". Kajaba iku, ora ana sing gaib kanggo nggambar diagram kasebut, lan nalika nggarap tugas, sampeyan bisa kanthi cepet nggambar kanthi tangan. Iki bakal ngembangake katrampilan mikir babagan arsitektur aplikasi lan mbantu sampeyan ngenali cacat struktur kelas ing awal, tinimbang sawise sampeyan nginep ing dina kanggo ngetrapake model sing salah. Aku sing alesan apik kanggo menehi cobi? )
UML: saka teori nganti praktik - 5

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:
UML: saka teori nganti praktik - 6
Wiwit Maven dudu fokus artikel iki, jawaban kanggo pitakonan Maven sampeyan bisa ditemokake ing Pusat Pangguna Maven . Ing proyek sing digawe, bukak file deskripsi proyek, pom.xml, kanggo nyunting . Ayo nyalin isi saka katrangan babagan nginstal uml-java-docklet menyang . Artefak sing digunakake ing deskripsi ora bisa ditemokake ing gudang Maven Central. Nanging bisa kanggo kula karo iki: https://mvnrepository.com/artifact/com.chfourie/uml-java-doclet/1.0.0 . Sing, ing gambaran sing sampeyan mung kudu ngganti groupId saka " info.leadinglight "karo " com.chfourie "lan nyetel versi kanggo " 1.0.0 ". Sawise iki, kita bisa nglakokaké printah iki ing direktori ngendi file pom.xmlmvn 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)

Kesimpulan

Kaya sing sampeyan ngerteni, UML ngidini sampeyan nggambarake struktur aplikasi sampeyan. Kajaba iku, UML ora mung iki. Nggunakake UML, sampeyan bisa njlèntrèhaké macem-macem proses ing perusahaan utawa njlèntrèhaké proses bisnis ing ngendi fungsi sing sampeyan tulis. Sepira migunani UML kanggo sampeyan dhewe, sampeyan kudu mutusake, nanging njupuk wektu kanggo maca kanthi luwih rinci bakal migunani ing kasus apa wae. #Viacheslav
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION