Salta al contenuto principale

Domain Knowledge Base - Software Engineering

Come funziona il dominio, prima di scrivere una riga di codice? Scegli un documento dall'albero a sinistra: ogni pagina spiega una parte del modello.

Regole di Business - Software Engineering

Questo documento elenca le regole di business fondamentali del dominio Software Engineering, identificate con codice univoco BR-NNN. Ogni regola è technology-independent e descrive un vincolo invariante sul processo di sviluppo software.

---

BR-001 - Ogni FeatureRequest diventa un Requisito tracciabile

Codice: BR-001 Nome: Una FeatureRequest è tradotta in un Requisito con criteri di accettazione Descrizione: Ogni richiesta di funzionalità è analizzata e tradotta in un Requisito chiaro, verificabile e con criteri di accettazione espliciti, prima di entrare nel Backlog. Un requisito ambiguo o senza criteri di accettazione non è pronto per lo sviluppo. Motivazione: Evitare ambiguità e rework; rendere ogni unità di lavoro verificabile. Priorità: ALTA Attori: Product Owner, Developer Tracciabilità: glossary "Test di Accettazione"; events/domain-events.md evento RequisitoCreato; BC-01.

---

BR-002 - Il codice nuovo è coperto da test

Codice: BR-002 Nome: Ogni UserStory completata include test automatici adeguati Descrizione: Il codice che implementa un comportamento è accompagnato da test unitari e, dove serve, di integrazione. La copertura è significativa (testa comportamento reale, non solo righe). Il TDD è la pratica preferita per il nuovo comportamento. Motivazione: Prevenire regressioni e abilitare il refactoring sicuro. Priorità: ALTA Attori: Developer, Tester Tracciabilità: glossary "Test-Driven Development (TDD)", "Test Unitario", "Test di Integrazione"; BR-005.

---

BR-003 - Ogni cambiamento passa per code review

Codice: BR-003 Nome: Nessun codice è integrato senza una revisione tra pari Descrizione: Ogni UserStory in stato implementato deve superare la code review prima del merge. La review verifica correttezza, leggibilità, aderenza ai principi (SOLID), assenza di code smell e copertura di test. Motivazione: Migliorare la qualità, condividere la conoscenza e ridurre i difetti. Priorità: ALTA Attori: Developer Violazione: merge bloccato finché la review non è approvata. Tracciabilità: glossary "Code Smell", "SOLID", "Refactoring"; state-machines/user-story-lifecycle.md stato code-review.

---

BR-004 - La direzione delle dipendenze rispetta la Clean Architecture

Codice: BR-004 Nome: La logica di business non dipende dai dettagli infrastrutturali Descrizione: Nel Codebase, il dominio non dipende da framework, database o UI: la freccia di dipendenza punta verso l'interno. La logica di business è pura e testabile in isolamento (Dependency Injection, Inversion of Control). Motivazione: Mantenere il dominio testabile, sostituibile e indipendente dalla tecnologia. Priorità: CRITICA Attori: Developer Tracciabilità: glossary "Clean Architecture", "Dependency Injection (DI)", "Inversion of Control (IoC)", "Funzione Pura".

---

BR-005 - La build deve restare verde

Codice: BR-005 Nome: Una build fallita blocca l'integrazione finché non è ripristinata Descrizione: Il Codebase mantiene una Continuous Integration con build e test sempre verdi sul ramo principale. Un commit che rompe la build (BuildFallita) ha priorità di fix immediata; nessun nuovo lavoro è integrato su una build rotta. Motivazione: Garantire un ramo principale sempre rilasciabile. Priorità: ALTA Attori: Developer, Tester Violazione: BuildFallita; il ramo principale è congelato finché la build non torna verde. Tracciabilità: glossary "Continuous Integration (CI)"; events/domain-events.md evento BuildFallita.

---

BR-006 - Lo SprintGoal è l'unità di impegno

Codice: BR-006 Nome: Ogni sprint persegue uno SprintGoal con un Backlog selezionato Descrizione: Lo sviluppo è organizzato in iterazioni con un obiettivo (SprintGoal) e un insieme di UserStory selezionate dal Backlog ordinato per priorità. Lo scope dello sprint è protetto: nuove richieste vanno nel backlog, non nello sprint in corso. Motivazione: Garantire focus, prevedibilità e consegna incrementale di valore. Priorità: MEDIA Attori: Product Owner, Scrum Master, Developer Tracciabilità: glossary "Bounded Context"; events/domain-events.md evento SprintAvviato.

---

BR-007 - Il debito tecnico è tracciato e gestito

Codice: BR-007 Nome: Ogni Debito Tecnico introdotto è registrato e pianificato Descrizione: Le scorciatoie implementative (code smell, duplicazione, copertura insufficiente) sono rese visibili come debito tecnico, valutate e inserite nel Backlog. Non si accumula debito invisibile che degrada la MetricaQualità. Motivazione: Mantenere la manutenibilità del codebase nel tempo. Priorità: ALTA Attori: Developer, Product Owner Tracciabilità: glossary "Debito Tecnico", "Refactoring"; events/domain-events.md evento DebitoTecnicoRegistrato.

---

BR-008 - Una release è rilasciata da un ramo verde e testato

Codice: BR-008 Nome: Una ReleaseDistribuita proviene solo da un codebase con build e test verdi Descrizione: Una release è prodotta da uno stato del Codebase con CI verde, copertura adeguata e versionamento semantico. Le modifiche breaking incrementano la versione MAJOR; la release è tracciabile ai requisiti che soddisfa. Motivazione: Garantire rilasci affidabili e tracciabili. Priorità: ALTA Attori: Developer, Scrum Master Tracciabilità: glossary "Semantic Versioning (SemVer)", "Compatibilità all'indietro"; events/domain-events.md evento ReleaseDistribuita.