A.
Reverse Engineering
Rekayasa balik atau rekayasa
mundur (reverse engineering) adalah proses penemuan prinsip-prinsip teknologi dari suatu perangkat, objek, atau
sistem melalui analisis strukturnya, fungsinya, dan cara kerjanya. Proses ini biasanya melibatkan
pemisahan (perangkat mesin, komponen
elektronik, program komputer, atau zat biologi, kimia, atau organik)
dan analisis terhadap cara kerjanya secara terperinci, atau penciptaan
perangkat atau program baru yang memiliki cara kerja yang sama tanpa memakai
atau membuat duplikat (tanpa memahami) benda aslinya. Pada dasarnya, prinsip
rekayasa balik sama dengan penelitian ilmiah, namun
objek yang ditelaah berbeda. Objek yang ditelaah pada riset ilmiah biasanya
adalah fenomena alami, sedangkan pada rekayasa balik, objek yang ditelaah adalah
benda buatan manusia
Rekayasa
balik sudah dilakukan pada zaman ketika analisis perangkat keras masih
bertujuan memperoleh keuntungan komersial atau militer. Tujuannya
adalah mengetahui cara merancang produk akhir dengan
sedikit atau tidak adanya informasi tambahan mengenai prosedur pembuatan
aslinya. Informasi pembuatan produk asli tersebut tidak tersedia entah karena
memang dirahasiakan oleh pembuatnya atau karena hilang atau rusak.
Teknik
yang sama kini diteliti untuk diterapkan pada sistem perangkat lunak turunan,
bukan untuk keperluan industri atau pertahanan, melainkan untuk menggantikan
dokumentasi yang salah, tidak lengkap, atau belum tersedia
Reverse engineering adalah
proses menganalisis sistem subjek untuk mengidentifikasi sistem, komponen dan
antar hubungan mereka, dan menciptakan representasi sistem dalam bentuk lain
atau tingkat abstrasksi yang lebih tinggi. Reverse engineering melibatkan
identifikasi atau recovery dari kebutuhan program dan / atau spesifikasi desain
yang dapat membantu dalam memahami dan memodifikasi program. Tujuan utama
adalah untuk menemukan fitur yang mendasari sistem, termasuk persyaratan,
spesifikasi, desain dan implementasi. Dengan kata lain, reverse engineering itu
ditujukan untuk memulihkan dan mencatat informasi tingkat tinggi tentang
sistem, termasuk:
· Struktur sistem - komponen dan antar hubungan mereka, seperti yang
diungkapkan oleh antarmuka;
· fungsionalitas - operasi apa yang dilakukan pada komponen apa;
· perilaku dinamis - Sistem pemahaman tentang bagaimana input diubah menjadi
output;
· Alasan - desain
melibatkan pengambilan keputusan antara sejumlah alternatif pada setiap langkah
desain
· konstruksi - modul, dokumentasi, test suite, dll.
Beberapa tujuan untuk melakukan reverse engineering dapat
diklasifikasikan ke dalam beberapa klasifikasi
- masalah
kualitas (quality issues), seperti penyederhanaan perangkat lunak yang
rumit, meningkatkan kualitas perangkat lunak yang mengandung kesalahan,
penghapusan efek samping dari perangkat lunak, dll.
- masalah
pengelolaan (management issues), seperti membuat standar pemrograman,
memfasilitasi teknik manajemen pemeliharaan perangkat lunak dengan lebih
baik, dan sebagainya.
- Masalah
teknis (technical issues), seperti memungkinkan perubahan dalam perangkat
lunak, menemukan dan merekam desain sistem, menemukan dan merepresentasikan model bisnis yang ada dalam
perangkat lunak, dll.
Tanpa dukungan Sarana yang tepat, biaya reverse engineering
sistem perangkat lunak sangat tinggi. Tools Reverse
engineering menyediakan mekanisme untuk ekstraksi data, Penciptaan model,
visualisasi, dan penjelasan untuk membantu pemrogram untuk memahami sebuah
sistem software.
a.
Apa sih pengertian reverse engineering?
Reverse engineering adalah sebuah
proses untuk mencari dan menemukan system teknologi, fungsi dan operasi yang
bekerja di balik suatu desain, komponen atau objek melalui sebuah proses
analisa yang mendalam pada setiap komponen struktur dari desain atau objek yang
diteliti. Secara singkat dapat disimpulkan bahwa reverse engineering adalah sebuah
proses peng-ekstrakan informasi yang ada pada sebuah desain atau objek baik
informasi dimensi ukuran, cara kerja atau bahkan informasi metode pembentukan
desain.
Konsep reverse engineering di industri pada dasarnya adalah menganalisa suatu produk
yang sudah ada (dari produsen lain) sebagai dasar untuk merancang produk baru
yang sejenis, dengan memperkecil kelemahan dan meningkatkan keunggulan produk
para kompetitornya.
1. Keuntungan reverse engineering
·
Waktu yang digunakan dalam
mendesain suatu produk semakin cepat.
·
Menciptakan desain yang lebih
inovatif dari desain-desain atau produk-produk yang sudah ada
·
Perubahan-perubahan desain yang
akan terjadi, akan semakin mudah dibuat
·
Dokumentasi dalam bentuk 3D data,
akan memudahkan pada proses selanjutnya baik dalam manufacturing atau
prototyping
2. Kerugian reverse engineering
·
Masalah kepemilikan. Suatu pihak
dapat menyalin karya asli dan mengaku karya tersebut sebagai miliknya. Pemilik
asli tidak dapat memberikan bantahan karena tidak ada bukti yang otentik
menandakan kepemilikan.
·
Pelanggaran copyright. Merupakan
penyalinan yang tidak berijin sehingga mengakibatkan kerugian dari pencipta
karya karena tidak diperolehnya royalti apapun dari penggandaan tersebut.
·
Masalah keaslian. Karya digital
dapat dengan mudah diubah, sehingga dapat menyebabkan hilangnya atau berubahnya
data-data yang penting dari sebuah karya desain
B. Reverse Engineering Untuk Memahami
pemprosesan
Aktivitas
rekayasa (reverse engineering) real pertama di mulai dengan usaha memahami
kemudian mengekstrak abstraksi procedural yang direpresentasukan oleh kode
sumber.
Fungsionalitas
keseluruhan dari system harus dipahami sebagai kerja rekayasa balik (reverse
engineering) yang lebih detail dilakukan. Teknik segmentasi program sebagai
cara untuk mengidentifikasi pola procedural dengan sebuah model dan kemudian
mengemas lagi pola-pola inti kedalam sebuah fungsi yang penting.(Sofy,2009).
Secara
sederhana teknik segmentasi bisa diartikan sebagai suatu ruang alamat atau
segment yang berada di memori. Segment-segment itu dalam keadaan independent.
Setiap segment berisi alamat 0 sampai maksimum secara linier. Panjang setiap
segment berbeda-beda sampai panjang maksimum. Perubahan panjang segment terjadi
selama proses eksekusi. (Silitonga, 2010).
C. Reverse Engineering Untuk Memahami
Data
Pada
tingkat system, Struktur data global (missal file, database) sering direkayasa
ulang untuk mengakomodasi paradigma manajeman database baru (missal gerakan
dari flag file ke system database relasional atau OOP).
a. Struktur Data Internal
Pendekatan untuk kelas rekayasa
balik (reverse engineering)
1. Identitas flag dan struktur data
local pada program yang merekam informasi penting mengenai struktur data
global.
2. Tetapkan hubungan antara flag dan
struktur data local dan global.
3. Untuk setiap variable yang mempresentasikan
aray atau file, daftarlah semua variable lain yang memiliki hubungan logis
dengannya.
b. Struktur Database
Langkah-langkah
mendefenisikan model data yang ada ke model database baru, adalah sebagian
bentuk :
1. Bangunan model obyek awal.
2. Tentukan kunci calon.
3. Saling kelas-kelas tentatif.
4. Defenisikan generalisasi.
5. Temukan hubungan.
test admin
BalasHapushahaha.. tugas nihh.. ijin copy admin :D
BalasHapus