UML Notation, Dynamic Concept Map, dan Sequence Diagram
UML Notation - Pegawai = Class - : Pegawai = Instance - IPutuJawa : Pegawai = Instance yang sudah ada namanya - Dalam interaction diagram (Collaboration Diagram, Sequence Diagram), nama CLASS selalu didahului oleh tanda titik dua (:) - Sebuah LINK adalah koneksi antara dua instances (LINK adalah instance dari ASSOCIATION) - Pesan antara dua objek direpresentasikan dengan tanda panah berlabel. Kemungkinan ada lebih dari dua pesan yang mengalir pada garis ini. Nomor urut ditambahkan untuk memperlihatkan urutan dari pesan
UML Notation - UML mempunyai syntax standar untuk pesan return:=message(parameter:parameterType):returnType - Parameter dari suatu pesan diperlihatkan dalam kaitannya dengan pesan setelah nama dari pesan (Contoh: 1:addProjek(noProjek, namaProjek) - Sebuah nilai RETURN diperlihatkan mendahului pesan dengan nama RETURN dan operator “:=” (Contoh: 1:currProjek:=findProjek(noProjek, namaProjek):Projek - Sebuah pesan dapat dikirim dari suatu objek ke dirinya sendiri
UML Notation ITERASI - Iterasi diindikasikan dengan menambahkan nomor urut dengan tanda “*” 1*:currProjek:=nextProjek():Projek - Untuk mengekspresikan lebih dari satu pesan yang dikirimkan dalam satu iterasi yang sama, seperti dalam loop for yang mempunyai sekumpulan perintah, menggunakan: i*[i:=1..10] currProjek:=nextProjek():Projek PEMBUATAN INSTANCE - Pesan CREATE dapat berisikan pesan parameter 1:create(Projek)
UML Notation URUTAN NOMOR PESAN - Nomor pertama tidak diisikan. - Pesan yang menjadi bagian dari pesan yang lain (nested) mempunyai nomor urut: pesan(1), 1: pesan(2), 1.1: pesan(3), 2: pesan(4), 2.1: pesan(5) PESAN TERKONDISI - Pesan terkondisi diperlihatkan dengan nomor urut dengan pernyataan kondisi dalam kurung kotak 1: [new Produk] addProduk(noProduk, namaProduk) Pesan ini terkirim hanya bila pernyataan kondisi bernilai benar
SEQUENCE DIAGRAM - Sequence diagram memperlihatkan objek dan actor yang ambil bagian dalam kolaborasi di bagian atas dari garis putus-putus - Garis putus-putus merepresentasikan waktu sebagai yang dilihat oleh objek – merupakan lifeline dari objek - Waktu bergerak ke bawah - Sebuah pesan dikirimkan sebagai sebuah tanda panah dari lifeline objek pengirim ke lifeline objek penerima - Kalau dua objek bertukar pesan, pasti ada asosiasi di antara class mereka
DYNAMIC CONCEPT MAP Baca keseluruhan EXPANDED USE CASE dan identifikasikan key responsibilities khususnya dalam hal: - Objek yang dibentuk/dihapus - Objek yang ditemukan - Attribute yang diubah - Association yang dibentuk atau dihapuskan Use Case
Input Pengalokasian Projek
Goal in Context
Mengijinkan Admin untuk mengalokasikan suatu projek pada seorang pegawai yang bekerja paruh waktu
Primary Actor Secondary Actor
Admin Tidak ada
DYNAMIC CONCEPT MAP Typical Course of Events Actor Action
System Response
1. Use case ini dimulai saat Admin bermaksud menginputkan pengalokasian projek pada pegawai paruh waktu. 2. Admin meminta sistem melakukan pengecekan terhadap data pegawai paruh waktu (id, nama pegawai, upah per jam) & data projek (id, nama projek).
3. Sistem melakukan pengecekan terhadap data pegawai paruh waktu dan data projek.
4. Admin menginputkan data pengalokasian 5. Sistem menyimpan data pengalokasian projek (deadline) projek dan memberikan id pengalokasian secara otomatis.
DYNAMIC CONCEPT MAP Alternative Courses Line 2a: Apabila data pegawai paruh waktu belum tersedia, maka Admin melakukan entry data pegawai paruh waktu (id pegawai, nama pegawai, upah per jam). Line 2b: Apabila data projek belum tersedia, maka Admin melakukan entry data projek (id projek, nama projek).
Key responsibilities yang ditemukan mencakup: - Membuat (create) new Pegawai Paruh Waktu - Membuat (create) new Projek - Membuat (create) new Alokasi Projek
DYNAMIC CONCEPT MAP - Pesan hanya bisa dikirim dan diterima oleh objek - Hapus semua konsep yang dipetakan sebagai attribute. Ini untuk mengurangi noise dalam CONCEPT MAP Perusahaan mengelola data Pegawai is-a-type-of Pegawai Paruh Waktu
DYNAMIC CONCEPT MAP - Masukkan konsep ACTOR untuk merepresentasikan actor utama dalam EXPANDED USE CASE - Concept ini bertanggung jawab untuk mengirimkan pesan pertama kepada concept representasi keseluruhan sistem Perusahaan mengelola data Pegawai is-a-type-of Pegawai Paruh Waktu
Actor
DYNAMIC CONCEPT MAP - Setiap responsibilities yang ditambahkan ke DYNAMIC CONCEPT MAP harus mempunyai concept pengirim dan penerima - Ubah pernyataan responsibilities menjadi pesan - Pada tahap sekarang ini, tidak terlalu diperlukan untuk memasukkan input parameter. Perusahaan berisikan mengelola data
PegawaiPerusahaan MultiObjek
Pegawai is-a-type-of Pegawai Paruh Waktu
Actor
DYNAMIC CONCEPT MAP Fungsi dalam CONCEPT MAP harus dimulai dengan KATA KERJA. Beberapa contohnya termasuk: create (membuat objek), find (menemukan objek), link (untuk memberikan link pada objek yang lain), calc (untuk menghitung nilai), add (untuk menambahkan objek pada MULTIOBJEK/CONTAINER/VECTOR/ARRAYLIST), delete (untuk menghapus objek). Catatan: Tambahkan responsibilities dari USE CASE ke DYNAMIC CONCEPT MAP. Bentuk DYNAMIC CONCEPT MAP untuk setiap ALTERNATIVE COURSE DESCRIPTION
DYNAMIC CONCEPT MAP - Setiap responsibility yang ditambahkan pada DYNAMIC CONCEPT MAP harus mempunyai CONCEPT pengirim dan penerima - Ubah responsibilities menjadi pesan - Pada tahap sekarang ini, tidak begitu penting untuk menambahkan parameter 1. addPegawaiParuhWaktu
3. addNewPegawaiParuhWaktu
Perusahaan
Actor
berisikan mengelola data
PegawaiPerusahaan MultiObjek
Pegawai is-a-type-of Pegawai Paruh Waktu
2. createNewPegawaiParuhWaktu
ATURAN KONVERSI Aturan konversi CONCEPT MAP menjadi SEQUENCE DIAGRAM: Aturan 1: Petakan CONCEPT menjadi OBJEK Aturan 2: Petakan CONCEPT ACTOR menjadi OBJEK ACTOR Aturan 3: Petakan FUNGSI menjadi PESAN Aturan 4: Petakan FUNGSI-FUNGSI UMUM a. FUNGSI CREATE, sesuai keperluan b. FUNGSI FIND, sesuai keperluan c. FUNGSI DELEGASI, apabila ada suatu keadaan dimana kegiatan tidak dilakukan oleh CONCEPT MAIN SYSTEM Aturan 5: Tambahkan parameter pada masing-masing FUNGSI
Aturan 1 Petakan CONCEPT menjadi OBJEK 1. addPegawaiParuhWaktu
3. addNewPegawaiParuhWaktu
Perusahaan
Actor
: Admin
: Perusahaan
IPutuJawa : PegawaiParuhWaktu
PegawaiPerusahaan : Pegawai
berisikan mengelola data
PegawaiPerusahaan MultiObjek
Pegawai
2. createNewPegawaiParuhWaktu
is-a-type-of Pegawai Paruh Waktu
Sebuah instance dari Class Perusahaan
IPutuJawa adalah sebuah instance dengan nama dari Class Pegawai Paruh Waktu
PegawaiPerusahaan merupakan instance dengan nama dari Collection Pegawai yang berisikan instance Pegawai
Aturan 2 Petakan CONCEPT ACTOR menjadi OBJEK ACTOR 1. addPegawaiParuhWaktu
3. addNewPegawaiParuhW aktu
Perusahaan
Actor
berisikan mengelola data
PegawaiPerusahaan MultiObjek
Pegawai
2. createNewPegawaiParuhW aktu
is-a-type-of Pegawai Paruh Waktu
: Admin
: Perusahaan
IPutuJawa : PegawaiParuhWaktu
PegawaiPerusahaan : Pegawai
Aturan 3
1. addPegawaiParuhWaktu
Perusahaan
3. addNewPegawaiParuhWaktu
Petakan FUNGSI menjadi PESAN
Actor
berisikan mengelola data
PegawaiPerusahaan MultiObjek
Pegawai
2. createNewPegawaiParuhWaktu
is-a-type-of Pegawai Paruh Waktu
: Admin
: Perusahaan
IPutuJawa : PegawaiParuhWaktu
PegawaiPerusahaan : Pegawai
1 : addPegawaiParuhWaktu() 2 : createNewPegawaiParuhWaktu() 3 : addNewPegawaiParuhWaktu()
Aturan 4
1. addPegawaiParuhWaktu
Petakan FUNGSI CREATE, sesuai keperluan. Untuk FUNGSI FIND dan FUNGSI DELEGASI dijelaskan dalam STUDY KASUS : Admin
: Perusahaan
Perusahaan
3. addNewPegawaiParuhWaktu
Actor
berisikan mengelola data
PegawaiPerusahaan MultiObjek
Pegawai
2. createNewPegawaiParuhWaktu
is-a-type-of Pegawai Paruh Waktu
IPutuJawa : PegawaiParuhWaktu
PegawaiPerusahaan : Pegawai
1 : addPegawaiParuhWaktu() 2 : createNewPegawaiParuhWaktu() 3 : addNewPegawaiParuhWaktu()
Aturan 5 Tambahkan parameter pada masing-masing FUNGSI
: Admin
: Perusahaan
IPutuJawa : PegawaiParuhWaktu
PegawaiPerusahaan : Pegawai
1 : addPegawaiParuhWaktu(noPegawai, namaPegawai, upahPerJam)()
2 : createNewPegawaiParuhWaktu(noPegawai, namaPegawai, upahPerJam)()
3 : addNewPegawaiParuhWaktu(noPegawai, namaPegawai, upahPerJam)()
Any Questions?
CASE STUDY
Buatlah Sequence Diagram untuk kedua DYNAMIC CONCEPT MAP berikut ini
DYNAMIC CONCEPT MAP Untuk Penambahan Projek 1. addProjek
3. addNewProjek
Perusahaan
berisikan mengelola data
ProjekPerusahaan MultiObjek
Projek
Actor 2. createNewProjek
DYNAMIC CONCEPT MAP Untuk Penambahan Alokasi Projek 5. addNewAlokasiProjek
AlokasiProjekPerusahaan MultiObjek
berisikan
1. addAlokasiProjek
Perusahaan
Actor
2. findPegawaiParuhWaktu berisikan
PegawaiPerusahaan MultiObjek
mengelola data
Pegawai
3. findProjek
mengelola data mengelola data
ProjekPerusahaan MultiObjek
4. createNewAlokasiProjek
is-a-type-of Pegawai Paruh Waktu
berisikan
ditugasi
Alokasi Projek
dialokasikan
Projek