Permodelan Sistem
Berbasis Objek
Menggunakan UML
2 – 4 Maret 2016
Frieyadie, M.Kom
Contents
1. Software Development Life Cycle
(SDLC)
2. Software Development
Methodologies
3. Software Development Notation and
Tools:
1. Unified Modeling Language (UML) Notation
Project Phases
1. Planning: Why build the system?
– Identifying Business Value, Feasibility Analysis (System Request/Proposal)
2. Analysis: Who, what, when, where will the system be?
– User Requirement Gathering (System Specification)
3. Design: How will the system work?
– Architecture Design, Interface Design, Data Design, Program Design (System Specification)
4. Implementation: System delivery
Processes and
System Request (Proposal)
System Specification
New System and
Analysis
1. Requirement Gathering by
answering the questions:
– Who will use the system?
– What will the system do?
– When will it be used?
2. Investigate the
current system
3. Identify possible
improvements
Design
1. Architecture design
– Hardware description – Software description – Network infrastructure
2. User Interface design
– How users interact with system
– Forms / reports used by the system
3. Data Design
– What data is to be stored
– What format the data will be in – Where the data will be stored
4. Program Design
Design (lanjutan)
•
These deliverables:
1. Architecture design (deployment diagram)
2. User Interface design
3. Database design (ER diagram) 4. Program design (UML)
(
System Specification
)
•
The System Specification is
given to
the programming team
for
Implementation
1. Construction
– New system is built and tested – Often testing is the longest part
2. Testing
1. Unit Testing (Blackbox and Whitebox Testing) 2. Integration Testing
3. System Testing
4. User Acceptance Test
3. Installation
Konsep Dasar
Pemrograman
Berorientasi Objek
Berorientasi Objek?
Attribute (State):
Ban, Stir, Pedal Rem, Pedal Gas, Warna, Tahun Produksi
Behavior:
Cara Menghidupkan Mesin Cara Manjalankan Mobil Cara Memundurkan Mobil
Latihan
1. Lakukan kegiatan berorientasi objek
dengan target
Sepeda
2. Pikirkan apa
atribut dan behavior
Perbedaan Class dan
Object
• Class adalah konsep dan deskripsi dari sesuatu
• Object adalah instance dari Class
• Class: mobil
• Object: mobilnya pak Joko, mobilku
• Class seperti cetakan kue, dimana kue yg
dihasilkan dari cetakan kue itu adalah object • Warna kue bisa bermacam-macam meskipun
Class = Method + Variable
variable
kecepatan gir
ubah kecepatan
ubah gir
metho
d
Object = Method + Variable
Bernilai
instance variable
kecepatan = 10km/jam
gir = 3
ubah kecepatan (10)
ubah gir (2)
instanc
e
method
Object
Attribute
•
Variable
yang mengitari class, dengan
nilai datanya bisa ditentukan di object
•
Name, age, dan weight adalah
Membuat Class, Object dan Memanggil Atribut
public class Mobil { String warna;
int tahunProduksi; }
public class MobilBeraksi{
public static void main(String[] args){
// Membuat object
Mobil mobilku = new Mobil();
/* memanggil atribut dan memberi nilai */
mobilku.warna = "Hitam";
mobilku.tahunProduksi = 2006;
System.out.println("Warna: " + mobilku.warna); System.out.println("Tahun: " +
mobilku.tahunProduksi); }
}
Mobil.java
Parameter
• Sepeda (bicycle) akan berguna apabila ada object lain
(misalnya anda) yang berinterasi dengan sepeda (bicycle) tersebut
• Object software berinteraksi dan berkomunikasi
dengan object lain dengan cara mengirimkan message
• Informasi dalam message ini dikenal dengan nama
Pengiriman Pesan dan
Parameter
1. You object pengirim
2. YourBicycle object penerima
3. changeGears message berupa method yang dijalankan
Membuat Class (Sepeda.java)
public class Sepeda{ int kecepatan, gir;
// method dengan parameter
void ubahGir(int pertambahanGir) { gir= gir+ pertambahanGir;
System.out.println(" Gir:" + gir); }
void tambahKecepatan(int pertambahanKecepatan) { kecepatan = kecepatan+ pertambahanKecepatan; System.out.println(" Kecepatan:" + kecepatan); }
Membuat dan Memanggil Object (SepedaBeraksi.java)
public class SepedaBeraksi{
public static void main(String[] args) { // Membuat object
Sepeda sepedaku = new Sepeda();
/* memanggil atribut dan memberi nilai */
sepedaku.kecepatan=10; sepedaku.gir=2;
// Memanggil method dan menunjuk nilai parameter
sepedaku.tambahKecepatan(30); sepedaku.ubahGir(3);
Analisa Sistem
Pemodelan Struktural
• Pemodelan struktural menangkap fitur statis dari sebuah sistem
• Tapi model struktural tidak pernah
menggambarkan perilaku dinamis dari sistem. • Diagram Class adalah yang paling banyak
digunakan diagram struktural
Struktural pemodelan:
• Classes diagrams • Objects diagrams
• Deployment diagrams • Package diagrams
Pemodelan Perilaku (Behavioral)
• Model perilaku menggambarkan interaksi
dalam sistem.
• Ini merupakan interaksi antara diagram
struktural.
• Pemodelan perilaku menunjukkan sifat
dinamis dari sistem
Pemodelan Perilaku:
• Activity diagrams
• Sebuah use case adalah situasi dimana
sistem kita digunakan untuk memenuhi satu atau lebih kebutuhan pemakai.
• Use case menggambarkan kebutuhan
sistem dari sudut pandang di luar sistem.
• Use cases hanya menetapkan apa yang
seharusnya dikerjakan oleh sistem, yaitu kebutuhan fungsional sistem.
• Use case tidak untuk menentukan
kebutuhan nonfungsional, misalnya:
sasaran kinerja, bahasa pemrograman, dsb
• Dalam use case diagram, sesuatu diluar
sistem yang berinteraksi dengan sistem
disebut actor
• Actor class digunakan untuk memodelkan
dan menyatakan peran untuk "pemakai" dari sistem, termasuk manusia dan sistem lain.
• Actor digambarkan sebagai stickman
• Use case class digunakan untuk
memodelkan dan menyatakan unit fungsi/ layanan yang disediakan oleh sistem (or bagian sistem: subsistem atau class) ke pemakai.
• Use case dapat dilingkupi dengan
batasan sistem yang diberi label nama sistem.
• Use case adalah sesuatu yang
menyediakan hasil yang dapat diukur ke pemakai atau sistem eksternal.
• Usecase digambarkan dalam bentuk elips
• Sebuah komunikasi digunakan
menghubungkan actor dan use case untuk memperlihatkan peran serta actor dalam use case
• Komunikasi digambarkan dalam bentuk
garis solid.
• Komunikasi juga dapat digambarkan
dengan garis dengan panah. Panah ini
sering digunakan untuk menunjukkan arah seruan awal hubungan atau untuk
menunjukkan aktor utama dalam use case. Garis dengan panah menyiratkan kontrol aliran dan tidak menjadi bingung dengan aliran data
• Gari s dengan panah bersifat optional.
Untuk memperlihatkan batasan sistem dalam diagram use case, kita dapat
menggambarkan sebuah kotak yang
melingkupi semua use case, namun actor tetap berada di luar kotak.
Include dan Extend
<<extend>>
<<include>>
Use case dasar lengkap
(nyata) dengan sendirinya, yang didefinisikan secara independen. Memperluas use case adalah opsional, pelengkap. Memiliki
setidaknya satu eksplisit perluasan. Bisa memiliki kondisi ekstensi opsional. Arah panah mengarah ke use case yang diperluas atau ditambahkan
Menyertakan use case lain kedalam suatu use case yang akan
dioperasikan fungsinya. Arah panah relasi
pada include mengarah pada use case yang
• Class adalah deskripsi dari sekumpulan
objek yang berbagi atribut yang sama, operasi, hubungan, dan semantik.
• Class mengimplementasikan satu atau
lebih interface
• Kelas menggabungkan atribut dan operasi
menjadi satu kesatuan. Atribut hanya dapat diakses secara tidak langsung melalui operasi (method) class.
Memiliki 2 komponen penting
Merepresentasikan blueprint dari object
• Properti: ciri khas dan pembeda antar objek
• Metode: aksi yang dapat dilakukan oleh
objek tersebut
Class Diagram (count)
• Structural
Ciri Pembeda antar Objek
• Behaviour
Notasi kotak dengan 3 bagian:
• Nama kelas
• Atribut
Indikasi berapa banyak objek yang bisa mengisi properti
• 1 (pasti 1)
• 0..1 (0 atau 1)
• * (Tidak ada batasan, bisa 0, 1, ..., n)
Biasanya didefinisikan batas bawah dan atas, kecuali untuk yang pasti bernilai 1.
Mirip dengan konsep one-to-one dan one-to many pada relational database.
Metode pengaksesan terhadap atribut dalam class
• Public ( + ) Diperbolehkan diakses oleh
class yang lain
• Private ( - ) Diperbolehkan diakses oleh
class itu sendiri
• Protected(#) Hanya bisa diakses oleh
subclass
• Package ( ~ ) Bisa diakses oleh objek lain
pada package yang sama
Class Diagram (count)
•
Menggambarkan hubungan antar
class
•
Ditandai dengan garis lurus
•
Seringkali ditambahkan label dan
multiplicity untuk memperjelas
hubungan
Class Diagram (count)
Class Diagram (count)
Aggregration
Agregasi dapat terjadi ketika kelas adalah collection atau container dari kelas lain,
tetapi di mana kelas-kelas yang ada secara esensial tidak memiliki siklus ketergantungan yang kuat dalam container. Ditandai dengan garis dengan diamond terbuka.
Class Diagram (count)
Composition
• Composition biasanya memiliki siklus
ketergantungan yang kuat antara instance dari kelas container dan instance dari kelas yang mengandungnya.
• Ditandai dengan garis dengan diamond
penuh
Mobil Karburato
r
• Menggambarkan urutan tindakan yang
terjadi dalam suatu sistem
• Manangkap metode objek, dan urutan
panggilan
• Merupakan method sistem dinamis yang
dipanggil
• Objek horizontal menunjukkan kehidupan
objek yang diwakili
• Sumbu vertikal mewakili urutan
pemanggilan objek
Sebuah life-line menggambarkan kronologis apa yang terjadi pada suatu objek
Objek – Sequence Diagram
:Nama_Obje
k Objek
Life Line
Synchronous (aliran interupt sampai pesan complete).
Asynchronous (tidak menunggu tanggapan)
Flat : Tidak ada perbedaan antara sysn / async
Return : mengontrol aliran kembali ke pemanggil.
Sequence Diagram Registrasi
: User form : Form proses : Proses session : Session database : MySQLDB value(username)
setValue($field, $value)
setError() procRegister()
register($subuser, $subpass, $subemail) value(password)
value(email)
confirmUserPass($username, $password)
confirmUserID($username, $userid)
usernameTaken($username)
addNewUser($username, $password, $email) usernameBanned($username)
Sequence Diagram Login
: User form : Form process : Proses session : Session database : MySQLDB value(username)
value(password) setValue(field, value)
setError(field, errmsg) procLogin()
login(subuser, subpass, subremember)
Component Diagram
Component Diagram menggambarkan struktur dan hubungan antar komponen piranti lunak, termasuk ketergantungan (dependency) di antaranya:
Komponen piranti lunak adalah modul berisi
code, baik berisi source code maupun binary
code, baik library maupun executable, baik yang muncul pada compile time, link time, maupun run time.
Umumnya komponen terbentuk dari beberapa
class dan/atau package, tapi dapat juga dari komponen-komponen yang lebih kecil.
Komponen dapat juga berupa interface, yaitu
Komponen ditampilkan sebagai persegi panjang dengan Sebuah kata kunci <<component>>
a. Opsional, di sudut kanan ikon komponen dapat ditampilkan
Ikon komponen persegi panjang dengan dua
persegi panjang yang lebih kecil yang menjorok keluar dari sisi kiri
Simbol ini adalah stereotip visual
b. Nama Komponen
Komponen bisa dilabeli dengan stereotip ada sejumlah stereotip standar seperti: <<entity>>, <<subsystem>>..
Komponen Diagram memiliki Elemen Interface
Deklarasi dari satu set operasi dan kewajiban
Penggunaan Dependensi
Hubungan salah satu unsur yang memerlukan unsur lain untuk full implementasi
Port
Titik interaksi antara komponen dan serta lingkungan
Connector
Menghubungkan dua komponen
Menghubungkan kontrak komponen eksternal ke struktur internal
Diployment Diagram
Menunjukkan bagaimana komponen dari keseluruhan sistem secara fisik terhubung (yaitu seperti perangkat keras sistem yang berjalan dan bagaimana semua
dihubungkan). Node merupakan
unit komputasi
seperti perangkat keras
Hubungan antara node menunjukkan jalur interaksi
Bisa juga jika sistem akan diimplementasikan,
dengan banyak mesin, seperti:
• Sistem aplikasi
diletakan pada Web Application Server. • Database aplikasi
ditelakan pada Database Server