Reverse Engineering Untuk Memahami Pemrosesan dan Reverse Engineering Untuk Memahami Data



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.

Postingan terkait:

2 Tanggapan untuk "Reverse Engineering Untuk Memahami Pemrosesan dan Reverse Engineering Untuk Memahami Data"