Matakuliah Tahun : Konsep object-oriented : 2009 MEMODELKAN SISTEM Bagian 2 Pertemuan 14 Memodelkan Sistem Bagian 2 Collaboration Diagram State Diagram Collaboration Diagram • Kolaborasi diagram adalah cara lain untuk mengambarkan skenario. • Informasi yang sama dengan apa yang ditampilkan oleh sequence diagram. 3:Check Spaces left-yes Car Park 2: Car Present 1: Full Sign Off Full Sign Sensor 4: Card number 7: Card not recognized 8: Card returned User 5: Card Number 6: Card not recognized Card Reader Valid Card Collaboration diagram for scenario entry the card park where card not recognized • Exercise 3 Dari scenario dibawah ini buatlah sequence dan collaboration diagramnya untuk mengilustrasikannya. – ATM menampikan Layar pembukaan dengan pesan untuk memasukkan kartu. – User memasukkan kartu – ATM membaca kartu dan meminta nomor PIN – User memasukan nomor PIN – ATM memeriksa kartu dan nomor PIN ke Bank – Bank menberikan verifikasi kartu dan nomor kartu – ATM menampilkan jenis pelayanan yang tersedia – User memilih pelayanan “Cek Rekening” – ATM meminta jumlah saldo rekening user dari bank – ATM menampilkan jumlah saldo ke user – ATM menanyakan pelayanan lain yang ingin dilakukan oleh user – User tidak menginginkan pelayanan lain – ATM meminta user untuk mengambil kartunya – User mengambil kartu – ATM menampilkan layar pembukaan :ATM :BANK User: Pesan Pembuka Nomor Kartu Meminta PIN PIN Nomor Kartu dan PIN Card OK Jenis Pelayanan Cek Rekening Cek Rekening Saldo Tampilkan Saldo Layanan lain ? Tidak Layanan Lain Ambil Kartu Kartu sudah diambil Pesan pembuka 1:pesan pembuka 2:meminta PIN 7:Jenis Layanan 11:Tampilkan saldo 12:Layanan Lain? 14:Ambil Kartu 16:Pesan Pembuka :ATM 13:Tidak Layanan lain 15:Kartu sudah diambil :BANK 10:Saldo 8:Cek Rekening 6: Card OK 4:PIN 9:Cek Rekening User 5:Nomor kartu dan PIN 2:Nomor Kartu Exercise 4 • Theater Rama-rama, dalam proses membangun sistem pemesanan tiket melalui kiosknya. untuk anggota teather ramarama club didapati sebuah scenario sebagai berikut: • User memasukkan kartu anggotanya kedalam mesin kiosk(didalam kartu terdapat nomor kartu atau id anggota) • Mesin kiosk menanyakan kepada server tanggaltanggal/data pertunjukan • Server mengirimkan tanggal-tanggal/data pertunjukan kepada kiosk • Mesin Kiosk menanyakan kepada anggota tanggal pertunjukan yang ingin ditonton • Anggota memasukkan tanggal pertunjukanya • Kiosk mengirimkan data tanggal pertunjukkan yang dipilh kepada server untuk mendapatkan tempat duduk kosong yang tersisa. • Server mengirimkan data tempat duduk tersisa kepada kiosk • • • • • Kiosk menampilkannya kepada user User memilih tempat duduknya. Kiosk menanyakan konfirmasi pemesanan User menjawab YA Kiosk mengirim data pesanan tiket kepada server untuk diproses • Server memberi tahu kepada kiosk proses selesai • Kiosk mencetak bukti pemesanan kepada user – Buatlah sequence diagram dan collaboration diagramnya. State Diagram • State diagram describe the behavior of single class during lifetimes • When you want to find out what going on inside a class, you need a state diagram • For example: imagine two object of the class balloon, one red one blue. Both balloon haven been blown up, but the blue one has had some of the air let out of its, if some now tries to blow up the balloon, they will respond in different way; the blue one will simply become slightly more inflated, but the red one (which is already fully blown up) will burst. We can illustrated these alternative in very simple state diagram The state diagram for the class balloon blow up let air out Deflated Initial state Partly Inflated let air outblow up Fully inflated blow up Final state Burst States • Sebuah state mengambarkan sebuah keadaan tertentu pada suatu waktu sampai sebuah event diberlakukan padanya. • Sebuah state disimbolkan dengan : State1 • Contoh: state diagram di class Barrier lower raise raise Down The “up” attribut is false lower Up The “up” attribut is true Transitions • Transisi(Transition) mengambarkan respon sebuah obyek terhadap sebuah event; • Responnya dapat berupa perpindahan keadaan dari suatu keadaan menjadi keadaan lain. Atau dari sebuah keadaan menuju kekeadaan yang sama(lihat state diagram untuk Barrier class). • Sebuah transisi tidak dapat dihentikan dan bersifat instant Notasi sebuah transisi • Sebuah transition terdiri dari tiga bagian : – Event : proses atau kejadian yang mengubah keadaan – Guard : kondisi yang membolehkan sebuah transisi berlangsung, sebuah transisi terjadi jika guard kondisinya bernilai true ditulis didalam bracket [ ] – Action : proses yang akan dilakukan jika transisi berhasil dilaksanakan ,ditulis sesudah tanda “/” Petrol added [amount < amount needed to fill tank] Pertol used [amount < amount in tank] Part Full petrol added Pertol used petrol added Pertol used petrol added [amount = capacity] Empty Pertol used [amount = amount in tank] / turn on warning light write off car Full State diagram untuk car park class car sensed / check spaces Car enter[>= spaces free] /dec.spaces car leaves [capacity > spaces] / inc.spaces car enter / dec.spaces Empty last car leaves [spaces = capacity - 1] / inc.spaces car leaves / inc.spaces / dec.spaces car park closed Full Spaces Free Membuat model yang baik • Sebuah object yang baik adalah akurat, mudah dimengerti, mudah untuk di ubah. Sebuah model yang dapat digunakan untuk berdiskusi dengan user. • Avoiding clutter : menghilangkan detil yang tidak perlu. • Mengambar lebih banyak diagram dari pada membuat sebuah diagram yang berisi informasi yang terlalu rumit. • Gunakan penjelasan jika sebuah nama terlalu pendek dan tidak menjelaskan apa-apa. • • • • • • Bagaimana membuat sebuah class yang baik. Menghilangkan sebuah ‘God’ class: sebuah class yang terlalu banyak mengontrol sistem. Inilah alasan mengapa entrance class dibuang. That class ini terlalu besar mengontrol sistem Bagi dengan baik tanggung jawab yang dilakukan antara class Sebuah class tidak hanya sebuah class yang terdiri dari sebuah fungsi yang besar tapi harus juga mengandung beberapa data attribut Sebuah class sebaiknya mempunyai lebih dari sebuah fungsi dasar saja.. Sebuah class berhubungan dengan sesuatu didunia nyata dan muda untuk dimengerti oleh orang-orang. Sebuah class seharusnya hanya mempunyai satu arti saja Identifier yang unik untuk sebuah obyek • Kadang sebuah object memerlukan sebuah attribut yang unik sesuai dengan problem domain