OOAD Pengenalan Analisis Berorientasi Objek

  ANALI SI S BERORI ENTASI OBJEK Defri Kurniaw an M .Kom

  Analisa dan Desain Berorientasi Objek

  Cont ent

  Analisis Berorint asi Objek 

  Analysis Design Paradigm and Diagrams 

  UM L  What UM L? 

  Why M odeling? 

  The Triangle of Success in Soft w are Dev  UM L Tools, Diagram, Version, St ruct ure Diagram, Behavior Diagram,

  Problem, Process  Syst em Analysis and Design w it h UM L

   Use Case Diagram

   Act ivit y Diagram

   Sequence Diagram 

  Case St udy: ATM Syst em

  Analisis Ber or ient asi Objek

Analisis Berorientasi Objek

   Berfokus pada pendefinisian kelas-kelas dan cara bagaimana mereka saling bekerjasama sat u dengan yang lainnya unt uk memenuhi kebut uhan para pelanggan.

   Pada Paradigma Analysis Design dan Diagram, Unified M odeling Language (UM L) merupakan perkakas (t ools) yang digunakan unt uk melakukan pemodelan berorient asi objek

  Analysis Design Par adigm and Diagr ams 1.

  Dat a -orient ed  DFD 2.

  Process -orient ed

  Flow chart 3.

  Object -orient ed (dat a + process) 

  UM L

  What is t he UML?  UM L: Unified M odeling Language  UM L dapat digunakan unt uk memodelkan semua proses dalam siklus hidup pengembangan dan seluruh t eknologi implement asi yang berbeda

   UM L adalah bahasa st andar unt uk memvisualisasikan,menspesifiksi, konst ruksi, dan mendokument asikan art ifak dari sist em perangkat lunak

   UM L adalah suat u alat komunikasi unt uk t eam dan para st akeholders

  Why Modeling? M odeling menangkap bagian pent ing dari sist em

  (James Rumbaugh) Comput er Syst em Business Process

  Visual M odeling adalah pemodelan yang menggunakan not asi grafik st andar

  The Tr iangle of Success in Soft war e Dev.

  Notation : Standard Tools : Support Standard and Process Process : Customer- Oriented M ethodology

  UML Tools

  Rat ional Rose 

  Visual Paradigm 

  Ent erprise Archit ect 

  M icrosoft Visio  St ar UM L  Net beans UM L Plugin

  UML Diagr ams Use-Case Statechart Class Diagram Diagram Actor A Use Case 1 Use Case 2 add( ) Actor B sortBy Name( ) fetchDoc( ) FileMgr delete( ) FileList read( ) delete( ) add( ) DocumentList fList numField : int open( ) read() fill the docid : int get( ) name : int create( ) close( ) code.. fillDocument( ) sortFileList( ) Document Diagram Openning add f ile [ numberOf f ile==MAX ] / f lag OFF close f ile add f ile Writing Use Case 3 (from Persistence) GrpFile name : char * = 0 readDoc( ) Repository rep read( ) File

  1 1 read( ) Reading close f ile Closing readFile( ) open( ) fillFile( ) create( ) Deployment 9: sortBy Name ( ) DocumentList Diagram Collaboration 1: Doc view request ( ) L mainWnd : MainWnd FileManager Repository Window95 Windows95 Windows95 Diagram user : Clerk fileMgr : FileMgr 7: readFile ( ) 5: readDoc ( ) 2: fetchDoc( ) 8: fillFile ( ) 4: create ( ) 6: fillDocument ( ) 3: create ( ) gFile : GrpFile Document GraphicFile File FileList ạđẳư°ỹáđ ĂểờóÀÌớđẳệ.EXE Windows NT ¹®¼­°ü¸® ¿£Âø.EXE Windows NT Mainframe IBM ÀÀ¿ë¼­¹ö.EXE Solaris ÓợÒỨổüĨợ ¾ơđấĨÍ Alpha UNIX ặ¯ÁÔạđẳư¿Ă ´ ởầẹ ºá± õáƯ 1: Doc view request ( ) »ç¿ëÀÚ°¡ ¿äûÇÑ´ Ù. user repository : Repository mainWnd fileMgr : document : gFile repository Component FileMgr Document document : Document µ¥ÀÌŸº£À̽º¼­¹ö 2: fetchDoc( ) 3: create ( ) 4: create ( ) Diagram ° ´ ü¿¡ ¼³Á¤À» ¿äûÇÑ´ Ù. ÓợÒỨầđ ÁẵửĨĨỠ đừÍ ç ÓợÒỨ È­ÀÏ°ü¸®ÀÚ´  Àоî¿Â 6: fillDocument ( ) 7: readFile ( ) 5: readDoc ( )

  Target È­¸é °´ ü´  ÀоîµéÀÎ 9: sortByName ( ) º¸¿©Ẩ´ Ù. Á¤·ÄÀ» ½ÃÄÑ È­¸é¿¡ ổ Í ấÒÌéự¡ Í ẽđừ ầỉĨớửổ Ỉị 8: fillFile ( ) System Forward and Reverse Sequence

  Engineering Diagram

  UML 2.0 UM L version 2.0 memiliki 14 diagram yang t erbagi pada 2 kelompok besar:

  Behavior Diagrams

  UML St r uct ur e Diagr ams

M ew akili dat a dan hubungan st at is pada

sist em informasi

  1. Class Diagram

  2. Object Diagram 3.

Package Diagram

  4. Deployment Diagram

  5. Component Diagram

  6. Composit e St ruct ure Diagram

  St r uct ur e Diagr ams 1.

  Class Diagrams 

  Kosakat a umum yang digunakan oleh analis dan pengguna  M ew akili sesuat u/ benda (employee, paycheck,…) 

  M enenjukkan hubungan ant ar kelas 2.

  Object Diagrams 

  M irip dengan Class Diagram 

  Gambaran t ent ang objek-objek dalam sist em 

  Hubungan ant ar objek

   Kelompok elemen-elemen UM L digunakan unt uk membent uk t ingkat konst ruksi yang lebih t inggi

  St r uct ur e Diagr ams

  4. Deployment Diagrams 

  

M enunjukkan arsit ekt ur fisik dan komponen perangkat

lunak sist em 

  For example, net w ork nodes 5.

  Component Diagrams 

  Hubungan fisik di ant ara komponen perangkat lunak 

  Example – Client / Server (M esin mana yang berjalan pada soft w are yang mana)

  6. Composit e St ruct ure  M enggambarkan st rukt ur int ernal dari kelas yang kompleks

  UML Behavior Diagr ams M enggambarkan hubungan dinamis ant ara objek yang mew akili sist em informasi bisnis

  Sequence Diagram 3. Communicat ion Diagram 4. Int eract ion Diagram 5.

  Timing Diagram 6. Behavior St at e M achine 7. Prot ocol St at e M achine 8. Use Cas e Diagrams

  Behavior Diagr ams 1.

  Act ivit y Diagrams 

  M odel proses pada suat u sist em informasi 

  Example: Business w orkflow s, business logic

  2. Int eract ion Diagrams 

  M enunjukkan int eraksi anat ar objek

  3. Sequence Diagrams  Urut an berdasarkan w akt u int eraksi

  4. Communicat ion Diagrams 

  Komunikasi ant ara sekumpulan objek yang berkolaborasi dari suat u akt ivit as

  Behavior Diagr ams 5.

  Int eract ion Diagrams 

  Kilasan aliran cont rol dari suat u proses 6.

  Timing Diagrams 

  M enunjukkan bagaimana suat u objek berubah dari w akt u ke w akt u

  7. St at e M achines 

  M emeriksa perilaku dari suat u kelas 

  M enunjukkan model keadaan-keadaan yang berbeda dan t ransisi keadaan dari suat u objek

  8. Use-Case Diagrams 

  M enunjukkan int eraksi ant ara sist em dan lingkungan  M enangkap kebut uhan bisnis

  UML Pr ocess (EA Spar x) 1.

  M enampilkan bat as sist em dan fungsi ut ama menggunakan use cases dan act ors

  2. M emodelkan proses bisnis organisasi dengan act ivit y diagram 3.

  M enggambarkan realisasi use case menggunakan sequence diagrams

  4. M erepresent asikan st rukt ur st at is dari suat u sist em dengan menggunakan class diagram 5.

  M engungkapkan pelaksanaan arsit ekt ur fisik dengan deployment diagram

UML Pr ocess (EA Spar x) 1

  Use Cases Diagram 2. Act ivit y Diagram 3. Sequence Diagram 4. Class Diagram 5. Deployment Diagrams

  UML Pr ocess (Kendal, 2011) 1.

  Sebuah use case diagram , menggambarkan bagaimana sist em yang digunakan. Analis memulai dengan use case diagram

  kegiat an. Set iap use case dapat membuat sat u diagram akt ivit as 3.

  Sequence diagram, menunjukkan urut an kegiat an dan hubungan kelas. Set iap use case dapat membuat sat u at au lebih sequence diagram 4.

  Class diagrams , menunjukkan kelas dan hubungan. Sequence diagram digunakan unt uk menent ukan kelas 5.

  St at echart diagram, menunjukkan keadaan t ransisi. Set iap

kelas dapat membuat st at echart diagram, yang berguna unt uk

menent ukan class met hod

  Syst em Analysis and Design wit h UML 1.

  Syst em Analysis 1.

  Business Process Ident ificat ion Use Case Diagram 2.

  Business Process M odeling Activity Diagram 3.

  Business Process Realizat ion Sequence Diagram 2.

  Syst em Design 1.

  Program Design 1.

  Class Diagram 2. Package Diagram (Gabungan class yang sesuai) 3. Deployment Diagram (arsit ekt ur soft w are dari sist em yang dibangun) 2.

  User Interface Design (Buat UI design ) 3.

  Entity-Relationship M odel

(Buat ER diagram)

   M enggambarkan fungsionalit as yang diharapkan dari sebuah sist em.

  

 M enekankan “ apa” yang diperbuat sist em , dan bukan

“ bagaimana” .

   M enggambarkan kebut uhan sist em dari sudut pandang pengguna (user)

   M engfokuskan pada proses komput erisasi (aut omat ed processes )

  

 M enggambarkan hubungan ant ara use case dan act or

  USE CASE DIAGRAM – Use caseUse case diagram t erdiri dari:

   Use caseAct orsRelat ionshipSyst em boundary boxes (opt ional)

   Use case dinot asikan dengan gambar horizont al ellipse

   Use case biasanya menggunakan kata kerja

  Use case

  USE CASE DIAGRAM - ACTOR  Act or menggambarkan orang, sist em at au ext ernal ent it as / st akeholder yang menyediakan at au menerima informasi dari sist em

   Act or menggambarkan sebuah t ugas/ peran/ role, bukan posisi sebuah jabat an

   Act or memberi input at au menerima informasi dari sist em

   Act or biasanya menggunakan Kata benda

   Indikasi <<syst em>> unt uk sebuah act or yang merupakan sebuah sist em

   Let akkan act or ut ama anda pada pojok kiri at as dari diagram

  USE CASE DIAGRAM - Associat ion  Ujung panah pada associat ion ant ara act or dan use case mengindikasikan siapa/ apa yang memint a int eraksi dan bukannya mengindikasikan aliran dat a

   Sebaiknya gunakan Garis t anpa panah unt uk associat ion ant ara act or dan use case

   associat ion ant ara act or dan use case yang

menggunakan panah t erbuka unt uk mengindikasikan

bila act or berint eraksi secara pasif dengan syst em anda

  USE CASE DIAGRAM - Associat ion  <<include>> t ermasuk di dalam use case lain

  (required) / (diharuskan) 

  Pemanggilan use case oleh use case lain, cont ohnya adalah pemanggilan sebuah fungsi program 

  Tanda panah t erbuka harus t erarah ke sub use case

Buka <<include>> catat

Rekening data pribadi

  Nasabah

  USE CASE DIAGRAM - Associat ion  <<ext end>> perluasan dari use case lain jika kondisi at au syarat t erpenuhi

   Kurangi penggunaan associat ion Ext end ini, t erlalu banyak pemakaian associat ion ini membuat diagram sulit dipahami.

  

Tanda panah t erbuka harus t erarah ke parent / base use

case

  Buka Rekening <<extend>> Nasabah

  Buka Deposito

  USE CASE DIAGRAM - Associat ion

  

Generalizat ion/ inherit ance digambarkan dengan sebuah garis

berpanah t ert ut up pada salah sat u ujungnya yang menunjukkan lebih umum

   Generalizat ion/ inherit ance dipakai ket ika ada sebuah

keadaan yang lain sendiri / perlakuan khusus (single condit ion)

  USE CASE DIAGRAM - syst em boundar y boxes

  Digambarkan dengan kot ak disekit ar use case, unt uk menggambarkan jangkauan sist em (scope of of your syst em).

  

Biasanya digunakan apabila t erdapat beberapa alt ernat if sist em

yang dapat dijadikan pilihan

   Syst em boundary boxes dalam penggunaannya opt ional

   M enggambarkan proses bisnis dan urut an akt ivit as dalam sebuah proses

   Dipakai pada business modeling unt uk memperlihat kan urut an akt ifit as proses bisnis

   St rukt ur diagram ini mirip flow chart at au Dat a Flow Diagram pada perancangan t erst rukt ur

   membant u memahami proses secara keseluruhan

ACTIVITY DIAGRAM – simbol Simbol Ket erangan End Point Start Point

  Activities Fork (Percabangan) Join (Penggabungan) Decision Swimlane activity berdasarkan Actor sebuah urutan yang sama) (mengelompokkan activity dalam Sebuah cara untuk mengelompokkan

  ACTIVITY DIAGRAM – cont oh Bagian Gudang Bagian Pembelian Supplier Barang yang akan dipesan informasi Memberi informasi data Menerima

Buat

Terima Terima Barang Kirim Barang dan Faktur SPP SPP disertai Faktur SPBJ SPBJ SPBJ Buat Tandatangani Terima Melakukan Konfirmasi pembayaran pembayaran Terima Buat pembayaran Terima Kwitansi 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 Diagr am

  Case St udy: ATM Syst em System Analysis:

  1. Business Process Identification  Use Case Diagram

  2. Business Process Modeling  Activity Diagram

  3. Business Process Realization  Sequence Diagram

  Latihan  Terdapat Sist em ATM dimana pengguna dapat :

  1. M elihat Saldo

  2. M ent ransfer Uang 3.

  M engambil Uang

  4. Logout  Buat lah use case diagram, act ivit y diagram, dan sequence diagram unt uk menggambarkan kasus di at as!

  ATM Syst em

Layar

  Kotak Uang Kotak Kart u Kotak Kuitansi

M asukkan PIN:

  Kotak Uang Kotak Kart u Kotak Kuitansi

  M enu Utama

  1. M elihat Saldo

  2. M ent ransfer Uang

  3. M engambil Uang

  4. Logout Kotak Kart u Kotak Uang Kotak Kuitansi

M enu M elihat Saldo 1. Saldo anda adalah …

  Kotak Kart u Kotak Uang Kotak Kuitansi M enu M ent ransfer Uang

  Kotak Kart u Kotak Uang Kotak Kuitansi M enu M ent ransfer Uang

  Kotak Kart u Kotak Uang Kotak Kuitansi M enu M ent ransfer Uang

  Kotak Kart u Kotak Uang Kotak Kuitansi M enu M engambil Uang

  Kotak Kart u Kotak Uang Kotak Kuitansi M enu M engambil Uang

Uang berhasil diambil

  Kotak Kart u Kotak Uang Kotak Kuitansi

Use Case Diagr am

  Pengguna

Sistem AT M

Memasukkan Kartu Memasukkan PIN Mengecek Saldo Mentransfer Uang Mengambil Uang Melakukan Logout «include»

  Act ivit y Diagr am: Memasukkan Kar t u Pengguna Sistem ATM Mulai

  Menyiapkan Kartu Memasukkan Kartu Memv alidasi Kartu kartu valid? tidak Mengeluarkan Kartu

Menampilkan MenuPIN

ya

  Selesai

  Act ivit y Diagr am: Memasukkan PIN Pengguna Sistem ATM Mulai Memasukkan PIN

  Memv alidasi Account

pin valid?

  Menampilkan MenuUtama Memblokkir Kartu lebih dari 3x? Selesai ya tidak tidak ya

Act ivit y Diagr am: Mengecek Saldo

  Pengguna Sistem ATM Mulai Memilih Mengecek Saldo di Menu Utama Memproses Pengecekan Saldo Menampilkan Saldo di Menu Saldo

  Selesai

  Act ivit y Diagr am: Ment r ansfer 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

  Act ivit y Diagr am: Mengambil Uang Pengguna Sistem ATM Memilih M enu Mengambil Mul ai 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

  Act ivit y Diagr am: Melakukan Logout Pengguna Sistem ATM M ulai

  Memilih Keluar di Menu M emproses Logout Utama Mengeluarkan Kuitansi Mengambil Kuitansi M engeluarkan Kartu Mengambil Kartu Sel esai

  Sequence Diagr am: Memasukkan Kar t u Pengguna KotakKartu ProsesValidasiKartu MenuPIN memasukanKartu() alt kartu v alid?

validasiKartu()

[tidak] [ya] tampilkan() mengeluarkanKartu()

  (from 1 Use Case Diagram)

  Type of Class 1.

  Boundary Class 

  Class yang berhubungan dengan act or (user int erface)

  2. Cont rol Class 

  Class yang berhubungan dengan pemrosesan, komput asi, penghit ungan, dsb

  3. Ent it y Class  Class yang berhubungan dengan dat a (flat file or dat abase)

  Sequence Diagr am: Memasukkan PIN Pengguna

  (from 1 Use Case Diagram) M enuPIN ProsesValidasiAccount Login Account 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 Diagr am: Mengecek Saldo Pengguna

  (from 1 Use Case Diagram) MenuUtama MenuMengecekSaldo ProsesMengecekSaldo Account Balance Transaksi memilihMengecekSaldo() lihatSaldo(id) getIDBalance() getSaldo() setTransaksi(tgl, jenis) tampilkanHasil(saldo)

Sequence Diagr am: Ment r ansfer Uang

  

Pengguna MenuUtama MenuMentransferUang ProsesM entransferUang Account pengirim:Bal ance penerim a:Balance T ransaksi

memi li hMentransferUang() memasukkanJumlahUang() tampilkan() memasukkanAccountT uj uan() transferUang(id, jumlah) alt saldo cukup? getIDBalance() getSaldo() [ya] setSal do(sal do) setSaldo(saldo) setT ransaksi(tgl, jenis) [ti dak] tampil kanErrorSaldoT idakCukup() tam pi lkanUangBerhasi lDi ki ri m()

  Sequence Diagr am: Mengambil Uang

Pengguna MenuUtama MenuMengambilUang ProsesMengambilUang Account Balance Transaksi KotakUang

memi lihMengambil Uang() memasukkanJuml ah() tampilkan() ambi lUang(id, jumlah) getIDBalance() getSaldo() [ya] alt saldo cukup? setSaldo(saldo) keluarkanUang(juml ah) Tampi lkanUangBerhasil Diambil() setTransaksi(tgl, jenis)

  [tidak] TampilkanErrorSal doTidakCukup()

  Sequence Diagr am: Melakukan Logout Pengguna

  (from 1 Use Case Diagram) MenuUtama MenuLogout ProsesLogout KotakKuitansi KotakKartu memilihKeluar() tampilkan() logout() keluarkanKuitansi() keluarkanKartu() tampilkanTelahKeluar()