Diagram Interaksi RPL Teknik Berorientasi Objek SE 3414
Diagram Interaksi RPL : Teknik Berorientasi Objek SE 3414
Interaksi : Dasar • Interaksi antar objek terdiri dari sekumpulan message yang dipertukarkan antara sekumpulan objek untuk mencapai sebuah maksud tertentu • Realisasi dari use case • Representasi statik dari objek-objek yang bekerja sama untuk melakukan sebuah aksi • Ditujukan dengan adanya message antar objek – Dasar dari sebuah operasi – Konstruksi atau destruktor objek • Memodelkan aliran kontrol dari sebuah operasi – Mengidentifikasi bagaimana message dikirimkan – Fokus pada relasi struktural antara objek-objek yang terlibat pada interaksi • Interaksi yang baik – Efisien, sederhana, mudah beradaptasi, mudah dimengerti
Interaksi : Link • Hubungan semantik antar objek. • Instans dari asosiasi atau dependensi. • Menyediakan aliran pesan (messages). • Diagram Kelas Person + set. Compensation( s : Salary ) + assign( d : Department ) … 1. . * employee * employer Company
Link • Object diagram dan Interaksi anonymous object message assign( development ) p : Person named object : Company link
Interaksi : Modeling Actions • • • Call* — memanggil sebuah operasi pada suatu objek. Return — mengembalikan nilai kepada objek pemanggil. Send* — mengirim sinyal ke suatu objek. *Pada dasarnya sama, Create — membuat/menciptakan objek. namun mengirim notifikasi Destroy — “membunuh”/menghancurkan objek. atau aliran kontrol antar objek object c : Client create actual parameter return destroy p : Planning. Agent <<create>> : Ticket. Agent set. Itenerary( i ) route calculate. Route() return value call on self <<destroy>> notify() X send
Interaksi : Urutan Message • Message terurut berdasarkan sekuens waktu. – Digambarkan dengan nomor sekuens yang diikuti dengan titik dua • Procedural Sequencing message sequence number 2 : click. At( p ) : View c : Controller 2. 2 : put. Recent. Pick( l ) 2. 1 : l = find. At( p ) • Flat Sequencing message sequence number 1 : lift. Handset() c : Caller flat flow of control : Cache nested of control sequence number 2 : assert. Call() : Telephone : Exchange
Diagram Sekuens • Diagram sekuens adalah diagram yang menunjukkan interaksi antar objek pada sebuah sekuen waktu tertentu • Yang membedakan dengan diagram kolaborasi – Terdapat garis hidup objek, menunjukkan keberadaan objek pada suatu selang waktu tertentu – Terdapat focus control , menunjukkan periode waktu dimana sebuah objek melakukan aksi baik langsung atau melalui prosedur
Diagram Sekuens : How to Draw
Diagram Sekuens : How to Draw • Use Case Sederhana – Order Entry Window mengirim pesan “prepare” kepada Order – Order mengirim pesan “prepare” kepada setiap Order Line pada Order – Setiap Order Line memeriksa stock item • Jika pemeriksaan mengembalikan hasil ‘true’, Order line mengganti menghapus jumlah Stock Item dan mambuat delivery item • Jika tidak memenuhi, maka Stock Item melakukan order ulang
Diagram Sekuens : How to Draw • Objek dan message didapat dari class diagram. • Lifeline menggambarkan kehidupan objek selama interaksi. • Message digambarkan dengan garis panah antar lifeline, dicantumkan nama message • Untuk mengirim message antar objek, harus ada pula asosiasi antar kelas pada class diagram. • Sequence dari kemunculan message digambarkan dari atas ke bawah. • Tanda iterasi menandakan bahwa message dikirim berkali-kali ke banyak receiver.
Diagram Sekuens : Condition, Self. Delegation • Conditions melaporkan apakah pesan terkirim atau tidak. • Self-delegation digunakan saat suatu objek mengirim pesan pada dirinya sendiri.
Diagram Sekuens : Creation, Return • Creation terjadi saat objek baru muncul sebelum starting level. • Returns menandakan pengembalian kontrol setelah sebuah pesan, bukan pesan baru.
Diagram Sekuen : Pemecahan : Student registration form registration manager 1: fill in info 2: submit 3: add course(Sue, math 01) 4: are you open? 6: add (Sue)
Diagram Sekuen : Pemecahan math 101 section 1 4: are you open? 5: are you open? 6: add (Sue) 7: add (Sue)
Diagram Sekuen : Example
Diagram Sekuen : Proses Konkuren • UML menawarkan elemen-elemen diagram yang dapat menggambarkan proses konkuren secara eksplisit pada diagram sekuens dan kolaborasi. • Activation: – Menandakan waktu aktif method, – Menunjukkan method yang menunggu pengembalian (return). • Asynchronous message: – Memperbolehkan penciptaan thread atau objek baru – Berkomunikasi dengan thread atau objek yang sudah ada. • Deletion: – Disebabkan oleh self destruction dari thread atau objek, – Dapat dilakukan oleh external message.
Diagram Sekuen : Proses Konkuren Contoh: • Suatu transaksi bank mentransfer $100 dari rekening #123 ke #456. – Mengambil $100 dari rekening #123. – Menyimpan $100 ke rekening #456. • Pengambilan dan penyimpanan mungkin dilakukan secara paralel (konkuren). • Transaksi hanya berhasil jika kedua subtransaksi (pengambilan dan penyimpanan) berhasil. • Maka dari itu transaction coordinator memeriksa keberhasilan dari subtransaksi yang konkuren tadi. – Setiap kali suatu subtransaksi berakhir sukses, diperiksa apakah subtransaksi yang lain berhasil. Pada kasus ini, harus ada laporan bahwa subtransaksi berhasil. – Jika ada subtransaksi yang gagal, maka semua subtransaksi lain harus dibatalkan dan ada laporan pembatalan transaksi.
Diagram Sekuen : Proses Konkuren • • • Aktivasi merupakan suatu method yang mengekesekusi atau menunggu pengembalian (active method). Aktivasi juga berguan dalam menggambarkan self-delegation. Sebuah asynchronous message adalah suatu pesan yang tidak menghalangi pemanggilnya melakukan proses contoh: i. e. , caller dan receiver dieksekusi berbarengan.
Diagram Sekuen : Proses Konkuren • Beberapa detil mungkin muncul. Ingat bahwa diagram sekuens hanya skenario dan bukan deskripsi lengkap dari behavior. • Objek dapat dihapus secara eksplisit oleh objek lain atau oleh dirinya sendiri (self-destruction).
Diagram Sekuen : Proses Konkuren; A Successful Bank Transaction
Diagram Sekuen : Proses Konkuren; A Failing Bank Transaction
Diagram Kolaborasi • Diagram kolaborasi adalah sebuah diagram yang menunjukkan interaksi antar objek yang memiliki relasi (link) • Memiliki tujuan yang sama dengan diagram sekuen, tetapi menekankan pada organisasi dari objek-objek yang berinteraksi • Yang membedakan dengan diagram sekuen : – Terdapat link antar objek – Terdapat sekuen number
Diagram Kolaborasi : How To Draw
Diagram Kolaborasi
Diagram Kolaborasi 1: set course info 2: process course form : Course. Form 3: add course : Registrar the. Manager : Curriculum. Manager a. Course : Course 4: new course
Diagram Kolaborasi
When to Use Interaction Diagrams Menggunakan Diagram Interaksi • Ketika mengetahui user requirements: – Identifikasi behavior beberapa objek dalam satu use case. – Gambarkan kolaborasi antar objek. • Setelah identifikasi behavior objek selesai dengan diagram state dan aktivitas: – Periksa diagram state dan aktivitas, bandingkan dengan skenario. Jangan Menggunakan Diagram Interaksi • Untuk definisi persis dari sebuah kelas (gunakan diagram state). • JIka ingin menggambarkan behavior antar banyak use case atau thread (guankan diagram aktivitas).
- Slides: 27