Iterative Reengineering dan contoh Implementasinya Choiru Zain 2010
:: Pendahuluan:: Sistem legacy merupakan alat vital bagi organisasi Sistem yang mengalami penurunan kualitas perlu direkayasa ulang Sistem legacy sangat fatal apabila dihentikan Perlu diterapkan metode Rekayasa Ulang Iteratif untuk menjamin sistem masih dapat berjalan walaupun proses rekayasa ulang berlangsung
:: Evolusi komponen pada sistem:: Illustrasi jumlah komponen dalam sistem ketika Rekayasa Ulang Iteratif berlangsung sampai dengan proses rekayasa ulang selesai Komponen Legacy Komponen legacy yang dimunculkan kembali / diadaptasikan dengan basis data tujuan Komponen yang telah direkayasa ulang, bersama komponen baru yang ditambahkan untuk mendukung fungsionalitas sistem Keempat Illustrasi disamping menunjukkan sistem tetap berjalan walaupun rekayasa ulang berlangsung
:: Proses Rekayasa Ulang Iteratif :: Analisis Sistem Legacy Pemecahan komponen- komponen, agar rekayasa ulang tiap komponen tidak bergantung dengan komponen yang lain Klasifikasi Data Pengklasifikasian data menjadi data primer dan data sekunder Desain Ulang Basis Data Menstruktur kembali basis data yang sudah diklasifikasikan di basis data legacy ke basis data tujuan Mengadaptasikan program legacy Setiap program legacy yang akan mengakses basis data tujuan harus diadaptasikan agar sesuai dengan basis data tujuan Perpindahan Data Memindahkan data primer ke basis data tujuan dan data residual ke basis data residual Desain Ulang Fungsi Menstruktur ulang fungsi yang ada di legacy dengan fungsi yang baru di sistem tujuan. Salah satu desain ulang fungsi adalah mengubah bahasa pemrograman ke bahasa yang lebih modern. Tes Ekivalensi Uji coba pada sistem bahwa komponen yang telah direkayasa ulang memiliki perilaku yang sama dengan sistem sebelum legacy Iterasi Setiap rekayasa ulang komponen dan data yang berhubungan dengan komponen tersebut telah dipindahkan dari sistem legacy ke sistem tujuan, dilakukan rekayasa ulang komponen lain, sampai proses rekayasa ulang selesai keseluruhan Membersihkan Metadata Pembersihan metadata dilakukan setelah komponen legacy telah direkayasa ulang secara keseluruhan
:: Proses Rekayasa Ulang Iteratif :: Implementasi pada Kasus Sistem Informasi akademik berbasis Web Sistem Arsitektur / platform : Legacy : ASP + SQL SERVER Target : ASP.NET + ORACLE Analisis Sistem legacy : Mendefinisikan file yang berhubungan dan proses yang akan dilakukan. Memisahkan file mana yang masih harus tetap ada di sistem legacy dan mana yang bisa dimigrasi ke sistem target Mendefinisikan proses yang berhubungan dengan tabel tertentu dalam basis data
Contoh : proses login : File yang harus tetap ada: Dalam hal ini proses login berfungsi untuk mempertahankan session yang masih ada antara legacy dan target system Oleh karena itu proses ini tidak akan direengineering terlebih dahulu File / KomponenFungsi _killcache.aspCache _conn_.aspString koneksi aplikasi ke basis data SQL Server _procedures.aspFungsi parsing variabel hasil enkripsi dan dekripsi
Klasifikasi Data Primer : Konseptual : Tabel /Entitas Primer : Structural : Relasi. Primary key dan foreign key Residual : Control Residual : Redundant Strruktrual : Pk, fk (mengorganisasikan data di legacy) Residual : Redundant Semantik : Trigger, Contoh lain : Jumlah dari mahasiswa yang teregistrasi <= maksimum enrollment Residual : Redundant Komputasi : Data yang menunjukkan hasil komputasi
TabelKolomFungsi yang berhubungan Jenis Data MahasiswaMA_IPSUpdateIPSemesterLa lu Data Redundan Komputasi MahasiswaMA_IPKUpdateIPKMhsData Redundan Komputasi MahasiswaMA_SKSLulusUpdateSKSLulusData Redundan Komputasi MahasiswaMA_SKSTempuhUpdateSKSTempuhData Redundan Komputasi KelasKE_TerisiUpdate dari jumlah di tabel _temp Data Redundan Komputasi Beberapa contoh data redundan komputasi
Klasifikasi data menentukan data yang akan dimigrasi Data primer akan dimigrasi Data sekunder akan masuk ke residual data Dalam implementasinya kita dapat membuat tabel baru yang bernama : temp Untuk mengakses data residual pada target database dapat ditambahkan pada fungsi yang sudah direengineering dengan. Misalnya fungsi count
Desain Ulang Data Desain ulang data yang dilakukan di basis data tujuan adalah mendesain basis data sesuai dengan desain basis data legacy. Ditambahkan relasi yang memungkinkan konsistensi data di basis data tujuan. Beberapa data residual juga dipindahkan
Adaptasi Legacy System Dilakukan analisis fungsi pengaksesan data pada sistem legacy Mencari program legacy yang berkaitan dengan data yang direkayasa ulang pada target database Dilakukan pengubahan code dengan pengubahan connection string serta pengubahan syntax pada code
PerbedaanSQL ServerOracle Token untuk menggabungkan string + Contoh : SELECT DISTINCT HAP_KodeJurusan, PS_Nama FROM HakAksesPegawai, ProgramStudi WHERE PS_FA_ID+PS_JU_ID+PS_I D=HAP_KodeJurusan… || Contoh: SELECT DISTINCT HAP_KodeJurusan, PS_Nama FROM HakAksesPegawai, ProgramStudi WHERE PS_FA_ID||PS_JU_ID||PS _ID=HAP_KodeJurusan… Dukungan terhadap operator assignment pengganti AS Mendukung Contoh : SELECT IPK=ROUND(SUM(NilaiAng ka*MK_KreditKuliah)/SU M(MK_KreditKuliah),2).... Tidak mendukung Diganti dengan : SELECT ROUND(SUM(NilaiAngka*M K_KreditKuliah)/SUM(MK _KreditKuliah),2) As IPK.... Perbedaan syntax SQL pada SQL Server dan Oracle
Perpindahan data Proses perpindahan data dilakukan dengan memanfaatkan fasilitas DTS (Data Transformation Service) pada SQL Server. Pada proses ini dilakukan pemindahan data dari SQL Server ke Oracle. Dalam implementasinya, keseluruhan tabel dipindahkan dari basis data legacy ke basis data termasuk data residual yang ada. .
Dalam hal ini dapat dilakukan pemindahan data tabel secara sekaligus, karena pada dasarnya pemindahan data tidak mempengaruhi basis data legacy yang masih dipakai oleh aplikasi legacy Urutannya : Tabel dipindahkan, relasi – relasi diberikan
Desain Ulang Fungsi Untuk memudahkan fungsi yang ada di legacy dan fungsi yang sudah direkayasa ulang hendaknya dibuat penamaan fungsi yang sama Permasalahan yang utama disini juga bagaimana komponen yang baru dapat berkomunikasi dengan komponen yang lama
Salah satunya adalah pada kasus sistem informasi berbasis web Membuat fungsi baru untuk menjembatani komunikasi dengan fungsi memanajemen session antara legacy system dan target system. Diperlukan sistem manajemen session untuk kasus ini
Gateway pada legacy dan target application
Data Banker Data banker adalah kelas yang menyediakan fasilitas akses basis data. Contoh kasus : Dalam implementasinya terdapat koneksi dan fungsi-fungsi pengaksesan basis data sehingga jika terjadi perubahan lokasi basis data, selama strukturnya tidak berubah. Hal ini dilakukan agar tidak perlu dilakukan perubahan dalam komponen, tetapi cukup mengubah setting pada kelas DataBanker. Selain itu adanya fasilitas penyimpanan setting global dalam web.config dapat dimanfaatkan juga untuk menyimpan koneksi sehingga dalam kelas DataBanker memiliki function untuk mengakses configuration file. Struktur kelas dalam data banker
Tes Ekivalensi Tes ekivalensi adalah pengecekan hasil rekayasa ulang apakah terdapat kesalahan atau ketidaksesuaian dengan aplikasi lama. Untuk melakukan pengetesan, komponen yang baru diletakkan dalam domain legacy dalam hal ini ASP Dalam hal ini behavioral sistem Seperti verifikasi dan validasi pada proses pembangunan perangkat lunak
Membersihkan Data Residual Pada proses akhir rekayasa ulang data residual akan dihapus, karena memang tidak ada lagi legacy system Selama masih ada legacy system – legacy system belum habis, maka data residual akan tetap ada
SEKIAN TERIMA KASIH