• Tidak ada hasil yang ditemukan

Tutorial Abstract Behavioral Specification (ABS)

N/A
N/A
Protected

Academic year: 2021

Membagikan "Tutorial Abstract Behavioral Specification (ABS)"

Copied!
10
0
0

Teks penuh

(1)

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

(2)

2

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

(3)

3

1. Instalasi

Note : Anda dapat mengabaikan bagian ini, karena pada PC Lab sudah ter- install

eclipse-modelling-luna. Anda dapat membukanya melalui shortcut pada Dekstop. Ada dua aplikasi eclipse pada Desktop, maka pastikan aplikasi yang Anda buka adalah

eclipse-modelling 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

(4)

4

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).

(5)

5 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:

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

module Account; export *;

(6)

6 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.

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

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; } } interface Account { Int getAid(); Int deposit(Int x); Int withdraw(Int x); }

(7)

7 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:

Untuk pemanggilan method secara asynchronous dapat dilakukan dengan sintaks namaObject!namaMethod. Return type dari Method Asynchronous disimpan di variable dengan statement Fut. Contoh:

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:

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.

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

Fut<Bool> f = x!m(5); Bool b = x.m(5);

Bool b = f.get;

Fut<Bool> f = x!m();

await f?;

await this.x == True;

(8)

8 menciptakan objek dalam COG yang berbeda yaitu menggunakan statement new cog.

Contoh:

Silakan tambahkan juga kode diatas ke dalam Account.abs

6. Comment

Jika Anda megikuti langkah-langkah diatas dengan benar maka module Account.ABS akan terlihat seperti dibawah ini.

// this is a comment

module A; // this is also a comment / *this

is a multiline comment* / {

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; }

(9)

9 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.

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; }

(10)

10

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.

Referensi

Dokumen terkait

Sebaliknya yang sering mengganggu pasien adalah keluhan akibat komplikasi Sebaliknya yang sering mengganggu pasien adalah keluhan akibat komplikasi degeneratif

Penelitian ini dilaksanakan di SDN Lariang. Kelas yang dijadikan objek penelitian yaitu kelas IV. Penelitian Tindakan Kelas ini dilakukan dua siklus secara

 Agar terhindar dari gangguan kesehatan yang disebabkan oleh lingkungan atau kondisi kerja.  Agar setiap pegawai/tenaga kerja merasa aman dan terlindungi

Seperti yang diterapkan pada Repository Perpustakaan UPI dimana pada generasi ini telah menerapkan atau memiliki sistem yang kompleks, seperti yang disebutkan oleh

Jenis penelitian ini adalah penelitian deskriptif dengan metode survei lewat pembagian kuesioner kepada 110 orang siswa dengan jumlah item pertanyaan sebanyak 40

Dan seorang yang merenungkan kisah-kisah para nabi dan rasul akan melihat kejelasan perkara tersebut, seperti kisah Nabi Musa Alaihis salam , pada

3) Klien mungkin menjadi sangat ketakutan dan sangat tergantung dan meskipun bantuan yang diberikan bermanfaat dalam mencegah frustasi adalah penting bagi klien untuk

Tahapan pengolahan yang umum antara lain adalah: pencucian, pemisahan, pengecilan ukuran dan pengayakan, Proses pengolahan kaolin dapat dilihat dari