Model Analisis ©Afijal, M.Kom
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-
2
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-
3
(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-
4
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. -ap5
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-
6
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-
7
Realisasi Use-case CatatPembelian
<
>
<<extend>> RealisasiCatatPembelian <>
<<extend>>
RealisasiCatatPenyesuaian
CatatPembelian CatatPenyesuaian
PetugasKasir (f rom Actors)
-ap-
8
Realisasi Use-case CatatPembelian Pada fase Inception: Berisi diagram kelas analisis versi awal untuk use case utama.
RealisasiCatatPembelian
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. -ap9
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-
10
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. -ap-
11
BoundaryClass
Kelas Analisis: Boundary
(f rom Actors)
<Use Case Name> (from <Use Case Name>)
(f rom Actors)
Boundary Class -ap-
12
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
-ap-
13
ControlClass
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.
-ap-
EntityClass
14
Hubungan Antar Kelas • Generalization • Aggregation
• Association • Composition.
-ap-
15
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-
16
Hubungan Antar Kelas: Generalization
People People
Petugas
Kasir
(f rom Petugas Stand)
(f rom Kasir)
Petugas
Kasir
(f rom Petugas Stand) (f rom Kasir)
-ap-
17
Hubungan Antar Kelas: Association • Asosiasi merupakan relasi antar instances kelas. • Tujuan relasi asosiasi adalah untuk menspesifikasikan relasi secara konspetual, menentukan tanggung jawab dan menspesifikasikan detail implementasi.
• 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. -ap-
18
Hubungan Antar Kelas: Association • Pada ujung asosiasi dapat diberi nama secara eksplisit dengan nama
• 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.
peran, sebagai contoh
Mahasiswa yang menghadiri Perkuliahan disebut Peserta. • Jika peran tidak dispesifikasikan, nama peran identik dengan kelas target pada asosiasi. -ap-
19
Hubungan Antar Kelas: Association Orang
Dosen
Mahasiswa 1 +Peserta
0..*
3..10
0..* 1..*
Perkuliahan
Matakuliah 1
-ap-
20
Hubungan Antar Kelas:
Agregation dan Composition • Aggregation merupakan relasi part-of. Terkadang disebut juga relasi “hasa”, 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-
21
Atribut dan Tanggung Jawab Kelas • Tanggung jawab sebuah kelas terdiri dari dua item pokok yaitu:
• Atribut menggambarkan Struktur Kelas
• Nilai/value atribut yang terdapat pada suatu waktu tertentu disebut dengan status/state dari kelas tersebut
– Mengetahui data yang dikelola kelas tersebut – Melakukan aksi-aksi untuk mengubah state atau untuk memberi layanan kepada kelas lain
• Tanggung Jawab
mengggambarkan kelakukan/behavior dari kelas tersebut yang dapat menyebabkan perubahan state. -ap-
22
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-
23
Diagram Interaksi • Diagram use-case digunakan untuk memvisualisasikan dan mendeskripsikan eksternal view sistem dan eksternal urutan aksi-reaksi antara sistem/usecase 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-
24
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-
25
Diagram Interaksi • Dalam sebuah realisasi use-case, dapat terdiri dari beberapa alternatif aliran (dengan tujuan 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. -ap26
Diagram Interaksi: Elemen
-ap-
27
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-
28
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-
29
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-
30
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-
31
Diagram Interaksi: Tipe • Terdapat dua macam Diagram Interaksi: – Sequence Diagram – Collaboration Diagram
-ap-
32
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-
33
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-
34
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-
35
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-
36
Case Study: CatatPembelian
: PetugasKasir
: FormPembelian
: MencatatPembelianBaru
: MasterMakanan
: PembelianMakanan
BukaFormPembelian( ) MencatatKodeMakanan( ) CariKodeMakanan( ) MenampilkanJenisMakanan( ) MencatatJumlahMakanan( ) MencatatPembelianBaru( )
-ap-
37
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-
38
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-
39
Diagram Interaksi: Diagram Kolaborasi : MasterMakanan
4: MenampilkanJenisMakanan( )
3: CariKodeMakanan( )
: PembelianMakanan
6: MencatatPembelianBaru( ) : MencatatPembelianBaru 2: MencatatKodeMakanan( ) 5: MencatatJumlahMakanan( )
1: BukaFormPembelian( )
: PetugasKasir
: FormPembelian
-ap-
40
Diagram Interaksi: Kapan? • Diagram Kolaborasi: ? Menunjukkan koneksi antar objek
• Diagram Sekuens: ? Menunjukkan urutan/sekuens
-ap-
41
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 -ap- (S?) 42 • KIS(S): Keep it Simple
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-
43
Diagram Kelas: Kelas
-ap-
44
Diagram Kelas: Atribut
-ap-
45
Diagram Kelas: Metode/Operasi
-ap-
46
Diagram Kelas: Relasi antar kelas
-ap-
47