Analisa dan Desain Berorientasi Objek ANALISIS BERORIENTASI OBJEK Defri Kurniawan M.Kom
Content Analisis Berorintasi Objek Analysis Design Paradigm and Diagrams UML What UML? Why Modeling? The Triangle of Success in Software Dev UML Tools, Diagram, Version, Structure Diagram, Behavior Diagram, Problem, Process System Analysis and Design with UML Use Case Diagram Activity Diagram Sequence Diagram Case Study: ATM System
Analisis Berorientasi Objek Analisis Berorientasi Objek Berfokus pada pendefinisian kelas-kelas dan cara bagaimana mereka saling bekerjasama satu dengan yang lainnya untuk memenuhi kebutuhan para pelanggan. Pada Paradigma Analysis Design dan Diagram, Unified Modeling Language (UML) merupakan perkakas (tools) yang digunakan untuk melakukan pemodelan berorientasi objek
Analysis Design Paradigm and Diagrams 1. Data-oriented DFD 2. Process-oriented Flowchart 3. Object-oriented (data + process) UML
What is the UML? UML: Unified Modeling Language UML dapat digunakan untuk memodelkan semua proses dalam siklus hidup pengembangan dan seluruh teknologi implementasi yang berbeda UML adalah bahasa standar untuk memvisualisasikan,menspesifiksi, konstruksi, dan mendokumentasikan artifak dari sistem perangkat lunak UML adalah suatu alat komunikasi untuk team dan para stakeholders
Why Modeling? Modeling menangkap bagian penting dari sistem (James Rumbaugh) Business Process Computer System Visual Modeling adalah pemodelan yang menggunakan notasi grafik standar
The Triangle of Success in Software Dev. Notation: Standard email Process: Tools: CustomerOriented Methodology Support Standard and Process Fasilkom 3/25/2014
UML Tools Rational Rose Visual Paradigm Enterprise Architect Microsoft Visio Star UML Netbeans UML Plugin
Æ Á ¹ ¼ ëçñ º ±â»ç ëàú äã»çñ Ù. È ÀÏ ü ÀÚ Â Àоî  ¹ ¼ ÀÇ Á º ÇØ ç ¹ ¼ ü ¼³Á À» äã»çñ Ù. È é ü  ÀоîµéÀΠüµé ëçø ÀÌ º Î Á ÄÀ» ½ÃÄÑ È é º ÁØ Ù. 1: Doc view request ( ) 9: sortbyname ( ) L 2: fetchdoc( ) 3: create ( ) 6: filldocument ( ) 4: create ( ) 8: fillfile ( ) 5: readdoc ( ) 7: readfile ( ) Window95 ¹ ¼ ü Å óàì¾ðæ.exe Windows NT Windows NT ¹ ¼ ü Áø.EXE Windows95 IBM Mainframe µ ÀÌÅ º À̽º¼ ¹ö Solaris ÀÀ ë¼ ¹ö.EXE Windows95 ¹ ¼ ü ¾ÖÇà Alpha UNIX UML Diagrams Use-Case Diagram Class Diagram Statechart Diagram add f ile DocumentList FileMgr Document Actor A Use Case 1 Use Case 2 Actor B fetchdoc( ) sortbyname( ) add( ) delete( ) FileList flist add( ) delete( ) 1 name : int docid : int numfield : int get( ) open( ) close( ) read( ) sortfilelist( ) create( ) filldocument( ) read() fill the code.. Openning add f ile [ numberof f ile==max ] / f lag OFF close f ile Writing Reading close f ile Closing Use Case 3 Collaboration Diagram 1: Doc view request ( ) 9: sortbyname ( ) mainwnd : MainWnd rep Repository (from Persistence) name : char * = 0 readdoc( ) readfile( ) read( ) File GrpFile read( ) open( ) create( ) fillfile( ) FileManager Repository DocumentList Deployment Diagram 2: fetchdoc( ) 4: create ( ) gfile : GrpFile Document 8: fillfile ( ) user : Clerk filemgr : FileMgr 3: create ( ) 6: filldocument ( ) GraphicFile File FileList 7: readfile ( ) repository : Repository 5: readdoc ( ) document : Document user mainwnd filemgr : FileMgr Sequence Diagram document : Document gfile repository Component Diagram Forward and Reverse Engineering Target System
UML 2.0 UML version 2.0 memiliki 14 diagram yang terbagi pada 2 kelompok besar: 1. Structure Diagrams 2. Behavior Diagrams
UML Structure Diagrams Mewakili data dan hubungan statis pada sistem informasi 1. Class Diagram 2. Object Diagram 3. Package Diagram 4. Deployment Diagram 5. Component Diagram 6. Composite Structure Diagram
Structure Diagrams 1. Class Diagrams Kosakata umum yang digunakan oleh analis dan pengguna Mewakili sesuatu/benda (employee, paycheck, ) Menenjukkan hubungan antar kelas 2. Object Diagrams Mirip dengan Class Diagram Gambaran tentang objek-objek dalam sistem Hubungan antar objek 3. Package Diagrams Kelompok elemen-elemen UML digunakan untuk membentuk tingkat konstruksi yang lebih tinggi
Structure Diagrams 4. Deployment Diagrams Menunjukkan arsitektur fisik dan komponen perangkat lunak sistem For example, network nodes 5. Component Diagrams Hubungan fisik di antara komponen perangkat lunak Example Client/Server (Mesin mana yang berjalan pada software yang mana) 6. Composite Structure Menggambarkan struktur internal dari kelas yang kompleks
UML Behavior Diagrams Menggambarkan hubungan dinamis antara objek yang mewakili sistem informasi bisnis 1. Activity Diagram 2. Sequence Diagram 3. Communication Diagram 4. Interaction Diagram 5. Timing Diagram 6. Behavior State Machine 7. Protocol State Machine 8. Use Case Diagrams
Behavior Diagrams 1. Activity Diagrams Model proses pada suatu sistem informasi Example: Business workflows, business logic 2. Interaction Diagrams Menunjukkan interaksi anatar objek 3. Sequence Diagrams Urutan berdasarkan waktu interaksi 4. Communication Diagrams Komunikasi antara sekumpulan objek yang berkolaborasi dari suatu aktivitas
Behavior Diagrams 5. Interaction Diagrams Kilasan aliran control dari suatu proses 6. Timing Diagrams Menunjukkan bagaimana suatu objek berubah dari waktu ke waktu 7. State Machines Memeriksa perilaku dari suatu kelas Menunjukkan model keadaan-keadaan yang berbeda dan transisi keadaan dari suatu objek 8. Use-Case Diagrams Menunjukkan interaksi antara sistem dan lingkungan Menangkap kebutuhan bisnis
UML Process (EA Sparx) 1. Menampilkan batas sistem dan fungsi utama menggunakan use cases dan actors 2. Memodelkan proses bisnis organisasi dengan activity diagram 3. Menggambarkan realisasi use case menggunakan sequence diagrams 4. Merepresentasikan struktur statis dari suatu sistem dengan menggunakan class diagram 5. Mengungkapkan pelaksanaan arsitektur fisik dengan deployment diagram
UML Process (EA Sparx) 1. Use Cases Diagram 2. Activity Diagram 3. Sequence Diagram 4. Class Diagram 5. Deployment Diagrams
UML Process (Kendal, 2011) 1. Sebuah use case diagram, menggambarkan bagaimana sistem yang digunakan. Analis memulai dengan use case diagram 2. Sebuah activity diagram, menggambarkan aliran keseluruhan kegiatan. Setiap use case dapat membuat satu diagram aktivitas 3. Sequence diagram, menunjukkan urutan kegiatan dan hubungan kelas. Setiap use case dapat membuat satu atau lebih sequence diagram 4. Class diagrams, menunjukkan kelas dan hubungan. Sequence diagram digunakan untuk menentukan kelas 5. Statechart diagram, menunjukkan keadaan transisi. Setiap kelas dapat membuat statechart diagram, yang berguna untuk menentukan class method
(Kendall and Kendall, 2011)
System Analysis and Design with UML 1. System Analysis 1. Business Process Identification Use Case Diagram 2. Business Process Modeling Activity Diagram 3. Business Process Realization Sequence Diagram 2. System Design 1. Program Design 1. Class Diagram 2. Package Diagram (Gabungan class yang sesuai) 3. Deployment Diagram (arsitektur software dari sistem yang dibangun) 2. User Interface Design (Buat UI design) 3. Entity-Relationship Model (Buat ER diagram)
USE CASE DIAGRAM Menggambarkan fungsionalitas yang diharapkan dari sebuah sistem. Menekankan apa yang diperbuat sistem, dan bukan bagaimana. Menggambarkan kebutuhan sistem dari sudut pandang pengguna (user) Mengfokuskan pada proses komputerisasi (automated processes) Menggambarkan hubungan antara use case dan actor
USE CASE DIAGRAM Use case Use case diagram terdiri dari: Use case Actors Relationship System boundary boxes (optional) Use case dinotasikan dengan gambar horizontal ellipse Use case Use case biasanya menggunakan kata kerja
USE CASE DIAGRAM - ACTOR Actor menggambarkan orang, sistem atau external entitas / stakeholder yang menyediakan atau menerima informasi dari sistem Actor menggambarkan sebuah tugas/peran/role, bukan posisi sebuah jabatan Actor memberi input atau menerima informasi dari sistem Actor biasanya menggunakan Kata benda Indikasi <<system>> untuk sebuah actor yang merupakan sebuah sistem Letakkan actor utama anda pada pojok kiri atas dari diagram
USE CASE DIAGRAM - Association 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
USE CASE DIAGRAM - Association <<include>> termasuk di dalam use case lain (required) / (diharuskan) Pemanggilan use case oleh use case lain, contohnya adalah pemanggilan sebuah fungsi program Tanda panah terbuka harus terarah ke sub use case Buka Rekening <<include>> catat data pribadi Nasabah
USE CASE DIAGRAM - Association <<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 Buka Rekening <<extend>> Nasabah Buka Deposito
USE CASE DIAGRAM - Association Generalization/inheritance digambarkan dengan sebuah garis berpanah tertutup pada salah satu ujungnya yang menunjukkan lebih umum Generalization/inheritance dipakai ketika ada sebuah keadaan yang lain sendiri/perlakuan khusus (single condition)
USE CASE DIAGRAM - system boundary boxes Digambarkan dengan kotak disekitar use case, untuk menggambarkan jangkauan sistem (scope of of your system). Biasanya digunakan apabila terdapat beberapa alternatif sistem yang dapat dijadikan pilihan System boundary boxes dalam penggunaannya optional
ACTIVITY DIAGRAM Menggambarkan proses bisnis dan urutan aktivitas dalam sebuah proses Dipakai pada business modeling untuk memperlihatkan urutan aktifitas proses bisnis Struktur diagram ini mirip flowchart atau Data Flow Diagram pada perancangan terstruktur membantu memahami proses secara keseluruhan
ACTIVITY DIAGRAM simbol Simbol Start Point End Point Activities Keterangan Fork (Percabangan) Join (Penggabungan) Decision Swimlane Sebuah cara untuk mengelompokkan activity berdasarkan Actor (mengelompokkan activity dalam sebuah urutan yang sama)
ACTIVITY DIAGRAM contoh Bagian Gudang Bagian Pembelian Supplier Memberi informasi data Barang yang akan dipesan Menerima informasi Buat SPP Terima SPP Terima Barang dan Faktur Kirim Barang disertai Faktur Buat SPBJ Tandatangani SPBJ Terima SPBJ Melakukan pembayaran Konfirmasi pembayaran Terima pembayaran Terima Kwitansi Buat kwitansi
Sequence Diagram Sequence diagram menggambarkan interaksi antar objek di dalam dan di sekitar sistem (termasuk pengguna, display, dan sebagainya) berupa message yang digambarkan terhadap waktu. Sequence diagram terdiri atar dimensi vertikal (waktu) dan dimensi horizontal (objek-objek yang terkait). Sequence diagram biasa digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan sebagai respons dari sebuah event untuk menghasilkan output tertentu Diawali dari apa yang men-trigger aktivitas tersebut, proses dan perubahan apa saja yang terjadi secara internal dan output apa yang dihasilkan
Simbol Sequence Diagram
Case Study: ATM System System Analysis: 1. Business Process Identification Use Case Diagram 2. Business Process Modeling Activity Diagram 3. Business Process Realization Sequence Diagram
Latihan Terdapat Sistem ATM dimana pengguna dapat: 1. Melihat Saldo 2. Mentransfer Uang 3. Mengambil Uang 4. Logout Buatlah use case diagram, activity diagram, dan sequence diagram untuk menggambarkan kasus di atas!
ATM System
Layar Kotak Uang Kotak Kartu Kotak Kuitansi
Masukkan PIN: Kotak Uang Kotak Kartu Kotak Kuitansi
Menu Utama 1. Melihat Saldo 2. Mentransfer Uang 3. Mengambil Uang 4. Logout Kotak Uang Kotak Kartu Kotak Kuitansi
Menu Melihat Saldo 1. Saldo anda adalah. Kotak Uang Kotak Kartu Kotak Kuitansi
Menu Mentransfer Uang 1. No Account Penerima: Kotak Uang Kotak Kartu Kotak Kuitansi
Menu Mentransfer Uang 1. Jumlah uang yang dikirim: Kotak Uang Kotak Kartu Kotak Kuitansi
Menu Mentransfer Uang 1. Uang berhasil terkirim Kotak Uang Kotak Kartu Kotak Kuitansi
Menu Mengambil Uang 1. Jumlah uang yang diambil: Kotak Uang Kotak Kartu Kotak Kuitansi
Menu Mengambil Uang Uang berhasil diambil Kotak Uang Kotak Kartu Kotak Kuitansi
Use Case Diagram Sistem ATM Memasukkan Kartu «include» Memasukkan PIN Mengecek Saldo Pengguna Mentransfer Uang Melakukan Logout Mengambil Uang
Activity Diagram: Memasukkan Kartu Pengguna Sistem ATM Mulai Menyiapkan Kartu Memasukkan Kartu Memv alidasi Kartu kartu valid? tidak Mengeluarkan Kartu ya Menampilkan MenuPIN Selesai
Activity Diagram: Memasukkan PIN Pengguna Sistem ATM Mulai Memasukkan PIN tidak Memv alidasi Account pin valid? tidak lebih dari 3x? ya Menampilkan MenuUtama ya Memblokkir Kartu Selesai
Activity Diagram: Mengecek Saldo Pengguna Sistem ATM Mulai Memilih Mengecek Saldo di Menu Utama Memproses Pengecekan Saldo Menampilkan Saldo di Menu Saldo Selesai
Activity Diagram: Mentransfer Uang Pengguna Sistem ATM Mulai Memilih Mentransfer Uang di Menu Utama tidak Memasukkan Account Tuj uan Memv alidasi Account Tuj uan Memasukkan Jumlah Uang yang dikirim tidak Account Tujuan Valid? ya Menghitung Kecukupan Saldo Pengirim Saldo Cukup? ya Mentransfer Uang Selesai
Activity Diagram: Mengambil Uang Pengguna Sistem ATM Mulai Memilih Menu Mengambil Uang di Menu Utama tidak Memasukkan Jumlah Uang Mengecek Ketercukupan Saldo Saldo Cukup? ya Memproses Pengambilan Uang Mengambil Uang di Kotak Uang Mengeluarkan Uang di Kotak Uang Selesai
Activity Diagram: Melakukan Logout Pengguna Sistem ATM Mulai Memilih Keluar di Menu Utama Memproses Logout Mengeluarkan Kuitansi Mengambil Kuitansi Mengeluarkan Kartu Mengambil Kartu Selesai
Sequence Diagram: Memasukkan Kartu Pengguna KotakKartu ProsesValidasiKartu MenuPIN memasukankartu() validasikartu() alt kartu v alid? [ya] tampilkan() [tidak] mengeluarkankartu() (from 1 Use Case Diagram)
Type of Class 1. Boundary Class Class yang berhubungan dengan actor (user interface) 2. Control Class Class yang berhubungan dengan pemrosesan, komputasi, penghitungan, dsb 3. Entity Class Class yang berhubungan dengan data (flat file or database)
Sequence Diagram: Memasukkan PIN Pengguna M enupin ProsesValidasiAccount Account Login MenuUtama memasukkanpin() validasi(id, pin) getidlogin() getpin() alt PIN v alid? [ya] tampilkan() [tidak] alt lebih dari 3x? [tidak] tampilkan() [ya] errorkartudiblokir() blokiraccount() (from 1 Use Case Diagram)
Sequence Diagram: Mengecek Saldo Pengguna MenuUtama ProsesMengecekSaldo Account Balance Transaksi MenuMengecekSaldo memilihmengeceksaldo() lihatsaldo(id) getidbalance() getsaldo() settransaksi(tgl, jenis) tampilkanhasil(saldo) (from 1 Use Case Diagram)
Sequence Diagram: Mentransfer Uang Pengguna MenuUtama MenuMentransferUang ProsesMentransferUang Account pengirim:balance penerima:balance Transaksi memilihmentransferuang() tampilkan() memasukkanjumlahuang() memasukkanaccounttujuan() transferuang(id, jumlah) getidbalance() getsaldo() alt saldo cukup? [ya] setsaldo(saldo) setsaldo(saldo) settransaksi(tgl, jenis) tampilkanuangberhasildikirim() [tidak] tampilkanerrorsaldotidakcukup() rom 1 Use Case Diagram)
Sequence Diagram: Mengambil Uang Pengguna MenuUtama MenuMengambilUang ProsesMengambilUang Account Balance Transaksi KotakUang memilihmengambiluang() tampilkan() memasukkanjumlah() ambiluang(id, jumlah) getidbalance() getsaldo() alt saldo cukup? [ya] setsaldo(saldo) keluarkanuang(jumlah) settransaksi(tgl, jenis) TampilkanUangBerhasilDiambil() [tidak] TampilkanErrorSaldoTidakCukup() m 1 Use Case Diagram)
Sequence Diagram: Melakukan Logout Pengguna MenuUtama MenuLogout ProsesLogout KotakKuitansi KotakKartu memilihkeluar() tampilkan() logout() keluarkankuitansi() keluarkankartu() tampilkantelahkeluar() (from 1 Use Case Diagram)