Proses Rekayasa Ulang Iteratif

advertisement
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
Download