REKAYASA PERANGKAT
LUNAK
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
Dua Teknik Perancangan Perangkat Lunak
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).
•
Perancangan Berorientasi pada Fungsi
•
Perancangan Berorientasi pada Obyek
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 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
Reuseable Assets
Pertanyaan
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
Lebih Rinci Lagi
Penggambaran Fungsional
Menggambarkan dunia sebagai sejumlah fungsi-fungsi yang saling berhubungan
Angka-angka
Penguruta n
Angka-angka terurut dari kecil ke besar
Umumnya dekomposisi Top-Down (dari
abstraksi sampai tingkat rendah).
Memanipulasi (mengfungsikan) data utama
Penggambaran Berorientasi Obyek
Menggambarkan dunia sebagai sejumlah
obyek-obyek
Sistem perangkat lunak digambarkan
sebagai sekumpulan obyek-obyek yang saling berinteraksi.
Obyek-obyek dapat digunakan kembali
dengan suatu standar karakteristik.
112 5 48
Object-oriented System
Development Cycle
1. Object-oriented Analysis (OOA) 2. Object-oriented Design (OOD) 3. 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.
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
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
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,
20
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
• 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
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
Pertanyaan
Mengapa walaupun sudah ada Perancangan
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
Pertanyaan
•
Bagaimana keunggulan dari perancangan
berorietasi-obyek dalam memecahkan masalah perancangan
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
•
Produktivitas
• Meningkatkan kecepatan pengembangan perangkat
lunak.
• Pengalaman: OOD meningkatkan kecepatan
The SW development effort
Size or Functionality Size or Functionality
Effort: Labor-Months Effort: Labor-Months
31
Object-Oriented Software
• Dapat memodelkan masalah
dengan baik
• Lebih mudah dimengerti.
• Lebih mudah untuk diperbaiki. • Lebih mudah untuk digunakan
kembali.
Produktivita s !