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

dokumen-dokumen yang mirip
Pemodelan Sistem Perangkat Lunak. Andronicus Riyono, M.T. Universitas Kristen Duta Wacana

Pemrograman Lanjut. Interface

ABSTRACT. Keyword: Algorithm, Depth First Search, Breadth First Search, backtracking, Maze, Rat Race, Web Peta. Universitas Kristen Maranatha

Pemodelan Berorientasi Objek

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

Sistem Informasi. Soal Dengan 2 Bahasa: Bahasa Indonesia Dan Bahasa Inggris

Rahasia Cermat & Mahir Menguasai Akuntansi Keuangan Menengah (Indonesian Edition)

ANALISIS CAPAIAN OPTIMASI NILAI SUKU BUNGA BANK SENTRAL INDONESIA: SUATU PENGENALAN METODE BARU DALAM MENGANALISIS 47 VARIABEL EKONOMI UNTU

ABSTRAK. Kata kunci : Aplikasi berbasis web, Place Manager, Behavior driven development. Universitas Kristen Maranatha

No Kegiatan Kalimat yang di latih Arti. 2. How are you? 3.- Do you remember about population? - Can you explain about population?

Pemrograman Web. Object Oriented Programming in PHP 5

TUJUAN. Memahami Koneksi dan Pemrosesan Basis Data di Java Memahami JDBC Menggunakan MySQL pada program Java

MANAJEMEN RISIKO 1 (INDONESIAN EDITION) BY IKATAN BANKIR INDONESIA

LKS SISTEM PEREDARAN DARAH MANUSIA KELAS KONTROL

UML. Bahasa pemodelan visual sistem berorientasi objek Yang dibahaas dalam kuliah ini: Use Case Ac>vty Diagram Class Diagram Sequence Diagram

UML USE CASE DIAGRAM


TUGAS BROWSING. Diajukan untuk memenuhi salah satu tugas Eksperimen Fisika Dasar 1. Di susun oleh : INDRI SARI UTAMI PEND. FISIKA / B EFD-1 / C

ANALISIS KINERJA MANAJEMEN (INDONESIAN EDITION) BY HERY HERY

Ss: Raiver. River. T: Okay, this is a river. This a river, okay. How about this one. Ss: Beach. Beach. Beach. T: Okay, who likes to go the beach?

6 KERANJANG 7 LANGKAH API (INDONESIAN EDITION) BY LIM TUNG NING

HTB (Hierarchical Token Bucket) Queue Tree-System Mikrotik user Meeting Jakarta, Indonesia(2016)

KESASTRAAN MELAYU TIONGHOA DAN KEBANGSAAN INDONESIA: JILID 2 FROM KPG (KEPUSTAKAAN POPULER GRAMEDIA)

SISTEM INFORMASI PENJUALAN DI TOKO BUKU BUKUTEA.COM

MODIFIKASI METODE BACKTRACKING UNTUK MEMBANTU MENCARI PENYELESAIAN PERMAINAN PEG SOLITAIRE

MANAJEMEN PERSEDIAAN. Persediaan Surplus Persediaan Mati. Prepared by: Dr. Sawarni Hasibuan. Modul ke: Fakultas FEB. Program Studi Manajemen

SUKSES BERBISNIS DI INTERNET DALAM 29 HARI (INDONESIAN EDITION) BY SOKARTO SOKARTO

Membangun Menara karakter (Indonesian Edition)

TIF APPLIED MATH 1 (MATEMATIKA TERAPAN 1) Week 3 SET THEORY (Continued)

RENCANA PELAKSANAAN PEMBELAJARAN (RPP) SIKLUS I

Apa yang harus kita kenali?

Disusun oleh : Nama : Sutiyono, S.Pd.SD NIP : Jabatan : Guru SD 3 KARANGMALANG

Research = experiment

Keseimbangan Torsi Coulomb

Pertemuan Ke-7 INSTRUCTION SET

T : Tapi kalian tau gak bahasa inggris dari penyakit-penyakit yang kalian rasakan itu?

1/5. while and do Loops The remaining types of loops are while and do. As with for loops, while and do loops Praktikum Alpro Modul 3.

ABSTRAK. Kata Kunci: Game, Pengunduhan, Voucher, Super Admin, Admin, Moderator,Player

APLIKASI PEMBELAJARAN DAN SOAL TES POTENSI AKADEMIK BERBASIS ANDROID ARIANTO IS SUDIBYO

Penjelasan Uji Paired T Test Manual

Health Care Service Questionnaire

Video A. Introduction

ABSTRAK. Kata kunci: seminar, forum, registrasi, qr-code, Windows Phone. vi Universitas Kristen Maranatha

ABSTRAK Kata Kunci :

ABSTRAK. Kata Kunci: fotografi, contest crowdsourcing, hak cipta, komunitas. Universitas Kristen Maranatha

Ya Allah Bimbing Hamba Menjadi Wanita Salehah (Indonesian Edition)

PERANCANGAN SISTEM PENCATATAN CASH ON HAND STUDI KASUS PADA BANK BJB CABANG BSD FATMAWATI NURFITRI

MISTERI PEMBUNUHAN DI KAKEK BODO (INDONESIAN EDITION) BY S. MARA GD.

SUKSES BERBISNIS DI INTERNET DALAM 29 HARI (INDONESIAN EDITION) BY SOKARTO SOKARTO

JUTAAN UMKM PAHLAWAN PAJAK: URUS PAJAK ITU SANGAT MUDAH (INDONESIAN EDITION) BY CHANDRA BUDI

Rekayasa Perangkat Lunak Rekayasa Kebutuhan. Teknik Informatika UNIKOM

Software Development Life Cycle (SDLC)

SISTEM INFORMASI MANAJEMEN BAHAN PADA PROYEK KONSTRUKSI PERUMAHAN SETRADUTA ABSTRAK

Proses Pengembangan 1

APLIKASI QRSCANNER DAN QR CODE GENERATOR

Data Structures. Class 5 Pointer. Copyright 2006 by The McGraw-Hill Companies, Inc. All rights reserved.

Callista Sulaiman

MANAJEMEN RISIKO 1 (INDONESIAN EDITION) BY IKATAN BANKIR INDONESIA

PENENTUAN RUTE TERPENDEK DENGAN METODE FLOYD WARSHALL PADA PETA DIGITAL UNIVERSITAS SUMATERA UTARA SKRIPSI DHYMAS EKO PRASETYO

Selling Project Preparation. Week 6

Nama Soal Pembagian Ring Road Batas Waktu 1 detik Nama Berkas Ringroad[1..10].out Batas Memori 32 MB Tipe [output only] Sumber Brian Marshal

Grain Movement For EXPORTS IN CONTAINERS AND SMALLER BULK VESSELS

JARINGAN KOMPUTER. 2. What is the IP address and port number used by gaia.cs.umass.edu to receive the file. gaia.cs.umass.edu :

How To Shop: 1.

SKRIPSI APLIKASI ANDROID PENCARIAN LOKASI PERUMAHAN DI DAERAH ISTIMEWA YOGYAKARTA RESIDENTIAL LOCATION SEARCH ANDROID APPLICATION

Addition of beneficiary for other currency than INR

can have a positive impact Jambuluwuk Malioboro Boutique Hotel in the increasing number of visitors.

Outline. Struktur Data & Algoritme (Data Structures & Algorithms) Pengantar. Definisi. 2-3 Trees

God s PERFECT TIMING EDITORIAL

ABSTRAK. kata kunci : McEliece, Elgamal, Rabin, Enkripsi, Dekripsi, Sandi, Kunci- Publik, Efesiensi

I've learned so much from you. "Number One For Me" Now I'm trying to do it too. Love my kid the way you do. I was a foolish little child

365 Menu Sukses MP-ASI selama 1 tahun Menu Pendamping ASI untuk Bayi Usia 7-18 Bulan (Indonesian Edition)

Membangun Menara karakter (Indonesian Edition)

JARINGAN KOMPUTER : ANALISA TCP MENGGUNAKAN WIRESHARK

32-bit and 64-bit Windows: Frequently asked questions

ABSTRAK. Kata kunci : Try Out, SNMPTN, PTN, SSC, Java, Mysql, Netbeans. vi Universitas Kristen Maranatha

BAB IV HASIL DAN UJI COBA

TIP 163. Game Engine. Topik 5 (Pert 6) Graf, Representasi Dunia, dan Algoritma Pencari Jalur (Pathfinding) Dosen: Aditya Wikan Mahastama

- Lisan -Isian Rina: I left my pen at home. 2x 40 menit Sani: Let me lend you mine Rina: Oh, thanks. etc

APLIKASI BRICK BREAKER MOTION DETECTION. Laporan Tugas Akhir. Diajukan Untuk Melengkapi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer

JURUSAN PENDIDIKAN BAHASA INGGRIS Alamat: Karangmalang, Yogyakarta (0274) , Fax. (0274) http: //

PENGEMBANGAN APLIKASI ESTIMASI UKURAN PERANGKAT LUNAK DENGAN PENDEKATAN FUNCTION POINT ANALYSIS

APLIKASI SISTEM PENYEBARAN INFORMASI PENYAKIT ASMA BERBASIS ANDROID EXZAN HARYANTO

- LISAN -ISIAN RINA: I LEFT MY PEN AT HOME. 2X 40 MENIT SANI: LET ME LEND YOU MINE RINA: OH, THANKS. ETC

Lesson 70: Questions. Pelajaran 70: Pertanyaan

ABSTRAK. Kata kunci : Android, Mobile, Smartphone, Teknologi, Wisata

TEKNIK KOMPUTASI TEI 116/A. Jurusan Teknik Elektro dan Teknologi Informasi Universitas Gadjah Mada 2011

Disain Riset. "If you don't have the time to do it right, you must have the time to do it over." - Author unknown ITP500. Purwiyatno Hariyadi

Electrostatics. Wenny Maulina

Pengenalan Rekayasa Perangkat Lunak (RPL)

ITP500 Disain Riset. Purwiyatno Hariyadi. Departemen Ilmu dan Teknologi Pangan, Fakultas Teknologi Pertanian IPB Bogor. phariyadi.staff.ipb.ac.

Membangun Menara karakter (Indonesian Edition)

Grouping Object. Viska Mutiawani, M.Sc

KOMUNIKASI EFEKTIF. presented by : M Anang Firmansyah

System Development Life Cycle (SDLC)

The Process. A Layered Technology. Software Engineering. By: U. Abd. Rohim, MT. U. Abd. Rohim Rekayasa Perangkat Lunak The Process RPL

Decision Making Prentice Hall, Inc. A 1

6ABSTRAK. Kata kunci: XML, XPS, PDF, konversi, MVVM

ABSTRAK. Keywords: Balanced Scorecard, Low Cost Strategy, financial, sales volumes, customer, internal business processes, learning and growth.

Transkripsi:

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

Iterating, Testing, and OOA&D Lifecycle Pemodelan Sistem Perangkat Lunak Pertemuan 5

Waterfall: All or nothing (Usually nothing) Iterative development: Regular delivery of working software

Feature driven development

Feature driven development steps 1. Buat model keseluruhan (model analisis) 2. Buat daftar fitur 3. Buat rencana kerja berdasarkan fitur 4. Buat rancangan berdasarkan fitur 5. Buat program berdasarkan fitur lakukan langkah 2-5 hingga selesai

Use case driven development

Use case driven development steps 1. Identifikasi use cases 2. Buat model keseluruhan (model analisis) 3. Buat rencana kerja berdasarkan sebuah use case atau sebuah skenario 4. Buat rancangan berdasarkan use case/skenario 5. Buat program berdasarkan use case/skenario lakukan langkah 3-5 hingga selesai

Memilih pendekatan yang tepat

Memilih pendekatan yang tepat Jika ada banyak fitur yang tidak terlalu saling tergantung Bisa menunjukkan kemajuan pengembangan lebih cepat Fokus pada fungsionalitas, tidak akan ada yang terlewat Baik untuk sistem dengan banyak bagian fungsional yang independen, tidak tergantung satu dengan yang lainnya Jika ada banyak proses dan skenario pada aplikasi Bisa menunjukkan kemajuan berupa proses yang utuh Fokus pada pengguna dan alur penggunaan aplikasi Baik untuk sistem transaksional, yang sebagian besar sistemnya merupakan proses-proses yang kompleks

Sebuah Iterasi

Analisis (lagi) Does the Unit class do what Gary needs?

Feature completion list

Feature completion list

Daftar, daftar, daftar, bikin daftar melulu! Hasilnya mana?

Demo (sekaligus pengujian)

Skenario pergerakan

Tunjukkan kemampuan program yang dibuat Demonstrate unit movement capability Created a 10 x 10 board Created 1st Infantry Division Placed 1st Infantry Division on square (3, 3) Moved 1st Infantry Division from (3,3) to (5, 2) Where is 1st Infantry Division at? (5, 2) Output from our demo Hmm, sekarang mulai kelihatan bagaimana programnya bekerja. Bagaimana dengan

Jadi, pengujian yang dibuat hanya berdasar skenario yang ada saja? Asik!

Enak saja! Masih banyak pengujian yang perlu dibuat! Demo-demo tadi baru sebagian kecil dari pengujian yang diperlukan.

Pengujian negatif (Board class) @Test public void testillegalcoordinate() { Board b = new Board(3,3); try { b.gettileat(new Coordinate(3, 0)); fail("expected out of bounds index"); } catch (Exception e) { asserttrue(true); } }

Bagaimana sih mendapatkan koordinat yang ditempati sebuah Unit? Bisakah Anda membantu saya memahami implementasi bagian ini? Ini mungkin saat yang tepat untuk revisi desain & kode Our new developer

Tile has Units The big -picture What s this and why does the Board have one? Board has Tiles What about Coordinate and IDGenerator?

How to move a unit Find the tile the unit is on Remove the unit from the tile Add the unit to the tile at the new location How do you find the tile the unit is on? I don t remember code to do that?

Choice Advantages Disadvantages Have the unit keep a reference to its tile Easy to implement and efficient Extra field in the unit Does not enable us to ask where a unit is on the board Every time the unit moves this field must be updated Search the board for the tile with the unit Keep a map between the units and tiles Keep a map between the units and board coordinates Easy to implement Easy to implement We know how to get the tile at a specific coordinate so we can easily relate the tile, unit, and coordinates We can answer where a unit is on the board Very inefficient The map must be updated whenever the unit moves Does not enable us to ask where a unit is on the board The map is usually one way so given a coordinate, we can t directly get the units at that coordinate

public class UnitBoardAssociation { private Map<Unit, Coordinate> unitboardmap; public UnitBoardAssociation() { unitboardmap = new HashMap<Unit, Coordinate>(); } public void associate(unit unit, Coordinate coordinate) { unitboardmap.put(unit, coordinate); } public void removeassociation(unit unit) { unitboardmap.remove(unit); } So getcoordinate() is why you have a Coordinate class. } public Coordinate getcoordinate(unit unit) { return unitboardmap.get(unit); } Associating units and coordinates

Mengapa Coordinate class diperlukan? getcoordinate() mengembalikan sebuah koordinat kita tidak dapat mengembalikan lebih dari satu nilai kembalian Tidak ada kepastian apakah semua papan (board) memiliki dua dimensi (dua buah bilangan bulat untuk sebuah koordinat) Coordinate Class membungkus perbedaan yang mungkin terjadi agar lebih fleksibel

Pengujian positif untuk "pergerakan unit"

@Test public void testmovefromsingleunitsquaretoemptysquare() { Board b = new Board(10, 10); Unit u = new Unit(); b.addunit(u, new Coordinate(1, 1)); b.moveunit(u, new Coordinate(2, 2)); asserttrue(b.gettileat(new Coordinate(2, 2)).containsUnit(u)); assertfalse(b.gettileat(new Coordinate(1, 1)).containsUnit(u)); assertequals(new Coordinate(2, 2), b.whereis(u)); } @Test public void testmovefrommultiunitsquaretomultiunitsquare() { Board b = new Board(10, 10); Unit u1 = new Unit(); Unit u2 = new Unit(); Unit u3 = new Unit(); Coordinate c1 = new Coordinate(3, 3); Coordinate c2 = new Coordinate(4, 5); b.addunit(u1, c1); b.addunit(u2, c1); b.addunit(u3, c2); b.moveunit(u1, c2); assertfalse(b.gettileat(c1).containsunit(u1)); asserttrue(b.gettileat(c1).containsunit(u2)); asserttrue(b.gettileat(c2).containsunit(u1)); asserttrue(b.gettileat(c2).containsunit(u3)); assertequals(c2, b.whereis(u1)); }

Kapan kita dapat mengatakan bahwa pengujian yang kita buat sudah cukup? Apakah semua kemungkinan harus diujikan? Berapa banyak pengujian?

Do you trust other programmers to use your code properly?

Perbedaannya

Jadi, tidak perlu melakukan pengujian untuk data yang tidak valid dan kemungkinan error lainnya? Asik! Bukan seperti itu yang dimaksud dengan program by contract!

Contoh tes negatif lainnya @Test public void testmoveunitnotonboard() { Board b = new Board(10, 10); Unit u = new Unit(); b.moveunit(u, new Coordinate(3, 3)); assertfalse(b.gettileat( new Coordinate(3, 3)).containsUnit(u)); } @Test public void whereisunitnotonboard() { Board b = new Board(10, 10); assertnull(b.whereis(new Unit())); }

Feature completion list

Yang telah dilakukan (dan yang perlu dilakukan) We ve incrementally improved the capabilities of GSF in small iterations After each iteration we review the results with the customer, revise and re-prioritize the requirements if necessary Repeat for the next iteration

OOAD Lifecycle

Perjalanan kita

Puzzle...

...solved