Pengantar Unified Modeling
Language (UML)
affanoer
Pendahuluan
Pemodelan
(modeling) adalah proses merancang piranti lunak
sebelum melakukan pengkodean (coding).
Kesuksesan suatu pemodelan piranti lunak ditentukan oleh tiga unsur / segitiga
sukses (the
triangle for success),
yaitu : metode pemodelan (notation), proses (process) dan tool yang
digunakan.
Apa
itu UML
Unified
Modelling Language (UML)
adalah sebuah "bahasa" yg telah menjadi standar dalam industri untuk
visualisasi, merancang dan mendokumentasikan sistem piranti lunak.
-
Dengan UML dapat dibuat model untuk semua jenis aplikasi piranti
lunak, dapat berjalan pada piranti keras, sistem operasi dan jaringan apapun,
serta ditulis dalam bahasa pemrograman apapun.
-
UML cocok untuk penulisan
piranti lunak dalam bahasa-bahasa berorientasi objek seperti C++, Java, C# atau
VB.NET dapat juga digunakan untuk modeling aplikasi prosedural dalam VB atau C.
-
UML mendefinisikan notasi dan syntax/semantik.
Notasi UML : 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).
Diantaranya
adalah: metodologi booch [1], metodologi coad [2], metodologi OOSE [3],
metodologi OMT [4], metodologi shlaer-mellor [5], metodologi wirfs-brock [6],
dsb.
Konsepsi Dasar UML
Untuk
menguasai UML, sebenarnya cukup dua hal yang harus kita perhatikan:
1.
Menguasai pembuatan diagram UML
2.Menguasai
langkah-langkah dalam analisa dan pengembangan dengan UML
Diagram-diagram
dalam UML, diantaranya :
• use case diagram • sequence diagram
• class diagram • collaboration
diagram
• statechart diagram • component diagram
• activity diagram • deployment diagram
Use
Case Diagram
Use
case diagram menggambarkan
fungsionalitas yang diharapkan dari sebuah sistem.
-
Use case
merepresentasikan sebuah interaksi antara aktor dengan sistem. Seorang/sebuah aktor adalah sebuah
entitas manusia atau mesin yang berinteraksi dengan system untuk melakukan pekerjaan-pekerjaan
tertentu.
-
Use case merupakan
sebuah pekerjaan tertentu, misalnya login ke sistem, meng-create sebuah daftar belanja, dan sebagainya.
Use
case diagram dapat digunakan
untuk :
1.
Menyusun requirement
sebuah sistem,
2.
Mengkomunikasikan rancangan dengan klien, dan
3.
Merancang test
case untuk semua feature yang ada pada sistem.
Contoh use case diagram :
Class
Diagram
Class adalah sebuah spesifikasi yang jika
diinstansiasi akan menghasilkan sebuah objek dan merupakan inti dari pengembangan
dan desain berorientasi objek.
Class
menggambarkan keadaan diantaranya :
1.
Atribut/properti suatu sistem, sekaligus menawarkan layanan
untuk memanipulasi keadaan tersebut (metoda/fungsi).
2.
Menggambarkan struktur dan deskripsi class, package dan objek beserta hubungan satu sama lain
seperti containment, pewarisan, asosiasi, dan lain-lain.
Class
memiliki tiga area pokok :
1. Nama
(dan stereotype)
2.
Atribut
3.
Metoda
Atribut
dan metoda dapat memiliki salah satu sifat berikut :
• Private, tidak dapat dipanggil dari luar class yang bersangkutan
• Protected, hanya dapat dipanggil oleh class yang bersangkutan dan anak-anak yang
mewarisinya
• Public, dapat dipanggil oleh siapa saja
Class
dapat merupakan implementasi dari sebuah interface, yaitu class abstrak
yang hanya memiliki metoda. Interface
tidak dapat langsung diinstansiasikan,
tetapi harus diimplementasikan dahulu menjadi sebuah class. Dengan demikian interface mendukung resolusi metoda pada saat run-time.
Class
dapat dikelompokkan menjadi package. Kita juga dapat membuat diagram yang
terdiri atas package.
Hubungan
Antar Class
1.
Asosiasi, yaitu hubungan statis antar class.
Umumnya menggambarkan class
yang memiliki atribut berupa class lain, atau class yang harus mengetahui eksistensi class lain. Panah navigability menunjukkan arah query antar class.
2.
Agregasi, yaitu hubungan yang menyatakan bagian (“terdiri atas..”).
3.
Pewarisan, yaitu hubungan hirarkis antar class.
Class dapat diturunkan dari class lain dan mewarisi semua atribut dan metoda class asalnya dan menambahkan fungsionalitas
baru, sehingga ia disebut anak dari class yang
diwarisinya. Kebalikan dari pewarisan adalah generalisasi.
4.
Hubungan dinamis, yaitu rangkaian pesan (message)
yang di-passing
dari satu class kepada
class lain. Hubungan dinamis dapat digambarkan
dengan menggunakan sequence
diagram yang akan
dijelaskan kemudian.
Contoh class diagram :
Statechart
Diagram
Statechart
diagram menggambarkan
transisi dan perubahan keadaan (dari satu state ke
state lainnya) suatu objek pada sistem sebagai
akibat dari stimuli
yang diterima. Pada umumnya statechart diagram menggambarkan
class tertentu (satu class dapat memiliki lebih dari satu statechart diagram).
Contoh statechart diagram :
Activity
Diagram
Activity
diagrams menggambarkan
berbagai alir aktivitas dalam sistem yang sedang dirancang, bagaimana
masing-masing alir berawal, decision
yang mungkin terjadi, dan bagaimana mereka
berakhir.
| Activity
diagram juga dapat
menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi.
| Activity
diagram merupakan state diagram khusus, di mana sebagian besar state adalah action dan
sebagian besar transisi di-trigger
oleh selesainya state sebelumnya (internal processing).
| Activity
diagram dapat dibagi
menjadi beberapa object
swimlane untuk menggambarkan
objek mana yang bertanggung jawab untuk aktivitas tertentu.
Contoh activity diagram tanpa swimlane:
Sequence
Diagram
Sequence
diagram menggambarkan
interaksi antar objek di dalam dan di sekitar sistem (termasuk pengguna, display, dan sebagainya) berupa message yang digambarkan terhadap waktu.
Ö
Sequence
diagram terdiri antar dimensi vertikal (waktu) dan
dimensi horizontal (objek-objek yang terkait).
Ö Sequence
diagram biasa digunakan
untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan
sebagai respons dari sebuah event
untuk menghasilkan output tertentu.
Contoh sequence diagram :
.
Collaboration
Diagram
Collaboration
diagram juga menggambarkan
interaksi antar objek seperti sequence diagram, tetapi lebih menekankan pada peran masing-masing objek dan
bukan pada waktu penyampaian message.
Setiap message
memiliki sequence number,
di mana message
dari level tertinggi memiliki nomor 1.
Messages dari level yang sama memiliki prefiks yang sama.
Component
Diagram
Component
diagram menggambarkan
struktur dan hubungan antar komponen piranti lunak, termasuk ketergantungan (dependency) di antaranya.
Komponen piranti lunak adalah modul berisi code, baik berisi source code maupun binary code,
baik library maupun executable,
baik yang muncul pada compile
time, link time,
maupun run
time. Umumnya komponen terbentuk dari beberapa class dan/atau package,
tapi dapat juga dari komponen-komponen yang lebih kecil. Komponen dapat juga
berupa interface,
yaitu kumpulan layanan yang disediakan sebuah komponen untuk komponen lain.
Contoh component diagram:
Deployment
Diagram
Deployment/physical
diagram menggambarkan
detail bagaimana komponen di-deploy dalam
infrastruktur sistem, di mana komponen akan terletak (pada mesin, server atau
piranti keras apa), bagaimana kemampuan jaringan pada lokasi tersebut,
spesifikasi server, dan hal-hal lain yang bersifat fisikal.
Sebuah node adalah server, workstation, atau piranti keras lain yang digunakan
untuk men-deploy komponen dalam lingkungan sebenarnya.
Hubungan antar node
(misalnya TCP/IP) dan requirement dapat juga didefinisikan dalam diagram
ini.
Contoh deployment diagram :
Langkah-Langkah
Penggunaan UML
Berikut
ini adalah tips pengembangan piranti lunak dengan menggunakan UML:
1.
Buatlah daftar business
process dari level
tertinggi untuk mendefinisikan aktivitas dan proses yang mungkin muncul.
2.
Petakan use
case untuk tiap business process untuk mendefinisikan dengan tepat
fungsionalitas yang harus disediakan oleh sistem. Kemudian perhalus use case
diagram dan lengkapi dengan requirement,
constraints dan
catatan-catatan lain.
3.
Buatlah deployment
diagram secara kasar untuk
mendefinisikan arsitektur fisik sistem.
4.
Definisikan requirement
lain (non-fungsional, security dan sebagainya) yang juga harus disediakan
oleh sistem.
5.
Berdasarkan use
case diagram,
mulailah membuat activity
diagram.
6.
Definisikan objek-objek level atas (package atau
domain) dan buatlah sequence dan/atau collaboration diagram untuk tiap alir pekerjaan. Jika sebuah use case memiliki kemungkinan alir normal dan error,
buatlah satu diagram untuk masing-masing alir.
7. Buatlah
rancangan user
interface model yang
menyediakan antarmuka bagi pengguna untuk menjalankan skenario use case.
8.
Berdasarkan model-model yang sudah ada, buatlah class diagram. Setiap package atau
domain
dipecah menjadi hirarki class lengkap dengan atribut dan metodanya. Akan
lebih baik jika untuk setiap class dibuat
unit test untuk menguji fungsionalitas class dan interaksi dengan class lain.
9.
Setelah class
diagram dibuat, kita dapat
melihat kemungkinan pengelompokan class menjadi
komponen-komponen. Karena itu buatlah component diagram pada tahap ini. Juga,
definisikan tes integrasi untuk setiap komponen meyakinkan ia berinteraksi
dengan baik.
10. Perhalus
deployment diagram yang sudah dibuat. Detilkan kemampuan dan requirement piranti lunak, sistem operasi, jaringan,
dan sebagainya. Petakan komponen ke dalam node.
11.
Mulailah membangun sistem. Ada
dua pendekatan yang dapat digunakan :
• Pendekatan use case, dengan meng-assign setiap use case kepada
tim pengembang tertentu untuk mengembangkan unit code yang
lengkap dengan tes.
• Pendekatan komponen, yaitu meng-assign setiap komponen kepada tim pengembang
tertentu.
12.
Lakukan uji modul dan uji integrasi serta perbaiki model berserta codenya. Model harus selalu sesuai dengan code yang aktual.
13.
Piranti lunak siap dirilis.
Tool Yang Mendukung UML
Saat ini banyak sekali tool pendesainan
yang mendukung UML, baik itu tool komersial maupun opensource. Beberapa
diantaranya adalah:
• Rational Rose (www.rational.com)
• Together (www.togethersoft.com)
• Object Domain (www.objectdomain.com)
• Jvision (www.object-insight.com)
• Objecteering (www.objecteering.com)
• MagicDraw (www.nomagic.com/magicdrawuml)
• Visual Object Modeller (www.visualobject.com)
Referensi :
1. Pengantar Unified ModellingLanguage
(UML), Sri Dharwiyanti (dharwiyanti@rnd.inti.co.id) Romi Satria Wahono (romi@romisatriawahono.net, http://romisatriawahono.net)
Tidak ada komentar:
Posting Komentar