BAB I
PENDAHULUAN
1.
1.
LATAR BELAKANG
Saat ini piranti lunak semakin luas dan besar lingkupnya,
sehingga tidak bisa lagi dibuat asal-asalan. Piranti lunak saat ini seharusnya
dirancang dengan memperhatikan hal-hal seperti scalability, security,
dan eksekusi yang robust walaupun dalam kondisi yang sulit. Selain itu
arsitekturnya harus didefinisikan dengan jelas, agar bug mudah
ditemukan dan diperbaiki, bahkan oleh orang lain selain programmer aslinya.
Keuntungan lain dari perencanaan arsitektur yang matang adalah dimungkinkannya
penggunaan kembali modul atau komponen untuk aplikasi piranti lunak lain yang
membutuhkan fungsionalitas yang sama.
Pemodelan (modeling) adalah proses merancang
piranti lunak sebelum melakukan pengkodean (coding). Model piranti lunak
dapat dianalogikan seperti pembuatan blueprint pada pembangunan gedung. Membuat
model dari sebuah sistem yang kompleks sangatlah penting karena kita tidak
dapat memahami sistem semacam itu secara menyeluruh. Semakin komplek sebuah
sistem, semakin penting pula penggunaan teknik pemodelan yang baik.
Dengan
menggunakan model, diharapkan pengembangan piranti lunak dapat memenuhi semua
kebutuhan pengguna dengan lengkap dan tepat, termasuk faktor-faktor
seperti scalability, robustness, security, dan sebagainya.
Kesuksesan suatu pemodelan piranti lunak ditentukan oleh
tiga unsur, yang kemudian terkenal dengan sebuan segitiga sukses (the
triangle for success). Ketiga
unsur tersebut adalah metode pemodelan (notation), proses (process)
dan tool yang digunakan.
Memahami
notasi pemodelan tanpa mengetahui cara pemakaian yang sebenarnya (proses) akan
membuat proyek gagal. Dan pemahaman terhadap metode pemodelan dan proses
disempurnakan dengan penggunaan tool yang tepat
1.
2.
RUANG LINGKUP
Ruang lingkup dari pembahasan ini berkaitan dengan
pengenalan UML serta membahas tentang berbagai macam diagram yang ada dalam
UML. Dimana diagram tersebut merupakan sebuah artifak dalam pengembangan
sistem, jumlah diagram tersebut ada 8 buah, yaitu Class diagram /
Object diagram, Statechart diagram, Component diagram, Deployment diagram, Use
case diagram, Sequence diagram, Collaboration diagram, Activity diagram.
1.
3. TUJUAN
Tujuan dari penulisan ini adalah untuk menjelaskan UML
sebagai suatu bahasa permodelan modern pengembangan piranti l unak yang
sering dikaitkan erat dengan OOAD. Serta menjelaskan tujuan dari UML itu
sendiri bagi pembaca paper ini.
1.
4.
METODE PENULISAN
Metodologi
penulisan yang digunakan didalam penulisan ini yaitu:
· Metode
pengumpulan data
Metode
yang digunakan untuk mengumpulkan data untuk penulisan ini adalah
studi pustaka. Studi pustaka ini dilakukan dengan cara membaca dan meringkas literatur
yang ada dan mengumpulkan informasi yang berhubungan dengan topik paper ini
melalui internet.
BAB II
PEMBAHASAN MASALAH
2.1.
PENGERTIAN
UML
UML (Unified Modeling Language)
adalah sebuah bahasa untuk menetukan, visualisasi, kontruksi, dan
mendokumentasikan artifact (bagian dari informasi yang digunakan atau
dihasilkan dalam suatu proses pembuatan perangkat lunak. Artifact dapat berupa
model, deskripsi atau perangkat lunak) dari system perangkat lunak, seperti
pada pemodelan bisnis dan system non perangkat lunak lainnya.
UML merupakan suatu kumpulan teknik
terbaik yang telah terbukti sukses dalam memodelkan system yang besar dan
kompleks. UML tidak hanya digunakan dalam proses pemodelan perangkat lunak,
namun hampir dalam semua bidang yang membutuhkan pemodelan
2.2.
SEJARAH
UML
UML dimulai secara resmi pada
oktober 1994, ketika Rumbaugh bergabung dengan Booch pada Relational Software
Corporation. Proyek ini memfokuskan pada penyatuan metode Booch dan OMT. UML
versi 0.8 merupakan metode penyatuan yang dirilis pada bulan Oktober 1995.
Dalam waktu yang sama, Jacobson bergabung dengan Relational dan cakupan dari
UML semakin luas sampai diluar perusahaan OOSE. Dokumentasi UML versi 0.9
akhirnya dirilis pada bulan Juni 1996. Meskipun pada tahun 1996 ini melihat dan
menerima feedback dari komunitas Software Engineering . Dalam waktu tersebut, menjadi
lebih jelas bahwa beberapa organisasi perangkat lunak melihat UML sebagai
strategi dari bisnisnya. Kemudian dibangunlah UML Consortium dengan beberapa
organisasi yang akan menyumbangkan sumber dayanya untuk bekerja, mengembangkan,
dan melengkapi UML.
Di sini beberapa partner yang
berkontribusi pada UML 1.0, diantaranya Digital Equipment Corporation,
Hewlett-Packard, I-Logix, Intellicorp, IBM, ICON Computing, MCI Systemhouse,
Microsoft, Oracle, Relational, Texas Instruments dan Unisys. Dari kolaborasi ini
dihasilkan UML 1.0 yang merupakan bahasa pemodelan yang ditetapkan secara baik,
expressive, kuat, dan cocok untuk lingkungan masalah yang luas. UML 1.0
ditawarkan menjadi standarisasi dari Object Management Group (OMG). Dan pada
Januari 1997 dijadikan sebagai standar bahasa pemodelan.
Antara Januari–Juli 1997 gabungan
group tersebut memperluas kontribusinya sebagai hasil respon dari OMG dengan
memasukkan Adersen Consulting, Ericsson, ObjectTimeLimeted, Platinum
Technology, Ptech, Reich Technologies, Softeam, Sterling Software dan Taskon.
Revisi dari versi UML (versi 1.1) ditawarkan kepada OMG sebagai standarisasi
pada bulan Juli 1997. Dan pada bulan September 1997, versi ini dierima oleh OMG
Analysis dan Design Task Force (ADTF) dan OMG ArchitectureBoard. Dan Akhirnya
pada Juli 1997 UML versi 1.1 menjadi standarisasi.
Pemeliharaan UML terus dipegang oleh
OMG Revision Task Force (RTF) yang dipimpin oleh Cris Kobryn. RTP merilis
editorial dari UML 1.2 pada Juni 1998. Dan pada tahun 1998 RTF juga merilis UML
1.3 disertai dengan user guide dan memberikan technical cleanup
2.3.
BAGIAN-BAGIAN
UML
Bagian-bagian utama dari UML adalah view, diagram,
model element, dan general mechanism.
a. View
View digunakan
untuk melihat sistem yang dimodelkan dari beberapa aspek yang
berbeda. View bukan melihat grafik, tapi merupakan suatu abstraksi
yang berisi sejumlah diagram.
Beberapa
jenis view dalam UML antara lain: use case
view, logical view, component view, concurrency
view,dan deployment view.
b. Use
case view
Mendeskripsikan
fungsionalitas sistem yang seharusnya dilakukan sesuai yang
diinginkan external actors. Actor yang berinteraksi dengan
sistem dapat berupa user atau sistem lainnya.
View ini
digambarkan dalam use case diagramsdan kadang-kadang dengan activity
diagrams. Viewini digunakan terutama untuk pelanggan, perancang
(designer), pengembang (developer), dan penguji sistem (tester).
c. Logical view
Mendeskripsikan
bagaimana fungsionalitas dari sistem, struktur statis (class,
object,danrelationship ) dan kolaborasi dinamis yang terjadi
ketika object mengirim pesan ke object lain dalam suatu
fungsi tertentu.
View ini
digambarkan dalam class diagrams untuk struktur statis dan
dalam state, sequence, collaboration, dan activity diagram untuk
model dinamisnya. View ini digunakan untuk perancang (designer) dan
pengembang (developer).
d. Component
view
Mendeskripsikan
implementasi dan ketergantungan modul. Komponen yang merupakan tipe
lainnya dari code module diperlihatkan dengan struktur dan
ketergantungannya juga alokasi sumber daya komponen dan informasi
administrative lainnya.
View ini
digambarkan dalam component view dan digunakan untuk pengembang
(developer).
e. Concurrency
view
Membagi
sistem ke dalam proses dan prosesor.View ini digambarkan dalam diagram dinamis
(state, sequence, collaboration, dan activity diagrams) dan diagram
implementasi (component dan deployment diagrams) serta digunakan
untuk pengembang (developer), pengintegrasi (integrator), dan penguji (tester).
f. Deployment
view
Mendeskripsikan
fisik dari sistem seperti komputer dan perangkat (nodes) dan bagaimana
hubungannya dengan lainnya.
View ini
digambarkan dalam deployment diagramsdan digunakan untuk pengembang
(developer), pengintegrasi (integrator), dan penguji (tester).
g. Diagram
Diagram
berbentuk grafik yang menunjukkan simbol elemen model yang disusun untuk
mengilustrasikan bagian atau aspek tertentu dari sistem. Sebuah diagram
merupakan bagian dari suatu view tertentu dan ketika digambarkan
biasanya dialokasikan untuk view tertentu. Adapun jenis diagram antara lain :
1.
Use Case Diagram
Use case adalah abstraksi dari interaksi antara system dan
actor. Use case bekerja dengan cara mendeskripsikan tipe interaksi antara user
sebuah system dengan sistemnya sendiri melalui sebuah cerita bagaimana sebuah
system dipakai. Use casemerupakan konstruksi untuk mendeskripsikan
bagaimana system akan terlihat di mata user. Sedangkan use case diagram
memfasilitasi komunikasi diantara analis dan pengguna serta antara analis dan
client.
2. Class Diagram
Class adalah dekripsi kelompok obyek-obyek dengan property,
perilaku (operasi) dan relasi yang sama. Sehingga dengan adanya class diagram
dapat memberikan pandangan global atas sebuah system. Hal tersebut tercermin
dari class- class yang ada dan relasinya satu dengan yang lainnya. Sebuah
sistem biasanya mempunyai beberapa class diagram. Class diagram
sangat membantu dalam visualisasi struktur kelas dari suatu system.
3.
Component Diagram
Component software merupakan bagian fisik dari sebuah
system, karena menetap di komputer tidak berada di benak para analis. Komponent
merupakan implementasi software dari sebuah atau lebih class. Komponent dapat
berupa source code, komponent biner, atau executable component.
Sebuah komponent berisi informasi tentang logic class atau class yang
diimplementasikan sehingga membuat pemetaan
dari logicalview ke component view.Sehingga component diagram
merepresentasikan dunia riil yaitu component software yang mengandung
component, interface dan relationship.
4.
Deployment Diagram
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.
5.
State Diagram
Menggambarkan semua state (kondisi) yang dimiliki
oleh suatu object dari suatu class dan keadaan yang
menyebabkan state berubah. Kejadian dapat
berupa object lain yang mengirim pesan. State class tidak
digambarkan untuk semua class, hanya yang mempunyai
sejumlah state yang terdefinisi dengan baik dan
kondisi class berubah oleh stateyang berbeda.
6.
Sequence Diagram
Sequence Diagram digunakan untuk menggambarkan perilaku
pada sebuah scenario. Kegunaannya untuk menunjukkan rangkaian pesan yang
dikirim antara object juga interaksi antaraobject, sesuatu yang
terjadi pada titik tertentu dalam eksekusi sistem.
7.
Collaboration Diagram
Menggambarkan kolaborasi dinamis sepertisequence diagrams.
Dalam menunjukkan pertukaran pesan, collaboration
diagrams menggambarkan objectdan hubungannya (mengacu ke konteks).
Jika penekannya pada waktu atau urutan gunakansequencediagrams, tapi jika
penekanannya pada konteks gunakan collaboration diagram.
8. Activity
Diagram
Menggambarkan rangkaian aliran dari aktivitas, digunakan
untuk mendeskripsikan aktifitas yang dibentuk dalam suatu operasi sehingga
dapat juga digunakan untuk aktifitas lainnya seperti use caseatau
interaksi.
2.4.
KONSEP
DASAR UML
Untuk dapat mememahami UML
diperlukan pemahaman tentang konsep bahasa
pemodelan
dan tiga eleman utama UML.Tiga elemen utama UML antara lain:
a. Buiding Bloks
Building
bloks ini terdapat beberapa bagian ;
Benda
/ Things / Objek
Objek merupakan bagian paling statik
dari sebuah model, yang menjelaskan elemen – elemen lainnya dari sebuah konsep.
Bentuk
dari beberapa objek:
1)Classes,
sekelompok dari object yang mempunyai atribute, operasi, dan hubungan yang
semantic.
2)Interfaces, antar-muka yang menghubungkan dan melayani antarkelas 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
sebuahcoll aborati on.
5)Nodes,
bentuk fisik dari elemen – elemen yang ada pada saat dijalankannya sebuah
system
b. Hubungan / Relationship
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
casesdan collaborations.
c. Bagan atau Diagrams
Diagram adalah yang menggambarkan
permasalahan maupun solusi dari
permasalahan suatu model. UML mempunyai 9 diagram, yaitu;
permasalahan suatu model. UML mempunyai 9 diagram, yaitu;
1)Diagram Use Case, menggambarkan apa saja aktifitas
yang dilakukan oleh suatu sistem dari sudut pandang pengamatan luar.
Diagram Use Case berguna dalam tiga
hal :
a.Menjelaskan fasilitas yang ada
(requirements)
b. Komunikas dengan klien
c. Membuat test dari kasus – kasus
secara umum
2)Diagram Class, memberikan pandangan secara luas
dari suatu sistem dengan menunjukan kelas – kelasnya dan hubungan mereka.
Diagram Class mempunyai 3 macam
relationalships (hubungan),
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.
3)Diagram Package dan Object,merupakan kumpulan elemen – elemen
logika UML yang bertujuan untuk mengelompokkan Diagram class yang lebih
kompleks.
4)DiagramSequence, merupakan salah satu diagramIntera
ction yang menjelaskan bagaimana suatu operasi itu dilakukan yang diatur
berdasarkan waktu.
5)DiagramCollaboration merupakan diagramInteraction
berfungsi membawa informasi yang sama dengan diagram Sequence, tetapi
lebih memusatkan atau memfokuskan pada kegiatan obyek dari waktu informasi
itu dikirimkan.
6)DiagramStateChart merupakan indikator yang menunjukan kemungkinan dari keadaan obyek dan proses yang menyebabkan perubahan pada keadaannya.
6)DiagramStateChart merupakan indikator yang menunjukan kemungkinan dari keadaan obyek dan proses yang menyebabkan perubahan pada keadaannya.
7)Diagram Activ ty, menunjukkan bagaimana aktifitas –
aktifitas tersebut bergantung satu sama lain. dan berfokus pada aktifitas –
aktifitas yang terjadi yang terkait dalam suatu proses tunggal.
8)DiagramComponent adalah sebuah kode – kode
modul yang merupakan fisik sebenarnya dari diagramC lass.
9)DiagramDeployment menerangkan bahwa konfigurasi
fisiksoftware
danhardware.
2.5.
KEUNGGULAN UML
·
Uniformity
Pengembang cukup menggunakan 1 metodologi dari tahap analsis
hingga perancangan. Memungkinkan merancang komponen antarmuka secara
terintegrasi bersama perancangan PL dan perancangan struktur data
·
Understandability
Kode yang dihasilkan dapat diorganisasi kedalam kelas-kelas
yangberhubungan dengan masalah sesungguhnya sehingga lebih mudah untuk
dipahami.
·
Stability
Kode program yang dihasilkan relatif stabil sepanjang waktu,
karena mendekati permasalahan yang sesungguhnya.
·
Reusability
Dengan metodologi berorientasi objek, dimungkinkan
penggunaan ulang kode, sehingga pada akhirnya akan sangat mempercepat waktu
pengembangan perangkat lunak (atau sistem informasi)
2.6.
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 tepatfungsionalitas yang harus disediakan oleh sistem. Kemudian perhalus use case diagram danlengkapi 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
buatlahsequence 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. Setiappackage atau domain dipecah menjadi hirarki class lengkap dengan atribut dan metodanya. Akan lebih baik jika untuk setiap class dibuat unit testuntuk 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 danrequirement 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 bersertacodenya. Model harus selalu sesuai dengan code yang aktual.
13. Piranti lunak siap dirilis.
2.7.
Tujuan Penggunaan UML
1.
Memberikan bahasa pemodelan yang bebas
dari berbagai bahas pemrograman dan proses rekayasa.
2.
Menyatukan praktek-praktek terbaik yang terdapat dalam pemodelan.
3.
Memberikan model yang siap pakai, bahsa
pemodelan visual yang ekspresif untuk mengembangkan dan saling menukar model
dengan mudah dan dimengerti secara umum.
4.
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.8.
Perangkat lunak yang mendukung pembuatan diagaram UML
StarUML
adalah sebuah proyek open source untuk mengembangkan cepat, fleksibel,extensible, featureful, dan bebas-tersedia UML / platform MDA
berjalan pada platformWin32.Tujuan dari proyek StarUML
adalah untuk membangun sebuah alat pemodelan perangkat lunak dan juga platform
yang menarik adalah pengganti alat UML komersial seperti Rational Rose, Bersama
dan sebagainya
Acceleo
adalah generator kode yang mengubah model menjadi
kode. Acceleo mudah digunakan dan menyediakan “dari rak” generator (Jee,. Bersih, Php …) dan template
editor untuk Eclipse.
ArgoUML
adalah open source UML modeling tool terkemuka
dan termasuk dukungan untuk semua diagram UML standar 1,4. Ini berjalan
pada setiap platform Java dan tersedia dalam bahasa sepuluh. ArgoUML
ditulis seluruhnya di Jawa dan menggunakan Java Kelas Foundation.Hal ini
memungkinkan ArgoUML untuk berjalan di hampir semua platform