Object oriented analyst and design Defri Kurniawan defri.kurniawan@dsn.dinus.ac.id
Pemodelan Berbasis Kelas
Pemodelan Berbasis Kelas Pemodelan berbasis kelas pada dasarnya memperlihatkan: Objek-objek yang akan dimanipulasikan oleh sistem/PL, Operasi-operasi yang akan diterapkan Relas-relasi antar objek (mungkin diantaranya bersifat hirarkis) Serta memperlihatkan kolaborasi yang terjadi antara kelas-kelas yang didefinisikan.
Pemodelan Berbasis Kelas (lanj) Elemen-elemen model berbasis kelas mencakup di dalamnya: Elemen-elemen kelas dan objek, Atribut-atribut, Operasi-operasi, Model Tanggung Jawab Kelas (Class Responsibility Collaborator) Diagram-diagram kolaborasi dan paket (package)
Mengidentifikasi Kelas-kelas Analisis Proses identifikasi kelas analisis dilakukan dengan cara: Memeriksa skenario penggunaan sistem/PL yang telah dikembangkan sebelumnya (sebagai bagian dari model-model kebutuhan) Lakukan “pemisahan berdasarkan tata bahasa” pada use case yang telah dikembangkan Garisbawahi setiap kata benda (noun) dan masukkan ke sebuah tabel sederhana
Mengidentifikasi Kelas-kelas Analisis (lanj) Kelas-kelas analisis pada umumnya manifestasi dari: External Entities Things Occurrences or events Roles Organizational Units Places Structures
Mengidentifikasi Kelas-kelas Analisis (lanj) External Entities (misal sistem-sistem lain, peralatan-peralatan lain, serta orang-orang) yang menghasilkan atau menggunakan informasi yang akan digunakan oleh sistem/pl Things (misalnya laporan-laporan, tampilan-tampilan, huruf-huruf, sinyal-sinyal) yang merupakan bagian dari ranah informasi permasalahan Occurrences or events (misal suatu transfer properti atau penyelesaian sejumlah pergerakan robot) yang terjadi di dalam konteks SO
Mengidentifikasi Kelas-kelas Analisis (lanj) Roles (misalnya manager, rekayasawan, salesperson) yang dimainkan oleh orang-orang yang berinteraksi dengan sistem/PL Organizational units (misalnya divisi-divisi, kelompok, tim) yang relevan untuk aplikasi/perangkat lunak yang akan dikembangkan. Structures (misalnya sensor-sensor, kendaraan beroda empat, atau komputer) yang mendefinisikan suatu kelas objek-objek atau kelas-kelas yang berhubungan dengan objek-objek
Contoh Mengidentifikasi Kelas-kelas Analisis(1) Identifikasilah Kelas-kelas Analisis pada narasi berikut: Fungsi keamanan SafeHome memungkinkan pemilik rumah untuk melakukan konfigurasi sistem keamanan saat sistem itu telah terinstal, memungkinkan pemilik rumah memantau semua sensor yang terhubung ke sistem keamanan dan berinteraksi dengan pemilik rumah melalui Internet, PC atau panel kontrol. Kata Benda = garis bawah Kata Kerja = cetak miring
Contoh Mengidentifikasi Kelas-kelas Analisis(2) Identifikasilah Kelas-kelas Analisis pada narasi berikut: Selama instalasi, SafeHome digunakan untuk mempogram dan melakukan konfigurasi terhadap system. Masing-masing sensor diberi penanda nomor dan jenis, kata sandi utama diprogram untuk mengaktifkan dan menonaktifkan system dan nomor-nomor telepon merupakan masukan untuk melakukan kontak saat event yang dapat ditangkap sensor terjadi.
Contoh Mengidentifikasi Kelas-kelas Analisis(3) Identifikasilah Kelas-kelas Analisis pada narasi berikut: Saat event sensor dikenal, system/PL akan memanggil alarm suara yang dilampirkan pada system. Setelah waktu tunda yang ditentukan oleh pemilik rumah selama aktivitas konfigurasi system dilaksanakan, perangkat lunak akan memanggil nomor telepon untuk layanan pemantauan, menyediakan informasi yang berkaitan dengan lokasi, serta melaporkan penyebab event yang terdeteksi. Nomor telepon akan dihubungi-ulang setiap 20 detik hingga koneksi telepon berjalan baik
Contoh Mengidentifikasi Kelas-kelas Analisis(4) Identifikasilah Kelas-kelas Analisis pada narasi berikut: Pemilik rumah menerima informasi keamanan melalui panel kendali, PC, atau perambah(browser) yang secara bersamaan dinamakan sebagai antarmuka. Antarmuka itu akan menampilkan pesan-pesan yang harus diisi dan informasi status system pada panel kendali, PC, atau jendela perambah (browser). Dari Narasi di atas frase manakah yang berpotensi menjadi kelas-kelas analisis?!
Mengidentifikasi Kelas-kelas Analisis (lanj) Kelas Potensial Kategori Klasifikasi Pemilik Rumah Role or External Entities Sensor External Entities Instalasi Event Sistem Keamanan Things Nomor,jenis Kata Sandi Utama Nomor Telepon Alarm yang dapat dibunyikan Layanan Pemantauan Organizational units / External Entities
Mengidentifikasi Kelas-kelas Analisis (lanj) Untuk menentukan kelas-kelas potensial yang dapat dimasukkan ke model analisis, kita bisa mempertimbangkan 6 (enam) karakteristik dari Coad dan Yourdon [Coa91] meliputi: Informasi yang disimpan Layanan-layanan yang diperlukan Atribut-atribut majemuk Atribut-atribut umum Operasi-operasi umum Kebutuhan-kebutuhan esensial
Mengidentifikasi Kelas-kelas Analisis (lanj) 1. Informasi yang disimpan Kelas potensial akan sangat bermanfaat selama tahapan analisis hanya jika informasinya harus diingat dalam sistem/PL sehingga sistem/PL dapat berfungsi dengan baik. 2. Layanan-layanan yang diperlukan Kelas potensial harus memiliki sejumlah operasi yang bisa diidentifikasi yang dapat mengubah nilai atributnya dengan cara- cara tertentu. 3. Atribut-atribut majemuk Selama analisis kebutuhan dilakukan, fokus perhatian analisis sistem seharusnya berada pada informasi utama
Mengidentifikasi Kelas-kelas Analisis (lanj) 4. Atribut-atribut umum Sejumlah atribut dapat didefinisikan untuk suatu kelas potensial dan atribut-atribut. 5. Operasi-operasi Umum Suatu kumpulan operasi yang dapat didefinisikan untuk kelas potensial dan operasi ini berlaku untuk semua contoh/instances kelas. 6. Kebutuhan-kebutuhan esensial Entitas eksternal yang muncul dalam ruang masalah dan menghasilkan atau mengkonsumsi informasi penting untuk operasi dari setiap solusi untuk sistem akan hampir selalu didefinisikan sebagai kelas dalam requirements model.
Pemodelan Berbasis Kelas
Class Diagram Class diagram membantu pengembang mendapatkan struktur sistem dan menghasilkan rancangan (design) sistem yang baik Class diagram juga menunjukkan property yang diwakili oleh attribute dan behaviour melalui method / operasi sebuah Class
Relation Secara umum hubungan/relasi antar class, meliputi: Association / Asosiasi Generalization / Generalisasi Aggregation / Aggregasi Composition / Komposisi
Association / Asosiasi Sebuah asosiasi secara formal didefinisikan sebagai relasi antara dua atau lebih kelas menggambarkan sekelompok hubungan struktur Sebuah asosiasi menyiratkan bahwa obyek dari satu kelas yang memanfaatkan sebuah objek dari kelas lain dan ditunjukkan hanya dengan garis yang solid menghubungkan ikon dua kelas
Association / Asosiasi Example of Association
Association / Asosiasi Asosiasi ada beberapa jenis, antara lain: Directional Association / Asosiasi 1 arah Bidirectional Association / Asosiasi 2 arah
Directional Association / Asosiasi 1 arah Asosiasi ini menggambar bahwa pesan atau urutan kejadian terjadi hanya dari salah satu kelas sedangkan kelas yang lain pasif (dari kelas sumber ke kelas tujuan) Asosiasi 1 arah
Bidirectional Association / Asosiasi 2 arah Asosiasi ini terjadi ketika salah satu kelas mengirimkan pesan kepada kelas yang lain kemudian kelas yang lain mengirimkan pesan kepada kelas yang mengirimnya pesan Person Own Car Asosiasi Bidireksional
Generalization / Generalisasi Inheritene dapat didefinisikan sebagai mekanisme yang disediakan dalam bahasa pemrograman untuk mencapai gagasan generalisasi vertikal
Generalization / Generalisasi Example of Generalization
Generalization / Generalisasi Example of Generalization
Agregation / Agregasi Aggregasi dapat diartikan bahwa suatu kelas merupakan bagian dari kelas yang lain namun bersifat tidak wajib Contohnya sebuah buku memiliki pengarang,judul,namun bisa saja suatu buku tidak memiliki daftar pustaka. Namun tetap sebagai buku.
Composition / Komposisi Komposisi diartikan bahwa suatu kelas merupakan bagian yang wajib dari kelas yang lain. Eksistensi (keberadaan) kelas tersebut, mempengaruhi keberadaan kelas yang lain Contoh kasus yaitu pada sebuah buku, sudah pasti terdapat halaman isi sekurang-kurangnya satu
Multiplicity Pada relasi terdapat suatu penanda yang disebut multiplicity. Multiplicity ini akan mengindikasikan berapa banyak obyek dari suatu kelas terelasi ke obyek lain Multiplicity memiliki batas bawah dan batas atas Jika batas bawah dan batas atas bernilai sama yaitu 1..1, maka hanya ditulis 1 Sedangkan * merupakan kependekan dari 0..* Dan 0 merupakan kependekan dari 0..0 Default nilai multiplicity relasi class diagram adalah 1
Notasi UML Class Diagram untuk Multiplicity Arti * = 0..* Banyak/tak terhingga 0 = 0..0 Nol 1 = 1..1 Tepat Satu, bisa ditulis bisa tidak (default) 1..* Antara Satu sampai Banyak 0..1 Nol atau Satu Notasi UML Class Diagram untuk Multiplicity
Multiplicity - Contoh Person Car 1 own 1..*
TERIMA KASIH