1. Pengenalan ADBO

Analisis dan Desain Berorientasi Objek (Object Oriented Analysis and Design(OOAD)) adalah suatu pendekatan rekayasa perangkat lunak dari sebuah sistem yang terdiri dari sekelompok objek yang saling berinteraksi, dan setiap objek itu mewakili beberapa entitas. Yang ditandai dengan adanya sebuah kelas, elemen data dan perilaku dari objek tersebut.
Konsep OOAD mencakup analisis dan desain sebuah sistem dengan pendekatan objek, yaitu analisis berorientasi objek (OOA) dan desain berorientasi objek (OOD). OOA adalah metode yang memeriksa syarat yang harus dipenuhi sebuah sistem dari sudut pandang kelas-kelas dan objek-objek yang ditemui dalam ruang lingkup perusahaan. Sedangkan OODadalah metode untuk mengarahkan arsitektur software yang didasarkan pada manipulasi objek-objek sistem atau subsistem.
1.      Karakteristik Object
Ada 2 karakteristik dari objek :
a.       Objek/Object
       Objek adalah benda secara fisik dan konseptual yang ada di sekitar kita. Sebuah objek memiliki keadaan sesaat yang disebut state.
       Objek dapat kongkrit, seperti halnya arsip dalam sistem, atau konseptual seperti kebijakan penjadwalan dalam multiprocessing pada sistem operasi.
       Dua objek dapat berbeda walaupun bila semua nilai atributnya identik.

Gambar 1. Macam-macam Objek

a.       Kelas/Class
Kelas merupakan gambaran sekumpulan Objek yang terbagi dalam atribut, operasi, metode, hubungan, dan makna yang sama.
 Suatu kegiatan mengumpulkan data (atribut) dan perilaku (operasi) yang mempunyai struktur data sama ke dalam satu grup.
 Kelas Objek merupakan wadah bagi Objek. Dapat digunakan untuk menciptakan Objek.
 Objek mewakili fakta/keterangan dari sebuah kelas.




Gambar 2. Kelas dan Objek
Istilah-istilah Objek
       Atribut: Data item yang menegaskan Objek.
       Operasi: Fungsi di dalam kelas yang dikombinasikan ke bentuk tingkah laku kelas.
       Metode: Pelaksanaan prosedur (badan dari kode yang mengeksekusi respon terhadap permintaan objek lain di dalam sistem).

1.      Karakteristik Metodologi Berorientasi Object
Metodologi pengembangan sistem berorientasi objek mempunyai tiga karakteristik utama :
a.      Encapsulation (Pengkapsulan)
  Encapsulation merupakan dasar untuk pembatasan ruang lingkup program terhadap data yang diproses.
  Data dan prosedur atau fungsi dikemas bersama-sama dalam suatu objek, sehingga prosedur atau fungsi lain dari luar tidak dapat mengaksesnya.
    Data terlindung dari prosedur atau objek lain, kecuali prosedur yang berada dalam objek itu sendiri.
b.      Inheritance (Pewarisan)
  Inheritance adalah teknik yang menyatakan bahwa anak dari objek akan mewarisi data/atribut dan metode dari induknya langsung.
          Atribut dan metode dari objek dari objek induk diturunkan kepada anak objek, demikian seterusnya.
        Inheritance mempunyai arti bahwa atribut dan operasi yang dimiliki bersama di anatara kelas yang mempunyai hubungan secara hirarki.
   Suatu kelas dapat ditentukan secara umum, kemudian ditentukan spesifik menjadi subkelas. Setiap subkelas mempunyai hubungan atau mewarisi semua sifat yang dimiliki oleh kelas induknya, dan ditambah dengan sifat unik yang dimilikinya.
          Kelas Objek dapat didefinisikan atribut dan service dari kelas Objek lainnya.
          Inheritance menggambarkan generalisasi sebuah kelas.
c.       Polymorphism (Polimorfisme)
      Polimorfisme yaitu konsep yang menyatakan bahwa seuatu yang sama dapat mempunyai bentuk dan perilaku berbeda.
          Polimorfisme mempunyai arti bahwa operasi yang sama mungkin mempunyai perbedaan dalam kelas yang berbeda.
          Kemampuan objek-objek yang berbeda untuk melakukan metode yang pantas dalam merespon message yang sama.
   Seleksi dari metode yang sesuai bergantung pada kelas yang seharusnya menciptakan Objek.

                            I.     Analisis dan Desain Terstruktur (Structured System Analysis and Design (SSAD))
Metodologi yang umumnya digunakan dalam pembangunan sistem berbasis komputer dalam dunia bisnis dan industri saat ini adalah metode analisis dan design terstruktur (Structured Analisys and Design / SSAD). Metode ini diperkenalkan pada tahun 1970, yang merupakan hasil turunan dari pemrograman terstruktur. Metode pengembangan dengan metode terstruktur ini terus diperbaiki sampai akhirnya dapat digunakan dalam dunia nyata.
Melalui SSAD, permasalahan yang komplek di organisasi dapat dipecahkan dan hasil dari sistem akan mudah untuk dipelihara, fleksibel, lebih memuaskan pemakainya, mempunyai dokumentasi yang baik, tepat waktu, sesuai dengan anggaran biaya pengembangan, dapat meningkatkan produktivitas dan kualitasnya akan lebih baik (bebas kesalahan).

Elemen Perancangan Terstruktur
1.   Modul merupakan sebuah instruksi atau sekumpulan instruksi program yang terdiri dari : input(masukan), output(keluaran), fungsi, mekanisme dan data internal. Contoh : Foxpro / Pascal (Procedure, function), COBOL (Program, section,paragraph), FORTRAN (subroutine).

2.   Bagan terstruktur (Structured Chart) : Menggambarkan partisi sistem ke dalam : modul-modul, organisasi, dan komunikasi. Keuntungannya ; Menggunakan gambar, Dapat dipartisi, Fleksibel, Input sangat berguna pada implementasi, Membantu pemeliharaan (maintenance) dan modifikasi.

3.   Strategi Perancangan : Mentransformasikan hasil analisis (DFD) menjadi Bagan Terstruktur, untuk diimplementasi. DFD memperlihatkan aliran data dan informasi dari sistem. Jika dalam suatu DFD aliran datanya ditentukan oleh suatu data item, misalnya ‘T’ yang mempunyai nilai/ karakteristik tertentu, kemudian nilai ini akan mempengaruhi atau menentukan arah aliran data (men-trigger arah), maka titik proses dimana terjadi percabangan arah aliran data tsb disebut titik pusat transaksi

4.   Optimasi dari perancangan (Design Heuristic). Metodologi Perancangan Terstruktur


1.   Metodologi pemecahan fungsional : Metodologi ini menekankan pada pemecahan sistem ke dalam subsistem-subsistem yang lebih kecil, sehingga akan lebih mudah untuk dipahami, dirancang, dan diterapkan.

2.   Metodologi berorientasi data : Metodologi ini menekankan pada karakteristik data yang akan diproses.

3.   Prescriptive methodologies : Metodologi ini merupakan metodologi yang dikembangkan oleh sistem house dan pabrik-pabrik perangkat lunak dan tersedia secara komersial dalam paket-paket program.

Kelebihan dan Kekurangan
            Kelebihan
-          OOAD
1. Dibandingkan dengan metode SSAD, OOAD lebih mudah digunakan dalam pembangunan system.
2.     Dibandingkan dengan SSAD, waktu pengembangan, level organisasi, ketangguhan dan penggunaan kembali (re-use) kode program lebih tinggi dibandingkan dengan metode OOAD.
3.  Tidak ada pemisahan antara fase desain dan analisi, sehingga meningkatkan komunikasi antara user dan developer dari awal hingga akhir pembangunan system.
4.      Analis dan programmer tidak dibatasi dengan batasan implementasi system.
5.      Relasi obyek dengan entitas (thing) umumnya dapat di-mapping dengan baik seperti kondisi pada dunia nyata dan keterkaitan dalam system. Hal ini memudahkan dalam memahami desain.
6.   Memungkinkan adanya perubahan dan kepercayaan diri yang tinggi terhadap kebenaran software yang membantu untuk mengurangi resiko pada pembangunan system yang kompleks.
7.      Encapsulasi data dan method, memungkinkan penggunaan kembali pada proyek lain, hal ini akan memperingan proses desain, pemrograman dan reduksi harga.
8.      OOAD memungkinkan adanya standarisasi obyek yang akan memudahkan memahami desain dan mengurangi resiko pelaksanaan proyek.
9.    Dekomposisi obyek, memungkinkan seorang analis untuk memecah masalah menjadi pecahan-pecahan masalah dan bagian-bagian yang di-manage secara terpisah. Kode program dapat dikerjakan bersama-sama. Metode ini memungkinkan pembangunan software dengan cepat, sehingga dapat segera masuk ke pasaran dan kompetitif. System yang dihasilkan sangat fleksibel dan mudah dalam memelihara.

-          SSAD
1.      Milestone diperlihatkan dengan jelas yang memudahkan dalam manajemen proyek
2.      SSAD merupakan pendekatan visul, ini membuat metode ini mudah dimengerti oleh pengguna atau programmer
3.  Penggunaan analisis grafis dan tool seperti DFD menjadikan SSAD bagus untuk digunakan
4.      SSAD merupakan metode yang diketahui secara umum pada berbagai industri
5.   SSAD sudah diterapkan begitu lama sehingga metode ini sudah matang dan layak untuk digunakan
6.      SSAD memungkinkan untuk melakukan validasi antara berbagai kebutuhan
7.      SSAD relative simple dan mudah dimengerti

Kekurangan
-          OOAD
1.      Pada awal desain OOAD, system mungkin akan sangat simple.
2.      Pada OOAD lebih focus pada coding dibandingkan dengan SSAD.
3.      Pada OOAD tidak menekankan pada kinerja team seperti pada SSAD.
4.  Pada OOAD tidak mudah untuk mendefinisikan class dan obyek yang dibutuhkan system.
5. Seringkali pemrograman berorientasi obyek digunakan untuk melakukan analisis terhadap fungsional site, sementara metode OOAD tidak berbasis pada fungsional system.
6.     OOAD merupakan jenis manajemen proyek yang tergolong baru, yang berbeda dengan metode analisis dengan metode terstruktur. Konsekuensinya adalah team developer butuh waktu yang lebih lama untuk berpindah ke OOAD karena mereka sudah menggunakan SSAD dalam waktu yang lama.
7.      Metodologi pengembangan system denga OOAD menggunakan konsep re-use. Re-use merupakan salah satu keuntungan utama yang menjadi alasan digunakannya OOAD. Namun demikian, tanpa prosedur yang emplisit terhadap re-use, akan sangat sulit untuk menerapkan konsep ini pada skala besar.

-          SSAD
1. SSAD berorientasi utama pada proses, sehingga mengabaikan kebutuhan non-fungsional
2.      Sedikit sekali manajemen langsung terkait dengan SSAD
3.   Prinsip dasar SSAD merupakan pengembangan non-iterative (waterfall), akan tetapi kebutuhan akan berubah pada setiap proses
4.  Interaksi antara analisis atau pengguna tidak komprehensif, karena system telah didefinisikan dari awal, sehingga tidak adaptif terhadap perubahan
5.      Selain dengan menggunakan desain logic dan DFD, tidak cukup tool yang digunakan untuk mengkomunikasikan dengan pengguna, sehingga sangat sulit bagi pengguna untik melakukan evaluasi.
6.    Pada SAAd sulit sekali untuk memutuskan ketika ingin menghentikan dekomposisi dan memulai membuat system
7.      SSAD tidak selalu memenuhi kebutuhan pengguna
8.   SSAD tidak dapat memenuhi kebutuhan terkait bahasa pemrograman berorientasi obyek, karena metode ini memang didesain untuk mendukung bahasa pemrograman terstruktur, tidak berorientasi pada obyek.

Komentar

Postingan populer dari blog ini

6. Sequence Diagram

5. State Chart Diagram