DALAM REKAYASA PERANGKAT LUNAK MENGGUNAKAN UML Oleh : Henny Indriyawati, S.Kom, M.Kom 0603068301 B. Very Christioko, S.Kom, M.Kom 0615098202 Nurtriana Hidayati, S.Kom, M.Kom 0622128301 FAKULTAS TEKNOLOGI INFORMASI DAN KOMUNIKASI UNIVERSITAS SEMARANG MEI 2014 1 Modul 1 Pendekatan Terstruktur vs Berorientasi Obyek System Development Lyfe Cycle (SDLC) adalah tahapan-tahapan pekerjaan yang dilakukan oleh analis sistem dan programmer dalam membangun sistem. SDLC adalah keseluruhan proses dalam membangun sistem melalui beberapa langkah. Ada model SDLC yang diantaranya cukup populer dan banyak digunakan yaitu waterfall. Beberapa model lain SDLC misalnya fountain, spiral, rapid, prototyping, incremental, build & fix, dan synchronize & stabilize. Dengan siklus SDLC, proses membangun sistem dibagi menjadi beberapa langkah dan pada sistem yang besar, masing-masing langkah dikerjakan oleh tim yang berbeda. Dalam sebuah siklus SDLC, terdapat lima langkah. Tahapan-tahapan SDLC tersebut tampak pada gambar dibawah ini. Gambar 1. Systems Development Life Cycle (SDLC) (Sumber: http://en.wikipedia.org/wiki/Systems_development_life_cycle) Tahapan-tahapan dalam SDLC dapat dijelaskan berikut ini: Planning Analysis: persyaratan sistem dipelajari dan disusun. Design: usulan sistem baru diubah menjadi spesifikasi sistem logis dan fisik. Desain logis semua fitur fungsional dari sistemyang dipilih untuk dilakukan pengembangan dalam analisis dijelaskan secara independen dari platform komputer. Desain fisik spesifikasi logis dari sistem dari desain logis diubah menjadi rincian spesifikasi teknologi yang mana tahapan koding dan konstruksi sistem dapat melakukannya Implementation dan Testing Maintenance Penggunaan alat pemodelan sistem baik berorientasi obyek maupun terstruktur dalam tahapan SDLC adalah ada pada tahap analisis dan desain. Terdapat perbedaan kunci antara tahapan analisa 2 dan desain sistemberbasis terstruktur dan obyek. Perbedaan kunci tersebut dapat dilihat pada tabel 1 dan tabel 2 berikut ini. Tabel 1. Kunci perbedaan Terstruktur Berorientasi Obyek Metodologi SDLC (Systems Development Live Cycle) Iterative/Incremental Fokus Proses Obyek Resiko Tinggi Rendah Penggunaan ulang Rendah Tinggi Kematangan metode Matang dan digunakan secara luas Berkembang (1997) Cocok untuk Proyek yang didefinisikan secara baik dengan kebutuhan user yang stabil Proyek besar yang beresiko dengan kebutuhan user yang dinamis (berubah) Tabel 2. Perbedaan dalam fase pengembangan Fase Terstruktur Berorientasi Obyek Analisis Penentuan Kebutuhan Pemodelan Proses: DFD (Proses) Pemodelan Logic: Deskripsi DFD (Structured English/Decision Table) Pemodelan data: Analisis ER Rekayasa Kebutuhan Pemodelan Use Case (menemukan use case, flow of events/skenario, activity diagram) Pemodelan Obyek Menemukan class dan relasi class Menemukan relasi antar obyek: sequence dan collaboration diagram, state machine diagram Obyek ke pemetaan ER Desain Database Desain Normalisasi Desain antarmuka (GUI) Antarmuka form dan laporan Desain database fisik Desain elemen Desain arsitektur sistem Desain class-class Desain komponen Desain antarmuka (GUI) 3 Modul 2 Konsep Berorientasi Obyek Melakukan pengembangan sistem menggunakan pendekatan berorientasi obyek maksudnya adalah memandang sistem sebagai kumpulan dari obyek-obyek diskrit yang saling berinteraksi. Saling berinteraksi maksudnya adalah saling bekerjasama antara data dan perilaku yang mengaturnya dengan saling mengirim pesan. Dalam melakukan pengembangan menggunakan pendekatan berorientasi object maka konsep-konsep dalam pendekatan tersebut harus terlebih dahulu dipahami. Berikut beberapa konsep berorientasi obyek yang harus dikuasai, yaitu: 1. Obyek Obyek adalah kunci untuk memahami teknologi berorientasi objek. Obyek adalah segala sesuatu yang ada di sekitar kita. Contoh: anjing, meja, televisi, sepeda. Benda nyata berbagi dua karakteristik yang sama, yaitu mereka mempunyai status dan perilaku. Contoh: Anjing memiliki status (nama, warna, jenis, lapar) dan perilaku (menggonggong, mengambil, menggoyangkan ekor ) . Sepeda juga memiliki status (gigi saat ini, irama pedal saat ini, kecepatan) dan perilaku (mengubah gigi, mengubah irama pedal, mengerem). Gambar 2. Obyek Orang 2. Obyek Software Obyek perangkat lunak mirip dengan benda nyata, mereka juga mempunyai status dan perilaku. Obyek adalah entitas tunggal dari suatu kelas. Obyek software menyimpan statusnya ke dalam field (contoh: atribut/variabel dalam bahasa pemrograman) sedangkan obyek software mengakses perilakunya melalui method (contoh: function dalam bahasa pemrograman). Method beroperasi pada keadaan internal obyek dan berfungsi sebagai mekanisme utama untuk komunikasi object-to-object. 4 3. Class Class adalah kumpulan dari objek individu yang memiliki kesamaan dalam hal kategori yaitu yang mempunyai atribut dan operasi yang sama. Contoh: Setiap sepeda dibangun dari set cetakan (cetak biru) yang sama dan karena itu mengandung komponen yang sama. Dalam hal berorientasi objek, dapat dikatakan bahwa sepeda adalah turunan dari kelas objek yang dikenal sebagai kelas sepeda. Sekali lagi Class adalah cetak biru dari objek individu yang diciptakan, sedang obyek adalah anggota atau instan suatu kelas. Gambar 3. Class kucing 4. Pewarisan (Inheritance) Pewarisan dalam berorientasi obyek maksudnya adalah pewarisan atribut dan operasi ke masing- masing obyek dalam kelas tersebut. Selain itu kelas juga dapat mewarisi sifat-sifat ke kelas lainnya (sub kelas/kelas anak) sehingga pewarisan dapat terjadi secara bertingkat. Gambar 4. Pewarisan Kendaraan 5. Banyak Bentuk (Polymorphism) Polymorphism adalah pemberian nama sebuah operasi yang sama pada kelas yang berbeda, namun jika diberikan pada obyek yang berbeda akan mengakibatkan operasi yang berbeda pula. 5 Gambar 5. implementasi dari polymorphism 6. Pembungkusan (Encapsulation) Encapsulation adalah menyembunyikan kompleksitas atau informasi detil dari luar dan hanya menampilkan operasi/fungsi yang diperlukan saja terhadap obyek-obyek yang lain. Gambar 6. Contoh encapsulation 7. Pengiriman Pesan (Messaging) Obyek-obyek bekerjasama dengan mengirimkan pesan dari satu obyek ke obyek lainnya. Suatu obyek mengirimkan pesan ke obyek lain untuk melakukan sebuah operasi. Suatu obyek juga dapat menerima pesan dari obyek lain untuk melakukan operasi lainnya. Contoh: Mobil yang diparkir di depan rumah hanya sepotong logam yang dengan sendirinya tidak mampu melakukan aktivitas apapun. Pengemudi harus menyalakan mobil, menggunakan rem, dll. 6 Gambar 7. Messaging antar obyek 8. Asosiasi/Hubungan (Assosiation) Hubungan antar obyek Contoh: Seseorang menyalakan televisi, ini berarti sesorang tersebut berasosiasi terhadap televisi Hubungan antar beberapa kelas Contoh: Seseorang dapat mengendarai sebuah mobil sekaligus dapat dikatakan mengendarai sebuah bis, sehingga kelas orang berasosiasi dengan kelas Mobil dan sekaligus berasosiasi dengan kelas Bis. 7 Modul 3 Pengantar UML UML menurut ketentuan Object Management Group (OMG): "The Unified Modeling Language (UML) is a graphical language for visualizing, specifying, constructing, and documenting the artifacts of a software-intensive system. The UML offers a standard way to write a system's blueprints, including conceptual things such as business processes and system functions as well as concrete things such as programming language statements, database schemas, and reusable software components." Hirarki diagram UML 2.2 Gambar 8. Diagram UML 2.2 Structural Modeling Diagrams Structural diagrammendefinisikan arsitektur statis dari sebuah model. Diagram ini digunakan untuk memodelkan hal-hal yang membentuk model, yaitu kelas, obyek, antarmuka dan komponen fisik. Diagram ini terdiri dari: Package diagrams, digunakan untuk membagi model menjadi wadah logis, atau 'paket', dan menggambarkan interaksi antara mereka pada level tingkat tinggi. 8 Gambar 9. Diagram package Class atau Structural diagrams, mendefinisikan blok bangunan dasar dari model: jenis, kelas dan bahan umum yang digunakan untuk membangun sebuah model yang lengkap. Gambar 10. Diagram Class Object diagrams, menunjukkan bagaimana contoh elemen dari struktur saling terkait dan digunakan pada saat run-time. Gambar 11. Diagram Object Composite Structure diagrams, menyediakan cara untuk membagi struktur elemen dan fokus pada detil paling dalam, konstruksi dan keterkaitan. 9 Gambar 12. Diagram Object Component diagrams, digunakan untuk model tingkat yang lebih tinggi atau struktur yang lebih kompleks, biasanya dibangun dari satu atau lebih kelas, dan menyediakan antarmuka yang didefinisikan dengan baik. Gambar 13. Diagram Object Deployment diagrams, menunjukkan disposisi fisik artefak yang signifikan dalam pengaturan di dunia nyata. Gambar 14. Diagram Object Profile diagrams, menyediakan cara visual mendefinisikan ekstensi ringan ke dalam spesifikasi UML. UML Profiles sering digunakan untuk mendefinisikan sekelompok konstruksi dengan sifat- domain tertentu atau platform-spesifik dan kendalanya. 10 Behavioral Modeling Diagrams Behavior diagrams menangkap berbagai variasi interaksi dan status yang terjadi seketika dalam model seperti jalankan dari waktu ke waktu; melacak bagaimana sistem akan bertindak pada lingkungan nyata, dan mengamati efek dari sebuah operasi atau peristiwa, termasuk hasil-hasilnya. Diagram ini terdiri dari: Use Case diagrams, digunakan untuk memodelkan interaksi pengguna/sistem. Diagram ini digunakan untuk mendefinisikan perilaku, kebutuhan dan kendala dalam bentuk skrip atau skenario. Gambar 15. Diagram Use case Activity diagrams, memiliki beberapa macam penggunaan, dari menentukan aliran program dasar, untuk menangkap poin keputusan dan aksi dalam setiap proses Gambar 16. Diagram Activity State Machine diagrams, digunakan untuk memahami kondisi instan ke instan, atau status dari sebuah model ketika dijalankan. Gambar 17. Diagram State 11 Communication diagrams, menunjukkan jaringan, dan urutan, pesan atau komunikasi antara objek pada saat run-time, selama kolaborasi antar contoh elemen. Gambar 18. DiagramCommunication Sequence diagrams, berhubungan erat dengan diagram komunikasi dan menunjukkan urutan pesan yang dilewatkan antara obyek menggunakan timeline. Gambar 19. Diagram Sequence Timing diagrams, menghubungkan diagram sequence dan state untuk memberikan pandangan status sebuah obyek dari waktu ke waktu, dan pesan yang mengubah status tersebut. Gambar 20. Diagram Timing 12 Interaction Overview diagrams, menghubungkan diagram activity dan sequence untuk memungkinkan interaksi fragmen untuk dapat dengan mudah dikombinasikan dengan poin keputusan dan alur. Gambar 21. DiagramInteraction Overview 13 Modul 4 Pemodelan dengan UML A. Pengantar Rational Approach Rational Approach/Pendekatan Rational menawarkan empat pandangan/view utama terhadap sistem yang terletak pada jendela Model Explorer. Setiap tampilan/view terkait dengan fase siklus hidup perangkat lunak, dan diagram adalah artefak dari setiap fase tersebut. (1) Use-Case View menunjukkan sistem apa (subsistem, kelas, atau antarmuka) tidak tetapi tidak menentukan bagaimana sistem internal melakukan tugasnya. (2) Logical View merupakan arsitektur proses sebagai model yang dilanjutkan dari fase analisis, melalui desain, ke dalam pengembangan sistem. (3) Component View berisi representasi konkret dari sistem. Component merealisasikan kelas aktif dan data, dan menyediakan komponen untuk membangun sebuah model executable. (4) Deployment View menunjukkan bagaimana sistem tersebut akan didistribusikan. Gambar 22. Rational Approach pada WhiteStarUML Pemodelan perangkat lunak menggunakan pendekatan Rational akan diorganisasikan menjadi beberapa pandangan/view berikut ini: Use Case View Logical View Component View Deployment View Use Case View Use case view membantu untuk memahami dan menggunakan sistem. Pandangan ini melihat bagaimana aktor dan use case saling berinteraksi. Diagram dalam pandangan ini adalah : Use case diagram Sequence diagram Collaboration diagram Activity diagram Logical view 14 Logical view membahas persyaratan fungsional dari sistem. Pandangan ini tampak pada kelas dan hubungan antara kelas-kelas. Diagram dalam pandangan ini adalah : Class diagram Statechart diagram Component view Component view menunjukkan organisasi perangkat lunak dari sebuah sistem. Pandangan ini mengandung informasi tentang software, komponen library dan execute untuk sistem. Pandangan ini hanya berisi : Component komponen Deployment view Deployment view menunjukkan pemetaan proses untuk hardware . Jenis diagram ini paling berguna dalam lingkungan arsitektur terdistribusi di mana mungkin memiliki aplikasi dan server pada lokasi yang berbeda. Pandangan ini hanya berisi satu diagram : Deployment diagram B. Pemodelan UML menggunakan WhiteStarUML Membuat Project: Jalankan program WhiteStarUML.exe Saat menjalankan WhiteStarUML, akan muncul jendela Project Wizard yang menanyakan tentang pendekatan/approach yang akan digunakan untuk project saat ini. Pilih Rational Approach, lalu klik OK kemudian akan tampil jendela Workspace. Gambar 23. Project Wizard Membuat project juga bisa dilakukan dengan memilih [File] _ [New Project] atau gunakan Ctrl+N. 15 Membuat Diagram UML: a. Use Case Diagram Membuat diagram use case Untuk menggambar diagram use case, klik dua kali Use Case View. Gambar use case menggunakan diagram standar dengan nama 'Main' atau dapat menambahkan diagram baru dengan mengklik kanan Use Case View dan kemudian pilih [Add Diagram] _ [Use Case Diagram]. Gambar 24. Diagram use case Main Menggambar notasi pada diagram Klik dua kali diagram use case Gunakan notasi diagram dari Toolbox yang ada di sebelah kiri. Untuk menggambar elemen diagram (misalnya, use case), klik elemen diagram elemen dalam panel Use Case (di Toolbox) dan klik pada posisi yang diinginkan di kanvas. Gambar 25. Membuat diagram use case Mengganti nama elemen diagram Klik dua kali pada elemen yang akan diganti nama Ketik nama elemen diagram pada textbox yang sudah disediakan Gambar 26. Mengganti nama elemen b. Activity Diagram Membuat diagram activity Untuk menggambar diagram activity, klik kanan pada use case yang dipilih dan kemudian pilih [Add Diagram] _ [Activity Diagram]. 16 Gambar 27. Diagram Activity Menggambar notasi pada diagram Klik dua kali diagram activity Gunakan notasi diagram dari Toolbox yang ada di sebelah kiri. Untuk menggambar elemen diagram (misalnya, activity), klik elemen diagram elemen dalam panel Activity (di Toolbox) dan klik pada posisi yang diinginkan di kanvas. Gambar 28. Membuat diagram activity c. Sequence Diagram Membuat diagram sequence Untuk menggambar diagram sequence, klik kanan pada use case yang dipilih dan kemudian pilih [Add Diagram] _ [Sequence Diagram]. Gambar 29. DiagramSequence Mengambar obyek dari kelas yang belum ada 17 Klik dua kali diagram sequence Untuk menambahkan objek baru dalam diagram, klik tombol Object di Toolbox dan klik di posisi apapun di kanvas. Untuk menambahkan kelas obyek ini untuk model, klik dua kali objek dan klik class figure di pane sebelah kanan objek. Memasukkan nama kelas, lalu klik OK dan kelas baru akan dibuat di Model Explorer. Gambar 30. Membuat diagram activity Mengambar obyek dari kelas yang sudah ada Untuk menambahkan objek baru dari kelas yang ada, lakukan drag dan drop class ke kanvas. Menambahkan panggilan pesan Untuk menambahkan panggilan pesan dari satu objek ke yang lain, pilih stimulus tombol di Toolbox dan tarik dari objek sumber ke objek tujuan. klik tanda '=' untuk merujuk pesan ke operasi kelas yang ada Jika operasi belum ada dan hendak menambahkan ke dalam kelas, klik symbol persegi panjang merah di sisi kanan. Selanjutnya, tentukan nama operasi dan, jika perlu, visibilitas. Setelah melakukan langkah ini, operasi akan ditambahkan ke kelas yang sesuai. Perhatikan bahwa prosedur ini hanya akan mengeksekusi jika kelas sudah ada dalam model Gambar 31. Menambah panggilan pesan d. Class Diagram Membuat diagram sequence Untuk membuat diagram kelas, dapat menggambar diagram elemen dalam diagram 'Main' pada Logical view atau membuat diagram kelas baru. Untuk membuat diagram kelas baru, klik kanan Logical View dan pilih [Add 18 Diagram] _ [Class Diagram]. Untuk mulai membuat elemen diagram, double-klik diagram kelas yang diinginkan dalam model explorer Gambar 32. Diagram class Menambahkan Kelas ke kanvas Pilih elemen Kelas dalam toolbox (panel kiri) dan klik pada posisi yang diinginkan pada kanvas. Menambahkan Kelas Atribut Untuk menambahkan atribut ke kelas, klik dua kali kelas dan pilih symbol persegi panjang biru yang muncul di sisi kanan dari kelas. Menambahkan Operasi Kelas (Metode) Untuk menambahkan operasi untuk kelas, klik dua kali kelas dan pilih persegi panjang merah yang muncul di sisi kanan dari kelas. Gambar 33. Menambahkan atribut dan operasi kelas Mengkoreksi / Menghapus Atribut dan Operasi Kelas Untuk mengedit atau menghapus atribut kelas / operasi, klik dua kali atribut atau operasi yang Anda ingin memodifikasi / menghapus. Untuk mengubah visibilitas pilih panel kiri kelas atau untuk menambah, menghapus, atau menyusun ulang atribut / operasi pilih panel kanan kelas Gambar 34. Koreksi/hapus atribut dan operasi kelas 19 C. Studi Kasus ATM Sebuah Bank lokal akan memasang sebuah mesin Automated Teller Machine (ATM) untuk mengijinkan user melakukan transaksi-transaksi umum. Setiap user hanya memiliki satu akun bank. Pengguna ATM dapat melakukan otentikasi akun, pengambilan uang, dan transfer uang. Berdasarkan hasil tahapan analisis yaitu berupa dokumen kebutuhan sistem, aliran kejadian atau skenario yang harus terjadi pada sistem ATM yang ingin dibangun adalah sebagai berikut: Fungsi otentikasi user 1. ATM menampilkan pesan masukkan kartu ATM 2. User memasukkan kartu ATMke slot di ATM 3. ATM memverifikasi kartu ATM 4. Setelah kartu ATM valid, ATM meminta PIN dari User 5. User memasukkan PIN 6. ATM memverifikasi PIN dengan kartu 7. Setelah PIN valid, ATM menampilkan menu jenis transaksi Fungsi pengambilan uang 1. User memilih menu transaksi penarikan uang 2. ATM meminta jumlah uang yang akan ditarik 3. User memasukkan jumlah uang 4. ATM melakukan cek ketersediaan dana pada akun bank 5. Setelah dana mencukupi, ATM melakukan debit akun bank 6. ATM mengeluarkan uang 7. User mengambil uang 8. ATM mencetak nota dan mengeluarkan kartu ATM 9. User mengambil nota dan kartu ATM Fungsi transfer uang 1. User memilih menu transaksi transfer 2. ATM meminta bank dan nomor rekening tujuan 3. User memasukkan nomor rekening dan bank tujuan 4. ATM meminta jumlah uang yang akan di transfer 5. User memasukkan jumlah uang 6. ATM menampilkan pesan konfrmasi 7. User menyetujui konfirmasi 8. ATM melakukan cek ketersediaan dana pada akun bank 9. Setelah dana mencukupi, ATM melakukan transfer uang 10. ATM mencetak nota dan mengeluarkan kartu ATM 11. User mengambil nota dan kartu ATM 20 Langkah 1 Diagram Use Case Berdasarkan dokumen kebutuhan dan skenario kejadian dapat dilihat bahwa sistem ATM akan memiliki tiga fungsi utama yang dapat digunakan oleh User, yaitu Otentikasi User, Penarikan dan Transfer. Langkah yang pertama dalam melakukan pemodelan sistem ATM ini adalah memodelkan fungsi sistem menggunakan diagram Use Case. Diagram tampak seperti gambar di bawah ini: Gambar 35. Use Case Diagram ATM Cara menggambar diagram: Klik dua kali Use Case View pada Model Explorer Klik dua kali diagram use case Main Masukkan elemen Actor ke dalam kanvas Isi nama actor dengan User, tekan Enter Klik dua kali simbol actor User dan ketik: -() Otentikasi User, Penarikan, Transfer Tekan enter Langkah 2 Diagram Class Object atau class yang membentuk sistem ATM dapat ditemukan pada dokumen kebutuhan berupa kata/frase benda pada scenario kejadian. Calon Class yang dapat ditemukan adalah sebagai berikut: ATM Kartu ATM Akun Bank Transaksi Transaksi Penarikan Transaksi Transfer 21 Catatan: User dan Bank tidak termasuk ke dalam class dikarenakan kedua entitas tersebut merupakan actor yang berada di luar sistem. Gambar 36. Class Diagram ATM Cara menggambar diagram: Klik dua kali Logical View pada Model Explorer Klik dua kali diagramclass Main Masukkan elemen class ke dalam kanvas Isi nama class dengan ATM, tekan Enter Klik dua kali simbol class ATM dan ketik: -- Kartu ATM, Transaksi Tekan enter ---------------------------------------------------------------- Masukkan elemen class ke dalam kanvas Isi nama class dengan Akun Bank, tekan Enter Klik dua kali simbol class Akun Bank dan ketik: -- Kartu ATM, Transaksi Tekan enter ---------------------------------------------------------------- Klik dua kali simbol class Transaksi dan ketik: <= Penarikan, Transfer Tekan enter 22 Cara menambah multiplicity: Contoh antara class ATM dan Kartu ATM Klik garis diantara kedua simbol class Pilih multiplicity pada jendela [Properties] _ [General (End1)] dan [General (End2) Lakukan hal yang sama dengan class-class yang lain seperti tampak pada gambar berikut: Gambar 37. Class Diagram ATM dengan Multiplicity ATM Kartu ATM 23 Langkah 3 Activity Diagram Pada langkah ini, diagram activity digunakan untuk memodelkan perilaku sistem. Diagram ini dipakai untuk memodelkan alur kerja dari obyek (urutan kejadian) selama proses berlangsung. Gambar 38. Activity Diagram Otentikasi User Cara menggambar diagram: Klik dua kali Ue Case View pada Model Explorer Klik kanan pada use case Otentikasi User, pilih [Add Diagram] _ [Activity Diagram] Beri nama diagram dengan act_Otentikasi Pilih elemen diagram lalu klik pada kanvas seperti gambar diatas 24 Langkah 4 Sequence Diagram Diagram pada tahap ini adalah Diagram Sequence, dimana diagram ini digunakan untuk memodelkan komunikasi yang terjadi antara partisipan yaitu obyek atau class di dalam sebah use case berdasarkan urutan waktu. Gambar 39. Sequence Diagram Otentikasi User Cara menggambar diagram: Klik dua kali Use Case View pada Model Explorer Klik kanan pada use case Otentikasi User, pilih [Add Diagram] _ [Sequence Diagram] Beri nama diagram dengan seq_Otentikasi Klik and drag class yang sudah ada pada Logical View ke dalam kanvas Pilih elemen diagram Stimulus untuk menggambarkan pengiriman pesan lalu klik pada obyek sumber dan obyek tujuan