MUHLIS TAHIR 092904033 PTIK A 2009
Desain Berorientasi Objek (OOD) Perancangan berorientasi objek adalah strategi perancangan di mana perancangan sistem memikirkan ‘benda’ dan bukan operasi atau fungsi. Sistem yang berjalan terdiri dari objek-objek yang berinteraksi yang mempertahankan status lokal mereka sendiri dan menyediakan operasi
bagi informasi status tersebut. Merancang sistem dengan menggunakan objek mandiri (self-contained object) dan kelas objek .
Karakteristik OOD Obyek merupakan abstraksi dari dunia nyata atau entitas sistem dan
mengatur diri mereka sendiri Objek bersifat independen dan merangkum keadaan dan representasi
informasi Fungsi sistem dinyatakan dalam hal objek layanan Area
share
data
ditiadakan.
Objek
berkomunikasi
dengan
menyampaikan pesan Obyek dapat didistribusikan dan dapat dilakukan secara berurutan atau
paralel.
Interaksi Objek o1: C1 s tate o1 ops 1()
o3:C3 s tate o3 ops 3 ()
o4: C4
o2: C3
o6: C1
o5:C5
s tate o2 ops 3 ()
s tate o6 ops 1 ()
s tate o4 ops 4 ()
s tate o5 ops 5 ()
Sistem yang terdiri dari objek-objek yang berinteraksi yang mempertahankan status lokal mereka sendiri dan menyediakan
operasi bagi informasi status tersebut. Mereka menyembunyikan informasi mengenai representasi status dan dengan demikian membatasi akses terhadapnya. Proses perancangan berorientasi objek melibatkan perancangan kelas objek dan hubungan antara kelas-kelas ini. Ketika desain telah direalisasikan sebagai program yang berjalan, objek yang dibutuhkan dibuat secara dinamis dengan memakai definisi kelas.
Keuntungan OOD Perawatan lebih mudah. Objek dapat dipahami sebagai entitas
yang berdiri sendiri. Objek adalah komponen sesuai yang dapat digunakan kembali/ dapat dipakai ulang karena merupakan enkapsulasi yang independen dari status dan operasi. Untuk beberapa sistem, mungkin ada pemetaan yang jelas dari entitas dunia nyata ke objek sistem.
Pengembangan Berorientasi Objek Analisis berorientasi objek (OOA), desain dan pemrograman saling
berkaitan tetapi berbeda OOA berkaitan dengan pengembangan model obyek dari domain
aplikasi. OOD berkaitan dengan model pengembangan sistem berorientasi
objek untuk melaksanakan persyaratan OOP
berkaitan
dengan
realisasi
OOD
pemrograman OO seperti Java atau C++.
menggunakan
bahasa
Objek Dan Kelas Objek Objek adalah suatu entitas dalam suatu sistem perangkat lunak yang mewakili contoh-contoh dari dunia nyata dan entitas sistem . Objek juga berarti suatu entitas yang memiliki status dan set operasi terdefinisi yang beroperasi pada status tersebut.
Kelas objek adalah template untuk objek. Mereka dapat digunakan untuk membuat objek. Kelas object dapat mewarisi sifat dan service dari kelas objek yang
lain.
Objek Objek adalah sebuah entitas yang memiliki bentuk dan satu set operasi terdefinisi yang beroperasi dalam bentuk tersebut. Bentuk ini direpresentasikan sebagai himpunan sifat objek. Operasi berkaitan dengan objek yang memberikan layanan kepada obyek lain (klien) yang meminta layanan ini ketika beberapa perhitungan diperlukan. Objek dibuat berdasarkan beberapa definisi kelas objek. Definisi kelas Object berfungsi sebagai template untuk objek. Template Ini
mencakup deklarasi semua sifat dan layanan yang harus dikaitkan dengan obyek dari kelas itu.
Employee Object Class (UML) Employee name: string address: string dateOfBirth: Date employeeNo: integer socialSecurityNo: string department: Dept ma nager: Employee salary: integer status: {current, left, retired} taxCode: integer . .. join () leave () retire () changeDetails ()
Objek Employee Kelas Employee yang mendefinisikan sejumlah atribut yang menyimpan informasi
mengenai
karyawan,
termasuk nama dan alamat mereka, nomor jaminan sosial, kode pajak, dll. Yang tidak diperlihatkan disini.
Komunikasi Obyek Secara konseptual, objek berkomunikasi dengan menyampaikan pesan. Pesan Nama layanan diminta oleh objek yang memanggil. Salinan informasi dibutuhkan untuk melakukan layanan dan nama pemilik
(holder) untuk hasil dari layanan tersebut. Dalam prakteknya, pesan seringkali dilaksanakan melalui prosedur panggilan. nama = nama prosedur informasi = daftar parameter.
Generalisasi dan Warisan Objek adalah anggota dari kelas yang mendefinisikan tipe atribut/sifat
dan operasi. Kelas dapat diatur di dalam kelas hirarki, dimana satu kelas (kelas super) adalah generalisasi dari satu atau lebih kelas-kelas lain (subkelas). Sebuah sub-kelas mewarisi atribut dari kelas super dan bisa menambah metode atau atribut baru sendiri. Generalisasi dalam UML diimplementasikan sebagai warisan dalam bahasa pemrograman OO.
Employee
Ma nager
Programmer
budgetsControlled dateAppointed
project progLanguage
Project Ma nag er projects
De pt. Ma nager dept
Strategic Ma nag er responsibilities
Pada peraga tersebut menunjukkan contoh hierarki generalisasi seperti itu, di mana ditunjukkan kelas karyawan yang berbeda. Kelas-
kelas di sebelah bawah hierarki memiliki atribut dan operasi yang sama dengan kelas orang tua mereka, tetapi bisa menambahkan atribut dan operasi baru atau memodifikasi beberapa yang berasal dari kelas orang
tua. Ini berarti bahwa terdapat pertukaran satu arah. Jika nama kelas orang tua dipakai pada model, ini berarti bahwa objek tersebut pada sistem dapat didefinisikan sebagai kelas itu atau salah satu dari keturunannya.
Keuntungan Dari Warisan o Ini adalah mekanisme abstraksi yang dapat digunakan untuk mengklasifikasikan entitas. o Merupakan mekanisme yang bisa digunakan kembali baik untuk desain maupun tingkat pemrograman. o Grafik warisan merupakan sumber pengetahuan organisasi tentang domain dan sistem
Masalah Dengan Warisan Kelas objek tidak self-contained, mereka tidak dapat dipahami tanpa
merujuk pada super-kelas mereka. Desainer memiliki kecenderungan untuk menggunakan kembali grafik
warisan yang dibuat selama analisis. Dapat menyebabkan inefisiensi signifikan. Analisis, desain dan implementasi grafik warisan memiliki fungsi yang
berbeda dan harus dijaga secara terpisah.
Warisan dan OOD • Ada beberapa perbedaan pandangan tentang apakah warisan adalah dasar OOD. Pandangan 1. Mengidentifikasi hirarki warisan atau jaringan merupakan bagian mendasar dari desain berorientasi objek. Jelas ini hanya dapat diimplementasikan dengan menggunakan OOPL.
Pandangan 2. Warisan merupakan konsep implementasi yang berguna yang memungkinkan penggunaan kembali definisi atribut dan operasi. Mengidentifikasi hirarki warisan pada tahap desain
dapat menyebabkan pelaksanaan pembatasan yang tidak perlu. • Warisan memperkenalkan kompleksitas dan ini tidak diinginkan, terutama dalam sistem kritis.
Proses Desain Berorientasi Objek Menentukan
konteks dan bagaimana menggunakan
sistem. Merancang arsitektur sistem. Mengidentifikasi sistem objek utama. Mengembangkan model desain.
Menentukan objek antarmuka.
Deskripsi Sistem Cuaca Sistem pengumpulan data cuaca diperlukan untuk menghasilkan peta cuaca secara teratur dengan menggunakan data yang dikumpulkan
dari jauh, stasiun cuaca tanpa pengawasan dan sumber data lain seperti pengamat cuaca, balon dan satelit. Stasiun cuaca mengirim data mereka ke komputer area sebagai tanggapan atas permintaan dari mesin mereka.
Komputer area memvalidasi
data yang
dikumpulkan dan
menyatukannya dengan data dari sumber yang berbeda. Data yang disatukan diarsipkan dan, menggunakan data dari arsip dan database peta digital, satu set peta cuaca lokal dibuat. Peta bisa dicetak untuk tujuan distribusi khusus atau peta utama dapat ditampilkan dalam format yang berbeda.
Deskripsi Stasiun Cuaca Stasiun cuaca adalah paket perangkat lunak yang mengontrol
instrumen
yang
mengumpulkan
data,
melakukan
beberapa
pengolahan data dan mengirimkan data ini untuk diproses lebih lanjut.
Instrumen
termasuk
termometer
udara
dan
tanah,
anemometer, sebuah baling-baling angin, barometer dan curah hujan. Data dikumpulkan setiap lima menit. Ketika perintah dikeluarkan untuk mengirimkan data cuaca,
stasiun cuaca memproses dan merangkum data yang dikumpulkan. Kemudian data yang diringkas tersebut dikirim ke komputer pemetaan bila ada permintaan yang diterima.
Arsitektur Berlapis <<Subsystem>>
Data menampilkan layer dimana objek berhubungan
Data display
dengan persiapan dan penyajian data yang dapat dibaca
<<Subsystem>>
Pengarsipan data layer dimana objek berhubungan
Pengarsipan Data
dengan penyimpanan data untuk proses di masa depan
<<Subsystem>> Memproses Data
<<Subsystem>> Pengumpulan Data
Memproses data layer dimana objek berhubungan dengan memeriksa dan mengintegrasikan data yang dikumpulkan Pengumpulan data layer dimana objek berhubungan dengan mendapatkan data dari sumber jauh
Peraga yang mengilustrsikan arsitektur sistem yang
mungkin yang dapat diturunkan dari deskripsi ini. Peraga ini merupakan arsitektur lapisan yang merefleksikan berbagai
tahap
pemrosesan
pada
sistem,
yaitu
pengumpulan data (data collection), integrasi data (data integration), pengarsipan data (data archiving) dan
pembuatan peta (map generation).
Konteks Sistem Dan Penggunaan Model Mengembangkan pemahaman tentang hubungan antara perangkat
lunak yang tengah dibuat dan lingkungan eksternal. Konteks sistem Sebuah model statis yang menggambarkan sistem lain dalam lingkungan. Gunakan model subsistem untuk menunjukkan sistem lain. Model penggunaan sistem Sebuah model dinamis yang menggambarkan bagaimana sistem berinteraksi dengan lingkungannya. Gunakan use-cases untuk menunjukkan interaksi.
Subsistem dalam Sistem Stasiun Cuaca «subsystem» Da ta collection
«subsystem» Da ta display
Observer
Satellite Co mms
Weather station
Balloon
Ma p display Ma p printer
Ma p
«subsystem» Da ta archiving
«subsystem» Da ta processing Da ta checking
User interface
Da ta integration
Da ta storage Ma p store
Da ta store
Peraga yang memperluas model arsitektural abstrak
ini dengan menunjukkan komponen-komponen pada subsistem. Sekali lagi komponen ini sangat abstrak dan diturunkan dari informasi pada deskripsi sistem, yang meneruskan contoh desain ini dengan memfokuskan pembahasan
pada
subsistem
stasiun
cuaca
merupakan bagian dari lapisan pengumpulan data.
yang
Use-Cases untuk Stasiun Cuaca Startup Peraga
Shutdown
yang
bahwa
menunjukkan
stasiun
berinteraksi
dengan
cuaca entitas
eksternal untuk startup dan
Re port
shutdown, untuk melaporkan data
Ca librate
cuaca
dikumpulkan pengujian
Test
instrumen.
yang
telah
dan
untuk
dan
kalibrasi
Deskripsi Use-Cases Sistem Use-cases Pelaku Data
: : : :
Stimulus
:
Respon
:
Komentar
:
Stasiun Cuaca Laporan Sistem pengumpulan data cuaca, stasiun cuaca Stasiun cuaca mengirimkan ringkasan data cuaca yang dikumpulkan dari instrumen pada periode pengumpulan ke sistem pengumpulan data cuaca. Data yang dikirim adalah suhu rata-rata tanah dan udara minimum dan maksimum, tekanan udara rata-rata minimum dan maksimum, kecepatan rata-rata angin minimum dan maksimum, jumlah curah hujan dan arah angin sebagai sampel pada interval 5 menit. sistem pengumpulan data cuaca mengatur link modem dengan stasiun cuaca dan permintaan untuk transmisi data. data yang telah diringkas dikirim ke sistem pengumpulan data cuaca stasiun cuaca biasanya diminta untuk melaporkan satu jam sekali, namun frekuensi ini dapat bervariasi dari satu stasiun ke stasiun lain dan dapat dimodifikasi di masa depan.
Setiap
use-case
dapat
dideskripsikan
dengan
menggunakan deskripsi bahasa natural yang sederhana. Cara ini membantu perancang mengidentifikasi objekobjek pada sistem dan memberikan pemahaman mengenai apa yang dikehendaki dari sistem, dengan memberikan gaya dari deskripsi ini yang secara jelas mengidentifikasi informasi apa yang dipertukarkan, bagaimana interaksi
dimulai dsb.
Desain Arsitektur • Karena interaksi antara sistem dan lingkungan telah dipahami, Anda menggunakan informasi ini untuk merancang arsitektur sistem. • Arsitektur berlapis sesuai dengan stasiun cuaca Interface layer untuk menangani komunikasi. Pengumpulan data layer untuk mengelola instrumen. Instrumen layer untuk pengumpulan data • Sebaiknya tidak lebih dari 7 entitas dalam model arsitektur
Identifikasi Objek Mengidentifikasi objek (atau kelas objek) adalah yang paling sulit dalam desain berorientasi objek. Tidak ada “rumus ajaib” untuk mengidentifikasi objek. Hal ini bergantung pada pengalaman, keterampilan dan pengetahuan domain dari para perancang sistem. Identifikasi obyek merupakan proses berulang-ulang. Kemungkinan besar Anda tidak mungkin mendapatkannya pada kali pertama.
Pendekatan untuk Identifikasi Gunakan pendekatan gramatikal berdasarkan uraian bahasa alami dari
sistem (yang digunakan dalam metode Hood) Pusatkan identifikasi pada hal-hal nyata dalam domain aplikasi Gunakan pendekatan perilaku dan identifikasi objek sesuai dengan
berpartisipasi apa dalam perilaku apa Gunakan analisis berbasis skenario. Objek, atribut dan metode dalam
setiap skenario diidentifikasi.
Kelas Objek Stasiun Cuaca Termometer tanah, Anemometer, Barometer.
Objek domain aplikasi merupakan objek “perangkat keras” yang berhubungan dengan instrumen dalam sistem. Pemetaan Cuaca. Merupakan basis antarmuka dari stasiun cuaca terhadap lingkungannya.
Karena
itu
mencerminkan
interaksi
diidentifikasi dalam model use-cases. Data Cuaca. Menyertakan data yang telah diringkas dari instrumen.
yang
Kelas Objek Stasiun Cuaca Pemetaan WeatherData
WeatherStation identifier
airTemperatures groundTemperatures win dSpeeds win dDirections pressures rainfall
reportWeather () calibrate (instruments) test () startup (instruments) shutdown (instruments)
collect () summarise ()
Ground the rmometer temperature test () calibrate ()
Anemometer
Ba rom eter
win dSpeed win dDirection
pressure height
test ()
test () calibrate ()
Peraga yang menggunakan pendekatan hibrid untuk mengidentifikasi objek stasiun cuaca, yang tidak memiliki tempat untuk mendeskripsikan semua objek tetapi telah menunjukkan
lima
kelas
objek
pada
peraga
ini.
Ground thermometer, Anemometer dan Barometer mempresentasikan objek domain aplkasi dan objek WeatherStation dan WeatherData telah teridentifikasi dari
deskripsi sistem dan deskripsi skenario (use-case).
Objek Selanjutnya dan Penyempurnaan Objek Gunakan pengetahuan domain untuk mengidentifikasi lebih banyak
objek dan operasi. Pemetaan Cuaca harus memiliki identifier yang unik. Pemetaan cuaca diletakkan sedikit jauh, sehingga instrumen tidak bisa melaporkan secara otomatis. Oleh karena itu atribut dan operasi diperlukan untuk pemeriksaan diri-sendiri (self-checking). Objek aktif atau pasif Dalam hal ini, obyek bersifat pasif dan pengumpulan data berdasarkan permintaan daripada otomatis. Hal ini memperkenalkan fleksibilitas dengan mengorbankan waktu pengolahan controller.
Model Desain Desain model menunjukkan objek dan kelas objek dan hubungan
antar entitas tersebut . Ada dua tipe model desain yang seharusnya dihasilkan untuk mendeskripsikan perancangan berorientasi objek, yaitu: Model statis menjelaskan struktur statis sistem dalam hal kelas objek dan hubungannya. Model Dinamis menggambarkan interaksi dinamis antara objek sistem (bukan antara kelas objek).
Contoh Model Desain Model Sub-sistem menunjukkan pengelompokan logis dari objek ke
dalam subsistem yang koheren. Model rangkaian yang menunjukkan urutan interaksi objek. Model mesin menunjukkan bagaimana objek individu mengubah
kondisi mereka dalam menanggapi peristiwa atau event. Model-model lain termasuk model use-case, model agregasi, model
umum, dll.
Model Subsistem Menunjukan bagaimana desain dikelola kedalam kelompok obyek
terkait secara logis Dalam UML, ini ditunjukkan dengan menggunakan paket konsepsi
enkapsulasi. Ini adalah model logis. Realisasi organisasi objek dalam sistem mungkin berbeda.
Subsistem Stasiun Cuaca «subsystem» Interface
«subsystem» Da ta collection
Co mmsCo ntroller
WeatherStation
WeatherData
Instrument Status
«subsystem» Instruments Air thermometer
Ra inGauge
Anemometer
Ground thermometer
Barometer
Wind Vane
Peraga ini menunjukkan objek-objek pada subsistem di stasiun cuaca, yang menunjukkan beberapa asosiasi pada model ini. Sebagai contoh, objek CommsController berasosiasi dengan objek WeatherStation dan objek WeatherStation berasosiasi dengan paket Data Collection. Ini berarti bahwa objek ini berasosiasi dengan satu atau lebih objek pada paket ini. Model paket ditambah model
kelas objek harus mendeskripsikan pengelompokan logis pada sistem.
Model Urutan Model urutan menunjukkan urutan interaksi objek yang terjadi : Obyek disusun secara horizontal di bagian atas.
Waktu ditunjukkan secara vertikal sehingga model dibaca dari
atas ke bawah. Interaksi ditunjukkan dengan anak panah. Anak panah berbeda
mewakili berbagai jenis interaksi. Sebuah kotak untuk objek tipis pada saat objek tersebut adalah
objek mengendalikan sistem.
Urutan Pengumpulan Data
Peraga ini yang menunjukkan urutan interaksi ketika sistem pemetaan eksternal meminta data dari stasiun cuaca : 1)
Objek yang merupakan instance dari CommsController menerima permintaan dari lingkungannya untuk mengirim laporan cuaca.
2)
Objek ini mengirim message ke objek yang merupakan instance dari WeatherStation untuk membuat laporan cuaca.
3)
Objek yang merupakan instance dari WeatherStation mengirim message ke objek WeatherData untuk merangkum data cuaca.
4)
Rangkuman ini dihitung dan kontrol kembali ke objek WeatherStation.
5)
Objek ini mengirim message ke CommsController untuk memintanya mentransfer data ke sistem jarak jauh.
6)
Objek CommsController mengirim data rangkuman ke sistem jarak jauh, menerima tanda terima dan kemudian menunda dirinya sendiri untuk menunggu permintaan berikutnya.
Statecharts Menunjukkan bagaimana objek menanggapi permintaan layanan yang berbeda dan transisi dipicu oleh permintaan : Jika keadaan objek Shutdown, maka objek merespon Startup () pesan. Dalam keadaan menunggu, objek menunggu untuk pesan lebih lanjut. Jika laporan cuaca () maka sistem bergerak untuk meringkas keadaan. Jika mengkalibrasi () sistem bergerak ke keadaan kalibrasi. Sebuah kumpulan keadaan dimasukkan ketika sinyal jam diterima.
Diagram Keadaan Pemetaan Cuaca Operation
calibrate ()
Calibrating calibration OK
Shutdown
startup ()
test ()
Waiting
Testing
transmission done
shutdown ()
test complete
Transmitting clock
collection done
reportWeather ()
Summarising Collecting
weather summary complete
Peraga yang merupakan statechart untuk objek WeatherStation yang
menunjukkan bagaimana objek tersebut menanggapi permintaan untuk berbagai layanan : 1)
Jika status objek adalah ‘shutdown’, maka objek hanya dapat
menanggapi message startup (). 2)
Pada status ‘waiting’, sistem mengharapkan message berikutnya.
3)
Jika diterima message reportWeather (), sistem menuju ke status merangkum kemudian ketika rangkuman telah selesai, menuju status transmisi di mana informasi ditransmisi melalui CommsController.
4)
Jika diterima message calibrate (), sistem berpindah ke status calibrating, kemudian ke status testing, kemudian ke status transmitting sebelum kembali ke status waiting.
5)
Jika diterima sinyal dari clock, sistem berpindah ke suatu collecting di mana objek mengumpulkan data dari instrumen-instrumen.
Interface Stasiun Cuaca interface WeatherStation { public void WeatherStation () ; public void startup () ; public void startup (Instrument i) ; public void shutdown () ; public void shutdown (Instrument i) ; public void reportWeather ( ) ; public void test () ; public void test ( Instrument i ) ; public void calibrate ( Instrument i) ; public int getID () ; } //WeatherStation
Peraga ini menunjukkan spesifikasi interface dalam Java untuk stasiun
cuaca.
Walaupun
interface
menjadi
lebih
kompleks,
pendekatan ini lebih efektif karena sintaks yang memeriksa fasilitas pada
compiler
dapat
dipakai
untuk
menemukan
error
dan
ketidakkonsistenan pada deskripsi interface. Deskripsi Java dapat
menunjukkan bahwa beberapa metode dapat mengambil parameter dalam jumlah yang berbeda. Dengan demikian, metode shutdown dapat diterapkan pada stasiun secara keseluruhan jika metode itu tidak memiliki parameter atau dapat mematikan satu instrumen.
Evolusi Desain Menyembunyikan informasi di dalam objek berarti bahwa perubahan yang dibuat ke sebuah obyek tidak mempengaruhi objek lain dalam cara yang tak terduga. Asumsikan fasilitas pemantauan polusi ditambahkan untuk stasiun cuaca. Sampel itu adalah udara dan hitung jumlah polutan yang berbeda di atmosfer. Pembacaan Polusi dikirim dengan data cuaca.
Perubahan yang dibutuhkan Tambahkan kelas objek yang disebut “Kualitas udara” sebagai
bagian dari stasiun cuaca. Tambahkan operasi laporan kualitas udara ke Stasiun Cuaca.
Modifikasi kontrol perangkat lunak untuk mengumpulkan pembacaan polusi. Tambahkan
objek
pemantauan polusi.
tersebut
yang
mewakili
instrumen
Pemantauan Polusi WeatherStation
Air quality
identifier reportWeather () reportAirQuality () calibrate (instruments) test () startup (instruments) shutdown (instruments)
Peraga
ini
menunjukkan
NO Data smokeData benzeneData
WeatherStation dan objek-objek
collect () summarise ()
Selain dari tingkat sistem paling
baru yang ditambahkan ke sistem.
tinggi
tidak
ada
perubahan
perangkat lunak yang diperlukan pada objek-objek awal di stasiun Pollution monitoring instruments NO meter
SmokeMeter
cuaca tersebut. Namun demikian, penambahan pengumpulan data polusi
BenzeneMeter
tidak
mempengaruhi
pengumpulan data cuaca.
Poin-Poin Penting OOD adalah pendekatan untuk desain sehingga komponen desain memiliki keadaan dan operasi sendiri. Objek harus memiliki constructor dan operasi pemeriksaan. Mereka memberikan layanan kepada benda lain. Objek dapat diimplementasikan secara berurutan atau secara bersamaan. The Unified Modeling Language menyediakan notasi berbeda untuk
mendefinisikan model obyek yang berbeda.
Poin-Poin Penting Banyaknya model berbeda dapat dihasilkan selama proses desain
berorientasi objek. Ini termasuk model sistem statis dan dinamis Obyek
antarmuka harus didefinisikan secara akurat misalnya
menggunakan bahasa pemrograman seperti Java Desain berorientasi objek menyederhanakan sistem evolusi.
Sekian dan Terima Kasih