Monday, March 16, 2009

OMT - Suggested Design Format

Setelah mengenal OMT, selanjutnya akan dikupas lebih detail lagi mengenai aktifitas modelling dalam OMT.
Tiga hal utama dalam diagram OMT:

Model Objek
Objek model menjelaskan struktur dari objek dalam sistem - identitas mereka, hubungan mereka ke objek lainnya, mereka atribut, dan operasi. Objek utama model menggambarkan bagaimana melihat dunia nyata di mana sistem berinteraksi dan dibagi dekomposisi keseluruhan dari sistem. Objek model menyediakan kerangka kerja yang lain yang menjadi model ditempatkan.

Objek model yang diwakili dengan objek grafis kelas diagram berisi objek kelas dan hubungan mereka. Setiap domain aplikasi-konsep dari dunia nyata yang penting untuk aplikasi harus model sebagai obyek kelas. Kelas-kelas tersebut diatur ke dalam struktur hirarki berbagi umum dan perilaku dan lainnya yang terkait dengan kelas. Kelas menentukan atribut dibawa oleh setiap objek dan operasi yang dilakukan pada masing-masing objek.


























Gambar Object Diagram


Model dinamis
Model dinamis menggambarkan aspek-aspek yang bersangkutan dengan sistem operasi sequencing dan waktu - peristiwa yang menyebabkan perubahan state, urutan peristiwa, menyatakan bahwa konteks untuk menentukan aktivitas, dan aktivitas organisasi dan negara. Model dinamis menangkap kontrol informasi tanpa mempertimbangkan untuk apa operasi bertindak atas atau bagaimana mereka diimplementasikan.
Model dinamis meliputi acara jejak diagram menjelaskan skenario. Eksternal event adalah rangsangan dari satu objek ke lainnya, yang terjadi pada satu titik waktu tertentu. Event adalah satu cara pengiriman informasi dari satu objek ke lainnya. Skenario adalah urutan peristiwa yang terjadi selama satu tertentu pelaksanaan sistem. Setiap dasar pelaksanaan sistem harus direpresentasikan sebagai sebuah skenario (terkait dengan skenario dalam mockup HCI).
State diagram harus mematuhi notasi dari OMT dan memanfaatkan kemampuan OMT, seperti transition guards, tindakan dan kegiatan, nesting (state dan event generalisasi), dan concurrency.


Model fungsional
Fungsional menjelaskan model-model komputasi dan yang menentukan aspek dari sistem yang bersangkutan dengan transformasi nilai - fungsi, pemetaan, kendala, dan fucntional dependensi. Fungsional menangkap apa model sistem ini, tanpa mempertimbangkan bagaimana atau jika sudah selesai.
Model fungsional diwakili oleh grafis dengan beberapa data flow diagram, yang menunjukkan aliran nilai masukan dari luar, melalui operasi dan menyimpan data internal, eksternal output. Data flow diagram menampilkan dependensi antara nilai-nilai dan penghitungan nilai output dari input nilai dan fungsi. Fungsi-fungsi sebagai tindakan dalam model yang dinamis dan akan ditampilkan sebagai operasi pada objek dalam objek model.
Data flow diagram harus mematuhi OMT dari notasi dan memanfaatkan kemampuan OMT, seperti nesting, kontrol aliran, dan kendala.


_______________________________________________________


Spesifikasi Kelas Objek










Integration Test Plan
Mencakup rencana uji yang terintegrasi mampu menunjukkan bahwa desain memenuhi fungsi yang ditetapkan dalam persyaratan. Uji kasus harus mencakup setiap objek dan objek interaksi ditentukan dalam model objek serta setiap urutan peristiwa dalam model dinamis. Kita harus mempertimbangkan setiap objek kelas sebagai subsistem dan menerapkan fungsional (black box) test heuristics (seperti input / output dan cakupan kesalahan / kekecualian cakupan) untuk mengidentifikasi parameter dalam setiap operasi di kelas antarmuka. Selain itu, kita harus mengembangkan suatu test case untuk setiap potensi urutan peristiwa (hingga Iterasi). Perlu diketahui bahwa kedua dilihat pada rencana uji independen tidak perlu, Anda mungkin dapat untuk menutup semua objek oleh semua urutan peristiwa (ini akan tergantung pada bagaimana anda menyeluruh dinamis adalah model).

CATATAN: jika dikehendaki, ujian kasus dapat dibedakan dengan desain entitas yang kita terapkan, begitu pula daftar dari beberapa macam cross referensi harus disediakan.

BLACKBOX TESTING
Metode ujicoba blackbox memfokuskan pada keperluan fungsional dari software. Karna itu ujicoba blackbox memungkinkan pengembang software untuk membuat himpunan kondisi input yang akan melatih seluruh syarat-syarat fungsional suatu program. Ujicoba blackbox bukan merupakan alternatif dari ujicoba whitebox, tetapi merupakan pendekatan yang melengkapi untuk menemukan kesalahan lainnya, selain
menggunakan metode whitebox.
Ujicoba blackbox berusaha untuk menemukan kesalahan dalam beberapa kategori, diantaranya :
1. Fungsi-fungsi yang salah atau hilang
2. Kesalahan interface
3. Kesalahan dalam struktur data atau akses database eksternal
4. Kesalahan performa
5. kesalahan inisialisasi dan terminasi
Tidak seperti metode whitebox yang dilaksanakan diawal proses, ujicoba blackbox diaplikasikan di beberapa tahapan berikutnya. Karena ujicoba blackbox dengan sengaja mengabaikan struktur kontrol, sehingga perhatiannya difokuskan pada informasi domain. Ujicoba didesain untuk dapat menjawab pertanyaan-pertanyaan berikut :
1. Bagaimana validitas fungsionalnya diuji?
2. Jenis input seperti apa yang akan menghasilkan kasus uji yang baik ?
3. Apakah sistem secara khusus sensitif terhadap nilai input tertentu ?
4. Bagaimana batasan-batasan kelas data diisolasi?
5. Berapa rasio data dan jumlah data yang dapat ditoleransi oleh sistem?
6. Apa akibat yang akan timbul dari kombinasi spesifik data pada operasi sistem?

Dengan mengaplikasikan ujicoba blackbox, diharapkan dapat menghasilkan sekumpulan kasus uji yang memenuhi kriteria berikut :
1. kasus uji yang berkurang, jika jumlahnya lebih dari 1, maka jumlah dari ujikasus tambahan harus didesain untuk mencapai ujicoba yang cukup beralasan

2. Kasus uji yang memberitahukan sesuatu tentang keberadaan atau tidaknya suatu jenis kesalahan, daripada kesalahan yang terhubung hanya dengan suatu ujicoba yang spesifik

http://www.ics.uci.edu/~djr/ics125/OMT.html
http://www.ics.uci.edu/~djr/classes/ics125/project.html

Read More..

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)


Read More..