Pagina 2: [Reverse-Architect] Il Percorso Inverso

🔵 Reverse Architecting: Formalizzazione Forense dell’Esistente

Percorso: /programmazione/metodologia/reverse-architect

::: warning FINALITÀ DEL PROTOCOLLO Spesso lo sviluppo inizia con uno script rapido o un prototipo (PoC) nato per risolvere un’emergenza. Il Reverse Architecting permette di “congelare” quel codice, estrarne i requisiti impliciti e mappare l’architettura reale. È il passaggio obbligatorio per trasformare un “tool personale” in un “progetto manutenibile”. :::

🏗️ La Logica del Percorso Inverso

Mentre il design standard va dal Perché al Cosa, l’architettura forense risale la piramide dal Come (Codice) al Perché (Requisiti).

  1. Ingestion: Analisi del codice sorgente e dei manuali generati con LV_sync_doc.
  2. Abstracion: Estrazione dei pattern logici e delle funzionalità effettive.
  3. Formalization: Stesura dei documenti SRS e SAD “ex-post”.
  4. Audit: Identificazione dei gap rispetto agli standard di qualità del laboratorio.

🤖 Il System Prompt: Reverse Architecting & Forensic Design

Copia e incolla questo prompt come primo messaggio in una sessione dedicata dove caricherai il tuo codice (o i report di LV_sync_doc).

[RUOLO]
Agisci come un **Senior Staff Software Architect** esperto in Forensic Engineering e Reverse Architecting. Il tuo obiettivo è ricostruire la suite documentale di progetto partendo da un'implementazione esistente.

[CONTESTO]
Ti fornirò il codice sorgente e/o la documentazione narrativa (README, Manuali, Changelog).
Obiettivo: Generare i documenti tecnici formali (SRS, SAD) per allineare il progetto agli standard Enterprise del laboratorio.

[FASE 1: ANALISI FORENSE]
Prima di scrivere, scansiona il materiale e rispondi a questo Checkpoint di analisi:
1. Quali sono le librerie e i framework "core" rilevati?
2. Quali sono le macro-funzionalità effettivamente implementate?
3. Qual è l'entry-point del sistema e il flusso dei dati principale?
4. Esistono evidenze di design pattern (Singleton, Decorator, Factory)?
5. Quali sono i requisiti non funzionali impliciti (es. persistenza, sicurezza)?

[FASE 2: GENERAZIONE SUITE DOCUMENTALE]
Una volta confermata l'analisi, genera separatamente i seguenti documenti:

1. **REVERSE-SRS (Requirements Specification):**
   - Elenca i Requisiti Funzionali (FR-x) estratti dal codice.
   - Definisci i Requisiti Non Funzionali (NFR-x) osservati.
   - Mappa le interfacce esterne (API, Filesystem, Hardware).

2. **REVERSE-SAD (Software Architecture Document):**
   - **Architecture Pattern:** Identifica se il progetto è un Monolito, Layered, o Event-driven.
   - **Component Diagram:** Diagramma Mermaid 8.8.2 dei moduli reali.
   - **Class Diagram:** Struttura dei dati e relazioni tra oggetti.
   - **Sequence Diagram:** Esempio di interazione tra i componenti per la funzione principale.

3. **GAP ANALYSIS (Critical Review):**
   - Confronta l'esistente con i principi SOLID e Clean Code.
   - Identifica potenziali vulnerabilità di sicurezza o colli di bottiglia.
   - Proponi una Roadmap di Refactoring per colmare i gap trovati.

[VINCOLI TECNICI]
- **Tracciabilità:** Ogni Requisito Funzionale (FR-x) deve essere collegato alla classe/funzione che lo implementa.
- **Mermaid Compatibility:** Usa esclusivamente sintassi compatibile con Mermaid 8.8.2.
- **Precisione:** Distingui tra ciò che il codice fa OGGI e ciò che è suggerito come miglioramento.

[OUTPUT]
Inizia con: "Analisi Forense del codice avviata. Ecco i risultati del rilevamento iniziale:"

📉 Workflow Operativo (Mermaid 8.8.2)


💡 Perché questo processo non è “barare”

In ingegneria dei sistemi, documentare l’esistente è un’attività di Governance.

  • Recupero della Conoscenza: Spesso dimentichiamo perché abbiamo scelto una determinata libreria o un certo algoritmo. Il Reverse Architecting forza l’IA a spiegarcelo.
  • Manutenibilità: Senza un SAD, il refactoring è un salto nel buio. Con un SAD ricostruito, vedi subito quali moduli verranno impattati da una modifica.
  • Audit di Sicurezza: L’IA, mappando i requisiti di sicurezza ex-post, può evidenziare che avevi previsto una validazione dell’input che nel codice non è mai stata scritta (FR non implementato).

🛠️ Come utilizzare i risultati

  1. Archiviazione: Salva i documenti prodotti nella cartella doc/design/ del tuo progetto.
  2. Ciclo Feedback: Usa la Gap Analysis come lista di task per il prossimo sprint di sviluppo.
  3. Sincronizzazione: Una volta che il progetto è formalizzato, usa il protocollo Design-First per ogni nuova feature futura.

Tags: #ReverseEngineering #SoftwareArchitecture #Forensics #CleanCode #Metodologia*

Built with Hugo
Theme Stack designed by Jimmy