1
Pemodelan Berorientasi Objek Perancangan Sistem dengan Analisis Statis Adam Hendra Brata
PERHATIAN
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
2
Pemodelan Kebutuhan Sistem
Ruang Lingkup Masalah
Analisis Kebutuhan
Diagram Use Case
Pemodelan Perangkat Lunak
Diagram Aktivitas
Diagram Sekuensial
Diagram Kelas
Diagram State
3
Materi Pertemuan 6
Perancangan Sistem dengan Analisis Statis
Analisis Berorientasi Objek
Analisis Statis Kelas Diagram
Kelas
4
5
Analisis Berorientasi Objek
Review OOA, OOD & OOP #ThrowBack
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++
6
Why We Need OOA ?
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
7
Analisis Berorientasi Objek
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
8
Analisis Berorientasi Objek
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
9
10
Analisis Statis
Analisis Statis
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
11
Analisis Statis : Kelas
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
12
Analisis Statis : Kelas
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
objeck
Didefinisikan
variabel
tampilan, status, kualitas dari
dalam kelas dengan menggunakan
13
Analisis Statis : Kelas
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
fungsi
dalam kelas dengan menggunakan
14
Analisis Statis : Kelas
15
Analisis Statis : Kelas
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
16
Analisis Statis : Diagram Kelas
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)
17
Analisis Statis : Diagram Kelas
18
19
Langkah – Langkah Analisis Statis
Analisis Statis
Analisis statis secara umum memiliki langkah – langkah sebagai berikut : 1. 2.
3. 4. 5. 6. 7. 8.
Menemukan kelas Menentukan hubungan tiap kelas Menggambarkan draf diagram kelas Menggambarkan hubungan tiap kelas di diagram kelas Menentukan atribut dan operasi dari tiap kelas Menentukan ada atau tidaknya kelas baru hasil hubungan antar kelas Menentukan objek yang Tangible dan Intangible Evaluasi dan revisi secara iteratif sampai terbentuk diagram kelas yang paling baik mewakili sistem yang akan dibangun
20
Menemukan Kelas
21
Langkah pertama yang “sangat sulit”
1
Menemukan Kelas
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
22
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
Association
Objects of one class are associated with objects of another class.
Aggregation
A subclass inherits all of the attributes and behavior of its superclass(es)
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
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
27
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 • 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
30
4
Menentukan Atribut dan Operasi dari Tiap Kelas
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 sudah memutuskan menggunakan tipe data apa, tipe data dapat ditulis di bagian kanan setelah tanda titik dua ( : )
31
Jika
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
Hindari penggunaan kelas asosiasi (kelas yang terbentuk dengan garis putus – putus), karena memerlukan analisa ulang yang rumit
Gunakan kelas konkrit secara langsung
34
6
Menentukan Objek yang Tangible dan Intangible
Tangible : berwujud, nyata
Intangible : tidak berwujud, tidak nyata
Informasi mobil yang dimiliki oleh orang dan yang ditunjukkan oleh katalog adalah sama tapi berbeda “wujud”
35
7
Evaluasi dan Revisi Secara Iteratif
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
36
8
Latihan
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 ^^
37
38
Terimakasih v^^