Principi di Ingegneria del software 5/ed Roger S. Pressman. Glossario

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Principi di Ingegneria del software 5/ed Roger S. Pressman. Glossario"

Transcript

1 Principi di Ingegneria del software 5/ed Glossario Affidabilità il grado in cui un programma svolge la propria funzione con la precisione richiesta in un certo intervallo di tempo. Alfa testing testing condotto dal cliente presso il luogo di sviluppo; consiste di una simulazione di uso normale, sotto il controllo dello sviluppatore. Amplificazione dei difetti difetti introdotti nelle fasi iniziali dello sviluppo, se non individuati e corretti, risultano spesso amplificati e producono molteplici difetti nelle fasi successive. Analisi un insieme di attività volte a comprendere e modellare le necessità dei clienti ed i vincoli di sviluppo. Analisi dei requisiti un attività di modellazione il cui obiettivo è la comprensione di che cosa vuole veramente il cliente. Analisi dei rischi una tecnica per identificare i rischi e stimarne la probabilità e gli effetti. Analisi dei task un azione di ingegneria del software svolta durante la progettazione della user interface con lo scopo di comprendere meglio le interazioni degli utenti col sistema. Analisi dei valori limite un metodo di testing a black box per la progettazione di test case focalizzati sui valori al limite degli intervalli ammessi. Analisi del dominio attività di ingegneria del software object-oriented volta ad identificare le entità, e quindi le classi, rilevanti per il dominio applicativo e non specifiche della particolare applicazione. Analisi della safety un attività di gestione della qualità, tesa ad individuare e valutare i pericoli potenzialmente in grado di incidere negativamente sul software e di mettere a repentaglio un intero sistema. Analisi grammaticale una tecnica usata durante l analisi per individuare gli elementi e le funzionalità di base. Architettura la struttura complessiva dei componenti software, dei dati e dei contenuti manipolati dai componenti e le relazioni i componenti stessi. Associazione (in UML) definisce una relazione tra gli elementi di due o più classi. Astrazione (1) il livello di dettaglio tecnico di una qualche rappresentazione del software; (2) una modellazione coerente di dati o processi algoritmici.

2 2 GLOSSARIO Attività (di ingegneria del software) una delle attività che costituiscono il processo di sviluppo software, si articola in varie azioni o task set. Audit della configurazione attività svolta dal gruppo della qualità allo scopo di garantire che il processo di gestione dei cambiamenti sia corretto. Autorità preposta al controllo dei cambiamenti (CCA: Change Control Authority) una persona od un gruppo di persone che ha la responsabilità decisionale su opportunità, stato e priorità dei cambiamenti. Azione (1) di ingegneria del software: vedi task; (2) (in UML) passo elementare del behaviour degli oggetti, includono come azioni standard le principali istruzioni dei linguaggi di programmazione object-oriented. Baseline (anche: versione stabile) una specifica od un prodotto formalmente revisionato ed accettato, che servirà da base ad ulteriori sviluppi, e che può essere modificato solo attraverso procedure formali di controllo del cambiamento. Beta testing testing effettuato da alcuni utenti selezionati su una versione preliminare del prodotto presso la propria sede in piena autonomia. Black box testing tecnica di definizione di test case che non utilizza i dettagli interni di un programma per progettare i test, ma si basa solo sui requisiti esterni. Build vedi Cluster. CASE Computer Aided Software Engineering. Strumenti software di supporto per la progettazione di complessi sistemi software. Si veda anche, Strumenti automatici. Chief programmer team una possibile strutturazione del team di sviluppo secondo il paradigma chiuso. Ciclo di vita classico detto anche modello a cascata (waterfall model), un approccio strettamente sequenziale lineare allo sviluppo del software. Classe costrutto fondamentale del paradigma object-oriented per classificare elementi che condividono struttura e funzionalità. Cliente persona o gruppo che ha commissionato il software e che ne sosterrà i costi di sviluppo. Cluster una collezione di componenti di un programma (file di dati, librerie, moduli riutilizzabili, componenti appositamente sviluppati e così via) necessari per implementare una o più funzionalità del prodotto, che viene testata come gruppo. Codifica (anche implementazione) la produzione di codice sorgente. Coesione una misura qualitativa del grado in cui un componente software implementa un unica funzionalità ben definita e focalizzata. Complessità una misura quantitativa della complessità di un programma espressa in termini delle risorse di calcolo necessarie per eseguirlo. Complessità ciclomatica una misura della complessità logica di un programma, cioè dello sforzo per realizzarlo e comprenderlo, usata nei testing white-box. Componente (software) un elemento di base per costruire software in modo modulare, che impacchetta alcune funzionalità attribuendo al blocco un nome. Componente riusabile un elemento della configurazione che può essere riutilizzato in differente contesto. Configurazione (software) la collezione di programmi, documenti e dati che costituiscono un installazione e devono essere tenuti simultaneamente sotto controllo in caso di modifiche.

3 GLOSSARIO 3 Constraint (in UML) vincolo imposto su degli elementi di un modello il cui effetto è quello di restringere l insieme dei sistemi reali che sono effettivamente modellati. Controllo del progetto controllo di qualità e cambiamenti. Correttezza il grado di conformità del programma alle specifiche ed agli obiettivi del cliente. Coupling un indice del grado di connettività di un modulo con gli altri moduli, i dati globali e l ambiente esterno. CSR (Configuration Status Reporting, stesura di report sullo stato delle configurazioni) un attività che aiuta gli sviluppatori a comprendere quali cambiamenti sono stati fatti, quando, da chi e quali sono le conseguenze di tali modifiche. CVS Concurrent Versions System, strumento software ampiamente utilizzato per la gestione delle modifiche, che permette la modifica concorrente di risorse mantenendone le versioni successive. Data Flow Diagram (DFD) una notazione di modellazione per rappresentare una decomposizione funzionale del sistema. Data warehouse un ambiente distinto non direttamente integrato con le singole applicazioni di uso quotidiano, ma che comprende tutti i dati utilizzati dall azienda in un unico archivio informatico. Datatype (in UML) costrutto UML per modellare i tipi di dato. Debugging l attività che consiste nell individuazione della porzione di software affetta da errori (o difetti) rilevati nel software a seguito del suo utilizzo durante lo sviluppo (o da parte del cliente dopo la consegna) al fine di correggerli. Decomposizione funzionale una tecnica usata durante pianificazione, analisi e progettazione; il sistema viene suddiviso gerarchicamente in più sottosistemi fino a raggiungere una situazione in cui ciascun sottosistema è sufficientemente semplice da poter essere affrontato direttamente. Deployment l insieme delle operazioni di installazione, personalizzazione e configurazione del sistema software presso il cliente. Derivazione dei test case la definizione di test case (vedi) da usare per scoprire errori nel software. Design (anche progettazione) un attività che trasforma il modello analitico in un modello maggiormente dettagliato che guiderà l implementazione del software. Design architetturale un insieme di attività volte a fissare l architettura del sistema software. Design modulare (1) un prodotto dell attività di progettazione (o design) che presenta un elevata caratteristica di modularità); (2) un approccio alla progettazione che privilegia la modularità. Design pattern descrizione di specifici elementi del design, quali ad esempio un aggregazione di classi, le relazioni ed i meccanismi che rendono possibili le comunicazioni tra di esse, per risolvere un determinato problema del design. Design preliminare rappresentazione di massima di dati ed architettura del sistema. Design procedurale rappresentazione dei dettagli algoritmici contenuti all interno di un modulo. Diagramma stati-transizioni (STD: State Transition Diagram) una notazione per la modellazione del behaviour. Difetto mancanza di conformità ai requisiti individuato dopo la consegna al cliente.

4 4 GLOSSARIO Dimensione del progetto stima indicativa dell effort complessivo richiesto o del numero di persone necessarie per portarlo a termine. Documentazione attività di raccolta ed elaborazione di informazioni descrittive del processo o del prodotto ed il risultato dell attività stessa. Efficienza di rimozione dei difetti (DRE: Defect Removal Efficiency) un valore fra 0 e 1 che fornisce un indicazione del grado di rimozione degli errori dal software prima della consegna. Effort la quantità di lavoro necessario per svolgere una data attività, spesso misurato in mesi-uomo. Elementi della configurazione software (SCI: Software Configuration Item) i singoli pezzi di codice, documenti e dati che sono gestiti da un SCM. Errore mancanza di conformità ai requisiti individuato prima della consegna al cliente. Extreme programming (XP) un modello di processo agile che enfatizza la pianificazione basata su scenari, consegne incrementali, refactoring, pair programming e testing continuo. Facilità di manutenzione (anche maintainability) l indice della semplicità con cui un programma può essere modificato. Function point (FP) una misura delle funzionalità fornite dal software. Garanzia di qualità del software su basi statistiche (statistical software quality assurance) tecniche per il miglioramento del processo basate sulla misurazione di prodotto e processo ed analisi statistiche dei dati così raccolti. Generazione automatica di codice produzione di codice sorgente a partire da rappresentazioni astratte del software non in codice sorgente attraverso l uso di strumenti automatici. Gestione dei cambiamenti un attività ombrello che permette al team di sviluppo di un progetto software di identificare, valutare, accettare ed effettuare modifiche in maniera controllata e sistematica. Gestione della qualità (SQA: Software Quality Assurance) un attività ad ombrello costituita da un insieme di azioni di ingegneria del software che mirano ad assicurare che il processo di costruzione del software implichi un alta qualità del prodotto finale. Gestione delle configurazioni la gestione dei cambiamenti a programmi, documenti e dati. Go, no-go punto di decisione strategica in cui il manager o il cliente decide se il progetto può proseguire o deve essere abbandonato. Gruppo indipendente (ITG: Independent Test Group) un gruppo di persone che non hanno partecipato allo sviluppo e la cui principale responsabilità è il testing del software. Indicatore una metrica che fornisce indicazioni relative ad un processo di sviluppo software, ad un progetto o al prodotto stesso. Ingegneria dei requisiti le attività richieste per estrarre, elaborare, negoziare, specificare e validare i requisiti del software o del sistema. Ingegneria dei sistemi disciplina focalizzata sull analisi e la progettazione di tutti gli elementi di un prodotto, servizio o tecnologia per la trasformazione di informazioni o per il controllo che siano completi, comprendendo non solo il software ma anche il suo contesto di funzionamento.

5 GLOSSARIO 5 Ingegneria del software una disciplina che si occupa dei processi produttivi e delle metodologie di sviluppo finalizzate alla realizzazione di sistemi software, utilizzando saldi principi di ingegneria per produrre in maniera economica sistemi software complessi ma affidabili, usarli in maniera corretta e mantenerli facendoli evolvere nel tempo. Insieme di base l insieme dei test derivati utilizzando il testing per cammini di base. Integration testing un passo del testing in cui si verifica la correttezza delle interazioni fra più componenti; alla sua conclusione il sistema è stato integrato completamente. Integrità il grado con cui è possibile controllare l accesso al software od ai dati da parte di persone non autorizzate. Interoperabilità il grado di facilità di comunicazione o interfacciamento di un applicazione con altre. ISO 9001:2000 uno standard di qualità che si applica all ingegneria del software. Joint application development (JAD) una specifica tecnica per la raccolta dei requisiti. KISS (Keep It Simple, Stupid!) principio di semplicità per la progettazione software. Livello di astrazione il grado di dettaglio usato in una qualche rappresentazione del software. LOC linee di codice. Manutenzione le attività necessarie per modificare il software dopo la consegna al cliente. MDD (Model Driven Development) tipo di processo di sviluppo software che parte da modelli ad alto livello di astrazione, che poi vengono raffinati e specializzati fino ad arrivare al software funzionante. Messaggio richiesta di eseguire un metodo (un operazione in UML) con i relativi parametri inviata da un oggetto ad un altro. Metodi analitici notazioni ed euristiche per modellare le necessità dei clienti ed i vincoli di sviluppo. Metodi Formali un approccio all ingegneria del software in cui specifiche e design vengono descritti mediante notazioni formali basate sulla matematica. Metodo (1) algoritmo per elaborare i dati degli oggetti di una classe; (2) in UML un metodo è il body che definisce l algoritmo che realizza una operazione di una classe; (3) processo di sviluppo software (vedi). Metrica una misura quantitativa del grado con cui un sistema, un componente od un processo possiede un determinato attributo. Miglioramento dei processi software (Software Process Improvement: SPI) un insieme di attività di ingegneria del software volte a migliorare la prassi relativa alla produzione software all interno di un azienda od organizzazione. Milestone (anche punto di controllo) un istante temporale utilizzato per indicare il progresso durante un progetto. Una milestone è raggiunta quando uno o più elaborati sono stati verificati dal punto di vista della qualità ed approvati formalmente. Misura (1) attività ombrello che definisce e raccoglie le misurazioni per la valutazione del processo, del progetto o del prodotto; (2) un indicazione quantitativa dell ampiezza, della quantità, della dimensione, della capacità o della lunghezza di un determinato attributo di un prodotto o di un processo. Misurazione l atto di determinare una misura, mediante raccolta di dati quantitativi.

6 6 GLOSSARIO Modellazione CRC (Class-Responsibility-Collaborator) un metodo di modellazione object-oriented per identificare ed organizzare le classi rilevanti per i requisiti del sistema o del prodotto. Modellazione dei dati metodo di analisi che modella gli oggetti-dato e le loro relazioni. Modellazione del behaviour l attività di rappresentazione astratta delle modalità, dette stati, che influenzano il behaviour di un applicazione e degli eventi che causano transizioni da stato a stato. Modello rappresentazione di una entità in modo semplificato, astraendo da alcuni aspetti/ dettagli irrilevanti per lo scopo a cui è destinato. Modello a spirale un modello di processo di sviluppo software evolutivo. Modello del design un modello del sistema da realizzare abbastanza dettagliato da poter essere facilmente implementato. Modello del processo di sviluppo software (anche metodo di sviluppo software) tipologia di processi di sviluppo software. Modularità suddivisione di un programma o modello in più componenti chiamati moduli che vengono integrati per soddisfare i requisiti del problema. Monitoraggio del progetto l attività di controllo dell avanzamento del progetto che permette al manager di conoscere in ogni istante lo stato del progetto ed introdurre eventuali correzioni al piano di progetto. Notazione (di modellazione) linguaggio, che generalmente comprende rappresentazioni grafiche, usato per rappresentare modelli. Object-oriented un approccio allo sviluppo software basato sulla classificazione degli elementi base di un sistema e l incapsulazione dei dati insieme alle operazioni per manipolarli. Object-Oriented Analysis (OOA) una tecnica per individuare le classi degli oggetti costituenti un dominio o un sistema, le loro relazioni e struttura base. Object-oriented design (OOD) una tecnica per trasformare un modello analitico realizzato mediante OOA in un corrispondente modello del design. OCL (Object Constraint Language) un linguaggio testuale associato a UML per descrivere espressioni prive di side-effect, dette query, da utilizzare ad esempio nella formulazione di constraint. Oggetti-dato la rappresentazione di un informazione composita destinata ad essere trattata dal software. Oggetto un elemento dotato di identità che incapsula dati ed operazioni su di essi. Open source software di cui viene reso disponibile il codice sorgente. Operazione in UML indica solamente la signature di un metodo (nome, parametri ed eventuale valore di ritorno), mentre l algoritmo può opzionalmente essere dato a parte. Ordine di cambiamento (ECO: Engineering Change Order) una mini-specifica che descrive i cambiamenti da eseguire, i vincoli da rispettare ed i criteri di revisione ed audit. Outsourcing affidamento delle attività di realizzazione del software ad una terza parte o, più in generale, un attività che porta all acquisizione di software o componenti software da una fonte esterna. Pair programming impiego di due persone che collaborano alla stessa workstation per sviluppare il codice garantendo un meccanismo di soluzione in tempo reale dei problemi ed una garanzia di qualità.

7 GLOSSARIO 7 Paradigma GQM (Goal, Question, Metric) una tecnica per identificare metriche significative per ogni parte del processo di sviluppo software; si basa su un obiettivo di misurazione esplicito, un insieme di domande e metriche formulate per aiutare a rispondere a queste domande. PDL (Program Design Language) (anche pseudocodice) un linguaggio che frammischia il vocabolario di una lingua (ad esempio l italiano) e la sintassi generale di un altra (usualmente un linguaggio di programmazione strutturato). Performance testing un testing con lo scopo di provare le prestazioni del software, quali tempi di risposta, capacità di sopportazione del carico (in associazione con stress testing); tale tipo di test viene eseguito in tutti i passi del processo di testing dallo unit testing in avanti. Piano dei test una descrizione della strategia e tattica che saranno adottate durante l attività di testing. Piano di progetto una descrizione degli aspetti gestionali di un progetto che comprende lo scope del progetto, i suoi rischi, le risorse e l effort necessari e lo schedule. Piano di riduzione, monitoraggio e gestione dei rischi (RMMM: Risk Mitigation, Monitoring and Management Risk) un piano che individua i rischi e stabilisce come monitorare il progetto per controllare se si verificano ed, in tal caso, come reagire per mitigarne gli effetti, e per diminuire le probabilità che si verifichino. Planning di progetto l attività che porta alla realizzazione del piano di progetto. Portabilità l impegno richiesto per trasportare un programma da un ambiente, hardware o software, ad un altro. Processo di sviluppo software struttura di riferimento entro la quale si svolgono le attività necessarie alla realizzazione di software di alta qualità. Processo unificato un processo di sviluppo software guidato dagli use case, basato sull architettura, iterativo e incrementale che impiega la notazione UML. Prodotto intermedio qualsiasi documento o elaborato sia prodotto come conseguenza di una o più azioni di ingegneria del software. Produttività quantità di lavoro svolto in un unità di tempo (in media). Progettazione dei dati un attività che trasforma il modello dei dati sviluppato durante l analisi in strutture dati che possano essere implementate. Progettazione dei test case un insieme di tecniche per la derivazione di test case efficaci. Progettazione della user interface un azione di ingegneria del software che identifica gli oggetti e le azioni della user interface, e poi crea uno screen layout che costituisce la base del prototipo della user interface. Program design language, vedi PDL. Programmazione strutturata una metodologia di progettazione procedurale che vincola il numero e il tipo dei costrutti logici utilizzati per rappresentare il dettaglio dell algoritmo, per indirizzare lo sviluppatore alla definizione di algoritmi meno complessi e pertanto più facili da leggere, testare e manutenere. Prototipazione la costruzione di un prototipo del sistema, ovvero di una applicazione con funzionalità e prestazioni ridotte. Qualità il livello a cui un prodotto si conforma ai suoi requisiti sia impliciti che espliciti. Quality function deployment (QFD) una tecnica che traduce i bisogni del cliente in requisiti tecnici per il software, ponendo l accento sulla comprensione di ciò che è prezioso per il cliente ed implementando tali valori tramite il processo di ingegneria.

8 8 GLOSSARIO Raccolta collaborativa di requisiti (anche FAST: Facilitated Application Specification Techniques) una tecnica di riunioni strutturate fra clienti e sviluppatori al fine di individuare i requisiti di base. Raffinamento passo a passo (stepwise refinement) una strategia di progettazione topdown che prevede di sviluppare programmi raffinando successivamente i vari livelli di dettaglio procedurale. Recovery testing un system testing che forza il software ad incorrere in errore in molti modi diversi e verifica che il recupero sia eseguito correttamente. Refactoring processo di modifica di un sistema software in modo tale da non alterarne il behaviour esterno pur migliorandone la struttura interna; spesso eseguito iterativamente durante l evoluzione del design in codice. Regression testing consiste nel rieseguire alcuni dei test già condotti al fine di garantire che le modifiche non abbiano prodotto effetti indesiderati. Reingegnerizzazione una serie di attività che trasformano i sistemi legacy (difficili da manutenere) in software di alta qualità. Report dei cambiamenti fornisce dettagli sulla valutazione di una richiesta di cambiamento dal punto di vista della validità tecnica, dei potenziali effetti collaterali, dell impatto globale sugli altri oggetti della configurazione, sulle funzioni di sistema e sui costi previsti. Reverse engineering sviluppo di modelli o comprensione del design a partire dal software come solo elemento di informazione. Revisione tecnico formale una riunione strutturata diretta da ingegneri software allo scopo di scoprire errori in un prodotto intermedio o finito. Richiesta di cambiamento fornisce dettagli sulla tipologia di cambiamento richiesto, quali motivazioni, previsioni di tempi e costi, analisi preliminare degli impatti e così via. Rischi a livello business l insieme dei potenziali problemi legati al business che possono far fallire il progetto. Rischi del progetto l insieme dei potenziali problemi ed eventi sfavorevoli che possono far fallire il progetto. Risorse tutto ciò che è necessario per completare il progetto, quale personale, hardware, materiali, informazioni, eccetera. Riusabilità il grado in cui un programma [od alcune sue parti] può essere utilizzato di nuovo in altre applicazioni. Riuso a componenti la capacità di riusare una parte di un modello, del codice sorgente, alcuni test case e così via, avendo descritto il sistema in termini di componenti. Scenario descrizione informale di una particolare interazione fra sistema e utenti, dal termine inglese il cui significato originario è la descrizione della scena e dell azione di un opera teatrale. Scheduling di un progetto software l attività di stabilire le tempistiche per il lavoro di sviluppo; comporta la distribuzione dell effort stimato lungo la durata prevista del progetto e la sua suddivisione fra i singoli task. SCM repository (Software Configuration Management repository) insieme di meccanismi e strutture dati per la gestione delle configurazioni software che consentono al team di sviluppo di gestire le modifiche in modo efficace.

9 GLOSSARIO 9 Scope del progetto descrive le funzioni e le caratteristiche che devono essere fornite all utente finale, i dati di input e output, i contenuti che vengono presentati agli utenti come conseguenza dell uso del software e le prestazioni, i vincoli, le interfacce ed il livello di affidabilità che contribuiscono a delimitare il sistema. Security testing un system testing per verificare che i meccanismi di protezione costruiti all interno del sistema lo proteggano efficacemente da usi impropri. Sicurezza (anche security) la capacità del sistema di operare senza ammettere interferenze da attacchi interni o esterni. Side effect (anche effetto collaterale) effetto inatteso dovuto all esecuzione di codice. Six sigma una metodologia rigorosa e disciplinata che utilizza dati ed analisi statistiche per misurare e migliorare le prestazioni operative di un impresa identificando ed eliminando i difetti nella produzione e nei processi di servizio. Smoke testing una prima fase di test grossolano mirato ad escludere malfunzionamenti catastrofici e molto evidenti. Software codice sorgente ed eseguibile, documentazione e dati. Specifica dei requisiti descrive le funzioni e le prestazioni richieste per il sistema computerizzato da sviluppare ed i vincoli che governano il suo sviluppo. Stakeholder qualunque persona o gruppo sia interessata al completamento di un progetto di software. Stile architetturale definisce una categoria di sistemi costruiti usando alcune tipologie di componenti e connettori nonché aderenti ad un insieme di vincoli di integrazione. Stima attività di pianificazione del progetto volta a prevedere l effort, i tempi ed i costi di un progetto software. Stress test un system testing per provare i programmi in situazioni di carico molto alto o addirittura eccessivo. Strumenti automatici di stima strumenti che aiutano a stimare costi ed effort dei progetti. Struttura di un processo un piccolo numero di attività strutturali applicabili a tutti i progetti software, indipendentemente dalle loro dimensioni o dalla loro complessità, e di attività ombrello applicabili all intero processo di sviluppo software. Suddivisione in classi di equivalenza un metodo di testing black-box che suddivide il dominio dei dati di input di un programma in classi di dati, dalle quali derivare test case. Sviluppo Agile (anche modellazione agile) uno stile di ingegneria del software che enfatizza la comunicazione con i clienti, la consegna incrementale di software, metodologie informali basate su prodotti intermedi e team di sviluppo molto motivati e capaci. Sviluppo Aspect-Oriented (AOD: Aspect Oriented Development) un approccio allo sviluppo software che enfatizza i concern (detti anche requisiti sull aspetto che comprendono feature, funzionalità e contenuti informativi) che riguardano l intera architettura e non possono essere incapsulati in singoli componenti. System testing parte dell attività di testing in cui il software e gli altri elementi costituenti il sistema vengono provati come un tutt uno e verificati rispetto ai requisiti funzionali del sistema. Task un insieme di operazioni correlate che determinano un prodotto del lavoro di ingegneria del software, a cui è stato dato un nome identificativo.

10 10 GLOSSARIO Task set un insieme di task, o azioni, di ingegneria del software necessarie al completamento di un attività parte di un processo di sviluppo software. Test case insieme di valori o di condizioni per mezzo di cui un tester determina se il software ha una caratteristica voluta. Testabilità l impegno necessario per stabilire, tramite testing, se un programma svolge la funzione prevista. Testing un insieme di attività volte a trovare errori nel software. Testing dei cicli (loop testing) una tecnica di testing white-box che si concentra esclusivamente sulla validità dei costrutti di ciclo. Testing per cammini di base una tecnica di progettazione di test a white box che usa il flusso algoritmico del programma per derivare i test. Testing white box tecnica di definizione di test case che si basa sulla conoscenza della logica interna di programmazione del software da testare. Time-boxing una tecnica di tempificazione e controllo di progetto che stabilisce limiti inamovibili per il completamento di ogni specifico task del progetto. Tool (anche strumento software) software applicativo utilizzato a supporto delle attività di ingegneria del software, quali ad esempio tool per la modellazione o per il testing. Vedi anche CASE. UML (Unified Modeling Language) una notazione visuale omnicomprensiva per la modellazione di software e sistemi. Unit testing parte della strategia di testing focalizzata sulla verifica dei singoli componenti del sistema. Usabilità (1) l impegno necessario per apprendere ad utilizzare il programma, a prepararne i dati d ingresso e ad interpretarne i dati d uscita; (2) una misura qualitativa della facilità con cui si apprende ad usare una user interface in maniera efficiente e corretta. Use-case una descrizione testuale che definisce una specifica interazione fra utenti e sistema, spesso (ma non sempre) scritta sotto forma di scenario d uso. User-story uno scenario d uso del sistema da parte dell utente usato in Extreme programming per derivare le caratteristiche e le funzionalità del software che deve essere realizzato. Utente la persona che effettivamente utilizza il software o il prodotto in cui il software è contenuto. Validation testing parte del testing che permette di validare i requisiti rispetto al software che si è costruito. Verifica insieme di attività che assicurano che il software realizzi correttamente una determinata funzione. Vincolo una restrizione, o limitazione, imposta sui requisiti o sul design. Walkthrough una tecnica di revisione tecnico formale basata sulla lettura di documenti (requisiti, modelli o codice) allo scopo di simulare l esecuzione della parte di sistema. WBS (Work Breakdown Structure, struttura di ripartizione del lavoro) l insieme di tutti i task richiesti per sviluppare il software; definito come parte del modello di processo. Workflow la sequenza di operazioni di lavoro richieste per completare una qualche attività o lavoro; spesso (ma non sempre) impiegata in connessione con modelli di processo software.

Indice. Prefazione all edizione italiana

Indice. Prefazione all edizione italiana Indice Prefazione all edizione italiana XV Capitolo 1 Il software e l ingegneria del software 1 1.1 L evoluzione del ruolo del software 3 1.2 Il software 5 1.3 La natura mutevole del software 8 1.4 Il

Dettagli

Ingegneria del Software UML - Unified Modeling Language

Ingegneria del Software UML - Unified Modeling Language Ingegneria del Software UML - Unified Modeling Language Obiettivi. Presentare un approccio visuale alla progettazione. Illustrare i vantaggi dell utilizzo di diagrammi nella fase di progettazione. Rispondere

Dettagli

Rational Unified Process Introduzione

Rational Unified Process Introduzione Rational Unified Process Introduzione G.Raiss - A.Apolloni - 4 maggio 2001 1 Cosa è E un processo di sviluppo definito da Booch, Rumbaugh, Jacobson (autori dell Unified Modeling Language). Il RUP è un

Dettagli

Ciclo di Vita Evolutivo

Ciclo di Vita Evolutivo Ciclo di Vita Evolutivo Prof.ssa Enrica Gentile a.a. 2011-2012 Modello del ciclo di vita Stabiliti gli obiettivi ed i requisiti Si procede: All analisi del sistema nella sua interezza Alla progettazione

Dettagli

INGEGNERIA DEL SOFTWARE. Prof. Paolo Salvaneschi

INGEGNERIA DEL SOFTWARE. Prof. Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica INGEGNERIA DEL SOFTWARE Prof. Paolo Salvaneschi 1 Obiettivi Scopi del corso: - Fornire gli elementi di base della disciplina,

Dettagli

UML e (R)UP (an overview)

UML e (R)UP (an overview) Lo sviluppo di sistemi OO UML e (R)UP (an overview) http://www.rational.com http://www.omg.org 1 Riassumento UML E un insieme di notazioni diagrammatiche che, utilizzate congiuntamente, consentono di descrivere/modellare

Dettagli

Modellazione di sistema

Modellazione di sistema Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Modellazione di sistema E. TINELLI Contenuti Approcci di analisi Linguaggi di specifica Modelli di

Dettagli

Considera tutti i requisiti funzionali (use cases) NON deve necessariamente modellare i requisiti non funzionali

Considera tutti i requisiti funzionali (use cases) NON deve necessariamente modellare i requisiti non funzionali Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Progettazione OO E. TINELLI Punto di Partenza Il modello di analisi E una rappresentazione minima del

Dettagli

Principi di Ingegneria del software 5/ed Roger S. Pressman. Indice analitico

Principi di Ingegneria del software 5/ed Roger S. Pressman. Indice analitico Principi di Ingegneria del software 5/ed Indice analitico A ACD (Architectural Context Diagram), 406 activity diagram (UML), 182, 216, 277, 307, 337-338, 437 activity final node, 222 attività, 217 azione,

Dettagli

RUP (Rational Unified Process)

RUP (Rational Unified Process) RUP (Rational Unified Process) Caratteristiche, Punti di forza, Limiti versione del tutorial: 3.3 (febbraio 2007) Pag. 1 Unified Process Booch, Rumbaugh, Jacobson UML (Unified Modeling Language) notazione

Dettagli

metodologie metodologia una serie di linee guida per raggiungere certi obiettivi

metodologie metodologia una serie di linee guida per raggiungere certi obiettivi metodologie a.a. 2003-2004 1 metodologia una serie di linee guida per raggiungere certi obiettivi più formalmente: un processo da seguire documenti o altri elaborati da produrre usando linguaggi più o

Dettagli

Processi (di sviluppo del) software. Fase di Analisi dei Requisiti. Esempi di Feature e Requisiti. Progettazione ed implementazione

Processi (di sviluppo del) software. Fase di Analisi dei Requisiti. Esempi di Feature e Requisiti. Progettazione ed implementazione Processi (di sviluppo del) software Fase di Analisi dei Requisiti Un processo software descrive le attività (o task) necessarie allo sviluppo di un prodotto software e come queste attività sono collegate

Dettagli

Principi dell ingegneria del software Relazioni fra

Principi dell ingegneria del software Relazioni fra Sommario Principi dell ingegneria del software Leggere Cap. 3 Ghezzi et al. Principi dell ingegneria del software Relazioni fra Principi Metodi e tecniche Metodologie Strumenti Descrizione dei principi

Dettagli

UniRoma2 - Ingegneria del Software 1 1

UniRoma2 - Ingegneria del Software 1 1 Object Oriented Analysis - OOA La fase di OOA definisce, secondo un approccio ad oggetti, COSA un prodotto software deve fare (mentre la fase di OOD definisce, sempre secondo un approccio ad oggetti, COME

Dettagli

2. Ciclo di Vita e Processi di Sviluppo

2. Ciclo di Vita e Processi di Sviluppo 2. Ciclo di Vita e Processi di Sviluppo come posso procedere nello sviluppo? Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) 2. Ciclo di Vita e Processi di

Dettagli

Introduzione a UML. Iolanda Salinari

Introduzione a UML. Iolanda Salinari Introduzione a UML Iolanda Salinari Perché modelliamo Un modello è una semplificazione della realtà I modelli ci aiutano a visualizzare un sistema come è o come vorremmo che fosse ci permettono di specificare

Dettagli

Concetti di base di ingegneria del software

Concetti di base di ingegneria del software Concetti di base di ingegneria del software [Dalle dispense del corso «Ingegneria del software» del prof. A. Furfaro (UNICAL)] Principali qualità del software Correttezza Affidabilità Robustezza Efficienza

Dettagli

Ciclo di vita del software

Ciclo di vita del software Ciclo di vita del software Nel corso degli anni, nel passaggio dalla visione artigianale alla visione industriale del software, si è compreso che il processo andava formalizzato attraverso: un insieme

Dettagli

CONCETTI DI BASE PER LA QUALITA

CONCETTI DI BASE PER LA QUALITA CONCETTI DI BASE PER LA QUALITA Misura: è una funzione m: A -> B che associa ad ogni attributo A di un osservabile nel mondo reale o empirico (dominio) un oggetto formale B nel mondo matematico (range);

Dettagli

Piano di gestione della qualità

Piano di gestione della qualità Piano di gestione della qualità Pianificazione della qualità Politica ed obiettivi della qualità Riferimento ad un eventuale modello di qualità adottato Controllo della qualità Procedure di controllo.

Dettagli

Collaudo e qualità del software Quali test eseguire

Collaudo e qualità del software Quali test eseguire Collaudo e qualità del software Relatore Ercole Colonese Roma, Tipologie di test Temi trattati nel libro Modello a V Livelli di testing Tipi di test Test funzionali Test delle funzionalità Test di gestione

Dettagli

Il software: natura e qualità

Il software: natura e qualità Sommario Il software: natura e qualità Leggere Cap. 2 Ghezzi et al. Natura e peculiarità del software Classificazione delle qualità del software Qualità del prodotto e del processo Qualità interne ed esterne

Dettagli

Verifica e Validazione (V & V) Software e difetti. Processo di V & V. Test

Verifica e Validazione (V & V) Software e difetti. Processo di V & V. Test Software e difetti Il software con difetti è un grande problema I difetti nel software sono comuni Come sappiamo che il software ha qualche difetto? Conosciamo tramite qualcosa, che non è il codice, cosa

Dettagli

Quality gate. Sono eventi programmati regolarmente e condotti seguendo una procedura standard

Quality gate. Sono eventi programmati regolarmente e condotti seguendo una procedura standard Quality gate Nei punti chiave del processo di sviluppo del software, viene integrato un insieme di quality gate per monitorare la qualità del prodotto intermedio prima che quest ultimo possa passare al

Dettagli

Introduzione ad UML. Perché modelliamo

Introduzione ad UML. Perché modelliamo Introduzione ad UML Pag. 1 Perché modelliamo Un modello è una semplificazione della realtà I modelli ci aiutano a visualizzare un sistema come è o come vorremmo che fosse ci permettono di specificare la

Dettagli

PIANIFICAZIONE E REALIZZAZIONE DI UN SISTEMA INFORMATIVO 147 6/001.0

PIANIFICAZIONE E REALIZZAZIONE DI UN SISTEMA INFORMATIVO 147 6/001.0 PIANIFICAZIONE E REALIZZAZIONE DI UN SISTEMA INFORMATIVO 147 6/001.0 PIANIFICAZIONE E REALIZZAZIONE DI UN SISTEMA INFORMATIVO ELEMENTI FONDAMENTALI PER LO SVILUPPO DI SISTEMI INFORMATIVI ELABORAZIONE DI

Dettagli

Scope Management. IT Project Management. Lezione 3 Scope Management. Monitoring del progetto (Earned Value) Creazione diagrammi Pert/CPM/Gantt

Scope Management. IT Project Management. Lezione 3 Scope Management. Monitoring del progetto (Earned Value) Creazione diagrammi Pert/CPM/Gantt IT Project Management Lezione 3 Scope Management Federica Spiga A.A. 2009-2010 1 Check list del PM Identificare i requisiti del cliente Monitoring del progetto (Earned Value) Identificare i deliverable

Dettagli

Realizzazione di un applicazione per la stesura di un Business Plan

Realizzazione di un applicazione per la stesura di un Business Plan tesi di laurea Anno Accademico 2006/2007 relatore Ch.mo prof. Porfirio Tramontana candidato Vincenzo Malzone Matr. 534/1173 Obiettivi Realizzare un applicazione desktop per la stesura di un documento di

Dettagli

Strumenti di modellazione. Gabriella Trucco

Strumenti di modellazione. Gabriella Trucco Strumenti di modellazione Gabriella Trucco Linguaggio di modellazione Linguaggio formale che può essere utilizzato per descrivere (modellare) un sistema Il concetto trova applicazione soprattutto nell

Dettagli

AOT Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Unified Process. Prof. Agostino Poggi

AOT Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Unified Process. Prof. Agostino Poggi AOT Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Unified Process Prof. Agostino Poggi Unified Process Unified Software Development Process (USDP), comunemente chiamato

Dettagli

Lezione 1 Ingegneria del Software II- Introduzione e Motivazione. Ingegneria del Software 2 Introduzione e Richiami 1

Lezione 1 Ingegneria del Software II- Introduzione e Motivazione. Ingegneria del Software 2 Introduzione e Richiami 1 Lezione 1 Ingegneria del Software II- Introduzione e Motivazione Ingegneria del Software 2 Introduzione e Richiami 1 Riferimenti bibliografici I. Sommerville Ingegneria del Software 8a edizione Cap.1 R.

Dettagli

Corso di Ingegneria del Software Paolo Bottoni

Corso di Ingegneria del Software Paolo Bottoni Corso di Ingegneria del Software Paolo Bottoni Lezione 13: Gestione del progetto: Rischi e garanzia di qualità Obiettivi Discutere rischio e processo di gestione rischio Discutere approccio alla qualità

Dettagli

Processo parte VII. Strumenti. Maggiore integrazione. Sviluppo tecnologico

Processo parte VII. Strumenti. Maggiore integrazione. Sviluppo tecnologico Strumenti Processo parte VII Leggere Cap. 9 Ghezzi et al. Strumenti software che assistono gli ingegneri del software in tutte le fasi del progetto; in particolare progettazione codifica test Evoluzione

Dettagli

Introduzione. Il software e l ingegneria del software. Marina Mongiello Ingegneria del software 1

Introduzione. Il software e l ingegneria del software. Marina Mongiello Ingegneria del software 1 Introduzione Il software e l ingegneria del software Marina Mongiello Ingegneria del software 1 Sommario Il software L ingegneria del software Fasi del ciclo di vita del software Pianificazione di sistema

Dettagli

Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica. Ingegneria del Software.

Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica. Ingegneria del Software. Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica Ingegneria del Software La fase di Test Giulio Destri Ing. del Software: Test - 1 Scopo del modulo Definire

Dettagli

Cos è l Ingegneria del Software?

Cos è l Ingegneria del Software? Cos è l Ingegneria del Software? Corpus di metodologie e tecniche per la produzione di sistemi software. L ingegneria del software è la disciplina tecnologica e gestionale che riguarda la produzione sistematica

Dettagli

Ciclo di vita dimensionale

Ciclo di vita dimensionale aprile 2012 1 Il ciclo di vita dimensionale Business Dimensional Lifecycle, chiamato anche Kimball Lifecycle descrive il framework complessivo che lega le diverse attività dello sviluppo di un sistema

Dettagli

I lucidi messi a disposizione sul sito del corso di Analisi e progettazione del software NON sostituiscono il libro di testo

I lucidi messi a disposizione sul sito del corso di Analisi e progettazione del software NON sostituiscono il libro di testo Luca Cabibbo Analisi e Progettazione del Software Sviluppo iterativo, evolutivo e agile Capitolo 2 marzo 2015 Lo sviluppo iterativo dovrebbe essere utilizzato solo per i progetti che si desidera che vadano

Dettagli

TECNOLOGIE DELL INFORMAZIONE E DELLA COMUNICAZIONE PER LE AZIENDE

TECNOLOGIE DELL INFORMAZIONE E DELLA COMUNICAZIONE PER LE AZIENDE TECNOLOGIE DELL INFORMAZIONE E DELLA COMUNICAZIONE PER LE AZIENDE Materiale di supporto alla didattica Tecnologie dell informazione e della comunicazione per le aziende CAPITOLO 3: Progettazione e sviluppo

Dettagli

Introduzione all Ingegneria del Software

Introduzione all Ingegneria del Software Introduzione all Ingegneria del Software Alessandro Martinelli alessandro.martinelli@unipv.it 10 Dicembre 2013 Introduzione all Ingegneria del Software Ingegneria del Software Modelli di Sviluppo del Software

Dettagli

Software Testing. Lezione 1 Introduzione al processo di testing. Federica Spiga. federica_spiga@yahoo.it. A.A. 2010-2011 Autori: A. Bei/F.

Software Testing. Lezione 1 Introduzione al processo di testing. Federica Spiga. federica_spiga@yahoo.it. A.A. 2010-2011 Autori: A. Bei/F. Software Testing Lezione 1 Introduzione al processo di testing Federica Spiga federica_spiga@yahoo.it A.A. 2010-2011 Autori: A. Bei/F.Spiga 1 2 Definizione di Software Testing Glen Myers -The Art of Software

Dettagli

Gestione Requisiti. Ingegneria dei Requisiti. Requisito. Tipi di Requisiti e Relativi Documenti. La gestione requisiti consiste in

Gestione Requisiti. Ingegneria dei Requisiti. Requisito. Tipi di Requisiti e Relativi Documenti. La gestione requisiti consiste in Ingegneria dei Requisiti Il processo che stabilisce i servizi che il cliente richiede I requisiti sono la descrizione dei servizi del sistema Funzionalità astratte che il sistema deve fornire Le proprietà

Dettagli

13. Ciclo di Vita e Processi di Sviluppo

13. Ciclo di Vita e Processi di Sviluppo 13. Ciclo di Vita e Processi di Sviluppo come posso procedere nello sviluppo? Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) 13. Ciclo di Vita e Processi

Dettagli

Gestire un progetto di introduzione di sistemi informativi di SCM. 1 Marco Bettucci Gestione della produzione II - LIUC

Gestire un progetto di introduzione di sistemi informativi di SCM. 1 Marco Bettucci Gestione della produzione II - LIUC Gestire un progetto di introduzione di sistemi informativi di SCM 1 Che cos è un progetto? Una serie complessa di attività in un intervallo temporale definito... finalizzate al raggiungimento di obiettivi

Dettagli

Corso di Laurea Triennale in Ingegneria Informatica. Corso di Ingegneria del software A. A. 2004-2005. Marina Mongiello

Corso di Laurea Triennale in Ingegneria Informatica. Corso di Ingegneria del software A. A. 2004-2005. Marina Mongiello Corso di Laurea Triennale in Ingegneria Informatica Corso di Ingegneria del A. A. 2004-2005 1 La progettazione È applicata indipendentemente dal modello di processo utilizzato. Parte dal punto in cui sono

Dettagli

Sistemi elettronici per la sicurezza dei veicoli: presente e futuro. Il ruolo della norma ISO 26262 per la Sicurezza Funzionale

Sistemi elettronici per la sicurezza dei veicoli: presente e futuro. Il ruolo della norma ISO 26262 per la Sicurezza Funzionale La Sicurezza Funzionale del Software Prof. Riccardo Sisto Ordinario di Sistemi di Elaborazione delle Informazioni Dipartimento di Automatica e Informatica Sicurezza Funzionale del Vari Aspetti Sicurezza

Dettagli

02: Project Management

02: Project Management 02: Project Management Le tre P del project management Persone motivate / esperte SEI PM-CMM (People Management Capability Maturity Model) assunzione / selezione addestramento / cultura di gruppo stipendio

Dettagli

Software project management. www.vincenzocalabro.it

Software project management. www.vincenzocalabro.it Software project management Software project management Sono le attività necessarie per assicurare che un prodotto software sia sviluppato rispettando le scadenze fissate rispondendo a determinati standard

Dettagli

TECNICO SUPERIORE PER IL SISTEMA INFORMATIVO AZIENDALE

TECNICO SUPERIORE PER IL SISTEMA INFORMATIVO AZIENDALE ISTRUZIONE E FORMAZIONE TECNICA SUPERIORE SETTORE INDUSTRIA E ARTIGIANATO TECNICO SUPERIORE PER IL SISTEMA INFORMATIVO AZIENDALE STANDARD MINIMI DELLE COMPETENZE TECNICO PROFESSIONALI DESCRIZIONE DELLA

Dettagli

La Progettazione del Software

La Progettazione del Software del Software Definizioni IEEE Metodologie di progettazione Principi di progettazione Tecniche di progettazione (top down e bottom up) Moduli e criteri di modularizzazione: coesione ed accoppiamento, indipendenza

Dettagli

ALLEGATO 1.4 CICLI DI VITA DEL SOFTWARE

ALLEGATO 1.4 CICLI DI VITA DEL SOFTWARE ALLEGATO 1.4 CICLI DI VITA DEL SOFTWARE Allegato 1.4 Cicli di vita del software Pagina 1 di 16 Indice 1 CICLI DI VITA... 3 1.1 Ciclo di Sviluppo... 3 1.2 Ciclo di Manutenzione... 5 2 LE FASI PROGETTUALI...

Dettagli

Modellazione di processi

Modellazione di processi Luca Cabibbo Architetture Software Dispensa ASW 910 ottobre 2014 La modellazione è un mestiere e a volte è un arte. William C. Burkett 1 -Fonti [Papazoglou] Papazoglou, Web Services Principles and Technology,

Dettagli

WebRatio. L altra strada per il BPM. Web Models s.r.l. www.webratio.com contact@webratio.com 1 / 8

WebRatio. L altra strada per il BPM. Web Models s.r.l. www.webratio.com contact@webratio.com 1 / 8 WebRatio L altra strada per il BPM Web Models s.r.l. www.webratio.com contact@webratio.com 1 / 8 Il BPM Il BPM (Business Process Management) non è solo una tecnologia, ma più a grandi linee una disciplina

Dettagli

Progetto di Informatica III

Progetto di Informatica III Progetto di Informatica III Sviluppo Agile (Agile Software Development) Patrizia Scandurra Università degli Studi di Bergamo a.a. 2008-09 Sommario Metodologia agile Agile Manifesto Che cos è l agilità

Dettagli

7. Architetture Software

7. Architetture Software 7. Architetture Software progettare la struttura Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) 7. Architetture Software 1 / 20 Scopo della fase di design

Dettagli

Object Oriented Programming

Object Oriented Programming OOP Object Oriented Programming Programmazione orientata agli oggetti La programmazione orientata agli oggetti (Object Oriented Programming) è un paradigma di programmazione Permette di raggruppare in

Dettagli

UML - Unified Modeling Language

UML - Unified Modeling Language UML E CASI D USO UML - Unified Modeling Language Linguaggio stardardizzato per identificare e modellizzare le specifiche di un S.I. Coerente con il paradigma della programmazione ad oggetti Definito a

Dettagli

Ingegneria del Software 2

Ingegneria del Software 2 Politecnico di Milano Anno Accademico 2010/2011 Ingegneria del Software 2 Corso della Prof.ssa Elisabetta Di Nitto Stefano Invernizzi Facoltà di Ingegneria dell Informazione Corso di Laurea Magistrale

Dettagli

Ingegneria del Software. Processi di Sviluppo

Ingegneria del Software. Processi di Sviluppo Ingegneria del Software Processi di Sviluppo Ingegneria del Software: Tecnologia Stratificata tools metodi processi Focus sulla qualità Ingegneria del Software: Tecnologia Stratificata (2) Qualità Elemento

Dettagli

Linguaggi e Paradigmi di Programmazione

Linguaggi e Paradigmi di Programmazione Linguaggi e Paradigmi di Programmazione Cos è un linguaggio Definizione 1 Un linguaggio è un insieme di parole e di metodi di combinazione delle parole usati e compresi da una comunità di persone. È una

Dettagli

ALLEGATO 1.4 CICLI DI VITA DEL SOFTWARE

ALLEGATO 1.4 CICLI DI VITA DEL SOFTWARE ALLEGATO 1.4 CICLI DI VITA DEL SOFTWARE Allegato 1.4 Cicli di vita del software Pagina 1 di 20 Indice 1 CICLI DI VITA... 3 1.1 Ciclo di Sviluppo...3 1.2 Ciclo di Manutenzione...5 2 LE FASI PROGETTUALI...

Dettagli

ALLEGATO 1.4 CICLI DI VITA DEL SOFTWARE

ALLEGATO 1.4 CICLI DI VITA DEL SOFTWARE ALLEGATO 1.4 CICLI DI VITA DEL SOFTWARE Allegato 1.4 Cicli di vita del software Pagina 1 di 20 Indice 1 CICLI DI VITA... 3 1.1 Ciclo di Sviluppo... 3 1.2 Ciclo di Manutenzione... 5 2 LE FASI PROGETTUALI...

Dettagli

Architettura SW Definizione e Notazioni

Architettura SW Definizione e Notazioni Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Stili Architetturali E. TINELLI Architettura SW Definizione e Notazioni Definizione ANSI/IEEE Std Std1471-2000

Dettagli

Reti e sistemi informativi II Il ruolo delle IT nell organizzazione

Reti e sistemi informativi II Il ruolo delle IT nell organizzazione Reti e sistemi informativi II Il ruolo delle IT nell organizzazione Prof. Andrea Borghesan & Dr.ssa Francesca Colgato venus.unive.it/borg borg@unive.it Ricevimento: mercoledì dalle 10.00 alle 11.00 Modalità

Dettagli

Sistemi Informativi I Lezioni di Ingegneria del Software

Sistemi Informativi I Lezioni di Ingegneria del Software 4 Codifica, Test e Collaudo. Al termine della fase di progettazione, a volte anche in parallelo, si passa alla fase di codifica e successivamente alla fase di test e collaudo. In questa parte viene approfondita

Dettagli

Ingegneria del Software

Ingegneria del Software Appunti di Ingegneria del Software Rosario Terranova v 1.0.4 http://rosarioterranova.com/ Sommario Introduzione... 4 Cos è l ingegneria del software... 4 Caratteristiche del software e differenze dagli

Dettagli

3. DOCUMENTO DI DEFINIZIONE DEI REQUISITI FORNITO DAL CLIENTE 3.1 Richieste del cliente

3. DOCUMENTO DI DEFINIZIONE DEI REQUISITI FORNITO DAL CLIENTE 3.1 Richieste del cliente T4 Contenuto di un analisi dei requisiti Presentate un indice di un documento di analisi dei requisiti e descrivete in modo sintetico contenuto e ruolo di ogni capitolo. INDICE 1. STORIA DELLE REVISIONI

Dettagli

Laboratorio di Progettazione di Sistemi Software Introduzione

Laboratorio di Progettazione di Sistemi Software Introduzione Laboratorio di Progettazione di Sistemi Software Introduzione Valentina Presutti (A-L) Riccardo Solmi (M-Z) Indice degli argomenti Introduzione all Ingegneria del Software UML Design Patterns Refactoring

Dettagli

Progettazione orientata agli oggetti Introduzione a UML

Progettazione orientata agli oggetti Introduzione a UML Progettazione orientata agli oggetti Introduzione a UML Claudia Raibulet raibulet@disco.unimib.it Il processo di sviluppo software Rappresenta un insieme di attività per la specifica, progettazione, implementazione,

Dettagli

Sistemi Informativi DERIVAZIONE DEI REQUISITI FUNZIONALI. Obiettivi Specifica dei Requisiti Assembly Lines Esercizi

Sistemi Informativi DERIVAZIONE DEI REQUISITI FUNZIONALI. Obiettivi Specifica dei Requisiti Assembly Lines Esercizi Sistemi Informativi DERIVAZIONE DEI REQUISITI FUNZIONALI Obiettivi Specifica dei Requisiti Assembly Lines Esercizi Obiettivi Nelle lezioni precedenti abbiamo descritto come modellare i requisiti funzionali

Dettagli

ANALISI E PROGETTAZIONE OBJECT ORIENTED. Lorenzo Saladini

ANALISI E PROGETTAZIONE OBJECT ORIENTED. Lorenzo Saladini ANALISI E PROGETTAZIONE OBJECT ORIENTED Lorenzo Saladini 1. Introduzione In questo capitolo vengono presentati alcuni degli elementi necessari al corretto sviluppo di sistemi informatici secondo una metodologia

Dettagli

TECNICO SUPERIORE PER LO SVILUPPO DEL SOFTWARE

TECNICO SUPERIORE PER LO SVILUPPO DEL SOFTWARE ISTRUZIONE E FORMAZIONE TECNICA SUPERIORE SETTORE I.C.T. Information and Communication Technology TECNICO SUPERIORE PER LO SVILUPPO DEL SOFTWARE STANDARD MINIMI DELLE COMPETENZE TECNICO PROFESSIONALI DESCRIZIONE

Dettagli

Automazione Industriale 4- Ingegneria del Software

Automazione Industriale 4- Ingegneria del Software Automation Robotics and System CONTROL Università degli Studi di Modena e Reggio Emilia Automazione Industriale 4- Ingegneria del Software Cesare Fantuzzi (cesare.fantuzzi@unimore.it) Ingegneria Meccatronica

Dettagli

PIANO DI LAVORO (a.s. 2014/2015) Prof.ssa Andrea Luppichini Prof. Marco Fiorentini DISCIPLINA Informatica

PIANO DI LAVORO (a.s. 2014/2015) Prof.ssa Andrea Luppichini Prof. Marco Fiorentini DISCIPLINA Informatica lllo Istituto Tecnico Commerciale Statale e per Geometri E. Fermi Pontedera (Pi) Via Firenze, 51 - Tel. 0587/213400 - Fax 0587/52742 http://www.itcgfermi.it E-mail: mail@itcgfermi.it PIANO DI LAVORO (a.s.

Dettagli

Insegnamento di Gestione e Organizzazione dei Progetti A.A. 2008/9

Insegnamento di Gestione e Organizzazione dei Progetti A.A. 2008/9 Insegnamento di Gestione e Organizzazione dei Progetti A.A. 2008/9 Lezione 15: P.M.: metodologie di progetto Prof.ssa R. Folgieri email: folgieri@dico.unimi.it folgieri@mtcube.com 1 Modelli di conduzione

Dettagli

Ingegneria dei Requisiti

Ingegneria dei Requisiti Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Ingegneria dei Requisiti E. TINELLI Contenuti I requisiti del software Documento dei requisiti I processi

Dettagli

Il paradigma OO e le relative metodologie di progettazione. Programmazione orientata agli oggetti

Il paradigma OO e le relative metodologie di progettazione. Programmazione orientata agli oggetti Alessio Bechini - Corso di - Il paradigma OO e le relative metodologie di progettazione Metodologie OO Programmazione orientata agli oggetti La programmazione ad oggetti (OOP) è un paradigma di programmazione

Dettagli

Poca documentazione: uso di Story Card e CRC (Class Responsibility Collabor) Collaborazione con il cliente rispetto alla negoziazione dei contratti

Poca documentazione: uso di Story Card e CRC (Class Responsibility Collabor) Collaborazione con il cliente rispetto alla negoziazione dei contratti Sviluppo Agile [Cockburn 2002] Extreme Programming (XP) [Beck 2000] Sono più importanti auto-organizzazione, collaborazione, comunicazione tra membri del team e adattabilità del prodotto rispetto ad ordine

Dettagli

Studio di fattibilità (2) Identificazione ed analisi dei requisiti

Studio di fattibilità (2) Identificazione ed analisi dei requisiti Prime fasi nella produzione del software &RUVR GL,QJHJQHULD GHO 6RIWZDUH Capitolato d appalto o doc. formale di richiesta prodotto Incontri con il committente e/o interviste Esercitazione Studio del dominio

Dettagli

3. SOFTWARE MANAGEMENT

3. SOFTWARE MANAGEMENT 3. SOFTWARE MANAGEMENT Introdurre caratteristiche e problematiche della direzione di progetto software (software management) Discutere la pianificazione di un progetto e la temporizzazione (scheduling)

Dettagli

Corso di Progettazione di sistemi multimediali

Corso di Progettazione di sistemi multimediali Corso di Progettazione di sistemi multimediali prof. Pierluigi Feliciati a.a.2012/13 Modulo 0 Progettare, sistemi, multimedialità: Definizioni, strumenti, ciclo di vita dei progetti, figure professionali

Dettagli

Architettura del software: dai Casi d Uso al Modello

Architettura del software: dai Casi d Uso al Modello Architettura del software: dai Casi d Uso al Modello Lorenzo Barbieri Sono un Senior Trainer/Consultant in ObjectWay SpA (www.objectway.it), specializzato in architetture Microsoft.NET, Windows, SQL Server,

Dettagli

ISIPM Base. Project Management epmq: Project Management Fundamentals (ISIPM Base)

ISIPM Base. Project Management epmq: Project Management Fundamentals (ISIPM Base) ISIPM Base Project Management epmq: Project Management Fundamentals (ISIPM Base) Gruppo B Conoscenze Tecniche e Metodologiche Syllabus da 2.1.1 a 2.7.1 1 Tema: Gestione Ambito del Progetto e Deliverable

Dettagli

Gestione dello sviluppo software Modelli Agili

Gestione dello sviluppo software Modelli Agili Università di Bergamo Facoltà di Ingegneria GESTIONE DEI SISTEMI ICT Paolo Salvaneschi A4_3 V1.1 Gestione dello sviluppo software Modelli Agili Il contenuto del documento è liberamente utilizzabile dagli

Dettagli

Paradigma object-oriented

Paradigma object-oriented Paradigma object-oriented Dati & Comportamento Implementazione trasparente dei servizi Facile mantenimento Omogeneità nella gerarchia dati-funzioni Procedural approach OO approach Data hierarchy Replaced

Dettagli

Processo parte III. Modello Code and fix. Modello a cascata. Modello a cascata (waterfall) Leggere Sez. 7.4 Ghezzi et al.

Processo parte III. Modello Code and fix. Modello a cascata. Modello a cascata (waterfall) Leggere Sez. 7.4 Ghezzi et al. Modello Code and fix Processo parte III Leggere Sez. 7.4 Ghezzi et al. Modello iniziale Iterazione di due passi scrittura del codice correzione degli errori Problemi: dopo una serie di cambiamenti, la

Dettagli

REPERTORIO DELLE QUALIFICAZIONI PROFESSIONALI DELLA REGIONE CAMPANIA

REPERTORIO DELLE QUALIFICAZIONI PROFESSIONALI DELLA REGIONE CAMPANIA REPERTORIO DELLE QUALIFICAZIONI PROFESSIONALI DELLA REGIONE CAMPANIA SETTORE ECONOMICO PROFESSIONALE 1 SETTORE MECCANICA;PRODUZIONE E MANUTENZIONE DI MACCHINE;IMPIANTISTICA Processo Lavorazioni aeronautiche

Dettagli

Leveling delle attività

Leveling delle attività Leveling delle attività Metodi per risolvere i conflitti di allocazione delle attività Allocare in modo non-uniforme Ritardare un attività Prima le attività con slack più alto Nel caso di attività con

Dettagli

Pattern Architetturali e Analisi Architetturale

Pattern Architetturali e Analisi Architetturale Pattern Architetturali e Analisi Architetturale Ingegneria del Software parte II Andrea Bei Pattern Architetturali Pattern Architetturale Descrive il modello organizzativo strutturale di un sistema software

Dettagli

!"#$%&&'()#*%+%+!"#$"',,'()#*%+ -")%*&'&'+'$.)+-$$%&&) !"#$%&&'(%)'*+%",#-%"#.'%&'#/0)-+#12"+3,)4+56#7+#.')8'9

!#$%&&'()#*%+%+!#$',,'()#*%+ -)%*&'&'+'$.)+-$$%&&) !#$%&&'(%)'*+%,#-%#.'%&'#/0)-+#12+3,)4+56#7+#.')8'9 !"#$%&&'()#*%+%+!"#$"',,'()#*%+ -")%*&'&'+'$.)+-$$%&&)!"#$%&&'(%)'*+%",#-%"#.'%&'#/0)-+#12"+3,)4+56#7+#.')8'9 Slide 1 Paradigmi di Programmazione! Un linguaggio supporta uno stile di programmazione se

Dettagli

5 Gestione dei progetti software. 5.1 Attività gestionale. Sistemi Informativi I Lezioni di Ingegneria del Software

5 Gestione dei progetti software. 5.1 Attività gestionale. Sistemi Informativi I Lezioni di Ingegneria del Software 5 Gestione dei progetti software. Dopo aver completato lo studio del ciclo di vita del software, in questa parte vengono discussi gli aspetti gestionali della produzione del software. Vengono esaminate

Dettagli

La disciplina che cura un approccio sistematico, disciplinato e quantificabile allo sviluppo, all operatività ed alla manutenzione del software

La disciplina che cura un approccio sistematico, disciplinato e quantificabile allo sviluppo, all operatività ed alla manutenzione del software Ingegneria del software (software engineering) La branca dell'ingegneria che si occupa della realizzazione di sistemi software. La disciplina che cura un approccio sistematico, disciplinato e quantificabile

Dettagli

sviluppo di dispositivi medici

sviluppo di dispositivi medici La soluzione Rational per lo sviluppo di dispositivi medici Indice 1 La soluzione Rational per lo sviluppo di dispositivi medici 3 Flussi di lavoro di sviluppo sistemi per dispositivi medici 7 Gestione

Dettagli

LEZIONE 9 - Linguaggi di Modellazione & UML

LEZIONE 9 - Linguaggi di Modellazione & UML Laboratorio di Ingegneria del Software a.a. 2013-2014 LEZIONE 9 - Linguaggi di Modellazione & UML Catia Trubiani Gran Sasso Science Institute (GSSI), L Aquila catia.trubiani@gssi.infn.it Cosa sono? 2 1

Dettagli

BiblioTech - Personal Digital Library

BiblioTech - Personal Digital Library Albana Gaba Alessandro Pegoraro Mirco Bocedi Fabio Giuseppe Strozzi Gruppo 8 Obiettivo Creare un software efficiente per la catalogazione di documenti digitali in categorie personalizzabili dall utente.

Dettagli

TECNICO SUPERIORE PER LE APPLICAZIONI INFORMATICHE

TECNICO SUPERIORE PER LE APPLICAZIONI INFORMATICHE ISTRUZIONE E FORMAZIONE TECNICA SUPERIORE SETTORE I.C.T. Information and Communication Technology TECNICO SUPERIORE PER LE APPLICAZIONI INFORMATICHE STANDARD MINIMI DELLE COMPETENZE TECNICO PROFESSIONALI

Dettagli

Il PROCESSO UNIFICATO

Il PROCESSO UNIFICATO Corsi di laurea triennale/magistrale in Ingegneria Informatica Corsi di Ingegneria del software, Modellazione ed Implementazione di un Sistema Software per la gestione informatizzata di un ristorante:

Dettagli

Finalità del ciclo di vita nel System Engineering

Finalità del ciclo di vita nel System Engineering Fasi del ciclo di vita overview Finalità del ciclo di vita nel System Engineering Modularità Individuazione più agevole delle componenti riutilizzabili Ciclo di vita Esaustività Certezza di coprire tutte

Dettagli

Indice. Prefazione alla seconda edizione italiana XVII. Introduzione. Parte 1 Introduzione all UML e all UP 1

Indice. Prefazione alla seconda edizione italiana XVII. Introduzione. Parte 1 Introduzione all UML e all UP 1 00PrPag 19-07-2006 15:22 Pagina V Prefazione alla seconda edizione italiana Introduzione XV XVII Parte 1 Introduzione all UML e all UP 1 Capitolo 1 UML 3 1.1 Contenuto del capitolo 3 1.2 Cos è l UML? 3

Dettagli

Progetto software 2008/2009. Docente Marianna Nicolosi Asmundo

Progetto software 2008/2009. Docente Marianna Nicolosi Asmundo Progetto software 2008/2009 Docente Marianna Nicolosi Asmundo Obiettivi del corso Coinvolgervi nello sviluppo di un progetto software in cui mettere a frutto le conoscenze che avete acquisito durante i

Dettagli