Sequence Diagram, Class Diagram
Mata Kuliah Testing & Implementasi Sistem Program Studi Sistem Informasi 2013/2014 STMIK Dumai -- Materi 07 -This presentation is revised by Hazlinda A., STMIK, 2013
Acknowledgement Main Material:
• *Yud, 2012+ Yudhoatmojo, Satrio Baskoro. “Software & Software Engineering” IKI30202 - Rekayasa Perangkat Lunak Term 1 - 2011/2012. Faculty of Computer Science University of Indonesia. 2012. Print Supplements: • [BCSPW] Blog Catatan Sebuah Perjalanan Wordpress – Unified Modeling Language (UML)
• *MHGB+ “Sequence Diagram” - mahergabayu.blogspot.com • *DRCW+ “Tips Membuat Sequence Diagram” – derienct.wordpress.com • *BKPPB+ “Sequence Diagram” – Bahan Kuliah PPT PDF • [PCCW] pccontror.wordpress.com
Sequence Diagram • Mendefinisikan interaksi yang ada di dalam sistem – Mengilustrasikan objek yang berpartisipasi di dalam use case
• Menggambarkan interaksi mana yang dilakukan saat suatu use case dijalankan
Sequence Diagram • Sequence diagram menggambarkan interaksi antar objek di dalam dan di sekitar sistem (termasuk pengguna, display, dan sebagainya) berupa message yang digambarkan terhadap waktu. • Sequence diagram terdiri atar dimensi vertikal (waktu) dan dimensi horizontal (objek-objek yang terkait). • Masing-masing objek, termasuk aktor, memiliki lifeline vertikal. • Message digambarkan sebagai garis berpanah dari satu objek ke objek lainnya. • Activation bar menunjukkan lamanya eksekusi sebuah proses, biasanya diawali dengan diterimanya sebuah message. Source: [BCSPW]
Sequence Diagram • Sequence diagram adalah visual coding ( perancangan form/layar) • Interaksi object yang tersusun dalam suatu urutan waktu/kejadian • Diagram ini secara khusus berasosiasi dengan use case diagram – Memperlihatkan tahap demi tahap apa yang seharusnya terjadi untuk menghasilkan sesuatu didalam use case
• Sequence diagram memodelkan aliran logika dalam sebuah system dalam cara yang visual • Sequence diagram biasanya dipakai untuk mendeskripsikan sebuah/beberapa use case pada use case diagram, yang menggambarkan hubungan antara actor dan use case Source: [MHGB]
Komponen Sequence Diagram
Partisipan
Pesan/message
Lifeline
Peristiwa eksekusi/ Execution occurrence
Partisipan • Partisipan berinteraksi satu sama lain sepanjang alur sequence diagram. • Partisipan dapat berupa aktor, objek dari class, tabel dari database, atau apapun yang menjadi bagian dari jalannya sistem. • Partisipan yang akan mengirim/menerima alur pesan (message).
Partisipan
Lifeline • Sebuah lifeline menunjukkan kapan aktifnya suatu objek partisipan sepanjang sequence.
Lifeline
Peristiwa Eksekusi • Peristiwa eksekusi berbentuk persegi panjang yang diletakkan di garis lifeline untuk menandakan kapan suatu objek mengirim atau menerima pesan. Peristiwa eksekusi/ Execution occurrence
Pesan (message) • Pesan menyampaikan informasi dari suatu objek ke objek lainnya. • Pesan yang dikirim (send) digambarkan dengan garis panah yang solid • Sedangkan pesan yang diterima (receive/return)digambarkan dengan garis putus-putus.
Pesan/message
Tipe Pesan (message) Object Message Menggambarkan pesan kirim antar objek.
Message to Self Mengambarkan pesan ke objek itu sendiri.
Tipe Pesan (message) – lanj’ Return Message Menggambarkan pesan kembali antar objek.
Tips membuat sequence diagram Buat Flow of event terlebih dahulu ada di UC spesifikasi Dari flow of event, cari kata benda yang nantinya akan menjadi kandidat objek partisipan Aktor terletak di paling kiri sequence diagram Control object, biasanya diletakkan setelah aktor Satu use case satu sequence diagram Satu object bisa digunakan pada lebih dari satu sequence diagram Source: [DRCW]
Belajar membuat sequence
diagram • Misalnya ada seorang pelanggan ingin makan nasi goreng. Maka pelanggan akan menemui waiter. • Waiter mencatat pesanan pelanggan. Karena waiter tidak bisa memasak nasi goreng, maka dia meminta bantuan pada TukangNasiGoreng. • Jika bahan nasi goreng habis, maka TukangNasiGoreng akan meminta TukangBahanBaku, untuk menyediakan bahan baku. • Jika bahan baku habis,maka TukangBahanBaku akan meminta supplier mengirimkan bahan baku. Source: [BKPPB]
Belajar membuat sequence
diagram • Terlihat bahwa suatu pernyataan yang membutuhkan kelas sangat dipentingkan disini. Yang bisa membuat nasi goreng adalah tukang nasi goreng, maka waiter mengirimkan pesan buatNasiGoreng yang arahnya menuju kelas TukangNasiGoreng. • Begitu juga jika bahannya berasal dari kelas lain, maka kelas TukangNasiGoreng mengirimkan pesan ke kelas yang tepat, yaitu kelas TukangBahanBaku. • Jika TukangBahanBaku perlu bahan baku, maka ia akan meminta kelas yang punya metode kirimkan bahan baku untuk bekerja. Source: [BKPPB]
Belajar membuat sequence
diagram • Contoh diatas berasumsi bahwa TukangNasiGoreng, TukangBahanBaku dan Supplier adalah sesuatu yang akan dikoding. Walaupun dalam kenyataanya mereka sebenarnya tidak bisa dikoding, contoh ini hanya untuk memudahkan pemahaman konsep saja. Jika dibuatkan Sequence Diagram-nya, maka akan jadi seperi ini ..
Source: [BKPPB]
Belajar membuat sequence
diagram TukangNasiGoreng
TukangBahanBaku
Supplier
buatNasiGoreng() siapkanBahanNasiGoreng()
Pelanggan
Waiter
kirimBahanBaku()
Source: [BKPPB]
Mulai membuat Sequence Diagram
Kasus: Edit Profile Berikut adalah contoh basic flow dari use case: Edit Profile
Aktor
Sistem
1. Memilih menu edit 2. Menampilkan field untuk mengganti profile 3. Mengganti profile yang diinginkan
4. Mengganti profile dan menyimpan ke dalam database
Sequence Diagram
Cara lain menggambar Partisipan Boundary Mengambarkan interaksi antara satu atau lebih actor dengan sistem, memodelkan bagian darisistem yang bergantung pada pihak lain disekitarnya dan merupakan pembatas sistem dengan dunia luar.
Control Menggambarkan “perilaku mengatur”, mengkoordinasikan perilaku sistem dan dinamika dari suatu sistem, menangani tugas utama dan mengontrol alur kerja suatu sistem
Entity Menggambarkan informasi yang harus disimpan oleh sistem (struktur data dari sebuah sistem)
Source: [MHGB]
Contoh
Source: [MHGB]
Class Diagram
Class Diagram • Class adalah sebuah spesifikasi yang jika diinstansiasi akan menghasilkan sebuah objek dan merupakan inti dari pengembangan dan desain berorientasi objek. • Class menggambarkan keadaan (atribut/properti) suatu sistem, sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut (metode/fungsi). • Class memiliki tiga area pokok : – 1. Nama (dan stereotype) – 2. Atribut – 3. Metode
Class Diagram • Atribut dan metode dapat memiliki salah satu sifat berikut : – Private, tidak dapat dipanggil dari luar class yang bersangkutan – Protected, hanya dapat dipanggil oleh class yang bersangkutan dan anak-anak yang mewarisinya – Public, dapat dipanggil oleh siapa saja Nama Class Atribut
Metode/operasi
Class Diagram • Berfungsi untuk menggambarkan Objek/Class Pada Sistem Contoh : – Object Class Program – Tabel Data Pada Database
Objek - Class Diagram Secara umum ada 4 objek Class Diagram: • Atribut • Operation/Function/Method • Relationship • Note/Keterangan (Optional)
Objek - Class Diagram MAHASISWA
Nama Class
+ NIM:String + NAMA:String + ALAMAT:String + TGLLAHIR:Date
Attribut Class
tambahMhs() updateMhs() hapusMhs()
Behaviour Class
NIM : 2 digit pertama adalah tahun, digit 3 dan 4 adalah angkatan, digit 5 adalah jenjang
Keterangan (tambahan / option)
Icon – Class Diagram MAHASISWA
Nama Class
+ NIM:String + NAMA:String + ALAMAT:String + TGLLAHIR:Date
Attribut Class
Relasi – Class Diagram MAHASISWA + NIM:String + NAMA:String + ALAMAT:String + TGLLAHIR:Date
WILAYAH 1..*
1
+kdPos:String +nmWilayah:String tambahWLY() updateWLY() hapusWLY()
tambahMhs() updateMhs() hapusMhs() selectWLY(kdPos)
INDIKATOR
Indikator Relasi (Multiplicity) Indikator/Gambar
Arti
0..1
Nol atau satu
0..*
Nol atau lebih
0..n
Nol sampai n
1
Keterangan/Contoh
0..3
Satu dan hanya satu
1..*
Satu atau lebih
1..n
Satu sampai n
*
nol atau lebih
N
Hanya n, dimana n lebih dari satu
9
n..*
n atau lebih
7..*
n..m
n sampai m
3..10
1..5
Indikator Relasi Agregasi (Aggregation) Kunci Gabungan (Composite Key) Turunan (Inheritance) Ralasi (Relation)
Dependencies Realizations
Specialisasi/Generalisasi
Indikator Relasi 1. Asosiasi, menggambarkan class yang memiliki atribut berupa class lain, atau class yang harus mengetahui eksistensi class lain. 2. Agregasi, yaitu hubungan yang menyatakan bagian (“terdiri atas..”). 3. Pewarisan, yaitu hubungan hirarkis antar class. Class dapat diturunkan dari class lain dan mewarisi semua atribut dan metode class asalnya dan menambahkan fungsionalitas baru, sehingga ia disebut anak dari class yang diwarisinya. Kebalikan dari pewarisan adalah generalisasi.
Indikator Variabel + # $ / *
Public Protected Private Static Drived Abstrak
Atribut tidak standar Fungsi tidak standar
Mulai Membuat Class Diagram
Contoh – Class Diagram “Setiap nomor rekening harus memiliki 1 dan hanya 1 kartu ATM” REKENING NoRek Nama TglLahir
Alamat
kartuATM
1
NoATM TglBuat 1 TglAktif Password
Contoh – Class Diagram “Setiap nomor rekening dapat memiliki 1 ATM” kartuATM
REKENING
NoRek Nama TglLahir Alamat
1
0.. 1
NoATM TglBuat TglAktif Password
Contoh – Class Diagram “Satu dosen tinggal di satu wilayah, namun satu wilayah bisa saja dihuni oleh banyak dosen”
DOSEN NIM NAMA ALAMAT TGLLAHIR
WILAYAH 1..*
1
KDPOS NMWILAYAH
Contoh – Class Diagram “Satu dosen tidak harus terdata di wilayah, sedangkan wilayah tersebut bisa saja mempunyai banyak dosen”
DOSEN NIM NAMA ALAMAT TGLLAHIR
WILAYAH 0..*
1
KDPOS NMWILAYAH
Contoh – Class Diagram • Many To Many Association 1 (satu) dosen dapat mengajar banyak mata kuliah dan 1 (satu) mata kuliah dapat diajarkan oleh banyak dosen. DOSEN KDDOSEN NAMA ALAMAT TGLLAHIR
MATAKULIAH 1..*
1..*
KDMATKUL NMMATKUL
JADWAL JAMMULAI JAMAKHIR
Class Asosiasi
Contoh – Class Diagram Alternatif dari class asosiasi… DOSEN
MATAKULIAH
KDDOSEN NAMA ALAMAT TGLLAHIR
KDMATKUL NMMATKUL
1 1
JADWAL 1..*
JAMMULAI JAMAKHIR
1..*
Generalisasi – Class Diagram • Dua atau lebih class dapat melakukan berbagi atribut dan method • Dosen, karyawan harian, dan karyawan tetap merupakan pegawai PEGAWAI NIK NAMA ALAMAT TGLLAHIR
DOSEN
KARY_HARIAN
KARY_TETAP
KDDOSEN MULAINGAJAR HONORPERJAM
UPAHHARIAN JMLHARIKERJA
GAJIBULANAN
Agregasi dan Composite – Class Diagram Contoh Agregasi
Contoh Composite
Agregasi dan Composite – Class Diagram • Agregasi merupakan gabungan tetapi tidak mutlak
PELANGGAN NOPLG NAMA TGLDAFTAR
PEL_PLN
PEL_TELKOM
NOPLGPLN NAMAPLGPLN TGLDAFTARPLN
NOPLGTELKOM NAMAPLGTELKOM TGLDFTRTELKOM
Class Diagram Agregasi
Agregasi dan Composite – Class Diagram TAGIHAN
PEMBAYARAN
NOTAGIHAN TGLTAGIHAN
NOEMBAYARAN TGLTAGIHAN
Class Diagram Komposit
• Komposit merupakan hasil gabungan yang tak terpisahkan dari class lainnya
Contoh Class Diagram (Complete)
Kesimpulan
Diagram UML Nama Diagram
Digunakan untuk
Digunakan pada tahapan
Diagram Class
Menggambarkan hubungan antara model class dalam system.
Analysis, Design
Diagram Object
Menggambarkan hubungan antara model object di dalam system.
Analysis, Design
Diagram Aktivitas
Menggambarkan hubungan aliran kerja business terlepas dari classes, aliran aktivitas dalam sebuah use case, atau detail design dari method.
Analysis, Design
Diagram Use Case
Mendapatkan persyaratan/kebutuhan system dan menggambarkan hubungan antara system dengan aktor.
Analysis
Diagram sequence
Memodelkan prilaku objek dalam sebuah use case. Focus pada urutan berdasarkan waktu dari sebuah aktivitas.
Analysis, Design
Hirarki Diagram UML