Tutorial Abstract Behavioral Specification (ABS)

dokumen-dokumen yang mirip
LABORATORIUM FORMAL METHODS IN SOFTWARE ENGINEERING (FMSE) FAKULTAS ILMU KOMPUTER UNIVERSITAS INDONESIA. Tutorial SPL in ABS

MODUL 6 PERULANGAN. A. String. 1. Instansiasi dan Inisialisasi. M0601xxyyy.jar

MODUL 1 INSTALASI PAKET JAVA DAN PROGRAM SEDERHANA

TIPE DATA PADA JAVA. Pertemuan (K-04/L-04)

Ginanjar Utama Workbench Tempat Bekerja

Modul Pelatihan : Pembuatan Game Animasi Menggunakan Greenfoot

int i = 0; while (i < 10) { System.out.println( Informatika Unpas ); i++; }

1. LifeLine Sequence Diagram dibuat dengan banyak lifeline. Setiap lifeline mendapatkan tempat sendiri sendiri. Beberapa jenis lifeline antara lain

Web Service: Memulai Proyek

Tipe Data Floating Point Tipe data yng digunakan untuk menampung bilangan desimal

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

LAB02 : KODING PROGRAM

24/09/2017 PERCABANGAN

Penggunaan Netbeans IDE, Hello World, variable dan Operator aritmetika.

Dasar Pemrograman. Visual Studio Program C++ Sederhana. Yoannita, S.Kom.

PEMROGRAMAN VISUAL BASIC

TIPE DATA Pertemuan (K-03/L-03)

Pemrograman Lanjut. Instance Variable Access Modifier Set dan Get Method

TUTORIAL INSTALASI ANDROID SDK

APLIKASI WEB DINAMIS LANJUT TUGAS 1

Google Sign In Android

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

Pemrograman Lanjut Review Class dan Object PTIIK

Membuat JSP dan Servlet Sederhana

1.1 Mengenal Visual Basic (VB) 1.2 Mengenal Integrated Development Environment (IDE) VB 6

Instalasi Android SDK Maret 2012 Tingkat: Oleh : Feri Djuandi Pemula Menengah Mahir Platform : Windows XP, Eclipse

Didalam menampilkan peta yang sudah kita buat, kita akan menggunakan Slick2D sebagai sebuah frameworknya.

Dwiny Meidelfi, M.Cs

Modul 2. [access specifier] [tipe data] [nama variabel];

Tabel 1. Instruksi untuk menampilkan teks No. Bahasa Pemrograman Instruksi 1. Pascal WRITE ( Bahasa pemrograman itu mudah );

SUMBER BELAJAR PENUNJANG PLPG

Modul PVB-POLINEMA V1.0

Pemrograman. Pertemuan-3 Fery Updi,M.Kom

Pertama tama install terlebih dahulu java versi terbaru pada. atau didalam

BAB IV IMPLEMENTASI DAN ANALISA

Apa yang menjadi output potongan kode diatas? Error karena tidak ada String yang di-passing kedalam konstruktor Bapak

Aplikasi Rekursif dalam Analisis Sintaks Program

persiapan "tools" untuk membuat aplikasi blackberry

MEMULAI ECLIPSE. Juli 2009 Tingkat: Oleh : Feri Djuandi Pemula Menengah Mahir.

Memahami Proyek-Proyek Visual Basic dan Dasar-Dasar Visual Basic Code

Class & Sequence Diagram

1. Manakah jawaban yang benar,pada saat Anda mengcompile dan menjalankan class berikut ini:

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

IF PEMROGRAMAN LANJUT TUGAS 1. Oleh : Andri Heryandi, M.T.

BAB V IMPLEMENTASI DAN PEMBAHASAN

MODUL I. A. Instalasi Borland Delphi Buka file instalasi Borland Delphi Klik Run Program. 3. Klik Next

Menginstall MYSQL SERVER 5.6 pada Windows 8. Sebelum nya download sql offline installer pada link ini (windows 8 32 bit Support)

Pengenalan Bahasa C++, Algoritma Pemrograman, Integrated Development Equipment (IDE) Visual C++ dan Dasar Dasar Bahasa C++

Modeling Tools StarUML

PROGRAM STUDI D3 JURUSAN TEKNIK KOMPUTER POLITEKNIK NEGERI SRIWIJAYA PALEMBANG Pemrograman Berorientasi Objek 3 (Mobile And Web Programming)

MODUL 6 JDBC (JAVA DATABASE CONNECTIVITY)

PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR

DASAR MENGGUNAKAN VISUAL BASIC 6.0

Pemrograman Dasar M E T H O D / F U N G S I

Operator, Statement kondisional, dan Iterasi pada Java

I. Tujuan Instruksional Umum Mengenal konsep dasar berorientasi objek Memahami dan dapat mengimplementasikan Kelas dan Objek pada java.

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK (JAVA) PERTEMUAN 1 PENGENALAN LINGKUNGAN PEMROGRAMAN JAVA

Modul Pelatihan : Pembuatan Game Animasi Menggunakan Greenfoot

BAB 4 IMPLEMENTASI DAN EVALUASI. Adalah kebutuhan yang dibutuhkan dalam memenuhi kebutuhan spesifikasi

VISUAL BASIC 6.0 PEMROGRAMAN KOMPUTER. Visual Basic

[Pemrograman Android Dasar 02][Level: Pemula] Andi Taru Nugroho Nur Wismono S.Kom.,M.Cs. Lisensi Dokumen:

SETUP (Petunjuk Instalasi SIMAK Accounting)

BAB 2 LANDASAN TEORI. Istilah komputer (computer) berasal dari bahasa latin computere yang berarti

persiapan "tools" untuk membuat aplikasi blackberry

Modul Praktikum Bahasa Pemrograman 1

CARA INSTALASI DAN MENJALANKAN PROGRAM

[Tutorial VB6] Bab 4 Penggunaan Data dan Variabel

BEKERJA DENGAN JAVA CLASS LIBRARY

BAB I PROJECT NETBEANS DAN GUI SEDERHANA

Persiapan. 2.1 Hardware

Membuat dan Menggunakan Class

Pertemuan 4 Array pada Java

2.1 if Jenis-jenis Percabangan if adalah if, if else, If else if else if - else

Dasar Pemrograman Java

Pemrograman Lanjut Class, Instance Variable dan Method PTIIK

PEMROGRAMAN BERORIENTASI OBJEK

Modul Praktikum 3 Pemograman Berorientasi Objek

BAB I. 1 P e m r o g r a m a n V i s u a l B a s i c - J a t i L e s t a r i

LAB PEMROGRAMAN I (JAVA FUNDAMENTAL) PERTEMUAN 3 Dosen : Bella Hardiyana S. Kom

PENGEMBANGAN PROJECT MICROCONTROLLER DENGAN ARDUINO IDE

PANDUAN PENGATURAN MODUL PRINT

Location Based Services

1.1 Download Software Yahoo Messenger

KUM 3 IMPLEMENTASI LIST

PEMOGRAMAN APLIKASI BERGERAK (Java ME) Yoannita

IKG2I4 / Software Project I

DASAR PEMOGRAMAN JAVA

1. Modifier Digunakan untuk memberikan batasan atau penanda bagaimana kelas lain menggunakan attribut, constructor dan method dari suatu kelas.

Variabel dengan tipe dasar hanya dapat menyimpan sebuah nilai

Praktikum 1 Installation for OpenCV

visit :

BAB 6. Struktur Kontrol

VISUAL PARADIGM. Tugas Mata Kuliah IF-4061 Analisis dan Perancangan Berorientasi Objek Tanggal Pengumpulan : 20 Oktober 2004

Manajemen Digital Library Mendeley Desktop

Tipe if : If tanpa else (if) If dengan else (if-else) Nested if

Universitas Komputer Indonesia. Pemrograman dengan C++ Builder 2004 Taryana S.

Modul Praktikum Ke-2

PRAKTIKUM 2. Variabel, Tipe Data dan Operator. Tipe data dan variabel. - Microsoft Visual Studio 2010

Klik File setup.exe lalu akan muncul tampilan seperti gambar dibawah ini.

MODUL 2 PERANCANGAN INTERFACE

Transkripsi:

LABORATORIUM RELIABLE SOFTWARE ENGINEERING (RSE) FAKULTAS ILMU KOMPUTER UNIVERSITAS INDONESIA Tutorial Abstract Behavioral Specification (ABS) RSE Training - A New Approach in Modeling Requirement Changes Jumat, 8 Januari 2016

Daftar Isi 1. Instalasi... 3 Eclipse... 3 Eclipse Plugin ABS Tool... 3 2. Membuat ABS Model pada Eclipse... 4 3. Membuat Core ABS Module... 5 4. Menjalankan ABS Model... 10 2

1. Instalasi Note : Anda dapat mengabaikan bagian ini, karena pada PC Lab sudah ter- install eclipsemodelling-luna. Anda dapat membukanya melalui shortcut pada Dekstop. Ada dua aplikasi eclipse pada Desktop, maka pastikan aplikasi yang Anda buka adalah eclipsemodelling bukan eclipse biasa. Jika tidak ada, anda dapat membuka aplikasi dengan melalui C:/eclipse-modelling/eclipse/eclipse.exe Eclipse Untuk pelatihan ini, IDE yang digunakan adalah Eclipse dan disarankan menggunakan Eclipse modeling tools versi Luna. Untuk mengunduhnya silahkan menuju link berikut: https://eclipse.org/downloads/packages/eclipse-modeling-tools/lunar Kemudian pilih versi yang sesuai Eclipse Plugin ABS Tool Untuk menginstall plugin ABS di Eclipse, silahkan mengikuti langkah-langkah berikut: Eclipse Menu Help Install New Software Pilih Add Masukkan Alamat update site ABS Tool (http://tools.hats-project.eu/update-site) Pilih 4 komponen pertama dari ABS untuk diinstal (seperti gambar di bawah ini) Klik Next Next Finish 3

2. Membuat ABS Model pada Eclipse Setelah melakukan instalasi plugin ABS pada Eclipse, kita dapat membuat ABS model dan menjalankan model tersebut. Langkah-langkah: 1. Open Perspective ABS dengan membuka Menu Window Open Perspective Pilih Other Klik ABS. Setelah itu akan muncul menu dari ABS plugin, yang terdiri dari Generate Maude Code, Execute Model (Maude), Generate Java Code, Debug Model (Java), dan Start SDEdit (Java). 4

2. Buat project ABS baru. Pilih menu New Other ABS ABS Project. Klik Next Masukkan nama Project, misal AccountABS. Klik Finish 3. Buat modul ABS baru. Klik kanan pada project AccountABS, pilih menu New ABS Module (New File). Masukkan nama file, misal Account.abs. Klik Finish. 3. Membuat Core ABS Module Core ABS Module terdiri dari beberapa komponen, antara lain: 1. Module Pembuatan Core ABS module dimulai dengan pembuatan nama module. Tambahkan kode berikut ke dalam file Account.abs. Contoh: module Account; export *; import Customer,CorpIndvCustomerImpl from CustomerIF; Statement Import digunakan untuk menggunakan class-class yang didefinisikan di module lain sedangkan statement Export digunakan agar class-class pada modul tersebut dapat digunakan modul lain juga. 2. Interface Interface di ABS mirip dengan interface di Java, memiliki nama dan dapat mengextend interface lainnya. Body dari interface terdiri dari deklarasi method dimana nama setiap method diawali dengan huruf kecil. Setiap kelas pada ABS harus memiliki satu interface Berikut adalah contoh interface pada ABS. Silakan tambahkan juga kode berikut kedalam Account.abs 5

interface Account { Int getaid(); Int deposit(int x); Int withdraw(int x); 3. Class Class pada ABS harus mengimplementasi paling tidak satu interface. ABS tidak mengenal konsep class inheritance, konsep tersebut digantikan dengan konsep delta modeling. Class pada ABS tidak memiliki constructor tetapi class-nya memiliki parameter. Berikut adalah contoh dari impelementasi class pada ABS. class AccountImpl(Int aid, Int balance, Customer owner) implements Account { // Core Product Int getaid() { return aid; Int deposit(int x) { balance = balance + x; return balance; Int withdraw(int y) { if (balance - y >= 0) { balance = balance - y; return balance; Tambahkan kode diatas ke dalam Account.abs 4. Atribut Berikut adalah beberapa tipe data yang dikenal oleh ABS : o Bool = True False Tipe data Boolean dengan nilai dapat berupa true atau false o Unit Tipe data yang tidak mengembalikan nilai (mirip dengan void di Java) o Int Tipe data integer berupa bilangan bulat o Rat Tipe data rational berupa bilangan rasional o String Sama dengan tipe data String yang umumnya dikenal di bahasa seperti Java o Fut<T> Tipe data future, yang tidak bisa secara eksplisit dikonstruksi dan hasil dari pemanggilan metod secara asinkronus. Nilai dari future hanya dapat diperoleh dengan menggunakan ekspresi get. o List<A> = Nil Cons(A, List<A>) Tipe data list dengan Nil menandakan list kosong 6

5. Method Method pada ABS memiliki nama, parameter, dan return type. Pemanggilan Method Ada dua jenis pemanggilan method yang dikenal di ABS, synchronous atau asynchronous. Untuk pemanggilan method secara synchronous sama dengan pemanggilan method biasa di Java, yaitu namaobject.namamethod. Contoh: Bool b = x.m(5); Untuk pemanggilan method secara asynchronous dapat dilakukan dengan sintaks namaobject!namamethod. Return type dari Method Asynchronous disimpan di variable dengan statement Fut. Contoh: Fut<Bool> f = x!m(5); Untuk mendapatkan nilai dari sebuah future variable, dapat menggunakan sintaks get. Task yang sedang berjalan diblok hingga nilai future dapat diperoleh. Sementara itu, tidak ada task lain dalam COG yang dapat dijalankan. Contoh: Bool b = f.get; Pada asynchronous method call, terdapat statement await untuk menunda task yang sedang berjalan hingga statements selanjutnya (guard) bernilai true. Task tidak ditunda jika guardnya telah bernilai true. Saat task sedang ditunda, task lain akan dikerjakan terlebih dahulu. Fut<Bool> f = x!m(); await f?; await this.x == True; await f? & this.y > 5; Main Method Main Method ditandai dengan block yang diawali dan diakhiri dengan kurung kurawal ({). Pada main method ini dapat dibuat object baru dengan statement New. Statement new membuat sebuah objek baru dari sebuah nama class dan argument. Objek di ABS dapat dibuat dengan dua cara. Cara pertama adalah menciptakan objek dalam COG yang sama yaitu menggunakan statement new dan 7

menciptakan objek dalam COG yang berbeda yaitu menggunakan statement new cog. Contoh: { Customer c = new local CorpIndvCustomerImpl(17); Account a = new AccountImpl(1,1,c); Fut<Int> dep = a!deposit(100); Fut<Int> withd = a!withdraw(10); await dep? & withd?; Int deposit = dep.get; Int withdraw = withd.get; Int net = deposit+withdraw; Silakan tambahkan juga kode diatas ke dalam Account.abs 6. Comment // this is a comment module A; // this is also a comment / *this is a multiline comment* / Jika Anda megikuti langkah-langkah diatas dengan benar maka module Account.ABS akan terlihat seperti dibawah ini. 8

module Account; export *; import Customer,CorpIndvCustomerImpl from CustomerIF; interface Account { Int getaid(); Int deposit(int x); Int withdraw(int x); class AccountImpl(Int aid, Int balance, Customer owner) implements Account { // Core Product { Int getaid() { return aid; Int deposit(int x) { balance = balance + x; return balance; Int withdraw(int y) { if (balance - y >= 0) { balance = balance - y; return balance; Customer c = new local CorpIndvCustomerImpl(17); Account a = new AccountImpl(1,1,c); Fut<Int> dep = a!deposit(100); Fut<Int> withd = a!withdraw(10); await dep? & withd?; Int deposit = dep.get; Int withdraw = withd.get; Int net = deposit+withdraw; Lengkapi module Account.abs dengan module CustomerData.abs dan Customer.abs yang tersedia di http://fmse.cs.ui.ac.id/?open=event/abs/2016-material. Silakan copy dua file tersebut kedalam project AccountABS. Sehingga Project Explorer AccountABS terlihat seperti gambar berikut. 9

4. Menjalankan ABS Model Setelah membuat Core ABS model, module tersebut dapat dijalankan dengan langkah sebagai berikut: 1. Klik ikon Generate Java Code pada toolbar ABS Plugin. Setelah dijalankan akan muncul folder gen pada project AccountABS yang berisi hasil generated Java Code. 2. Klik ikon Debug Model (Java) pada toolbar ABS Plugin untuk melakukan debug dari hasil generated Java Code. Klik menjalankan eksekusi per step. 3. Untuk melihat visualisasi dari proses debug Java Model, dapat me-klik ikon Start SDEdit (Java) pada toolbar ABS plugin. Contoh sequence diagram yang dihasilkan adalah seperti di bawah ini. 10