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 Sepeda

  2. 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 variable

  Sepedaku 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 akan

independen. Memperluas dioperasikan fungsinya.

use case adalah opsional, Arah panah relasi

pelengkap. 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.
Memiliki 2 komponen penting Merepresentasikan blueprint dari object

  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 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 kumpulan layanan yang disediakan sebuah

Notasi Component Diagram

  

Komponen ditampilkan sebagai persegi panjang

dengan Sebuah kata kunci &lt;&lt;component&gt;&gt; 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: &lt;&lt;entity&gt;&gt;, &lt;&lt;subsystem&gt;&gt;..

  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