Activity Diagram Oleh: Cosmas Haryawan -- Pengenalan UML – STMIK AKAKOM Special thank’s to : Debenedetti Emanuele
Activity Diagram Teknik untuk menggambarkan logika prosedural, proses bisnis dan aliran kerja Mirip dengan flowchart Activity diagram mendukung proses pararel, flowchart tidak Fill Order Ship Send Invoice Accept Payment Close Make Payment [order accepted] Receive [order reject]
Description of the action behaviour Actions Bagian yang fundamental dari pelaksanaan fungsional dari suatu activity Pelaksanaan suatu action menunjukkan transformasi atau proses dalam model system (creating objects, setting attribute values, linking objects together, invoking user-defined behaviours, etc.) Description of the action behaviour
Pins Actions dapat memiliki inputs and outputs, yang dilewatkan melalui pins Menahan Input ke action sampai action start, dan menahan output dari action sebelum values berpindah ke yang berikutnya Nama Pin tidak ada batasan: Umumnya menggunakan object atau data yang mengalir melalui pin Output pins Input pins Standalone pin notations: the output pin and the input pin have the same name and same type
Activity edges / flow Mengarahkan suatu hubungan (biasanya diantara 2 action) Memiliki sumber dan tujuan, yang dilewati token Beberapa token bisa melewati suatu edge, bisa berupa kelompok atau individual Weight: menentukan minimim jumlah token yang melalui edge pada waktu yang sama In this example we use a non-constant weight: an invoice for a particular job can only be sent when all of its tasks have been completed
Notation without activity nodes Activity edges / flow ... 2 jenis edges: Control flow edge - edge yang memulai activity setelah menyelesaikan activity sebelumnya dengan mengirimkan control token Object flow edge – Model flow of values dari atau ke object nodes dengan mengirimkan object atau data tokens Notation without activity nodes Notation without activity nodes
This action invokes the activity Fill Order Sub Activity Action dapat dipecah ke dalam sub activity Digunakan parameters Untuk menerima dan memberikan data bagi yang meminta Parameter name Output parameter Activity nodes Activity edges Input parameter Action dapat menggunakan activity menjelaskan isi action dengan lebih baik dengan menambahkan simbol rake (penggaruk) This action invokes the activity Fill Order
Activity nodes 3 type dari activity nodes: Action nodes: (slide no 3) Control nodes: pengendali flows dalam activity diagram antar node Object nodes: menunjukkan instance dari particular object, bisa berupa particular point dalam activity (misal: Pins adalah object nodes)
Control nodes – initial nodes Mengawali / Starting Point Pada activity flow Jika terdapat lebih dari 1 initial node maka token pengendali diletakkan di tiap initial node saat activity start (initiating multiple flow) Tidak diperbolehkan lebih dari 1 outgoing edges dari 1 initial node karena hanya akan 1 edge yang akan dilaksanakan A or B ?
Control nodes – decision nodes Memilih aliran ke salah satu dari outgoing edges (token tidak diduplikasi) Penjelas dituliskan note di decision node menggunakan kalimat <<decision input>> Penjelas bisa dituliskan di outgoing edge dengan bentuk [ kondisi ] Bisa juga menggunakan kata penjelas [else] yang berarti token tidak sesuai dengan kondisi edge yang lain
Control nodes – merge nodes Menggabungkan 2 atau lebih node Semua controls dan data yang tiba di merge node akan langsung dilewatkan ke outgoing edge Tidak ada synchronization dari aliran atau joining tokens
Control nodes – fork nodes Fork nodes memisahkan aliran / flow ke dalam multiple concurrent flows (tokens diduplikasi)
Control nodes – join nodes Kebalikan dari fork nodes Join nodes synchronize multiple flows Secara umum, control atau data harus ada untuk setiap edge yang masuk ke join node agar dapat dilewatkan ke outgoing node, tetapi user dapat memberikan spesifikasi suatu kondisi yang berbeda antara data yang diterima dan yang digunakan sebagai join spesification
Control nodes – final nodes Flow final: Melakukan destroys pada tokens yang tiba di flow final Activity terminated ketika semua tokens destroyed Final node: Activity terminated ketika token pertama tiba di final node intentional race between flows
Object nodes Menahan data sementara sambil menunggu suatu perpindahan Menspesifikasikan type of values yang bisa ditahan (jika tidak ada type yang dispecifikasikan, berarti bisa menahan semua tipe) Terdapat 4 macam object nodes: Central Buffer Nodes Data Store Nodes Activity Parameter Nodes Pins (three differents notations)
Activity edges – presentation options Suatu edge yang dinotasikan menggunakan connector Setiap connector dengan label tertentu harus dipasangkan dengan tepat pada yang lain dengan label yang sama pada activity diagram yang sama is equivalent to Untuk mengurangi kekacauan dalam complex diagrams, object nodes bisa dikurangi is equivalent to
Activity edges - transformation Biasa digunakan untuk memperjelas jika terdapat perbedaan Pin dalam koneksi 2 action <<transformation>> transformation specification In this example, the transformation gets the value of the attribute Customer of the Order object
ActivityPartition Partitions membagi nodes dan edges untuk mengidentifikasi action yang memiliki karakteristik yang umum Memudahkan untuk mengetahui siapa yang melakukan apa Partitions bisa berbentuk hierarchical dan multidimensional Tambahan notationdiberikan : letakkan partition name di dalam kurung di atas activity name
Contoh ActivityPartition / Swimlane Partition notated to occur outside the primary concern of the model
Pre & post condition Ditujukan ke activity atau action (local condition)
Contoh Pre & post condition
SendSignalAction Membuat signal dari inputs, dan dikirimkan ke target object Signal bersifat asynchronous stimulus yang melakukan triggers dan mengakibatkan reaksi di receiver tanpa membutuhkan reply
AcceptEventAction Accept event action – accepts signal Menunggu suatu kejadian hingga mencapai kondisi tertentu 2 jenis AcceptEventAction: Accept event action – accepts signal events generated by a SendSignalAction Wait time action – accepts time events Accept event action Wait time action The objects stored in Personnel are only retrieved when the join succeeds (only once a year)
ExpansionRegion Suatu region dari suatu activity yang inputnya berupa kumpulan nilai Expansion region mengeksekusi satu demi satu element (atau position) dalam kumpulan input Untuk setiap eksekusi, output value dari region dimasukan ke dalam kumpulan output di posisi yang sama dari input element
InterruptibleActivityRegion Activity group (kumpulan nodes dan edges) yang menghentikan tokens yang mengalir ke dalamnya Ketika token meninggalkan interruptible region melalui interrupting edges, semua tokens dan behaviours dalam region terminated / berhenti Token transfer bersifat atomic: token transition tidak pernah partial (Komplit atau tidak sama sekali) Interrupting edge
Exit to Genova tollgate Go to the station with a friend Example – go to Genova Go to Heaven/Hell ;) «local precondition» Have a license Car crash Fill up with fuel To motorway tollgate Catch the ticket Turn on the car [else] [on car] [the tank is full] Go home with the car Pay the ticket Exit to Genova tollgate Get luggage ready [on train] Go to the station with a friend Buy the ticket Obliterate the ticket Catch the train Go to Heaven/ Hell ;) The train derail The friend goes home When the train arrives to Genova Go home with bus Get off the train Study for 5 minutes [else] [Genova is a long way]
Selesai