You are on page 1of 81

Systems Analysis and Design with

UML
Analysis Design Paradigm and
Diagrams
Paradigm Diagrams
1 Process-oriented Flowchart
2 Data-oriented DFD
3 Object-oriented UML
(data + process)
Sejarah UML
Booch, Jacobson, Rumbaugh
• In the 90s, many people
creating OO diagramming languages
• Three different ones created by Grady Booch,
Ivar Jacobson, James Rumbaugh
• Joined forces with
Rational (company) to
create Unified Modeling
Langauge (UML)
2003  UML 2.0
Sejarah UML 2011  UML 2.4
What is the UML?
• UML: Unified Modeling Language
• UML can be used for modeling all processes in the
development life cycle and across different
implementation technologies (technology and
language independent)
• UML is the standard language for visualizing,
specifying, constructing, and documenting the
artifacts of a software-intensive system
• UML is a communication tool – for the team, and
other stakeholders
UML Tools
• Rational Rose
• Visual Paradigm
• Enterprise Architect
• Microsoft Visio
• Star UML
• Netbeans UML Plugin
UML 2.0 Diagrams
UML version 2.0 has 14 diagrams in 2 groups:
1. Structure Diagrams
2. Behavior Diagrams
UML 2.0 Diagram
UML Structure Diagrams
Represent the data and static
relationships in an information system
1. Class Diagram
2. Object Diagram
3. Package Diagram
4. Deployment Diagram
5. Component Diagram
6. Composite Structure Diagram
UML Behavior Diagrams
Depict the dynamic relationships among the
instances or objects that represent the
business information system
1. Activity Diagram 5. Timing Diagram
2. Sequence Diagram 6. Behavior State Machine
3. Communication Diagram 7. Protocol State Machine
4. Interaction Diagram 8. Use Case Diagrams
UML Problems
1. UML is modeling notation, it is not a
development process or a methodology
– UML driven development process?

2. UML is too complex, difficult to understand


quickly
– Should we use all UML diagrams?
UML Process (EA Sparx)
1. Display the boundary of a system and its
major functions using use cases and actors
2. Model the organization’s business process
with activity diagram
3. Illustrate use case realizations with sequence
diagrams
4. Represent a static structure of a system using
class diagrams
5. Reveal the physical implementation
architecture with deployment diagrams
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. A use case diagram, describing how the system is used.
Analysts start with a use case diagram
2. An activity diagram, illustrating the overall flow of
activities. Each use case may create one activity diagram
3. Sequence diagrams, showing the sequence of activities
and class relationships. Each use case may create one or
more sequence diagrams
4. Class diagrams, showing the classes and relationships.
Sequence diagrams are used to determine classes
5. Statechart diagrams, showing the state transitions. Each
class may create a statechart diagram, which is useful
for determining class methods
(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 or Business Process Modeling Notation (BPMN)
3. Business Process Realization
• Sequence Diagram (Buat untuk setiap use case dengan menggunakan pola Boundary-Control-Entity)

2. System Design
1. Program Design
a. Class Diagram (Gabungkan Boundary-Control-Entity Class dan susun story dari sistem yang dibangun)
b. Package Diagram (Gabungan class yang sesuai, boleh menggunakan pola B-C-E)
c. Deployment Diagram (arsitektur software dari sistem yang dibangun)
2. User Interface Design (Buat UI design dari Boundary Class)
3. Entity-Relationship Model (Buat ER diagram dari Entity Class)
SDLC and Deliverables
1. Planning System
1.1 System Request
Proposal
1.2 Feasibility Analysis
2. Analysis
2.1 Use Case Diagram
2.2 Activity Diagram
2.3 Sequence Diagram System
3. Design Specification
3.1 Class Diagram
3.2 Deployment Diagram
3.3 User Interface Design
3.4 Data Model
New
4. Implementation
4.1 Program Code Software
4.2 Testing Plan
4.3 Documentation
Use Case Diagram

3.3.3 BUSINESS PROCESS


IDENTIFICATION
Use Case Diagrams
• Summarized into a single picture
• All of the use cases for the part of the system
being modeled
• Use case represents the discrete activities
performed by the user
• Use Case Diagram tells what the system will
do
• Good for communicating with users
Use Case Diagram Syntax
• Actor
– person or system that derives benefit
from and is external to the subject
• Use Case
– Represents a major piece of system
functionality
• Association Relationship
• Include Relationship <<includes>>

• Extend Relationship <<extends>>

• Generalization Relationship
Use Case
• A major piece of
system functionality Use Case
• Can extend other
Use Cases
• Placed inside system boundary
• Labeled with descriptive
verb - noun phrase
System Boundary
• Includes the name Boundary
of the system
inside or on top
• Represents the
scope of the system
• Actors are outside the scope of the system
Actor
• A person or another
system that interacts
with the current system
• A role, not a specific user
actor
• Provides input, Actor/Role
receives output, or both
Association Relationship
• Links actor and the Use Case
• Shows two-way communication
– If one-way, arrows are used
• * is for "multiplicity of the Association"

* *
Extends Relationship
• Extends Use Case to include Optional
behavior
• Arrow points from the extension Use Case to
the base Use Case
extend

Make Payment extend Make


Arrangement Appointment
Include Relationship
• Include one Use Case from within
another
• Arrow points from base Use Case to the
included Use Case
include

Make New include Create New


Patient Appointment Patient
Generalization Relationship
• A specialized Use Case to a more
generalized Use Case
• Arrow points from specialized to
general Use Case

Make Old Make


Appointment Appointment
Use Case Diagram for Appointment System
Use Case Diagram with Specialized Actor
Extend and Include Relationships
Sistem Konsultasi Dokter Rumah Sakit
uc UCD Appointment System

Sistem Konsul tasi Dokter Rumah Sakit

Membuat Janj ian Mengatur Cara


Konsultasi «extend» Pembayaran

Membuat Janj ian Membuat Janj ian


Konsultasi untuk Konsultasi untuk Melakukan
Pasien Lama Pasien Baru Persetuj uan Janj ian
Konsultasi
Peraw at
Pasien Lama
«extend» «include»

Mengupdate Data
Membuat Kartu Pasien
Pasien Lama

Menginput Hari dan


Pasien Jam Praktek
Dokter

«include»

Mengelola Jadw al
Praktek Mempublikasikan
«include» Jadw al Praktek

Administrator

Pasien Baru
STUDI KASUS: ATM SYSTEM
ATM System
ATM System

Layar

Kotak Uang Kotak Kartu

Kotak Kuitansi
Menu PIN

Masukkan PIN:

Kotak Uang Kotak Kartu

Kotak Kuitansi
Menu Utama
1. Mengecek Saldo
2. Mentransfer Uang
3. Mengambil Uang
4. Logout

Kotak Uang Kotak Kartu

Kotak Kuitansi
Menu Pengecekan Saldo

1. Saldo anda adalah …

Kotak Uang Kotak Kartu

Kotak Kuitansi
Menu Pengiriman Uang

1. No Account Penerima:

Kotak Uang Kotak Kartu

Kotak Kuitansi
Menu Pengiriman Uang

1. Jumlah uang yang dikirim:

Kotak Uang Kotak Kartu

Kotak Kuitansi
Menu Pengiriman Uang

1. Uang berhasil terkirim

Kotak Uang Kotak Kartu

Kotak Kuitansi
Menu Pengambilan Uang

1. Jumlah uang yang diambil:

Kotak Uang Kotak Kartu

Kotak Kuitansi
Menu Pengambilan Uang

Uang berhasil diambil

Kotak Uang Kotak Kartu

Kotak Kuitansi
Use Case Diagram (versi Sederhana)
uc UCD Sistem ATM Sederhana

Sistem ATM

Memasukan PIN

Mengecek Saldo

Nasabah Mengirim Uang

Mengambil Uang

Melakukan Logout
Use Case Diagram (versi include dan extends)
uc UCD Sistem ATM Kompleks

Sistem ATM

Memasukan Kartu Memasukan PIN


«include»

Mengupdate Informasi
Kotak Deposit

Mengecek Saldo
Petugas

«extend»

Nasabah Melakukan Transaksi


Perbankan
«extend» Mengambil Uang

Sistem Core Banking


«extend»

Melakukan Logout
Mengirim Uang
ERP Perbankan (Sistem Lebih Kompleks)
uc ERP Perbankan

ERP Perbakan

ATM Module Human Resource Module

+ Nasabah + Kepala Divisi


+ Mengambil Uang + Staff
+ Mengecek Saldo + Melakukan Persetujuan Cuti
+ Mengirim Uang + Menganalisis Beban Kerja

Finance Module Proj ect Management Module

uc ATM Module

ATM Module

Mengecek Saldo

Mengirim Uang

Nasabah
Mengambil Uang
Use Case Diagram (Versi Normal)
uc UCD Sistem ATM

Sistem ATM

Memasukan Kartu Memasukan PIN


«include»

Mengecek Saldo
Mengupdate Informasi
Kotak Deposit
Petugas

Nasabah

Mengambil Uang

Sistem Inti Perbankan


Mengirim Uang

Keluar Sistem
• Activity Diagram
• Business Process Model and Notation

3.3.4 BUSINESS PROCESS


MODELING
BUSINESS PROCESS MODELING
WITH ACTIVITY DIAGRAMS
Activity Diagram Syntax
Creating Activity Diagrams
1. Set the context or scope of the activity
being modeled
2. Identify the activities and
control/object flows between activities
3. Identify any decisions made
4. Look for opportunities for parallelism
5. Draw the diagram
STUDI KASUS: ATM SYSTEM
Use Case Diagram
uc UCD Sistem ATM

Sistem AT M

Memasukan Kartu Memasukan PIN


«include»

Mengecek Saldo
Mengupdate Informasi
Kotak Deposit
Petugas

Nasabah

Mengambil Uang

Sistem Inti Perbankan


Mengirim Uang

Keluar Sistem
Activity Diagram: Memasukkan Kartu
act 1 AD Memasukan Kartu

Petugas

Nasabah Sistem ATM

Mul ai

Masukan
Validasi Kartu
Kartu

Kartu Val id?

ti dak ya

Keluarkan Tampilkan
Kartu Menu PIN

Selesai
Activity Diagram: Memasukkan PIN
act 2 AD Memasukan PIN

Petugas

Nasabah Sistem ATM

Mulai

Masukan PIN di
Validasi PIN
Menu PIN

tidak
Entri Lebih dari 3x? Jenis Pengguna?
tidak PIN Valid? ya

ya Nasabah petugas

Tampilkan Menu Tampilkan Menu


Blokir Kartu
Utama Administrasi

Selesai
Activity Diagram: Mengecek Saldo
act 3 AD Mengecek Saldo

Nasabah Sistem ATM Sistem Inti Perbankan

Mul ai

Pilih Cek Saldo dari Menu


Request Cek Saldo Proses Cek Saldo
Utama

Tampilkan di Menu
Pengecekan Saldo

Selesai
Activity Diagram: Mengambil Uang
act 4 AD Mengambil Uang

Nasabah Sistem ATM Sistem Inti Perbankan

Mulai

Pilih Ambil Uang dari Tampilkan Menu


Menu Utama Pengambilan Uang

Cek
Masukan Jumlah Request Kecukupan
Uang Kecukupan
Saldo
Saldo

Saldo Cukup?
tidak
Tampilkan Error Saldo
Tidak Cukup

tidak

Keluarkan Uang di Proses Ambil


Kotak Uang Uang

Selesai
Activity Diagram: Mengirim Uang
act 5 AD Mengirim Uang

Nasabah Sistem ATM Sistem Inti Perbankan

Mulai

Pilih Kirim Uang Tampilkan Menu


di Menu Utama Pengiriman Uang

Masukan No Request Validasi No Validasi No Rekening


Rekening Tuj uan Rekening Tuj uan Tuj uan

tidak No Rekening Valid?


Tampilkan Error No
Rekening Tidak Valid

ya
Masukan Jumlah Tampilkan Isian
Uang Jumlah Uang

tidak

Request Cek Cek Kecukupan Saldo


Kecukupan Saldo

Saldo Cukup?

ya

Tampilkan Pesan Proses Pengiriman


Uang Berhasil Dikirim Uang

Selesai
Activity Diagram: Mengupdate Informasi Kotak Deposit
act 6 AD Mengupdate Informasi Kotak Deposit

Petugas Sistem ATM

Mulai

Pilih Update Informasi Kotak Tampilkan Menu Update


Deposit di Menu Utama Informasi Kotak Deposit

Masukan Data tentang


Validasi Data Masukan
Kotak Deposit Baru

tidak

tidak Data Valid?


Tampilkan Error dan
Permintaan Update Data

ya
Setujui Data Masukan?
Tampilkan Data dan
Permintaan Konfirmasi

ya

Update Data Kotak Deposit

Selesai
Activity Diagram: Keluar Sistem
act 7 AD Keluar Sistem

Petugas Sistem ATM

Nasabah

Mulai

Pilih Keluar Sistem di


Proses Keluar Sistem
Menu Utama

Keluarkan Kartu Keluarkan Kuitansi

Tampilkan Pesan
Telah Keluar Sistem

Selesai
Sequence Diagram

3.3.5 BUSINESS PROCESS


REALIZATION
System Analysis and Design with UML
1. System Analysis
1. Business Process Identification
• Use Case Diagram
2. Business Process Modeling
• Activity Diagram or Business Process Modeling Notation (BPMN)
3. Business Process Realization
• Sequence Diagram (Buat untuk setiap use case dengan menggunakan pola Boundary-Control-Entity)

2. System Design
1. Program Design
1. Class Diagram (Gabungkan Boundary-Control-Entity Class dan susun story dari sistem yang dibangun)
2. Package Diagram (Gabungan class yang sesuai, boleh menggunakan pola B-C-E)
3. Deployment Diagram (arsitektur software dari sistem yang dibangun)
2. User Interface Design (Buat UI design dari Boundary Class)
3. Entity-Relationship Model (Buat ER diagram dari Entity Class)
Sequence Diagram
1. Susun Sequence Diagram untuk setiap Use
Case yang dibuat
2. Mulai dari menarik Actor yang ada di Use
Case Diagram, lanjutkan dengan membuat
sequence detail dari berjalannya Use Case

Catatan: Objek dari Lifeline di Sequence Diagram akan


menjadi kandidat Class
Jenis Class
1. Boundary Class:
– Class yang berinteraksi dengan aktor langsung
(user interface)
– Form, input, UI ini masuk di sini
2. Control Class:
– Class yang berhubungan dengan pemrosesan,
penghitungan, kalkulasi, komputasi, query, dst
3. Entity Class:
– Class yang berhubungan dengan data,
penyimpanan data/file
Simbol Sequence Diagram
STUDI KASUS: ATM SYSTEM
Sequence Diagram: Memasukkan Kartu
sd 1 SD Memasukan Kartu

Nasabah Petugas
KotakKartu Manaj erValidasi MenuPIN

masukanKartu()

validasiKartu()

alt Kartu Valid? tampilkan()


[ya]

[tidak]
keluarkanKartu()
Sequence Diagram: Memasukkan PIN
sd 2 SD Memasukan PIN

:Nasabah
MenuPIN Manaj erValidasi Login MenuUtama

masukanPIN()
validasi PIN(id)
getPIN()

alt PIN Valid? tampi l kan()


[ya]

[ti dak]

alt Lebih dari 3x?


tam pil kan()
[ti dak]

[ya]

bl oki rAccount()
tampi l kan(pesanKesalahan)
Sequence Diagram: Mengecek Saldo
sd 3 SD Mengecek Saldo

:Nasabah Si stem Inti Perbankan


M enuUtama M anaj erPengecekanSaldo Balance M enuPengecekanSaldo

pi l i hMengecekSal do()

cekSal do(i d)

getSal do()

setSal do(sal do)

tampi l kan(sal do)


Sequence Diagram: Mengambil Uang
sd 4 SD Mengambil Uang

:Nasabah
MenuUtama MenuPengambilanUang Manaj erPengambilanUang Balance KotakUang

pilihAmbilUang()
tampilkan()

masukanJumlahUang()
cekKecukupanSaldo(id)
getSaldo()

alt Saldo Cukup? tampilkan(pesanKesalahan)


[tidak]

[ya]
ambilUang(id, jumlah)

setSaldo(saldo)

keluarkanUang(jumlah)
Sequence Diagram: Mengirim Uang
sd 5 SD Mengirim Uang

:Nasabah
MenuUtama MenuPengirimanUang Manaj erPengirimanUang Account Pengirim:Balance Penerima:Balance

pilihKirimUang()

tampilkan()

masukanAccountTujuan()
validasiAccount()
getID()
tampilkan(hasil)

masukanJumlahUang()

cekKecukupan Saldo(id)
getSaldo()

alt Saldo Cukup?


[tidak] tampilkan(pesanKesalahan)

[ya]
kirimUang(idPengirim, idPenerima, jumlah)

setSaldo(saldo)

setSaldo(saldo)
Sequence Diagram: Mengupdate Informasi Kotak
Deposit
sd 6 SD Mengupdate Informasi Kotak Deposit

:Petugas
MenuUtama MenuDeposit Manaj erDeposit Deposit

pilihUpdateData()

tampilkan()

isiData()

isiData()

setData()

tampilkan(hasil)
Sequence Diagram: Keluar Sistem
sd 7 SD Keluar Sistem

:Nasabah
MenuUtama Manaj erLogout KotakKartu KotakKuitansi MenuLogout

pi lihKeluar()

kel uar()

kel uarkanKartu()

keluarkanKui tansi()

tampil kan(pesanKeluar)
class CD Sistem ATM
Class Diagram
Manaj erValidasi
Login
- m_Login: Login
mengakses + getPIN(): int
+ blokirAccount(): void
+ ManajerValidasi()
+ validasiKartu(): int
+ validasiPIN(): int
dikelola oleh
dikelola oleh
Manaj erPengecekanUang
MenuPengecekanSaldo
KotakKartu dikelola oleh
MenuPIN

mengakses
Balance

memiliki mewarisi
memiliki mengakses
MenuPengambilanUang Manaj erPengambilanUang
dikelola oleh
SistemATM
MenuUtama mewarisi
mengakses

mewarisi
MenuPengirimanUang
memiliki memiliki Manaj erPengirimanUang Account
dikelola oleh
mengakses

mewarisi
KotakKuitansi KotakUang
mewarisi

MenuDeposit Manaj erDeposit Deposit


dikelola oleh mengakses
Manaj erLogout MenuLogout
dikelola oleh
class DM Sistem ATM
Data Model
Account

«column»
*PK idAccount: VARCHAR(50)
nama: VARCHAR(50)
pekerjaan: VARCHAR(50)
jeniskelamin: VARCHAR(50)
alamat: VARCHAR(50) Deposit
FK idBalance: VARCHAR(50)
FK idLogin: VARCHAR(50) «column»
*PK idDeposit: VARCHAR(50)
«FK» jumlahTotal: VARCHAR(50)
+ FK_Account_Balance(VARCHAR) jumlah50: VARCHAR(50)
+ FK_Account_Login(VARCHAR) jumlah100: VARCHAR(50)
«index»
+ IXFK_Account_Balance(VARCHAR) «PK»
+ IXFK_Account_Login(VARCHAR) + PK_Deposit(VARCHAR)

«PK»
+ PK_Account(VARCHAR) +FK_Account_Balance

+FK_Account_Login 0..* 0..*

(idBalance = idBalance)
(idLogin = idLogin)
«FK»
«FK»

+PK_Balance 1
+PK_Login 1
Balance
Login
«column»
«column» *PK idBalance: VARCHAR(50)
*PK idLogin: VARCHAR(50) saldo: VARCHAR(50)
PIN: VARCHAR(50)
«PK»
«PK» + PK_Balance(VARCHAR)
+ PK_Login(VARCHAR)
User Interface Design
User Interface Design (Sparx EA)
ui UID Sistem ATM

Menu PIN

Menu Pengecekan Saldo

Masukan PIN Saldo Anda Rp

«navigate»
Menu Pengambilan Uang
«navigate»

MenuUtama

Jumlah Uang yang Diambil

Mengecek Saldo

«navigate» Ambil Uang


Mengambil Uang

Mengirim Uang

Keluar Sistem Menu Pengiriman Uang


«navigate»

Rekening Tujuan

Jumlah Uang

Kirim
User Interface Design (Netbeans)
Latihan Use Case Diagram !

PT. Nusantara adalah sebuah perusahaan yang bergerak dibidang penjualan Tunai barang-barang
elektronik. Semua transaksi di perusahaan masih dilakukan secara manual. Berikut ini adalah
kegiatan kegiatan yang dilakukan oleh bagian Penjualan dalam melaksanakan transaksi penjualan
Barang di dalam perusahaan.
1. Pemesanan barang
Setiap kali Bagian penjualan akan menjual barang ia selalu menerima surat pesanan dari
pelanggan. Berdasarkan Surat pesanan tersebut bagian penjualan kemudian mencatat dan
merekamnya kedalam Arsip Surat Pesanan. Berdasarkan Arsip surat pesanan tersebut, bagian
penjualan membuatkan Faktur dan Surat Jalan yang dikirimkan kepada Pelanggan sebagai bukti
bahwa barang yang dipesan sudah terealisasi dan rangkapnya disimpan sebagai Arsip Faktur dan
Arsip Surat Jalan.
2. Pembuatan Kwitansi
Apabila Faktur dan Surat Jalan sudah sampai ditempat pelanggan, maka pelanggan megirimkan
Pembayaran yang kemudian oleh bagian penjualan dibuatkan Kwitansi yang dibuat berdasarkan
Arsip Faktur yang kemudian diserahkan kepada pelanggan sebagai bukti pembayaran dan
rangkapnya disimpan kedalam Arsip Kwitansi
3. Pembuatan Laporan
Setiap akhir bulan Bagian Penjualan selalu membuat Laporan Penjualan berdasarkan Arsip
Faktur dan Laporan Pesanan berdasarkan Arsip Pesanan dan Laporan Pengiriman berdasarkan
Arsip Surat Jalan yang ditujukan kepada Kepala Bagian Penjualan
Diminta :
•Buatlah Use case diagram dari data diatas !
Catatan Review
• Gunakan pola Subject-Verb-Object (S-V-O) untuk use case diagram (Actor –
Use Case) dan Activity Diagram (Partition – Action)
• Use Case Diagram adalah apa yang dilakukan Actor di sistem, bukan apa yang
dilakukan oleh sistem
• Pada Sequence Diagram perhatikan transaksi yang harusnya datangnya dari
actor, dan bukan dari object lain
• Naming untuk object dan class adalah kata benda (noun), untuk message di
Sequence Diagram (method) adalah kata kerja
• Object lifeline dan message di Sequence Diagram dan nama class di Class
Diagram, tidak boleh menggunakan spasi, karena akan jadi Class dan Method
di kode program
• Actor akan mengirim message hanya ke Boundary Class, tidak ke Control atau
Entity Class
• Entity Class bukan consumer, jadi tidak pernah mengirim message ke
Boundary atau Control Class
• Boundary class akan menjadi UI Design, entity class akan menjadi Data Model
• Class diagram tidak menunjukkan alur, tapi menunjukkan struktur dan
komposisi dari sistem yg kita bangun
References
1. Alan Dennis et al, Systems Analysis and Design with UML 4th Edition,
John Wiley and Sons, 2013
2. Kenneth E. Kendall and Julie E Kendall, Systems Analysis and Design 8th
Edition, Prentice Hall, 2010
3. John W. Satzinge, Robert B. Jackson, Stephen D. Burd, Systems Analysis
and Design in a Changing World 6th Edition, Course Technology, 2012
4. Hassan Gomaa, Software Modeling and Design: UML, Use Cases,
Patterns, and Software Architectures, Cambridge University Press,
2011
5. Gary B. Shelly and Harry J. Rosenblatt, Systems Analysis and Design 9th
Edition, Course Technology, 2011
6. Howard Podeswa, UML for the IT Business Analyst 2nd Edition, Course
Technology, 2009
7. Jeffrey A. Hoffer et al, Modern Systems Analysis and Design 6th Edition,
Prentice Hall, 2010

You might also like