UML Tutorial

 Source UML tutorial

UML (Unified Modeling Languange)

    Uml adalah sekumpulan praktik rekayasa terbaik yang terbukti efektif dalam memodelkan system yang besar dan kompleks dan merupakan bagian yang sangat penting dari pengembangan perangkat lunak berorientasi objek UML. UML berfungsi membantu tim untuk berkomunikasi, mengeksplorisasi desain potential, dan memvalidasi desain arsitektur perangkat lunak. 

    Tujuan utama UML adalah menyediakan anotasi standar yang bisa digunakan oleh semua metode berbasis objek dan mengintegrasikan elemen terbaik dari notasi-notasi sebelumnya. UML dirancang untuk berbagai aplikasi, termasuk analisis sistem terdistribusi, desain sistem, dan penerapan (deployment). Oleh karena itu, UML menawarkan konstruksi yang bervariasi untuk berbagai sistem dan kegiatan.

    Diagram UML dapat dibagi menjadi dua jenis utama: diagram struktur dan diagram perilaku. Diagram struktur menggambarkan aspek statis dari sistem, sedangkan diagram perilaku fokus pada dinamika atau interaksi dalam sistem. Berikut adalah Beberapa Macam dari diagram struktur:

Composit struktur diagram

    Diagram struktur komposit digunakan untuk menggambarkan struktur internal dari beberapa kelas dan menunjukkan interaksi di antara mereka. Dalam diagram ini, Anda dapat merepresentasikan kelas bagian dalam dan menunjukkan hubungan antara kelas serta dalam kelas itu sendiri. Dengan kata lain, diagram struktur komposit menunjukkan bagian-bagian internal dari suatu kelas. Nama bagian biasanya dibentuk dengan pola: nama bagian diikuti oleh titik dua, kemudian jenis bagian, dan multiplicity dinyatakan di dalam tanda kurung kotak. Kelas-kelas yang digabungkan merupakan bagian dari suatu kelas, tetapi bagian tersebut tidak selalu berupa kelas. Bagian adalah elemen apa pun yang digunakan untuk membentuk kelas yang memuatnya.

    Misalnya, kita sedang memodelkan sistem untuk toko online di mana pelanggan dapat bergabung dengan program loyalitas yang memberikan mereka keuntungan, seperti pengiriman diskon. Untuk memungkinkan fitur tersebut, objek customer diperluas sehingga sekarang kita memiliki regular customer dan member of loyalty program.

    Diagram struktur komposit memberikan gambaran yang lebih jelas tentang store manager dari sudut pandang internal, bukan dari seluruh sistem. Store manager langsung memuat dua jenis objek, yaitu customer dan item, seperti yang ditunjukkan oleh dua panah komposisi pada diagram kelas. Dalam diagram struktur komposit ini, tipe kedua bagian dinyatakan sebagai customer, karena toko memperlakukan kedua objek tersebut sebagai objek customer. Kita juga melihat adanya konektor yang menunjukkan hubungan antara item dan order. Meskipun order tidak langsung terdapat di dalam kelas store manager, kita bisa menunjukkan hubungan dengan bagian-bagian yang tertanam di objek yang digabungkan olehnya.

Deployment diagram

    Diagram deployment dalam UML sangat penting untuk merepresentasikan topologi fisik suatu sistem saat runtime. Diagram ini menggambarkan bagaimana komponen perangkat lunak, node perangkat keras, dan saluran komunikasi diatur dan berinteraksi. Diagram ini sangat berguna untuk merencanakan arsitektur sistem embedded, sistem client-server, dan sistem terdistribusi. Berikut adalah penjelasan cara kerja diagram deployment untuk berbagai sistem:

  1. Sistem Embedded Identifikasi perangkat dan node yang unik untuk sistem tersebut. Gunakan mekanisme perluasan UML, seperti stereotype, untuk membedakan komponen perangkat keras dan perangkat lunak secara visual. Modelkan hubungan antara node perangkat keras dan proses perangkat lunak.
  2. Sistem Client-Server Modelkan prosesor klien dan server serta perangkat khusus seperti pembaca kartu kredit. Tampilkan topologi perangkat keras, dengan menyoroti hubungan antara node klien dan server serta komponen perangkat lunak yang mereka host.
  3. Sistem Terdistribusi Representasikan perangkat komunikasi jaringan pada tingkat detail yang cukup untuk analisis kinerja. Gunakan diagram paket UML untuk mengelompokkan node secara logis dan mensimulasikan topologi jaringan.

Packet diagram

    Diagram package biasanya digunakan ketika perlu untuk mengelompokkan elemen-elemen yang terkait dan menentukan lingkup nama mereka, atau ketika perlu memvisualisasikan dependensi antar bagian sistem. Diagram ini juga berguna untuk memberikan dukungan analisis atau menentukan urutan kompilasi. Diagram package digunakan untuk menyusun elemen-elemen sistem tingkat tinggi. Saat memodelkan diagram package, ada beberapa hal yang perlu diingat:

  1. Package adalah mekanisme UML untuk mengelompokkan elemen, termasuk package lain.
  2. Setiap package memiliki namespace sendiri, di mana semua nama harus unik.
  3. Setiap elemen model hanya boleh berada di dalam satu package, dan packages membentuk hierarki.

    Stereotype adalah klasifikasi tinggi suatu objek yang memberikan gambaran tentang apa objek itu. Kelas-kelas bisa dikelompokkan berdasarkan stereotype, yang ditulis dalam tanda sudut di atas nama kelas. Stereotype memungkinkan kita untuk memperluas UML agar sesuai dengan kebutuhan pemodelan kita.

Profile diagram

    Diagram profil adalah salah satu diagram struktural UML yang terkenal karena menyediakan mekanisme perluasan umum untuk menyesuaikan model UML bagi domain dan platform tertentu. Profil didefinisikan menggunakan stereotip, definisi nilai tag, dan batasan yang diterapkan pada elemen model tertentu, seperti kelas, atribut, operasi, dan tindakan. Sebuah profil adalah sekumpulan ekstensi yang secara bersama-sama mengonfigurasi UML untuk domain tertentu, misalnya dirgantara, medis, atau keuangan, atau untuk platform spesifik seperti J2EE atau .NET. Diagram profil memiliki tiga jenis mekanisme ekstensi utama: stereotip, tag, dan batasan.

  1. Stereotip memungkinkan kita memperluas kosakata UML. Stereotip digunakan untuk memperkenalkan blok bangunan baru yang sesuai dengan bahasa domain Anda dan terlihat primitif. Misalnya, ketika memodelkan jaringan, Anda mungkin membutuhkan anotasi untuk router, switch, hub, dll. Stereotip memungkinkan Anda membuat simbol-simbol ini muncul sesederhana mungkin.
  2. Tag digunakan untuk memperluas properti UML sehingga Anda dapat menambahkan informasi tambahan ke spesifikasi elemen model. Ini memungkinkan Anda menentukan pasangan kata kunci-nilai pada model, di mana kata kunci adalah atribut. Nilai tag ditampilkan secara grafis sebagai string yang ditempatkan di dalam kurung kurawal. Misalnya, tag bisa digunakan untuk menambahkan properti ke model seperti manajemen versi, kontrol konfigurasi, atau kepengarangan.
  3. Batasan digunakan untuk menentukan semantik atau kondisi yang harus selalu dipenuhi. Batasan ditampilkan sebagai string di dalam tanda kurung siku yang diletakkan di sebelah elemen terkait. Misalnya, batasan dapat ditempatkan pada atribut atau asosiasi untuk memastikan informasi seperti waktu respon pada sistem waktu nyata.

    Profil UML dalam UML 2.0 atau lebih tinggi memungkinkan Anda untuk menggabungkan beberapa profil secara dinamis sehingga profil-profil tersebut dapat diterapkan pada model yang sama. Ekstensi stereotip ditunjukkan dengan panah solid dan kepala panah yang diisi yang mengarah dari stereotip ke meta kelas. Stereotip dapat ditampilkan dalam bentuk teks atau grafik, dan sering kali digunakan untuk memodelkan infrastruktur perangkat lunak seperti MVC (Model-View-Controller).

    Untuk menggunakan stereotip dalam aplikasi tertentu, Anda harus mengintegrasikan profil yang berisi stereotip tersebut. Panah putus-putus digunakan untuk menandakan penerapan profil pada paket tertentu, yang kemudian memungkinkan elemen-elemen dalam profil tersebut tersedia untuk digunakan dalam paket terkait.

Class diagram

    Diagram kelas menggambarkan struktur sistem dengan mendeskripsikan kelas-kelas, atribut-atributnya, metode-metode, dan hubungan antar kelas. kelas adalah template untuk membuat objek, serta merepresentasikan atribut awal objek dan metode perilakunya. Setiap atribut memiliki tipe, dan setiap metode memiliki tanda tangan (signature), tetapi dalam diagram kelas, hanya nama kelas yang wajib ditampilkan. Hal ini masuk akal karena bahkan seorang ahli pun tidak bisa menebak apa yang dimaksud oleh sebuah kotak tanpa nama.

Bagian bagian terpenting dala sebuah class digram meliputi: nama kelas, atribut kelas, metode kelas. Dalam UML class terdapat sebuah accsess classifier. Yang menetukkan Tingkat aksebilitas adalah:

  1. Plus(+) menunjukkan public (dapat diakses oleh siapa saja)
  2. Minus (-) menunjukkan private (hanya dapat diakses oleh kelas itu sendiri)
  3. Hash (#) menunjukkan protected (dapat diakses oleh kelas dan turunannya)
  4. Tilde (~) menunjukkan packet local (dapat diakses oleh kelas dalam paket yang sama).
Dalam UML class digram setiap parameter juga dapat dijelaskan dengan berdasarkan arah hubungannya dengan memanggil caller:

  1. In:Parameter digunakan sebagai input untuk metode dan nilainya tidak diubah oleh metode.
  2. out: Parameter digunakan untuk menerima output dari metode, dengan nilai yang dapat diubah oleh metode.
  3. in-Out: Parameter digunakan sebagai input sekaligus dapat diubah oleh metode untuk dikembalikan sebagai output.
  4. Object diagram

Component Diagram

    Komponen diagram digunakan untuk memodelkan aspek fisik dari sistem berorientasi objek. Diagram ini berguna untuk memvisualisasikan, mendefinisikan, dan mendokumentasikan sistem berbasis komponen, serta membangun sistem eksekusi menggunakan forward dan reverse engineering. Pada dasarnya, component diagram adalah class diagram yang fokus pada komponen sistem dan sering digunakan untuk memodelkan tampilan implementasi statis dari sebuah sistem.
    Pada UML 2.0, sebuah komponen digambar sebagai persegi panjang dengan kompartemen opsional yang disusun secara vertikal. Ada dua tipe antarmuka pada komponen:
  1. Provided interface: Digambarkan dengan lingkaran penuh di ujung dan disebut sebagai lollipop, menunjukkan antarmuka yang disediakan oleh komponen kepada sistem.
  2. Required interface: Ditandai dengan setengah lingkaran, menunjukkan antarmuka yang dibutuhkan oleh komponen untuk bekerja.
    Untuk sistem yang lebih kompleks, kita bisa membuat component diagram yang memodelkan release eksekusi. mendefinisikan komponen yang akan dimodelkan, yang bisa mencakup file eksekusi, perpustakaan (libraries), tabel, dan dokumen. Komponen ini sering disebar di berbagai nodes dalam sistem. Diagram ini berguna untuk memvisualisasikan hubungan antar elemen dan antarmuka yang diekspos oleh komponen-komponen tersebut.
    Ketika memodelkan basis data fisik, kita perlu mengidentifikasi kelas-kelas yang merepresentasikan skema basis data logis dan memilih strategi pemetaan untuk memetakan kelas-kelas ini ke tabel. Selain itu, lokasi fisik basis data juga mempengaruhi strategi pemetaan yang dipilih. Setelah deployment, component diagram membantu memvisualisasikan, mendefinisikan, membangun, dan mendokumentasikan pemetaan ini sebagai tabel.

Sementara itu UML dengan jenis kedua yatu diagram perilaku mencakup macam macam sebagai berikut:

Activity Diagram

    diagram aktivitas digunakan untuk merepresentasikan alur kerja atau proses dinamis dari sistem dengan cara yang jelas dan terstruktur. Diagram ini menunjukkan bagaimana aktivitas diatur dalam alur yang logis atau paralel, memetakan transisi dari satu aktivitas ke aktivitas lain serta kondisi yang harus dipenuhi dalam proses tersebut. Berikut adalah elemen-elemen utama diagram aktivitas beserta fungsinya dalam alur sistem:
  1. Control Flow / Object Flow
  2. Decision Node
  3. Merge Node
  4. Fork Node
  5. Join Node
  6. Object
  7. Final Node
  8. Swim Lane

Use case diagram

    Diagram Use Case adalah salah satu cara paling efektif untuk secara visual merepresentasikan kebutuhan fungsional dari suatu sistem, namun diagram ini lebih fokus pada apa yang harus dilakukan sistem, bukan bagaimana melakukannya. Seperti yang telah Anda sebutkan, use case merepresentasikan interaksi antara aktor (pengguna atau sistem lain) dengan sistem, membantu analis dan pakar domain dalam merancang dan memvalidasi sistem dari perspektif eksternal. Komponen dari Diagram Use Case:
  1. Aktor: Mewakili entitas yang berinteraksi dengan sistem. Seorang aktor memainkan peran tertentu dalam proses yang berbeda dan dapat berinteraksi dengan beberapa use case. Yang penting dalam diagram ini adalah peran aktor, bukan pengguna sebagai individu. Misalnya, seorang profesor bisa bertindak sebagai  dosen di satu konteks dan sebagai peneliti di konteks lain.
  2. Use Case: Mewakili tindakan atau proses spesifik yang dilakukan oleh sistem sebagai respons terhadap interaksi aktor. Mereka menggambarkan "apa" yang dilakukan sistem, bukan "bagaimana" implementasinya. Setiap use case biasanya merepresentasikan fungsi yang menghasilkan hasil yang berarti.
  3. Link Komunikasi: Mewakili hubungan antara aktor dan use case. Mereka menunjukkan bahwa aktor memulai interaksi dengan sistem untuk memicu use case.
  4. Batasan Sistem: Diagram use case dapat mencakup seluruh sistem atau modul spesifik di dalamnya. Misalnya, dalam sistem ERP (Enterprise Resource Planning) besar, setiap modul (seperti SDM atau Akuntansi) bisa membentuk batasannya sendiri untuk berbagai use case.

State mechine diagram

    State Machine Diagram digunakan untuk menggambarkan perilaku objek yang bergantung pada keadaan (state) di mana objek bereaksi secara berbeda terhadap kejadian yang sama tergantung pada statusnya saat itu. Meskipun diagram ini biasanya diterapkan pada objek, mereka juga dapat diterapkan pada elemen lain yang mengubah perilaku dalam hubungannya dengan objek lain, seperti aktor, use case, metode, subsistem, atau sistem. Diagram ini sering digunakan bersama dengan sequence diagram. Sequence Diagram menggambarkan kejadian untuk satu interaksi melibatkan semua objek yang terlibat. Contoh Aplikasi Diagram State Machine, Misalkan kita sedang membuat diagram state machine untuk sistem pemesanan online:
  1. Initial State: "Start"
  2. State 1: "Cart" – pengguna menambahkan item ke keranjang belanja.
  3. State 2: "Checkout" – pengguna memilih untuk melakukan pembayaran.
  4. State 3: "Order Placed" – pengguna berhasil melakukan pemesanan.
  5. Final State: "Order Completed" – pesanan selesai diproses.

Sequence diagram

    diagram urutan adalah sebuah diagram yang digunakan untuk menjelaskan dan menampilkan interaksi antar objek-objek dalam sebuah sistem secara terperinci. Selain itu sequence diagram juga akan menampilkan pesan atau perintah yang dikirim, beserta waktu pelaksanaannya. Objek-objek yang berhubungan dengan berjalannya proses operasi biasanya diurutkan dari kiri ke kanan. Tujuan utama dari pembuatan diagram urutan adalah mengetahui urutan kejadian yang dapat menghasilkan output yang diinginkan.

Communication diagram.

    Communication Diagram, sebelumnya dikenal sebagai collaboration diagrams sebelum UML 2.0, adalah perpanjangan dari object diagrams yang menunjukkan objek-objek bersama dengan pesan yang dikirimkan antar objek. Tujuan utama dari communication diagrams adalah:
  1. Memodelkan pesan yang dikirimkan antara objek atau peran yang menyediakan fungsionalitas dari use case dan operasi.
  2. Mendokumentasikan mekanisme di dalam desain arsitektur sistem.
  3. Menangkap interaksi yang menunjukkan pesan yang terjadi di masa lalu antara objek dan peran dalam kolaborasi.
  4. Memodelkan skenario alternatif dalam use case atau operasi yang melibatkan kolaborasi berbagai objek dan interaksi.
  5. Mendukung identifikasi objek, kelas, dan atribut melalui pesan yang terlibat dalam use case.

Timing diagram

    Timing diagrams adalah diagram interaksi UML yang digunakan ketika tujuan utama dari diagram adalah menunjukkan interval antara perubahan state dari berbagai objek. Timing diagrams berfokus pada kondisi yang berubah di dalam dan antar lifelines di sepanjang sumbu waktu, dan menggambarkan perilaku baik dari classifier individu maupun interaksinya, dengan fokus pada waktu kejadian yang menyebabkan perubahan pada kondisi yang dimodelkan. Transisi dari satu state ke state lain adalah perubahan level lifeline selama periode waktu ketika objek berada dalam state tertentu. Timeline berjalan sejajar dengan state tersebut. Perubahan state ditampilkan sebagai perubahan vertikal dari satu level ke level lain. Alasan perubahan, seperti dalam state diagram atau sequence diagram, biasanya adalah penerimaan pesan atau permintaan event yang menyebabkan perubahan (disebut stimulus). Namun, perubahan juga bisa terjadi secara otomatis oleh sistem, yang dipicu oleh berlalunya waktu.















Komentar

Postingan populer dari blog ini

PARABOLA || CARA KERJA, BAGIAN BAGIAN, CARA PEMASANGAN

GAMBAR GAMBAR KESELAMATAN KERJA DAN ARTINYA

ARDUINO UNO