Rekayasa Perangkat Lunak UML (Unified Modelling Language) Pertemuan 13 Khairul Anwar Hafizd khairul.anwarhafizd@gmail.com
Pengertian UML Pemodelan adalah suatu proses merancang perangkat lunak sebelum melakukan implementasi (coding). “Unified Modelling Language (UML) pada bidang ilmu komputer dan rekayasa perangkat lunak merupakan bahasa pemodelan standar, dimana standar tersebut dikelola dan diciptakan oleh object management group” – Siddique (2010, 1). “Unified Modelling Language (UML) merupakan elemen notasi grafis yang didukung oleh meta-model tunggal yang membantu pendeskripsian dan desain sistem perangkat lunak, khususnya sistem yang dibangun menggunakan program berorientasi objek” – Karyono (2013, 2)
Pengertian UML cont… UML (Unified Modeling Language) adalah sebuah bahasa yang berdasarkan grafik/gambar untuk memvisualisasi, menspesifikasikan, membangun, dan pendokumentasian dari sebuah sistem pengembangan software berbasis OO (Object-Oriented).
Maka dari beberapa pendapat para ahli di atas, dapat disimpulkan bahwa Unified modelling language (UML) merupakan bahasa yang digunakan untuk standar pemodelan seperti memvisualisasikan, menentukan, membangun dan mendokumentasikan arsitektur sistem perangkat lunak pada bidang ilmu komputer. Unified modelling language (UML) memiliki dua buah tipe diagram, yaitu diagram static (structural) dan diagram dynamic (behavioral).
UML dikembangkan untuk membantu para pengembang sistem dan software agar bisa menyelesaikan tugas-tugas seperti: Spesifikasi Visualisasi Desain arsitektur Konstruksi Simulasi dan testing Dokumentasi
Sejarah UML Grady Booch Object Oriented Design (OOD) Dr. James Rumbaugh Object Modeling Technique (OMT) Grady Booch + Dr. James Rumbaugh Unified Method Dr. Ivar Jacobson Oriented Software Engineering (OOSE) Rumbaugh-Booch + Dr. Ivar Jacobson Unified Modeling Language (UML) Ratinal Unified Process (RUP)
UML versi 1.1 Pada bulan September 1997 lahirlah UML versi 1.1, dengan 8 buah diagram, yaitu : Use case diagram Activity diagram Sequence diagram Collaboration diagram Class diagram Statechart diagram Component diagram Deployment diagram
UML versi 2.0 Pada tahun 2002 lahirlah UML versi 2.0, menjadi 13 buah diagram, dengan penambahan dan penggantian yaitu: Use Case Diagram Component Diagram Activity Diagram Deployment Diagram Sequence Diagram Composite Structure Diagram Communication Diagram (Collaboration diagram in versi 1.x) Interaction Overview Diagram Object Diagram Class Diagram Package Diagram State Machine Diagram (Statechart diagram in versi 1.x) Timing Diagram
Tujuan Penggunaan UML Memberikan bahasa pemodelan yang bebas dari berbagai bahas pemrograman dan proses rekayasa. Menyatukan praktek-praktek terbaik yang terdapat dalam pemodelan. Memberikan model yang siap pakai, bahsa pemodelan visual yang ekspresif untuk mengembangkan dan saling menukar model dengan mudah dan dimengerti secara umum. UML bisa juga berfungsi sebagai sebuah (blue print) cetak biru karena sangat lengkap dan detail. Dengan cetak biru ini maka akan bias diketahui informasi secara detail tentang coding program atau bahkan membaca program dan menginterpretasikan kembali ke dalam bentuk diagram (reserve enginering).
Bagian UML Bagian-bagian utama dari UML adalah view, diagram, model element, dan general mechanism. View View digunakan untuk melihat sistem yang dimodelkan dari beberapa aspek yang berbeda. Beberapa jenis view dalam UML antara lain : use case view, logical view, component view, concurrency view, dan deployment view. Use case View Mendeskripsikan fungsionalitas sistem yang seharusnya dilakukan sesuai yang diinginkan external actors. Actor yang berinteraksi dengan sistem dapat berupa user atau sistem lainnya. View ini digunakan terutama untuk pelanggan, perancang (designer), pengembang (developer), dan penguji sistem (tester).
Logical View Mendeskripsikan bagaimana fungsionalitas dari sistem, struktur statis (class, object, dan relationship ) dan kolaborasi dinamis yang terjadi ketika object mengirim pesan ke object lain dalam suatu fungsi tertentu. View ini digambarkan dalam class diagrams untuk struktur statis dan dalam state, sequence, collaboration, dan activity diagram untuk model dinamisnya. View ini digunakan untuk perancang (designer) dan pengembang (developer). Component View Mendeskripsikan implementasi dan ketergantungan modul. View ini digambarkan dalam component view dan digunakan untuk pengembang (developer).
Concurrency View Membagi sistem ke dalam proses dan prosesor. View ini digambarkan dalam diagram dinamis (state, sequence, collaboration, dan activity diagrams) dan diagram implementasi (component dan deployment diagrams) serta digunakan untuk pengembang (developer), pengintegrasi (integrator), dan penguji (tester). Deployment View Mendeskripsikan fisik dari sistem seperti komputer dan perangkat (nodes) dan bagaimana hubungannya dengan yang lain. View ini digambarkan dalam deployment diagrams dan digunakan untuk pengembang (developer), pengintegrasi (integrator), dan penguji (tester).
Building blocks 3 macam yang terdapat dalam building block adalah katagori benda/Things, hubungan, dan diagram. Benda/things adalah abstraksi yang pertama dalam sebuah model, hubungan sebagai alat komunikasi dari bendabenda, dan diagram sebagai kumpulan / group dari benda-benda/things.
Benda/Things Adalah hal yang sangat mendasar dalam model UML, juga merupakan bagian paling statik dari sebuah model, serta menjelaskan elemen-elemen lainnya dari sebuah konsep dan atau fisik. Bentuk dari beberapa benda/thing adalah sebagai berikut: Pertama, adalah sebuah kelas yang diuraikan sebagai sekelompok dari object yang mempunyai atribute, operasi, hubungan yang semantik. Sebuah kelas mengimplementasikan 1 atau lebih interfaces. Sebuah kelas dapat digambarkan sebagai sebuah persegi panjang, yang mempunyai sebuah nama, atribute, dan metoda pengoperasiannya, seperti terlihat dalam gambar.
Kedua, yang menggambarkan ‘interface’ merupakan sebuah antar-muka yang menghubungkan dan melayani antar kelas dan atau elemen. ‘Interface’ mendefinisikan sebuah set / kelompok dari spesifikasi pengoperasian, umumnya digambarkan dengan sebuah lingkaran yang disertai dengan namanya. Sebuah antar-muka berdiri sendiri dan umumnya merupakan pelengkap dari kelas atau komponen, seperti dalam gambar.
Ketiga, adalah collaboration yang didefinisikan dengan interaksi dan sebuah kumpulan / kelompok dari kelas-kelas/elemen-elemen yang bekerja secara bersama-sama. Collaborations mempunyai struktura dan dimensi. Pemberian sebuah kelas memungkinkan berpartisipasi didalam beberapa collaborations dan digambarkan dengan sebuah ‘elips’ dengan garis terpotong-potong.
Keempat, sebuah ‘use case’ adalah rangkaian/uraian sekelompok yang saling terkait dan membentuk sistem secara teratur yang dilakukan atau diawasi oleh sebuah aktor. ‘use case’ digunakan untuk membentuk tingkah-laku benda/ things dalam sebuah model serta di realisasikan oleh sebuah collaboration. Umumnya ‘use case’ digambarkan dengan sebuah ‘elips’ dengan garis yang solid, biasanya mengandung nama, seperti terlihat dalam gambar
Kelima, sebuah node merupakan fisik dari elemen-elemen yang ada pada saat dijalankannya sebuah sistem, contohnya adalaha sebuah komputer, umumnya mempunyai sedikitnya memory dan processor. Sekelompok komponen mungkin terletak pada sebuah node dan juga mungkin akan berpindah dari node satu ke node lainnya. Umumnya node ini digambarkan seperti kubus serta hanya mengandung namanya, seperti terlihat dalam gambar
Hubungan / Relationship Ada 4 macam hubungan didalam penggunaan UML, yaitu; dependency, association, generalization, dan realization. Pertama, sebuah dependency adalah hubungan semantik antara dua benda/things yang mana sebuah benda berubah mengakibatkan benda satunya akan berubah pula. Umumnya sebuah dependency digambarkan sebuah panah dengan garis terputus-putus seperti terlihat dalam gambar Kedua, sebuah association adalah hubungan antar benda struktural yang terhubung diantara obyek. Kesatuan obyek yang terhubung merupakan hubungan khusus, yang menggambarkan sebuah hubungan struktural diantara seluruh atau sebagian. Umumnya assosiation digambarkan dengan sebuah garis yang dilengkapi dengan sebuah label, nama, dan status hubungannya seperti terliahat dalam gambar
Ketiga, sebuah generalization adalah menggambarkan hubungan khusus dalam obyek anak/child yang menggantikan obyek parent / induk . Dalam hal ini, obyek anak memberikan pengaruhnya dalam hal struktur dan tingkah lakunya kepada obyek induk. Digambarkan dengan garis panah seperti terlihat dalam gambar Keempat, sebuah realization merupakan hubungan semantik antara pengelompokkan yang menjamin adanya ikatan diantaranya. Hubungan ini dapat diwujudkan diantara interface dan kelas atau elements, serta antara use cases dan collaborations. Model dari sebuah hubungan realization seperti terlihat dalam gambar