Klasyczny model kaskadowy zakłada sporządzenie specyfikacji systemu przed jego implementacją (kodowaniem w języku programowania) i wdrożeniem. Inżynieria odwrotna (reverse engineering) jest procesem tworzenia specyfikacji (dokumentacji) na podstawie badania systemu już działającego. Zakłada się przy tym brak dokumentacji oryginalnej lub jej istnienie w szczątkowej lub nieużytecznej formie. Inżynieria odwrotna może być zatem wykorzystana do:
• zrozumienia i ulepszenia istniejącego systemu - utworzona w wyniku inżynierii odwrotnej specyfikacja jest korygowana lub rozszerzana i służy do implementacji nowego, lepszego systemu,
• utworzenia innego, podobnego systemu - zastosowane w pierwotnym systemie rozwiązania są przenoszone na podstawie utworzonej specyfikacji do innego systemu, który działa analogicznie jak pierwotny, lecz np. w zmienionych warunkach,
• zbadania i potwierdzenia jakości produktu - utworzona specyfikacja służy do formalnej weryfikacji poprawności systemu i jest podstawą udokumentowania wyników tej weryfikacji.
Środowisko Oracle Designer wspomaga inżynierię odwrotną, umożliwiając utworzenie diagramu związków encji na podstawie konkretnej bazy danych.
Design Editor ER Diagrammer
Generowanie Generowanie
Rys. 9.1 Inżynieria odwrotna w Oracle Method™ - schemat postępowania
137