Object oriented analyst and design Defri Kurniawan defri.kurniawan@dsn.dinus.ac.id
INTRODUCTION OBJECT ORIENTED ANALYST AND DESIGN
What’s Object Oriented? [1] Object Oriented Paradigm saat ini merupakan pendekatan yang populer dalam menganalisa, desain, mengembangkan aplikasi khususnya pada skala besar Object Oriented? Suatu perspektif yang melihat element-elemen yang diberikan oleh suatu situasi dengan cara memecahnya ke dalam objek-objek dan hubungannya
What’s is Object Oriented Development? [1] Pandangan Tradisional program komputer: Membuat code dari eksekusi suatu form Menjalankan sebagai urutan operasi Baik sebagai pengenalan pemrograman, namun tidak untuk pengembangan sistem yang besar Pandangan Tradisional program komputer memiliki kesulitan: Perilaku (Behaviour) sulit digambarkan dalam bentuk suatu proses
What’s is Object Oriented Development? [1] Pengembangan berorientasi objek memungkinkan pengembang aplikasi untuk menentukan behaviour dengan memberikan method terhadap objek yang bersangkutan
What’s is Object Oriented Development? OOAD merupakan cara baru dalam memikirkan suatu masalah dengan menggunakan model yang dibuat menurut konsep sekitar dunia nyata Pada dasarnya terdiri dari 2 : OOA (Object Oriented Analysis) OOD(Object Oriented Design) Sedangkan OOP berkaitan dengan meralisasikan OOD menggunakan bahasa pemrograman OO seperti Java atau C++
Object Oriented Analyst Vs Design OOA Mempelajari domain permasalahan bisnis untuk merekomendasikan perbaikan dan menentukan kebutuhan sistem untuk menyelesaikan permasalahan OOD Menentukan solusi teknis atau rancangan/computer-based dimana solusi ini berdasarkan kebutuhan sistem yang telah diidentifikasi pada proses analisis
Modeling A model is a simplification of reality. Pemodelan adalah suatu cara berpikir tentang persoalan menggunakan model-model yang diorganisasikan seputar dunia nyata (real world). Why Modeling? To understand why a software system is needed, what it should do, and how it should do it. To communicate our understanding of why, what and how. To detect commonalities and differences in your perception, my perception, his perception and her perception of reality. To detect misunderstandings and miscommunications.
Modeling menangkap bagian penting dari sistem (James Rumbaugh) Business Process Computer System
Why OOAD? Memudahkan pemanfaatan ulang code dan arsitektur Lebih mencerminkan dunia nyata Kestabilan Perubahan kecil dalam requirement tidak berarti perubahan yang signifikan dalam sistem yang sedang dikembangkan Lebih mudah disesuaikan dengan perubahan
When should we use OO? Jika perangkat lunak (PL) yang dibangun cukup kompleks Jika PL yang dibangun diperkirakan akan tumbuh makin kompleks di masa mendatang Jika kita ingin membangun PL yang: Berdasar pada komponen yang telah pernah ada sebelumnya (daur ulang) Dapat dipergunakan kembali di masa mendatang (reusable) dan mungkin, kapanpun dan di manapun
Object oriented analyst and design concept
Key Concepts of Object-Oriented Design [1] Central Role of Object The Notion of A Class Abstract specification of functionality A Language To Define The System Standard Solution An Analysis Process To Model A System The Notions Of Extendability And Adaptability
Key Concepts of Object-Oriented Design [1] 1. Central Role of Object Object sebagai inti dari desain perangkat lunak bukan proses Proses rentan terhadap perubahan dan sebagian sistem lama tidak dapat digunakan kembali (re-usable) 2. The Notion of A Class Kelas-kelas mengijinkan perancang software untuk melihat object sebagai jenis entitas yang berbeda Object berpusat pada struktur data dan method yang dapat dimodifikasi/disesuaikan dengan kebutuhan Melihat sebagai object memungkinkan untuk menggunakan mekanisme klasifikasi untuk mengkategorikan jenis, mendefinisikan hirarki, dan terlibat pada ide-ide spesialisasi dan generalisasi
Key Concepts of Object-Oriented Design [1] 3. Abstract Specification of Functionality Dalam proses perancangan kita biasanya menentukan properti-properti dari object Spesifikasi adalah abstrak bahwa hal itu tidak menempatkan pembatasan pada bagaimana fungsi tersebut tercapai. 4. A Language To Define The System Unified Modelling Language (UML) telah terpilih sebagai alat standar untuk menggambarkan produk akhir dari kegiatan desain 3. Spesifikasi ini disebut dengan interface atau kelas abstrak 4. Dokumen-dokumen yang dihasilkan dalam bahasa ini dapat dipahami secara universal dan dengan demikian dapat digunakan sebagai blueprint yang dapat digunakan oleh enginer teknik lainnya
Key Concepts of Object-Oriented Design [1] 5. Standard Solution Adanya struktur objek memfasilitasi mendokumentasikan standar solution, disebut pola desain / design pattern. 6. An Analysis Process To Model A System Object oriented menyediakan kita dengan cara yang sistematis untuk menerjemahkan spesifikasi fungsional ke desain konseptual 5. Standar solusi ditemukan pada semua tahap pengembangan perangkat lunak, tetapi pola desain mungkin adalah bentuk paling umum dari penggunaan kembali suatu solusi. 6. Desain ini menjelaskan ketentuan sistematis kelas konseptual dari mana langkah-langkah berikutnya dari proses pembangunan yang menghasilkan kelas implementasi yang merupakan akhir software
Key Concepts of Object-Oriented Design [1] 7. The Notions Of Extendability And Adaptability Software memiliki fleksibilitas yang tidak biasanya ditemukan dalam perangkat keras, memungkinkan kita untuk memodifikasi entitas yang ada dengan cara-cara kecil untuk membuat yang baru. Inheritance atau pewarisan merupakan contoh dari konsep ini.
Other Related Concept Tidak cukup hanya memahami konsep kunci perancangan berorientasi objek. Terdapat konsep terkait lain yang diperlukan untuk memahami object oriented: Modular design and encapsulation Cohesion and coupling
Modular Design And Encapsulation [1] Modularity / modularitas mengacu pada gagasan menyusun sistem besar dengan mengembangkan sejumlah komponen yang berbeda secara independen dan kemudian mengintegrasikannya untuk menyediakan fungsionalitas yang diperlukan. Modularity ketika digunakan dengan tepat akan membuat modul individu relatif lebih sederhana dan sistem lebih mudah dipahami Setiap modul jelas harus menyediakan fungsi tertentu yang jelas ditentukan oleh sebuah Interface. Interface juga mendefinisikan bagaimana komponen lain dapat berinteraksi atau berkomunikasi dengan modul.
Modular Design And Encapsulation [1] Encapsulation / enkapsulasi mengacu pada penyembunyian detail modul dari implementasinya terhadap pihak external. Mekanisme menyembunyikan suatu proses dan data dalam sistem untuk menghindari interferensi, dan menyederhanakan penggunaan proses itu sendiri Class access level (public, protected, privat) adalah implementasi dari konsep encapsulation
Cohesion And Coupling [1] Salah satu konsep OOP yang cukup penting adalah low coupling dan high cohesion Coupling berhubungan dengan seberapa besar ketergantungn class dengan class yang lain Cohesion berhubungan dengan responsibility sebuah class.
Cohesion And Coupling [1] Semakin spesifik (tinggi) suatu responsibility class, maka semakin rendah tingkat ketergantungannya, begitu juga sebaliknya Tujuan utama dari konsep ini adalah, fleksibilitas sebuah class, artinya class yang didesain dengan low coupling dan high cohesion, akan mudah di modifikasi
Contoh Responsibility pada suatu Class
Benefit and Drawbacks of OO Development Benefit / Keuntungan Objek sering kali mencerminkan entitas dalam sistem aplikasi, ini yang membuat designer gampang membuat kelas Membantu meningkatkan produktivitas, karena kemampuan re-use software yang ada Lebih mudah untuk mengakomodasi perubahan, fleksibel. Contoh: meskipun ada perubahan requirement Mengurangi resiko dalam system development
Benefit and Drawbacks of OO Development Drawbacks / Kerugian Pada sistem yang kompleks, dengan banyaknya objects creation dan destruction serta objek yang berinteraksi dengan cara yang kompleks, mengakibatkan poor memory access times Susahnya mempelajari dan menggunakan OO principles serta nyaman dengan konsep ini, khususnya yang belum mengenal (terpaku dengan konsep struktural)
Class vs object
Class vs Object [2] Perbedaan Class dengan Object Sebuah class merupakan definisi abstract dari sebuah object Obyek merupakan hasil instansiasi dari class Obyek disebut juga dengan instance. Example: Class seperti cetakan kue, dimana kue yg dihasilkan dari cetakan kue itu adalah object Warna kue bisa bermacam-macam meskipun berasal dari cetakan yang sama (object memiliki sifat independen)
Class vs Object [2] Perbedaan Class dengan Object Class mendefinisikan struktur dan behaviour dari masing-masing object di dalam sebuah class Class bertugas sebagai template untuk pembuatan Object Class: konsep dan deskripsi dari sesuatu Object: instance dari class, bentuk (contoh)
Class vs Object [2] Attribute: Topi, Baju, Jaket, Tas Punggung, Tangan, Kaki, Mata Behavior: Cara Jalan ke Depan Cara Jalan Mundur Cara Belok ke Kiri Cara Memanjat
Class vs Object [2] Attribute (State): Behavior: Ban, Stir, Pedal Rem, Pedal Gas, Warna, Tahun Produksi Behavior: Cara Menghidupkan Mesin Cara Manjalankan Mobil Cara Memundurkan Mobil Attribute Variable(Member) Behavior Method(Fungsi)
Implementation of Class Bagian-bagian Class Diagram
Implementation of Class Contoh Implementasi Code dari Class Diagram
Classes of Object How many classes do you see?
Attribute Variable yang mengitari class, dengan nilai datanya bisa ditentukan di object Variable digunakan untuk menyimpan nilai yang nantinya akan digunakan pada program Variable memiliki jenis (tipe), nama dan nilai Name & age adalah atribute (variabel) dari class Person
Method Method merupakan hal-hal yang bisa dilakukan oleh obyek dari suatu class Method biasa dikaitkan dengan Behaviour / Perilaku Yang bisa dilakukan oleh method – Merubah nilai atribut suatu obyek – Menerima informasi dari obyek lain – Mengirim informasi ke obyek lain untuk melakukan sesuatu
Class = Method + Variable romi@romisatriawahono.net Object-Oriented Programming Class = Method + Variable Class Sepeda gir kecepatan variable tampilkan kecepatan ubah gir method http://romisatriawahono.net
Object = Method + Variable yg Memiliki Nilai romi@romisatriawahono.net Object-Oriented Programming Object = Method + Variable yg Memiliki Nilai Object Sepedaku gir = 3 instance variable kecepatan = 10km/jam tampilkan kecepatan () kecepatan = 10 km/jam instance method ubah gir (2) gir = 5 http://romisatriawahono.net
Example Employee Class And Object
TERIMA KASIH