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:: 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 Illustrasi jumlah komponen dalam sistem ketika Rekayasa Ulang Iteratif berlangsung sampai dengan proses rekayasa ulang selesai Keempat Illustrasi disamping menunjukkan sistem tetap berjalan walaupun rekayasa ulang berlangsung :: Proses Rekayasa Ulang Iteratif :: Analyze Legacy System Classify Data Redesign Database Restore Legacy Components komponen dan yang data telah yang Pembersihan metadata basis ada di data legacy tujuan dengan dan fungsi data komponen, menjadi data primer agar dan Menstruktur Setiap program kembali legacy direkayasa berhubungan ulang memiliki dengan dilakukan setelah komponen residual yang baru ke basis di sistem data residual tujuan. rekayasa data sekunder ulang tiap perilaku komponen yang tersebut sama dengan telah legacy telah direkayasa ulang basis yang data akan yang mengakses sudah Salah satu desain ulang legacy fungsi sistem dipindahkan sebelum darilegacy sistem secara keseluruhan komponen tidak diklasifikasikan basis data tujuan di harus basis adalah mengubah bahasa ke sistem tujuan, dilakukan bergantung dengan pemrograman ke yang data diadaptasikan legacy ke bahasa basis agar data rekayasa ulang komponen komponen yang lain lebih modern. lain, sampai proses rekayasa tujuan sesuai dengan basis data ulang selesai keseluruhan Migrate Data Equivalence Test Reengineer Procedures Equivalence Test Reconstruct Documentation Membersihkan Tes Iterasi Ekivalensi Desain Mengadaptasikan Ulang Basis Analisis Klasifikasi Perpindahan Desain Ulang Sistem Data Data Fungsi Legacy Metadata Uji Setiap coba pada rekayasa sistem bahwa ulang Data program legacy Pemecahan Pengklasifikasian Memindahkan Menstruktur ulang data komponenfungsi primer data yang ke Empty Residual DB Clean Metadata tujuan :: 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: File / Komponen _killcache.asp _conn_.asp _procedures.asp Fungsi Cache String koneksi aplikasi ke basis data SQL Server Fungsi parsing variabel hasil enkripsi dan dekripsi 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 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 Tabel Kolom Fungsi yang berhubungan Jenis Data Mahasiswa MA_IPS UpdateIPSemesterLa lu Data Komputasi Redundan Mahasiswa MA_IPK UpdateIPKMhs Data Komputasi Redundan Mahasiswa MA_SKSLulus UpdateSKSLulus Data Komputasi Redundan Mahasiswa MA_SKSTempuh UpdateSKSTempuh Data Komputasi Redundan Kelas KE_Terisi Update dari jumlah Data di tabel _temp Komputasi Redundan 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 Perbedaan syntax SQL pada SQL Server dan Oracle Perbedaan Token untuk menggabungkan string Dukungan terhadap operator assignment pengganti AS SQL Server + Contoh : SELECT DISTINCT HAP_KodeJurusan, PS_Nama FROM HakAksesPegawai, ProgramStudi WHERE PS_FA_ID+PS_JU_ID+PS_I D=HAP_KodeJurusan… Mendukung Contoh : SELECT IPK=ROUND(SUM(NilaiAng ka*MK_KreditKuliah)/SU M(MK_KreditKuliah),2). ... Oracle || Contoh: SELECT DISTINCT HAP_KodeJurusan, PS_Nama FROM HakAksesPegawai, ProgramStudi WHERE PS_FA_ID||PS_JU_ID||PS _ID=HAP_KodeJurusan… Tidak mendukung Diganti dengan : SELECT ROUND(SUM(NilaiAngka*M K_KreditKuliah)/SUM(MK _KreditKuliah),2) As IPK.... 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 SQL Server GUID SessionKey SessionValue ASPX SessionTransfer.aspx GUID SessionKey SessionValue SessionTransfer.asp ASP 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