In de loop van zijn professionele activiteit heeft een programmeur te maken met veel situaties die een complexe analyse van grote fragmenten van broncode of zelfs hele applicaties vereisen. Het onderzoeken van succesvolle oplossingen en praktijken, het analyseren van reeds geïmplementeerde algoritmen of het simpelweg overdragen van een ander project aan een team maakt het vaak noodzakelijk om een programma dat door iemand anders is geschreven uit elkaar te halen.
Noodzakelijk
- - programma voor het bekijken van de broncode;
- - eventueel reverse engineering en casetools.
instructies:
Stap 1
Onderzoek de stroom van controleoverdracht van het programma dat wordt geparseerd Identificeer het ingangspunt. Het is bijvoorbeeld de hoofdfunctie in C en C ++, het begin van een naamloos structuurblok op het eerste niveau, eindigend met het sleutelwoord END met een punt, in pascal. Begin bij het beginpunt en volg alle routes van oproepen naar functies, procedures, methoden van klassen. Stel een stroomdiagram op hoog niveau op. Om dit proces te vereenvoudigen, kunt u verschillende reverse engineering-tools gebruiken. Analyseer de broncode van de structurele elementen van het geparseerde programma in meer detail. Teken besturingsstroomdiagrammen of stroomdiagrammen voor individuele functies en methoden.
Stap 2
Analyseer de gegevensstromen van het programma dat wordt geparseerd. Identificeer de structuren die worden gebruikt om informatie op te slaan en over te dragen tussen de functionele elementen van de applicatie. Identificeer de codefragmenten die gegevens van het ene formulier naar het andere converteren. Maak een lijst van plaatsen in het programma waar informatie van de externe omgeving wordt ontvangen, evenals de output ergens. Herontwerptools en casetools (bijvoorbeeld om een overervingsdiagram en een afhankelijkheidsdiagram te maken) zullen ook helpen bij dit soort analyse.
Stap 3
Demonteer het programma, met een volledig begrip van de principes van de werking ervan. Op basis van kennis over de stroom van overdracht van controle tussen structurele elementen, evenals daarbinnen, kennis van stromen en soorten gegevenstransformaties, identificeer de belangrijkste algoritmen van werk Scheid de algoritmen voor gegevensverwerking en interfacecontrole. Selecteer typische verwerkingsalgoritmen en classificeer ze. Identificeer algoritmen op basis van de interactie van verschillende componenten (zoeken kan bijvoorbeeld zowel onafhankelijk als als onderdeel van een soort worden gebruikt). Maak indien nodig stroomschema's van verschillende mate van detail om de werking van het programma te illustreren.