1 Pemodelan Berorientasi Objek Perancangan Sistem dengan Analisis Statis Adam Hendra Brata
PERHATIAN 2 Mulai dari sekarang, diharapkan semua mahasiswa memperdalam materi PBO secara lebih mandiri dengan : membaca buku OOAD yang sudah diupload bersama materi pendukung, yang sudah diupload sebelum UTS untuk mendukung pemahaman tentang PBO membaca materi dan tutorial PBO dan UML yang bisa didapat dari sumber lain
Pemodelan Kebutuhan Sistem 3 Ruang Lingkup Masalah Analisis Kebutuhan Diagram Use Case Pemodelan Perangkat Lunak Diagram Aktivitas Diagram Sekuensial Diagram Kelas Diagram State
Materi Pertemuan 6 4 Perancangan Sistem dengan Analisis Statis Analisis Berorientasi Objek Analisis Statis Kelas Diagram Kelas
Analisis Berorientasi Objek 5
Review OOA, OOD & OOP #ThrowBack 6 Object-oriented analysis, design and programming are related but distinct OOA is concerned with developing an object model of the application domain OOD is concerned with developing an objectoriented system model to implement requirements OOP is concerned with realizing an OOD using an OO programming language such as Java or C++
Why We Need OOA? 7 Analysis is about discovering what the system is going to handle, rather than deciding how to do the handling We need to decompose a complex set of requirements into the essential elements and relationships on which we will base our solution Analysis is our first opportunity to get to grips with modeling the real world as objects
Analisis Berorientasi Objek 8 Analisis Berorientasi Objek dapat dikategorikan menjadi 2 jenis, yaitu : Analisis Statis Dimodelkan dengan diagram kelas Diagram kelas akan menggambarkan objek objek apa saja yang akan di-handle oleh sistem dan bagaimana objek objek tersebut berhubungan antara yang satu dengan yang lain Analisis Dinamis Dimodelkan dengan diagram komunikasi untuk menunjukkan bahwa model statis kita sudah layak dan benar
Analisis Berorientasi Objek 9 Langkah langkah ABO Gunakan kebutuhan sistem untuk menemukan kandidat kelas yang dapat mendeskripsikan objek yang relevan dengan sistem dan gambarkan dalam diagram kelas Temukan hubungan antar kelas (association, aggregation, composition atau inheritance) Temukan atribut atribut dari setiap kelas Telusuri kembali use case dari sistem yang sudah dibuat, periksa apakah kelas-kelas yang sudah dibuat dapat mendukung use case tersebut Catat, perbaharui dan perbaiki jika ada perubahan dalam analisis
Analisis Statis 10
Analisis Statis 11 Analisis statis melibatkan bagian logika atau bagian fisik dari sistem dan bagaimana mereka saling terkait satu sama lain Singkat kata, analisis statis akan mendeskripsikan bagaimana kita akan melakukan konstruksi dan inisialisasi sistem Konstruksi sistem berorientasi objek Kelas
Analisis Statis : Kelas 12 Kelas adalah struktur dasar dari pengembangan sistem berorientasi objek Kelas adalah adalah cetak biru atau blueprint dari objek Kelas digunakan hanya untuk membuat kerangka dasar, yang akan kita pakai nantinya adalah hasil cetakan dari kelas, yakni objek Kelas dapat dikatakan adalah definisi abstrak dari objek Objek adalah hasil cetak dari kelas, atau hasil konkrit dari kelas
Analisis Statis : Kelas 13 Struktur kelas secara umum terdiri dari 2 bagian, yaitu : Atribut / Attribute / Field / Property Berlaku sebagai data, didefinisikan oleh kelas,individu, berbeda satu dengan lainnya Menggambarkan tampilan, status, kualitas dari objeck Didefinisikan dalam kelas dengan menggunakan variabel
Analisis Statis : Kelas 14 Perilaku / Behaviour / Operations / Method Berlaku sebagai method (operasi) Menggambarkan bagaimana sebuah instance dari kelas beroperasi misal bagaimana reaksi dari kelas jika diminta untuk melakukan sesuatu hal Didefinisikan dalam kelas dengan menggunakan fungsi
Analisis Statis : Kelas 15
Analisis Statis : Kelas 16 Di dalam notasi struktur kelas dikenal istilah hak akses atau visibility Public ( + ) Atribut atau operasi pada kelas tersebut dapat diakses oleh semua kelas Private ( - ) Atribut atau operasi pada kelas tersebut hanya dapat diakses oleh kelas itu sendiri Protected ( # ) Atribut atau operasi pada kelas tersebut hanya dapat diakses oleh kelas itu sendiri atau kelas lain hasil turunannya
Analisis Statis : Diagram Kelas 17 Diagram kelas adalah diagram UML yang menggambarkan kelas-kelas dalam sebuah sistem dan hubungannya antara satu dengan yang lain, serta dimasukkan pula atribut dan operasi Diagram kelas adalah diagram yang menunjukan kelas - kelas yang ada dari sebuah sistem dan hubungannya secara logika. Diagram kelas menggambarkan struktur statis dari sebuah sistem. Karena itu diagram kelas merupakan tulang punggung atau kekuatan dasar dari hampir setiap metode berorientasi objek termasuk UML (Henderi, 2008) Diagram kelas adalah gambar grafis mengenai struktur objek statis dari suatu sistem, menunjukan kelas-kelas objek yang menyusun sebuah sistem dan juga hubungan antara kelas objek tersebut (Whitten L. Jeffery et al 2004)
Analisis Statis : Diagram Kelas 18
19 Langkah Langkah Analisis Statis
Analisis Statis 20 Analisis statis secara umum memiliki langkah langkah sebagai berikut : 1. Menemukan kelas 2. Menentukan hubungan tiap kelas 3. Menggambarkan draf diagram kelas 4. Menggambarkan hubungan tiap kelas di diagram kelas 5. Menentukan atribut dan operasi dari tiap kelas 6. Menentukan ada atau tidaknya kelas baru hasil hubungan antar kelas 7. Menentukan objek yang Tangible dan Intangible 8. Evaluasi dan revisi secara iteratif sampai terbentuk diagram kelas yang paling baik mewakili sistem yang akan dibangun
Menemukan Kelas 21 Langkah pertama yang sangat sulit 1
Menemukan Kelas 22 Identifying object classes is often a difficult part of object oriented design There is no 'magic formula' for object identification, it relies on the skill, experience and domain knowledge of system designers Object identification is an iterative process, you are unlikely to get it right first time Use domain analysis as before Use a grammatical approach based on a natural language description of the system Base the identification on tangible things in the application domain 1
Menemukan Kelas 23 Hint : Derive them from the use cases (descriptions/scenarios) Candidate classes are often indicated by nouns in the use cases Look for data which must be stored or analysed Are there external systems? Are there any devices under the control of the system? Are there any organizational parts? 1
Menemukan Kelas 24 Kandidat Kelas : Mahasiswa Mata Kuliah Jadwal Kartu Rencana Studi 1
Menentukan Hubungan Tiap Kelas 25 Relasi / Relation Inheritance A subclass inherits all of the attributes and behavior of its superclass(es) Association Objects of one class are associated with objects of another class. Aggregation Strong association an instance of one class is made up of instances of another class Composition Strong aggregation the composed object can t be shared by other objects and dies with its composer 2
Menentukan Hubungan Tiap Kelas 26 Multiplikasi / Multiplication n : Exactly n m..n : Any number in the range m to n (inclusive) p..* : Any number in the range p to infinity * : Shorthand for 0..* 0..1: Optional 2
Menentukan Hubungan Tiap Kelas 27 Choosing between relationships can be tricky you need to use intuition, experience and guesswork As far as design and implementation are concerned, the differences between association, aggregation and composition can be difficult to spot 2
Menggambarkan Draf Diagram Kelas 28 3
Menggambarkan Hubungan Tiap Kelas di Diagram Kelas 29 Turunan Agregasi Komposisi Asosiasi 4
Menggambarkan Hubungan Tiap Kelas di Diagram Kelas 30 A Car has one Engine An Engine is part of one Car A Car has four or five Wheels Each Wheel is part of one Car A Car is always composed of one Body A Body is always part of one Car and it dies with that Car A Car can have any number of Drivers 4
Menentukan Atribut dan Operasi dari Tiap Kelas 31 Atribut dan operasi menentukan kegunaan dari kelas Definisikan atribut dan operasi dengan bijak sehingga benar-benar dapat mewakili kelas itu sendiri Jika masih belum tahu tipe data apa yang akan digunakan, maka diperbolehkan ditulis namanya saja tanpa memakai tipe data Jika sudah memutuskan menggunakan tipe data apa, tipe data dapat ditulis di bagian kanan setelah tanda titik dua ( : ) 5
Menentukan Atribut dan Operasi dari Tiap Kelas 32 Definisikan atribut dan operasi dari tiap kelas dengan bijak 5
Menentukan Ada atau Tidaknya Kelas Baru Hasil Hubungan Antar Kelas 33 Sering kali dalam proses pendefinisian kelas ditemukan kelas atau objek baru yang memiliki sifat sebagai penjelas hubungan dari tiap kelas, umumnya pada asosiasi 6
Menentukan Ada atau Tidaknya Kelas Baru Hasil Hubungan Antar Kelas 34 Hindari penggunaan kelas asosiasi (kelas yang terbentuk dengan garis putus putus), karena memerlukan analisa ulang yang rumit Gunakan kelas konkrit secara langsung 6
Menentukan Objek yang Tangible dan Intangible 35 Tangible : berwujud, nyata Intangible : tidak berwujud, tidak nyata Informasi mobil yang dimiliki oleh orang dan yang ditunjukkan oleh katalog adalah sama tapi berbeda wujud 7
Evaluasi dan Revisi Secara Iteratif 36 Lakukan proses analisis statis dan pembentukan diagram kelas secara iteratif, sampai ditemukan formulasi yang paling baik dan paling mewakili sistem secara utuh dan keseluruhan There is no 'magic formula' for object identification, it relies on the skill, experience and domain knowledge of system designers 8
Latihan 37 Buat diagram kelas dengan menggunakan analisis statis dari contoh diagram use case ini! Kerjakan sebagai latihan dan siap siap pertemuan minggu depan akan ada yang ditunjuk maju secara acak untuk presentasi ^^
38 Terimakasih v^^