Questo è il sito di Code7Crusader per la documentazione del progetto SWE Unipd 2024/2025.
Versioni
Ver | Data | Redattore | Verificatore | Descrizione |
---|---|---|---|---|
2.0 | 06/04/2025 | Enrico Cotti Cottini | Filippo Rizzolo | Approvazione finale del documento |
1.1 | 01/03/2025 | Eddy Pinarello | Gabriele Di Pietro | Aggiunta nuovi termini |
1.0 | 04/02/2025 | Eddy Pinarello | Enrico Cotti Cottini | Approvazione documento |
0.3 | 21/01/2025 | Eddy Pinarello | Gabriele Di Pietro | Aggiunta di nuovi termini |
0.2 | 18/11/2024 | Enrico Cotti Cottini | Gabriele Di Pietro | Aggiunta di nuovi termini |
0.1 | 05/11/2024 | Gabriele Di Pietro | Filippo Rizzolo | Prima stesura del documento |
LâActual Cost (Costo Effettivo) rappresenta il costo effettivamente sostenuto per completare il lavoro fino al periodo in analisi.
Processo di identificazione e definizione delle necessitĂ e delle aspettative degli stakeholder per un progetto. Serve per ricavare i requisiti che andranno ad essere soddisfatti tramite progettazione e sviluppo del prodotto.
Unâarchitettura per la progettazione di servizi web che consente la comunicazione tra sistemi attraverso il protocollo HTTP. In unâAPI REST, le risorse (come dati o funzionalitĂ ) sono identificate da URL univoci e possono essere manipolate utilizzando operazioni standard come GET, POST, PUT e DELETE. Lâarchitettura è stateless, il che significa che ogni richiesta contiene tutte le informazioni necessarie per essere elaborata senza fare affidamento su dati memorizzati sul server. Ă ampiamente utilizzata per creare applicazioni scalabili e interoperabili.
Un audit è una revisione formale e indipendente di un progetto o di un processo, finalizzata a garantire che le attivitĂ siano conformi agli standard, alle normative, e ai requisiti definiti. Si svolge attraverso ispezioni sistematiche e verifiche documentali per accertarsi che vengano seguite le procedure operative, i piani di qualitĂ e le regolazioni previste. Lâaudit può anche essere utilizzato per identificare aree di miglioramento, valutare lâefficacia delle pratiche correnti e assicurarsi che i risultati siano raggiunti in modo efficace e trasparente.
La componente di unâapplicazione software responsabile della logica di business, della gestione dei dati e dellâelaborazione delle richieste provenienti dal frontend. Si occupa di eseguire operazioni sul database, elaborare algoritmi complessi e garantire il corretto funzionamento delle funzionalitĂ . Comunica con il frontend principalmente tramite API, fornendo i dati necessari per lâinterfaccia utente.
Un elenco di attivitĂ , funzionalitĂ o requisiti da completare allâinterno di un progetto. Ogni voce del backlog rappresenta una parte del lavoro da svolgere, ordinata per prioritĂ , che viene progressivamente affrontata durante lo sviluppo del progetto.
Un benchmark è un punto di riferimento utilizzato per misurare le prestazioni di un sistema, di unâapplicazione, o di un dispositivo rispetto a un set di standard predefiniti o a sistemi comparabili. Nella tecnologia, un benchmark può riferirsi a test eseguiti per valutare lâefficienza, la velocitĂ , la stabilitĂ , e altre caratteristiche importanti di hardware, software, o processi aziendali. Questi test sono cruciali per identificare aree di miglioramento, confrontare soluzioni concorrenti, e garantire che un sistema funzioni in modo ottimale rispetto alle aspettative del mercato o alle specifiche di progetto.
BERT è un modello di linguaggio sviluppato da Google che utilizza trasformatori per comprendere il contesto di una parola considerando sia le parole precedenti che quelle successive. Questo approccio bidirezionale migliora la comprensione del testo in compiti come la classificazione, la risposta a domande e lâanalisi del linguaggio naturale. BERT è pre-addestrato su grandi dataset e può essere facilmente adattato a diverse applicazioni specifiche.
La Cost Variance (o Variazione dei Costi) rappresenta la differenza tra il valore del lavoro effettivamente completato e il costo effettivamente sostenuto per completarlo, calcolata in percentuale.
Un sistema di gestione dei dati che organizza le informazioni in tabelle strutturate composte da righe e colonne. Le tabelle sono correlate tra loro attraverso chiavi primarie e chiavi esterne, consentendo di mantenere lâintegritĂ dei dati e facilitare lâaccesso e la manipolazione. Utilizza il linguaggio SQL (Structured Query Language) per eseguire operazioni come la creazione, lâinterrogazione, lâaggiornamento e lâeliminazione dei dati. I database relazionali sono ampiamente utilizzati in applicazioni aziendali e web per la loro efficienza e scalabilitĂ .
Un database vettoriale è un tipo di sistema di gestione dei dati progettato per memorizzare, indicizzare e cercare vettori, ossia rappresentazioni numeriche di oggetti come parole, immagini o concetti. I vettori sono utilizzati per catturare le caratteristiche semantiche di un dato e vengono comunemente usati nei modelli di machine learning e di linguaggio naturale. I database vettoriali permettono di effettuare ricerche rapide basate sulla similarità tra vettori, come nel caso della ricerca per vicinanza (nearest neighbor search), che è utile per applicazioni come il recupero delle informazioni e la raccomandazione di contenuti.
Diagrammi standardizzati utilizzati per modellare e visualizzare il design di sistemi software. Aiutano a descrivere la struttura, il comportamento e le interazioni tra componenti del sistema. I diagrammi UML includono classi, casi dâuso, attivitĂ e molti altri tipi, ciascuno con uno scopo specifico per rappresentare aspetti diversi del sistema.
La documentazione formale include materiali ufficiali come norme e piani di progetto, spesso richiesta per conformità e audit. La documentazione informale comprende appunti e bozze non ancora approvate, ed è piÚ flessibile, utilizzata principalmente per comunicazioni interne. Entrambe supportano lo sviluppo del progetto.
LâEarned Value (Valore Guadagnato) rappresenta il valore del lavoro effettivamente completato fino al periodo in analisi.
Una tecnica utilizzata nellâintelligenza artificiale e nellâelaborazione del linguaggio naturale per rappresentare parole, frasi o interi documenti in uno spazio vettoriale. Ogni elemento viene trasformato in un vettore numerico, dove la posizione e la distanza tra i vettori riflettono il significato semantico. Gli embedding consentono di confrontare testi in modo efficiente, trovando similaritĂ tra concetti e facilitando attivitĂ come la ricerca semantica, la classificazione dei testi e il clustering.
LâEstimate at Completion (o Stima da Completare) rappresenta una previsione aggiornata del costo totale del progetto basata sulle performance attuali, calcolata in base ai costi effettivamente sostenuti e ai costi stimati per completare il lavoro rimanente.
LâEstimate to Complete (o Stima al Completamento) rappresenta una previsione del costo necessario per completare le attivitĂ rimanenti del progetto basata sulle performance attuali.
Una libreria open-source sviluppata da Facebook AI Research per lâindicizzazione, la ricerca e il recupero efficiente di vettori in spazi di grandi dimensioni. FAISS (Facebook AI Similarity Search) è progettata per gestire nearest neighbor search in dataset di grandi dimensioni, garantendo alta velocitĂ ed efficienza. Viene utilizzata in applicazioni come la ricerca semantica, i sistemi di raccomandazione e lâelaborazione del linguaggio naturale.
La parte visibile di unâapplicazione software che rappresenta lâinterfaccia utente (UI) e consente agli utenti di interagire con il sistema. Ă responsabile della presentazione grafica, della navigazione e dellâacquisizione delle informazioni inserite dagli utenti. Il frontend comunica con il backend attraverso API per inviare e ricevere dati, garantendo unâesperienza utente fluida e interattiva.
Una piattaforma di automazione che permette di eseguire flussi di lavoro direttamente nei repository GitHub. Supporta azioni come compilazioni, test e deployment automatizzati, migliorando lâefficienza nello sviluppo software.
Elenco strutturato di termini tecnici o specializzati, ognuno corredato dalla propria definizione o spiegazione. Questo strumento aiuta a migliorare la comunicazione tra le varie parti coinvolte in un progetto, riducendo le ambiguitĂ e garantendo una comprensione condivisa dei termini utilizzati in un determinato contesto.
LangChain è una libreria open-source progettata per semplificare lâintegrazione e lâorchestrazione di modelli di linguaggio avanzati (come GPT) con altre fonti di dati e sistemi. Viene utilizzata per costruire applicazioni complesse che combinano intelligenza artificiale e database, rendendo possibile la gestione di flussi di lavoro dinamici. LangChain permette di creare pipeline che automatizzano il processamento delle informazioni, la comunicazione con le API, lâelaborazione di documenti e lâinterazione con vari strumenti esterni. Con un focus sullâaccessibilitĂ e la modularitĂ , LangChain rende piĂš semplice lâimplementazione di soluzioni di AI che richiedono unâintegrazione fluida tra diversi moduli e fonti di dati.
Un modello di intelligenza artificiale addestrato su grandi quantitĂ di dati testuali per comprendere, generare e contestualizzare il linguaggio naturale. Ă utilizzato in applicazioni come chatbot, traduttori e analisi del linguaggio.
Una branca dellâintelligenza artificiale che utilizza algoritmi per apprendere dai dati e migliorare le prestazioni senza essere esplicitamente programmata. Trova applicazione in ambiti come la previsione, il riconoscimento e la personalizzazione.
Un obiettivo intermedio significativo nel ciclo di vita del progetto, utilizzato per monitorare i progressi e verificare il completamento di specifiche fasi o attivitĂ .
Un mockup è una rappresentazione visiva di unâinterfaccia utente, utilizzata per mostrare il design di un prodotto. Ă una versione statica che mostra come appariranno gli elementi grafici senza interazione.
Tecnologia che combina linguistica e intelligenza artificiale per consentire ai computer di comprendere, analizzare e generare linguaggio naturale. Viene usata in chatbot, traduttori automatici e analisi testuale.
Un algoritmo utilizzato per trovare i punti piĂš vicini in uno spazio vettoriale, spesso utilizzato in database vettoriali per recuperare embedding simili.
Regole e linee guida stabilite allâinterno di un progetto per garantire coerenza e qualitĂ nelle attivitĂ svolte. Definiscono standard e procedure, come documentazione, gestione delle versioni e criteri di codifica, per assicurare uniformitĂ nellâapproccio e nel risultato finale.
Una revisione che documenta lo stato del progetto al termine dello sviluppo, descrivendo il prodotto finale in termini di specifiche tecniche, funzionalitĂ e conformitĂ ai requisiti iniziali.
Documento formale che delinea in dettaglio la pianificazione, la esecuzione, il monitoraggio e il controllo di tutte le attivitĂ coinvolte nella realizzazione di un progetto. Questo documento fornisce una roadmap chiara e organizzata, comprensiva di obiettivi, risorse, scadenze e strategie di gestione dei rischi.
Documento che stabilisce gli standard di qualitĂ , i processi e le attivitĂ di testing che saranno implementati durante lo sviluppo di un progetto. Contiene una descrizione dettagliata delle strategie di testing, delle metriche di valutazione e dei criteri di accettazione del prodotto finale.
Retrieval-Augmented Generation (RAG) è unâarchitettura che combina il recupero di informazioni da un database con modelli di linguaggio per generare risposte accurate e contestualizzate. Il processo si articola in due fasi principali: il retrieval e la generazione. Nella fase di retrieval, il sistema cerca e recupera documenti rilevanti da un database o da altre fonti di conoscenza, utilizzando tecniche di ricerca avanzate per identificare le informazioni piĂš pertinenti. Successivamente, nella fase di generazione, un modello di linguaggio utilizza le informazioni recuperate per produrre risposte coerenti e arricchite dal contenuto estratto. Questo approccio migliora significativamente la qualitĂ delle risposte, rendendole piĂš precise e informate rispetto ai modelli di linguaggio tradizionali che non integrano il retrieval.
Il Planned Value (Valore Pianificato) rappresenta il valore del lavoro programmato per essere completato fino a un determinato momento. Si tratta del budget preventivato per lo sprint in corso.
Una dimostrazione pratica per validare la fattibilitĂ di unâidea, tecnologia o progetto. Permette di identificare eventuali rischi o limitazioni prima di procedere con lo sviluppo completo.
PostgreSQL è un sistema di gestione di database relazionali open-source, noto per la sua robustezza, scalabilità e supporto per operazioni avanzate come transazioni ACID e gestione di dati JSON. à ampiamente utilizzato per applicazioni che richiedono affidabilità e performance.
Input testuale o visivo fornito a unâintelligenza artificiale per guidarne la generazione di risposte, immagini o altri output. Nel contesto dei chatbot e dei modelli di IA, il prompt determina il comportamento e il contenuto della risposta generata.
Meccanismo in React che permette di passare dati e funzioni da un componente padre a un componente figlio. I props sono immutabili e consentono la personalizzazione e il riutilizzo dei componenti, mantenendo un flusso unidirezionale dei dati.
Metriche di QualitĂ Soddisfatte indica il numero di metriche implementate e soddisfatte, tra quelle definite.
La query semantica è una tecnica di ricerca che si basa sullâanalisi del significato delle parole nel linguaggio naturale, piuttosto che sulla semplice corrispondenza di termini. Permette di trovare informazioni rilevanti in un database tenendo conto del contesto e delle relazioni tra concetti, migliorando la qualitĂ dei risultati. Viene utilizzata in motori di ricerca e assistenti virtuali per comprendere meglio le intenzioni dellâutente.
Il Requirements Stability Index indica la percentuale di requisiti che sono rimasti invariati rispetto al totale dei requisiti inizialmente definiti. Si tratta di una metrica utilizzata per misurare quanto i requisiti di un progetto rimangono stabili durante il ciclo di vita del progetto stesso, è particolarmente utile per comprendere lâimpatto delle modifiche ai requisiti sul progetto.
Strumento visuale per pianificare e monitorare il progresso delle attivitĂ di un progetto allâinterno di GitHub. Gestite tramite GitHub Projects, le roadmap aiutano a pianificare iterazioni, milestone e obiettivi di un progetto software, facilitando la gestione delle prioritĂ , delle scadenze e dellâassegnazione dei compiti.
Una revisione formale che stabilisce i requisiti funzionali e tecnici di un progetto, definendo il punto di riferimento per lo sviluppo e la verifica delle funzionalitĂ richieste.
Una Run rappresenta una singola esecuzione o operazione allâinterno di un chatbot basato su LangSmith.Ogni Run traccia unâunitĂ di lavoro, come una chiamata al modello di linguaggio (LLM), lâesecuzione di una catena di operazioni o lâinvocazione di uno strumento. LangSmith memorizza questi dati in un formato strutturato, permettendo di monitorare le prestazioni, analizzare errori e ottimizzare le risposte del chatbot. Ogni Run può includere informazioni come tempi di esecuzione, input e output, costi di elaborazione e stato dellâoperazione.
La scalabilità è la capacità di un sistema di gestire un aumento del carico di lavoro o delle risorse senza compromettere le prestazioni. Un sistema scalabile può adattarsi a una maggiore domanda aggiungendo risorse in modo efficace, sia aumentando la capacità di singole risorse (scalabilità verticale) che aggiungendo piÚ risorse (scalabilità orizzontale). à essenziale per mantenere alte le performance in ambienti in crescita.
La Schedule Variance (o Variazione di Programma) rappresenta la differenza tra il valore del lavoro effettivamente completato e il valore del lavoro pianificato, calcolata in percentuale.
Insieme dei portatori di interessi, ossia le persone che, a vario titolo, sono coinvolte nel ciclo di vita del software, influenzandone il prodotto o il processo. Possono includere clienti, utenti finali, sviluppatori, finanziatori e altri soggetti che, direttamente o indirettamente, contribuiscono al successo del progetto, determinando requisiti, vincoli e obiettivi da raggiungere.
FunzionalitĂ predefinite di un chatbot che permettono di rispondere a domande frequenti o eseguire azioni specifiche senza dover fare una chiamata allâLLM ogni volta. I template sono domande registrate nel sistema, associate a risposte giĂ esistenti, configurate dagli amministratori. Questo permette di rispondere rapidamente a richieste comuni, migliorando lâefficienza e riducendo il carico computazionale.
Un modello predefinito per la creazione di documenti in LaTeX. Consente di standardizzare la struttura e il formato dei documenti, semplificando la redazione e migliorando la coerenza stilistica.
Sistema di gestione e tracciamento delle attivitĂ , problematiche o richieste in un progetto, che consente di assegnare, monitorare e risolvere ciascun elemento in modo ordinato e strutturato, migliorando lâefficienza del team e la visibilitĂ sul progresso.
Un token è lâunitĂ minima di testo elaborata da un modello di linguaggio. Può essere una parola intera, un simbolo, una parte di una parola o una sequenza di caratteri che il modello interpreta come un singolo elemento. I modelli di linguaggio suddividono il testo in token per analizzare e comprendere il contenuto, facilitando lâelaborazione del linguaggio naturale. La suddivisione in token è un passaggio cruciale nella comprensione e generazione del testo da parte dei modelli di intelligenza artificiale.
Processo di gestione delle modifiche ai documenti o al codice sorgente mediante strumenti che tracciano e memorizzano le varie versioni. Garantisce trasparenza e facilita la collaborazione tra membri del team.