TEORIA: HLD E LLD - GPOSoftwareProject/Progetto GitHub Wiki

HLD

High Level Design Document (Documento per l’architettura di alto livello) = documento tecnico di progettazione che scompone il progetto da realizzare in blocchi definendone le funzioni e le interazioni per ognuno di essi.

Normalmente, quando viene assegnato un progetto, il Project Manager affida l’aspetto tecnico ad un individuo con esperienza nel settore, che poi, solitamente, farà da coordinatore del team di realizzazione. Il suo ruolo è il “Lead Developer”. Esso offre consulenze tecniche al Project Manager durante la pianificazione ma diventa attore principale durante la fase di progettazione. Il primo documento tecnico che viene generato dal Lead Developer è il HLD. La suddivisione a blocchi era già stata fatta durante la pianificazione per la generazione della WBS, e per la previsione delle persone necessarie per la realizzazione e progettazione, necessarie per la stima dei costi; ma tale suddivisione era sommaria e comunque non formalizzata in un documento tecnico. Con l’HLD il Lead Developer definisce in modo formale la suddivisione del prodotto da realizzare in blocchi. Questa suddivisione e individuazione delle varie funzionalità di ogni blocco, permette la scelta dei componenti del team di sviluppo, che naturalmente, dovranno avere le competenze necessarie per svolgere il compito assegnato. Una volta definite le funzioni e le interazioni di ogni blocco, e completata l’assegnazione delle responsabilità’, ogni membro del gruppo dovrebbe poter iniziare il proprio lavoro con una certa autonomia. Una volta che i vari blocchi sono stati decisi, ci potranno essere delle specifiche aggiuntive, questa volta non dettate dalle esigenze del cliente, ma bensì’ da esigenze tecniche e scelte a cui tutto il team si dovrà’ allineare, come per esempio il linguaggio di programmazione

LLD

Low Level Design Document (Documento per l’architettura dettagliata) = processo di progettazione a livello di componente che segue un processo di affinamento graduale. Fornisce i dettagli e le definizioni per la logica effettiva per ogni componente del sistema.

Si basa su HLD ma scava più a fondo, andando in moduli e funzionalità separati per ogni programma al fine di documentare le loro specifiche.Questo processo può essere utilizzato per la progettazione di strutture di dati, l'architettura software richiesto, codice sorgente e, in definitiva, algoritmi prestazioni. Nel complesso, l'organizzazione dei dati può essere definita durante l'analisi dei requisiti e affinato durante il lavoro di progettazione dei dati. Post-generazione, ogni componente è specificato in dettaglio. La fase LLD è la fase in cui i componenti software reali sono progettati. Durante la fase dettagliata design logico e funzionale è fatto e la progettazione della struttura applicazione è sviluppata durante la fase di progettazione di alto livello. L'obiettivo di LLD è quello di dare la progettazione logica interna del codice del programma vero proprio. Design a basso livello è stato creato sulla base del progetto di alto livello.