Pendekatan Berorientasi Objek
Dalam pendekatan berorientasi objek, fokusnya adalah menangkap struktur dan perilaku sistem informasi menjadi modul-modul kecil yang menggabungkan data dan proses. Tujuan utama dari Object Oriented Design (OOD) adalah untuk meningkatkan kualitas dan produktivitas analisis dan desain sistem dengan membuatnya lebih bermanfaat.
Pada tahap analisis, model OO digunakan untuk mengisi gap antara masalah dan solusi. Ini bekerja dengan baik dalam situasi di mana sistem menjalani desain, adaptasi, dan pemeliharaan berkelanjutan. Ini mengidentifikasi objek dalam domain masalah, mengklasifikasikannya dalam istilah data dan perilaku.
Model OO bermanfaat dengan cara berikut -
Ini memfasilitasi perubahan sistem dengan biaya rendah.
Ini mempromosikan penggunaan kembali komponen.
Ini menyederhanakan masalah pengintegrasian komponen untuk mengkonfigurasi sistem yang besar.
Ini menyederhanakan desain sistem terdistribusi.
Elemen Sistem Berorientasi Objek
Mari kita lihat karakteristik Sistem OO -
Objects- Objek adalah sesuatu yang ada dalam domain masalah dan dapat diidentifikasi oleh data (atribut) atau perilaku. Semua entitas berwujud (pelajar, pasien) dan beberapa entitas tak berwujud (rekening bank) dimodelkan sebagai objek.
Attributes - Mereka menggambarkan informasi tentang objek.
Behavior- Ini menentukan apa yang dapat dilakukan objek. Ini mendefinisikan operasi yang dilakukan pada objek.
Class- Kelas merangkum data dan perilakunya. Objek dengan arti dan tujuan yang sama dikelompokkan sebagai kelas.
Methods- Metode menentukan perilaku kelas. Mereka tidak lebih dari sebuah tindakan yang dapat dilakukan oleh sebuah objek.
Message- Pesan adalah panggilan fungsi atau prosedur dari satu objek ke objek lainnya. Mereka adalah informasi yang dikirim ke objek untuk memicu metode. Pada dasarnya, pesan adalah panggilan fungsi atau prosedur dari satu objek ke objek lainnya.
Fitur Sistem Berorientasi Objek
Sistem berorientasi objek hadir dengan beberapa fitur hebat yang dibahas di bawah ini.
Enkapsulasi
Enkapsulasi adalah proses menyembunyikan informasi. Ini hanyalah kombinasi dari proses dan data menjadi satu kesatuan. Data suatu objek disembunyikan dari sistem lainnya dan hanya tersedia melalui layanan kelas. Ini memungkinkan perbaikan atau modifikasi metode yang digunakan oleh objek tanpa mempengaruhi bagian lain dari sistem.
Abstraksi
Ini adalah proses mengambil atau memilih metode dan atribut yang diperlukan untuk menentukan objek. Ini berfokus pada karakteristik penting dari suatu objek relatif terhadap perspektif pengguna.
Hubungan
Semua kelas dalam sistem terkait satu sama lain. Objek tidak ada dalam isolasi, mereka ada dalam hubungan dengan objek lain.
Ada tiga jenis hubungan objek -
Aggregation - Ini menunjukkan hubungan antara keseluruhan dan bagian-bagiannya.
Association - Dalam hal ini, dua kelas terkait atau terhubung dalam beberapa cara seperti satu kelas bekerja dengan kelas lain untuk melakukan tugas atau satu kelas bertindak atas kelas lain.
Generalization- Kelas anak didasarkan pada kelas induk. Ini menunjukkan bahwa dua kelas serupa tetapi memiliki beberapa perbedaan.
Warisan
Inheritance adalah fitur hebat yang memungkinkan untuk membuat sub-kelas dari kelas yang sudah ada dengan mewarisi atribut dan / atau operasi kelas yang ada.
Polimorfisme dan Pengikatan Dinamis
Polimorfisme adalah kemampuan untuk mengambil berbagai bentuk. Ini berlaku untuk objek dan operasi. Objek polimorfik adalah objek yang menyembunyikan tipe sebenarnya di dalam kelas super atau induk.
Dalam operasi polimorfik, operasi tersebut dapat dilakukan secara berbeda oleh kelas objek yang berbeda. Ini memungkinkan kita untuk memanipulasi objek dari kelas yang berbeda dengan hanya mengetahui properti umumnya.
Pendekatan Terstruktur Vs. Pendekatan Berorientasi Objek
Tabel berikut menjelaskan bagaimana pendekatan berorientasi objek berbeda dari pendekatan terstruktur tradisional -
Pendekatan Terstruktur | Pendekatan Berorientasi Objek |
---|---|
Ini bekerja dengan pendekatan Top-down. | Ini bekerja dengan pendekatan Bottom-up. |
Program dibagi menjadi beberapa submodul atau fungsi. | Program diatur dengan memiliki sejumlah kelas dan objek. |
Panggilan fungsi digunakan. | Pengiriman pesan digunakan. |
Penggunaan ulang perangkat lunak tidak dimungkinkan. | Dapat digunakan kembali mungkin. |
Pemrograman desain terstruktur biasanya dibiarkan sampai tahap akhir. | Pemrograman desain berorientasi objek dilakukan secara bersamaan dengan fase lainnya. |
Desain Terstruktur lebih cocok untuk offshoring. | Sangat cocok untuk pengembangan in-house. |
Ini menunjukkan transisi yang jelas dari desain ke implementasi. | Transisi yang tidak begitu jelas dari desain ke implementasi. |
Ini cocok untuk sistem waktu nyata, sistem tertanam, dan proyek di mana objek bukan tingkat abstraksi yang paling berguna. | Sangat cocok untuk sebagian besar aplikasi bisnis, proyek pengembangan game, yang diharapkan dapat disesuaikan atau diperpanjang. |
DFD & ER diagram memodelkan data. | Diagram kelas, diagram urutan, diagram diagram status, dan kasus penggunaan semuanya berkontribusi. |
Dalam hal ini, proyek dapat dikelola dengan mudah karena tahapan yang dapat diidentifikasi dengan jelas. | Dalam pendekatan ini, proyek bisa jadi sulit untuk dikelola karena transisi yang tidak pasti antar fase. |
Unified Modeling Language (UML)
UML adalah bahasa visual yang memungkinkan Anda memodelkan proses, perangkat lunak, dan sistem untuk mengekspresikan desain arsitektur sistem. Ini adalah bahasa standar untuk merancang dan mendokumentasikan sistem dengan cara berorientasi objek yang memungkinkan arsitek teknis untuk berkomunikasi dengan pengembang.
Ini didefinisikan sebagai kumpulan spesifikasi yang dibuat dan didistribusikan oleh Object Management Group. UML dapat dikembangkan dan diskalakan.
Tujuan dari UML adalah untuk menyediakan kosakata umum dari istilah berorientasi objek dan teknik diagram yang cukup kaya untuk memodelkan proyek pengembangan sistem dari analisis hingga implementasi.
UML terdiri dari -
Diagrams - Ini adalah representasi bergambar dari proses, sistem, atau sebagian darinya.
Notations - Ini terdiri dari elemen-elemen yang bekerja bersama dalam diagram seperti konektor, simbol, catatan, dll.
Contoh Notasi UML untuk kelas
Diagram instance-notasi UML
Operasi Dilakukan pada Objek
Operasi berikut dilakukan pada objek -
Constructor/Destructor- Membuat instance baru dari kelas dan menghapus instance kelas yang ada. Misalnya menambahkan karyawan baru.
Query- Mengakses status tanpa mengubah nilai, tidak memiliki efek samping. Misalnya, mencari alamat karyawan tertentu.
Update - Mengubah nilai satu atau lebih atribut & mempengaruhi keadaan objek Misalnya, mengubah alamat seorang karyawan.
Kegunaan UML
UML cukup berguna untuk tujuan berikut -
- Memodelkan proses bisnis
- Menjelaskan arsitektur sistem
- Menampilkan struktur aplikasi
- Menangkap perilaku sistem
- Pemodelan struktur data
- Membangun spesifikasi sistem yang terperinci
- Membuat sketsa ide
- Menghasilkan kode program
Model Statis
Model statis menunjukkan ciri-ciri struktural suatu sistem, menggambarkan struktur sistemnya, dan menekankan pada bagian-bagian yang menyusun sistem tersebut.
Mereka digunakan untuk mendefinisikan nama kelas, atribut, metode, tanda tangan, dan paket.
Diagram UML yang merepresentasikan model statis meliputi diagram kelas, diagram objek, dan diagram use case.
Model Dinamis
Model dinamis menunjukkan karakteristik perilaku suatu sistem, yaitu bagaimana sistem berperilaku dalam menanggapi peristiwa eksternal.
Model dinamis mengidentifikasi objek yang dibutuhkan dan bagaimana mereka bekerja bersama melalui metode dan pesan.
Mereka digunakan untuk merancang logika dan perilaku sistem.
Diagram UML merupakan model dinamis yang meliputi diagram sekuens, diagram komunikasi, diagram status, diagram aktivitas.
Siklus Hidup Pengembangan Sistem Berorientasi Objek
Ini terdiri dari tiga proses makro -
- Analisis Berorientasi Objek (Object Oriented Analysis / OOA)
- Desain berorientasi objek (OOD)
- Implementasi Berorientasi Objek (OOI)
Kegiatan Pengembangan Sistem Berorientasi Objek
Pengembangan sistem berorientasi objek mencakup tahapan berikut -
- Analisis berorientasi objek
- Desain berorientasi objek
- Prototyping
- Implementation
- Pengujian inkremental
Analisis Berorientasi Objek
Tahap ini berkaitan dengan penentuan kebutuhan sistem dan untuk memahami kebutuhan sistem membangun a use-case model. Use case adalah skenario untuk menggambarkan interaksi antara pengguna dan sistem komputer. Model ini mewakili kebutuhan pengguna atau pandangan pengguna terhadap sistem.
Ini juga termasuk mengidentifikasi kelas dan hubungannya dengan kelas lain dalam domain masalah, yang membuat aplikasi.
Desain Berorientasi Objek
Tujuan dari fase ini adalah untuk merancang dan menyempurnakan kelas, atribut, metode, dan struktur yang diidentifikasi selama fase analisis, antarmuka pengguna, dan akses data. Fase ini juga mengidentifikasi dan mendefinisikan kelas atau objek tambahan yang mendukung implementasi persyaratan.
Pembuatan prototipe
Pembuatan prototipe memungkinkan untuk sepenuhnya memahami betapa mudah atau sulitnya menerapkan beberapa fitur sistem.
Ini juga dapat memberi pengguna kesempatan untuk mengomentari kegunaan dan kegunaan desain. Ini selanjutnya dapat menentukan kasus penggunaan dan membuat pemodelan kasus penggunaan menjadi lebih mudah.
Penerapan
Ini menggunakan Pengembangan Berbasis Komponen (CBD) atau Pengembangan Aplikasi Cepat (RAD).
Pengembangan berbasis komponen (CBD)
CODD adalah pendekatan industri untuk proses pengembangan perangkat lunak menggunakan berbagai teknologi seperti alat CASE. Pengembangan aplikasi berpindah dari pengembangan khusus ke perakitan komponen perangkat lunak yang dibuat sebelumnya, telah diuji sebelumnya, dapat digunakan kembali yang beroperasi satu sama lain. Pengembang CBD dapat merakit komponen untuk membangun sistem perangkat lunak yang lengkap.
Pengembangan Aplikasi Cepat (RAD)
RAD adalah seperangkat alat dan teknik yang dapat digunakan untuk membangun aplikasi lebih cepat daripada biasanya dengan metode tradisional. Ini tidak menggantikan SDLC tetapi melengkapinya, karena ini lebih berfokus pada deskripsi proses dan dapat dikombinasikan dengan sempurna dengan pendekatan berorientasi objek.
Tugasnya adalah membangun aplikasi dengan cepat dan secara bertahap mengimplementasikan desain persyaratan pengguna melalui alat-alat seperti visual basic, power builder, dll.
Pengujian Tambahan
Pengembangan perangkat lunak dan semua aktivitasnya termasuk pengujian adalah proses yang berulang. Oleh karena itu, ini bisa menjadi urusan yang mahal jika kita menunggu untuk menguji suatu produk hanya setelah pengembangannya selesai. Di sini pengujian inkremental muncul di mana produk diuji selama berbagai tahap pengembangannya.