V průběhu profesionální činnosti se programátor musí vypořádat s mnoha situacemi, které vyžadují komplexní analýzu velkých fragmentů zdrojového kódu nebo dokonce celých aplikací. Výzkum úspěšných řešení a postupů, analýza již implementovaných algoritmů nebo jednoduchý přenos jiného projektu do týmu často vyžaduje demontáž programu napsaného někým jiným.
Nezbytné
- - program pro prohlížení zdrojového kódu;
- - případně reverzní inženýrství a případové nástroje.
Instrukce
Krok 1
Prozkoumejte tok přenosu řízení analyzovaného programu Určete vstupní bod. Je to například hlavní funkce v C a C ++, začátek nepojmenovaného bloku struktury první úrovně, končící klíčovým slovem END s tečkou, v pascalu. Od vstupního bodu sledujte všechny trasy volání funkcí, postupů, metod tříd. Vypracujte vývojový diagram řízení na vysoké úrovni. Chcete-li tento proces zjednodušit, můžete použít různé nástroje reverzního inženýrství. Podrobněji analyzujte zdrojový kód konstrukčních prvků analyzovaného programu. Nakreslete řídicí vývojové diagramy nebo vývojové diagramy pro jednotlivé funkce a metody.
Krok 2
Analyzujte datové toky analyzovaného programu. Identifikujte struktury používané k ukládání informací a jejich přenosu mezi funkčními prvky aplikace. Identifikujte fragmenty kódu, které převádějí data z jednoho formuláře do druhého. Vytvořte seznam míst v programu, kde jsou informace přijímány z externího prostředí, a také jejich výstup někam. S tímto druhem analýzy také pomohou nástroje pro reengineering a případové nástroje (například k vytvoření diagramu dědičnosti a diagramu závislostí).
Krok 3
Demontujte program a plně pochopte principy jeho fungování. Na základě znalostí o toku přenosu řízení mezi strukturálními prvky, jakož i v rámci nich, znalostí toků a typů transformací dat, identifikujte hlavní algoritmy práce. Oddělte algoritmy pro zpracování dat a řízení rozhraní. Vyberte typické algoritmy zpracování a klasifikujte je. Identifikujte algoritmy založené na interakci různých složek (například vyhledávání lze použít samostatně i jako součást řazení). Je-li to nutné, vytvořte vývojové diagramy s různým stupněm podrobností, které ilustrují fungování programu.