UML ( Unified Modelling language )
UML adalah bahasa standart untuk
melakukan Spedifikasi,Visualisasi,kontruksi dan dokumentasi dari
komponen-komponen perangkat lunak dan digunakan untuk pemodelan bisnis.
Konsepsi
dasar UML
Rangkuman
dari berbagai referensi yang membahas UML sebenarnya konsep dari UML dalah
sebagai berikut:
Pemodelan
dengan UML terdiri dari 8 tipe diagram yang berbeda untuk memodelkan system
perangkat lunak. Masing-masing diagram diagram menunjukan satu sisi dari
macam-macam sudut pandang(persektif) dan terdiri dari tingkat abtraksi yang
berbeda.
1. USE CASE Diagram
Use case diagram menggambarkan
fungsionalitas yang diharapkan dari sebuah sistem. Yang ditekankan adalah “apa”
yang diperbuat sistem, dan bukan “bagaimana”. Sebuah use case merepresentasikan
sebuah interaksi antara aktor dengan sistem. Use case merupakan sebuah pekerjaan
tertentu, misalnya login ke sistem, meng-create sebuah daftar belanja,
dan sebagainya.
Seorang/sebuah aktor adalah sebuah entitas
manusia atau mesin yang berinteraksi dengan system untuk melakukan
pekerjaan-pekerjaan tertentu.
Use case diagram dapat
sangat membantu bila kita sedang menyusun requirement sebuah
sistem,mengkomunikasikan rancangan dengan klien, dan merancang test case untuk
semua feature yang ada pada sistem.
Sebuah use case dapat meng-include fungsionalitas
use case lain sebagai bagian dari proses dalam dirinya. Secara umum
diasumsikan bahwa use case yang di-include akan dipanggil setiap
kali use case yang meng-include dieksekusi secara normal.
Sebuah use case dapat di-include oleh
lebih dari satu use case lain, sehingga duplikasi fungsionalitas dapat
dihindari dengan cara menarik keluar fungsionalitas yang common.
Sebuah use case juga dapat meng-extend
use case lain dengan behaviour-nya sendiri.
Sementara hubungan generalisasi antar use
case menunjukkan bahwa use case yang satu merupakan spesialisasi
dari yang lain.

2. 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 (atribut/properti) suatu sistem, sekaligus menawarkan layanan untuk
memanipulasi keadaan tersebut (metoda/fungsi).
Class diagram 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.

Sesuai dengan perkembangan class model,
class dapat dikelompokkan menjadi package. Kita jugadapat 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.

3. 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).
Dalam UML,
state digambarkan berbentuk segiempat dengan sudut membulat dan memiliki
nama sesuai kondisinya saat itu. Transisi antar state umumnya memiliki
kondisi guard yang merupakan syarat terjadinya transisi yang
bersangkutan, dituliskan dalam kurung siku. Action yang dilakukan sebagai
akibat dari event tertentu dituliskan dengan diawali garis miring. Titik
awal dan akhir digambarkan berbentuk lingkaran berwarna penuh dan berwarna
setengah.

4. 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). Oleh karena itu activity diagram tidak menggambarkan
behaviour internal sebuah sistem (dan interaksi antar subsistem) secara eksak,
tetapi lebih menggambarkan proses-proses dan jalur-jalur aktivitas dari level
atas secara umum.
Sebuah
aktivitas dapat direalisasikan oleh satu use case atau lebih. Aktivitas
menggambarkan proses yang berjalan, sementara use case menggambarkan
bagaimana aktor menggunakan sistem untuk melakukan aktivitas.
Sama
seperti state, standar UML menggunakan segiempat dengan sudut membulat
untuk
menggambarkan
aktivitas. Decision digunakan untuk menggambarkan behaviour pada kondisi
tertentu. Untuk mengilustrasikan proses-proses paralel (fork dan join)
digunakan titik sinkronisasi yang dapat berupa titik, garis horizontal atau
vertikal.
Activity
diagram dapat dibagi menjadi beberapa object
swimlane untuk menggambarkan objek mana yang bertanggung jawab untuk
aktivitas tertentu.

5. 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 atar 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. Diawali dari apa
yang men-trigger aktivitas tersebut, proses dan perubahan apa saja yang
terjadi secara internal dan output apa yang dihasilkan.
Masing-masing
objek, termasuk aktor, memiliki lifeline vertikal.
Message
digambarkan sebagai garis berpanah dari satu
objek ke objek lainnya. Pada fase desain berikutnya, message akan
dipetakan menjadi operasi/metoda dari class.
Activation
bar menunjukkan lamanya eksekusi sebuah proses,
biasanya diawali dengan diterimanya sebuah message.
Untuk
objek-objek yang memiliki sifat khusus, standar UML mendefinisikan icon khusus
untuk objek boundary, controller dan persistent entity.

6. 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.

7. 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.

8. DEPELOYMENT 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.

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. Buarlah
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)
Data
seluruh tool yang mendukung UML, lengkap beserta harganya (dalam US dolar) bisa
anda
pelajari
di situs http://www.objectsbydesign.com/tools/umltools_byCompany.html
. Disamping itu,
daftar
tool UML berikut fungsi dan perbangingan kemampuannya juga dapat dilihat di
Pointer
Penting UML
Sebagai
referensi dalam mempelajari dan menggunakan UML, situs-situs yang merupakan
pointer
penting
adalah:
•
http://www.cetus-links.org/oo_uml.html
•
http://www.omg.org
•
http://www.omg.org/technology/uml/
•
http://www.rational.com/uml
•
http://www.uml.org/
0 komentar:
Posting Komentar