Sabtu, 28 Juni 2014

OOAD



Analisa Dan Desain Dengan
Menggunakan Obyek Oriented
(OOAD)

Dalam mempelajari analisa dan desain dengan menggunakan objek orientasi (OOAD) kita harus mengerti dulu apa itu OOAD (Object Oriented Analysis and Design)?

OOAD adalah metode analisis yang memerikasa requirements dari sudut pandang kelas kelas dan objek yang ditemui dalam ruang lingkup permasalahan yang mengarahkan arsitektur software yang didasarkan pada manipulasi objek-objek system atau subsistem.

Dalam tugas ini saya mengambil materi dari 3 referensi, menurut mereka :

Konsep OOAD mencakup analisis dan desain sebuah sistem dengan pendekatan objek, yaitu analisis berorientasi objek (OOA) dan desain berorientasi objek (OOD).

OOA adalah metode analisis yang memeriksa requirement (syarat/keperluan) yang harus dipenuhi sebuah sistem dari sudut pandang kelas-kelas dan objek-objek yang ditemui dalam suatu permasalahan.
OOD adalah metode untuk mengarahkan arsitektur software yang didasarkan pada manipulasi objek-objek sistem atau subsistem.
Beberapa konsep dalam OOAD :
Objek (object)                                                                                                                   
  Objek adalah benda secara fisik dan konseptual yang ada di sekitar kita. Sebuah objek memiliki       
  keadaan sesaat yang disebut state (attribute). 
  Sebagai contoh Attribute (State) dari pesawat adalah nama pesawat, tipe, warna, tahun produksi,
  roda, dll. Sedangkan Behavior dari pesawat adalah cara menghidupkan mesin, cara menerbangkan
  pesawat (take off), cara menurunkan pesawat (landing), dll.

 Kelas (class)
  Kelas merupakan gambaran sekumpulan Objek yang terbagi dalam atribut, operasi, metode,
  hubungan, dan makna yang sama.
  Contoh pesawat Boeing 737 dibuat dengan rancangan yang sama, rancangan pesawat ini disebut
  kelas. Hasil rancangan itu menjadi pesawat Boeing 737 yang disebut objek. Pesawat-pesawat hasil
  rancangan tadi bisa memiliki warna, nama yang berbeda-beda tergantung perusahaan
  penerbangannya. Disini jelas bahwa objek memiliki sifat independen. Objek adalah instance dari
  kelas, satu kelas bisa memiliki beberapa objek.
Kotak Hitam (black boxes)
  Sebuah objek adalah kotak hitam. Konsep ini menjadi dasar implementasi objek. Dalam
  operasi OO hanya developer yang dapat memahami detail proses yang ada didalam kotak tersebut,
  sedangkan user tidak perlu mengetahui apa yang dilakukan yang penting mereka dapat 
  menggunakan objek untuk memproses kebutuhan mereka. Kotak hitam berisi kode dan data.
  Asosiasi dan Agregasi
  Asosiasi adalah hubungan yang mempunyai makna antara sejumlah objek. Asosiasi              
  digambarkan dengan sebuah garis penghubung diantara objeknya. Contohnya : Asosiasi   karyawan 
  dengan unit kerja. Setiap karyawan bekerja di satu unit kerja, sedangkan unit kerja dapat memiliki 
  beberapa karyawan.
  Agregasi adalah bentuk khusus sebuah asosiasi yang menggambarkan seluruh bagian pada suatu 
  objek merupakan bagian dari objek yang lain. Contohnya : Kopling dan piston adalah bagian dari
  mesin, sedangkan mesin, roda, body merupakan bagian dari sebuah mobil.

Metodologi dalam OOAD
 
Metodologi adalah cara systematis untuk mengerjakan analisys and design. Dengan metodologi, pihak yang membangun system software dapat merencanakan dan mengulangi pekerjaan dilain waktu. Metodologi juga menghilangkan perbedaan notasi untuk suatu hal yang sama karena setiap orang akan berbicara dalam bahasa yang sama.
Metodologi pengembangan sistem berorientasi objek mempunyai tiga karakteristik utama  yaitu :
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.

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.

 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.



Teknik Pemodelan dalam OOAD
 Model Objek
Model objek menggambarkan struktur statis dari suatu objek dalam sistem dan relasinya
yang berisikan diagram objek. Diagram objek adalah graph dimana nodenya adalah kelas yang       mempunyai relasi antar kelas.    

 Model Dinamik
Model dinamik menggambarkan aspek dari sistem yang berubah setiap saat. Dipergunakan untuk menyatakan aspek kontrol dari system yang berisikan state diagram. State diagram adalah graph dimana nodenya adalah state dan arc adalah transisi antara state yang disebabkan oleh event.

Model Fungsional
Model fungsional menggambrakan transformasi nilai data di dalam sistem.Berisikan data flow diagram. DFD adalah suatu graph dimana nodenya menyatakan proses dan arcnya adalah aliran data.



Referensi :

RATIONAL UNIFIED PROCESS

RATIONAL UNIFIED PROCESS

Di dalam perkembangan tehnologi komputer akan kebutuhan manusia yang semakin pesat membuat para pembuat software membuat sebuah perangkat lunak yang bisa memudahkan para penggunanya. Dilatar belakangi dengan perkembangan tehnologi itu maka di ciptakan perangkat lunak dengan berorientasi objek. Salah satunya adalah Rational Unified Process.
Pada 1997, RUP telah memperoleh Verdix, Objectory, Persyaratan, SQA (Software Quality Assurance), Kinerja Kesadaran, dan Pure-Atria. Menggabungkan pengalaman dasar pengguna-pengguna ini menyebabkan artikulasi tujuh praktik terbaik rekayasa perangkat lunak modern:

1. Mengembangkan iteratively, dengan risiko sebagai sopir iterasi utama
2. Mengatur persyaratan
3. Menggunakan arsitektur berbasis komponen
4. Lunak model visual
5. Terus kualitas verifikasi
6. Kontrol perubahan
7. Customization.

Cara kerja RUP itu didasarkan pada 6 kunci prinsip bagi perkembangan bisnis yang terkendali yaitu :


    1. Proses  penyesuaian terhadap lingkungan, pekerjaan
    2. Menyeimbangkan pengutamaan dari para stakeholders
    3. Melakukan kerjasama antar tim
    4. Mendemonstrasikan hasil-hasil yang ada secara berulang-ulang
    5. Menaikkan tingkat abtraksi dari sebuah software
    6. Pemusatan pada kualitas secara terus-menerus

RUP berbasis konsep object oriented, dengan aktifitas yang berpusat pada pengembangan model dengan menggunakan Unified Model Language (UML). Dibawah dapat dilihat bahwa RUP memiliki gambaran, yaitu:

Dimensi pertama digambarkan secara horizontal. Dimensi ini merepresentasi waktu dan   menunjukkan aspek dinamis dari proses, yaitu siklus, tahap, iterasi, dan milestone.Dimensi ini terdiri atas Inception, Elaboration, Construction, dan Transition.
Dimensi kedua digambarkan secara vertikal. Dimensi ini merepresentasikan aspek statis dari          proses, yaitu aktivitas, artifak, pelaksana kerja (worker) dan aliran kerja (workflow)  empat elemen penting, yakni who is doing, what, how dan when.




Model Proses Rational Unified Process (RUP)
RUP adalah proses pengembangan perangkat lunak berbasis UML (Unified Modeling Language) yang mempunyai karakteristik:

1. Berulang (iterative)
    Tahap pengembangan untuk setiap produk yang diserahkan (release) dilaksanakan secara berulang.
2. Architecture centric
     Menggunakan arsitektur sistem sebagai artifak utama untuk konseptualisasi, konstruksi, pengelolaan,    
     dan penyusunan sistem selama pengembangan.
3. Use case-driven
     Menggunakan use case sebagai artifak utama untuk menetapkan perilaku sistem yang diinginkan dan  
     untuk mengkomunikasikan perilaku sistem tersebut kepada parastakeholder sistem.
4. Risk-driven
     Menghilangkan atau mengurangi risiko-risiko yang dapat menghambat kesuksesan proyek.

Tahapan-tahapan RUP

Tahap (phases) pelaksanaan pengembangan pada RUP meliputi:

1. Permulaan (inception)
     Tahap inception fokus pada penentuan manfaat perangkat lunak yang harus dihasilkan, penetapan  
     proses-proses bisnis (business case), dan perencanaan proyek.
2. Pemerincian (elaboration)
     Tahap untuk menentukan use case (set of activities) dari perangkat lunak berikut rancangan  
     arsitekturnya.
3. Konstruksi (construction)
     Membangun produk perangkat lunak secara lengkap yang siap diserahkan kepada pemakai.
4. Transisi (transition)
     Menyerahkan perangkat lunak kepada pemakai, mengujinya di tempat pemakai, dan memperbaiki
     masalah-masalah yang muncul saat dan setelah pengujian.

Ada dua jenis aliran kerja (workflow) pada RUP, yaitu aliran kerja utama dan aliran kerja pendukung.






Aliran Kerja Utama

1. Pemodelan bisnis (business modeling)
    Mendeskripsikan struktur dan proses-proses bisnis organisasi.
2. Kebutuhan (requirements)
    Mendefinisikan kebutuhan perangkat lunak dengan menggunakan metode use case.
3. Analisis dan perancangan (analysis and design)
    Mendeskripsikan berbagai arsitektur perangkat lunak dari berbagai sudut pandang.
4. Implementasi (implementation)
    Menulis kode-kode program, menguji, dan mengintegrasikan unit-unit programnya.
5. Pengujian (testing)
    Mendeskripsikan kasus uji, prosedur, dan alat ukur pengujian.
6. Deployment
    Menangani konfigurasi sistem yang akan diserahkan.


Aliran Kerja Pendukung

1. Manajemen konfigurasi dan perubahan (configuration and change management)
    Mengendalikan perubahan dan memelihara artifak-artifak proyek.
2. Manajemen proyek (project management)
    Mendeskripsikan berbagai strategi pekerjaan dengan proses yang berulang.
3. Lingkungan (environment)
    Menangani infrastruktur yang dibutuhkan untuk mengembangkan sistem.


Penggunaan Rational Unified Process (RUP) dalam proses pengembangan perangkat lunak  unified modeling language.
Ciri khas dari RUP dalam proses pengembangan perangkat lunak berbasis UML adalah adanya metode use case yang digunakan
Use case diagram digunakan untuk memodelkan bisnis proses bedasarkan pengguna system. Use case terdiri atas diagram use case dan actor. Actor merepresentasikan orang yang akan mengoperasikan atau orang yang berinteraksi dengan system aplikasi.
Use case merepresentasikan operasi-operasi yang dilakukan oleh actor. Use casedigambarkan berbentuk elips dengan nama operasi di dalamnya. Actor yang melakukan operasi dihubungkan dengan garis lurus ke use case. Sehingga disini dapat disimpulkan bahwa Use case mengadopsi Object Oriented Programming (OOP) karena memisahkan operasi-operasi maupun komponen yang terlibat di dalamnya ke dalam sebuah objek-objek yang berbeda.

REFERENSI :