La reingegnerizzazione è la reimplementazione di un sistema informatico a partire dalla sua progettazione, al fine di migliorarne o aggiungervi funzionalità, interfacciamento con altri processi o sistemi, piattaforme di supporto, qualità (incluse facilità d'uso, manutenibilità, leggibilità), eventualmente implementandolo con nuove tecnologie al posto di quelle precedentemente utilizzate. Un esempio può essere ricodificare in Java un software già scritto in C++ per renderlo multipiattaforma. Spesso avviene a seguito della riprogettazione dei processi aziendali che tali sistemi informatizzano.
La reingegnerizzazione, nell'ambito della produzione industriale, è la riprogettazione (e quindi reimplementazione) di un processo produttivo a seguito dell'introduzione di nuove tecnologie in esso e obsolescenza delle vecchie (ad es. l'automazione di lavorazioni precedentemente manuali) o di sviluppi del prodotto che richiedano una modifica del processo produttivo (come l'aggiunta di un nuovo componente, rispetto alla precedente versione del prodotto, che richieda una fase di lavorazione aggiuntiva).