Model Analisis
-ap- 2
Tujuan Instruksional Umum
• Bagian ini menjelaskan tentang pengertian model analisis.
• Setelah mempelajari bagian ini
dengan baik, pembaca diharapkan dapat:
– Memahami pemodelan analisis.
– Membuat realisasi use-case dengan diagram sekuens
-ap- 3
Pokok Bahasan
• Pokok bahasan pada bagian ini meliputi:
– Konsep model analisis – Realisasi use-case
– Keterunutan/Traceability realisasi use- case
– Diagram sekuens dan diagram kolaborasi
-ap- 4
(Review) Framework RUP
• Merupakan framework yang dibuat
berdasarkan model proses RUP, terdiri dari:
– Use-case view
• Business use-case model
• Use-case model
– Logical view
• Analysis model
• Business object model
• Design model
– Component view
• Implementation model
– Deployment view
-ap- 5
Model Analisis
• Model analisis (analysis model)
menggambarkan realisasi dari use case-use case dalam use case model, dan bertindak sebagai abstraksi dari model desain.
• Tujuan akhir sebuah model analisis adalah untuk membuat pemetaan awal mengenai perilaku yang disyaratkan dalam sistem
aplikasi ke dalam elemen-elemen pemodelan.
• Model analisis merupakan transisi ke dalam model desain, dan kelas-kelas analysis secara langsung berkembang menjadi elemen-elemen model desain.
-ap- 6
Model Analisis
• Model analisis terdiri dari:
– Realisasi Use-case (Use-case Realization)
– Kelas Analisis (Analysis Class) – Diagram Interaksi (Interaction
Diagram, terdiri dari: Sequence Diagram dan Collaboration
Diagram)
-ap- 7
Realisasi Use-case
• Menggambarkan bagaimana sebuah use- case direalisasikan dalam bentuk
kolaborasi dari berbagai objek.
• Di dalam realisasi use-case terdapat satu atau beberapa diagram kelas.
• Untuk menentukan kelas-kelas yang terdapat dalam sebuah realisasi use- case, dipergunakan diagram interaksi.
RealisasiCatatPembelian
-ap- 8
Realisasi Use-case CatatPembelian
CatatPembelian
CatatPenyesuaian
<<extend>>
RealisasiCatatPenyesuaian
<<realize>>
RealisasiCatatPembelian
<<realize>> <<extend>>
PetugasKasir
(f rom Actors)
-ap- 9
Realisasi Use-case CatatPembelian
RealisasiCatatPembelian
Pada fase Inception:
Berisi diagram kelas analisis versi awal untuk use case utama.
Pada fase Elaboration:
Berisi diagram kelas analisis dan sequence
diagram yang menggambarkan interaksi setiap objek dari kelas analisis yang terlibat di dalam use case tersebut. Diagram kelas dan sequence diagram dibuat untuk setiap use case. Lengkapi daftar perubahan sesuai dengan tambahan
informasi yang dilakukan pada fase ini.
Pada fase Construction:
Berisi diagram kelas analisis dan sequence diagram versi final untuk setiap use case.
Lengkapi daftar perubahan sesuai dengan
tambahan informasi yang dilakukan pada fase ini.
-ap- 10
Kelas Analisis
• Merupakan elemen/benda yang terdapat pada model analisis.
• Menggambarkan konsep awal mengenai benda yang terdapat dalam sistem (yang akhirnya memiliki tanggung jawab dan
perilaku).
• Kelas analisis digunakan sebagai dasar kelas pada model desain.
• Terdiri dari 3 elemen: Boundary, Control, Entity
-ap- 11
Kelas Analisis:
Boundary
• Boundary, memodelkan interaksi antara satu atau lebih actor
dengan sistem/perangkat lunak.
• Memodelkan bagian dari sistem yang bergantung pada pihak lain dan merupakan pembatas sistem dengan dunia luar.
• Terdiri dari user interface, system interface dan device interface.
BoundaryClass
-ap- 12
Kelas Analisis:
Boundary
<Actor Name>
(f rom Actors)
Boundary Class
<Actor Name>
(f rom Actors)
<Use Case Name>
(from <Use Case Name>)
-ap- 13
Kelas Analisis: Control
• Control, memodelkan perilaku mengatur satu atau beberapa use-case.
• Bersifat optional, umumnya terdapat satu control pada satu use-case yang mengontrol urutan events dalam use- case tersebut.
• Menghubungkan kelas boundary dengan kelas entity
ControlClass
-ap- 14
Kelas Analisis: Entity
• Entity, memodelkan informasi yang harus disimpan oleh sistem.
• Memperlihatkan struktur data sebuah sistem.
• Tanggung jawab utamanya adalah menyimpan dan mengatur informasi dalam sistem.
EntityClass
-ap- 15
Hubungan Antar Kelas
• Generalization
• Association
• Aggregation
• Composition.
-ap- 16
Hubungan Antar Kelas:
Generalization
• Relasi generalisasi adalah relasi antara
sebuah kelas yang lebih umum dengan sebuah kelas yang lebih
spesifik.
• Sebuah generalisasi ditunjukkan dengan garis tebal antara
spesiik kelas ke kelas umum, diikuti dengan segitiga yang menunjuk ke kelas yang lebih
general.
• Relasi generalisasi digunakan untuk menunjukkan relasi
"is-a" antar kelas.
• Contoh: kelas Kasir ‘is- a’ kelas People. Kelas Petugas ‘is-a’ kelas People
-ap- 17
Hubungan Antar Kelas:
Generalization
People
Petugas
(f rom Petugas Stand)
Kasir
(f rom Kasir)
People
Petugas
(f rom Petugas Stand) Kasir
(f rom Kasir)
-ap- 18
Hubungan Antar Kelas:
Association
• Asosiasi merupakan sarana untuk
berkomunikasi, baik antar use-cases, actor, kelas maupun interface.
• Asosiasi merupakan relasi yang paling general dan
konsekuensinya menjadi relasi yang paling lemah secara semantik.
• Asosiasi merupakan relasi antar instances kelas.
• Tujuan relasi asosiasi adalah untuk
menspesifikasikan relasi secara
konspetual,
menentukan tanggung jawab dan
menspesifikasikan detail implementasi.
-ap- 19
Hubungan Antar Kelas:
Association
• Contoh: Dosen
mengajar Perkuliahan dan Mahasiswa
menghadiri Perkuliahan.
• Sebuah Perkuliahan
harus dihadiri minimum oleh 3 Mahasiswa dan maksimum 10
Mahasiswa.
• Perkuliahan diberikan oleh 1 orang Dosen.
• Pada ujung asosiasi dapat diberi nama
secara eksplisit dengan nama
peran
, sebagaicontoh Mahasiswa yang menghadiri Perkuliahan disebut Peserta.
• Jika peran tidak
dispesifikasikan, nama peran identik dengan kelas target pada
asosiasi.
-ap- 20
Hubungan Antar Kelas:
Association
Orang
Dosen Mahasiswa
Matakuliah Perkuliahan
0..*
1
0..*
1
0..*
3..10
0..*
3..10 +Peserta
1..*
1 1..*
1
-ap- 21
Hubungan Antar Kelas:
Agregation dan Composition
• Aggregation merupakan relasi part-of. Terkadang disebut juga relasi “has- a”, dimana asosiasi
‘normal’ biasanya disebut relasi uses.
• Contoh klasik dari
agregasi adalah contoh mobil: Sebuah mobil mempunyai sebuah mesin dan 4 roda.
• Pada contoh di atas:
kuliah mempunyai 1 atau beberapa
perkuliahan
• Bentuk yang lebih
‘kuat’ dari agregasi
disebut composition.
• Pada composition, part merupakan bagian
dari whole dimana
lifetime
dari part terikat pada whole.• Jika whole dibentuk maka part juga
dibentuk. Jika whole dihapus maka part juga dihapus
-ap- 22
Atribut dan Tanggung Jawab Kelas
• Atribut
menggambarkan Struktur Kelas
• Nilai/value atribut yang terdapat pada suatu
waktu tertentu disebut dengan status/state dari kelas tersebut
• Tanggung Jawab
mengggambarkan
kelakukan/behavior dari kelas tersebut yang
dapat menyebabkan perubahan state.
• Tanggung jawab
sebuah kelas terdiri dari dua item
pokok yaitu:
– Mengetahui data yang dikelola kelas tersebut
– Melakukan aksi-aksi untuk mengubah
state atau untuk memberi layanan kepada kelas lain
-ap- 23
Atribut dan Tanggung Jawab Kelas
• Behavior menggambarkan bagaimana sebuah objek bertindak/beraksi dan memberi reaksi.
• Behavior ditentukan oleh himpunan semua atau beberapa operasi yang dapat dilakukan dalam objek itu sendiri.
• Behavior objek dapat dicerminkan oleh interface, service dan method dari objek itu.[2]
• [2] Interface adalah pintu untuk mengakses service objek. Service adalah fungsi yang bisa diemban objek. Method adalah mekanisme internal objek yang mencerminkan perilaku objek tersebut
-ap- 24
Diagram Interaksi
• Diagram use-case digunakan untuk memvisualisasikan dan mendeskripsikan
eksternal
viewsistem dan
eksternal urutan aksi-reaksi antara sistem/use-case dengan aktor
(disebut skenario).
• Untuk mengetahui deskripsi
internal
sistem perangkat lunak dari suatu skenario,
kita membutuhkan diagram interaksi.
• Deskripsi internal ini digambarkan dalam
bentuk kumpulan
objek.
-ap- 25
Diagram Interaksi
• Menggambarkan interaksi antar objek yang terdapat dalam sebuah realisasi use-case.
• Berupa step-by-step aliran (flow) yang
terdapat dalam realisasi use-case; terdiri dari:
– Objek apa saja yang dibutuhkan dalam aliran?
– Message apa saja yang dikirim dari objek ke objek lain?
– Aktor apa yang menginisiasi aliran?
• Tujuan diagram interaksi adalah untuk
mendapatkan aliran (flow) interaksi antar objek yang mendeskripsikan sebuah
skenario.
-ap- 26
Diagram Interaksi
• Dalam sebuah realisasi use-case, dapat terdiri dari
beberapa alternatif aliran
(dengantujuan yang sama). Dengan demikian kita membutuhkan beberapa diagram interaksi untuk menggambarkannya.
• Minimal kita mempunyai satu diagram interaksi untuk satu alternatif yang sukses (happy case);
dan beberapa interaksi untuk alternatif kasus yang tidak sukses.
• Contoh: pada CatatPembelian, happy case terjadi pada saat pencatatan berhasil,
sedangkan alternatif lain jika terjadi pencatatan gagal karena kesalahan memasukkan kode.
-ap- 27
Diagram Interaksi:
Elemen
-ap- 28
Diagram Interaksi:
Menemukan Kelas
• Pada diagram interaksi kita memerlukan kelas dan objek.
• Kelas yang mempunyai peran dalam
mencapai tujuan dan kebutuhan sistem.
• Proses menemukan Kelas adalah aktifitas tersulit OOA/D.
• Merupakan proses yang berulang, semakin berpengalaman, semakin baik.
-ap- 29
Diagram Interaksi:
Menemukan Kelas
• Terdapat beberapa pendekatan untuk identifikasi Kelas:
– Pendekatan Noun Phrase,
– Pendekatan Common Class Paterns,
– Pendekatan
Use-Case Approach
,– Pendekatan Classes Responsibilities and Collaboration.
-ap- 30
Diagram Interaksi: Noun Phrase
• Diperkenalkan oleh Rebecca Wirfs-Brock, Brian Wilkerson dan Lauren Wiener.
• Pendekatan yang dilakukan adalah sebagai berikut:
– Mencari noun phrases dari requirement atau use case
– Nouns Class, sedangkan Verb Method
• Sangat bergantung kepada kelengkapan dan ketepatan dari dokumen yang tersedia
• Dilain pihak, pada dokumen yang lengkap akan terdapat banyak kandidat kelas
-ap- 31
Diagram Interaksi: Noun Phrase
• Langkah-langkah pendekatan tersebut:
– Identifikasi Tentative Classes Berdasarkan use- case
– Seleksi Kelas-kelas dari kategori yang relevan dengan cara:
• Membuat daftar dari noun phrases
• Review kelas yang redundant dan jadikan kelas yang umum
• Review kelas yang mengandung Adjective
• Review Attribut yang mungkin
• Review Tujuan Kelas
– Kelas yang tidak mempunyai peran dan tidak
mempunyai kegunaan dalam sistem akan dihapus dalam daftar
-ap- 32
Diagram Interaksi: Tipe
• Terdapat dua macam Diagram Interaksi:
– Sequence Diagram
– Collaboration Diagram
-ap- 33
Diagram Interaksi:
Diagram Sekuens
• Diagram sekuen adalah diagram interaksi yang menggambarkan
interaksi antar objek yang terurut
berdasarkan waktu .
• Idealnya digunakan pada periode
waktu yang sedikit dan melibatkan
objek yang sedikit.
-ap- 34
Diagram Interaksi:
Diagram Sekuen
• Temukan objek:
– Identifikasi benda/noun yang terdapat dalam aliran kejadian/skenario Benda tersebut dapat saja berupa aktor, objek atau atribut dari objek.
– Identifikasikan objek saja, kategorikan objek tersebut menjadi objek entity, boundary dan control.
• Temukan aktor: yaitu pihak yang
menginisiasi aliran/skenario.
-ap- 35
Diagram Interaksi:
Diagram Sekuen
• Tambahkan message
ke dalam diagram,
• Message adalah
komunikasi antar objek yang menggambarkan aksi yang akan
dilakukan.
• Message terjadi antar dua buah objek dimana satu objek (disebut
client) meminta objek lain (disebut supplier) untuk melakukan
sesuatu.
• Message berbeda dengan Method, dimana method adalah fungsi dari kelas yang berisi statement untuk
menggambarkan apa yang terjadi ketika
suatu message
diterima (misalnya perubahan state, ekstrak informasi)
-ap- 36
Case Study:
CatatPembelian
Identifikasi
Nomor UC-01
Nama CatatPembelian
Tujuan Mencatat pembelian makanan yang ada
Deskripsi Pembeli melakukan pemesanan makanan, kasir mencatat pemesanan makanan
Tipe High level
Aktor Petugas Kasir
Skenario Utama Kondisi awal: Aplikasi Penjualan sudah dibuka
Aksi Aktor Reaksi Sistem
Membuka formulir pembelian Menampilkan formulir yang siap diisi
Mengisi data kode makanan dan jumlah Menampilkan jenis makanan dan harga per item berdasarkan kode
Menekan tanda selesai jika pembelian
makanan sudah selesai Menyimpan seluruh item pembelian makanan Kondisi akhir: Seluruh item pembelian sudah tersimpan
-ap- 37
Case Study:
CatatPembelian
: PetugasKasir : FormPembelian : MencatatPembelianBaru : MasterMakanan : PembelianMakanan BukaFormPembelian( )
MencatatKodeMakanan( )
CariKodeMakanan( )
MenampilkanJenisMakanan( ) MencatatJumlahMakanan( )
MencatatPembelianBaru( )
-ap- 38
Diagram Interaksi:
Diagram Sekuen
• Diagram Sekuen tidak dipergunakan untuk:
– Kolaborasi objek yang banyak – Logika yang kompleks
– Menunjukkan kelakuan sebuah
objek tunggal – Gunakan statechart
diagram
-ap- 39
Diagram Interaksi:
Diagram Kolaborasi
• Tujuan Diagram Kolaborasi adalah untuk memperlihatkan bagaimana
objek saling terkait pada sebuah use- case.
• Kegunaan Diagram Kolaborasi adalah:
– Untuk memperlihatkan hubungan statik antar objek
– Untuk skenario yang lebih kompleks – Untuk objek yang banyak dengan
message yang sedikit
-ap- 40
Diagram Interaksi:
Diagram Kolaborasi
: PetugasKasir
: MasterMakanan
: MencatatPembelianBaru : PembelianMakanan
: FormPembelian 1: BukaFormPembelian( )
3: CariKodeMakanan( )
4: MenampilkanJenisMakanan( )
6: MencatatPembelianBaru( )
2: MencatatKodeMakanan( ) 5: MencatatJumlahMakanan( )
-ap- 41
Diagram Interaksi:
Kapan?
• Diagram Sekuens:
?
Menunjukkan
urutan/sekuens
• Diagram Kolaborasi:
?
Menunjukkan
koneksi antar
objek
-ap- 42
Diagram Interaksi:
Petunjuk
• Diagram Interaksi merupakan diagram yang bagus untuk menganalisis dan
memvisualisasi,
• Menunjukkan urutan dan hubungan antar objek untuk sebuah skenario use-case,
• Gunakan elemen notasi dasar,
• Setiap skenario mempunya diagram interaksi sendiri,
• Gunakan abstraksi
• KIS(S): Keep it Simple (S?)
-ap- 43
Diagram Kelas (dari Diagram Sekuens)
• Dengan pendekatan Use-case (Use- case driven approach), kelas
didapatkan berdasarkan diagram sekuens
• Langkah-langkah:
– Identify Class
– Identify Relationship – Identify Attributes – Identify Methods
-ap- 44
Diagram Kelas: Kelas
MencatatPembelianBaru
MencatatKodeMakanan() MencatatJumlahMakanan() MenampilkanJenisMakanan() MasterMakanan
CariKodeMakanan()
PembelianMakanan MencatatPembelianBaru() FormPembelian
BukaFormPembelian()
-ap- 45
Diagram Kelas: Atribut
MencatatPembelianBaru
MencatatKodeMakanan() MencatatJumlahMakanan() MenampilkanJenisMakanan() MasterMakanan
CariKodeMakanan()
PembelianMakanan MencatatPembelianBaru() FormPembelian
BukaFormPembelian()
-ap- 46
Diagram Kelas:
Metode/Operasi
MencatatPembelianBaru
MencatatKodeMakanan() MencatatJumlahMakanan() MenampilkanJenisMakanan() MasterMakanan
CariKodeMakanan()
PembelianMakanan MencatatPembelianBaru() FormPembelian
BukaFormPembelian()
-ap- 47
Diagram Kelas: Relasi antar kelas
MencatatPembelianBaru
MencatatKodeMakanan() MencatatJumlahMakanan() MenampilkanJenisMakanan() MasterMakanan
CariKodeMakanan()
PembelianMakanan MencatatPembelianBaru() FormPembelian
BukaFormPembelian()