Document 9652115

Download Report

Transcript Document 9652115

Matakuliah
Tahun
: Konsep object-oriented
: 2009
DESIGN VIEW
Pertemuan 17
Design View
Tujuan dari modeling tahap design
• Menghasilkan sistem yang dapat bekerja dengan baik.
Design View
• Pada tahap design kita melihat melalui kacamata
implementasi.
• Di Tahap implementasi kita menambah beberapa class
baru dan lebih detil
• Kita menambah class dan relationshipnya agar sistem
dapat bekerja menghasilkan kebutuhan model yang
fungsional, tapi bukan bagian dari problem domain
Notasi Model Pada Design View
• Menuju ketahap implementasi dokumentasi dari model
harus lebih tepat dan mendekati code program
• Nama Class and object diambil dari nama yang akan
ada didalam code program  Nama Operasi
(Fungsi)Nama dan tipe parameter dan tipe
pengembalian
Detail di Model tahap design view
• Model memerlukan detil tetapi, tidak semua detil harus
ditampilkan semua dalam suatu saat
• Jika hanya untuk menunjukkan bagaimana class dan
hubungannya dengan class yang lain, kita tidak perlu
untuk mendeskripsikan attribut dan operasinya.
• Jika model diperuntukkan untuk programmer, mereka
membutuhkan untuk mengetahui dengan pasti operasi,
nama dan semua data attribut dan hubungan antara
class nya
Class diagram di tahap design
Car Park
1..*
Barrier
1..*
2..*
2..*
Full Sign
Sensor
Card Reader
1..*
1
Valid Card
Class diagram for Just ALine in analysis
stage
1..*
Card
Visitor Card
Staff Card
Barrier Class
• Barrier masuk(entrance barrier)
bertanggung jawab untuk:
•
•
•
•
Menaikkan barrier ketika dikirimkan sebuah
Membuat barrier tetap diatas ketika mobil masih
Exit: Barrier
terdapat dibawah barrier ( diketahui melalui
Out:sensor
sensor masuk( in:sensor )
Menurunkan barrier ketika mobil sudah
melewati barrier dan tidak lagi terdeteksi oleh
sensor masuk( in:sensor )
Memastikan Class Car Park tetap menghitung
tempat kosong yang ada di tempat parkir
• Barrier Keluar (exit barrier) bertanggung
jawab
•
•
•
•
Menaikkan barrier ketika barrier menerima
sebuah message dari sensor keluar (out :
sensor)
Membuat barrier tetap diatas ketika sebuah
mobil masih berada dibawah barrier dan
terdeteksi oleh sensor keluar (out:sensor)
Menurunkan barrier ketika mobil sudah
melewati barrier dan tidak terdeteksi lagi oleh
sensor keluar (out:sensor)
Memastikan class car park tetap menghitung
jumlah tempat kosong
Entrancet:
Barrier
in:sensor
User
Car Park
Sensor
Card Reader
Valid Card
Barrier
Full Sign
Full Sign Off
Car present
Check Space Left
yes
Card Number
Card number
Card OK
Card Returned
Raise
Car not present
Lower
Decrement spaces
yes
Check space left
Sequence diagram showing entrance barrier behavior
Car Park
Sensor
User
Card Reader
Valid Card
Full Sign
Full Sign Off
Car Present
Check Spaces left
yes
Card number
Card number
Card not recognized
Card not recognized
Card Returned
Sequence diagram showing exit barrier behavior
• Melihat perbedaan
antara tugas barrier
masuk(entrance barrier)
dan barrier keluar (exit
barrier) maka perlu
dibuat dua class yang
berbeda turunan dari
class barrier
Barrier
-up
+raise()
+lower()
ExitBarrier
+raise()
+lower()
EntranceBarrier
+raise()
+lower()
Simulator Class
• Kita perlu membuat
simulator class untuk
mensimulaskan
kedatangan dan
meninggalkan yang di
implementasi mungkin
dilakukan dengan
menekan sebuah
tombol
Simulator
-MaxCardNo
+arrivalgenerated()
+departuregenerated()
+getcardno()
+stilltheregenerated()
:CarPark
:Simulator
in:sensor
CarArriving()
:CarPark
:Simulator
Out:sensor
CarLeaving()
ArrivalGenerated()
DepartureGenerated()
yes
yes
yes[CarArriving=True]
yes[CarLeaving=True]
Sequence diagram dari
simulator digunakan untuk
mensimulasikan kedatangan
mobil
Sequence diagram simulator
digunakan untuk mensimulasikan
mobil meninggalkan parkir
•
Pada contoh terdahulu kita membuat sebuah simulator class untuk
menghasilkan nomor kartu, untuk mensimulasikan proses memasukkan
kartu. Simulator class mengirimkan card number ke card reader class untuk
mengirim kan ke class valid number untuk di cek validitas kartu
:CarPark
:Simulator
:CardReader
:ValidCards
cardReadOK()
getCardNumber()
CardNo
ValidCard(cardNo)
CarParkSystem
ValidCards
Card
-number
+validCard()
+addCard()
+deleteCard()
+getNumber()
+delete()
CarPark
-capacity
-spaces
+decSpaces()
+incSpaces()
+spacesLeft()
Sensor
+carArriving()
+carLeaving()
+carPresent()
VisitorCard
-currentDate
+delete()
StaffCard
-name
-departement
-expirydate
+delete()
CardReader
+cardReadOK()
Simulator
FullSign
Barrier
-MaxCardNo
-LightOn
-up
+arrivalgenerated()
+departuregenerated()
+getcardno()
+stillthegenerated()
+SwitchOn()
+SwitchOff()
+raise()
+lower()
ExitBarrier
+raise()
+lower()
EntranceBarrier
+raise()
+lower()
Revised class diagram showing implementation classes
Relationship di model tahap Analysis
• Association
• Aggregation
Relationship di model tahap Design
• Pada design model, association ada didalam model dan
memberitahu kita bagaimana hubungan antara object
didalam software, yang tidak terdapat dalam hubungan
realnya didunia nyata
–
–
–
–
Navigability
Association and aggregation
Implementing association and aggregation
Different interpretations at different stages
Navigability
• Programmer perlu untuk tahu secara tepat bagaimana
sebuah hubungan association atau agregasi antar class
di dalam class diagram dalam arti bahasa programming.
Tidak hanya hubungan asal tetapi juga bagaima arah
hubungannya diantara class.
User
owner
1
*
password
Barrier
-up
+raise()
+lower()
CarPark
-capacity
-spaces
+decSpaces()
+incSpaces()
+spacesLeft()
ValidCards
+validCard()
+addCard()
+deleteCard()
1
1..*
EntranceBarrier
Simulator
-MaxCardNo
+arrivalgenerated()
+departuregenerated()
+getcardno()
+stillthegenerated()
1
0..*
CardReader
+raise()
+lower()
+cardReadOK()
Navigability information added
CarParkSystem
ValidCards
Card
-number
+validCard()
+addCard()
+deleteCard()
+getNumber()
+delete()
CarPark
-capacity
-spaces
+decSpaces()
+incSpaces()
+spacesLeft()
Sensor
+carArriving()
+carLeaving()
+carPresent()
CardReader
+cardReadOK()
Simulator
FullSign
Barrier
-MaxCardNo
-LightOn
-up
+arrivalgenerated()
+departuregenerated()
+getcardno()
+stillthegenerated()
+SwitchOn()
+SwitchOff()
+raise()
+lower()
ExitBarrier
+raise()
+lower()
EntranceBarrier
+raise()
+lower()
VisitorCard
-currentDate
+delete()
StaffCard
-name
-departement
-expirydate
+delete()