03-Pengantar UML - Elista

advertisement
BAB 3
PENGANTAR UML
Catur Iswahyudi + Edhy Sutanta
Materi :
• Pendahuluan
• Pengertian UML
• Konsep Dasar UML
• Diagram UML
• Pengembangan Software Dengan UML
• Tool yang Mendukung UML
Pendahuluan
• Pemodelan (modelling) 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.
If No One Is Modelling, Why Should You ?
• Why then if Bill Gates is making billions writing software
without a significant emphasis on formal modelling,
should I care about the UML ?
• The answer is that almost 80 percent of all software
projects fail. These projects exceed their budget, don’t
provide the features customers need or desire, or worse,
are never delivered
• And the real answer is that more time needs to be spent
on software analysis and design, and this means MODEL
Kesalahan Persepsi
(a)
Kebutuhan pemakai
menurut analis sistem
saat wawancara
(b)
Kebutuhan pemakai yang
cukup direalisasikan
menurut analis sistem
(c)
Pemrogram melakukan
penyederhanaan
(d)
Sistem yang sebenarnya
diinginkan oleh pemakai
Distribusi Pengembangan Sistem
Pengujian
45%
Analisis
Sistem
20%
Desain
Sistem
15%
Pengkodean
20%
Iceberg Problem
Analisis,
Desain,
Implementasi, &
Konversi
Pemeliharaan
`
The triangle for success
• Kesuksesan suatu pemodelan piranti lunak ditentukan
oleh tiga unsur, yang kemudian terkenal dengan sebuan
segitiga sukses.
• 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.
Pengantar UML
• UML (Unified Modeling Language) adalah metode
pemodelan secara visual sebagai sarana untuk
merancang dan atau membuat software berorientasi
objek.
• Karena UML ini merupakan bahasa visual untuk
pemodelan bahasa berorientasi objek, maka semua
elemen dan diagram berbasiskan pada paradigma object
oriented.
• UML memberikan standar penulisan sebuah sistem
blueprint, yang meliputi konsep bisnis proses, penulisan
kelas-kelas dalam bahasa program yang spesifik, skema
database, dan komponen-komponen yang diperlukan
dalam software
• Sebuah bahasa model adalah sebuah bahasa yang
mempunyai vocabulary dan konsep tatanan / aturan
penulisan serta secara fisik mempresentasikan dari
sebuah sistem
• UML adalah sebuah bahasa standar untuk
pengembangan software yang dapat menyampaikan
bagaimana membuat dan membentuk model-model,
tetapi tidak menyampaikan apa dan kapan model yang
seharusnya dibuat
• UML tidak hanya merupakan sebuah bahasa
pemograman visual saja, namun juga dapat secara
langsung dihubungkan ke berbagai bahasa pemograman,
seperti JAVA, C++, Visual Basic, atau bahkan
dihubungkan secara langsung ke dalam sebuah objectoriented database. UML juga dapat digunakan untuk
modeling aplikasi prosedural dalam VB atau C.
• Begitu juga mengenai pendokumentasian dapat dilakukan
seperti; requirements, arsitektur, design, source code,
project plan, tests, dan prototypes.
Perkembangan UML
• Sampai era tahun 1990 terdapat puluhan metodologi
pemodelan berorientasi objek bermunculan di dunia.
Diantaranya adalah: metodologi booch, metodologi coad,
metodologi OOSE, metodologi OMT, metodologi shlaermellor, metodologi wirfs-brock, dsb.
• Masa itu terkenal dengan masa perang metodologi
(method war) dalam perancangan berorientasi objek.
Masing-masing metodologi membawa notasi sendirisendiri, yang mengakibatkan timbul masalah baru apabila
kita bekerjasama dengan group/perusahaan lain yang
menggunakan metodologi yang berlainan.
• Dimulai pada bulan Oktober 1994 Booch, Rumbaugh dan
Jacobson, mempelopori usaha untuk penyatuan
metodologi perancangan 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 2.0 yang direlease tahun 2005. Sejak
saat itulah UML telah menjelma menjadi standar bahasa
pemodelan untuk aplikasi berorientasi objek.
Konsep Dasar UML
• 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
Modelling Technique), dan Ivar Jacobson OOSE (ObjectOriented Software Engineering).
Building Blocks
• Untuk dapat memahami UML membutuhkan bentuk
konsep dari sebuah bahasa model, dan mempelajari 3
elemen utama dari UML, seperti building block, aturanaturan yang menyatakan bagaimana building block
diletakkan secara bersamaan, dan beberapa mekanisme
umum (common).
• Tiga macam yang terdapat dalam building block adalah
• Benda/Things; adalah abstraksi yang pertama dalam sebuah
model
• Hubungan/Relationships; sebagai alat komunikasi dari bendabenda
• Bagan/Diagrams; sebagai kumpulan / group dari bendabenda/things
Things
• Adalah hal yang sangat mendasar dalam model UML, juga
merupakan bagian paling statik dari sebuah model, serta
menjelaskan elemen-elemen lainnya dari sebuah konsep dan atau
fisik.
Bentuk dari things ada 5 :
1. Classes, yang diuraikan sebagai sekelompok dari object yang
mempunyai atribute, operasi, hubungan yang semantik. Sebuah
kelas mengimplementasikan 1 atau lebih interfaces. Sebuah kelas
dapat digambarkan sebagai sebuah persegi panjang, yang
mempunyai sebuah nama, atribute, dan metoda
pengoperasiannya.
2. Interfaces, merupakan sebuah antar-muka yang menghubungkan
dan melayani antar kelas dan atau elemen. Interface / antar-muka
mendefinisikan sebuah set / kelompok dari spesifikasi
pengoperasian, umumnya digambarkan dengan sebuah lingkaran
yang disertai dengan namanya. Sebuah antar-muka berdiri sendiri
dan umumnya merupakan pelengkap dari kelas atau komponen.
Collaboration, yang didefinisikan dengan interaksi dan
sebuah kumpulan / kelompok dari kelas-kelas / elemenelemen yang bekerja secara bersama-sama. Collaborations
mempunyai struktur dan dimensi. Pemberian sebuah kelas
memungkinkan berpartisipasi di dalam beberapa
collaborations dan digambarkan dengan sebuah ‘elips’
dengan garis terpotong-potong.
4. Use cases, adalah rangkaian/uraian sekelompok yang saling
terkait dan membentuk sistem secara teratur yang dilakukan
atau diawasi oleh sebuah aktor. ‘use case’ digunakan untuk
membentuk tingkah-laku benda / things dalam sebuah model
serta direalisasikan oleh sebuah collaboration. Umumnya
‘use case’ digambarkan dengan sebuah ‘elips’ dengan garis
yang solid, biasanya mengandung nama.
3.
5. Nodes, merupakan fisik dari elemen-elemen yang ada
pada saat dijalankannya sebuah sistem, contohnya
adalah sebuah komputer, umumnya mempunyai
sedikitnya memory dan processor. Sekelompok
komponen mungkin terletak pada sebuah node dan
juga mungkin akan berpindah dari node satu ke node
lainnya. Umumnya node ini digambarkan seperti kubus
serta hanya mengandung namanya.
Hubungan / Relationships
• Ada 4 macam hubungan dalam penggunaan UML :
1. Dependency, adalah hubungan semantik antara dua
benda/things dimana sebuah benda berubah
mengakibatkan benda satunya akan berubah pula.
Umumnya sebuah dependency digambarkan dengan
sebuah panah dengan garis terputus-putus.
2. Association, hubungan antar benda struktural yang
terhubung diantara obyek. Kesatuan obyek yang
terhubung merupakan hubungan khusus, yang
menggambarkan sebuah hubungan struktural diantara
seluruh atau sebagian. Umumnya assosiation
digambarkan dengan sebuah garis yang dilengkapi
dengan sebuah label, nama, dan status hubungannya.
3. Generalizations, menggambarkan hubungan khusus
dalam obyek anak/child yang menggantikan obyek
parent / induk. Dalam hal ini, obyek anak memberikan
pengaruhnya dalam hal struktur dan tingkah lakunya
kepada obyek induk. Digambarkan dengan garis panah.
4. Realizations, merupakan hubungan semantik antara
pengelompokan yang menjamin adanya ikatan
diantaranya. Hubungan ini dapat diwujudkan diantara
interface dan kelas atau elements, serta antara use
cases dan collaborations. Model dari sebuah hubungan
realization.
Diagram dalam UML
• UML terdiri atas pengelompokan diagram-diagram sistem
menurut aspek atau sudut pandang tertentu.
• Diagram menggambarkan permasalahan maupun solusi
dari permasalahan suatu model.
• UML mempunyai 9 diagram, yaitu:
• Diagram Use Case
• Diagram Class
• Diagram Package
• Diagram Sequence
• Diagram Collaboration
• Diagram StateChart
• Diagram Activity
• Diagram Deployment
• Semakin kompleks bentukan sistem yang akan dibuat,
maka semakin sulit komunikasi antara orang-orang yang
saling terkait dalam pembuatan dan pengembangan
software yang akan dibuat.
• Pada masa lalu, UML mempunyai peranan sebagai
software blueprint (gambaran) language untuk analisis
sistem, designer, dan programmer. Sedangkan pada saat
ini, merupakan bagian dari software trade (bisnis
software).
• UML memberikan jalur komunikasi dari sistem analis
kemudian designer, lalu programmer mengenai
rancangan software yang akan dikerjakan.
• Salah satu pemecahan masalah Object Oriented adalah
dengan menggunakan UML. Oleh karena itu orang-orang yang
berminat dalam mempelajari UML harus mengetahui dasardasar mengenai Object Oriented Solving; antara lain dengan
pembentukan model.
• Model adalah gambaran abstrak dari suatu dasar masalah.
Dan dunia nyata atau tempat dimana masalah itu timbul bisa
disebut dengan domain.
• Model mengandung obyek-obyek yang beraktifitas dengan
saling mengirimkan messages (pesan-pesan). Obyek
mempunyai sesuatu yang diketahui (atribut /attributes) dan
sesuatu yang dilakukan (behaviors atau operations). Attributes
hanya berlaku dalam ruang lingkup obyek itu sendiri (state).
Lalu “blue print” dari suatu obyek adalah Classes (kelas).
Obyek merupakan bagian-bagian dari kelas.
How Many Diagrams Do I Create ?
• Tidak ada jawaban / ketentuan yang pasti
• Jumlah diagram yang dibuat sangat bergantung kepada
•
•
•
•
kebutuhan analisis dan disain; juga pengguna (end-user
dan programer)
Hampir mirip dengan menggambar DFD, apakah perlu
sampai level 2, 3, dst..atau cukup sampai level 1
Jika gambar UML terlalu besar dan rumit, maka buatlah
model yang lebih detil untuk memecah kerumitan
Apabila model sudah memenuhi kebutuhan end-user,
maka cukup.
Jika sequence diagram dapat dibaca oleh programmer
dan dapat di-implementasikan, maka cukup
Pengembangan Sistem dengan UML
• Object-Oriented Development Life Cycle (OODLC) merupakan
update dari SDLC (System Development Life Cycle)
• SDLC merupakan suatu proses yang yang digunakan oleh analis
sistem untuk mengembangkan suatu sistem informasi, mulai dari
analysis, Design,construction, testing dan implementation sistem.
Analisys
Design
Construction
Testing
Implementation
The Life Cycle
Phase
Activity
Models
Produced
Components
Analysis
OOA
Requirements
Model
Project scope
Feasibility study
Context diagram
Class diagram:
Entity classes
Interface classes
Control classes
Behavior diagrams:
Statechart diagrams
Collaborations and
CRC cards
Sequence diagrams
Activity diagrams
Design
OOD
Design versions of
the OO models
Construction
OOP
Actual system
Testing
O-O Testing
Working system
Maintenance
All of the above
All of the above
Darimana kita mulai ?
• Untuk menguasai UML, sebenarnya cukup dua hal yang
harus kita perhatikan:
1.
2.
Menguasai pembuatan diagram UML
Menguasai langkah-langkah dalam analisa dan pengembangan
dengan UML
Tips Menggunakan UML
1.
2.
3.
4.
5.
Buatlah daftar business process dari level tertinggi untuk
mendefinisikan aktivitas dan proses yang mungkin muncul.
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.
Buatlah deployment diagram secara kasar untuk
mendefinisikan arsitektur fisik sistem.
Definisikan requirement lain (non-fungsional, security dan
sebagainya) yang juga harus disediakan oleh sistem.
Berdasarkan use case diagram, mulailah membuat activity
diagram.
6.
7.
8.
9.
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.
Buatlah rancangan user interface model yang menyediakan
antarmuka bagi pengguna untuk menjalankan skenario use case.
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.
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.
Tools yang Mendukung UML
• Saat ini banyak sekali tool perancangan sistem 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)
• StarUML (www.staruml.org)
Pointer Penting UML
• 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 perbandingan
kemampuannya juga dapat dilihat di
• http://www.jeckle.de/umltools.htm atau
• http://en.wikipedia.org/wiki/Unified_Modeling_Language
• 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/
End of Chapter
• Any Question ?
• Materi minggu depan : Use Case Diagram
Download