ABSTRAK Pemahaman terhadap struktur dan logika suatu program buatan orang lain merupakan suatu hal yang sangat sulit dilakukan. Padahal pernahaman ini mutlak diperlukan dalam proses pemeliharaan program / sistem. Keadaan ini dipersulit lagi bila program tersebut dibuat tanpa mengindahkan kaidah perancangan yang baik, tidak dilengkapi dengan dokumen perancangan, dan terdiri dari ratusan hingga ribuan basis. Untuk mengatasi masalah 'ini dikembangkan' suatu metode reverse engineering yang meliputi generalisasi, abstraksi, separasi, deteksi alur, sintesis, representasi, dan pembuatan laporan. Metode ini khususnya digunakan untuk mengobservasi struktur program berukuran besar secara berjenjang. Sebagai penunjang dalam pelaksanaan matode tersebut dikembangkan suatu alat bantu yang mampu menangkap, menganalisis, dan menampilkan kembali program sumber secara dinamis dalam bentuk lain. Program sumber tersebut disusun dalam bentuk blok-blok hierarkis yang dapat ditampilkan secara berjenjang mulai hierarki yang terluar hingga yang terdalam. Selain itu alat bantu tersebut juga menampilkan blok-blok program sumber dalam bentuk yang sudah teratur kedalaman margin kiri dan pembedaan warna setiap barisnya sesuai dengan hierarki blok tersebut. Pada berbagai kondisi observasi yang dikehendaki, observator dapat menyimpan blok-blok tersebut dalam suatu berkas untuk diedit menjadi Action Diagram. Dalam setiap blok, informasi tentang ukuran suatu blok (LOC: Lines of Code), Cyclomatic Complexity, jumlah blok DO, blok IF, GOTO, dan nomor-nomor setiap baris program juga ditampilkan. Fasilitas untuk melakukan zizo (zoom-in zoom-out) merupakan fungsi utama yang disediakan untuk mengobservasi struktur blok-blok program.Selain itu 1ompatan observasi dapat dilakukan dengan meng-klik statemen CALL untuk menampilkan subroutine dengan segera ke layar. Observasi struktur program secara berjenjang ini memberikan alternatif-alternatif tentang blok-blok program yang perlu dipisahkan, digabungkan, dibuang, diganti, dimanfaatkan kembali, disempurnakan, dan disusun kembali hierarkinya. Alternatif-alternatif ini sangat diperlukan dalam proses pemeliharaan program atau sistem. Metode dan alat bantu yang dikembangkan dalam tesis ini memiliki keterbatasan. Kendala utama adalah dalam mengembangkan alat bantu yang secara otomatis mampu menangkap arti semantik dari suatu ungkapan program dengan maksud agar peran manusia dapat dikurangi. Dalam upaya lebih lanjut untuk me-revers program-program dalam domain yang spesifik dapat dikembangkan suatu alat bantu yang dilengkapi dengan kecerdasan buatan . |