Glossario
- Agile
- Il termine si riferisce ad una famiglia di metodi di sviluppo software caratterizzati da cicli iterativi e incrementali nei quali il lavoro viene suddiviso in piccole task a valore aggiunto il cui risultato può essere modificato in periodi successivi. I metodi Agile nascono in risposta all'eccessiva rigidità dei modelli sequenziali e di quelli esclusivamente iterativi o esclusivamente incrementali.
- Amazon Web Services (AWS)
- Piattaforma di servizi cloud fornita da Amazon, che include risorse per calcolo, archiviazione e distribuzione di applicazioni
- Angular
- Framework open source sviluppato da Google che permette di creare applicazioni web dinamiche e complesse con una grande facilità. Questo framework è basato su JavaScript ed è utilizzato da molte grandi aziende per lo sviluppo di applicazioni web
- API-first
- Approccio di sviluppo dove la progettazione dell'interfaccia API è prioritaria rispetto all'implementazione del software. Questa pratica garantisce modularità e interoperabilità
- API KNX IoT 3rd-party
- Interfaccia di programmazione che permette a software esterni di collegarsi e interagire con dispositivi domotici conformi allo standard KNX, un protocollo di comunicazione internazionale
- Backend-for-frontend proxy
- Backend for Frontend (BFF) è un pattern architetturale che prevede la creazione di servizi backend dedicati e specifici per ogni tipo di interfaccia frontend. Invece di avere un unico backend generico che serve tutte le piattaforme, il pattern BFF introduce un layer intermedio (proxy) che ottimizza le API per le esigenze specifiche di ciascun client: web, mobile, smart TV, IoT, ecc. Il pattern BFF è stato formalizzato da Sam Newman nel 2015, nell'articolo "Backends for Frontends" e successivamente nel libro "Building Microservices"
- Black-box
- Approccio in cui un modello o sistema è utilizzato senza conoscerne il contenuto, ovvero il suo funzionamento interno, ma solo osservando l'input e l'output
- Brainstorming
- È una tecnica di gruppo per generare liberamente tante idee e soluzioni creative a un problema, senza giudizio iniziale, per poi valutarle in una fase successiva
- Branch
- Nel contesto di un sistema di controllo versione come Git, un branch (ramo) è un puntatore mobile a un commit. Consente agli sviluppatori di lavorare isolatamente su nuove funzionalità o correzioni senza alterare il codice base principale, finché il lavoro non è pronto per essere fuso (merged)
- Bug
- Un bug, in informatica, è un errore, un difetto software o hardware che produce un comportamento inatteso o errato.
- C4 Model
- Il Modello C4 (acronimo di Context, Containers, Components, Code) è un approccio per la visualizzazione e la documentazione dell'architettura software. Ideato per superare le ambiguità dei diagrammi UML complessi, presenta l'architettura in base ai diversi livelli del sistema, tra cui il diagramma del contesto del sistema, il diagramma del contenitore, il diagramma dei componenti e il diagramma del codice. Il modello C4 non richiede l'uso di un linguaggio grafico o di modellazione specifico, pertanto gli utenti possono generare diagrammi architetturali in modo molto flessibile.
- Riferimenti: c4Model.com
- Capitolato
- Il capitolato è un documento che descrive in modo dettagliato le specifiche tecniche e le condizioni necessarie per lo sviluppo di un progetto software. Viene reddato dal proponente e presentato ai fornitori o agli sviluppatori interessati a partecipare alla gara d'apparto per la realizzazione del prodotto
- Chat
- Sistema di comunicazione in tempo reale che avviene tra utenti in modo testuale
- Cloud e DevOps
- Insieme di pratiche che uniscono lo sviluppo software e operazioni IT in ambienti cloud per migliorare automazione, integrazione e distribuzione continua
- Codebase
- L'insieme di file sorgenti che compongono un progetto software. Include tutti i file di codice, script, configurazioni e risorse necessari per il funzionamento dell'applicazione.
- Commit
- Il commit è un operazione di salvataggio all'interno di un repository Git che registra una versione specifica dei file, consentendo di tenere traccia delle modifiche effettuate nel tempo
- Committente
- Il committente è l'individuo o l'organizzazione che commissiona la realizzazione di un progetto software e ne finanzia lo sviluppo. Esso è responsabile della definizione dei requisiti e delle specifiche del progetto, oltre a valutare il prodotto finale in base ai propri obbiettivi e aspettative iniziali
- Configuration item
- Qualsiasi componente (software, hardware o documento) trattato come singola unità a fini di gestione. Rappresenta l'elemento che viene identificato, tracciato e sottoposto al processo formale di controllo di configurazione. Un insieme di configuration item, una volta approvati, formano una baseline che può essere modificata solo attraverso procedure formali e sotto stretto controllo di versione.
- Container
- Un container è un'unità standard di software che impacchetta il codice e tutte le sue dipendenze in modo che l'applicazione venga eseguita in modo rapido e affidabile da un ambiente informatico all'altro
- Continuous Integration e Deployment (CI/CD)
- Insieme di pratiche volte ad automatizzare l'integrazione, i test e la distribuzione del software per garantire rilasci frequenti e affidabili
- Cookie
- Stringa di testo di piccole dimensioni inviata da un server ad un client (browser) affinché la memorizzi e la ritrasmetta al medesimo server nelle sessioni successive. Permette di realizzare meccanismi di autenticazione, di tracciatura di sessione e di memorizzazione di informazioni di uno specifico utente.
- CRUD
- Acronimo di Create, Read, Update, Delete. Rappresenta le quattro operazioni fondamentali per la gestione dei dati in un sistema informatico
- Dashboard
- Interfaccia utente grafica che presenta in modo riassuntivo e organizzato le informazioni chiave (metriche, stato, dati) relative a un'applicazione, un progetto o un sistema. È utilizzata per il monitoraggio rapido e per supportare i processi decisionali
- Data Analysis
- In italiano, Analisi dei Dati, è il processo sistematico di raccolta, trasformazione e modellazione di dati grezzi per estrarre informazioni utili ed individuare trend o modelli, a supporto del sistema decisionale. Si articola in una varietà di tecniche che vanno dall'analisi statistica al machine learning, finalizzate all'analisi dei dati passati e attuali per prevedere le tendenze future.
- Debugger
- È un programma che permette di analizzare il codice al fine di rilevare e diagnosticare bug, il processo avviene durante l'esecuzione del codice.
- Deliverable
- Artefatto concreto e tangibile prodotto durante il ciclo di vita del progetto che deve essere consegnato agli stakeholder. Include documenti, software, report e qualsiasi altro prodotto specificato nei requisiti del progetto
- Design
- È un'attività del processo di sviluppo che consiste nell'individuare le parti che compongono il prodotto, precisarne le responsabilità e definire le regole di interazione tra di essi. Risponde al quesito di come realizzare la soluzione; il risultato di questa attività è un'architettura logica.
- Develop
- Nel modello di branching Gitflow, 'develop' è il ramo principale di integrazione per lo sviluppo di nuove funzionalità. Contiene la storia completa del progetto e riceve i merge dai rami secondari prima di essere pronto per una release
- Discord
- Discord è una piattaforma di comunicazione digitale che integra in modo fluido chat testuali, vocali e video
- Docker
- Piattaforma software che consente di creare, testare e distribuire applicazioni rapidamente. Docker confeziona il software in unità standardizzate chiamate contenitori che hanno tutto ciò di cui il software ha bisogno per essere eseguito, comprese librerie, strumenti di sistema, codice e runtime
- Docker Registry
- Repository centralizzato su un server che memorizza e distribuisce immagini Docker. Permette la condivisione, il download e il caricamento di immagini containerizzate, facilitando la distribuzione e la gestione versionale dei container.
- DTO (Data Transfer Object)
- Oggetto utilizzato per trasferire dati tra i diversi livelli di un'applicazione (ad esempio tra backend e frontend), privo di logica di business. Permette di disaccoppiare la struttura interna del dominio dalla rappresentazione dei dati esposta all'esterno
- Endpoint
- In un'architettura di tipo REST o web service, un endpoint è un URL specifico esposto da un server al quale i client possono inviare richieste HTTP per accedere a una determinata risorsa o funzionalità dell'applicazione
- Express
- Framework per applicazioni Web per Node.js minimale e flessibile che semplifica la creazione di applicazioni e API lato server
- Facebook AI Similarity Search (FAISS)
- Libreria open-source sviluppata da Meta per eseguire ricerche ottimizzate e rapide di similarità in grandi collezioni di dati
- Feature
- Una feature (funzionalità) è un ramo di sviluppo creato per implementare un requisito o una specifica caratteristica del software. Questi rami sono isolati dal develop e vengono fusi solo al termine del lavoro, assicurando che le modifiche non interferiscano con il codice stabile
- Feedback
- Indica il modo in cui l'effetto derivato dall'azione di un sistema si riflette sul sistema stesso, influenzandone o correggendone il funzionamento. Nello scenario di progetto indica l'ottenimento di un riscontro valutativo sull'operato da parte degli Stakeholders.
- Figma
- Strumento di progettazione grafica e prototipazione collaborativa basato su cloud, ampiamente utilizzato per la creazione di interfacce utente, wireframe e prototipi interattivi. Consente a più utenti di lavorare contemporaneamente sullo stesso progetto
- GIN
- Generalized Inverted Index, è una struttura di indicizzazione progettata per gestire dati strutturati (JSONB) i cui elementi interni devono essere interrogati singolarmente. Mappa ogni chiave di singolo elemento ad una lista di identificativi di riga, rendendo efficienti le ricerche. Permette di implementare strategie di scansione personalizzate per diversi tipi di dati, ottimizzando lo storage tramite l'archiviazione univoca delle chiavi.
- Git
- Sistema di controllo di versione distribuito che permette a molteplici sviluppatori di lavorare mantenendo un registro delle modifiche che vengono apportate al codice di uno stesso progetto
- GitHub
- Piattaforma di sviluppo collaborativo che si basa su Git, per il controllo delle versioni. Utilizzato da gran parte degli sviluppatori di software e team di sviluppo per la gestione di progetti, permette la tracciabilità delle modifiche al codice sorgente e la collaborazione fra i menmbri del team, facilitandone il coordinamento
- GitHub Actions
- Servizio di automazione offerto da GitHub che permette di eseguire workflow personalizzati in risposta a specifici eventi nel repository, come push, pull request o rilascio. Viene utilizzato per automatizzare CI/CD e altre operazioni di sviluppo.
- GitHub Projects
- Funzionalità di gestione del lavoro offerta da GitHub, che consente ai team di organizzare, pianificare e monitorare le attività relative al codice, spesso utilizzando bacheche Kanban. È strettamente integrata con Issues e pull request del repository
- Google Meet
- Servizio online di videoconferenze messo a disposizione da Google
- Google Sheets
- Editor online di fogli di calcolo messo a disposizione dalla Google Workspace, insieme di strumenti online di produttività dell'omonima azienda
- Gmail
- Servizio di posta elettronica di Google che si basa sul cloud
- Infrastructure as Code (IaC)
- Pratica che prevede la gestione e configurazione dell'infrastruttura informatica tramite codice, per garantire replicabilità, tracciabilità e facilità di manutenzione
- Internet of Things (IoT)
- Rete di dispositivi fisici dotati di sensori, software e altre tecnologie, che consente loro di connettersi a Internet, raccogliere e scambiare dati
- IoC Container
- Componente deputato all'implementazione del paradigma Inversion of Control, ovvero la delegazione ad una entità esterna (container) della gestione del ciclo di vita degli oggetti. Registra le dipendenze di ogni componente e alla sua creazione le inietta, togliendo la responsabilità agli oggetti stessi di instanziare manualmente le proprie dipendenze, riducendo l'accoppiamento tra le classi.
- Issue
- Un GitHub Issue è una funzionalità di GitHub dedicata alla gestione delle attività e al tracciamento dei problemi all'interno di un progetto software. Ogni issue rappresenta un elemento di lavoro o una segnalazione specifica e può essere arricchita con diverse informazioni: assegnatari, per indicare i responsabili della risoluzione; etichette (label), per classificare e organizzare le issue; e milestone, che consentono di raggruppare più issue in base a un obiettivo comune, facilitando il monitoraggio dell'avanzamento verso una determinata scadenza o risultato
- Issue Tracking Sistem
- Un Issue Tracking System è uno strumento utilizzato per registrare, monitorare e gestire problemi, segnalazioni di bug o richieste di miglioramento all'interno di un progetto software. Consente di tenere traccia dello stato e della priorità di ciascun elemento, facilitando la collaborazione tra i membri del team e garantendo una gestione più efficiente del ciclo di sviluppo
- Jira
- Strumento software proprietario ampiamente utilizzato per la gestione dei progetti, l'Issue Tracking e lo sviluppo Agile. Permette ai team di pianificare, tracciare e rilasciare software, gestendo problemi (Issue) e flussi di lavoro personalizzati
- JSONB
- Tipo di dato di PostgreSQL che permette la memorizzazione di file JSON in formato binario. Permette una maggiore velocità nell'interrogazione e manipolazione rispetto al formato standard JSON e supporta vari tipi di indici, migliorando ulteriormente le prestazioni delle query.
- JWT (JSON Web Token)
- Standard aperto (RFC 7519) per la trasmissione sicura di informazioni tra parti sotto forma di oggetto JSON. Viene comunemente utilizzato per l'autenticazione e l'autorizzazione nelle applicazioni web, permettendo di verificare l'identità dell'utente tramite un token firmato digitalmente
- Latex
- LaTeX è un linguaggio di markup e un sistema di preparazione di documenti ampiamente utilizzato per la creazione di testi scientifici, accademici e tecnici, ma anche per la realizzazione di libri, tesi, articoli e presentazioni. Basato su TeX, il sistema di tipografia sviluppato da Donald Knuth negli anni '70, LaTeX ne estende le funzionalità offrendo pacchetti e comandi che semplificano la scrittura, la formattazione e la gestione strutturata dei contenuti
- Marketing
- Ramo dell'economia che si dedica all'analisi e comprensione di un determinato mercato di riferimento e allo studio delle esigenze del consumatore. In particolare, il marketing si focalizza sull'indagine dell'interazione del mercato e degli utenti di un'impresa al fine di ottimizzare le strategie commerciali e promozionali per raggiungere gli obiettivi aziendali.
- Merge
- Operazione chiave nei sistemi di controllo versione come Git che consiste nel combinare le modifiche apportate in due rami di sviluppo separati in un unico ramo. Il processo sincronizza le modifiche tra i diversi flussi di lavoro, spesso a seguito di una pull request
- Microsoft Teams
- Piattaforma di comunicazione e collaborazione unificata che combina chat di lavoro persistente, teleconferenza, condivisione di contenuti e integrazione delle applicazioni
- Microsoft Copilot
- I copiloti sono interazioni di intelligenza artificiale generative basate su chat di Microsoft. Hanno funzionalità specializzate in base agli utenti e ai casi d'uso. Alcuni Copilot si possono utilizzare come prodotto autonomo, mentre altri sono integrati in altri prodotti, servizi e dispositivi Microsoft
- Milestone
- Le Milestone sono strumenti di gestione dei progetti utilizzati per identificare momenti chiave lungo la timeline di un'iniziativa. Rappresentano punti di riferimento che possono coincidere con l'avvio o la conclusione di una fase, oppure con momenti di verifica o revisione. Generalmente, le milestone non influenzano direttamente la durata complessiva del progetto, ma servono a evidenziare i principali traguardi che ne determinano l'avanzamento e il successo
- Mocking
- In ingegneria del software è una tecnica che permette di isolare e testare con facilità una porzione del programma sfruttando degli oggetti (mock) che simulano dipendenze reali come databases e APIs.
- Monorepo
- Repository che contiene più progetti o applicazioni correlate gestite in un'unica base di codice centralizzata. Permette una migliore condivisione di codice, configurazioni comuni e semplifica la gestione delle dipendenze tra i progetti.
- NestJs
- Framework Node.js open-source per lo sviluppo di applicazioni server-side (backend). Si basa sul linguaggio TypeScript ed adotta un'architettura modulare ispirata dal framework Angular. Integra nativamente un IoC Container per la gestione della Dependency Injection e test automatici, garantendo una struttura solida.
- Node.js
- Runtime JavaScript basato sul motore V8 di Chrome che permette di eseguire codice JavaScript lato server. Ampiamente usato per sviluppare applicazioni backend, API e strumenti da linea di comando grazie al suo modello I/O asincrono ed event-driven.
- Nx
- Strumento open-source per la gestione di monorepo che consente di organizzare più applicazioni e librerie in un unico repository. Fornisce cache intelligente, task graph e automazione dei workflow per velocizzare build, test e linting.
- Open Web Application Security Project (OWASP)
- Definisce l'organizzazione che promuove la sicurezza del software e che fornisce linee guida per la protezione delle applicazioni web
- Payload
- In italiano "carico utile", indica la parte dei dati trasmessi effettivamente informativa, destinata al ricevente. Di questa non fanno parte metadati o header il cui unico scopo è il funzionamento del protocollo di comunicazione adottato.
- Prisma ORM
- Toolkit open source per Node.js e TypeScript che semplifica l'accesso ai database.
- Project Board
- Tabellone interattivo fornito da piattaforme di gestione di progetto come Github o Jira che riassume in maniera visiva lo stato del progetto e ne permette la gestione.
- Prompt Engineering
- Tecnica di progettazione delle istruzioni (prompt) per ottimizzare l'interazione e le risposte fornite dai LLM
- Proof of Concept (Poc)
- Nel contesto dello sviluppo software, è un metodo di verifica della realizzabilità di un prodotto, dal punto di vista concettuale e tecnologico, che avviene attraverso lo sviluppo di una versione molto ridotta della soluzione finale.
- PostgreSQL
- Database open source relazionale a oggetti progettato per prestazioni di livello enterprise, è apprezzato per le sue solide funzionalità e affidabilità. Nato nel 1986 come evoluzione di Ingres, un precedente database della University of California, utilizza Structured Query Language (SQL) per query e transazioni
- Pull Request
- Meccanismo utilizzato nei sistemi di controllo versione come Git/GitHub che permette a uno sviluppatore di notificare ai manutentori del repository che ha completato nuove modifiche e desidera che vengano integrate (fuse) nel ramo principale
- Push
- Comando Git utilizzato per trasferire i commit locali (salvataggi) da un repository locale al repository remoto, aggiornando la storia del codice condiviso su piattaforme come GitHub. Questo rende le modifiche disponibili agli altri membri del team
- Release
- Il ramo 'release' (o l'azione di rilascio) in un sistema di controllo versione rappresenta il momento in cui il software è pronto per essere distribuito agli utenti finali. Questo ramo viene isolato dal ramo 'develop' per permettere solo correzioni critiche prima del lancio
- Remediation
- Azione correttiva volta a risolvere problemi di sicurezza rilevati in un sistema software
- Representational State Transfer (REST)
- Architettura per la comunicazione tra sistemi distribuiti basata su protocolli HTTP, utilizzata nella creazione di API web
- Round Review
- Consiste in una delle tante review di un documento che avvengono in maniera iterativa da parte di verificatori, esse generano modifiche del documento fino al raggiungimento di un risultato approvabile. (P.S Non si trovano definizioni online, non si capisce se è un processo o se è un iterazione del processo)
- SHA-512
- Algoritmo crittografico hash della famiglia SHA-2 che genera un hash di 512 bit (64 byte). Viene utilizzato per garantire l'integrità dei dati e per verificare l'autenticità di file, password e in contesti di sicurezza informatica.
- Socket.io
- Libreria JavaScript basata su WebSocket che permette la comunicazione bidirezionale e in tempo reale tra client e server. Fornisce fallback automatici per browser non compatibili con WebSocket e gestione intelligente delle disconnessioni.
- Software Development Kit (SDK)
- Insieme di strumenti, librerie e documentazione forniti per facilitare lo sviluppo di applicazioni che interagiscono con un determinato sistema o chiamate API
- SonarQube
- Piattaforma open-source che prevede la continua ispezione del codice tramite analisi statica, individuando automaticamente bug e vulnerabilità. Può essere integrato nella pipeline CI/CD in modo da garantire che il software sia ispezionato ad ogni modifica nel repository.
- SOLID (principi)
- Insieme di cinque principi fondamentali della progettazione orientata agli oggetti, formulati da Robert C. Martin. L'acronimo identifica: Single Responsibility (responsabilità singola), Open/Closed (aperto/chiuso), Liskov Substitution (sostituzione di Liskov), Interface Segregation (segregazione delle interfacce) e Dependency Inversion (inversione delle dipendenze). Il rispetto di questi principi favorisce la manutenibilità, l'estensibilità e la robustezza del codice
- Sprint
- Nel contesto Agile, uno Sprint è un breve periodo di tempo, di durata 2-4 settimane, in cui uno Scrum Team lavora per completare una determinata quantità di lavoro.
- Stato Avanzamento Lavori (SAL)
- Nell'ambito del project management, il SAL è una riunione periodica che viene stabilita per certificare che il progetto si stia sviluppando secondo le aspettative di tempi, costi, e risultati, devono essere concordati gli argomenti da valutare secondo precise logiche.
- TimescaleDB
- Database relazionale per sequenze di dati che cambiano nel tempo, è implementato come estensione di PostgreSQL
- Turbo Repo
- Tool per la gestione di monorepo JavaScript/TypeScript che ottimizza l'esecuzione delle pipeline di sviluppo. Introduce build incrementali, caching locale/remoto e orchestrazione delle task per ridurre i tempi di build e migliorare la produttivita del team.
- UML2.5
- UML2.5 consiste nell'ultima versione stabile dell'Unified Modeling Language (UML), che aggiunge dettaglio, coerenza, completezza al linguaggio e raffina i diagrammi di comportamento, dunque potenziando la capacità di descrivere i modelli dinamici.
- Use Case
- Descrizione di un'azione o sequenza di eventi che un sistema (o prodotto) deve eseguire in risposta a un obiettivo specifico o a un'interazione con un utente (o attore). È fondamentale nella fase di definizione dei requisiti di un progetto software
- Way Of Working
- Il Way of Working (WoW) descrive il modo in cui un team o un'organizzazione gestisce le proprie attività, i flussi di lavoro e il raggiungimento degli obiettivi. Include pratiche, processi, metodologie, tecniche e convenzioni che favoriscono un lavoro efficiente e coerente. Il WoW riguarda aspetti come comunicazione, collaborazione, gestione del tempo, uso di strumenti e processi decisionali. Un WoW ben definito migliora l'efficacia operativa, la qualità dei risultati e la soddisfazione del team, adattandosi alla cultura e alle esigenze aziendali
- Web Push Notification
- Notifiche inviate da un server a un browser o applicazione web anche quando l'utente non sta attivamente interagendo con la pagina. Richiedono il consentimento esplicito dell'utente e una subscription al servizio, permettendo la comunicazione proattiva con gli utenti.
- WebSocket
- Protocollo di comunicazione basato su TCP che fornisce una connessione full-duplex persistente tra client e server. Permette lo scambio bidirezionale di dati in tempo reale, riducendo la latenza rispetto alle tradizionali richieste HTTP polling.
- Wireframe
- Bozza schematica e a bassa fedeltà dell'interfaccia utente di un'applicazione, che rappresenta la struttura e la disposizione degli elementi grafici senza entrare nel dettaglio visivo. Viene utilizzato nelle fasi iniziali della progettazione per definire layout, navigazione e funzionalità prima dello sviluppo effettivo
A
B
C
D
E
F
G
I
J
L
M
N
O
P
R
S
T
U
W
nessun termine trovato per la ricerca :(