Materi Workshop UML DWS B
Permodelan Sistem Berbasis Objek Menggunakan UML 2 – 4 Maret 2016 Frieyadie, M.Kom
Frieyadie, M.Kom Software Engineering Process
Contents
1. Software Development Life Cycle (SDLC)
2. Software Development Methodologies
3. Software Development Notation and
Tools:2. Computer Aided Software Engineering (CASE) Tools
Software Development Life Cycle (SDLC)
Plannin g Plannin g
Analysis Analysis
Design Design
Implementation Implementation
Project Phases
Why build the system? :
1. Planning
- – Identifying
Business Value, Feasibility Analysis ( System Request/Proposal) Who, what, when, where will the system
2. Analysis : be?
System Specification)
- – User Requirement Gathering (
How will the system work? :
3. Design
- – Architecture Design, Interface Design, Data Design, Program Design (
) System Specification
: System delivery
4. Implementation System Construction, Testing, Installation, Maintenance
- – ( New System )
Processes and Deliverables Process
Product System Request Planning (Proposal) Analysis
System Design Specification Implementa New System and tion
Maintenance Plan
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
4. Develop a concept for new system
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
- – What programs need to be written
Design (lanjutan)
- These deliverables:
1. Architecture design (deployment diagram)
2. User Interface design
3. Database design (ER diagram)
4. Program design (UML)
( System Specification ) given to
- The System Specification is
the programming team for implementation
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
- – Old system is turned off
- – New system is turned on
Konsep Dasar Pemrograman
Berorientasi Objek
Class , Object, Method, Attribute
Berorientasi Objek?
Attribute:
Topi, Baju, Jaket, Tas Punggung, Tangan, Kaki, Mata
Behavior: Cara Jalan ke
Depan
Cara Jalan Mundur
Cara Belok ke Kiri
Berorientasi Objek?
Attribute (State): Ban, Stir, Pedal Rem, Pedal Gas, Warna, Tahun Produksi Behavior:
Cara Menghidupkan Mesin Cara Manjalankan Mobil Cara Memundurkan Mobil
Attribute Variable(Member)
Behavior Method(Fungsi)Latihan
1. Lakukan kegiatan berorientasi objek
dengan target Sepeda2. Pikirkan apa atribut dan behavior
yang dimiliki oleh Sepeda tersebut
Perbedaan Class dan
Object
- Class adalah konsep dan deskripsi dari sesuatu
- Object adalah instance dari Class • Class: mobil
mobilnya pak Joko, mobilku
- Object:
- Class seperti cetakan kue , dimana kue yg dihasilkan dari cetakan kue itu adalah object
- Warna kue bisa bermacam-macam meskipun berasal dari cetakan yang sama ( object memiliki
sifat independen )
Class = Method + Variable
gir
Class Sepeda
variable
kecepatan
ubah kecepatan
metho ubah gir d
Object = Method + Variable
Bernilai
gir = 3 Object instance variableSepedaku kecepatan = 10km/jam ubah kecepatan (10) instanc ubah gir (2) e method
yang mengitari class, dengan nilai datanya bisa ditentukan di object
Attribute
- Variable
- Name, age, dan weight adalah atribute dari class Person
Membuat Class, Object dan Memanggil Atribut public class Mobil {
Mobil.java String warna; int tahunProduksi; } public class MobilBeraksi{
MobilBeraksi.java 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) ; }UML - Class Diagram
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 ini dikenal dengan nama
- Informasi dalam message Parameter
Pengiriman Pesan dan
Parameter
2. YourBicycle object penerima 3. changeGears message berupa method yang dijalankan
4. lowerGear parameter yang dibutuhkan method
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 ); } }
UML - Class Diagram
Analisa Sistem
Menggunakan UML
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
- Composite structure diagram
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
- Interaction diagrams
- Use case diagrams
Use Case Diagram
- 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,
Usecase Diagram Actor
- 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
Usecase Diagram Usecase
- 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 Diagram Communication
- 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
Usecase Diagram Boundary
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 Menyertakan use case
(nyata) dengan sendirinya, lain kedalam suatu use
yang didefinisikan secara case yang akanindependen. Memperluas dioperasikan fungsinya.
use case adalah opsional, Arah panah relasipelengkap. Memiliki pada include mengarah
setidaknya satu eksplisit pada use case yang perluasan. Bisa memiliki memiliki kontrol. kondisi ekstensi opsional.Class Diagram
- 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.
Class Diagram (count)
- Structural Ciri Pembeda antar Objek •
Behaviour Tingkah laku atau kegiatan yang mampu dilakukan objek
- Properti: ciri khas dan pembeda antar objek
- Metode: aksi yang dapat dilakukan oleh objek tersebut
Class Diagram (count) Notasi kotak dengan 3 bagian:
- Nama kelas
- Atribut • Metode/operation
funcSesion Nama Class
$username $userid $userlevel
Atribut
$time $logged_in $userinfo
Method()
Session() startSession()
Multiplicity Class Diagram (count)
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) Visibility
Class Diagram (count) Association
- Menggambarkan hubungan antar class
- Ditandai dengan garis lurus
- Seringkali ditambahkan label dan multiplicity untuk memperjelas hubungan
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.
0..1 1..1
Kolam Bebek
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
0..1 1..1
Karburato Mobil r
Class Diagram (count)
Sequence Diagram
- 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
Objek – Sequence Diagram
Sebuah life-line menggambarkan kronologis apa yang terjadi pada suatu objek
:Nama_Obje Objek k
Life Line Activation
Objek – Jenis Message
Synchronous (aliran interupt sampai pesan complete).
Asynchronous (tidak menunggu tanggapan) Flat : Tidak ada perbedaan antara sysn / async
Sequence Diagram Registrasi : User form : Form value(username) value(email) proses : Proses session : Session database : MySQLDB value(password) setValue($field, $value) setError() procRegister() register($subuser, $subpass, $subemail) confirmUserPass($username, $password) confirmUserID($username, $userid) usernameBanned($username) usernameTaken($username) getErrorArray() addNewUser($username, $password, $email)
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) confirmUserID(username, userid) checkLogin() confirmUserPass(username, password) getNumMembers() startSession() usernameBanned(username) addActiveUser(username, time)
Component Diagram
Component Diagram menggambarkan struktur dan
hubungan antar komponen piranti lunak, termasuk
ketergantungan (dependency) di antaranya: Komponen piranti lunak adalah modul berisicode, baik berisi source code maupun binary
code, baik library maupun executable, baik yangmuncul 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 kumpulan layanan yang disediakan sebuah
Notasi Component Diagram
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
Elemen Component Diagram
Contoh Component Diagram
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