• Pengembangan sistem berorientasi obyek berbeda dari pengembangan konvensional yang memandang perangkat lunak sebagai fungsi dan data yang terisolasi.
• Pandangan ini dapat dinyatakan dengan persamaan yang dikemukakan Niklaus Wirth sebagai berikut :
Algorithms + Data Structures = Programs
• Persamaan itu menyatakan bahwa program perangkat lunak adalah :
“ sekumpulan mekanisme yang melakukan aksi-aksi tertentu pada data tertentu “.
• Dengan demikian, pada pendekatan tersebut terdapat 2 (dua) hal berbeda yang saling melengkapi dalam memandang pembangunan perangkat lunak, yaitu :
1. Dapat berfokus pada fungsi,
2. Berfokus pada data
• Pada pendekatan konvensional, kebanyakan berfokus pada fungsi.
• Namun juga terdapat pendekatan yang fokus pada data, terutama pada basis data dan pemodelan informasi.
• Sedangkan pandangan berorientasi obyek berpusat pada obyek yang mengkombinasikan data dan fungsionalitas.
• Pendekatan berorientasi obyek adalah
“ cara memandang persoalan menggunakan model-model yang diorganisasikan seputar konsep obyek yang mengkombinasikan struktur data dan perilaku suatu entitas “.
• Pada pendekatan berorientasi objek, blok pembangun utama sistem perangkat lunak adalah obyek dan/atau kelas.
v Dampak Pendekatan Berorientasi Obyek
Perbedaan antara pendekatan berorientasi obyek dengan pendekatan pengembangan perangkat lunak konvensional mempengaruhi proses pengembangan dan produk perangkat lunak itu sendiri, di antaranya :
- Penggeseran usaha pengembangan menjadi intensif pada fase analisis dan perancangan.
- Penekanan pada obyek bukan data ataupun fungsi.
- Proses pengembangan yang seamlessness.
- Iteratif bukan sekuen.
Keunggulan pendekatan berorientasi obyek adalah :
- Bekerja yang mendekati kognisi manusia.
- Menghasilkan sistem yang dibangun di atas bentuk-bentuk antara yang stabil, dengan demikian lebih mampu untuk mengikuti perubahan.
- Dapat digunakan tidak hanya pada perancangan perangkat lunak, tetapi juga seluruh proses pengembangan perangkat lunak.
- Mereduksi resiko pengembangan sistem-sistem kompleks.
- Dapat membantu mengeksploitasi keampuhan bahasa pemrograman berbasis obyek.
OBYEK
Obyek adalah :
“ segala sesuatu yang ada di sekitar kita, dimana obyek-obyeklah yang menyusun dunia ini “.
Misal : manusia, gunung, mobil, becak, dll.
• Setiap obyek mempunyai informasi-informasi atau atribut-atribut dan perilaku sebagai suatu operasi pengaturnya.
• Atribut-atribut obyek contohnya adalah : jumlah tangan, jumlah kaki, jumlah roda, warna, berat, dan seterusnya. Sedangkan operasi-operasi pengatur obyek contohnya adalah : berjalan, meletus, belok kanan, belok kiri, menaikkan kecepatan, dan seterusnya
CLASS (Kelas)
• Himpunan obyek-obyek yang sejenis disebut Class (Kelas).
• Obyek adalah contoh /instance dari sebuah class.
• Sebagai contoh class binatang adalah berekor dan berkaki empat.
• Contoh/instance yang mungkin pada class ini adalah kucing, gajah, kuda, dll.
ENCAPSULATION (PENGKAPSULAN)
• Encapsulation (pengkapsulan) sering disebut dengan penyembunyian informasi (information hiding).
• Konsep ini sebenarnya lebih didasari pada fakta yang ada di dunia nyata bahwa tidak semua hal perlu diperhatikan.
• Contoh :
- remote control televisi yang menyembunyikan informasi untuk perubahan channel, volume.
- monitor menyembunyikan operasinya terhadap CPU.
- Pada software, jika suatu kesalahan/error terjadi pada suatu obyek, hanya perlu memperbaiki obyek tersebut tanpa perlu mengotak-atik obyek yang lain.
POLIMORPHISME
• Polimorphisme adalah : konsep yang sangat handal bagi pengembang perangkat lunak untuk pemisahan secara jelas diantara sub sistem yang berbeda.
• Sebuah sistem akan bisa dimodifikasi secara mudah karena hanya dibutuhkan interface antar class.
• Contoh : Hitung Gaji,Baca Koran dll.
GENERALISASI
• Generalisasi di OO digunakan untuk : menjelaskan hubungan kesamaan diantara class. Obyek-obyek class bisa diatur secara hierarkies.
• Manfaatnya : Bisa mengetahui antara class induk dengan class sub-sub dibawahnya.
• Minimal 1 atribut yang dimiliki class induk akan turun (mengalir) ke class-class subnya.
INHERITANCE
• Yang dimaksud dengan inheritance adalah: Apapun atribut dan operasi dari class induk akan dimiliki juga oleh semua obyek yang diinherit/diturunkan dari class tersebut.
• Sifat ini tidak hanya berlaku untuk obyek terhadap class, tetapi juga berlaku untuk class terhadap class lainnya.
ASOSIASI
- Asosiasi adalah : “kelas-kelas yang terhubungkan satu sama lain secara konseptual”
- Contoh :
Ketika sebuah kelas berasosiasi dengan yang lain, setiap kelas biasanya memainkan peran pada asosiasi tersebut.
Analisis Berorientasi Obyek
• Menurut Tom DeMarco Analisis (sistem) adalah : “hal yang dapat membuat frustasi, penuh dengan hubungan antar manusia yang kompleks, tak tentu dan sulit. Dalam suatu kata, ini menakjubkan. Sekali andaterlibat,kesenangan mudah dari pembangunan sistem yang lama tidak lagi memadai untuk memuaskan Anda”.
Analisis Sistem
• Menurut Jogiyanto H.M, Analisis sistem adalah :“penguraian dari suatu sistem informasiyangutuh ke dalam bagian bagian komponennya dengan maksud untuk mengidentifikaskan dan mengevaluasi permasalahan-permasalahan, kesempatan-kesempatan, hambatan-hambatan yang terjadi dan kebutuhan-kebutuhan yang diharapkan sehingga dapat diusulkan perbaikan-perbaikannya“.
Tahap-tahap Analisis Sistem, adalah :
- Identify, adalah mengidentifikasi masalah
- Understand, adalah memahami kerja dari sistem yang ada
- Analyze, adalah menganalisis sistem
- Report, adalah membuat laporan hasil analisis
Metode-metode analisis berorientasi objek yang popular,adalah :
- Metode Booch
- Metode Rumbaugh (OMT – Object Modelling Technique)
- Metode Jacobson (OOSE – Object Oriented Software Engineering)
- Metode Coad & Yourdon
- Metode Wirfs – Brock
- Metode Rational Unified Process
METODE ANALISIS BOOCH
Metode terbagi menjadi dua, yaitu :
- Proses pengembangan mikro
· Mendefinisikan sekumpulan tugas analisis yang diterapkan ulang pada masing-masing langkah di proses makro.
· Pendekatan evolusioner diterapkan
· Pengidentifikasian kelas dan objek
· Semantiks kelas dan objek dan mendefinisikan keterhubungan antar kelas dan objek-objek
· Serangkaian aktivitas untuk memperbaiki model analisis
2. Proses pengembangan makro
METODE ANALISIS RUMBAUGH
Tahap-tahap yang dilakukan adalah :
- Pengembang berpengalaman dapat mengkombinasikan beberapa tahap atau melakukan tahap-tahap tertentu secara paralel
- Iterasi tahap-tahap diperlukan pada tingkat-tingkat abstraksi lebih bawah untuk menambahkan rincian-rincian ke model
- Setelah seluruh analisis diselesaikan pada abstraksi tingkat tinggi, subsistem-subsistem, proyek besar dapat dirancang secara independen dan kongkuren untuk abstraksi tingkat-tingkat lebih bawah
Analisis
- Tujuan analisis adalah : mengembangkan model mengenai apa yang akan dilakukan sistem
- Model diekspresikan dengan objek-objek dan keterhubungannya, aliran kontrol dinamis dan transformasi fungsional
- Proses menangkap kebutuhan dan berkonsultasi dengan pembeli harus terus menerus selama analisis
Metode Analisis Rumbaugh (Lanjutan)
- Tulis atau berikan deskripsi awal mengenai masalah (pernyataan masalah)
- Bangun model objek
· Identifikasi kelas-kelas objek
· Mulailah dengan kamus berisi deskripsi kelas-kelas, atribut-atribut dan asosiasi-asosiasi
· Tambahkan asosiasi-asosiasi antara kelas-kelas
· Tambahkan atribut-atribut untuk objek-objek dan link-link
· Organisasikan dan sederhanakan kelas-kelas objek menggunakan pewarisan
· Uji jalur-jalur pengaksesan menggunakan skenario dan iterasikan tahap-tahap di atas jika perlu
· Kelompokkan kelas-kelas menjadi modul-modul, didasarkan pada kopling dan fungsi yang berhubungan
è Model Objek = diagram model objek + kamus data
- Kembangkan model dinamis
· Persiapkan skenario-skenario dari barisan-barisan interaksi
· Identifikasi kejadian-kejadian antara objek-objek dan persiapkan kejadian untuk tiap skenario
· Siapkan diagram alir kejadian untuk sistem tersebut
· Kembangkan diagram untuk tiap kelas yang perilaku dinamisnya penting
· Periksa konsistensi dan kelengkapan kejadian-kejadian yang dipakai bersama diantara diagram-diagram status
à Model dinamis = diagram-diagram status + diagram alir kejadian global
- Bangun Model Fungsional
· Identifikasi nilai-nilai input dan output
· Gunakan diagram-diagram alir data untuk menunjukkan kebergantungan-kebergantungan fungsional
· Deskripsikan apa yang dilakukan tiap fungsi
· Identifikasi konstrain-konstrain
· Spesifikasi kriteria optimasi
à Model Fungsional = diagram-diagram alir data + konstrain-konstrain
- Verifikasi, iterasi dan perbaiki tiga (3) model, yaitu :
· Tambahkan operasi-operasi kunci yang ditemukan selama persiapan model fungsional ke model objek
· Verifikasi kelas-kelas, asosiasi-asosiasi, atribut-atribut dan operasi- operasi agar konsisten dan lengkap pada tingkat abstraksi yang dipilih
· Kembangkan skenario-skenario lebih rinci (termasuk kondisi-kondisi kesalahan) sebagai variasi-variasi terhadap skenario dasar
· terasikan tahap-tahap di atas begitu diperlukan untuk melengkapi analisis
à Dokumen analisis = pernyataan masalah + Model objek + Model dinamis + Model fungsional
METODE ANALISIS JACOBSON
• Metode ini berbeda dengan metode lainnya, yaitu penekanan pada use – case – yaitu deskripsi atau skenario mengenai cara pemakai berinteraksi dengan sistem atau produk
ANALISIS & PERANCANGAN BERORIENTASI COAD & YOURDON
• Menurut Coad & Yourdon hasil utama OOA dan OOD adalah mengurangi kompleksitas persoalan dan tanggung jawab sistem di dalamnya.
• Metode OOA & OOD didasarkan atas sejumlah prinsip umum mengatasi kompleksitas yang tidak dimiliki oleh metode lain, yaitu :
1. Abstraksi
a. Prosedural
b. Data
2. Enkapsulasi
3. Inheritance/pewarisan
4. Asosiasi
5. Komunikasi dengan pesan
6. Sebaran cara organisasi
a. Obyek dan Atribut
b. Whole & parts
c. Kelas & anggotanya, serta pembedaan diantara mereka
7. Skala
8. Kategori Kelakuan
a. Penyebab langsung
b. Perubahan sejalan waktu
c. Kesamaan Fungsi
Perancangan Berorientasi Obyek didasarkan atas representasi yang seragam antara kelas dan obyek
• Implikasinya :
o Tidak ada perbedaan besar antara notasi analisis dan perancangan
o Tidak ada transisi dari analisis ke perancangan
o Tidak ada model waterfall yang harus diikuti, model spiral dan incremental juga bisa ditetapkan
o Ada sejumlah ketrampilan dan strategi yang diperlukan pada tahap analisis dan perancangan
o Adanya keseragaman representasi dari OOA ke OOD dan ke OOP
• Konsep :
- Obyek : adalah abstraksi dari sebuah entitas nyata(informasinya harus diingat dan disimpan, nilai-nilai atribut dan layanan- layanan eksklusif dienkapsulasi)
- Kelas : adalah kumpulan obyek-obyek yang telah jelas klasifikasinya
- Atribut : adalah sejumlah data (informasi keadaan) dimana tiap obyek dari suatu kelas mempunyai nilai tertentu
- Class & Obyek : adalah suatu istilah yang berarti “ suatu kelas dan obyek-obyek yang ada pada kelas tersebut “
- Subyek : adalah mekanisme untuk membagi model yang besar dan kompleks. Berguna juga untuk mengatur paket kerja pada proyek-proyek besar berdasarkan hasil penyelidikan awal dengan OOA
- Layanan (service) : adalah kelakuan spesifik yang dilakukan oleh obyek yang menjadi tanggung jawab obyek tersebut
- Keadaan/Status : adalah status dari sebuah obyek gabungan dari nilai-nilai atribut class
- Transisi : adalah perubahan status
- Kondisi : adalah aksi if ->precondition -> trigger -> terminate
- Text Blocks : adalah teks
- Loop : adalah aksi while -> do -> repeat -> trigger -> terminate
• Hubungan Antar Obyek :
- Struktur Whole-Parts
Satu obyek (yang mewakili whole) dapat dikomposisi menjadi obyek-obyek lain (parts).
Ada 3 (tiga) variasi struktur whole-parts :
1. Assembly Parts
contoh : Sebuah mobil mempunyai roda, mesin dan chasis (kerangka)
2. Container-Contents
contoh : Sebuah kotak berisi sejumlah paku
3. Collection Member
contoh : Sebuah organisasi memiliki manajer,analisis
Struktur whole-parts dapat memiliki rentang spesifik, seperti layaknya konsep kardinalitas pada pemodelan E-R
• Instance Connection (Hubungan Asosiasi)
yaitu koneksi yang diperlukan oleh sebuah obyek dengan obyek lain dalam rangka memenuhi tanggung jawabnya
contoh : Orang yang bekerja di kantor
Hubungan asosiasi juga bisa memiliki rentang
• Message Connection
Memodelkan ketergantungan pemrosesan sebuah obyek dinyatakan dengan kebutuhan atas layanan-layanan dari obyek lain dalam rangka memenuhi tanggung jawabnya (layanan yang disediakan olehnya) sendiri
• Hubungan antar Class
Struktur Generalization-Spesialization / GenSpek
Mendefinisikan hirarki pewarisan untuk kelas-kelas yang merupakan spesifikasi dari kelas lain yang lebih umum (general).
Sebuah kelas bisa mewarisi sifat dari sebuah super kelas (class general) yang disebut dengan pewarisan tunggal (single inheritance) atau dari sejumlah superclass (multiple inheritance)
• ANALISIS
- Memisahkan atau menguraikan suatu keseluruhan menjadi bagian-bagian untuk mendapatkan sifat,fungsi,relasi dsbnya.
- Praktek mempelajari rincian persoalan untuk mendapatkan spesifikasi dari kebutuhan eksternal yang diamati
Model Analisis (OOA) terdapat 5 (lima) lapisan, yaitu :
1. Lapisan Subyek
2. Lapisan Kelas dan Obyek
3. Lapisan Struktur
4. Lapisan Atribut
5. Lapisan Layanan
• PROSES ANALISIS
1. Identifikasi kelas dan obyek
• Mempelajari rincian problem
• Mencari kelas dan obyek potensial/kandidat
• Pemberian nama untuk kelas/obyek potensial
• Diuji untuk dijadikan kelas dan obyek akhir dengan kriteria- kriteria sebagai berikut :
- Mudah diingat
- Banyak atribut
- Lebih dari 1 obyek à kelas
- Atribut selalu terpakai
- Layanan yang selalu terpakai
- Bukan hasil turunan
• Menambahkan kelas dan oyek pada diagram analisis.
3. Identifikasi Struktur
a. Mencari struktur berspesifikasi
Tiap kelas dianggap general dengan diuji :
o Apakah kelas masih dalam rincian persoalan
o Apakah kelas masih dalam tanggung jawab problem
o Apakah ada inheritance/pewarisan
o Apakah gen/spek masih memenuhi kriteria sebagai kelas dan obyek
b. Mencari struktur Whole-Part (3)
c. Identifikasi Struktur ganda (multiple structure)
3. Identifikasi Subyek
a. Memilih subyek yang mungkin ada dengan :
- Menjadikan kelas teratas pada tiap struktur yang telah teridentifikasi sebagai subyek
- Menjadikan kelas dan obyek yang tidak menjadi struktur menjadi subyek
b. Menghaluskan Subyek
- Dengan mencari ketergantungan interaksi minimal antara kelas dan obyek pada subyek-subyek yang berbeda
c. Mengkontruksi Subyek
-> Pada tiap subyek
i. - Digambarkan kotak, nama dan nomor subyek bisa ditambah daftar kelas dan obyeknya.
- Digambarkan kotak-kotak subyek berlabel
d. Menambahkan subyek pada Diagram OOA
4. Identifikasi Atribut
a. Mencari atribut dengan menerapkan pertanyaan- pertanyaan :
- How/bagaimana kelas/obyek digambarkan secara umum
- Bagaimana kelas/obyek digambarkan pada perincian persoalan
- Bagaimana kelas/obyek digambarkan pada konteks tanggung jawab
- Apa yang perlu diingat dan diketahui
- Apa state obyek dan kelas
b. Identifikasi instance connection antar obyek
c. Uji atribut dengan instance connection
5. Identifikasi Layanan
a. Identifikasi state untuk membentuk Objek State Diagram
b. Identifikasi layanan yang dibutuhkan setiap kelas dan objek
-> dilakukan dengan menggambarkan State
c. Identifikasi Message Connection dengan pertanyaan :
- Dengan obyek manakah suatu kelas/obyek membutuhkan layanan
- Obyek lain yang mana, yang membutuhkan layanan suatu kelas/obyek
6. Menyiapkan dokumentasi
a. Menggambarkan diagram analisis yang lengkap
b. Menuliskan spesifikasi kelas dan obyek
c. Menambahkan dokumentasi suplemental jika dibutuhkan :
- Tabel atau diagram state
- Kendali-kendali sistem tambahan
No comments:
Post a Comment
Berikanlah Komentar, saran dan Kritik yang membangun "