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
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
Why Modeling?
Modeling menangkap bagian penting dari sistem
(James Rumbaugh)
Business Process
Computer System
Visual Modeling adalah pemodelan yang
The Triangle of Success in Software Dev.
Notation
:
StandardTools
: Support Standard and ProcessProcess
:
Customer-Oriented MethodologyUML Tools
Rational Rose
Visual Paradigm
Enterprise Architect
Microsoft Visio
Star UML
UML Diagrams
Actor A Use Case 1 Use Case 2 Actor B user : Clerk mainWnd : MainWnd fileMgr : FileMgr repository : Repository document : Document gFile : GrpFile 9: sortBy Nam e ( ) L1: Doc view request ( ) 2: fetchDoc( ) 5: readDoc ( ) 7: readFile ( ) 3: create ( ) 6: fillDocum ent ( ) 4: create ( ) 8: fillFile ( ) Window95 ¹®¼° ü¸® Ŭ¶óÀÌ¾ðÆ ®.EXE Windows NT ¹®¼° ü¸® ¿£Áø.EXE Windows NT Windows 95 Solaris ÀÀ¿ë¼¹ö.EXE Alpha UNIX IBM M ainframe µ¥ÀÌŸº£À̽º¼¹ö Windows 95 ¹®¼° ü¸® ¾ÖÇø´ Document FileManager GraphicFile File Repository DocumentList FileList user mainWnd fileMgr : FileMgr repository document : Document gFile
1: Doc view reques t ( ) 2: fetchDoc( ) 3: create ( ) 4: create ( ) 5: readDoc ( ) 6: fillDocument ( ) 7: readFile ( ) 8: fillFile ( ) 9: s ortByName ( ) Æ ¯Á¤¹®¼¿¡ ´ ëÇÑ º¸±â¸¦ »ç¿ëÀÚ° ¡ ¿äûÇÑ´ Ù. ÈÀϰ ü¸®ÀÚ´  Àоî¿Â ¹®¼ÀÇ Á¤º¸¸¦ ÇØ´ ç ¹®¼ ° ´ ü¿¡ ¼³Á¤À» ¿äûÇÑ´ Ù. È¸é ° ´ ü´  ÀоîµéÀÎ ° ´ üµé¿¡ ´ ëÇØ À̸§º° ·Î Á¤·ÄÀ» ½ÃÄÑ È¸é¿¡ º¸¿©ÁØ´ Ù. Forward and Reverse Engineering Target System Openning Writing Reading Closing
add f ile [ numberOf f ile==MAX ] / f lag OFF add f ile close f ile close f ile Use Case 3 Use-Case
Diagram Class Diagram
Collaboration Diagram Sequence Diagram Component Diagram Statechart Diagram GrpFile read( ) open( ) create( ) fillFile( ) rep Repository nam e : char * = 0 readDoc( ) readFile( ) (from Persistence) FileMgr fetchDoc( ) sortBy Nam e( ) Docum entList add( ) delete( ) Docum ent nam e : int docid : int num Field : int get( ) open( ) close( ) read( ) sortFileList( ) create( ) fillDocum ent( ) fList 1 FileList add( ) delete( ) 1 File read( )
read() fill the code..
Deployment Diagram
UML 2.0
UML version 2.0 memiliki 14 diagram
yang terbagi pada 2 kelompok besar:
1.
Structure
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
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
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
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
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
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
UML Process (EA Sparx)
1.
Use Cases
Diagram
2.
Activity
Diagram
3.
Sequence
Diagram
4.
Class
Diagram
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
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)
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)
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 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
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
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
<<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>> Buka Deposito Nasabah
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
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
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
ACTIVITY DIAGRAM – simbol
Simbol Keterangan Start Point End Point Activities Fork (Percabangan) Join (Penggabungan) Decision SwimlaneSebuah cara untuk mengelompokkan activity berdasarkan Actor
(mengelompokkan activity dalam sebuah urutan yang sama)
ACTIVITY DIAGRAM – contoh
Supplier Bagian Pembelian
Bagian Gudang Memberi informasi data Barang yang akan dipesan
Menerima informasi Buat SPP Terima SPP Kirim Barang disertai Faktur Terima Barang dan Faktur Buat SPBJ Tandatangani SPBJ Terima SPBJ Konfirmasi pembayaran Melakukan 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
Case Study: ATM
System
System Analysis:
1. Business Process Identification
Use Case Diagram
2. Business Process Modeling
Activity Diagram
3. Business Process Realization
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
Layar
Kotak Uang Kotak Kartu
Masukkan PIN:
Kotak Uang Kotak Kartu
Menu Utama
1. Melihat Saldo
2. Mentransfer Uang
3. Mengambil Uang
4. Logout
Kotak Uang Kotak Kartu
Menu Melihat Saldo
1. Saldo anda adalah ….
Kotak Uang Kotak Kartu
Menu Mentransfer Uang
1. No Account Penerima:
Kotak Uang Kotak Kartu
Menu Mentransfer Uang
1. Jumlah uang yang dikirim:
Kotak Uang Kotak Kartu
Menu Mentransfer Uang
1. Uang berhasil terkirim
Kotak Uang Kotak Kartu
Menu Mengambil Uang
1. Jumlah uang yang diambil:
Kotak Uang Kotak Kartu
Menu Mengambil Uang
Uang berhasil diambil
Kotak Uang Kotak Kartu
Use Case Diagram
Pengguna
Sistem AT M
Memasukkan Kartu Memasukkan PIN
Mengecek Saldo
Mentransfer Uang
Mengambil Uang Melakukan Logout
Activity Diagram: Memasukkan Kartu
Mulai
Pengguna Sistem ATM
Menyiapkan Kartu
Memasukkan Kartu Memv alidasi Kartu
kartu valid? Menampilkan MenuPIN Mengeluarkan Kartu Selesai tidak ya
Activity Diagram: Memasukkan PIN
Pengguna Sistem ATMMul ai
Memasukkan PIN
Memv alidasi Account
pin val id?
Menampilkan MenuUtama l ebi h dari 3x? Memblokkir Kartu Sel esai ya ti dak ti dak ya
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
Memasukkan Account Tuj uan
Memasukkan Jumlah Uang yang dikirim
Menghitung Kecukupan Saldo Pengirim Memv alidasi Account
Tuj uan
Account T ujuan Valid?
Saldo Cukup? Mentransfer Uang Selesai tidak ya tidak ya
Activity Diagram: Mengambil Uang
Pengguna Sistem ATM
Mul ai
Memilih M enu Mengambil Uang di Menu Utama
Memasukkan Jumlah Uang Mengecek Ketercukupan Saldo Saldo Cukup? Memproses Pengambilan Uang Mengeluarkan Uang di Kotak Uang Mengambil Uang di Kotak
Uang
tidak
Activity Diagram: Melakukan Logout
Sistem ATM Pengguna
M ulai
Memilih Keluar di Menu Utama M emproses Logout Mengeluarkan Kuitansi M engeluarkan Kartu Mengambil Kuitansi Mengambil Kartu Sel esai
Sequence Diagram: Memasukkan Kartu
Pengguna
(from 1 Use Case Diagram)
KotakKartu ProsesValidasiKartu M enuPIN
alt kartu v alid?
[ya] [tidak] mem asukanKartu() validasiKartu() tam pilkan() mengeluarkanKartu()
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
Sequence Diagram: Memasukkan PIN
Pengguna
(from 1 Use Case Diagram)
M enuPIN ProsesValidasiAccount Account Login MenuUtama
alt PIN v alid?
[ya] [tidak]
alt lebih dari 3x?
[tidak] [ya] m emasukkanPIN() validasi(id, pin) getIDLogin() getPIN() tampilkan() tampilkan() blokirAccount() errorKartuDiblokir()
Sequence Diagram: Mengecek Saldo
Pengguna
(from 1 Use Case Diagram)
MenuUtama ProsesMengecekSaldo Account Balance Transaksi MenuMengecekSaldo
memilihMengecekSaldo() lihatSaldo(id) getIDBalance() getSaldo() setTransaksi(tgl, jenis) tampilkanHasil(saldo)
Sequence Diagram: Mentransfer Uang
Pengguna MenuUtama MenuMentransferUang ProsesM entransferUang Account pengirim:Bal ance penerim a:Balance T ransaksi
alt saldo cukup?
[ya] [ti dak] memi li hMentransferUang() tampilkan() memasukkanJumlahUang() memasukkanAccountT uj uan() transferUang(id, jumlah) getIDBalance() getSaldo()
setSal do(sal do)
setSaldo(saldo)
setT ransaksi(tgl, jenis)
tam pi lkanUangBerhasi lDi ki ri m()
Sequence Diagram: Mengambil Uang
Pengguna MenuUtama MenuMengambilUang ProsesMengambilUang Account Balance Transaksi KotakUang
alt saldo cukup?
[ya]
[tidak] memi lihMengambil Uang()
tampilkan()
memasukkanJuml ah()
ambi lUang(id, jumlah)
getIDBalance() getSaldo()
setSaldo(saldo)
keluarkanUang(juml ah)
setTransaksi(tgl, jenis)
Tampi lkanUangBerhasil Diambil()
Sequence Diagram: Melakukan Logout
Pengguna MenuUtama MenuLogout ProsesLogout KotakKuitansi KotakKartu
memilihKeluar() tampilkan() logout() keluarkanKuitansi() keluarkanKartu() tampilkanTelahKeluar()