Upload
dinhliem
View
222
Download
1
Embed Size (px)
Citation preview
email Fasilkom|| 10/1/2013
ANALISIS BERORIENTASI OBJEKDefri Kurniawan M.Kom
REKAYASA PERANGKAT LUNAK LANJUT
email Fasilkom|| 10/1/2013
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 (System Analysis) Activity Diagram (System Analysis) Sequence Diagram (System Analysis)
Case Study: ATM System
email Fasilkom|| 10/1/2013
Analisis Berorientasi Objek
Analisis Berorientasi Objek Berfokus pada pendefinisian kelas-kelas dan cara
bagaimana mereka saling bekerjasama satu denganyang lainnya untuk memenuhi kebutuhan parapelanggan.
Pada Paradigma Analysis Design dan Diagram, Unified Modeling Language (UML) merupakanperkakas (tools) yang digunakan untuk melakukanpemodelan berorientasi objek
email Fasilkom|| 10/1/2013
Analysis Design Paradigm and Diagrams
1. Data-oriented DFD2. Process-oriented Flowchart3. Object-oriented (data + process)
UML
email Fasilkom|| 10/1/2013
What is the UML?
UML: Unified Modeling Language UML dapat digunakan untuk memodelkan semua
proses dalam siklus hidup pengembangan danseluruh 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 danpara stakeholders
email Fasilkom|| 10/1/2013
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|| 10/1/2013
The Triangle of Success in Software Dev.
Notation: Standard
Tools: Support
Standard and Process
Process: Customer-Oriented
Methodology
email Fasilkom|| 10/1/2013
UML Tools
Rational RoseVisual Paradigm Enterprise ArchitectMicrosoft Visio Star UMLNetbeans UML Plugin
email Fasilkom|| 10/1/2013
UML Diagrams
Actor A
Use Case 1
Use Case 2
Actor B
user : Clerk
mainWnd : MainWnd
fileMgr : FileMgr
repository : Repositorydocument : Document
gFile : GrpFile
9: sortByName ( )
L1: Doc view request ( )
2: fetchDoc( )
5: readDoc ( )
7: readFile ( )
3: create ( )
6: fillDocument ( )
4: create ( )
8: fillFile ( )
Window95
¹®¼°ü¸® Ŭ¶óÀ̾ðÆ®.EXE
WindowsNT
¹®¼°ü¸® ¿£Áø.EXE
WindowsNT
Windows95
Solaris
ÀÀ¿ë¼¹ö.EXE
AlphaUNIX
IBM Mainframe
µ¥ÀÌÅ º̧£À̽º¼¹ö
Windows95
¹®¼°ü¸® ¾ÖÇǿDocument
FileManager
GraphicFile
File
Repository DocumentList
FileList
usermainWnd fileMgr :
FileMgrrepositorydocument :
DocumentgFile
1: Doc view reques t ( )
2: fetchDoc( )
3: create ( )
4: create ( )
5: readDoc ( )
6: fillDocument ( )
7: readFile ( )
8: fillFile ( )
9: sortByName ( )
ƯÁ¤¹®¼¿¡ ´ëÇÑ º̧ ±â ¦̧ »ç¿ëÀÚ° ¡ ¿äûÇÑ´Ù.
ÈÀÏ°ü¸®ÀÚ´Â Àоî¿Â ¹®¼ÀÇ Á¤º̧ ¦̧ ÇØ´ç ¹®¼ ° ´Ã¼¿¡ ¼³Á¤À» ¿äûÇÑ´Ù.
Ȩ̀ é ° ´Ã¼´Â ÀоîµéÀÎ ° ´Ã¼µé¿¡ ´ëÇØ ÀÌ̧ §º° ·Î Á¤·ÄÀ» ½ÃÄÑ Ȩ̀ é¿¡ º̧ ¿©ÁØ´Ù. Forward and
Reverse Engineering
TargetSystem
Openning
Writing
ReadingClosing
add f ile [ numberOf f ile==MAX ] / f lag OFF
add f ile
close f ile
close f ile
Use Case 3
Use-CaseDiagram Class Diagram
Collaboration Diagram
Sequence Diagram
Component Diagram
StatechartDiagram
GrpFile
read( )open( )create( )fillFile( )
rep
Repository
name : char * = 0
readDoc( )readFile( )
(from Persistence)
FileMgr
fetchDoc( )sortByName( )
DocumentList
add( )delete( )
Document
name : intdocid : intnumField : int
get( )open( )close( )read( )sortFileList( )create( )fillDocument( )
fList
1
FileList
add( )delete( )
1
File
read( )
read() fill the code..
Deployment Diagram
email Fasilkom|| 10/1/2013
UML 2.0
UML version 2.0 memiliki 14 diagram yang terbagi pada 2 kelompok besar:1. Structure Diagrams2. Behavior Diagrams
email Fasilkom|| 10/1/2013
email Fasilkom|| 10/1/2013
UML Structure Diagrams
Mewakili data dan hubungan statis padasistem informasi1. Class Diagram2. Object Diagram3. Package Diagram4. Deployment Diagram5. Component Diagram6. Composite Structure Diagram
email Fasilkom|| 10/1/2013
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
email Fasilkom|| 10/1/2013
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 StructureMenggambarkan struktur internal dari kelas yang
kompleks
email Fasilkom|| 10/1/2013
UML Behavior Diagrams
Menggambarkan hubungan dinamis antaraobjek yang mewakili sistem informasi bisnis
1. Activity Diagram2. Sequence Diagram3. Communication Diagram4. Interaction Diagram
5. Timing Diagram6. Behavior State Machine7. Protocol State Machine8. Use Case Diagrams
email Fasilkom|| 10/1/2013
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
email Fasilkom|| 10/1/2013
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 Menenjukkan interaksi antara sistem dan lingkungan Menangkap kebutuhan bisnus
email Fasilkom|| 10/1/2013
UML Problems
UML merupakan notasi pemodelan, bukansuatu proses development atau suatumetodologi UML didorong oleh proses pengembangan?
UML terlalu rumit, sulit untuk dipahamidengan cepat Haruskah kita menggunakan semua diagram UML?
email Fasilkom|| 10/1/2013
UML Process (EA Sparx)1. Menampilkan batas sistem dan fungsi utama
menggunakan use cases dan actors2. Memodelkan proses bisnis organisasi
dengan activity diagram3. Menggambarkan realisasi use case
menggunakan sequence diagrams4. Merepresentasikan struktur statis dari suatu
sistem dengan menggunakan class diagram5. Mengungkapkan pelaksanaan arsitektur fisik
dengan deployment diagram
email Fasilkom|| 10/1/2013
UML Process (EA Sparx)
1. Use Cases Diagram2. Activity Diagram3. Sequence Diagram4. Class Diagram5. Deployment Diagrams
email Fasilkom|| 10/1/2013
UML Process (Kendal, 2011)
1. Sebuah use case diagram, menggambarkan bagaimana sistemyang digunakan. Analis memulai dengan use case diagram
2. Sebuah activity diagram, menggambarkan aliran keseluruhankegiatan. Setiap use case dapat membuat satu diagram aktivitas
3. Sequence diagram, menunjukkan urutan kegiatan danhubungan kelas. Setiap use case dapat membuat satu ataulebih sequence diagram
4. Class diagrams, menunjukkan kelas dan hubungan. Sequence diagram digunakan untuk menentukan kelas
5. Statechart diagram, menunjukkan keadaan transisi. Setiapkelas dapat membuat statechart diagram, yang berguna untukmenentukan class method
email Fasilkom|| 10/1/2013(Kendall and Kendall, 2011)
email Fasilkom|| 10/1/2013
System Analysis and Design with UML
1. System Analysis1. Business Process Identification
Use Case Diagram
2. Business Process Modeling Activity Diagram
3. Business Process Realization Sequence Diagram
2. System Design1. Program Design
1. Class Diagram2. 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)
email Fasilkom|| 10/1/2013
USE CASE DIAGRAM
Menggambarkan fungsionalitas yang diharapkan darisebuah 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
email Fasilkom|| 10/1/2013
USE CASE DIAGRAM – Use case
Use case diagram terdiri dari: Use case Actors Relationship System boundary boxes (optional)
Use case dinotasikan dengangambar horizontal ellipse
Use case biasanya menggunakan kata kerja
Use case
email Fasilkom|| 10/1/2013
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
email Fasilkom|| 10/1/2013
USE CASE DIAGRAM - Association
Ujung panah pada association antara actor dan use case mengindikasikan siapa/apa yang memintainteraksi dan bukannya mengindikasikan aliran data
Sebaiknya gunakan Garis tanpa panah untukassociation antara actor dan use case
association antara actor dan use case yang menggunakan panah terbuka untuk mengindikasikan bila actor berinteraksi secara pasif dengan systemanda
email Fasilkom|| 10/1/2013
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
BukaRekening
<<include>> catatdata pribadi
Nasabah
email Fasilkom|| 10/1/2013
<<extend>> perluasan dari use case lain jika kondisiatau syarat terpenuhi Kurangi penggunaan association Extend ini, terlalu banyak
pemakaian association ini membuat diagram sulitdipahami.
Tanda panah terbuka harus terarah ke parent/base use case
BukaRekening
<<extend>>
BukaDeposito
Nasabah
USE CASE DIAGRAM - Association
email Fasilkom|| 10/1/2013
USE CASE DIAGRAM - Association
Generalization/inheritance digambarkan dengan sebuah garisberpanah tertutup pada salah satu ujungnya yang menunjukkan lebih umum
Generalization/inheritance dipakai ketika ada sebuahkeadaan yang lain sendiri/perlakuan khusus (single condition)
email Fasilkom|| 10/1/2013
USE CASE DIAGRAM - system boundary boxes
Digambarkan dengan kotak disekitar use case, untukmenggambarkan jangkauan sistem (scope of of your system).
Biasanya digunakan apabila terdapat beberapa alternatif sistem yang dapat dijadikan pilihan
System boundary boxes dalam penggunaannya optional
email Fasilkom|| 10/1/2013
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
email Fasilkom|| 10/1/2013
ACTIVITY DIAGRAM – simbolSimbol Keterangan
Start Point
End Point
Activities
Fork (Percabangan)
Join (Penggabungan)
Decision
Swimlane
Sebuah cara untuk mengelompokkan activity berdasarkan Actor (mengelompokkan activity dalam sebuah urutan yang sama)
email Fasilkom|| 10/1/2013
ACTIVITY DIAGRAM – contohSupplierBagian PembelianBagian Gudang
Memberi informasi dataBarang yang akan dipesan
Menerimainformasi
BuatSPP
TerimaSPP
Kirim Barangdisertai Faktur
Terima Barangdan Faktur
BuatSPBJ
TandatanganiSPBJ
TerimaSPBJ
Konfirmasipembayaran
Melakukanpembayaran
Terimapembayaran
TerimaKwitansi
Buatkwitansi
email Fasilkom|| 10/1/2013
Sequence Diagram
Sequence diagram menggambarkan interaksi antar objekdi dalam dan di sekitar sistem (termasuk pengguna, display, dan sebagainya) berupa message yang digambarkan terhadap waktu.
Sequence diagram terdiri atar dimensi vertikal (waktu) dandimensi horizontal (objek-objek yang terkait).
Sequence diagram biasa digunakan untukmenggambarkan skenario atau rangkaian langkah-langkahyang dilakukan sebagai respons dari sebuah event untukmenghasilkan output tertentu
Diawali dari apa yang men-trigger aktivitas tersebut, proses dan perubahan apa saja yang terjadi secarainternal dan output apa yang dihasilkan
email Fasilkom|| 10/1/2013
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
email Fasilkom|| 10/1/2013
Latihan
Terdapat Sistem ATM dimana pengguna dapat: 1. Melihat Saldo2. Mentransfer Uang3. Mengambil Uang4. Logout
Buatlah use case diagram, activity diagram, dansequence diagram untuk menggambarkan kasus diatas!
email Fasilkom|| 10/1/2013
ATM System
Layar
Kotak Uang Kotak Kartu
Kotak Kuitansi
Masukkan PIN:
Kotak Uang Kotak Kartu
Kotak Kuitansi
Menu Utama1. Melihat Saldo2. Mentransfer Uang3. Mengambil Uang4. 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
email Fasilkom|| 10/1/2013
Use Case Diagram
Pengguna
Sistem ATM
Memasukkan Kartu Memasukkan PIN
Mengecek Saldo
Mentransfer Uang
Mengambil UangMelakukan Logout
«include»
email Fasilkom|| 10/1/2013
Activity Diagram: Memasukkan Kartu
Mulai
Pengguna Sistem ATM
Menyiapkan Kartu
Memasukkan Kartu Memv alidasi Kartu
kartu val id?
Menampilkan MenuPIN
Mengeluarkan Kartu
Selesai
tidak
ya
email Fasilkom|| 10/1/2013
Activity Diagram: Memasukkan PIN
Pengguna Sistem ATM
Mulai
Memasukkan PIN
Memv alidasi Account
pin val id?
Menampilkan MenuUtama
lebih dari 3x?
Memblokkir Kartu
Selesai
ya
tidak
tidak
ya
email Fasilkom|| 10/1/2013
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|| 10/1/2013
Activity Diagram: Mentransfer UangPengguna 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 Tujuan Val id?
Saldo Cukup?
Mentransfer Uang
Selesai
tidak
ya
tidak
ya
email Fasilkom|| 10/1/2013
Activity Diagram: Mengambil UangPengguna Sistem ATM
Mulai
Memilih Menu 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
Selesai
tidak
ya
email Fasilkom|| 10/1/2013
Activity Diagram: Melakukan LogoutSistem ATMPengguna
Mulai
Memilih Keluar di Menu Utama
Memproses Logout
Mengeluarkan Kuitansi
Mengeluarkan KartuMengambil Kuitansi
Mengambil Kartu
Selesai
email Fasilkom|| 10/1/2013
Sequence Diagram: Memasukkan Kartu
Pengguna
(from 1 Use Case Diagram)
KotakKartu ProsesValidasiKartu MenuPIN
alt kartu v alid?
[ya]
[tidak]
memasukanKartu()
validasiKartu()
tampilkan()
mengeluarkanKartu()
email Fasilkom|| 10/1/2013
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)
email Fasilkom|| 10/1/2013
Sequence Diagram: Memasukkan PIN
Pengguna
(from 1 Use Case Diagram)
MenuPIN ProsesValidasiAccount LoginAccount MenuUtama
alt PIN v alid?
[ya]
[tidak]
alt lebih dari 3x?
[tidak]
[ya]
memasukkanPIN()
validasi(id, pin)
getIDLogin()
getPIN()
tampilkan()
tampilkan()
blokirAccount()
errorKartuDiblokir()
email Fasilkom|| 10/1/2013
Sequence Diagram: Mengecek Saldo
Pengguna
(from 1 Use Case Diagram)
MenuUtama MenuMengecekSaldoProsesMengecekSaldo Account Balance Transaksi
memil ihMengecekSaldo()
l ihatSaldo(id)
getIDBalance()
getSaldo()
setTransaksi(tgl, jenis)
tampilkanHasil(saldo)
email Fasilkom|| 10/1/2013
Sequence Diagram: Mentransfer Uang
Pengguna
(from 1 Use Case Diagram)
MenuUtama MenuMentransferUang ProsesMentransferUang Account pengirim:Balance penerima:Balance Transaksi
alt saldo cukup?
[ya]
[tidak]
memilihMentransferUang()
tampilkan()
memasukkanJumlahUang()
memasukkanAccountTujuan()
transferUang(id, jumlah)
getIDBalance()
getSaldo()
setSaldo(saldo)
setSaldo(saldo)
setTransaksi(tgl, jenis)
tampi lkanUangBerhasi lDiki rim()
tampilkanErrorSaldoTidakCukup()
email Fasilkom|| 10/1/2013
Sequence Diagram: Mengambil Uang
Pengguna
(from 1 Use Case Diagram)
MenuUtama MenuMengambilUang ProsesMengambilUang Account Balance KotakUangTransaksi
alt saldo cukup?
[ya]
[tidak]
memi lihMengambilUang()
tampilkan()
memasukkanJumlah()
ambi lUang(id, jumlah)
getIDBalance()
getSaldo()
setSaldo(saldo)
keluarkanUang(jumlah)
setTransaksi(tgl, jenis)
Tampi lkanUangBerhasilDiambil()
TampilkanErrorSaldoTidakCukup()
email Fasilkom|| 10/1/2013
Sequence Diagram: Melakukan Logout
Pengguna
(from 1 Use Case Diagram)
MenuUtama MenuLogout ProsesLogout KotakKuitansi KotakKartu
memil ihKeluar()
tampilkan()
logout()
keluarkanKuitansi()
keluarkanKartu()
tampilkanTelahKeluar()
email Fasilkom|| 10/1/2013