REKAYASA PERANGKAT LUNAK PERTEMUAN 4
Konsep & Prinsip Analisis pada sistem berorientasi objek
Teknik Perancangan Berorientasi Obyek Memahami teknik Object Oriented Design Konsep dan Prinsip Dasar Berorientasi Obyek Analisis dan modelling Metodologi desain Class dan object Operasi dan Penggunaan Ulang Perangkat Lunak Komponen program dan interface Unified Modelling Language (UML) Dapat menjelaskan dan menerapkan metode Object- Oriented pada Perancangan Perangkat Lunak
Pentingnya Perancangan
Dua Teknik Perancangan Perangkat Lunak Perancangan Berorientasi pada Fungsi Sistem di dekomposisi menjadi sejumlah fungsi (prosedur, logika) dengan sistem tersentralisasi dimana data dapat dibagi dan digunakan secara bersama. Perancangan Berorientasi pada Obyek Sistem dianggap sebagai kumpulan obyek (konsep, benda) dalam dunia nyata yang melaksanakan sejumlah pelayanan secara terdesentralisasi. Setiap obyek membungkus (encapsulate) sejumlah prosedur dan data yang berinteraksi dengan obyek lainnya melalui suatu pesan (message).
Object Oriented Design (OOD) Mengapa menggunakan OOD Karena lebih dekat pada tingkat abstraksi di dunia nyata (mengunakan obyek-obyek untuk konsep penstrukturan perangkat lunak). Interaksi menjadi lebih mudah dalam suatu komputer. Pengembangan dan Perawatannya dapat dilakukan secara mudah, iteratif dan terpadu Encapsulation: menggabungkan data dan fungsi/program secara bersama-sama Reuse: tidak perlu ada penulisan kembali kode.
Reuseable Assets Reuse of all models, that is of everything architecture -- most important but just a fraction of what is reusable use cases, analysis, design, implementation and test user interface models, business models, etc. Reuse of technology process with tools projects guidelines
Pertanyaan Jelaskan perbedaan antara perangkat lunak fungsional dengan perangkat lunak berorientasi obyek ?
Perangkat Lunak Fungsional terfokus pada: Fungsi dalam struktur terhirarki Proses dan Prosedur Perangkat Lunak berorientasi-obyek terfokus pada: Obyek-obyek dalam dunia nyata yang bekerja sama (tidak terhirarki). Model dari obyek-obyek di dunia nyata tersebut (skenario). Peranan obyek-obyek ini dalam penggambaran sistem perangkat lunak (task).
Lebih Rinci Lagi Objects masuk disini
Penggambaran Fungsional Menggambarkan dunia sebagai sejumlah fungsi- fungsi yang saling berhubungan Angka-angka terurut dari kecil ke besar Angka-angka Pengurutan Umumnya dekomposisi Top-Down (dari abstraksi sampai tingkat rendah). Memanipulasi (mengfungsikan) data utama berarti memahami permasalahan.
Penggambaran Berorientasi Obyek Menggambarkan dunia sebagai sejumlah obyek- obyek 112 5 48 5 17 25 48 56 112 56 17 25 Sistem perangkat lunak digambarkan sebagai sekumpulan obyek-obyek yang saling berinteraksi. Obyek-obyek dapat digunakan kembali dengan suatu standar karakteristik.
Object-oriented System Development Cycle Object-oriented Analysis (OOA) Object-oriented Design (OOD) Object-oriented Implementation 1. Object-Oriented Analysis Definisikan kebutuhan-kebutuhan sistem melalui skenario atau penggunaan kasus-kasus. Kemudian, buat suatu model obyek dengan kemampuan memuaskan kebutuhan-kebutuhan. Output: Model kebutuhan-kebutuhan Biasanya menggunakan CRC Cards.
Object-Oriented Analysis Memberikan gambaran rinci dari suatu sistem. Mengidentifikasi “WHAT” kebutuhan fungsional (Use Cases) Identifikasi: objects, classes, operations Identifikasi: object relationships, object interations Bangun model-model di dunia nyata menggunakan tampilan OO Tujuan dari OOA Untuk memahami domain masalah Meningkatkan ketelitian, konsistensi, kelengkapan
Object-Oriented Design Model kebutuhan-kebutuhan yang dibuat pada fase analisis diperkaya dalan fase perancangan. Kadang-kadang ditambahkan lebih banyak lagi atribut dan pelayanan. Ditambahkan antarmuka obyek-obyek. Object-Oriented Implementation Dikembangkan penggunaan sistem. Menggunakan bahasa pemrograman yang berorientasi obyek. Jika dibutuhkan, memberikan kaitan pada suatu sistem manajemen basisdata yang terpisah.
Object-Oriented Design Memberikan blueprint untuk implementasi Menspesifikasi “HOW” Menspesifikasi: class definitions, class categories Menspesifikasi: subsystems, system architectures OOA + Rincian Implementasi Tujuan dari OO Design Mengoptimalkan maintainability, reusability, enhancebility dan reliability
What is Object-Oriented Programming ? Gaya pemrograman yang terberhubungan dengan notasi object, class dan inheritance. Peter Wegner pada “Dimensions of OOPLs” Object Class Inheritance Object-Oriented Programming
Model Proses Berorientasi Obyek
Orientasi obyek cocok untuk proses evolusioner dengan pendekatan penggunaan kembali komponen-komponen sistem. Rekayasa perangkat lunak OO menekankan penggunaan ulang kelas-kelas dalam pustaka. Bila suatu kelas tidak ada pada pustaka, maka perekayasa perangkat lunak meangaplikasikan analisis berorientasi obyek (OOA), perancangan berorientasi obyek (OOD), pemrograman berorientasi obyek (OOP) dan pengujian berorientasi obyek (OOT).
CIRI-CIRI DARI PERANCANGAN BERORIENTASI OBYEK Karena komunikasi antara obyek dilakukan melalui pegerakan pesan maka data yang digunakan bersama oleh beberapa obyek akan kecil sehingga mengurangi ketergantungan (minimum coupling). Obyek adalah terpadu (cohesive) dan tak tembus dari luar, sehingga seluruh informasi dalam obyek terlindungi terhadap akses dari luar obyek yang tidak dikehendaki. Obyek dapat dimodifikasi tanpa mempengaruhi operasi dari obyek-obyek yang lain, sehingga dapat meningkatkan kemampuan pemeliharaan sistem.
Pertanyaan Mengapa walaupun sudah ada Perancangan Berorientasi Object (OOD), Perancangan Fungsional masih tetap digunakan ?
Perancangan Fungsional tetap digunakan karena: Beberapa domain permasalahan lebih baik digambarkan dalam bentuk fungsional dari pada obyek. Sudah banyak metoda dan standard yang dikembangkan untuk mendukung perancangan berorientasi kepada fungsi ini. Sudah banyak pengalaman yang dilakukan dengan perancangan berorientasi fungsi. Perancangan berorientasi fungsi menjadi komplemen (pelengkap) dari perancangan berorientasi obyek.
Pertanyaan Bagaimana keunggulan dari perancangan berorietasi- obyek dalam memecahkan masalah perancangan perangkat lunak ?
Kelebihan OOD Penggunaan kembali Obyek-obyek Obyek-obyek yang dirancang baik dapat digunakan dan ditambahkan ke proyek-proyek lain. Obyek dapat ditambah dengan inheritance. Keluwesan dan Reliabilitas Penggunaan obyek-obyek yang sudah teruji. Encapsulation mencegah kesalahan penggunaan data oleh modul yang lain dan membantu melokalisasi kesalahan (bugs) yang terjadi. Pengembangan dan Standarisasi Obyek-obyek dapat digunakan kembali dengan karakteristik standar.
Produktivitas Meningkatkan kecepatan pengembangan perangkat lunak. Pengalaman: OOD meningkatkan kecepatan pengembangan sekitar faktor 10 kali.
The SW development effort Conventional OO Technology Effort: Labor-Months Effort: Labor-Months Size or Functionality Size or Functionality
Object-Oriented Software Dapat memodelkan masalah dengan baik Lebih mudah dimengerti. Lebih mudah untuk diperbaiki. Lebih mudah untuk digunakan kembali. Produktivitas ! Kualitas !