Dalam kegiatan profesional, seorang programmer harus berurusan dengan banyak situasi yang memerlukan analisis kompleks dari fragmen besar kode sumber atau bahkan seluruh aplikasi. Meneliti solusi dan praktik yang berhasil, menganalisis algoritme yang sudah diterapkan, atau sekadar mentransfer proyek lain ke tim sering kali mengharuskan pembongkaran program yang ditulis oleh orang lain.
Diperlukan
- - program untuk melihat kode sumber;
- - mungkin reverse engineering dan alat kasus.
instruksi
Langkah 1
Periksa aliran transfer kontrol dari program yang diurai Identifikasi titik masuk. Ini, misalnya, adalah fungsi utama dalam C dan C ++, awal dari blok struktur tingkat pertama yang tidak disebutkan namanya, diakhiri dengan kata kunci END dengan titik, dalam pascal. Mulai dari titik masuk, telusuri semua rute panggilan ke fungsi, prosedur, metode kelas. Buatlah diagram alir kontrol tingkat tinggi. Untuk menyederhanakan proses ini, Anda dapat menggunakan berbagai alat rekayasa balik. Analisis kode sumber elemen struktural dari program yang diuraikan secara lebih rinci. Gambarlah diagram alir kontrol atau diagram alir untuk masing-masing fungsi dan metode.
Langkah 2
Menganalisis aliran data dari program yang sedang diurai. Identifikasi struktur yang digunakan untuk menyimpan informasi dan mentransfernya antara elemen fungsional aplikasi. Identifikasi potongan kode yang mengubah data dari satu bentuk ke bentuk lainnya. Buat daftar tempat-tempat dalam program di mana informasi diterima dari lingkungan eksternal, serta outputnya di suatu tempat. Alat rekayasa ulang dan alat kasus (misalnya, untuk membangun diagram pewarisan dan diagram ketergantungan) juga akan membantu dengan jenis analisis ini.
Langkah 3
Bongkar program, memiliki pemahaman lengkap tentang prinsip-prinsip operasinya. Atas dasar pengetahuan tentang aliran transfer kontrol antara elemen struktural, serta di dalamnya, pengetahuan tentang aliran dan jenis transformasi data, identifikasi algoritma utama kerja Pisahkan algoritma untuk pemrosesan data dan kontrol antarmuka. Pilih algoritma pemrosesan yang khas dan klasifikasikan. Identifikasi algoritme berdasarkan interaksi berbagai komponen (misalnya, pencarian dapat digunakan baik secara mandiri maupun sebagai bagian dari pengurutan). Jika perlu, buat diagram alur dengan berbagai tingkat detail untuk mengilustrasikan pengoperasian program.