Uploaded by Anandhini Nababan

23516022 - Tugas W15 - Rekayasa Ulang Perangkat Lunak

advertisement
Tugas W15 – Rekayasa Ulang Perangkat Lunak
IF5124 Evolusi Perangkat Lunak
Tanggal Pengumpulan: 28-04-2017
Tugas W15 – Rekayasa Ulang Perangkat Lunak
IF5124 Evolusi Perangkat Lunak
Oleh:
Anandhini Medianty Nababan / 23516022
Outline Tugas:
No
Deliverable
1
Apa yang dimaksud dengan reengineering/rekayasa ulang perangkat
Check
Hal
✓
1
✓
1
✓
2
✓
2
lunak?
2
Mengapa perlu melakukan reengineering/rekayasa ulang perangkat
lunak?
3
Apa yang dimaksud dengan forward engineering dan reverse
engineering? Apa perbedaannya?
4
Jelaskan dengan contoh bagaimana melakukan reengineering
perangkat lunak, proses-proses apa saja yang perlu dilakukan,
metode dan tools apa saja yang digunakan dan terlibat!
5
Apa risks dan benefits dari reengineering perangkat lunak?
✓
6
6
Bagaimana hubungan antara reengineering perangkat lunak
✓
6
✓
7
kaitannya dengan proses evolusi perangkat lunak?
7
1.
Referensi
Definisi reengineering/rekayasa ulang perangkat lunak
Sofware reengineering adalah proses pengorganisasian kembali dan modifikasi perangkat
lunak yang ada untuk menjadikannya lebih dapat dipelihara.
2.
Pentingnya melakukan reengineering/rekayasa ulang perangkat lunak
-
Ketika software tidak dapat dipelihara (masalah pemeliharaan software). Perangkat
masih berjalan, namun setiap kali perubahan terjadi, efek samping yang serius dan
tidak diharapkan terjadi. Padahal, aplikasi harus tetap berevolusi.
-
Ketika software menjadi usang.
23516022 - Tugas W15 - Rekayasa Ulang Perangkat
Lunak.docx
Halaman 1 dari 7
Tugas W15 – Rekayasa Ulang Perangkat Lunak
IF5124 Evolusi Perangkat Lunak
3.
Tanggal Pengumpulan: 28-04-2017
Definisi forward engineering, reverse engineering dan perbedaan keduanya
-
Forward engineering
Forward engineering adalah proses yang menerapkan prinsip, konsep, dan metode
rekayasa perangkat lunak untuk membangun kembali aplikasi yang ada.
-
Reverse engineering
Reverse engineering adalah proses menganalisis sebuah program dalam upaya untuk
menghasilkan representasi program tersebut pada level abstraksi yang lebih tinggi
daripada source code.
-
4.
Perbedaan antara forward engineering dan reverse engineering
Forward Engineering
Reverse Engineering
Proses konstruksi perangkat lunak
Proses dekonstruksi perangkat lunak
Menghasilkan program dari level
Menghasilkan representasi program
abstraksi yang lebih tinggi (dari model
pada level abstraksi yang lebih tinggi
ke program)
(dari program ke model)
Proses reengineering perangkat lunak dan contoh
Model proses rekayasa ulang perangkat lunak ditunjukkan oleh gambar berikut.
Paradigma rekayasa ulang yang ditunjukkan adalah model cyclical. Artinya, setiap aktivitas
yang dihadirkan sebagai bagian paradigma tersebut mungkin direvisi. Untuk siklus tertentu,
proses dapat berakhir setelah salah satu dari aktivitas-aktivitas ini.
23516022 - Tugas W15 - Rekayasa Ulang Perangkat
Lunak.docx
Halaman 2 dari 7
Tugas W15 – Rekayasa Ulang Perangkat Lunak
IF5124 Evolusi Perangkat Lunak
Tanggal Pengumpulan: 28-04-2017
Gambar X. Model proses reengineering
a.
Analisis inventaris
Inventaris aplikasi seharusnya dimiliki oleh setiap organisasi perangkat lunak. Inventaris
adalah model spreadsheet yang mengandung informasi yang menyediakan deskripsi rinci
(misalnya, size, umur, kekritisan bisnis) dari setiap aplikasi yang aktif. Dengan menyortir
informasi ini sesuai kekritisan bisnis, umur, maintainability dan supportability saat ini, dan
kriteria penting secara local lainnya, kandidat untuk reengineering muncul. Sumber daya dapat
kemudian dialokasikan ke aplikasi kandidat untuk pelaksanaan reengineering. Penting untuk
diperhatikan bahwa inventaris harus ditinjau kembali secara teratur. Status aplikasi (misalnya
kekritisan bisnis) dapat berubah sebagai fungsi waktu, dan hasilnya, prioritas untuk
reengineering akan bergeser.
b.
Restrukturisasi dokumen
Dokumentasi yang lemah adalah trademark dari banyak sistem warisan. Dalam beberapa
kasus, membuat dokumentasi ketika tidak ada sangatlah mahal. Jika perangkat lunak berjalan
dengan baik, biarkan saja. Dalam kasus yang lain, beberapa dokumentasi harus dibuat, tetapi
hanya ketika ada perubahan. Akhirnya, ada situasi dimana sistem kritis harus seluruhnya
didokumentasikan. Organisasi perangkat lunak harus memilih pendokumentasian mana yang
paling sesuai dengan kasus di organisasi tersebut.
23516022 - Tugas W15 - Rekayasa Ulang Perangkat
Lunak.docx
Halaman 3 dari 7
Tugas W15 – Rekayasa Ulang Perangkat Lunak
IF5124 Evolusi Perangkat Lunak
c.
Tanggal Pengumpulan: 28-04-2017
Reverse-engineering
Reverse engineering adalah proses recovery desain. Kakas reverse engineering mengekstrak
data, arsitektural dan informasi desain prosedural dari sebuah program yang ada.
d.
Restrukturisasi kode
Jenis reengineering yang paling umum adalah restrukturisasi kode. Beberapa sistem
warisan mempunyai arsitektur program yang kuat secara relatif, tetapi modul individual
dikodekan dengan cara yang membuatnya sulit dipahami, diuji, dan dipelihara. Dalam kasus
seperti itu, restrukturisasi dapat dilakukan untuk kode dalam suspect modules.
Untuk menyelesaikan aktivitas ini, source code dianalisis menggunakan kakas
restrukturisasi. Pelanggaran konsep pemrograman terstruktur dicatat dan kode kemudian
direstrukturisasi atau bahkan ditulis kembali bahasa pemrograman yang lebih modern. Kode
hasil restrukturisasi diperiksa dan diuji untuk memastikan bahwa tidak ada anomali yang telah
terjadi. Dokumentasi kode internal diperbarui.
e.
Restrukturisasi data
Sebuah program dengan arsitektur data yang lemah akan sulit untuk beradaptasi. Faktanya,
untuk banyak aplikasi, arsitektur informasi lebih banyak hubungannya dengan kelangsungan
hidup jangka-panjang dari sebuah program daripada source code itu sendiri.
Tidak seperti restrukturisasi kode yang terjadi di tingkat abstraksi yang relatif rendah,
restrukturisasi data adalah aktivitas reengineering skala-penuh. Dalam kebanyakan kasus,
retstrukturisasi data memulai dengan aktivitas reverse engineering. Arsitektur data saat ini
dibedah, model data yang diperlukan didefinisikan. Atribut dan objek data diidentifikasi, dan
struktur data yang ada diperiksa untuk kualitas. Ketika struktur data lemah, data direkayasa
kembali.
Karena arsitektur data memiliki pengaruh yang kuat pada arsitektur program dan algoritma
yang mendiaminya, perubahan data akan selalu menghasilkan perubahan entah level-kode atau
arsitektural.
f.
Forward engineering
Idealnya, aplikasi akan dibangun kembali menggunakan mesin reengineering. Program
yang lama akan dimasukkan ke dalam mesin tersebut, dianalisis, distrukturisasi ulang, dan
kemudian dihasilkan kembali dalam bentuk yang memperlihatkan aspek kualitas perangkat
lunak terbaik. Forward engineering tidak hanya memperoleh kembali informasi desain dari
23516022 - Tugas W15 - Rekayasa Ulang Perangkat
Lunak.docx
Halaman 4 dari 7
Tugas W15 – Rekayasa Ulang Perangkat Lunak
IF5124 Evolusi Perangkat Lunak
Tanggal Pengumpulan: 28-04-2017
perangkat lunak yang ada tetapi mengunakan informasi ini untuk mengubah atau menyusun
kembali sistem yang ada dalam upaya untuk memperbaiki kualitasnya secara keseluruhan.
Dalam kebanyakan kasus, perangkat lunak yang direkayasa ulang membuat kembali fungsi
sistem yang ada dan juga menambahkan fungsi yang baru dan/atau memperbaiki performansi
keseluruhan.
Contoh kakas yang digunakan untuk melakukan reengineering adalah DMS Software
Reengineering Toolkit. Model DMS yang sangat sederhana ditunjukkan oleh gambar berikut,
bahwa compiler memiliki:
•
Sebuah parser (menghasilkan struktur data sepert-compiler)
•
Satu set semantic analyzer, termasuk berbagai mesin pattern matching
•
formatting component keluaran akhir (mengkonversi struktur data kembali ke source code
yang valid).
Software reengineering toolkit dapat digunakan untuk mengimplementasikan variasi yang
luas dari kakas peningkatan program. DMS dapat dengan mudah digunakan untuk
meningkatkan kualitas perangkat lunak.
23516022 - Tugas W15 - Rekayasa Ulang Perangkat
Lunak.docx
Halaman 5 dari 7
Tugas W15 – Rekayasa Ulang Perangkat Lunak
IF5124 Evolusi Perangkat Lunak
5.
Tanggal Pengumpulan: 28-04-2017
Risks dan benefits reengineering perangkat lunak
-
Risks
Masalah reengineering perangkat lunak adalah bahwa ada batasan praktis akan
seberapa besar kita dapat memperbaiki sebuah sistem dengan reengineering. Ini tidak
mungkin, misalnya, untuk mengkonversi sebuah sistem yang ditulis menggunakan
pendekatan fungsional menjadi sistem berorientasi objek. Perubahan arsitektural utama
atau pengorganisasian kembali yang radikal dari manajemen data sistem tidak dapat
dilakukan secara otomatis sehingga menjadi amat mahal. Meskipun reengineering dapat
memperbaiki maintainability, sistem yang direkayasa ulang mungkin tidak akan sama
maintainability nya dengan sistem baru yang dikembangkan menggunakan metode
rekayasa perangkat lunak modern.
-
Benefits
a.
Mengurangi risiko
Ada risiko yang tinggi dalam pengembangan kembali perangkat lunak business-
critical. Error mungkin terjadi dalam spesifikasi sistem atau mungkin masalah
pengembangan. Penundaan dalam memperkenalkan perangkat lunak yang baru
mungkin berarti bisnis dihilangkan dan biaya ekstra dikeluarkan.
b.
Mengurangi biaya
Biaya reengineering mungkin secara signifikan lebih rendah daripada biaya
pengembangan perangkat lunak yang baru.
6.
Hubungan antara reengineering perangkat lunak dan evolusi perangkat lunak
Evolusi perangkat lunak terjadi ketika sistem perangkat lunak yang ada diubah untuk
memenuhi kebutuhan yang baru. Perubahan tersebut terjadi ketika error diperbaiki, ketika
perangkat lunak disesuaikan dengan lingkungan yang baru, ketika customer meminta fitur atau
fungsi yang baru, dan ketika aplikasi direkayasa ulang (reengineered) untuk memperoleh
manfaat dalam konteks modern. Jadi, reengineering adalah salah satu proses yang
menyebabkan evolusi perangkat lunak terjadi.
23516022 - Tugas W15 - Rekayasa Ulang Perangkat
Lunak.docx
Halaman 6 dari 7
Tugas W15 – Rekayasa Ulang Perangkat Lunak
IF5124 Evolusi Perangkat Lunak
7.
Tanggal Pengumpulan: 28-04-2017
Referensi
[1] Pressman, Roger S. and Maxim, Bruce R. 2015. Software Engineering: A
Practitioner’s Approach 8th Edition. New York: Mc Graw Hill Education.
[2] Sommerville, Ian. 2011. Software Engineering 9th Edition. United States of America:
Addison-Wesley.
[3] http://www.ccs.neu.edu/home/lieber/com3205/f02/lectures/sommerville/ch28software-reengineering.ppt
[4] http://www.semdesigns.com/Products/DMS/DMSToolkit.html
23516022 - Tugas W15 - Rekayasa Ulang Perangkat
Lunak.docx
Halaman 7 dari 7
Download