Anda di halaman 1dari 24

Re-Engineering

Rekayasa Perangkat Lunak


Yogiek Indra Kurniawan
yogiek@unsoed.ac.id
Informatika, Universitas Jenderal Soedirman
Capaian Pembelajaran
Mahasiswa mampu menjelaskan Re-Engineering perangkat
lunak
To p i k Business Process Re-
Pembelajaran 01 engineering

02 Software Re-
Engineering

03 Reverse Engineering

04 Restructuring

04 Forward Engineering
10. Mahasiswa mampu
membangun Aplikasi /
Perangkat Lunak

8. Mahasiswa mampu
menjelaskan Component-Based
7. Mahasiswa mampu 9. Mahasiswa mampu
Software Engineering (CBSE),
menjelaskan dan menerapkan menjelaskan Re-Engineering
Client-Server Software
pengujian perangkat lunak perangkat lunak
Engineering(CSSE) dan Web
Engineering

5. Mahasiswa mampu
4. Mahasiswa mampu 6. Mahasiswa mampu
menjelaskan Computer-Aided
menjelaskan Object-oriented menjelaskan prinsip-prinsip
Software Engineering (CASE) dan
Software Engineering implementasi perangkat lunak
Tools-nya

2. Mahasiswa mampu menjelaskan Siklus


Hidup Perangkat Lunak (SDLC / Software 3. Mahasiswa mampu menjelaskan
Development Life Cycle) dan metodologi manajemen proyek perangkat lunak
pengembangan perangkat lunak

1. Mahasiswa mampu menjelaskan konsep dasar


rekayasa perangkat lunak

Analisa dan Desain Sistem


Algoritma dan pemrograman
Business Process Re-engineering
Perubahan proses bisnis pada sebuah organisasi, baik sedikit
maupun menyeluruh.
Penggunaan perangkat lunak pada sebuah organisasi umumnya
menyebabkan perubahan proses bisnis sehingga menyebabkan
BPR.
Proses Bisnis
Serangkaian tugas berurutan yang dihubungkan secara logis yang
dilakukan untuk mencapai hasil akhir bisnis yang telah ditentukan
Contoh : Perancangan produk baru, pembelian jasa dan suplai, merekrut
tenaga kerja baru, pembayaran pemasok.
Bisnis

Sistem Sistem Sistem


………
Bisnis 1 Bisnis 2 Bisnis m

Proses Proses ……… Proses


Bisnis 1.1 Bisnis 1.2 Bisnis 1.n

………
Subproses Subproses Subproses
Bisnis 1.1.1 Bisnis 1.1.2 Bisnis 1.1.k
Re-engineering
Rekayasa ulang/Re-engineering adalah suatu proses yang kerap
disamakan dengan maintenance sistem.
Reengineering : Proses membangun kembali sistem dimana produk yang
dihasilkan dapat bertambah fungsionalitasnya, semakin baik performa
dan kehandalannya serta meningkatkan kemampuan maintainability-nya.
Kenapa Sistem di Re-engineering?
1. Requirement baru terbentuk selama sistem tersebut
digunakan
2. lingkungan bisnis sistem tersebut berubah
3. Terdapat eror yang harus segera diperbaiki
4. Ada komputer atau hardware baru yang ditambahkan ke
sistem
5. Performa dan keandalan sistem harus segera ditingkatkan.
BPR Vs Software Re-engineering
Business process Reenginering dilakukan oleh business analyst
Software Reenginering dilakukan oleh programer dan timnya
BPR :
Business definition -> Process Identification -> Process Evaluation ->
Process specification & design -> Prototyping -> Refinement & Instalation.
Software Re-engineering :
Inventory Analysis -> Document Restructuring -> Reverse Engineering ->
Code Restructuring -> Data Restructuring -> Forward Engineering.
Model Software Re-engineering
Reverse Engineering
Prosedur dan proses dalam membongkar suatu objek untuk
mengetahui bahan, cara kerja, atau teknologi yang dipakai
sehingga objek tersebut bisa berfungsi dengan baik.
proses bagaimana kita bisa mengetahui algoritma program atau
source codenya jika memungkinkan
Rekayasa balik perangkat lunak melibatkan kode mesin atau
bilangan biner pada suatu program untuk dikembalikan ke sumber
(kode) aslinya
Sedangkan untuk rekayasa balik pada perangkat keras biasanya
melibatkan pembongkaran pada perangkat untuk mengetahui cara
kerjanya.
Reverse Engineering
Dalam kasus virus dan malware, kita bisa menganalisis virus atau malware dan
membuat anti yang tepat.
Dalam kasus proteksi program, kita akan bisa membongkar proteksi seperti
serial number atau expiration date, baik berupa patch atau keygen. Bisa juga
dipakai untuk memodifikasi, misalnya memperbaiki bug suatu program atau
menambah fitur dan fungsi.
Dalam kasus kehilangan source code, kita bisa mengembalikan sebagian kode
yang hilang untuk memperbaiki atau meningkatkan kinerja suatu program.
Reverse engineering untuk tujuan menyalin atau menduplikat program
merupakan pelanggaran hak cipta. Dalam beberapa kasus, penggunaan
perangkat lunak berlisensi secara khusus melarang praktik reverse engineering
Reverse Engineer
Jumlah orang yang bisa melakukan reverse engineering di
dunia ini tidak banyak.
karena yang bisa melakukan RE relatif sedikit maka harga
jasanya pun menjadi mahal.
Mempelajari reverse engineering ini juga membutuhkan waktu
yang cukup lama, tidak sekedar membuka IDA Pro atau tool
sejenis dan langsung bisa menemukan di mana harus patch
sesuatu atau menemukan algoritma tertentu.
Mempelajari Reverse Engineering
Mengenal Bahasa Pemrograman.
Gunakan debugger, disassembler, decompiler
Contoh Tool : apktool, dex2jar, JD-GUI untuk mengembalikan
sebagian besar kode sebuah APK Android ke versi Java
Pekerjaan Reverse Engineering
Reversing virus/malware. Kerjanya membongkar berbagai malware/virus
baru tiap hari.
Mencari bug di software dan membuat exploit untuk software tersebut.
Mencari bug di hardware dan membuat exploit untuk hardware tersebut.
Memberikan training. Banyak perusahaan mulai memperhatikan masalah
security, jadi para engineer diharapkan bisa membongkar sendiri hasil
kerja mereka apakah aman atau tidak.
Tester aplikasi (baik resmi ataupun informal).
Rekonstruksi program berdasarkan program lama yang source codenya
hilang.
Direksionalitas; bila satu jalur maka semua informasi yang diekstrak dari kode
sumber diberikan kepada perekayasa yang dapat menggunakannya selama
pemeliharaan. Bila dua arah informasi diisikan ke peranti rekayasa ulang yang
akan merestrukturisasi atau memunculkan lagi program lama.
A. Reverse Engineering untuk Memahami Pemrosesan
Aktivitas reverse engineering real pertama-tama dimulai dengan usaha
memahami kemudian mengekstrak abstraksi prosedural yang
direpresentasikan oleh kode sumber.
• Fungsionalitas keseluruhan dari sistem harus dipahami sebelum kerja
reverse engineering yang lebih detail dilakukan.
• Teknik segmentasi program sebagai cara untuk mengidentifikasi pola
prosedural dengan sebuah model dan kemudian mengemas lagi pola-
pola itu ke dalam sebuah fungsi yang penting.

B. Reverse engineering untuk memahami data.


Pada tingkat sistem, stuktur data global ( misal file, database )sering
direkayasa ulang untuk mengakomodasi paradigma manajemen database
baru ( misal gerakan dari flat file ke sistem database relasional atau OO )
Forward Engineering
Membuat ulang sebuah perangkat lunak dengan menerapkan
prinsip-prinsip rekayasa perangkat lunak, konsep dan metode untuk
membuat ulang suatu aplikasi yang sudah ada.
Tidak hanya membuat program yang ekivalen dengan program lama,
tetapi lebih mengintegrasikan pemakai baru dan teknologi baru ke proses
reengineering.
THANK YOU

Anda mungkin juga menyukai