Tugas Makalah Rekayasa Perangkat Lunak
Dosen Ibu Atin Triwahyuni, S.T.,
M.Eng.
Disusun
oleh
Nama
: Toni Saputra
NPM
: 011120105
Prodi
: Teknik Informatika
STMIK/POLTEK
PalComTech
Semester
Genap
Palembang
UNIFIED MODELLING LANGUAGE (UML)
1. Sejarah
Singkat Unified Modelling Language (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 sistem 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.
2. Tinjauan
Mengenai UML
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 sebutan 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.
3. Artifact
UML
UML
menyediakan beberapa notasi dan artifact standar yang bisa digunakan sebagai
alat komunikasi bagi para pelaku dalam proses analisis dan desain. Artifact
didalam UML didefinisikan sebagai informasi dalam bentuk yang digunakan atau
dihasilkan dalam proses pengembangan perangkat. Contohnya adalah source code
yang dihasilkan oleh proses pemrograman. Yang harus diperhatikan untuk menjaga
konsistensi antar artifact selama proses analisis dan desain adalah bahwa
setiap perubahan yang terjadi pada satu artifact harus juga dilakukan pada artifact
sebelumnya. Untuk membuat suatu model, UML memiliki diagram grafis sebagai
berikut :
·
Use case diagram
·
Class diagram
·
Behavior diagram
·
Statechart diagram
·
Activity diagram
·
Interaction diagram
·
Sequence diagram
·
Collaboration diagram
·
Implementation diagram
·
Component diagram
·
Deployment diagram
Diagram-diagram
tersebut diberi nama berdasarkan sudut pandang yang berbeda-beda terhadap
sistem dalam proses analisis atau rekayasa. Dibuatnya berbagai jenis diagram
diatas karena :
·
Setiap sistem yang kompleks selalu
paling baik jika didekati melalui himpunan berbagai sudut pandang yang kecil
yang satu sama lain hampir saling bebas (independent). Sudut pandang tunggal
senantiasa tidak mencukupi untuk melihat sistem yang besar dan kompleks.
·
Diagram yang berbeda-beda tersebut dapat
menyatakan tingkatan yang berbeda-beda dalam proses rekayasa.
·
Diagram-diagram tersebut dibuat agar
model yang dibuat semakin mendekati realitas.
4. Semantik
dalam UML
OMG
telah menetapkan semantik (makna istilah) semua notasi UML dalam model struktural
dan model behavior. Model struktural (model statis), menekankan stuktur obyek
dalam sebuah sistem, menyangkut kelas-kelas, interface, atribut dan hubungan
antar komponen. Model behavioral (model dinamis), menekankan perilaku obyek
dalam sebuah sistem, termasuk metode, interaksi, kolaborasi dan state history.
5. Tujuan
UML
Tujuan
utama UML diantaranya untuk :
·
Memberikan model yang siap pakai, bahasa
pemodelan visual yang ekspresif untuk mengembangkan dan saling menukar model
dengan mudah dan dimengerti secara umum.
·
Memberikan bahasa pemodelan yang bebas
dari berbagai bahasa pemrograman dan proses rekayasa.
·
Menyatukan praktek-praktek terbaik yang
terdapat dalam bahasa pemodelan.
6. Cakupan
UML
Pertama,
UML menggabungkan konsep Booch, OMT dan OOSE, sehingga UML merupakan suatu
bahasa pemodelan tunggal yang umum dan digunakan secara luas oleh para user
ketiga metode tersebut dan bahkan para user metode lainnya.
Kedua,
UML menekankan pada apa yang dapat dikerjakan dengan metode-meode tersebut.
Ketiga,
UML berfokus pada suatu bahasa pemodelan standar, bahkan pada proses standar.
Meskipun UML harus diaplikasikan dalam konteks sebuah proses, dari pengalaman,
bahwa organisasi dan masalah yang berbeda juga memerlukan proses yang berbeda
pula.
UML
tidak mencakup :
·
Bahasa Pemrograman UML adalah bahasa
pemodelan visual, bukan dimaksudkan untuk menjadi suatu bahasa pemrograman
visual, tetapi UML memberikan arah untuk bergerak kearah kode.
·
Tool (software aplikasi) pemodelan membuat
standar sebuah bahasa diperlukan oleh tool-tool dan proses. UML mendefinisikan
semantik dan notasi, bukan sebuah tool. Contoh tool yang menggunakan UML
sebagai bahasanya adalah Rational Rose dan Enterprise Architect.
·
Proses rekayasa
UML
digunakan sebagai bahasa dalam proyek dengan proses yang berbeda-beda. UML
bebas dari proses dan mendefinisikan sebuah proses standar bukan tujuan UML
atau RFP dari OMG. Dalam pembahasan ini kita akan menggunakan sebuah proses
yang dikeluarkan Rational Software, yaitu Rational Unified Process (RUP).
7. Notasi
dalam UML
1.
Actor
Actor menggambarkan
segala pengguna software aplikasi (user).
Actor memberikan suatu gambaran jelas tentang apa yang harus dikerjakan
software aplikasi. Sebagai contoh sebuah actor dapat memberikan input kedalam
dan menerima informasi dari software aplikasi, perlu dicatat bahwa sebuah actor
berinteraksi dengan use case, tetapi tidak memiliki kontrol atas use case.
Sebuah actor mungkin seorang manusia, satu device, hardware atau sistem informasi
lainnya.
2.
Use Case
Use case menjelaskan
urutan kegiatan yang dilakukan actor dan sistem untuk mencapai suatu tujuan
tertentu. Walaupun menjelaskan kegiatan, namun use case hanya menjelaskan apa
yang dilakukan oleh actor dan sistem bukan bagaimana actor dan sistem melakukan
kegiatan tersebut. Use-case Konkret adalah use case yang dibuat langsung karena
keperluan actor. Actor dapat melihat dan berinisiatif terhadapnya. Use-case
Abstrak adalah use case yang tidak pernah berdiri sendiri. Use case abstrak
senantiasa termasuk didalam (include),
diperluas dari (extend) atau memperumum
(generalize) use case lainnya. Untuk
menggambarkannya dalam use case model biasanya digunakan association
relationship yang memiliki stereotype
include, extend atau generalization
relationship. Hubungan include menggambarkan bahwa suatu use case seluruhnya
meliputi fungsionalitas dari use case lainnya. Hubungan extend antar use case
berarti bahwa satu use case merupakan tambahan fungsionalitas dari use case
yang lain jika kondisi atau syarat tertentu terpenuhi.
3.
Class
Class merupakan
pembentuk utama dari sistem berorientasi obyek, karena class menunjukkan
kumpulan obyek yang memiliki atribut dan operasi yang sama. Class digunakan
untuk mengimplementasikan interface. Class digunakan untuk mengabstraksikan
elemen-elemen dari sistem yang sedang dibangun. Class bisa merepresentasikan
baik perangkat lunak maupun perangkat keras, baik konsep maupun benda nyata.
Notasi class berbentuk persegi panjang berisi 3 bagian: persegi panjang paling
atas untuk nama class, persegi panjang paling bawah untuk operasi, dan persegi
panjang ditengah untuk atribut. Atribut digunakan untuk menyimpan informasi.
Nama atribut menggunakan kata benda yang bisa dengan jelas merepresentasikan
informasi yang tersimpan didalamnya. Operasi menunjukkan sesuatu yang bisa
dilakukan oleh obyek dan menggunakan kata kerja.
4.
Interface
Interface merupakan
kumpulan operasi tanpa implementasi dari suatu class. Implementasi operasi
dalam interface dijabarkan oleh operasi didalam class. Oleh karena itu
keberadaan interface selalu disertai oleh class yang mengimplementasikan
operasinya. Interface ini merupakan salah satu cara mewujudkan prinsip
enkapsulasi dalam obyek.
5.
Interaction
Interaction digunakan
untuk menunjukkan baik aliran pesan atau informasi antar obyek maupun hubungan
antar obyek. Biasanya interaction ini dilengkapi juga dengan teks bernama
operation signature yang tersusun dari nama operasi, parameter yang dikirim dan
tipe parameter yang dikembalikan.
6.
Note
Note digunakan untuk
memberikan keterangan atau komentar tambahan dari suatu elemen sehingga bisa
langsung terlampir dalam model. Note ini bisa disertakan ke semua elemen notasi
yang lain.
7.
Dependency
Dependency merupakan
relasi yang menunjukan bahwa perubahan pada salah satu elemen memberi pengaruh
pada elemen lain. Elemen yang ada di bagian tanda panah adalah elemen yang
tergantung pada elemen yang ada dibagian tanpa tanda panah. Terdapat 2
stereotype dari dependency, yaitu include
dan extend. Include menunjukkan bahwa suatu bagian dari elemen (yang ada
digaris tanpa panah) memicu eksekusi bagian dari elemen lain (yang ada di garis
dengan panah). Extend menunjukkan
bahwa suatu bagian dari elemen di garis tanpa panah bisa disisipkan kedalam
elemen yang ada di garis dengan panah.
8.
Association
Association
menggambarkan navigasi antar class (navigation), berapa banyak obyek lain yang
bisa berhubungan dengan satu obyek (multiplicity antar class) dan apakah suatu
class menjadi bagian dari class lainnya (aggregation). Navigation dilambangkan
dengan penambahan tanda panah di akhir garis. Bidirectional navigation
menunjukkan bahwa dengan mengetahui salah satu class bisa didapatkan informasi
dari class lainnya. Sementara UniDirectional
navigation hanya dengan mengetahui
class diujung garis association tanpa panah kita bisa mendapatkan informasi
dari class di ujung dengan panah, tetapi tidak sebaliknya. Aggregation mengacu
pada hubungan “has-a”, yaitu bahwa suatu class memiliki class lain, misalnya
Rumah memiliki class Kamar.
9.
Generalization
Generalization
menunjukkan hubungan antara elemen yang lebih umum ke elemen yang lebih
spesifik. Dengan generalization, class yang lebih spesifik (subclass) akan menurunkan
atribut dan operasi dari class yang lebih umum (superclass) atau “subclass is
superclass”. Dengan menggunakan notasi generalization ini, konsep inheritance
dari prinsip hirarki dapat dimodelkan.
10.
Realization
Realization menunjukkan
hubungan bahwa elemen yang ada di bagian tanpa panah akan merealisasikan apa
yang dinyatakan oleh elemen yang ada di bagian dengan panah. Misalnya class
merealisasikan package, component merealisasikan class atau interface.
ANALISIS DOMAIN
Firesmith [FIR93]
menggambarkan analisis domain perangkat lunak dengan cara sebagai berikut:
Analisis
domain perangkat lunak adalah identifikasi, analisis dan spesifikasi persyaratan
umum suatu domai aplikasi spesigik, yang secara khas digunakan pada proyek
bertingakat pada domain aplikasi itu. Anlisis domain berorientasi objek adalah
identifikasi, analisis, dan spesifikasi kemampuan reusable yang umum di dalam
suatu domain aplikasi khusus, dalam bentuk objek umum, kelas, subassembly, dan
kerangka kerja.
Aktivitas
yang terjadi sebelum proses analisis domain :
·
Tentukan domain yang akan diselidiki.
·
Kategorikan item yang diekstrak dari
domain tersebut.
·
Kumpulkan sampel representatif dari
aplikasi di dalam domain tersebut.
·
Analisis masing-masing aplikasi pada
domain tersebut.
·
Kembangkan model analisis untuk objek
tersebut
PROSES
OOA
·
Use Case
·
Pemodelan Kelas-tanggung
jawab-kolaborator
o
Kelas.
o
Tanggung jawab.
o
Kolaborator.
·
Pendefinisian stuktur dan hirarki
Begitu
kelas dan objek sudah diidentifikasi dengan menggunakan model CRC, analis mulai
untuk berfokus pada stuktur model kelas dan hirarki resultan yang muncul pada
saat kelas dan subkelas muncul.
·
Pendefinisian subjek dan sub sistem
Model
analisis untuk aplikasi yang kompleks memiliki ratusan kelas dan puluhan
struktur.
§ Model
Hubungan Objek
Model hubungan objek dapat diperoleh dalam
3 langkah:
Ø Dengan
menggunakan kartu indeks.
Ø Dengan
mengkaji kartu indeks model CRC.
Ø Begitu
yang telah diberi nama terbangun.
Model Tingkah Laku
Objek
·
Identifikasi event dengan use case.
·
Representasi keadaan.
§ Keadaan
dari masing-masing objek ketika sistem melakukan fungsinya.
§
Keadaan sistem pada saat diselidiki dari
luar ketika sistem melakukan fungsinya.
