Tokom profesionalne aktivnosti programer se mora suočiti sa mnogim situacijama koje zahtijevaju složenu analizu velikih fragmenata izvornog koda ili čak cijelih aplikacija. Istražujući uspješna rješenja i prakse, analizirajući već implementirane algoritme ili jednostavno prenoseći drugi projekt u tim često je potrebno rastaviti program koji je napisao netko drugi.
Potrebno
- - program za pregled izvornog koda;
- - moguće obrnuti inženjering i alati za kućišta.
Instrukcije
Korak 1
Ispitajte tok prijenosa kontrole programa koji se raščlanjuje Odredite ulaznu tačku. To je, na primjer, glavna funkcija u C i C ++, početak neimenovanog strukturnog bloka prvog nivoa, koji završava s ključnom riječi END s tačkom, u pascalu. Počevši od ulazne točke, pratite sve rute pozivi na funkcije, procedure, metode klasa. Napravite dijagram toka upravljanja na visokom nivou. Da biste pojednostavili ovaj postupak, možete se koristiti raznim alatima za obrnuti inženjering. Nacrtajte kontrolne dijagrame protoka ili dijagrame protoka za pojedine funkcije i metode.
Korak 2
Analizirajte tokove podataka programa koji se raščlanjuje. Identificirajte strukture koje se koriste za pohranu informacija i njihov prijenos između funkcionalnih elemenata aplikacije. Identificirajte isječke koda koji pretvaraju podatke iz jednog oblika u drugi. Napravite listu mjesta u programu gdje se informacije primaju iz vanjskog okruženja, kao i njihov izlaz negdje. Alati za reinženjering i slučajevi (na primjer, za izgradnju dijagrama nasljeđivanja i dijagrama ovisnosti) također će pomoći u ovoj vrsti analize.
Korak 3
Rastavite program, imajući potpuno razumevanje principa njegovog delovanja. Na osnovu znanja o toku prenosa upravljanja između strukturnih elemenata, kao i unutar njih, znanja o tokovima i vrstama transformacija podataka, identifikuju se glavni algoritmi rada. Odvoje algoritme za obradu podataka i kontrolu interfejsa. Odaberite tipične algoritme obrade i klasificirajte ih. Utvrdite algoritme na osnovu interakcije različitih komponenata (na primjer, pretraga se može koristiti i samostalno i kao dio sortiranja). Ako je potrebno, sastavite dijagrame toka različitog stepena detalja kako biste ilustrirali rad programa.