• Tidak ada hasil yang ditemukan

SYSTEMC DAN UML : PERANCANGAN BERORIENTASI OBJEK STUDI KOMPARATIF

N/A
N/A
Protected

Academic year: 2021

Membagikan "SYSTEMC DAN UML : PERANCANGAN BERORIENTASI OBJEK STUDI KOMPARATIF"

Copied!
5
0
0

Teks penuh

(1)

SYSTEMC DAN UML : PERANCANGAN BERORIENTASI OBJEK

STUDI KOMPARATIF

Maman Abdurohman1), Kuspriyanto2) Sarwono Sutikno3) Arif Sasongko4)

1Teknik Informatika, IT Telkom, Jln. Telekomunikasi No.1 Bandung 2STEI ITB, Jln. Ganesha 10 Bandung

Telp : (022) 7565931, Fax : (022) 7565931 E-mail : HHUmma@ittelkom.ac.idUHH

1) H , Ukuspriyanto@yahoo.comU 2) , ssarwono@ieee.org UHH 3) asasongko@stei.itb.ac.id Abstract

This paper presents a suitability between UML method and SystemC design in the case of hardware design. SystemC is the C++ library that uses object oriented programming method. This programming language is designed for System Level Design. UML Method is an object oriented design. Both, UML and SystemC, have a simmilarity on object oriented focus. In this paper we focused on simmilarity analysis as advantae values to ease in hardwaer software codesign. Both models have similarity on object, attribute and method definition.

Keywords: UML, SystemC, System Level Desgin

Abstrak

Paper ini memaparkan sejauh mana kesesuaian perancangan metode UML dan perancangan SystemC dalam kasus perancangan perangkat keras. SystemC adalah library C++ yang menganut metode pemrograman berorientasi objek. Pemrograman ini ditujukan untuk perancangan level system (System Level Design, SLD). Metode UML adalah metode perancangan yang berorientasi objek. Pada keduanya, UML dan SystemC, terdapat satu kesamaan fokus yaitu orientasi objek. Pada tulisan ini fokus pembahasan ditunjukan pada analisis kesamaan orientasi ini yang menjadi salah satu nilai lebih untuk memudahkan dalam perancangan bersama perangkat keras dan perangkat lunak (hardware software codesign). Kedua pemodelan ini memiliki kesamaan dalam pendefinisian objek, atribut dan method.

Keyword : UML, SystemC, System Level Desgin

0B0B

1. PENDAHULUAN

Kebutuhan perangkat embedded system semakin hari semakin meningkat. Peningkatan ini didorong oleh peningkatan kebutuhan konsumen terhadap teknologi baru. Kebutuhan yang tinggi ini mendorong vendor untuk memperbaiki proses pengembangan embedded system. Salah satu tahap yang penting untuk dikembangkan adalah proses perancangan. Proses perancangan embedded system yang saat ini digunakan masih dianggap lambat untuk dapat merespon kebutuhan terhadap perangkat-perangkat embedded system.

Proses perancangan embedded system dimulai dengan proses spesifikasi, pemisahan hardware dan software, pengembangan hardware dan software secara paralel dan dilanjutkan dengan simulasi bersama hardware dan software. Pada tahap akhir adalah implementasi sitem.

Peningkatan pemodelan ini salah satunya adalah dengan pemodelan level transaksi (Transaction

Level Model, TLM). Bahasa pemodelan yang

banyak digunakan untuk pemodelan level transaksi adalah SystemC dan SystemVerilog. Keduanya merupakan bahasa pemodelan level sistem yang

saat ini banyak digunakan oleh para perancang [1]. Bahasa pemodelan SystemC banyak digunakan karena kemampuannya dalam mengkombinasikan antara perangkat lunak dan perangkat keras. SystemC pada dasarnya adalah C++ yang telah ditambahkan fitur-fitur untuk perancangan perangkat keras. Komponen-komponen perangkat keras dalam SystemC dipandang sebagai objek. Model perancangan umum yang saat ini banyak digunakan adalah perancangan yang berorientasi objek. Model perancangan yang berorientasi objek yang banyak digunakan adalah pemodelan UML (Unified Modeling Language). Pemodelan ini cocok untuk sistem yang didominiasi oleh objek. Secara de facto UML adalah bahasa pemodelan berorientasi objek yang saat ini banyak digunakan oleh perancang sistem perangkat lunak.

Kedua pemodelan ini memiliki kemiripan karena keduanya sesuai untuk domain masalah dengan dominasi objek. Pada tulisan ini dievaluasi berbagai persamaan dan perbedaan kedua bahasa pemodelan ini.

(2)

1B1B

2. SYSTEMC

SystemC adalah salah satu bahasa perancangan level sistem (System Level Design Language, SLDL) yang saat ini menjadi salah satu terobosan penting dalam peningakatan/perbaikan proses perancangan embedded system. SystemC adalah library C++ yang mendukung pemodelan perangkat keras.

Gambar 1. Struktur dasar SystemC

SystemC dapat digunakan untuk memodelkan pada berbagai level abstraksi [4]:

 Arsitektur : pengujian interaksi antar blok tanpa waktu

 Level Transaksi : waktu perkiraan

 Level Transfer Register : waktu akurat. Dengan adanya librari ini, pemodelan perangkat keras lebih mudah dilakukan.

Perancangan perangkat keras yang saat ini dilakukan terdiri dari beberapa tahapan dimulai dari pemodelan aplikasi sampai implementasi (gambar 2). Pemodelan (C, C++) Analisis Hasil Perbaikan Konversi Manual Simulasi Sintesis ……. VHDL/Verilog

Gambar 2. Tahap pemodelan perangkat keras Rancangan embedded system pada tahap awal dimodelkan dengan menggunakan bahasa C, C++ atau mathlab. Spesifikasi ini kemudian dianalisis

secara berulang sehingga diperoleh model yang dapat memenuhi syarat awal embedded system. Selanjutnya model ini ditranformasikan secara manual ke dalam bahasa perancangan perangkat keras seperti VHDL atau Verilog. Proses ini dilakukan secara manual. Proses selanjutnya adalah simulasi, sintesis dan implementasi.

Proses perancangan konvensional melibatkan perancang untuk mentransformasikan rancangan dari pemodelan ke dalam bahasa perancangan perangkat keras seperti VHDL dan Verilog. Pada perancangan SystemC, pemodelan dilakukan dengan menggunakan rerangka kerja SystemC (Gambar 3). Pemodelan SystemC Analisis Hasil Perbaikan Simulasi Sintesis ……. Gambar 3. Perancangan SystemC

Dalam perancangan dengan SystemC pemodelan dilakukan dengan menggunakan bahasa C++ dan library SystemC. Perangkat keras dan perangkat lunak dapat dimodelkan secara bersama. Hasil pemodelan SystemC dapat langsung disimulasikan sehingga dapat diketahui hasilnya tanpa harus mentransformasikannya ke dalam bahasa lain, seperti VHDL dan Verilog.

2B2B

3. UML (UNIFIED MODELING LANGUAGE)

12

UML adalah salah satu model perancangan perangkat lunak yang berorientasi objek. Disamping UML telah ada model perancangan yang populer yang sering digunakan dalam perancangan perangkat lunak yaitu perancangan terstruktur. Perancangan terstruktur adalah perancangan berorientasi proses dan data. Perbedaan kedua perancangan terletak pada fokus orientasi. Perancangan terstruktur lebih berorientasi kepada proses dan data sedangkan UML lebih berorientasi kepada objek.

Dalam perancangan terstruktur domain masalah dimodelkan sebagai kumpulan proses dan entitas/sumber (Gambar 4). Proses dimodelkan secara hirarki atas-ke-bawah (top-down). Pada tahap awal, sistem dimodelkan sebagai suatu proses besar dan entitas yang berinteraksi dengan proses

(3)

tersebut. Proses utama kemudian dirinci menjadi beberapa sub proses. Setiap sub proses diberi nomor proses. Bagai sub proses yang di dalamnya terdapat proses-proses lain yang lebih kecil, dapat dirinci lagi menjadi proses-proses yang lebih kecil.

PROSES

ALIRAN DATA PENYIMPAN DATA SUMBER / ENTITAS

Gambar 4. Komponen-kompnen perancangan terstruktur

Data mengalir dari sumber ke proses atau dari proses ke proses lain. Data mengalami perubahan setiap kali melewati sebuah proses.

Perancangan UML :

Unified Modeling Language (UML) adalah bahasa untuk spesifikasi, visualisasi, pembangunan dan dokumentasi sistem perangkat lunak sebaik pemodelan untuk bisnis dan sistem lain [2]. Pada perancangan UML, sistem didefinisikan sebagai sekumpulan objek yang memiliki atribut dan metode. Atribut adalah variabel-variabel yang melekat pada objek dan metode adalah fungsi-fungsi yang dapat dilakukan oleh objek. Kelas objek tidak dapat berdiri sendiri, dalam penggunaannya, dilakukan perwujudan (instantiasi) dari objek tersebut. Beberapa tahapan dalam pemodelan UML [3] :

Gambar 5. Tahapan dalam pemodelan UML Tahap awal adalah pendefinisan use case untuk analisis kebutuhan. Dilanjutkan dengan pendefinisian model berupa diagram yang menunjukan konsep atau objek. Diagram interaksi adalah notasi yang menunjukan kolaborasi antar objek. Tahap selanjutnya adalah pendefinisian diagram kelas.

3B3B

4. PERBANDINGAN SYSTEMC DAN UML 4.1. SystemC

Pada SystemC terdapat sebuah definisi makro kelas yaitu SC_MODULE. Modul terdiri dari beberapa bagian [5]:

 Port

 Variabel sinyal internal

 Variabel data internal

 Proses-proses dengan tipe yang berbeda

 Method-method

 Instantiasi modul lain

 Konstruktor

Setiap kelas dalam SystemC memiliki makro SC_CTOR yang merupakan konstruktor tanpa argumen yang digunakan dalam deklarasi SC_MODULE. Penggunaan konstruktor yang memiliki argumen dapat menggunakan SC_HAS_PROCESS. Pada konstruktor dapat didefinisikan SC_METHOD dan SC_THREAD. Dalam SC_MODULE terdapat definisi variabel dan fungsi-fungsi yang ada di dalamnya,

SC_METHOD, SC_THREAD dan

SC_CTHREAD. Ketiganya adalah fungsi yang terdapat dalam sebuah modul.

Contoh berikut adalah modul fir yang memiliki atribut dan method didefinisikan dalam SystemC : SC_MODULE(fir) { sc_in_clk clk; sc_in<bool> reset; sc_in<T_DATA> in; sc_in<bool> in_data_valid; sc_out<T_DATA> out; sc_out<bool> out_data_valid; ...

sc_signal<T_STATE> state_curr, state_nxt; ... SC_CTOR(fir) { SC_METHOD(fir); sensitive<<state_curr<<in; SC_METHOD(fsm); sensitive<<state_curr<<data_valid; SC_METHOD(reg); sensitive_pos<<clk; sensitive<<reset; ... } }

Pada contoh diatas didefinisikan sebuah modul yang diberi nama ”fir”. Modul ini dalam perancangan perangkat keras dianggap sebagai suatu komponen yang memiliki beberapa port. Port yang dimaksud seperti clk, reset, in, in_data_valid dll. Port tersebut menghubungkan antara komponen ”fir” dengan lingkungan luar. Masing-masing port memiliki tipe port dan arahnya. Contoh clk bertipe sc_in_clk artinya port clk adalah port yang menuju ke dalam komponen dari luar.

Pada bagian konstruktor (SC_CTOR) terdapat definisi beberapa method yaitu fir, fsm dan reg. Ketiga method tersebut memiliki daftar input

(4)

masing-masing dan malakukan proses secara bersamaan. Method yang dideklarasikan dalam SC_CTOR adalah method modul kelas fir. Pendefinisan rinci method-method tersebut dilakukan dalam bagian lain di dalam modul fir atau di luar modul.

Channel dan Interface dalam SystemC

Channel dalam SystemC menyediakan metode komunikasi antar proses atau modul SystemC menggunakan interface standar. Channel diimplementasikan sebagai sebuah modul. Channel primitif memiliki kelas dasar, sc_prim_channel. SystemC memiliki beberapa channel primitif seperti :

sc_mutex – mutual exclusion

sc_semaphore – Semaphore

sc_fifo<type> – Antrian First-in first-out Channel juga dapat didefiniskan oleh pengguna secara langsung.

Interface dalam SystemC adalah kelas yang bersifat virtual. Berikut ini program stack yang menggambarkan fungsi interface dalam systemC : #include "systemc.h"

class stack_write_if: virtual public sc_interface {

public:

virtual bool nb_write(char) = 0; // write a character virtual void reset() = 0; // empty the stack

};

class stack_read_if: virtual public sc_interface {

public:

virtual bool nb_read(char&) = 0; // read a character }; Proses MODUL PORT Channel Interface

Gambar 6. Modul, port, interface dan channel

4.2. UML

Pada pemodelan UML, modul fir diatas dapat didefinisikan sebagai sebuah kelas Objek yang memiliki atribut dan method (gambar 7).

Berdasarkan perbandingan antara SystemC dan UML kita memperoleh beberapa kenyataan sebagai berikut :

Modul dalam systemC adalah sebuah Class yang terdiri dari atribut berupa port, nama port dan tipenya. Di dalam modul tersebut terdapat juga

proses-proses yang bisa dianggap sebagai method dari kelas modul tersebut. Signal dan variabel adalah atribut dari kelas yang lebih sederhana. Channel adalah kelas tersendiri yang merupakan turunan dari kelas modul dengan nama kelas sc_channel dan interface adalah kelas virtual.

KELAS : fir

ATRIBUT :

clk, reset, in,

in_data_valid, out,

out_data_valid,

state_curr, state_nxt

METHOD :

fir()

fsm()

reg()

Gambar 7. Kelas fir dalam UML

Tabel berikut menunjukan perbandingan antara pemodelan SystemC dan UML.

Tabel 1. Perbandingan SystemC dan UML

No SystemC UML

1 Module Class “sc_module”

2 Channel Class “sc_channel”

3 Interface Class virtual

4 Port Atribut Class

5 Nama Port Nama Atribut

6 Tipe data Tipe Atribut

8 Process Method Class

Prinsip dasar kedua pemodelan menunjukan banyak kesamaan. Perbedaan terletak pada notasi dan rincian program.

4B4B

5. KESIMPULAN

Kedua pemodelan, SystemC dan UML, memiliki kesamaan dalam domain permasalahan yang berorientasi objek. Dalam SystemC objek yang dimaksud adalah komponen. Dalam memodelkan keduanya memiliki kesamaan baik dalam pendefinisian kelas, atribut maupun method.

6B6B

6. DISKUSI

Dalam memudahkan pemodelan level sistem dimungkinkan untuk dibuat suatu interface antara pemodelan UML dan SystemC sehingga dapat dibuat sebuah model untuk tranformasi dari UML ke dalam SystemC secara otomatis.

(5)

5B5B

7. PENGHARGAAN

Terima kasih kepada departemen Teknik Informatika IT Telkom dan departemen Teknik Elektro STEI ITB atas dukungan finansial dan perangkat penelitian sehingga penelitian ini bisa diselesaikan.

6B6B

8. PUSTAKA

[1] Abdurohman, Maman. Kuspriyanto. Sutikno, Sarwono. Sasongko, Arif. ”SystemC dan

SystemVerilog : Studi Komparatif Bahasa

Perancangan Level Sistem”. Proceeding. SATEK

II. Universitas Negeri Lampung. 2008.

[2] Object Management Group. “OMG Unified

Modeling Language Specification”. www.omg.org.

2001.

[3] Larman, Craig. “Applaying UML and Patterns”. Prentice Hall. 2002.

[4] Genovese, Matt. ”A Quick-Start Guide for

Learning SystemC”. The University of Texas.

Austin. 2004.

[5] Niemann, Bernhard. ”An Introduction to

SystemC 1.0.x”. Institut Integrierte Schaltungen.

Fraunhofer. 2001.

RIWAYAT PENULIS

Maman Abdurohman lahir di kota Majalengka

pada 14 Maret 1975. Penulis menamatkan pendidikan S1 di Institut Teknologi Telkom dalam bidang teknik Informatika pada tahun 1998, S2 di ITB dalam bidang Teknologi Informasi pada tahun 2004 dan sedang mengambil program doctor di ITB dalam bidang perancangan embedded system. Saat ini bekerja sebagai dosen di Institut Teknologi Telkom.

Gambar

Gambar 2. Tahap pemodelan perangkat keras  Rancangan  embedded  system  pada  tahap  awal  dimodelkan  dengan  menggunakan  bahasa  C,  C++
Gambar 6. Modul, port, interface dan channel  4.2. UML

Referensi

Dokumen terkait

Ada beberapa metode seleksi, antara lain(Sri Kusumadewi,2003:284-289) : a) Rank-based fitness assignment, populasi diurutkan menurut nilai objektifnya. Nilai fitness dari

Mengidentifikasi senyawa aktif golongan tanin, alkaloid dan flavonoid dalam ekstrak etanol daun seledri yang diduga bertanggung jawab sebagai larvasida terhadap larva nyamuk

Jalur Seleksi Penelusuran Minat dan Prestasi adalah jalur seleksi bagi calon maha- siswa baru berdasarkan seleksi prestasi akademik dan minat yang tinggi,

Keeratan Hubungan Pemberian ASI Eksklusif dengan Kejadian TB Paru Nilai koefisien kontingensi yang diperoleh dalam penelitian ini sebesar 0,247 menunjukkan keeratan hubungan

(2000) menyatakan bahwa ekuitas merek selain dibentuk oleh dimensi ekuitas seperti kesadaran merek, asosiasi merek, kesan kualitas, dan loyalitas merek juga

1) Neraca meringkaskan posisi keuangan suatu perusahaan pada tanggal tertentu dan menampilkan sumber daya ekonomis ( asset ), kewajiban ekonomis (hutang), modal saham dan

Soesilo Yuwono, Penyelesaian perkara Pidana Berd KUHAP , Sistem prosedur,Alumni, Bandung,1982 Djoko Yuwono, Upaya Hukum yang diatur di dalam K. Aksara Persada

Pembahasan dimulai dengan memberikan pengertian hukum pidana internasional dan perkembangannya, kemudian pada bab selanjutnya secara urut dibahas mengenai sumber, asas,