REKAYASA PERANGKAT LUNAK Pemodelan dan UML 9 Muhammad Taufik Syastra Pokok Bahasan 1. Kompleksitas pengembangan perangkat lunak 2. Pemodelan 3. Pengenalan UML 4. Sejarah UML 5. Diagram UML 6. Class Diagram 7. Object Diagram 8. Component Diagram 9. Composite Structure Diagram 10. Package Diagram 11. Deployment Diagram Muhammad Taufik Syastra Kompetensi Mahasiswa mampu mengetahui dan menggambarkan arsitektur dalam pemrograman berorientasi objek dengan menggunakan pendekatan UML (Unified Modelling Language) Muhammad Taufik Syastra 1 – Kompleksitas Pengembangan Perangkat Lunak Secara umum, perangkat lunak perlu dikembangkan dengan alasan-alasan sebagai berikut : 1. Adanya permasalahan yang dijumpai pada sistem/perangkat lunak lama 2. Pertumbuhan organisasi 3. Untuk meraih kesempatan-kesempatan 4. Menyesuaikan diri dengan visi, misi, strategi organisasi yang baru Muhammad Taufik Syastra 1 – Kompleksitas Pengembangan Perangkat Lunak Menurut pendapat anda, apa kendala yang sering dialami dalam mengembangkan (membangun) perangkat lunak (software) ?? Muhammad Taufik Syastra 1 – Kompleksitas Pengembangan Perangkat Lunak Kompleksitas perangkat lunak dapat dilihat dari hal-hal berikut : 1. Kompleksitas domain atau permasalahan perangkat lunak 2. Kesulitan mengelola proses pengembangan perangkat lunak 3. Kemungkinan fleksibilitas perubahan perangkat lunak 4. Permasalahan karakteristik bagian-bagian perangkat lunak secara diskrit Muhammad Taufik Syastra 1 – Kompleksitas Pengembangan Perangkat Lunak Karena berbagai masalah dan resiko yang mungkin timbul didalam pengembangan perangkat lunak, maka perlu adanya perencanaan dan pemodelan perangkat lunak Muhammad Taufik Syastra 2 – Pemodelan Pemodelan Gambaran dari realita yang simpel dan dituangkan dalam bentuk pemetaan dengan aturan tertentu. Pemodelan dapat menggunakan bentuk yang sama dengan realitas, misalnya seorang arsitek ingin memodelkan sebuah gedung yang akan dibangun, maka dia akan memodelkannya dengan membuat sebuah maket (tiruan) arsitektur gedung tersebut. Muhammad Taufik Syastra 2 – Pemodelan Pada dunia pengembangan perangkat sistem informasi juga diperlukan pemodelan. Pemodelan perangkat lunak digunakan untuk mempermudah langkah berikutnya dari pengembangan sebuah sistem informasi sehingga lebih terencana. Muhammad Taufik Syastra 2 – Pemodelan Pemodelan perangkat lunak memiliki beberapa abstraksi, misalnya sebagai berikut : 1. Petunjuk yang terfokus pada proses yang dimiliki oleh sistem 2. Spesifikasi struktur secara abstrak dari sebuah sistem (belum detail) 3. Spesifikasi lengkap dari sebuah sistem yang sudah final 4. Spesifikasi umum atau khusus sistem 5. Bagian penuh atau parsial dari sebuah sistem Muhammad Taufik Syastra 2 – Pemodelan Perangkat pemodelan adalah suatu model yang digunakan untuk menguraikan sistem menjadi bagian-bagian yang dapat diatur dan mengkomunikasikan ciri konseptual dan fungsional kepada pengamat. Peran perangkat pemodelan : 1. Komunikasi, perangkat pemodelan dapat digunakan sebagai alat komunikasi antara pemakai dengan analis sistem maupun developer dalam pengembangan sistem 2. Eksperimen, pengembangan sistem yang bersifat “trial and error” 3. Prediksi, model meramalkan bagaimana suatu sistem akan bekerja Muhammad Taufik Syastra 3 – Pengenalan UML UML muncul karena adanya kebutuhan pemodelan visual untuk menspesifikasikan, menggambarkan, membangun, dan dokumentasi dari sistem perangkat lunak. UML (Unified Modelling Language) Bahasa Pemodelan Muhammad Taufik Syastra 3 – Pengenalan UML Tujuan UML diantaranya untuk : 1. Memberikan model yang siap pakai, bahasa pemodelan visual yang ekspresif untuk mengembangkan dan saling menukar model dengan mudah dan dimengerti secara umum 2. Memberikan bahasa pemodelan yang bebas dari berbagai bahasa pemrograman dan proses rekayasa 3. Menyatukan praktek-praktek terbaik (best practice) dalam pemodelan Muhammad Taufik Syastra 4 – Sejarah UML Berawal pada bahasa pemograman berorientasi objek yang pertama dikembangkan dikenal dengan nama Simula-67 yang dikembangkan pada tahun 1967. Bahasa pemrograman ini kurang berkembang dan dikembangkan lebih lanjut, namun dengan kemunculannya telah memberikan sumbangan yang besar pada developer pengembang bahasa pemrograman berorientasi objek selanjutnya. Pada akhirnya, tahun 1996 Object Management Group (OMG) mengajukan proposal adanya standarisasi pemodelan berorientasi objek dan pada bulan spetember 1997 UML diakomodasi OMG sehinggan sampai saat ini UML telah memberikan kontribusi cukup besar dalam metodologi berorientasi objek. Muhammad Taufik Syastra 5 – Diagram UML Pada UML versi 2.3 terdiri dari 13 macam diagram yang dikelompokkan dalam 3 kategori, berikut gambar diagram UML : UML 2.3 Diagram Structure Diagram Behaviour Diagram Interaction Diagram Class Diagram Use Case Diagram Sequence Diagram Object Diagram Activity Diagram Communication Diagram Component Diagram State Machine Diagram Timing Diagram Composite Structure Diagram Interaction Overview Diagram Package Diagram Deployment Diagram Muhammad Taufik Syastra 5 – Diagram UML Berikut ini penjelasan singkat dari pembagian kategori berikut : 1. Structure Diagrams yaitu kumpulan diagram yang digunakan untuk menggambarkan suatu struktur statis dari sistem yang dimodelkan. 2. Behaviour Diagrams yaitu kumpulan diagram yang digunakan untuk menggambarkan kelakuan sistem atau rangkaian perubahan yang terjadi pada sebuah sistem. 3. Interaction Diagrams yaitu kumpulan diagram yang digunakan untuk menggambarkan interaksi sistem dengan sistem lain maupun interaksi antar subsistem pada suatu sistem. Muhammad Taufik Syastra 6 – Class Diagram Diagram kelas atau class diagram menggambarkan struktur sistem dari segi pendefinisian kelas-kelas yang akan dibuat untuk membangun sistem. Kelas memiliki apa yang disebut atribut dan metode atau operasi. Berikut adalah simbol-simbol yang ada pada diagram kelas : Simbol Kelas Nama_kelas Deskripsi Kelas pada struktur sistem +atribut +operasi() Antarmuka / interface Sama dengan konsep interface dalam pemrograman berorientasi objek Nama_interface Muhammad Taufik Syastra 6 – Class Diagram Diagram kelas : (lanjutan) Simbol Deskripsi Asosiasi / association Relasi antar kelas dengan makna umum, asosiasi biasanya juga disertai dengan multiplicity Asosiai berarah / directed association Relasi antar kelas dengan makna kelas yang satu digunakan oleh kelas yang lain, asosiasi biasanya juga disertai dengan multiplicity Generalisasi Relasi antar kelas dengan makna generalisasi-spesifikasi (umum khusus) Muhammad Taufik Syastra 6 – Class Diagram Diagram kelas : (lanjutan) Simbol Deskripsi Kebergantungan / dependency Relasi antar kelas dengan makna kebergantungan antar kelas Agregasi / aggregation Relasi antar kelas dengan makna semua bagian (whole-part) Muhammad Taufik Syastra 7 – Object Diagram Diagram objek menggambarkan struktur sistem dari segi penanaman objek dan jalannya objek pada sistem. Pada diagram objek harus dipastikan semua kelas yang sudah didefinisikan pada diagram kelas harus dipakai objeknya, karena jikda tidak, pendefinisian kelas itu tidak dapat dipertanggung jawabkan. Berikut adalah simbol-simbol yang ada pada diagram objek : Simbol Objek Nama_objek : nama_kelas Deskripsi Objek dari kelas yang berjalan saat sistem dijalankan Atribut = nilai Link Relasi antar objek Muhammad Taufik Syastra 8 – Component Diagram Diagram komponen atau component diagram dibuat untuk menunjukkan organisasi dan ketergantungan diantara kumpulan komponen dalam sebuah sistem. Diagram komponen fokus pada komponen sistem yang dibutuhkan dan ada di dalam sistem. Diagram komponen juga dapat digunakan untuk memodelkan halhal berikut : 1. Source code program perangkat lunak 2. Komponen executable yang dilepas ke user 3. Basis data secara fisik 4. Sistem yang harus beradaptasi dengan sistem lain 5. Framework sistem Muhammad Taufik Syastra 8 – Component Diagram Komponen dasar yang biasanya ada dalam suatu sistem adalah sebagai berikut : 1. Komponen user interface yang menangani tampilan 2. Komponen bussines processing yang menangani tampilan 3. Komponen data yang menangani fungsi-fungsi proses bisnis 4. Komponen security yang menangani keamanan sistem Komponen lebih terfokus pada penggolongan secara umum fungsi-fungsi yang diperlukan Muhammad Taufik Syastra 8 – Component Diagram Berikut simbol-simbol yang ada pada diagram komponen : Simbol Deskripsi Package Package merupakan sebuah bungkusan dari satu atau lebih komponen Komponen Komponen sistem Kebergantungan / dependency Kebergantungan antar komponen, arah panah mengarah pada komponen yang dipakai Muhammad Taufik Syastra 8 – Component Diagram Diagram komponen : (lanjutan) Simbol Antarmuka / interface Deskripsi Nama_interface Sama dengan konsep interface pada pemrograman berorientasi objek, yaitu sebagai antarmuka komponen agar tidak mengakses langsung komponen Link Relasi antar komponen Muhammad Taufik Syastra 9 – Composite Structure Diagram Diagram ini digunakan untuk menggambarkan struktur dari bagian-bagian yang saling terhubung maupun mendeskripsikan struktur pada saat berjalan (runtime) dari instance yang saling terhubung. Contoh : Menggambarkan deskripsi dari setiap bagian mesin yang saling terkait untuk menjalankan fungsi mesin tersebut, menggambarkan aliran router pada jaringan komputer. Muhammad Taufik Syastra 9 – Composite Structure Diagram Composite structure diagram : Simbol Property Rolename : typename Connector Deskripsi Property adalah satu set dari suatu instance Rolename : peran/nama/identitas dari property (opsional) Typename : tipe kelas dari property (harus ada) Connector adalah cara komunikasi dari 2 buah instance Connname : nama connector (opsional) Conntype : tipe connector (opsional) Connname:conntype Muhammad Taufik Syastra 9 – Composite Structure Diagram Composite structure diagram : (lanjutan) Simbol Port Deskripsi Port adalah cara yang digunakan dalam diagram composite structure tanpa menampilkan detail internal dari suatu sistem. Port digambarkan dalam bentuk kotak kecil yang menempel property jika fungsi tersebut dapat diakses public. Sedangkan port digambarkan di dalam suatu property jika fungsi tersebut bersifat protected Muhammad Taufik Syastra 10 – Package Diagram Package diagram menyediakan cara mengumpulkan elemenelemen yang saling terkait dalam diagram UML. Hampir semua diagram dalam UML dapat dikelompokkan menggunakan package diagram. Simbol Package Deskripsi Package merupakan sebuah bungkusan dari satu atau lebih kelas atau elemen diagram UML lainnya Muhammad Taufik Syastra 10 – Package Diagram Package diagram : (lanjutan) Simbol Deskripsi Elemen dalam package digambarkan di dalam package Elemen dalam package digambarkan di luar package Muhammad Taufik Syastra 11 – Deployment Diagram Diagram deployment menunjukkan konfigurasi komponen dalam proses eksekusi aplikasi. Diagram deployment juga digunakan untuk memodelkan halhal berikut : 1. Sistem tambahan (embedded system) yang menggambarkan rancangan device, node dan hardware 2. Sistem client/server misalnya seperti gambar berikut 3. Sistem terdistribusi murni 4. Rekayasa ulang aplikasi Muhammad Taufik Syastra 11 – Deployment Diagram Simbol deployment diagram : Simbol Deskripsi Package Package merupakan sebuah bungkusan dari satu atau lebih node Node Biasanya mengacu pada perangkat keras (hardware), perangkat lunak yang tidak dibuat sendiri (software), jika di dalam note disertakan komponen untuk mengkonsistenkan rancangan maka, komponen yang diikutsertakan harus sesuai dengan komponen yang telah didefinisikan sebelumnya pada diagram komponen Muhammad Taufik Syastra 11 – Deployment Diagram Simbol deployment diagram : (lanjutan) Simbol Deskripsi Kebergantungan / dependency Kebergantungan antar komponen, arah panah mengarah pada komponen yang dipakai Link Relasi antar komponen Muhammad Taufik Syastra SEKIAN TERIMA KASIH Muhammad Taufik Syastra Daftar Pustaka Buku : Gunadi, Hariman dan A. Suhendar. 2002. Visual Modelling Menggunakan UML dan Rational Rose. Bandung : Penerbit Informatika. Nugroho, Adi. 2010. Rekayasa Perangkat Lunak Berorientasi Objek dengan Metode USDP. Yogyakarta : Penerbit Andi. Shalahuddin, Muhammad dan Rosa Ariani S.. 2011. Modul Pembelajaran Rekayasa Perangkat Lunak (Terstruktur dan Berorientasi Objek). Bandung : Penerbit Modula. Muhammad Taufik Syastra