TEKNIK – TEKNIK ANALISA DESAIN PADA PERANCANGAN PROGRAM MENGGUNAKAN UML PADA PERANCANGAN PROGRAM BERBASISKAN OBJECT
How to Do OOAD
How to Do OOAD OO Prog. Languages (Smalltalk, C++) OO Design (Booch) OO Technology Process Perspective OO Prog. Languages (Smalltalk, C++) just program! OO Design (Booch) design then program Analyze (use case) first, then design, T then program OO Analysis (Rumbaugh, Jacobson)
Review Basic Principles of Object Orientation Abstraksi (Abstraction) Pembungkusan (Encapsulation) Pewarisan (Inheritance) Banyak Bentuk (Polymorphism) Pengiriman Pesan (Message Sending)
Hmmm…
UML Unified Modelling Language Memvisualisasikan dan mendokumentasikan hasil analisa dan desain. Unified karena … Mengkombinasikan metode OO yg sudah ada sebelumnya (Booch by Grady Booch, OMT by Jim Rumbaugh and OOSE by Ivar Jacobson) Modelling karena… Digunakan terutama untuk memodelkan sistem secara visual Language karena … Berisi sintak yang digunakan untuk memodelkan pengetahuan
What UML can do for you Help you to: Memudahkan berpikir dan mendokumentasikan sistem sebelum mengimplemntasikannya “meramalkan” sistem Menurunkan biaya pembangunan Merencanakan dan menganalisa logika sistem(perilaku) Membuat keputusan yang benar sedini mungkin (sebelum melangkah ke coding) Men-deploy sistem lebih baik, karena ada perencanaan penggunaan memori dan prosesor yang efisien. Lebih mudah memodifikasi/mengelola sistem yang terdokumentasi dengan baik. Biaya perawatan yang rendah Membuat suatu bentuk komunikasi yang standar
ARTIFACT UML (BAGAN YANG TERDAPAT PADA UML) Actor A Use Case 1 Use Case 2 Actor B Document FileManager GraphicFile File Repository DocumentList FileList Customer name addr withdraw() fetch() send() receive() <<entity>> Forward Engineering(Code Generation) and Reverse Engineering Executable System User Interface Definition Domain Expert Use Case 3 Source Code edit, compile, debug, link Use-Case Diagram Class Diagram Collaboration Diagram Sequence Diagram Component Diagram State Diagram Package Diagram Deployment Diagram Class
Use-Cases Use case menggambarkan proses system (kebutuhan system dari sudut pandang user) actors mewakili peran orang atau piranti yang dimainkan ketika sistem berfungsi Secara umum use case adalah: Pola perilaku system Urutan transaksi yang berhubungan yang dilakukan oleh satu actor Use case diagram terdiri dari Use case Actors Relationship System boundary boxes (optional) Packages (optional) 11
LAMBANG USE CASE Aktor Usecase Relasi Aktif Catatan Relasi Pasif Generalisasi <<include>> Include <<extend>> extend
USE CASE Use case dibuat berdasar keperluan actor, merupakan “apa” yang dikerjakan system, bukan “bagaimana” system mengerjakannya Use case diberi nama yang menyatakan apa hal yang dicapai dari hasil interaksinya dengan actor. Use case dinotasikan dengan gambar (horizontal ellipse) Use case biasanya menggunakan kata kerja Nama use case boleh terdiri dari beberapa kata dan tidak boleh ada 2 use case yang memiliki nama yang sama. Use case diagram tidak terpengaruh urutan waktu, meskipun demikian supaya mudah dibaca perlu penyusunan use case
USE CASE DIAGRAM
ACTOR Actor menggambarkan orang, system atau external entitas / stakeholder yang menyediakan atau menerima informasi dari system Actor menggambarkan sebuah tugas/peran dan bukannya posisi sebuah jabatan Actor memberi input atau menerima informasi dari system Actor biasanya menggunakan Kata benda Tidak boleh ada komunikasi langsung antar actor Indikasi <<system>> untuk sebuah actor yang merupakan sebuah system Adanya actor bernama “Time” yang mengindikasikan scheduled events (suatu kejadian yang terjadi secara periodik/bulanan)
ACTOR-USE CASE DIAGRAM Letakkan actor utama anda pada pojok kiri atas dari diagram (in western culture people read from left to right, top to bottom) Actor jangan digambarkan ditengah-tengah use cases (actors are placed to the outside of the diagram, and not the middle of it)
Use-Case Diagram
Associations bukan menggambarkan aliran data/informasi Associations digunakan untuk menggambarkan bagaimana actor terlibat dalam use case Ada 4 jenis relasi yang bisa timbul pada use case diagram Association antara actor dan use case Association antara use case Generalization/Inheritance antara use case Generalization/Inheritance antara actors 18
Association antara actor dan use case Ujung panah pada association antara actor dan use case mengindikasikan siapa/apa yang meminta interaksi dan bukannya mengindikasikan aliran data Sebaiknya gunakan Garis tanpa panah untuk association antara actor dan use case association antara actor dan use case yang menggunakan panah terbuka untuk mengindikasikan bila actor berinteraksi secara pasif dengan system anda
Association - Use Case Diagram <<include>> termasuk didalam use case lain (required) / (diharuskan) Pemanggilan use case oleh use case lain contohnya adalah Pemanggilan sebuah fungsi program Gambarkan association <<include>> secara horizontal Tanda panah terbuka harus terarah ke sub use case Tidak boleh actor dihubungkan pada use case <<include>>
Association antara use case (Lanjut) <<extend>> perluasan dari use case lain jika kondisi atau syarat terpenuhi Kurangi penggunaan association Extend ini, terlalu banyak pemakaian association ini membuat diagram sulit dipahami. Tanda panah terbuka harus terarah ke parent/base use case Gambarkan association extend secara vertical Tidak boleh actor dihubungkan pada use case <<extend>> <<extend>>
Generalization/inheritance antara use case Generalization/inheritance digambarkan dengan sebuah garis berpanah tertutup pada salah satu ujungnya yang menunjukkan lebih umum Gambarkan generalization/inheritance antara use case secara vertical dengan inheriting use case dibawah base/parent use case Generalization/inheritance dipakai ketika ada sebuah keadaan yang lain sendiri/perlakuan khusus (single condition)
Generalization/inheritance antara actor Gambarkan generalization/inheritance antara actors secara vertical dengan inheriting actor dibawah base/parent use case
Use case System boundary boxes Digambarkan dengan kotak disekitar use case, untuk menggambarkan jangkauan system anda (scope of of your system). Biasanya digunakan apabila memberikan beberapa alternative system yang dapat dijadikan pilihan System boundary boxes dalam penggunaannya optional
UCD Case Study (1/3) Vending Machine After client interview the following system scenarios were identified: A customer buys a product The supplier restocks the machine The supplier collects money from the machine On the basis of these scenarios, the following three actors can be identified: Customer; Supplier; Collector
UCD Case Study (2/3)
UCD Case Study (3/3) Introducing annotations (notes) and constraints.
CONTOH
Now ask me what I think about tools…..