Analisa dan Desain Berorientasi Objek
ANALISIS BERORIENTASI OBJEK Defri Kurniawan M.Kom email
Fasilkom|| 3/25/2014
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
email
Case Study: ATM System Fasilkom|| 3/25/2014
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
email
Fasilkom|| 3/25/2014
Analysis Design Paradigm and Diagrams
1. 2. 3.
email
Data-oriented DFD Process-oriented Flowchart Object-oriented (data + process) UML
Fasilkom|| 3/25/2014
What is the UML?
email
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 Fasilkom|| 3/25/2014
Why Modeling? Modeling menangkap bagian penting dari sistem (James Rumbaugh)
Business Process
Computer System
Visual Modeling adalah pemodelan yang menggunakan notasi grafik standar email
Fasilkom|| 3/25/2014
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
email
Fasilkom|| 3/25/2014
UML Diagrams Use-Case Diagram
Statechart Diagram
Class Diagram
add f ile DocumentList FileMgr
Actor B
Use Case 1
Document add( ) delete( )
fetchDoc( ) sortBy Name( )
name : int docid : int numField : int get( ) open( ) close( ) read( )
Actor A FileList
Writing
Openning
sortFileList( ) create( ) fillDocument( )
fList
Use Case 2
add f ile [ numberOf f ile==MAX ] / f lag OFF read() fill the code..
close f ile
add( ) delete( ) 1
close f ile Reading
Closing
Use Case 3 rep
Repository (from Persistence)
File
read( )
GrpFile
name : char * = 0 readDoc( ) readFile( )
Collaboration Diagram
read( ) open( ) create( ) fillFile( )
9: sortBy Name ( )
Repository
mainWnd : MainWnd
1: Doc view request ( )
DocumentList
Deployment Diagram Windows 95
Window95
FileManager
Windows 95
L
2: fetchDoc( )
¹®¼° ü¸® Ŭ¶óÀ̾ðÆ ®.EXE
Document
gFile : GrpFile
4: create ( )
¹®¼° ü¸® ¾ÖÇø´
Windows NT
8: fillFile ( )
user : Clerk
Solaris
fileMgr : FileMgr
¹®¼° ü¸® ¿£Áø.EXE
GraphicFile
3: create ( )
Alpha UNIX ÀÀ¿ë¼¹ö.EXE
6: fillDocument ( )
File
FileList
Windows NT
IBM M ainframe
7: readFile ( ) 5: readDoc ( )
document : Document repository : Repository µ¥ÀÌŸº£À̽º¼¹ö
mainWnd user
Æ ¯Á¤¹®¼¿¡ ´ ëÇÑ º¸±â¸¦ »ç¿ëÀÚ° ¡ ¿äûÇÑ´ Ù.
fileMgr : FileMgr
document : Document
1: Doc view reques t ( )
2: fetchDoc( )
gFile
repository
Component Diagram
Target System
3: create ( )
4: create ( )
5: readDoc ( )
ÈÀÏ° ü¸®ÀÚ´  Àоî¿Â ¹®¼ÀÇ Á¤º¸¸¦ ÇØ´ ç ¹®¼ ° ´ ü¿¡ ¼³Á¤À» ¿äûÇÑ´ Ù.
6: fillDocument ( )
7: readFile ( )
8: fillFile ( )
È¸é ° ´ ü´  ÀоîµéÀÎ ° ´ üµé¿¡ ´ ëÇØ À̸§º° ·Î
9: s ortByName ( )
Á¤·ÄÀ» ½ÃÄÑ È¸é¿¡ º¸¿©ÁØ´ Ù.
Sequence Diagram email
Forward and Reverse Engineering Fasilkom|| 3/25/2014
UML 2.0
UML version 2.0 memiliki 14 diagram yang terbagi pada 2 kelompok besar: Structure Diagrams 2. Behavior Diagrams 1.
email
Fasilkom|| 3/25/2014
email
Fasilkom|| 3/25/2014
UML Structure Diagrams
Mewakili data dan hubungan statis pada sistem informasi 1. 2. 3. 4. 5. 6.
email
Class Diagram Object Diagram Package Diagram Deployment Diagram Component Diagram Composite Structure Diagram
Fasilkom|| 3/25/2014
Structure Diagrams 1.
Class Diagrams
2.
Object Diagrams
3.
Mirip dengan Class Diagram Gambaran tentang objek-objek dalam sistem Hubungan antar objek
Package Diagrams
email
Kosakata umum yang digunakan oleh analis dan pengguna Mewakili sesuatu/benda (employee, paycheck,…) Menenjukkan hubungan antar kelas
Kelompok elemen-elemen UML digunakan untuk membentuk tingkat konstruksi yang lebih tinggi Fasilkom|| 3/25/2014
Structure Diagrams 4.
Deployment Diagrams
5.
Component Diagrams
6.
Menunjukkan arsitektur fisik dan komponen perangkat lunak sistem For example, network nodes Hubungan fisik di antara komponen perangkat lunak Example – Client/Server (Mesin mana yang berjalan pada software yang mana)
Composite Structure Menggambarkan struktur internal dari kelas yang
kompleks email
Fasilkom|| 3/25/2014
UML Behavior Diagrams Menggambarkan hubungan dinamis antara objek yang mewakili sistem informasi bisnis 1. 2. 3. 4.
email
Activity Diagram Sequence Diagram Communication Diagram Interaction Diagram
5. 6. 7. 8.
Timing Diagram Behavior State Machine Protocol State Machine Use Case Diagrams
Fasilkom|| 3/25/2014
Behavior Diagrams 1.
Activity Diagrams
2.
Interaction Diagrams
3.
Urutan berdasarkan waktu interaksi
Communication Diagrams
email
Menunjukkan interaksi anatar objek
Sequence Diagrams
4.
Model proses pada suatu sistem informasi Example: Business workflows, business logic
Komunikasi antara sekumpulan objek yang berkolaborasi dari suatu aktivitas Fasilkom|| 3/25/2014
Behavior Diagrams 5.
Interaction Diagrams
6.
Timing Diagrams
7.
Memeriksa perilaku dari suatu kelas Menunjukkan model keadaan-keadaan yang berbeda dan transisi keadaan dari suatu objek
Use-Case Diagrams
email
Menunjukkan bagaimana suatu objek berubah dari waktu ke waktu
State Machines
8.
Kilasan aliran control dari suatu proses
Menunjukkan interaksi antara sistem dan lingkungan Menangkap kebutuhan bisnis Fasilkom|| 3/25/2014
UML Process (EA Sparx) 1. 2. 3. 4. 5. email
Menampilkan batas sistem dan fungsi utama menggunakan use cases dan actors Memodelkan proses bisnis organisasi dengan activity diagram Menggambarkan realisasi use case menggunakan sequence diagrams Merepresentasikan struktur statis dari suatu sistem dengan menggunakan class diagram Mengungkapkan pelaksanaan arsitektur fisik dengan deployment diagram Fasilkom|| 3/25/2014
UML Process (EA Sparx) 1. 2. 3. 4. 5.
email
Use Cases Diagram Activity Diagram Sequence Diagram Class Diagram Deployment Diagrams
Fasilkom|| 3/25/2014
UML Process (Kendal, 2011) 1. 2.
3.
4. 5.
email
Sebuah use case diagram, menggambarkan bagaimana sistem yang digunakan. Analis memulai dengan use case diagram Sebuah activity diagram, menggambarkan aliran keseluruhan kegiatan. Setiap use case dapat membuat satu diagram aktivitas Sequence diagram, menunjukkan urutan kegiatan dan hubungan kelas. Setiap use case dapat membuat satu atau lebih sequence diagram Class diagrams, menunjukkan kelas dan hubungan. Sequence diagram digunakan untuk menentukan kelas Statechart diagram, menunjukkan keadaan transisi. Setiap kelas dapat membuat statechart diagram, yang berguna untuk menentukan class method Fasilkom|| 3/25/2014
email
(Kendall and Kendall, 2011)
Fasilkom|| 3/25/2014
System Analysis and Design with UML System Analysis
1.
1.
Business Process Identification
2.
Business Process Modeling
3.
Activity Diagram
Business Process Realization
Sequence Diagram
System Design
2.
1.
Program Design 1. 2. 3.
2. 3. email
Use Case Diagram
Class Diagram Package Diagram (Gabungan class yang sesuai) Deployment Diagram (arsitektur software dari sistem yang dibangun)
User Interface Design (Buat UI design) Entity-Relationship Model (Buat ER diagram) Fasilkom|| 3/25/2014
USE CASE DIAGRAM
email
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
Fasilkom|| 3/25/2014
USE CASE DIAGRAM – Use case
Use case diagram terdiri dari: Use case Actors Relationship System boundary boxes (optional)
Use case dinotasikan dengan Use case gambar horizontal ellipse Use case biasanya menggunakan kata kerja
email
Fasilkom|| 3/25/2014
USE CASE DIAGRAM - ACTOR
email
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 Fasilkom|| 3/25/2014
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
email
Fasilkom|| 3/25/2014
USE CASE DIAGRAM - Association
<
> 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
<>
catat data pribadi
Nasabah
email
Fasilkom|| 3/25/2014
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
email
Buka Deposito
Fasilkom|| 3/25/2014
USE CASE DIAGRAM - Association
email
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)
Fasilkom|| 3/25/2014
USE CASE DIAGRAM - system boundary boxes
email
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
Fasilkom|| 3/25/2014
ACTIVITY DIAGRAM
email
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
Fasilkom|| 3/25/2014
ACTIVITY DIAGRAM – simbol Simbol
Keterangan Start Point End Point Activities
Fork (Percabangan)
Join (Penggabungan)
Decision
Swimlane
email
Sebuah cara untuk mengelompokkan activity berdasarkan Actor (mengelompokkan activity dalam sebuah urutan yang sama)
Fasilkom|| 3/25/2014
ACTIVITY DIAGRAM – contoh Bagian Gudang
Memberi informasi data Barang yang akan dipesan
Bagian Pembelian
Menerima informasi
Buat SPP
Terima SPP
Kirim Barang disertai Faktur
Terima Barang dan Faktur
Buat SPBJ
Supplier
Tandatangani SPBJ
Melakukan pembayaran
Terima SPBJ
Konfirmasi pembayaran
Terima pembayaran
Terima Kwitansi
email
Buat kwitansi
Fasilkom|| 3/25/2014
Sequence Diagram
email
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 Fasilkom|| 3/25/2014
Simbol Sequence Diagram
email
Fasilkom|| 3/25/2014
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 1. 2. 3. 4.
email
Terdapat Sistem ATM dimana pengguna dapat: Melihat Saldo Mentransfer Uang Mengambil Uang Logout Buatlah use case diagram, activity diagram, dan sequence diagram untuk menggambarkan kasus di atas!
Fasilkom|| 3/25/2014
ATM System
email
Fasilkom|| 3/25/2014
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 AT M
Memasukkan PIN
Memasukkan Kartu
«include»
Mengecek Saldo
Pengguna Mentransfer Uang
Melakukan Logout
email
Mengambil Uang
Fasilkom|| 3/25/2014
Activity Diagram: Memasukkan Kartu Pengguna
Sistem ATM
Mulai
Menyiapkan Kartu
Memasukkan Kartu
Memv alidasi Kartu
kartu valid?
tidak Mengeluarkan Kartu
ya Menampilkan MenuPIN
Selesai
email
Fasilkom|| 3/25/2014
Activity Diagram: Memasukkan PIN Pengguna
Sistem ATM
Mulai
tidak Memasukkan PIN
Memv alidasi Account
pin valid?
lebih dari 3x? tidak
ya
ya
Memblokkir Kartu
Menampilkan MenuUtama
Selesai
email
Fasilkom|| 3/25/2014
Activity Diagram: Mengecek Saldo Pengguna
Sistem ATM
Mulai
Memilih Mengecek Saldo di Menu Utama
Memproses Pengecekan Saldo
Menampilkan Saldo di Menu Saldo
Selesai
email
Fasilkom|| 3/25/2014
Activity Diagram: Mentransfer Uang Pengguna
Sistem ATM
Mulai
Memilih Mentransfer Uang di Menu Utama
tidak Memasukkan Account Tuj uan
Memv alidasi Account Tuj uan
Account Tujuan Valid? Memasukkan Jumlah Uang yang dikirim ya tidak Menghitung Kecukupan Saldo Pengirim
Saldo Cukup?
ya Mentransfer Uang Selesai
email
Fasilkom|| 3/25/2014
Activity Diagram: Mengambil Uang Pengguna
Sistem ATM
Mul ai
Memilih M enu Mengambil Uang di Menu Utama
tidak Memasukkan Jumlah Uang
Mengecek Ketercukupan Saldo
Saldo Cukup?
ya Memproses Pengambilan Uang
Mengambil Uang di Kotak Uang
email
Selesai
Mengeluarkan Uang di Kotak Uang
Fasilkom|| 3/25/2014
Activity Diagram: Melakukan Logout Pengguna
Sistem ATM
Mulai
Memilih Keluar di Menu Utama
Memproses Logout
Mengeluarkan Kuitansi
Mengambil Kuitansi
Mengeluarkan Kartu
Mengambil Kartu
Selesai
email
Fasilkom|| 3/25/2014
Sequence Diagram: Memasukkan Kartu
Pengguna
KotakKartu
ProsesValidasiKartu
MenuPIN
memasukanKartu()
validasiKartu()
alt kartu v alid?
tampilkan()
[ya] [tidak] mengeluarkanKartu()
(from 1 Use Case Diagram)
email
Fasilkom|| 3/25/2014
Type of Class 1.
Boundary Class
2.
Control Class
3.
Class yang berhubungan dengan pemrosesan, komputasi, penghitungan, dsb
Entity Class
email
Class yang berhubungan dengan actor (user interface)
Class yang berhubungan dengan data (flat file or database)
Fasilkom|| 3/25/2014
Sequence Diagram: Memasukkan PIN Pengguna
M enuPIN
ProsesValidasiAccount
Account
Login
MenuUtama
m emasukkanPIN() validasi(id, pin) getIDLogin() getPIN() alt PIN v alid?
tampilkan()
[ya] [tidak] alt lebih dari 3x?
tampilkan()
[tidak] [ya] blokirAccount() errorKartuDiblokir()
(from 1 Use Case Diagram)
email
Fasilkom|| 3/25/2014
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)
email
Fasilkom|| 3/25/2014
Sequence Diagram: Mentransfer Uang Pengguna
MenuUtama
MenuMentransferUang
ProsesM entransferUang
Account
pengirim:Bal ance penerim a:Balance Transaksi
memi li hMentransferUang()
tampilkan()
memasukkanJumlahUang()
memasukkanAccountTuj uan()
transferUang(id, jumlah)
getIDBalance() getSaldo() alt saldo cukup?
setSal do(sal do)
[ya] setSaldo(saldo)
setTransaksi(tgl, jenis)
tam pi lkanUangBerhasi lDi ki ri m()
[ti dak] tampil kanErrorSaldoTidakCukup()
email
(from 1 Use Case Di agram)
Fasilkom|| 3/25/2014
Sequence Diagram: Mengambil Uang Pengguna
MenuUtama
MenuMengambilUang
ProsesMengambilUang
Account
Balance
Transaksi
KotakUang
memilihMengambilUang() tampilkan()
memasukkanJumlah() ambilUang(id, jumlah) getIDBalance() getSaldo() alt saldo cukup?
setSaldo(saldo)
[ya] keluarkanUang(jumlah)
setTransaksi(tgl, jenis)
TampilkanUangBerhasilDiambil() [tidak] TampilkanErrorSaldoTidakCukup()
(from 1 Use Case Diagram) email
Fasilkom|| 3/25/2014
Sequence Diagram: Melakukan Logout
Pengguna
MenuUtama
MenuLogout
ProsesLogout
KotakKuitansi KotakKartu
memilihKeluar()
tampilkan()
logout()
keluarkanKuitansi()
keluarkanKartu()
tampilkanTelahKeluar()
(from 1 Use Case Diagram)
email
Fasilkom|| 3/25/2014
email
Fasilkom|| 3/25/2014