Pengantar 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.
Sinopsis 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. Unified Modelling Language
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.
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, C# atau 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).
Pengembangan UML dimulai pada Oktober
1994 oleh Booch dan Rumbaugh. Jacobson bergabung pada musim gugur 1995. Sejak
tahun 1996 pengembangan tersebut dikoordinasikan oleh Object Management Group
(OMG – http://www.omg.org ). Tahun 1997 UML versi 1.1 muncul, dan kini dengan
versi 1.5 yang dirilis bulan Maret 2003, UML telah menjadi standar bahasa
pemodelan untuk aplikasi berorientasi objek.
UML mendefinisikan diagram-diagram
berikut ini :
• use case diagram
• class diagram
• behaviour diagram :
-- statechart diagram
-- activity diagram
• interaction diagram :
-- sequence diagram --
collaboration diagram
• component diagram
• deployment diagram
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 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-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.
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 juga dapat membuat diagram yang
terdiri atas package.
Contoh package :
Hubungan antar Class 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.
Agregasi, yaitu hubungan yang menyatakan bagian (“terdiri atas..”).
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.
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.
StadeChart 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.
Tidak ada komentar:
Posting Komentar