Thursday, March 12, 2009

Object Modelling Technique

PENGEMBANGAN SISTEM PERANGKAT LUNAK

Metode pengembangan sistem informasi (information systems development methods, ISDM) dibuat untuk menjamin bahwa SI yang dikembangkan dapat diselesaikan tepat waktu, sesuai dengan anggaran, dan sesuai dengan spesifikasi yang ditetapkan. Namun demikian, studi terhadap 32 perusahaan yang bergerak di berbagai sektor menemukan adopsi ISDM di Indonesia masih rendah. Sebagian besar perusahaan mengembangkan metode sendiri dalam pengembangan SI yang sebagian di antaranya didasarkan pada ISDM yang sudah ada.

Para praktisi umumnya sepakat bahwa adopsi ISDM memberikan lebih banyak manfaat dibandingkan usaha yang harus dilakukan untuk mempelajarinya.
Secara garis besar ISDM dibagi ke dalam tiga kelompok utama, yaitu :
(1) Metode terstruktur structured methods)
(2) Metode Rapid Application Development (RAD)
(3) Metode berorientasi obyek (object-oriented methods)

Object Oriented Technology
Pengantar Object Oriented Technology
Metode berorientasi-obyek merupakan metode yang relatif baru dan sekarang menjadi cukup populer di kalangan pengembang sistem informasi (e.g. Iivari dan Maansaari, 1998). Metode ini berfokus pada obyek yang konsisten mulai tahap analisis, perancangan, dan implementasi sistem informasi.
Salah satu varian metode ini yang paling komtemporer adalah Unified Modelling Language (UML) yang diperkenalkan oleh (Rumbaugh, Jacobson, dan Booch, 1999).
Object Oriented Technology merupakan cara pengembangan perangkat lunak berdasarkan abstraksi objek-objek yang ada di dunia nyata. Dasar pembuatan adalah Objek, yang merupakan kombinasi antara struktur data dan perilaku dalam satu entitas.
Filosofi Object Oriented sangat luar biasa sepanjang siklus pengenbangan perangkat lunak (perencanaan, analisis, perancangan dan implementasi) sehingga dapat diterapkan pada perancangan sistem secara umum: menyangkut perangkat lunak, perangkat keras dan sistem secara keseluruhan.

Dalam pengembangan sistem berorientasi objek ini , konsep-konsep dan sifat-sifat object oriented digunakan. Kosep-konsep tersebut adalah:
1. Kelas
Kelas adalah konsep OO yang mengencapsulasi/membungkus data dan abstraksi prosedural yang diperlukan untuk menggambarkan isi dan tingkah laku berbagai entitas.
Kelas juga merupakan deskripsi tergeneralisir (misl template, pola, cetak biru) yang menggambarkan kumpulan objek yang sama.
2. Objek
Objek digambarkan sebagai benda, orang, tempat dan sebagainya yang ada di dunia nyata yang penting bagi suatu aplikasi. Objek mempunyai atribut dan metoda .
3. Atribut
Atribut menggambarkan data yang dapat memberikan informasi kelas atau objek dimana atribut tersebut berada.
4. Metoda/Servis/Operator
Metoda adalah prosedur atau fungsi yang tergabumh dalam objek bersama dengan atribut. Metode ini digunakan untuk pengaksesan terhadap data yang terdapat dalam objek tersebut.
5. Message
Message adalah alat komunikasi antar objek. Hubungan antar objek ditentukan oleh problem domain dan tanggung jawab sistem.
6. Event
Event adalah suatu kejadian pada waktu yang terbatas yang menggambarkan rangsangan (stimulus) dari luar sistem.
7. State
State adalah abstraksi dari nilai atribut dan link dalam sebuah objek. State merupakan tanggapan dari objek terhadap event-event masukan.
8.Skenario
Skenario adalah urutan event yang terjadi sepanjang eksekusi sistem.

Karakteristik-karakteristik yang terdapat dalam metode pengembangan sistem berorientasi objek adalah:
 Encapsulation
Encapsulation merupakan dasar untuk membatasi ruang lingkup program terhadap data yang diproses. Data dan prosedur dikemas dalam suatu objek sehingga prosedur lain dari luar tidak dapat mengaksesnya. Data akan terlindungi dari prosedur atau objek lain.
 Inheritance
Inheritance (pewarisan) adalah teknik yang menyatakan bahwa anak dari objek akan mewarisi data/atribut dan metode dari induknya langsung. Suatu kelas dapat ditentukan secara umum, kemudian ditentukan secara spesifik menjadi subkelas. Setiap subkelas mempunyai hubungan atau mewarisi semua sifat yang dimiliki kelas induknya dan ditambah dengan sifat unik yang dimilikinya.
 Polymorphism
Polymorphism menyatakan bahwa sesuatu yang sama dapat mempunyai bentuk dan perilaku berbeda. Polimorfisme juga menyatakan bahwa operasi yang sama mungkin mempunyai perbedaan kelas.

2. Jenis aplikasi yang dikembangkan saat ini berbeda dengan masa lalu
Aplikasi yang dikembangkan pada saat ini sangat beragam dengan platform yang erbeda-beda, sehingga menimbulkan tuntutan kebutuhan metodologi pengembangan yang dapat mengakomodasi ke semua jenis aplikasi tersebut.
Tahun 1980 Grady Booch --> konsep “Object-Oriented Design”
Tahun 1988 Shlaer dan Mellor --> buku “Object Oriented System Analysis”
Tahun 1991 --> buku “Object Oriented Design”
Tahun 1992 --> diterbitkan jilid 2 buku “Object Oriented System Analysis”. Metodologi shlaer dan Mellor ini diakui sebagai metodologi OO yang pertama

Pada Object Oriented Technology ada beberapa metode yang digunakan dalam pengembangan sistem. Salah satu yang terkenal adalah OMT (Object Modelling Technique) yang diciptakan oleh Rambough
Aktivitas-aktivitas yang dilakukan dalam OMT ini adalah:
o Model Objek
o Model Dinamis
o Model Fungsional
Dalam pengembangan sistem berbasis objek diperlukan tahapan proses analisis yang akan dilanjutkan dengan tahapan desain / perancangan sistem.

Untuk translasi model dari proses analisis ke proses desain dapat digambarkan berikut

Langkah-langkah Proses OOA dalam metode OMT
1. Menentukan domain masalah
2. Membangun model objek
- Identifikasi kelas yang relevan untuk masalah tersebut
- Penentuan atribut dan asosiasi
- Penentuan link objek
- Pengorganisasian kelas objek dengan menggunakan pewarisan
3. Pengembangan Model Dinamis
- Penyiapan skenario
- Penentuan event dan kembangkan penelusuran event untuk masing-masing skenario
- Pembuatan diagram aliran event
- Kajian tingkah laku untuk konsistensi dan kelengkapannya.
4. Pembuatan Model Fungsioanal untuk sistem tersebut
- Identifikasi input dan output
- Penggunaan aliran data untuk merepresentasikan transformasi aliran
- Pengembangan masing-masing fungsi

Langkah-langkah Proses OOD dalam metode OMT
1. Desain Sistem
- Partissi model analisis ke dalam subsistem
- Identifikasi konkurensi yang ditentukan oleh masalah
- Alokasikan subsistem ke prosesor dan tugas.
- Penentuan strategi untuk manajemen data
- Identifikasikan sumber daya globl dan mekanisme kontrol untuk mengakses
- Pengkajian trade-offs
2. Desain Objek
- Pemilihan operasi model analisis
- Penentuan algoritma untuk masing-masing operasi
- Pemilihan struktur data untuk setiap algoritma
- Penentuan kelas internal
- Pengkajian organisasi kelas untuk mengoptimalkan akses ke data
- Perancangan atribut kelas
3. Implementasi mekasnisme kontrol
4. Penyesuaian struktur kelas untuk memperkuat pewarisan
5. Perancangan pemesanan untuk mengimplementasikan hubungan objek asosiasi
6. Pengemasan kelas-kelas dan asosiasi ke dalam modul

Perkembangan OOD dalam metode OMT
 Konsep awal programming (Basic) dengan kekuatan GOTO statement
 Bahasa pemrograman terstruktur (procedural Language), menghilangkan kelemahan GOTO yang menjadikan konsep programming menjadi tidak terstruktur
Contoh: Pascal, Basic, FORTRAN, COBOL, C++, dll
Object Oriented Programming, yang mengarah ke konsep object
- Diperkenalkan pertama kali oleh bahasa SIMULA 67
- Masih berbasiskan Text, dimana program harus dibuat dengan mengetik
serangkaian perintah
- Bahasa Pemrograman lain : Smalltalk  magik, Clipper 5.2, Java, Prolog, dll

 Visual Object Oriented Programming
- memakai konsep GUI (Graphical User Interface)
- Diperkenalkan pertama kali pada tahun 1991 oleh Microsoft dengan
mengeluarkan Visual Basic
- Bahasa pemrograman lain :
Visual C++ (Dikembangkan dari bahasa C )
Visual foxpro 3.0 (Dikembangkan dari bahasa Foxpro )
Power Builder
CORBA (Common Object Request Broker Architecture)
Visual basic (Dikembangkan dari bahasa BASIC )
Borland delphi ( Dikembangkan dari bahasa PASCAL )
CA Clipper 5.3 ( Dikembangkan dari bahasa clipper )
dot NET, dll

Industri pengguna
Contoh :
- GE Network Solutions

Perangkat Lunak yang dihasilkan
Contoh :
- Smallworld GIS
* Application Development using OOP
Magik Programming --> GNU Emacs
* Data Modelling (CASE TOOLS)