5. Advanced Topics in S OFTWAR E ENG INEER ING 5.1. RE-ENGINEERING
1. Konsep Re-engineering 2. Software Re-engineering (SWR) dan System Life3. Kebutuhan akan SWR 4. Kelebihan SWR 5. Model Proses SWR 6. Proses Re-engineering
1. Konsep Re-engineering
System Re-engineering : re-structuring or rewriting part or all of a legacy system without changing its functionality. (Sommerville, 2000).
System Re-engineering tjd dalam 2 tingkat abstraksi yang berbeda : Business Process Re-engineering (BPR) Software Re-engineering (SWR).
1.1. Business Process Re-engineering (BPR) 1.1.1 Hubungan TI dgn BPR Proses bisnis merupakan serangkaian tugas yang dihubungkan secara logis yang dilakukan untuk mencapai hasil akhir bisnis yang telah ditentukan. Terdapat hubungan siklus antara Teknologi informasi (TI) dan Business Process Re-engineering. Saat kemampuan TI berkembang, maka kapabilitasnya akan dapat mengendalikan perubahan dalam proses bisnis. Dmk pula proses bisnis dapat menuntut peningkatan kapabilitas TI.
Kapabilitas Teknologi Informasi
Business Process Re-engineering
1.1.2 Model Business Process Re-engineering BPR bersifat evolusioner yang dilakukan melalui 6 aktivitas.
Definisi Bisnis Penyaringan dan Penginstan-an Identifikasi Proses
Prototyping
Spesifikasi Proses dan Desain
Evaluasi Proses
1.1.2 Model Business Process Re-engineering (lanj)
Definisi Bisnis : mrpk identifikasi tujuan dalam konteks pengendali kunci al. reduksi biaya, reduksi waktu, peningkatan kualitas, dan pengembangan serta pemberdayaan personal.
Identifikasi Proses : mrpk identifikasi proses (dan proses kritis) serta penyusunan prioritas.
Evaluasi Proses : mrpk tahap analisis proses untuk menentukan tugas, biaya, dan waktu.
Spesifikasi dan Desain Proses : mrpk langkah yang diawali dg penyusunan use case (skenario peran pengguna dlm berinteraksi dg PL) sbg spesifikasi proses yang kemudian dilanjutkan dg desain untuk proses ybs.
Prototyping : mrpk sarana ‘pengujian’ proses agar penyaringan dpt dilakukan.
Penyaringan dan Peng-instan-an : berdasarkan tahapan sebelumnya proses bisnis disaring / dihaluskan dan dimasukkan ke dalam sistem bisnis sbg bagian yang siap pakai.
Perencanaan Strategi Informasi (ISP) dan BAA dpt digunakan untuk mengimplementasi keempat langkah yang pertama.[Pressman, 1997]
1.2. Software Re-engineering
Software Re-engineering : reorganising and modifying existing software systems to make them more maintainable. (Sommerville, 2000).
Software Re-engineering yang sering juga disebut renovasi merupakan suatu proses pengujian dan perubahan suatu sistem untuk penyusunan kembali menjadi sistem dengan bentuk baru dan implementasi baru berikutnya [Chikofsky, 1993]. (Pressman : renovasi / reklamasi = forward engineering).
Software Re-engineering : mengimplementasi kembali fungsifungsi dari sistem yang ada dan juga menambahkan fungsi-fungsi baru dan atau meningkatkan kinerja keseluruhan [Pressman, 1997]
1.2 Software Re-engineering (lanj) Software Re-engineering merupakan :
pengubahan dan pengorganisasian kembali komponen-komponen PL
yang dapat dilakukan terhadap hasil Design atau Implementation saja atau pada keseluruhan tahapan / abstraksi,
tanpa menghilangkan keseluruhan komponen lama,
agar diperoleh PL dengan tingkat kesempurnaan dan standar yang lebih tinggi.
2. Software Re-engineering (SWR) dan System Life-Cycles (SLC)
Sumber : Chikofsky, 1990
3. Kebutuhan akan SWR PL dalam masa hidupnya dihadapkan pada berbagai tantangan : metode yang digunakan dan infrastruktur teknologi saat PL direkayasa pertama kali (yang sekarang sudah tidak memadai lagi). Peningkatan kebutuhan pengguna selama masa pemakaian. Perubahan-perubahan yang dilakukan saat pemeliharaan berlangsung yang menimbulkan efek samping yang serius. Hal tersebut memunculkan desain yang buruk, program yang jelek, logika yang ruwet, dan dokumentasi (kalau ada) yang sulit dipahami. Dampak berikutnya adalah PL yang sulit dipelihara. Kondisi ini dapat muncul kapan pun, bahkan sejak awal perangkat lunak digunakan oleh pemakai. Bila PL sudah mencapai kondisi ini, maka reengineering merupakan suatu kebutuhan untuk dilakukan.
4. Kelebihan SWR
Reduced risk – There is a high risk in new software development. There may be development problems, staffing problems and specification problems.
Reduced cost – The cost of re-engineering is often significantly less than the costs of developing new software(Sommerville, 2000).
5. Model Proses SWR Forward Engineering
Inventory Analysis
Document Restructuring
Data Restructuring
Code Restructuring
Reverse Engineering
[Pressman, 1997]
5.1 Inventory Analysis Inventori PL merupakan suatu catatan historis yang memuat informasi mulai dari nama aplikasi, tahun pembuatan, kompleksitasnya, dokumentasinya, hubungannya dengan aplikasi lain, perubahan-perubahan yang telah dilakukan dan proyeksinya, berbagai aspek pemeliharaan, biaya, nilai bisnis, dan kekritisan bisnis. Catatan historis tsb perlu dilihat kembali secara reguler mengingat kemungkinan adanya perubahan seiring dengan berjalannya waktu [Pressman, 1997]. 1997]
5.2 Document Restructuring Dokumen merupakan faktor yang sangat penting dalam rekayasa PL. Namun banyak perekayasa PL masa lalu meragukan hal ini, sehingga menyulitkan upaya-upaya pemeliharaan. Dipandang dari sisi pengguna, PL masa lalu yang hanya berupa program executable saja tidak memungkinkan dilakukannya pengembangan sehingga pengguna diharuskan mengganti PL – nya dengan PL yang baru. Bagi PL yang memiliki dokumen tetapi dokumen tsb tidak mendukung upaya pemeliharaan, maka langkah restrukturisasi dokumen merupakan pilihan.
5.2 Document Restructuring (lanj) Restrukturisasi dokumen perlu dilakukan berdasarkan sistematika dan standar penulisan yang benar. SCI berdasarkan standar IEEE (lih. Materi SCI) dapat digunakan sbg. acuan. Setiap dokumen yang dikaji, bagian-bagiannya ditanamkan kembali ke dalam SCI standar. Bila terdapat bagian dari SCI yang belum terisi, maka diperlukan penambahanpenambahan melalui identifikasi thd PL. Restrukturisasi dilakukan berdasarkan tahapan-tahapan seperti tergambar dalam base line, sehingga antara dokumen satu dengan yang lain memiliki benang merah yang jelas dan terstruktur. Selain itu juga dalam setiap dokumen perlu dilakukan penyusunan kembali paragrafparagraf, gambar, tabel, dan informasi lainnya agar sistematis dan mudah dipahami.
5.3 Reverse Engineering Reverse engineering merupakan proses analisis yang diperlukan dalam proses Re-engineering.
Reverse engineering akan dibahas pada bab tersendiri.
5.4 Code Restructuring
Pemeliharaan PL cenderung mempengaruhi struktur program dan menimbulkan berbagai percabangan dan jalur-jalur yang liar sehingga semakin menyulitkan seseorang untuk memahaminya.
PL masa lalu yang tidak didasarkan pada teknik pemrograman terstruktur juga memiliki kemungkinan membentuk spaghetti code (walaupun tidak menutup kemungkinan teknik terstruktur pun dapat menghasilkan code yang sama).
5.4.1 Spaghetti Logic
[Sommerville, 2000].
5.4.2 Structured Control Logic
[Sommerville, 2000].
5.4.3 Condition Simplification
-- Complex condition if not (A > B and (C < D or not ( E > F) ) )... -- Simplified condition if (A <= B and (C>= D or E > F)... [Sommerville, 2000].
5.5 Data Restructuring 5.5.1 Data problems
Pengguna memerlukan data lebih dari yang ada dalam sistem file. PL terbebani pemrosesan data lebih dari yang telah direncanakan sebelumnya saat PL dibangun. Data redundant disimpan dalam format dan tempat yang berbeda. Nama data tidak memiliki arti yang memudahkan pemahaman. Data yang sama memiliki nama yang berbeda pada subsubprogram. Data yang sama memiliki panjang yang berbeda pada subsubprogram. Record yang merepresentasikan entitas yang sama terorganisasikan secara beda pada sub-subprogram. Data yang tersimpan permanen di program. Tidak adanya kamus data . [Sommerville, 2000].
5.5 Data Restructuring 5.5.2 Restrukturisasi
Lakukan langkah reverse engineering sebagai langkah pemahaman arsitektur data.
Identifikasi objek dan atribut data.
Kajilah struktur datanya dan identifikasi data problems yang ada.
Bila struktur data lemah, lakukan re-engineering.
Model relasional maupun model OO dapat dijadikan alternatif peningkatan layanan data.
5.6 Forward Engineering and Re-engineering
S y st e m s p e c if i c a t io n
D e s ig n a n d i m p l em e n ta t io n
New s y s te m
U n d e r s ta n d i n g a n d t ra n s f o rm a t io n
R e - e n g in e e r e d s y s te m
F o rw a rd e n g in e e r in g E x is t in g s o f t w a r e s y s te m S o f tw a r e r e - e n g in e e r in g
6. Proses Re-engineering [Sommerville, 2000]. P ro gra m d o c u m e n ta t io n
O rigina l p ro g r a m
M o d u la r is e d p ro g r a m
O r i g i n a l d a ta
R e ve rs e e n g in e e r in g P ro gra m m o d u la r is a ti o n
S o urc e c o de t ra n s l a ti o n
D ata r e e n g in e e r i n g
P ro gra m s tr u c t u r e im prov em e nt S t r u c tu r e d p ro g r a m
R e e n g in e e r e d d at a
6.1 Pendekatan Re-engineering
A u t o m a te d p ro g r a m re stru c t u rin g
A u to m a t e d s o u r c e c o d e c o n v e rsi o n
P ro g ra m a n d d a t a re st ru c tu ri n g
A u to m a t e d r e s t r u c t u r i n g w i t h m a n u al c h a n g e s
R e s t r u c t u r i n g p lu s a r c h i te c t u r a l c h a n g e s
In c re a se d c o st
6.2 Source Code Translation
Translasi kode berupa pengkonversian kode dari satu bahasa ke bahasa lain atau ke versi lain, misal FORTRAN ke C, FORTRAN 77 ke FORTRAN 90, dsb.
Kemungkinan dibutuhkan karena : – Perubahan platform hardware – Keterbatasan keterampilan staf – Perubahan kebijakan organisasi
Dapat dilakukan bila ada kemungkinan disusunnya perangkat bantu translasi otomatis.
6.2 Source Code Translation (lanj)
S y st e m to b e r e - e n g in e e r e d
I d e n ti f y so u r c e c o d e d if f e r e n c e s
D e s ig n tr a n s la t o r i n s tr u ct io n s
S y st e m to b e re - e n g in e e r e d
R e - e n g in e e r e d s y s te m
A u to m a t ic a lly t ra n s la t e c o d e
M a n u al ly t ra n s la t e c o d e
6.3 Automatic Program Restructuring
P r o g ra m t o b e r e st r u c t u r e d
R e st r u c t u r e d p ro g ra m A n a ly se r a n d g ra p h b u il d e r
P r o g ra m g en e r a t o r G ra p h re p r e se n ta t io n
6.4 Program Modularisation
Modularisasi program dilakukan terhadap program yang telah terstruktur. Oleh sebab itu harus melalui proses restrukturisasi terlebih dahulu.
Proses modularisasi memerlukan dokumentasi program yang diperoleh dari hasil reverse engineering.
6.4 Program Modularisation (lanj) Modularisasi dilakukan dengan mengidentifikasi dan menggolongkannya ke dalam karakteristik modul berikut ini. Data abstractions – Modul yang berupa struktur data dan operasinya Hardware modules – Berfungsi untuk melakukan antarmuka dengan unit-unit hardware Process support modules – Modul yang berisi fungsi pendukung proses bisnis / organisasi Functional modules – Modul yang berisi fungsi-fungsi pendukung lainnya
6.5 Data Re-engineering
Rekayasa ulang data mrpk keg analisis dan reorganisasi struktur data, bahkan mungkin hingga ke nilai data.
Bisa merupakan proses migrasi dari file-based system ke DBMS-based system,
Perubahan dari satu DBMS ke DBMS lain
P rog ra m 1
F i le 1
P rog ra m 2
F i le 2
P rog ra m 4
P rog ra m 3
F i le 3
F i le 4
P rog ra m 5
P ro g ra m 6
F i le 5
F i le 6
P rog ra m 7
B ecom es
P rog ra m 3
P rog ra m 4
P rog ra m 5
P rog ra m 6
P rog ra m 7
P rog ra m 2
P rog ra m 1
D atabase m anag em ent s y s te m
***
d e s c r ib e s
L o g ic a l a n d p h y si ca l d a t a m o d e ls
Data migration