Saturday, June 15, 2013

Sejarah Singkat UML

Unified Modelling Language (UML) adalah sebuah "bahasa" yang telah menjadi standar dalam industri untuk menentukan, visualisasi, merancang dan mendokumentasikan artifact dari sistem software, untuk memodelkan bisnis dan sistem non software lainnya. UML merupakan suatu kumpulan teknik terbaik yang telah terbukti sukses dalam memodelkan sistem yang besar dan kompleks.
Dengan menggunakan UML kita dapat membuat model untuk semua jenis aplikasi piranti lunak, dimana aplikasi tersebut dapat berjalan pada piranti keras, sistem operasi dan jaringan apapun, serta ditulis dalam bahasa pemrograman apapun. Tetapi karena UML juga menggunakan class dan operation dalam konsep dasarnya, maka ia lebih cocok untuk penulisan piranti lunak dalam bahasa-bahasa berorientasi objek seperti C++, Java, VB.NET. Walaupun demikian, UML tetap dapat digunakan untuk modeling aplikasi prosedural dalam VB atau C.
Seperti bahasa-bahasa lainnya, UML mendefinisikan notasi dan syntax/semantik. Notasi UML merupakan sekumpulan bentuk khusus untuk menggambarkan berbagai diagram piranti lunak. Setiap bentuk memiliki makna tertentu, dan UML syntax mendefinisikan bagaimana bentuk-bentuk tersebut dapat dikombinasikan. Notasi UML terutama diturunkan dari 3 notasi yang telah ada sebelumnya: Grady Booch OOD (Object-Oriented Design), Jim Rumbaugh OMT (Object Modeling Technique), dan Ivar Jacobson OOSE (Object-Oriented Software Engineering).
Sejarah UML sendiri cukup panjang. Sampai era tahun 1990 seperti kita ketahui puluhan metodologi pemodelan berorientasi objek telah bermunculan di dunia. Diantaranya adalah: metodologi Booch, metodologi Coad , metodologi OOSE, metodologi OMT, metodologi Shlaer-Mellor, metodologi Wirfs-Brock, dan sebagainya. Masa itu terkenal dengan masa perang metodologi (method war) dalam pendesainan berorientasi objek. Masing-masing metodologi membawa notasi sendiri-sendiri, yang mengakibatkan timbul masalah baru apabila kita bekerja sama dengan group/perusahaan lain yang menggunakan metodologi yang berlainan.
Dimulai pada bulan Oktober 1994 Booch, Rumbaugh dan Jacobson, yang merupakan tiga tokoh yang boleh dikatakan metodologinya banyak digunakan mempelopori usaha untuk penyatuan metodologi pendesainan berorientasi objek. Pada tahun 1995 direlease draft pertama dari UML (versi 0.8). Sejak tahun 1996 pengembangan tersebut dikoordinasikan oleh Object Management Group (OMG – http://www.omg.org). Tahun 1997 UML versi 1.1 muncul, dan saat ini versi terbaru adalah versi 1.5 yang dirilis bulan Maret 2003. Booch, Rumbaugh dan Jacobson menyusun tiga buku serial tentang UML pada tahun 1999. Sejak saat itulah UML telah menjelma menjadi standar bahasa pemodelan untuk aplikasi berorientasi objek.
Object Management Group, Inc. (OMG) adalah sebuah organisasi international yang dibentuk pada 1989, didukung lebih dari 800 anggota, terdiri dari perusahaan sistem informasi, software developer, dan pada user system komputer. organisasi ini salah satunya bertugas membuat spesifikasi “manajemen objek” untuk menetapkan kerangka bersama dalam rekayasa software. Sasaran OMG adalah membantu perkembangan object-oriented technology dan mengarahkannya dengan mendirikan Object Management Architecture (OMA). OMA menentukan infrastruktur konseptual yang didasarkan pada seluruh spesifikasi yang dikeluarkan OMG. OMG kemudian mengeluarkan UML, dimana dengan adanya UML ini diharapkan dapat mengurangi kekacauan dalam bahasa pemodelan yang selama ini terjadi dalam lingkungan industri. UML diharapkan juga dapat menjawab masalah penotasian dan mekanisme tukar menukar model yang terjadi selama ini.

Pengertian UML

    UML (Unified Modeling Language) adalah metode pemodelan (tools/model) secara visual sebagai sarana untuk merancang dan atau membuat software berorientasi objek dan memberikan standar penulisan sebuah sistem untuk pengembangan sebuah software yang dapat menyampaikan beberapa informasi untuk proses implementasi pengembangan software.
Tujuan UML :
a. Memberikan model yang siap pakai, bahasa pemodelan visual yang ekspresif untuk mengembangkan dan saling menukar model dengan mudah dan dimengerti secara umum.
b. Memberikan bahasa pemodelan yang bebas dari berbagai bahasa pemrograman dan proses rekayasa.
c. Menyatukan praktik-praktik terbaik yang terdapat dalam pemodelan.

Konsep Dasar UML

    Untuk dapat memahami UML diperlukan pemahaman tentang konsep bahasa pemodelan dan tiga elemen utama UML. Tiga elemen utama UML antara lain :
A.    Benda / Things / Objek
Objek merupakan bagian paling statik sebuah model, yang menjelaskan elemen-elemen lainnya dari sebuah konsep. Bentuk dari beberapa objek :
1.    Classes, Sekelompok dari objek yang mempunyai atribute, operasi, dan hubungan yang sematik.
2.    Interfaces, antar-muka yang menghubungkan dan melayani anterkelas dan atau elemen dan mendefinisikan sebuah kelompok dari spesifikasi pengoperasian.
3.    Collaboration, interaksi dari sebuah kumpulan kelas-kelas atau elemen-elemen yang bekerja secara bersama-sama.
4.    Use Cases, pembentuk tingkah laku objek dalam sebuah model serta di realisasikan oleh sebuah collaboration.
5.    Nodes, bentuk fisik dari elemen-elemen yang ada pada saat dijalakannya sebuah sistem.

B.    Hubungan / Ralationship
Ada 4 macam hubungan dalam penggunaan UML, yaitu :
1.    Dependency, hubungan semantik antara dua objek yang mana sebuah objek berubah mengakibatkan objek satunya akan berubah pula.
2.    Association, hubungan antar benda secara struktural yang terhubung diantara objek dalam kesatuan objek.
3.    Generalizations, hubungan khusus dalam objek anak yang menggantikan objek induk dan memberikan pengaruhnya dalam hal struktur dan tingkah lakunya kepada objek induk
4.    Realizations, hubungan semantik antarpengelompokkan yang menjamin adanya ikatan diantaranya yang diwujudkan diantara interface dan kelas atau elements, serta antara use cases dan collaborations.

C.    Bagan Atau Diagram
Diagram adalah yang menggambarkan permasalahan maupun solusi dari permasalahan suatu model. Pada UML 1.0 ada 9 jenis model diagram, yang kemudian UML berkembang menjadi UML 2.0 menjadi 13 jenis model diagram, yaitu:

1.    Diagram Use Cases
Use cases diagram merupakan suatu bentuk diagram yang menggambarkan fungsi-fungsi yang diharapkan dari sebuah sistem yang dirancang. Dalam Use cases diagram penekanannya adalah apa yang diperbuat oleh sistem, dan bukan bagaimana. Sebuah use cases akan merepresentasikan sebuah interaksi antara pelaku atau actor dengan sistem. Use cases diagram yang digunakan dalam merancang suatu sistem dapat sangat membantu pada saat kita menyusun requirement sebuah sistem, mengomunikasikannya dengan klien, dan merancang pengujian untuk semua fitur yang terdapat dalam sistem. Dalam suatu sistem aplikasi database, use cases diagram sangat membantu requierement apa saja yang diperlukan.
Use cases diagram menjelaskan manfaat sistem jika dilihat menurut pandangan orang yang berada di luar sistem (actor). Diagram ini menunjukkan fungsionalitas suatu sistem atau kelas dan bagaimana sistem berinteraksi dengan dunia luar. Pada tahap analisa, Use cases Diagram sangat berperan untuk menemukan requirement-requirement sistem dan untuk memahami bagaimana sistem seharusnya bekerja. Dalam sebuah model mungkin terdapat satu atau beberapa use cases diagram. Use cases diagram terdiri dari:
a.    Use Case
Use case menggambarkan perilaku software aplikasi, termasuk didalamnya interaksi antara aktor dengan software aplikasi. Use case dibuat berdasarkan proses-proses yang dilakukan untuk kepentingan aktor untuk menggambarkan apa yang dikerjakan oleh aplikasi, bukan bagaimana aplikasi mengerjakannya (logical).



   
Gambar 1.1 Simbol Use Case
b.    Actors
Aktor merupakan istilah yang digunakan untuk menggambarkan pengguna aplikasi. Aktor bisa berupa orang, hardware, atau sistem informasi lai yang berinteraksi dengan use case.

Gambar 1.2 Simbol Actors

c.    Association
Asosiasi merupakan komunikasi antara aktor dengan use case, digambarkan sebagai sebuah garis lurus tanpa putus antara aktor dan use case.
Ada 4 jenis relasi yang biasa timbul pada use case diagram :
1.    Association antara actor dan use case
2.    Association antara use case
3.    Generalization/Inheritance antara use case
4.    Generalization/Inheritance antara actors


Gambar 1.3 Simbol Association Biasa

d.    System Boundary Boxes (optional)
Untuk memperlihatkan batasan sistem dalam diagram use case, Anda dapat menggambarkan sebuah kotak yang melingkupi semua use case, namun actor tetap berada diluar kotak. Biasanya digunakan apabila memberikan beberapa alternative system yang dapat dijadikan pilihan.



Gambar 1.4 Simbol System Boundary Boxes

2.    Diagram Activity
Menunjukkan bagaimana aktifitas – aktifitas tersebut bergantung satu sama lain dan berfokus pada aktifitas – aktifitas yang terjadi yang terkait dalam suatu proses tunggal. Menggambarkan berbagai alir aktivitas dalam sistem yang sedang dirancang, bagaimana masing-masing alir berawal, decision yang mungkin terjadi, dan bagaimana mereka berakhir.

3.    Diagram Class
Sebuah Class Diagram menunjukkan struktur yang statis dari beberapa class dalam suatu sistem. Class-class merepresentasikan suatu keadaan (atribut/properti) dan yang akan dikerjakan oleh sistem (metoda/fungsi).
Diagram Class mempunyai 3 macam relationalships (hubungan), sebagai berikut :
a.    Association, suatu hubungan antara bagian dari dua kelas yang terjadi jika salah satu bagian dari kelas mengetahui kelas yang lain dalam melakukan suatu kegiatan.
b.    Aggregation, hubungan association dimana salah satu kelasnya merupakan bagian dari suatu kumpulan dan memiliki titik pusat yang mencakup keseluruhan bagian.
c.    Generalization, hubungan turunan dengan mengasumsikan satu kelas merupakan suatu kelas super dari kelas yang lain.

4.    Diagram Communication
Communication diagram memberikan pandangan alternatif dari interaksi dinamis yang terjadi antara objek dalam suatu sistem informasi berorientasi objek. Diamana sequence diagram menekankan penyusunan berbasis waktu dari suatu kegiatan, diagram komunikasi lebih berfokus pada suatu set pesan yang disampaikan dalam sekumpulan obyek yang berorientasi. Dengana kata lain, diagram komunikasi mengggambarkan bagaimana objek dapat berkolaborasi untuk mendukung beberapa aspek dari fungsi yang diperlukan dari sistem. Urutan atau penyusunan berdasarkan waktu dari pesan ditunjukan melalui skema urutan panorama. Dari sudut pandang praktis, diagram komunikasi dan sequence diagram menyediakan informasi yang sama.

5.    Diagram Component
Component diagram berfungsi untuk menggambarkan komponen run-time dan executable yang dibuat untuk sistem. Komponen saling berelasi menggunakan depedecy relation (Hubungan ketergantungan, yang ditandai dengan garis putus-putus). Komponen run-time memperlihatkan pengelompokan kelas untuk run-time library seperti Java Applet, Active-X Component dan Dynamic Libraries. Komponen executable memperlihatkan interface dan memanggil dependencies beberapa executable. Interface kelas diperlihatkan seperti lollypop.

6.    Diagram Deployment
Menggambarkan tata letak sebuah system secara fisik, menampakkan bagian-bagian software yang berjalan pada bagian-bagian hardware, menunjukkan hubungan komputer dengan perangkat (nodes) satu sama lain dan jenis hubungannya. Di dalam nodes, executeable component dan object yang dialokasikan untuk memperlihatkan unit perangkat lunak yang dieksekusi oleh node tertentu dan ketergantungan komponen.
Bersifat statis. Diagram ini memperlihatkan konfigurasi saat aplikasi dijalankan saat run time. Diagram ini membuat simpul-simpul (node) beserta komponen-komponen yang ada di dalamnya.

7.    Diagram Object
Object diagram sangat mirip dengan diagram kelas. Perbedaan utama adalah bahwa diagram objek menggambarkan objek dan hubungan mereka. Tujuan utama dari diagram objek adalah untuk memungkinkan analis untuk mengungkap rincian tambahan kelas. Dalam beberapa kasus, pernyataan variabel dari sebuah class diagram dapat membantu pengguna atau analis dalam menemukan atribut tambahan yang relevan, hubungan, dan atau operasi, atau mungkin menemukan bahwa beberapa atribut, hubungan, atau operasi yang salah tempat.
Bersifat statis. Diagram ini mempelihatkan objek-objek serta relasi-relasi antar objek. Diagram objek memperlihatkan instansiasi statis dari segala sesuatu yang dijumpai pada diagram kelas.

8.    Diagram Package
Package diagram utamanya digunakan untuk mengelompokan elemen diagram yang berlainan secara bersama-sama ke dalam tingkat pembangunan yang lebih tinggi yaitu berupa sebuah paket. Diagram paket pada dasarnya adalah diagram kelas yang hanya menampilkan paket, disamping kelas, dan hubungan ketergantungan, disamping hubungan khas yang ditampilkan pada diagram kelas.
Sebagai contoh jika kita memiliki sistem pendaftaran untuk kantor dokter, mungkin masuk akal untuk kelompok kelas pasien dengan kelas sejarah medis pasien bersama-sama untuk membentuk paket kelas pasien. Selain itu dapat berguna untuk membuat paket perawatan yang mengandung gejala penyakit, penyakit, dan obat-obatan khas yang diresepkan untuk mereka.
Bersifat statis. Diagram komponen ini memperlihatkakan organisasi serta kebergantungan system/perangkat lunak pada komponen-komponen yang telah ada sebelummnya.

9.    Diagram Sequence
Sequence diagram menjelaskan interaksi objek yang disusun berdasarkan urutan waktu. Secara mudahnya sequence diagram adalah gambaran tahap demi tahap yang seharusnya dilakukan untuk menghasilkan sesuatu sesuai dengan use case diagram.
Bersifat dinamis. Diagram urutan adalah interaksi yang menekankan pada pengiriman pesan (message) dalam suatu waktu tertentu. Sequence diagram menekankan penyusunan berbasis waktu untuk kegiatan yang dilakukan dengan satu set dari objek yang berkolaborasi. Sequence diagram sangat berguna dalam membantu analis, memahami spesifikasi real-time dan menggunakan kasus yang rumit. Diagram ini dapat diguanakan untuk mendeskripsikan baik secara fisik dan logis interaksi antara objek.

10.    Diagram State Machine
    Menggambarkan transisi dan perubahan keadaan (dari satu state ke state lainnya) suatu objek pada sistem sebagai akibat dari stimulans yang diterima. State machine diagram untuk memodelkan behavior/methode (lifecycle) sebuah kelas atau object memperlihatkan urutan kejadian sesaat (state) yang dilalui sebuah object, transisi dari sebuah state ke state lainnya.

11.    Diagram Composite Struktur
Diagram structur komposit ini digunakan untuk model hubungan antar bagian-bagian dari sebuah kelas. Sebagai contoh, ketika pemodelan pendaftaran penggajian, analis mungkin ingin kelas yang mewakili seluruh laporan serta kelas-kelas yang mewakili header, footer, dan garis-garis detail laporan. Dalam sebuah diagram kelas standar, ini akan membutuhkan analis untuk memodelkan pendaftaran penggajian menjadi empat kelas terpisah yang memiliki hubungan, kemudian menghubungkan mereka bersama-sama. Sebaliknya, diagram struktur komposit akan berisi tiga subclass: header, footer, dan garis detail. Diagram struktur komposit juga berguna ketika dilakukan pemodelan struktur internal komponen untuk sistem berbasis komponen. Seringkali, diagram struktur komposit merupakan mekanisme pemodelan yang kurang efektif karena pemodelan juga bisa dilakukan dengan mengkomunikasikan penggunaan paket dan diagram paket.

12.    Diagram Interaction Overview
Diagram yang memperlihatkan alur control dalam system atau business process. Setiap node/activity di dalam diagram mewakili interaction diagram yang lain. Interaction Overview Diagram menggunakan notasi yang dipakai pada Activity diagram dan Sequence Diagram Interaction.
Interaction overview diagram membantu analis memahami use case yang kompleks. Mereka memberikan gambaran aliran proses dari kontrol. Diagram gambaran interaksi memperluas diagram aktivitas melalui penambahan pragmen sequence dari sequence diagram. Akibatnya, urutan fragmen diperlakukan seolah-olah fragmen merupakan aktifitas dalam diagram aktivitas. Keuntungan utama menggunakan diagram gambran interkasi adalah bahwa anda dapat dengan mudah memodelkan aliran urutan alternatif. Walaupun, dalam prakteknya , hal ini bisa dicapai dengan menggunakan diagram aktifitas disamping diagram use case.

13.    Diagram Timing
Memperlihatkan interaksi ketika tujuan utama diagram adalah waktu. Menggambarkan perubahan dalam state atau kondisi dari pengelompokkaninstance atau tugas berlebihan. Biasanya dipakai untuk memperlihatkan perubahan dalam state objectberlebihan dalam merespon ke external events. Dipakai untuk memperlihatkan perilaku dari sebuah/ beberapa object melaluiperiode waktu.
     Ada 2 jenisTiming diagram yaitu :
•    Concise/simple notation : Dipakai untuk mengeksplorasi sebuah / beberapa object melalui periode waktu.
•    Robust notation

      Diagram tersebut akan menjadi ideal ketika kita mampu menyeimbangkan ke-6 elemen yang ada, bukan menariknya ke satu atau dua arah saja. Tiap orang biasanya punya satu elemen yang dominan, tinggal bagaimana mengoptimalkan elemen-elemen yang lain saja.

No comments:

Post a Comment