MAKALAH
REKAYASA PERANGKAT LUNAK
Tentang
UNIFIED
MODELING LANGUAGE (UML)
Disusun
oleh :
NOVAN PRASTIYO
3121204054
PROGRAM STUDI SISTEM
INFORMASI (S1)
STMIK MASA DEPAN TANGERANG
OKTOBER 2015
1.
Pendahuluan
a.
Pendahuluan
Penggunaan
UML dalam industri terus meningkat.Ini merupakan standar terbuka yang
menjadikannya sebagai bahasa pemodelan yang umum dalam industri peranti lunak
dan pengembangan sistem.Singkatnya Unified Modelling Language (UML) adalah
sebuah “bahasa” yg telah menjadi standar dalam industri untuk visualisasi,
merancang dan mendokumentasikan sistem piranti lunak.UML menawarkan sebuah
standar untuk merancang model sebuah sistem.
Sampai era
tahun 1990 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, dsb. 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 bekerjasama dengan
kelompok/perusahaan lain yang menggunakan metodologi yang berlainan.
Dimulai
pada bulan Oktober 1994 Booch, Rumbaugh dan Jacobson, yang merupakan tiga tokoh
yang boleh dikata 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 ).
b. Tujuan Penggunaan UML
a.
Memberikan bahasa pemodelan yang bebas dari berbagai bahas pemrograman dan
proses rekayasa.
b.
Menyatukan praktek-praktek terbaik yang terdapat dalam pemodelan.
c. Memberikan model yang siap pakai, bahsa
pemodelan visual yang ekspresif untuk mengembangkan dan saling menukar model
dengan mudah dan dimengerti secara umum.
d. 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).
2.
Pengertian
Unified
Modeling Language (UML) adalah himpunan
struktur dan teknik untuk pemodelan desain program berorientasi objek (OOP)
serta aplikasinya. UML adalah metodologi
untuk mengembangkan sistem OOP dan sekelompok perangkat tool untuk mendukung
pengembangan sistem tersebut. UML mulai diperkenalkan oleh Object Management
Group, sebuah organisasi yang telah mengembangkan model, teknologi, dan standar
OOP sejak tahun 1980-an. Sekarang UML
sudah mulai banyak digunakan oleh para praktisi OOP. UML merupakan dasar bagi perangkat (tool) desain
berorientasi objek dari IBM.
UML adalah suatu bahasa yang digunakan untuk menentukan,
memvisualisasikan, membangun, dan mendokumentasikan suatu sistem informasi. UML
dikembangkan sebagai suatu alat untuk analisis dan desain berorientasi objek
oleh Grady Booch, Jim Rumbaugh, dan Ivar Jacobson Namun demikian UML dapat
digunakan untuk memahami dan mendokumentasikan setiap sistem informasi.
3. Perbandingan
dengan diagram konvensional
1) UML
biasa digunakan untuk mempresentasikan sistem kepada orang-orang yang tidak
mengerti tata-cara pemrograman, seperti orang-orang awam pada umumnya. (Client,
dll)
Hal ini dikarenakan UML memakai penggambaran logika
algoritma suatu program.
Sedangkan
DFD dan ERD kebalikannya, biasa digunakan untuk mempresentasikan sistem kepada
orang-orang yang mengerti tata cara pemrograman (programmer, dll).
Hal
ini dikarenakan DFD memakai penggambaran sistem secara umum. Dari proses, data,
basis data, dan entitas.
2) DFD
& ERD adalah suatu diagram yang menggunakan notasi-notasi untuk
menggambarkan arus dari data sistem, yang penggunaannya sangat membantu untuk
memahami sistem secara logika, tersruktur dan jelas.
DFD
merupakan alat bantu dalam menggambarkan atau menjelaskan sistem yang sedang
berjalan logis.
Sedangkan
Unified Modeling Language (UML) adalah bahasa spesifikasi standar untuk
mendokumentasikan, menspesifikasikan, dan membangun sistem perangkat lunak.UML
tidak berdasarkan pada bahasa pemrograman tertentu.Standar spesifikasi UML
dijadikan standar defacto oleh OMG (Object Management Group) pada tahun
1997.UML yang berorientasikan object mempunyai beberapa notasi standar
3) UML lebih
mudah digunakan untuk belajar pada tahap awal bagi orang-orang yang belum
mengerti bahasa pemrograman.
Sedangkan DFD & ERD merupakan
bahasa pemrograman yang digunakan oleh orang yang sudah ahli dalam bidang
program dan tentu saja lebih sulit digunakan daripada UML, dan juga bersifat
lebih spesifik.
4.
Konsep Dasar
1.
Konsep
dasar UML dapat dirangkumkan seperti dibawah ini :
Major
Area
|
View
|
Diagrams
|
Main
Concepts
|
structural
|
static
view
|
class
diagram
|
class,
association, generalization, dependency, realization, interface
|
|
use
case view
|
use
case diagram
|
use
case, actor, association, extend, include, use case generalization
|
|
implementation
view
|
component
diagram
|
component,
interface, dependency, realization
|
dynamic
|
state
machine view
|
statechart
diagram
|
state,
event, transition, action
|
|
actifity
view
|
activity
diagram
|
state,
activity, completion transition, fork, join
|
|
interaction
view
|
sequence
diagram
|
interaction,
object, message, activation
|
|
colaborating
diagram
|
collaborating,
interaction, collaboration rule, message
|
model
management
|
model
management view
|
class
diagram
|
package,
subsystem, model
|
extensibility
|
All
|
All
|
constraint,
stereotype, tagged values
|
Abstraksi
konsep dasar UML yang terdiri dari structural classification ,dynamic
behavior , dan model management , bisa kita pahami dengan mudah
apabila kita melihat gambar diatas dari Diagrams . Main concepts bisa
kita pandang sebagai term yang akan muncul pada saat kita membuat diagram. Dan
view adalah kategori dari diagaram tersebut. Lalu darimana kita mulai ? 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
1. Langkah-langkah
penggunaan Unified Modeling Language (UML)
Menurut
Henderi (2008:6), langkah-langkah penggunaan Unified Modeling Language (UML)
sebagai berikut:
1.
Buatlah
daftar business process dari level tertinggi untuk mendefinisikan
aktivitas dan proses yang mungkin muncul.
2.
Petakan
use case untuk setiap business process untuk mendefinisikan
dengan tepat fungsional yang harus disediakan oleh sistem, kemudian perhalus use
casediagram dan lengkapi dengan requirement, constraints dan
catatan-catatan lain.
3.
Buatlah
deployment diagram secara kasar untuk mendefinisikan arsitektur fisik
sistem.
4.
Definisikan
requirementlainnon fungsional, security dan sebagainya yang juga
harus disediakan oleh sistem.
5.
Berdasarkan
use case diagram, mulailah membuat activity diagram.
6.
Definisikan
obyek-obyek level atas package atau domain dan buatlah sequence
dan/atau collaboration untuk tiap alur pekerjaan, jika sebuah use
case memiliki kemungkinan alur normal dan error, buat lagi satu
diagram untuk masing-masing alur.
7.
Buatlah
rancangan user interface model yang menyediakan antar muka bagi pengguna
untuk menjalankan skenario use case.
8.
Berdasarkan
model-model yang sudah ada, buatlah class diagram. Setiap package atau
domian dipecah menjadi hirarki class lengkap dengan atribut
dan metodenya. 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 pengelompokkan class
menjadi komponen-komponen karena itu buatlah component diagram pada
tahap ini. Juga, definisikan test integrasi untuk setiap komponen
meyakinkan ia bereaksi 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 tepat digunakan: Pendekatan use case dengan mengassign
setiap use case kepada tim pengembang tertentu untuk mengembangkan unit
kode yang lengkap dengan test dan pendekatan komponen yaitu mengassign
setiap komponen kepada tim pengembang tertentu.
2. Konsep
Pemodelan Menggunakan UML
Menurut Nugroho (2010:10),
Sesungguhnya tidak ada batasan yag tegas diantara berbagai konsep dan
konstruksi dalam UML, tetapi untuk menyederhanakannya, kita membagi sejumlah
besar konsep dan dalam UML menjadi beberapa view. Suatu view
sendiri pada dasarnya merupakan sejumlah konstruksi pemodelan UML yang
merepresentasikan suatu aspek tertentu dari sistem atau perangkat lunak yang
sedang kita kembangkan. Pada peringkat paling atas, view-view
sesungguhnya dapat dibagi menjadi tiga area utama, yaitu: klasifikasi
struktural (structural classification), perilaku dinamis (dinamic
behaviour), serta pengolahan atau manajemen model (model management).
3. Bangunan
dasar Metodologi Unified Modeling Language (UML)
Menurut Nugroho (2010:117). Bangunan
dasar metodologi UMLmenggunakan tiga bangunan dasar untuk mendeskripsikan
sistem/perangkat lunak yang akan dikembangkan, yaitu :
a. Sesuatu (things)
Ada 4 (empat) things dalamUML, yaitu:
1.
Structural
things merupakan
bagian yang relatif statis dalam model Unified Modeling Language (UML).
Bagian yang relatif statis dapat berupa elemen-elemen yang bersifat fisik
maupun konseptual.
2.
Behavioral
things merupakan
bagian yang dinamis pada model Unified Modeling Language (UML),
biasanya merupakan kata kerja dari model Unified Modeling Language (UML),
yang mencerminkan perilaku sepanjang ruang dan waktu.
3.
Grouping
things merupakan
bagian pengorganisasi dalam Unified Modeling Language (UML). Dalam
penggambaran model yang rumit kadang diperlukan penggambaran paket yang
menyederhanakan model. Paket-paket ini kemudian dapat didekomposisi lebih
lanjut. Paket berguna bagi pengelompokkan sesuatu, misalnya model-model dan
subsistem-subsistem.
4.
Annotational
things merupakan
bagian yang memperjelas model Unified Modeling Language (UML)dan dapat
berupa komentar-komentar yang menjelaskan fungsi serta ciri-ciri setiap
elemen dalam model Unified Modeling Language (UML).
b. Relasi (Relationship)
Ada 4 (empat) macam relationship
dalam Unified Modeling Language (UML), yaitu:
1. Ketergantungan merupakan hubungan
dimana perubahan yang terjadi pada suatu elemen mandiri (independent)akan
mempengaruhi elemen yang bergantung padanya elemen yang tidak mandiri (dependent).
2. Asosiasi merupakan apa yang
menghubungkan antara objek satu dengan objek lainnya, bagaimana hubungan suatu
objek dengan objek lainnya. Suatu bentuk asosiasi adalah agregasi yang
menampilkan hubungan suatu objek dengan bagian-bagiannya.
3. Generalisasi merupakan hubungan
dimana objek anak (descendent) berbagi perilaku dan struktur data dari
objek yang ada diatasnya objek induk (ancestor). Arah dari atas ke bawah
dari objek induk ke objek anak dinamakan spesialisasi, sedangkan arah
berlawanan sebaliknya dari arah bawah ke atas dinamakan generalisasi.
4. Realisasi merupakan operasi yang
benar-benar dilakukan oleh suatu objek.
5. Use
Case Diagram
a. Pengertian
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 sistem 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- includefungsionalitas
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.
b. Kelebihan dan kelemahan Use Case
Diagram
Kelebihan:
· Interaksi antara pengguna dan system
lain dengan system yang akan di buat cukup tergambar dengan baik.
·
Penggambaran dengan sederhana
membuat identifikasi kebutuhan dengan use case dapat dengan lebih mudah untuk
dipahami.
·
Pendekatan identifikasi kebutuhan dapat
berdasarkan top down (keinginan dari manajemen level atas) maupun bottom up
(keinginan pengguna akhir).
·
Dapat meng-include (memasukkan)
fungsionalitas use case lain sebagai bagian dari proses dalam dirinya.
· Dapat di-include oleh lebih dari
satu use case lain, sehingga duplikasi fungsionalitas dapat dihindari dengan
cara menarik keluar fungsionalitas yang common.
·
Dapat meng-extend (memperpanjang)
use case lain dengan behaviour-nya sendiri.
· Sementara hubungan generalisasi
antar use case menunjukkan bahwa use case yang satu merupakan spesialisasi dari
yang lain.
Kelemahan:
·
Kekurangan mengenai data masih
kurang teridentifikasi dengan baik.
6.
Class Diagram
a.
Pengertian
Class
diagram digunakan untuk menampilkan kelas-kelas dan paket-paket di dalam
sistem.Class diagram memberikan gambaran system secara statis dan relasi antar
mereka.Biasanya, dibua beberapa class diagram untuk system tunggal. Beberapa
diagram akan menampilkan subset dari kelas-kelas dan relasinya. Dapat dibuat
beberapa diagram sesuai dengan yang diinginkan untuk mendapatkan gambaran
lengkap terhadap system yang dibangun.
Class
diagram adalah alat perancangan terbaik untuk tim pengembang. Diagram tersebut
membantu pengembang mendapatkan struktur system sebelum kode ditulis, dan
membantu untuk memastikan bahwa system adalah desain terbaik.
-
Kelas
Kelas
adalah sesuatu yang membungkus informasi dan perilaku. Secara tradisional,
sistem dibangun dengan ide dasar bahwa akan menyimpan informasi pada sisi baris
data dan data perilaku pengolahnya pada sisi aplikasi. Salah satu perbedaan
terstruktur dengan pendekatan berorientasi obyek adalah
pada
berorientasi obyek menggabungkan informasi dan perilaku pengolah informasi dan
menyembunyikan semua kedalam sesuatu yang disebut kelas.
Bagian
paling atas pada notasi Class digunakan sebagai nama kelas, dan secara opsional
juga digunakan stereotype-nya. Bagian tengah digunakan untuk menyimpan
atribut, dan bagian paling bawah digunakan menyimpan operasi.
-
Menentukan
kelas
Cara yang
baik untuk menemukan kelas-kelas adalah mulai dari memperhatikan aliran
kejadian (flow of event) dari suatu use case. Perhatikan kata
benda didalam aliran kejadian, mungkin merupakan salah satu dari empat hal
berikut :
1.
Actor
2.
Kelas
3.
Atribut dari kelas
4.
Ekspresi, bukan actor, bukan kelas,
dan bukan atribut.
Dengan
melakukan seleksi kata benda dalam aliran kejadian, dapat ditemukan kelas-kelas
dalam system.Alternative lainnya, dapat di uji obyek-obyek dalam sequence
diagram dan collaboration diagram.
Ada dua
cara yang biasa dilakukan berkaitan dengan urutan pendefinisian antar
kelas-kelas dalam class diagram dan sequence diagram atau collaboration
diagram. Yang pertama, dengan membuat sequence diagram atau collaboration
diagram lebih dulu.Kemudian melanjutkannya dengan membuat class
diagram.Sebaliknya, yang kedua, yaitu dengan menemukan kelas-kelas dan
membuat class diagram terlebih dahulu, kemudian menggunakan kelas-kelas
terebut sebagai “Kamus” obyek-obyek dan relasinya untuk membuat sequence
diagram atau collaboration diagram.
b.
Class Diagram Element
·
Classes name
·
Atribut
·
Metoda
c.
Atribut dan operation (metoda) dapat memiliki salah
satu sifat berikut :
1.
Private, hanya bisa dipanggil dari dlm kelas itu sendiri. methode/atribut
diawali “-“.
2.
Protected, hanya dapat dipanggil oleh class yang bersangkutan dan class
turunannya. methode diawali dg tanda “#”.
3.
Public, dapat dipanggil dari semua objek. methode/atribut diawali tanda
“+”
d. 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 m enunjukkan 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.
7.
Statechart Diagram
a. Pengertian
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.
b.
Tujuan
·
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.
8.
Activity Diagram
a. Pengertian
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 (
forkdan 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.
b. Tujuan
·
Untuk
membuat model sebuah task (tugas).
·
Untuk
menggambarkan fungsi sistem yang dibuat dengan use case.
·
Untuk
menggambarkan logik dari sebuah operasi.
·
Menggambarkan
proses bisnis dan urutan aktivitas dalam sebuah proses
·
Dipakai
pada business modeling untuk memperlihatkan urutan aktifitas proses
bisnis
·
Struktur
diagram ini mirip flowchart atau Data Flow Diagram pada
perancangan terstruktur
·
Sangat
bermanfaat apabila kita membuat diagram ini terlebih dahulu
dalam memodelkan
sebuah proses untuk membantu memahami proses secara
keseluruhan
·
Activity
diagram dibuat berdasarkan sebuah atau beberapa use case pada use case diagram
9.
Sequence Diagram
a. Pengertian
Sequence diagram adalah suatu
diagram yang menggambarkan interaksi antar obyek dan mengindikasikan komunikasi
diantara obyek-obyek tersebut. Diagram ini juga menunjukkan serangkaian pesan
yang dipertukarkan oleh obyek – obyek yang melakukan suatu tugas atau aksi
tertentu. Obyek – obyek tersebut kemudian diurutkan dari kiri ke kanan, aktor
yang menginisiasi interaksi biasanya ditaruh di paling kiri dari diagram.Pada
diagram ini, dimensi vertikal merepresentasikan waktu. Bagian paling atas dari
diagram menjadi titik awal dan waktu berjalan ke bawah sampai dengan bagian
dasar dari diagram. Garis Vertical, disebut lifeline, dilekatkan
pada setiap obyek atau aktor. Kemudian, lifeline tersebut digambarkan menjadi
kotak ketika obyek melakukan suatu operasi , kotak tersebut disebut activation
box. Obyek dikatakan mempunyai live activation pada saat tersebut.Pesan yang
dipertukarkan antar obyek digambarkan sebagai sebuah anak panah antara
activation box pengirim dan penerima. Kemudian diatasnya diberikan label
pesan.
b. Tujuan penggunaan sequence diagram :
1. Mengkomunikasikan requirement kepada tim
teknis karena diagram ini dapat lebih mudah untuk dielaborasi menjadi model
design.
2. Merupakan diagram yang paling cocok untuk
mengembangkan model deskripsi use-case menjadi spesifikasi design.
c. Waktu
Penggunaan sequence diagram :
1. Pada tahap discovery : Sequence diagram dari
use case yang dipilih dibuat oleh Business Analyst.
2. Pada tahap construction : System analyst
menggunakan use case dan sequence diagram yang dibuat oleh Business Analyst
sebagai input untuk pembuatan technical sequence diagram yang akan
ditinjau kembali oleh Business Analyst
3. Pada tahap final verification and validation :
sequence diagram digunakan untuk merancang test dari use-case scenario.