pemodelan sistem perangkat lunak -...

91
Pemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas Kristen Duta Wacana 1

Upload: dangduong

Post on 05-Jun-2019

235 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Pemodelan Sistem Perangkat Lunak

Andronicus Riyono, M.T.Universitas Kristen Duta Wacana

1

Page 2: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Building Software,Requirements, Changes

Pemodelan Sistem Perangkat LunakPertemuan 2

2

Page 3: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Bagian I: Building Software

Pemodelan Sistem Perangkat LunakPertemuan 2

3

Page 4: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Menurut Anda, apakah ‘Pemrograman’ itu?

________________________________

________________________________

________________________________

________________________________

4

Page 5: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Pemrograman adalah

• menyuruh komputer agar melakukanapa yang kita ingin komputer lakukan

• untuk mempermudah kehidupan manusia

• proses pembuatan (writing),pengujian (testing), perbaikan (debugging/troubleshooting), dan pengelolaan (maintaining)kode program komputer

5

Page 6: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Membuat Software, Menyelesaikan Masalah• Kita membuat perangkat lunak untuk

menyelesaikan masalah. Orang-orang memiliki masalah.

• Jadi, kita membuat perangkat lunak untuk membantu orang-orang

• Perangkat lunak yang baik tidak hanya dapat menyelesaikan masalah, namun mudah disesuaikan dengan perubahan.

6

Page 7: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Toko Blackberry milik si Jerry

Menyimpan data tentang

berbagai macam Blackberry

Mencari Blackberry yang

sesuai untuk para pelanggan

7

Page 8: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Yang telah dibuat

• Apakah Anda paham maksud diagram ini?

family : Stringmodel : Stringprice : doublegetPrice() : doublesetPrice(newPrice : double)getFamily() : StringgetModel() : String

Blackberry

addBlackberry(family : String, model : String, price : double)getBlackberry(model : String) : BlackberrysearchBlackberry(searchedFor : Blackberry) : Blackberry

blackberries : ListInventory

8

Page 9: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Stokdi

gudangmilik

si Jerry

family: Curvemodel: 8300price: 200

family: Curvemodel: 8330price: 500

family: Curvemodel: 8900price: 600

family: Boldmodel: 9000price: 650

family: Stormmodel: 9530price: 700

family: Tourmodel: 9630price: 750

9

Page 10: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Koq nggak ada?“Saya mau beli.

Saya dari tadi

sudah cari-cari.

Gimana ini?”

“yang dicari apa pak?”

“bold 9000”

*hmm, ada koq di gudang*

10

Page 11: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Koq nggak ada?“Saya mau beli.

Saya dari tadi

sudah cari-cari.

Gimana ini?”

“yang dicari apa pak?”

“bold 9000”

*hmm, ada koq di gudang*

bold != BOLD != Bold11

Page 12: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

method search dalam class Inventory

public Blackberry search(Blackberry searchedBlackberry) { for (Iterator i = blackberries.iterator(); i.hasNext(); ) { Blackberry blackberry = (Blackberry)i.next(); String family = searchedBlackberry.getFamily(); if ((family != null) && (!family.equals("")) && (!family.equals(blackberry.getFamily()) continue; return blackberry; } return null;}

12

Page 13: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Apa yang bisa dilakukan?

________________________________

________________________________

________________________________

________________________________

13

Page 14: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Apa yang bisa dilakukan?

• Mengubah agar pembandingan family mengabaikan besar kecil huruf

• Mengubah agar semua pembandingan mengabaikan besar kecil huruf

• Menggunakan konstanta untuk family

• Bicara dengan Jerry untuk mendapat detil permasalahan yang dihadapi

14

Page 15: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

15

Page 16: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

16

Page 17: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Langkah pertama untuk Great Software

1. Pastikan bahwa perangkat lunak yang Anda buat bekerja sesuai dengan apa yang diperlukan oleh customer

17

Page 18: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Langkah 1: Tanya Jerry

Pertanyaan apa saja kahyang akan Anda tanyakan

ke Jerry?

18

Page 19: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Pertanyaan-Pertanyaan untuk si Jerry

________________________________

________________________________

________________________________

________________________________

19

Page 20: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Pertanyaan-Pertanyaan untuk si Jerry

• Apakah hanya berjualan BlackBerry saja?

• Bagaimana proses update Inventory?

• Bagaimana proses pencarian yang seharusnya?

• Apakah perlu laporan gudang dan laporan penjualan?

20

Page 21: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Jawaban Jerry

• Pembeli seringkali tidak tahu detil dari apa yang mereka cari

• Seringkali ada lebih dari satu model yang sebenarnya sesuai dengan apa yang dicari oleh pembeli

• Pembeli sering mencari berdasarkan harga

• Laporan perlu, tapi yang paling penting adalah mencari BlackBerry untuk pembeli

21

Page 22: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Yang harus dilakukan

1. Apabila di gudang ada BlackBerry yang dicari pembeli, maka harus ditemukan

2. Kesalahan pengetikan oleh pembeli harus ditoleransi, atau buat supaya tidak mungkin memasukkan data yang salah dalam pencarian

22

Page 23: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

method search dalam class Inventory

public Blackberry search(Blackberry searchedBlackberry) { for (Iterator i = blackberries.iterator(); i.hasNext(); ) { Blackberry blackberry = (Blackberry)i.next(); String family = searchedBlackberry.getFamily().toLowerCase(); if ((family != null) && (!family.equals("")) && (!family.equals(blackberry.getFamily().toLowerCase()) continue; } return null;}

23

Page 24: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Perubahan PertamaMenghilangkan String• private Family family;

• public enum Family { CURVE, BOLD, STORM, TOUR; public String toString() { switch(this) { case CURVE: return "Curve"; case BOLD: return "Bold"; case STORM: return "Storm"; case TOUR: return "Tour"; } }}

24

Page 25: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Perubahan PertamaMenghilangkan String

(lanjutan)public Blackberry search(Blackberry searchedBlackberry) { for (Iterator i = blackberries.iterator(); i.hasNext(); ) { Blackberry blackberry = (Blackberry)i.next(); if (blackberry.getFamily() != searchedBlackberry.getFamily()) continue; return blackberry; } return null;}

25

Page 26: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Perubahan PertamaMenghilangkan String

(lanjutan)family : Familymodel : Stringprice : doublegetPrice() : doublesetPrice(newPrice : double)getFamily() : FamilygetModel() : String

Blackberry

addBlackberry(family : Family, model : String, price : double)getBlackberry(model : String) : BlackberrysearchBlackberry(searchedFor : Blackberry) : Blackberry

blackberries : ListInventory

26

Page 27: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Dampak Perubahan

• Ubah form untuk menambah data

• Ubah database inventory

27

Page 28: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Apakah sudah cukup?

• Lebih dari satu hasil pencarian (hal 20)

• mengembalikan array? atau List?

• Hanya menyebut sebagian saja (hal 25)

• kasus di buku, GuitarSpec (encapsulation)

• pelajari .ppt dari Head First OOA&D

28

Page 29: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Increments & Iterations

• Iterative development

• Mengulangi langkah-langkah proses pengembangan

• Semakin pendek semakin baik

• Incremental development

• Tambahkan sedikit demi sedikit

• Tidak ada "Big Bang"

Start

Goal

29

Page 30: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Akhir dari Bagian Pertama

30

Page 31: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Bagian II: Requirements

Pemodelan Sistem Perangkat LunakPertemuan 2

31

Page 32: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

• Kita membuat perangkat lunak karena suatu alasan...

• Kita membuat perangkat lunak untuk orang-orang yang memerlukannya...

• Kita perlu tahu apa yang orang-orang inginkan dari perangkat lunak yang kita buat

• Inilah yang disebut REQUIREMENTS

32

Page 33: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Siapa yang menentukan requirements?

________________________________

________________________________

________________________________

________________________________

33

Page 34: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Siapa yang menentukan requirements?

• Pembeli

• Pengguna akhir

• Tim pengembang

• Manajemen

• Penyedia teknologi

pihak-pihak inilah yang disebut sebagai Stakeholders

34

Page 35: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Aplikasi yang akan dibahas pada bagian ini

• Doug, Dog, Door (Bab 2, buku HF OOA&D)

35

Page 36: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Pekerjaan yangditawarkan...

Todd dan Gina memerlukan pintu dengan remote control agar mereka dapat membuka pintu dari kamar tidur mereka jika Fido, anjing peliharaan mereka, membangunkan mereka di tengah malam.

36

Page 37: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Gambaran awal produk

37

Page 38: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Requirements1. Tekan tombol pada remote control, pintu akan terbuka

"Ini yang harus kita buat, setidaknya, begitu kata Doug."

2. Tekan tombol lagi untuk menutup

pintu

"Kamu yakin, cuma itu saja yang

perlu kita buat?Ayo kita desain

dulu sebelum implementasi"

38

Page 39: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Requirement - dua class• DogDoor

‣ Buka

‣ Tutup

‣ Tunggu sinyal dari remote control

• Remote

‣ Beri sinyal ke pintu untuk menutup atau membuka

‣ Mengenali ketika tombol ditekan

Fokus pada class responsibility(sebuah class bertanggung jawab atas apa saja?)

39

Page 40: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

public class DogDoor {

private boolean open;

public DogDoor() { this.open = false; }

public void open() { System.out.println("The dog door opens."); open = true; }

public void close() { System.out.println("The dog door closes."); open = false; }

public boolean isOpen() { return open; } }

public class Remote {

private DogDoor door;

public Remote(DogDoor door) { this.door = door; }

public void pressButton() { System.out.println("Pressing the remote control button..."); if (door.isOpen()) { door.close(); } else { door.open(); } }}

40

Page 41: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Pertanyaan dari departemen QA*

"Yakin programnya bekerja dengan baik?Mana pengujiannya?"

*Quality Assurance

41

Page 42: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Program Pengujian (dari buku HF OOA&D)public class DogDoorSimulator {

public static void main(String[] args) { DogDoor door = new DogDoor(); Remote remote = new Remote(door);

System.out.println("Fido barks to go outside..."); remote.pressButton();

System.out.println("\nFido has gone outside..."); remote.pressButton();

System.out.println("\nFido's all done..."); remote.pressButton();

System.out.println("\nFido's back inside..."); remote.pressButton(); }}

Apakah pengujianini sudah baik?

Mengapa?

42

Page 43: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Pembeli adalah Raja

43

Page 44: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Mari introspeksi

• Sudah membuat tepat seperti yang diperintahkan Doug

• Sudah melakukan pengujian

• Pintu bekerja sesuai program yang dibuat

• Hardware OK

• Software OK

Lantas, apa yang salah?

44

Page 45: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Apakah requirement itu?

• Requirement adalah fitur yang harus dimiliki sistem untuk memuaskan pembeli

• Requirement adalah sesuatu yang harus dilakukan oleh sistem yang dibuat

Apakah sudah memenuhi requirements?

45

Page 46: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Mendefinisikan masalah

• Bicara dengan pembeli

• Bicara dengan stakeholders lain

• Bertanya

• Brainstorm

• Coba lihat permasalahan dari berbagai sudut pandang yang mungkin

46

Page 47: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Kami tidak ingin pergi dari kamar di tengah malam. Kami mau pintu yang bisa dibuka dengan remote control dan menutup otomatis setelah anjing kembali dari luar

Saya ingin Fluffy bisa keluar tanpa saya harus pergi membukakan pintu, tapi saya hanya ingin pintu terbuka bila saya mengizinkannya

saya hanya ingin keluar

47

Page 48: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Apa yang kita tahu‣ Doug‣ Kita perlu sistem segera jadi‣ Sistem yang dibuat harus hemat biaya

‣ Hardware engineer‣ Pintu punya dua macam sinyal‣ Cek kondisi saat ini (terbuka/tertutup)‣ Ubah kondisi pintu (buka⇒tutup, tutup⇒buka)

‣ Remote mengirim satu sinyal saja (ketika tombol ditekan)‣ Pembeli menyatakan bahwa‣ Pintu harus dapat terbuka dengan menekan tombol remote‣ Pintu harus dapat menutup setelah anjing kembali

‣ Requirement yang tersirat dari pernyataan pembeli‣ Pintu tidak boleh tertutup ketika anjing sedang melewatinya‣ Pintu harus tertutup secara otomatis tanpa menekan remote

48

Page 49: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Requirements (dari buku)

49

Page 50: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Skenario

50

Page 51: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Skenario

51

Page 52: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Skenario

52

Page 53: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Skenario

53

Page 54: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Skenario

54

Page 55: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Apakah kita perlu diagram?

55

Page 56: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Skenario lain

• Fido tidak pergi keluar, tapi malah diam di dalam rumah

• Fido tidak kembali ke dalam rumah

• Pintu menutup ketika Fido sedang melalui pintu

• ...

56

Page 57: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Salam kenal dariUse Case

Use Case mendeskripsikanapa yang dilakukan sistem

untuk mencapaitujuan tertentu

yang diinginkan oleh pembeli

57

Page 58: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Use Case

• Use Case adalah teknik untuk mendapatkan potential requirements dari sebuah sistem baru atau perubahan software

• Setiap Use Case memberisatu atau lebih skenario yang menunjukkan bagaimana sistem harus berinteraksi dengan pengguna atau sistem lain untuk mencapai tujuan tertentu

58

Page 59: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Satu Use Case, Tiga Bagian

• Sebuah Use Case harus

• Memiliki langkah-langkah lengkap yang bernilai bagi seseorang

• Memiliki kondisi awal dan akhir

• Dimulai oleh Actor (seseorang atau sesuatu yang bukan bagian dari sistem yang dibuat)

59

Page 60: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Intinya...

• Use case pasti

• bernilai (terhadap kegunaan sistem)

• lengkap (ada kondisi awal dan akhir)

• dimulai oleh actor

• menunjukkan sebuah tujuan dari sistem

60

Page 61: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Use Case ≠ Scenario

• Skenario adalah salah satu cara untuk mencapai tujuan dari sebuah kondisi awal

• Use Case mendeskripsikan semua cara yang mungkin untuk mencapai tujuan dari sebuah kondisi awal

61

Page 62: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Bagian-bagian Use Case• Nama: biasanya kata kerja + kata benda

(misal: mengambil matakuliah)

• Deskripsi: satu atau dua paragraf yang menjelaskan tujuan dan nilai (hasil)

• Actors: nama actor(s) yang terlibat

• Basic Flow: yang paling umum atau yang diharapkan dalam use case

• Alternate Flows: yang mungkin terjadi

• Preconditions: kondisi yang harus terpenuhi sebelum use case dapat dinyatakan dimulai

• Postconditions: kondisi yang harus terpenuhi ketika use case selesai

62

Page 63: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Seberapa formal?

Jika berhasil/berguna, gunakan!

63

Page 64: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Dog Door v.2

import java.util.Timer;import java.util.TimerTask;

public class Remote { private DogDoor door;

public Remote(DogDoor door) { this.door = door; }

public void pressButton() { System.out.println("Pressing the remote control button..."); if (door.isOpen()) { door.close(); } else { door.open();

final Timer timer = new Timer(); timer.schedule(new TimerTask() { public void run() { door.close(); timer.cancel(); } }, 5000); } }}

sepertinya karma tanggungjawab tidak seimbang

64

Page 65: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Requirement - dua class• DogDoor

‣ Buka

‣ Tutup

‣ Tunggu sinyal dari remote control

‣ Tutup pintu setelah 5 detik

• Remote

‣ Beri sinyal ke pintu untuk menutup atau membuka

‣ Mengenali ketika tombol ditekan

Information Expert Pattern (LAR, 283, 294)65

Page 66: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Looking ahead

66

Page 67: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Looking ahead

67

Page 68: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Looking ahead

68

Page 69: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Apa saja kira-kira fitur untuk versi berikutnya?

________________________________

________________________________

________________________________

________________________________

69

Page 70: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Akhir dari Bagian Kedua

70

Page 71: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Bagian III: Perubahan

Pemodelan Sistem Perangkat LunakPertemuan 2

71

Page 72: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

dan Anda bertanggungjawabuntuk mengubah program buatan Anda

72

Page 73: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Great dog door, but...Bisakah ditambahkan hardware untuk mengenali gonggongan Fido ketika Fido ingin pergi keluar dan kembali serta otomatis membuka pintunya? Dengan demikian kami tidak perlu mendengarnya atau mencari remotenya.

73

Page 74: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Kemungkinan perubahan

________________________________

________________________________

________________________________

________________________________

74

Page 75: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Kemungkinan perubahan

• Hardware (baru dan modifikasi)

• Use Case

• Kode program (implementasi, pengujian)

• ...

75

Page 76: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Skenario Lama

The dog door opens (again).6.5

Fido barks to be let out.1

Todd or Gina hears Fido barking.2

Todd or Gina presses the button on the remote control.

3 The dog door opens.4

Fido goes outside.5

Fido does his business.6

The door shuts automatically.6.1

Fido barks to be let back inside.6.2

Todd or Gina hears Fido barking (again).

6.3

Todd or Gina presses the button on the remote control.

Fido goes back inside.7The door shuts automatically.8

Woof! Woof!

Gina, open the dog door…Fido won’t quit barking!

I feel much better now!

Woof! Woof!

Again with the barking! Someone let Fido back inside

6.4

76

Page 77: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Skenario Baru

The dog door opens (again).6.5

Fido barks to be let out.1

Todd or Gina hears Fido barking.

2

Todd or Gina presses the button on the remote control.

3

The dog door opens.4

Fido goes outside.5

Fido does his business.6

The door shuts automatically.6.1

Fido barks to be let back inside.6.2

Todd or Gina hears Fido barking (again).

6.3

Todd or Gina presses the button on the remote control.

Fido goes back inside.7The door shuts automatically.8

6.4

The bark recognizer “hears” a bark (again).

6.3.1

The bark recognizer sends a request to the door to open.

6.4.1

The bark recognizer “hears” a bark.

2.1

The bark recognizer sends a request to the door to open.

3.1

77

Page 78: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Alternate Path

Masuk akal?Ada ide untuk

perbaikan?

78

Page 79: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

79

Page 80: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Urutan hasil

Requirements

Design documents and classes

Code

Tests

Documentation

80

Page 81: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Desain Lama

Association

Multiplicity

81

Page 82: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Desain Baru

82

Page 83: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

BarkRecognizer classpublic class BarkRecognizer {

private DogDoor door;

public BarkRecognizer(DogDoor door) { this.door = door; }

public void recognize(String bark) { System.out.println(" BarkRecognizer: Heard a '" + bark + "'"); door.open(); }}

Hmm, mudah sekali membuatnya!

83

Page 84: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Untung kita sudah mengaplikasikan polaInformation Expert.

Mengapa untung?Apakah ada prinsip yang penting di sini?

84

Page 85: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Jika tidak...

Copy saja kode untuk menutup pintu otomatis dari Remote ke BarkRecognizer

Ini Doug. Dia bukan programmer.

Bagaimana menurut Anda?Apakah ide Doug ini baik?

85

Page 86: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Yang salah dari ide Doug

• Kemungkinan kesalahan copy-paste

• Kalau ada peralatan lain, maka perlu copy kodenya lagi, dan lagi, dan lagi.

• Semakin banyak copy, semakin banyak yang harus diubah ketika ada perubahan requirement

• Tidak rapi dan jelek

86

Page 87: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Guk!(artinya: apa kegunaan parameter Bark di BarkRecognizer?

Apa parameter Bark itu?

Apakah kita memerlukannya?

Apa yang harus kita lakukan?

87

Page 88: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Versi kedua siap diluncurkan

• Kita telah melampaui sebuah iterasi

• Requirement

• Design

• Code

• Test

• Kita mengerjakan suatu bagian pekerjaan yang dapat dikelola

• Kita meluncurkan sistem yang bekerja dengan baik

88

Page 89: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Mari berpikir

• Apakah Remote dan BarkRecognizer mirip?

• Bisakah kemiripannya dienkapsulasi?

• Bagaimana perubahan ini berpengaruh terhadap sistem?

• Class Bark belum diimplementasi, bagaimana mengimplementasinya?

• Apa yang kita dapatkan?

89

Page 90: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Akhir dari Bagian Ketiga

90

Page 91: Pemodelan Sistem Perangkat Lunak - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/08/pertemuan-2.pdfPemodelan Sistem Perangkat Lunak Andronicus Riyono, M.T. Universitas

Referensi

• Craig, L. (2004). Applying UML and patterns: An introduction to object-oriented analysis and design and iterative development. Westford, MA: Prentice Hall PTR.

• McLaughlin, B.D., Pollice, G., & West, D. (2006). Head first object-oriented analysis & design. Sebastopol, CA: O'Reilly.

91