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