Matakuliah : M0126 - Analisis dan Perancangan Sistem Informasi Lanjut Tahun : 2009 - 2010 Sequence Diagram AND Communication Diagram Pertemuan 0102 Learning Outcomes Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : • Mahasiswa dapat membuat diagram / skema sequence diagram (C4) • Mahasiswa dapat membuat diagram / skema communication diagram (C4) Outline Materi • • • • • Konsep dasar dan Notasi Time Constrains Branching and Recursion Dialoque Management (Interface Classes) Modelling real-time systems and concurrency What is Sequence Diagram? • Sequence Diagram is a dynamic model of a use case, showing the interaction among classes during a specified time period. • Sequence Diagram is used primarily to show the interactions between objects in the sequential order that those interactions occur. • Illustrates how objects interacts with each other. • Emphasizes time ordering of messages. • Can model simple sequential flow, branching, iteration, recursion and concurrency. What is Sequence .. (Cont’s) • Illustrates how objects interacts with each other. • Emphasizes time ordering of messages. • Can model simple sequential flow, branching, iteration, recursion and concurrency. Elements of Sequence Diagram Notasi Object Nama Object Object Lifeline Activation Elements of (Con’t…….) Notasi Actor Actor Name Actor (Initiator) Actor Lifeline Actor Activation Elements of (Con’t…….) Notasi Bentuk Panah • filled solid arrowhead – Procedure call or other nested flow of control. The entire nested sequence is completed before the outer level sequence resumes. – The arrowhead may be used to denote • ordinary procedure calls, but it may also be used to denote • Concurrently active instances when one of them sends a Signal and waits for a nested sequence of behavior to complete before it continues. • stick arrowhead – Message ; that is, no nesting of control. The sender dispatches the Stimulus and immediately continues with the next step in the execution. • dashed arrow with stick arrowhead – Return from procedure call. Elements of (Con’t…….) X-Axis (objects) Actor Synchronous message :A :B Procedure Call Y-Axis (time) Asynchronous message Return Synchronous message : the caller has to wait for the receiving object to complete execution of the called operation before it can resume execution. Asynchronous message : The caller can execute immediately after sending the message, it does not has to wait for the recipient to handle the message Control information • Condition – syntax: ‘[‘ expression ’]’ message-label – The message is sent only if the condition is true – example: • Iteration – syntax: * [ ‘[‘ expression ‘]’ ] message-label – The message is sent many times to possibly multiple receiver objects. :CompoundShape draw() *draw() :Shape Recursion in SD :A Recursive Object Creation • An object may create another object via a <<create>> message :A <<create>> :B Object Contruction (Object Creation) Object Destruction (Object Deletion) Branching • A branch is shown by multiple arrows leaving a single point, each possibly labeled by a condition. • Depending on whether the conditions are mutually exclusive, the construct may represent – conditionality or – concurrency. :B :A [Gaji >= PKP] Hitung Pajak() [Gaji < PKP] Hitung Gaji Bersih() :C Contoh Berdasarkan Use Case Diagram ini kita akan membuat Sequence Diagram dan hasilnya adalah sebagai berikut Contoh Pembuatan PO Dari Sequence Diagram ini dapat Dilihat bentuk dari Class Diagramnya Object • Object dalam Sequence Diagram digambar dengan segiempat yang berisi nama Object yang diberi garis bawah. – syntax: [Obiect Name][:className] – Object dapat diberi nama berdasarkan : • Nama Object saja • Nama Class Saja OOAD :Matakuliah • Gabungan Nama Class dan Nama Object OOAD:Matakuliah Back Lifeline • Tiap obyek juga mempunyai Lifeline (Biasa disebut juga dengan Timeline / Garis Waktu) yang direpresentasikan dengan garis putus-putus dibawah obyek • Lifeline menggambarkan waktu selama Obyek yang diatas bisa berhubungan dengan obyek lain didalam use case. Back Activation • Activation digambarkan dengan bentuk empat persegi panjang sempit yang menutupi Lifeline. • Activation menunjukkan kapan sebuah object mengirim atau menerima message. Back Messages • An interaction between two objects is performed as a message sent from one object to another (simple operation call, Signaling, RPC) • If object obj1 sends a message to another object obj2 some link must exist between those two objects (dependency, same objects) • A message is represented by an arrow between the life lines of two objects. – Self calls are also allowed – The time required by the receiver object to process the message is denoted by an activation-box. • A message is labeled at minimum with the message name. – Arguments and control information (conditions, iteration) may be included. SEQUENCE DIAGRAM Sequence diagram for the use case Add a New Advert to a Campain Sequence Diagram for the Use Case Add a New Advert to a Campaign 1. 2. 3. 4. Didalam contoh diatas digambarkan sequence diagram untuk sequence Penambahan Advertising ke Campaign dengan langkah-langkah sebagai berikut: GetName / Pengambilan Nama dari Class Client Kemudian mengambil Detail Campaign (getCamplaignDetiails) dari Class Campaign dari listCampaign yang dibuat dalam Interation/pengulangan yang ditandai dengan kotak dengan tulisan LOOP Kemudian mengambil DetailAdverts (getAdvertDetiails) dari Class Campaign dari listAdverts yang dibuat dalam Interation/pengulangan yang ditandai dengan kotak dengan tulisan LOOP Kemudian dilanjutkan dengan AddNewAdvert ke class campaign dan dilanjutkan dengan penciptaan Object newAd:Advert dengan garis putus-putus Advert ( Konstraktor) Contoh Constractor dengan Argumen • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • //* Contoh Konstuktor Dengan Argumen*/ #include <iostream.h> #include <conio.h> #include <string.h> class Buku { private: char judul[35]; char pengarang[25]; int jumlah; public: Buku(char *judul,char *pengarang, int jumlah); // Konstruktor void info(); }; void main() { Buku novel("Siaga Merah","McLean",3); novel.info(); } // Definisi fungsi anggota Buku::Buku(char *judul,char *pengarang, int jumlah) { strcpy(Buku::judul,judul); strcpy(Buku::pengarang,pengarang); Buku::jumlah=jumlah; } void Buku::info() { cout << "\nJudul =" << judul << endl; cout << "\nPengarang =" << pengarang << endl; cout << "\nJumlah =" << jumlah << endl; cout << endl; } • Pengisian data anggota adalah dengan menggunakan inisialisasi seperti dibawah ini: • • Step 1: Buku novel; Step 2: Novel.inisialisasi ("Siaga Merah","McLean",3); • • Dengan menggunakan Konstruktor, maka dua statement diatas disederhanakan dmenjadi sebuah statement seperti: Buku novel("Siaga Merah","McLean",3); Contoh 2 Sequence dengan Control Objects Contoh 2 Sequence Diagram for the Use Case Add a New Advert to a Campaign Didalam contoh diatas digambarkan sequence diagram untuk sequence Penambahan Advertising ke Campaign dengan langkahlangkah sebagai berikut: 1. Didalam contoh ke 2 ini kita menggunakan Class baru Yaitu AddAdvertUI atau User Interface untuk AddAdvert 2. Kemudian mengambil Client (getClient) dari Class Client untuk mendapatkan data seluruh Client ( getClient) dari Class Client yang dibuat dalam Interation/pengulangan yang ditandai dengan kotak dengan tulisan LOOP 3. Kemudian Control Object Dibuat yaitu :AddAdvertUI yang ditandai dengan StartInterface 3.1 Baru di dalam :AddAdvertUI dilakukan selectClient 3.2 Kemudian diikuti dengan ShowClientCampaign yang kemudian dilanjutkan dengan getCampaignDetail didalam List Campaign dalam Loop untuk mendapatkan Campaign detail dari class Campaign dan hal ini di ulang untuk Mengambil Advert Detail dan terakhir dengan Create New Advert mengcreate newAd:Advert Check Campaign Budget 1 2 3 Check Campaign Budget Sequence 1. Didalam Gambar 9.8 terdapat garis lifetime yang penuh yang menandakan adanya waktu terjadinya eksekusi proses didalam object tersebut 2. Di dalam gambar juga terdapat garis panah yang putusputus yang menandakan adanya return dari proses tersebut 3. Di dalam gambar didalam mengambil Overhead terjadi pengulangan dan returnnya pun terjadi pengulangan Sequence with 1.* Min Interation1, * Max interation Branching Branching • Dari gambar diatas terdapat keyword alt yang berarti alternatives , dari contoh diatas maka terdapat logika pertama mengambil campaign budget atau get campaign budget didalam frame ref kemudian akan dicek kondisinya jika total cost < = budget baru bisa add newAd:Advert Communication Diagram What is Communication Diagram? • Communication diagram have many similarities to sequence diagram. • The most significant different between the two types of interaction diagram is the communication diagram explicitly shows the links between the lifelines that participate in a collaboration. Unlike sequence diagram there is no explicit time dimension and lifelines are represented only by rectangles Communication Diagram Communication Diagram 1 2 3 3.1 3.1.1 3.1.1.1 4 4.1 4.1.1 4.1.1.1 5 5.1 5.1.1 5.1.1.1 Cara Membuat Communication Diagram • Ambil dari Sequence diagram gambar 9.5 • Kemudian urutkan setiap event dengan diberi no • Kemudian hubungkan antar class dan tuliskan setiap hubungan yang sudah diberikan no