Ingegneria del software versione 1.0.5

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Ingegneria del software versione 1.0.5"

Transcript

1 Ingegneria del software versione Appunti 19 luglio 2006 Indice 1 Ciclo di vita del software Processo di sviluppo del software Modelli Agile Dierenze con altri modelli Quando usarlo Iterativo - Incrementale RAD Vantaggi Svantaggi Extreme Programming Planning Game Small Relesases Customers on-site Test First Refactoring Simplicity System Metaphor Pair Programming Collective Code Ownership Continous Integration Standards Overtime: 40 hour week JUnit RUP RUP best practices Ciclo di vita del Progetto Il modello a Cascata - WaterFall Il modello a Spirale Il modello a Release UXF 13 3 Metriche codice sorgente LOC eloc lloc DLOC SLOC Vantaggi Svantaggi UMM 15 5 XMI 15 6 COTS 16 7 SCM Goal FPA 17 9 COCOMO Basic COCOMO COCOMO II CORBA DFD Linguaggio Z Esempio - Denizione sistema Esempio - Add

2 2 Indice 14 Diagrammi UML Diagramma casi d'uso Diagramma delle classi Diagramma delle sequenze Diagramma delle collaborazioni Diagramma di stato Diagramma delle attività Diagramma dei componenti Diagramma di distribuzione dei componenti (deployment) 24 Bibliograa 25

3 1 Ciclo di vita del software 3 1 Ciclo di vita del software L'espressione ciclo di vita del software si riferisce al modo in cui una metodologia di sviluppo o un modello di processo scompongono l'attività di realizzazione di prodotti software in sottoattività fra loro coordinate, il cui risultato nale è il prodotto stesso e tutta la documentazione a esso associato[1]. Esistono varie fasi: 1. Analisi: ovvero l'indagine preliminare sul contesto in cui il prodotto software deve inserirsi, sulle caratteristiche che deve esibire, ed eventualmente su costi e aspetti logistici della sua realizzazione; questa fase può essere scomposta in sottoattività quali: (a) analisi di fattibilità, (b) analisi e modellazione del dominio applicativo, (c) analisi dei requisiti. 2. Progetto: in cui si deniscono le linee essenziali della struttura del sistema da realizzare, in funzione dei requisiti evidenziati dall'analisi e dal documento nale da essa creato. Anche questa fase può essere scomposta in sottoattività: (a) progetto architetturale, (b) al progetto dettagliato. In questa fase verrà sviluppando un documento che permetterà di avere una denizione della struttura di massima (architettura di alto livello) e una denizione delle caratteristiche dei singoli componenti (moduli) 3. Implementazione 4. Testing (a) testing dei singoli moduli, (b) testing del sistema integrato, (c) test funzionali, (d) test di performance, (e) test di accettazione, (f) test d'installazione. 5. Manutenzione

4 4 1 Ciclo di vita del software 1.1 Processo di sviluppo del software L'UML (Unied Modelling Language), ad esempio, è un linguaggio di modellazione, utilizzato dai processi per realizzare, organizzare, documentare i prodotti realizzati dalle fasi di cui il processo si compone. Coloro che, individualmente o in gruppo, lavorano allo sviluppo o alla modica di un software, adottano necessariamente un certo approccio nel modo di relazionarsi con i propri clienti/utenti, nell'organizzare il proprio lavoro, nella scelta delle tecniche da utilizzare. Adottano un processo [1]. Il ciclo di sviluppo del software, nella maggior parte dei casi, è iterativo, e ogni iterazione produce una sua release. Elenchiamo di seguito le fasi principali che possono far parte di ogni singola iterazione: 1. Specica dei requisiti: ciò che viene richiesto dal committente 2. Analisi e Design dove per analisi si intende lo studio di cosa deve fare il sistema (punto di vista logico) e per design lo studio di come il sistema deve venire implementato (punto di vista tecnico). Negli ultimi anni, la distinzione tradizionale tra analisi e design è entrata in crisi. 3. Implementazione 4. Integrazione e test 1.2 Modelli Esistono molti modelli per lo sviluppo del software: iterativo ( ), Waterfall (a cascata) (1970), RAD ( ), spirale (1985), RUP (1998), Extreme Programming (XP) (1999). Agile (2001),

5 1 Ciclo di vita del software Agile Agile è una metodologia di sviluppo del software, un framework. Ci sono più tipi di agile software per sviluppare questo metodo, questi possono essere trovati nell'organizzazione no-prot The Agile Alliance. Questo metodo tenta di minimizzare i rischi dello sviluppo con piccole timeboxes, chiamate iterazioni, da una a quattro settimane. Ogni iterazione include delle fasi: planning, requirements analysis, design, coding, testing e documentation. Mentre una iterazione non garantisce il rilascio di un prodotto, l'agile software project, si propone di riuscire a rilasciare un nuovo software ad ogni iterazione. Alla ne di ogni iterazione, il tema ssa le priorità del progetto Dierenze con altri modelli <Agile> <Iterative> <Waterfall> <-*-**> Adaptive...Predictive Adaptive methods: si concentra sull'adattarsi velocemente ai cambiamenti. Predictive methods: si concentra sulla pianicazione dettagliata e futura del progetto Quando usarlo Più di 20 sviluppatori, distanza tra glil sviluppatori, mission- and life-critical eorts, command-and-control company cultures. 1.4 Iterativo - Incrementale Il modello iterativo, e incrementale, risponde alle debolezze dei modelli watefall. I due modelli di sviluppo iterativo più conosciuti sono RUP (Rational Unied Process), e DSDM (Dynamic Systems Development Method). Questo modello è una parte essenziale dell'xp (Extreme Programming) e tutti gli altri agile software frameworks.

6 6 1 Ciclo di vita del software 1.5 RAD (Rapid Application Development) RAD nato come risposta al metodologia non-agile, come il modello waterfall. Il problema con i precedenti modelli era quello che i requisiti cambiassero prima della conclusione del progetto, con il risultato di creare sistemi non utilizzabili Vantaggi Svantaggi accresce la velocità e qualità di sviluppo Questa velocità è dovuta all'uso di tool quali CASE 1 Per qualità nel modello RAD si intende il grado con il quale l'applicazione nita si riscontra con le aspettative del cliente, ed i costi di manutenzione bassi. Come svantaggi, riduce la scalabilità e le features. La scalabilità è ridotta perché questo modello parte da un prototipo e si evolve no alla applicazione nita; mentre riduce le features questo è dovuto al time boxing, le features vengono inserite tardi nelle versioni nali della release. 1.6 Extreme Programming L'extreme programming XP, è un modo di programmare che segue determinate regole, per cercare di ottimizzare il più possibile lavoro fatto dai programmatori [2]. Alcune di queste regole sono di seguito riportate: 1. Planning Game 2. Small Releases (Piccole release) 3. Customers on-site (Cliente sul posto) 4. Test First 5. Refactorig 6. Simplicity 7. System Metaphor 8. Pair Programming 9. Collective Code Ownership 10. Continous Integration 11. Code Standards 12. Overtime: 40 hour week L'obiettivo di questo tool è quello di catturare i requisiti e descriverli come codice nel modo più veloce possibile.

7 1 Ciclo di vita del software Planning Game Come Pianicare: Creare delle priorità (con il cliente) Stimare la dicoltà dei lavori (Lo sviluppatore) Lavorare in task paralleli, si è più veloci (Lo sviluppatore) Pianicare insieme i lavori ed i vari task all'inizio (Sviluppatore-Cliente) Small Relesases Signica piccole release frequenti, in genere prima dell'xp, si faceva il software per intero e poi si dava al committente validato; mentre ora si cerca di dare subito qualcosa al cliente, in modo che capisca subito se il software è corretto secondo le sue speciche; questo evita di fare lavoro inutile. In genere per il cliente viene sviluppato subito il 10% del programma in modo tale che sia veloce il riscontro in caso di problemi. Questa tecnica, evita la nascita e la morte poi di determinati software, con la perdita quindi di tempo e denaro, inoltre fa subito vedere se ci sono errori 2 o difetti 3 nei software prodotti Customers on-site Il committente deve essere tenuto sempre in stretto contatto con gli sviluppatori. In genere succede che dopo aver ottenuto l'ordine di progettare un software, il programmatore ed il cliente non si sentono quasi più no a software terminato: questo non deve succedere. Con l'xp, lo sviluppatore chiede subito al committente cosa sono le sue priorità, i moduli che devono essere sviluppati prima, e come devono essere sviluppati. Coinvolgere il cliente nei test per sapere se il software per lui è corretto, mostrare se il programma per lui è user-friendly Test First In genere i test vengono eseguiti dopo lo sviluppo della applicazione. Mentre in XP, il development è guidato dai test, questa può sembrare una perdita di 2 Per errore si intende una dimenticanza del programmatore Es.: un errore di battitura... 3 Per difetto si intende un problema nei risultati ottenuti dal software, risultati inattesi. (Altrimenti detto bug, Fault.)

8 8 1 Ciclo di vita del software tempo ma poi alla ne: si ha si, una perdita di tempo iniziale, ma si recupera sulla ne del progetto; mentre con l'approccio tradizionale si ha una velocità maggiore all'inizio per poi decelerare alla ne nella fase di Testing Refactoring Con questo termine, si intende modicare il codice, modicarne la struttura, il usso di controllo ma non il risultato. Ad esempio rinominare un metodo, aggiungere metodi a delle classi(ma senza cambiare il risultato del modulo). Il refactoring serve in generale per migliorare la qualità del codice. Divisione di un grande metodo in più parti Simplicity Cercare di tenere il progetto più semplice possibile System Metaphor Usare metafore vicine al dominio del committente. Se il cliente è un produttore di automobili, cercare di parlare dello sviluppo del software in termini di produzione di automobili, questo è una forma per cercare di capire nel miglior cosa deve fare il software prodotto Pair Programming Con il termine pair programming si intende, la programmazione in gruppo, per esempio in due, questa viene richiesta quando il compito è particolarmente dicile; su lavori critici si lavora insieme Collective Code Ownership Il codice scritto è di tutti gli sviluppatori; se si trova un errore nel programma la colpa è dell'intero team. Bisogna dire che essendo il codice di tutti, chi vuole può fare tutte le modiche, se secondo lui un modulo non è corretto lo può modicare, a patto che usi i CVS (Concurrent Version System,controllo di versione); inoltre al termine della modica il modulo modicato devo dare lo stesso risultato nei test del modulo vecchio; in altre parole non devo alterare i risultati che il modulo vecchio dava. Se non è così, allora in quel caso, la colpa è del programmatore che ha svolto la modica, il quale non si è preoccupato di vedere se i test erano ancora corretti; in conclusione, più libertà ma anche più responsabilità.

9 1 Ciclo di vita del software Continous Integration In genere il test di integrità viene fatto alla ne dello sviluppo dei singoli moduli con una frequenza molto alta di errori. L'XP dice che questo test deve essere fatto in modo più frequente proprio per evitare problemi di integrazione alla ne del progetto, molto più dicili da trovare e sistemare Standards Cercare di scrivere codice il più possibile in modo standard: es in java, i nomi delle classi iniziano con la lettera maiuscola, mentre per i nomi dei metodi si usano dei verbi Overtime: 40 hour week Per uno sviluppatore, le ore di straordinario, (overtime), sono permesse solo per una settimana, altrimenti c'è il rischio di commettere errori, mentre l'orario lavorativo normale non deve superare le 40 ore settimanali JUnit E' uno strumento che serve per eseguire Test di unità in Java. Utilizza la libreria Java riessione (per gestire le classi). Terminologia: Unit Test: una classe che testa un'altra classe Caso di Test: chiama un metodo con un input particolare e si osserva se il risultato è corretto Test Suite: una serie di casi di test Test Runner: serve per far partire i test Junit, introduce una nuova classe: nomeclassetest. Inoltre introduce due classi con nomi ssi: setup: inizializza la classe per eseguire i test teardown: libera la classe Junit utilizza le asserzioni per produrre il risultato dei test e vedere se sono corretti. Esempio in Java1:

10 10 1 Ciclo di vita del software 1 public class ES { 3 int mcd ( int x, int y) { 5... } 7 } 9 /* C r e o un ' a l t r a c l a s s e */ 11 public class ES TEST { 13 void testmcd () { 15 mcd (10,2) ; // Mi a s p e t t o c h e r e s t i t u i s c a 2 } 17 asserttrue ( mcd (10,2) ==2) ; asserttrue ( mcd (6,12) ==6) ; 19 } 21 /* * * * T i p i di A s s e r z i o n i * * * */ 23 static void asserttrue ( boolean test ) static void asserttrue ( String message, boolean test ) 25 static void assertfalse ( boolean test ) 27 static void assertfalse ( String message, boolean test ) 29 static void assertequals ( expected, actual ) static void assertequals ( String message, expected, actual ) Codice 1: Esempio in pseudolinguaggio Java Limiti e problemi del Testing con JUnit È una buona idea scrivere metodi che controllano lo stato di un oggetto Non è facile testare il codice delle GUI Con questo metodo si controlla l'output ma ha volte non è facile scrivere codice per questo controllo Non è facile testare svariati metodi che lavorano in parallelo per dare un risultato

11 1 Ciclo di vita del software 11 Sono comunque state proposte possibili soluzioni 1.7 RUP RUP (Rational Unied Process) è un software molto noto di sviluppo iterativo. RUP deve essere visto non come attraverso una singola prospettiva di lavoro, ma piuttosto un framework operativo adattabile alle esigenze RUP best practices 1. Sviluppo del software in modo iterativo, 2. gestione dei requisiti, 3. verica della qualità del codice, 4. CVS controllo dei cambiamenti apportati al software. RUP usa il modello iterativo per le seguenti ragioni: Il processo di integrazione viene fatto passo dopo passo durante lo sviluppo del software, limitandosi a farlo per pochi elementi alla volta, l'implementazione viene fatta per moduli, facilitando il riuso del software, se i requisiti cambiano è possibile adattarsi, l'architettura del software viene migliorata ad ogni release Ciclo di vita del Progetto È formato da quattro fasi vedi Figura 1 a Pagina 12: 1. Inception Phase (a) Stakeholder denizione, stima dei costi, tempi, (b) comprensione dei requisiti, (c) priorità costi/tempi, rischio, sviluppo del processo, (d) studio del prototipo architetturale che si è studiato, (e) spese attuali vs spese pianicate. 2. Elaboration Phase

12 12 1 Ciclo di vita del software (a) Generazione casi d'uso i casi d'uso completati all'80% (b) descrizione dell'architettura software, (c) piano di sviluppo per coprire tutto il progetto. 3. Construction Phase, 4. Transition Phase. Figura 1: Ciclo di vita del progetto Il modello a Cascata - WaterFall Figura 2: Modello WaterFall L'output di ogni fase è l'input della successiva; il principale limite di questo modello, è il fatto di non poter tornare indietro; se c'è un problema nel software che viene scoperto tardi bisogna ricominciare Il modello a Spirale In questo modello vedi Figura 3 a pagina 13, si crea un prototipo, attraverso le varie fasi: analisi dei requisiti, specica... e poi si fa l'analisi dei rischi

13 2 UXF 13 Figura 3: Modello a Spirale anche con il cliente per vedere se si può proseguire. Il principale vantaggio dei modelli a spirale e Release e che il software è in continua evoluzione [3] Il modello a Release In questo modello, si crea una prima release da sottoporre al cliente per ottenere un primo feedback; per poi correggerla o svilupparla ancora. Alla ne di tutte le release si ottiene il prodotto nale. 2 UXF UXF (UML exchange Format) è un modello di interscambio di formati per UML(Unied Modeling Language) basato su XML. Permette una alta inter operabilità; il team che sviluppa codice tramite questo modello, può riutilizzare e scambiare le informazioni tramite lo standard XML. XML è un sosticato sottoinsieme dell'sgml (Standard Generalized Markup Language: ISO 8879) i principali vantaggi sono: Indipendenza dal vendor (vender independence), Estensibilità, Possibilità di rappresentare delle informazioni complesse,

14 14 3 Metriche codice sorgente Leggibilità umana (Human readability), Interoperabilità tra i tools di sviluppo. 3 Metriche codice sorgente 3.1 LOC Line of code (LOC). LOC sono usate per stimare i tempi ed i costi. 3.2 eloc Eective line of code (ELOC), è la misura di tutte le line di codice che non sono commenti, spazi bianchi, e parentesi. Questa metrica rappresenta la quantità del lavoro. 3.3 lloc Logical lines of code (ILOC) rappresenta una metrica per gli statements; es.: for. Esempio: Source code line LOC eloc lloc Comment Blank if (x<10) // test range x x x { x // update y coordinate x x y = x + 1; x x x } x DLOC Developed line of code (DLOC). Include tutto il programma ed gli statement. Esiste anche il Kilo line of code (KLOC). 3.5 SLOC SLOC (Source lines of code) è una metrica usata per misurare il codice di un certo programma. SLOC viene usato per stimare lo sforzo richiesto per sviluppare un certo software.

15 5 XMI Vantaggi Automatizzare il conteggi delle linee di codice tramite tools Una metrica intuitiva: le righe di un software possono essere visionate Svantaggi 1. Non si può quanticare il costo, di un software contando le linee di codice, in altre parole contando solo la fase di codica la quale occupa solo il 33% - 35% di tutti il processo, 2. non ci permette di catturare questa diversità: un programmatore può scrivere poche righe di codice ma molto signicative, mentre un secondo programmatore ne scrive molte ma meno signicative e con più errori, 3. linguaggi dierenti, 4. GUI, tramite queste interfacce, il programmatore può fare copia ed incolla del codice già scritto in precedenza. 4 UMM UMM (UN/CEFACT's 4 Modeling Methodology), è una metodologia di modellazione la quale si sviluppa tramite UN/CEFACT. 5 XMI XMI (XML Metadata Interchange) è uno standard OMG per lo scambio di metadati tramite il linguaggio XML. Può essere usato per qualsiasi metadato purché questo possa essere espresso tramite MOF (Meta-Object Facility). L'uso più comune di XMI è per l'interscambio di modelli UML, i quali possono essere usati anche per altri linguaggi. XML - extensible Markup Language, W3C standard. UML - Unied Modeling Language, OMG modeling standard. 4 (The United Nations Centre for Trade facilitation and Electronic Business) UN/CE- FACT ha come scopo migliorare il business, e l'organizzazione amministrativa, sviluppo e transazioni economiche, scambio di prodotti e servizi; contribuisce allo sviluppo del commercio globale.

16 16 7 SCM MOF - Meta Object Facility, OMG DSL per la specica di metamodelli. MOF Mapping a XMI 6 COTS (Commercial o-the-shelf); COTS è un termine applicato nell'ambito sia dei prodotti software che hardware, il quale dice quando questo prodotto è pronto e disponibile alla vendita al pubblico. GOTS: government o-the-shelf, MOTS: modiable o-the-shelf, oppure military o-the-shelf. La motivazione che spinge ad utilizzare dei componenti COTS, è che riduce il tempo ed i costi di sviluppo del software; perché i componenti possono comprati e non progettati da zero. A volte tuttavia i costi di integrazione e la dipendenza da terze parti possono accrescere i costi. 7 SCM SCM (Software Conguration Management) è una parte del CM (Conguration Management). Risponde a queste domande: 1. Qualcuno fa qualcosa, come possiamo riprodurla? Spesso il problema si evolve e non è possibile riprodurlo in modo identico, ma servono dei cambiamenti incrementali. Tradizionalmente CM si è concentrato sul controllo e la creazione di prodotti semplici. Ai nostri giorni, la sda è quella fare il minor numero di incrementi; valutando la complessità del sistema che si sta sviluppando. 7.1 Goal Conguration Identication- Con quale codice noi lavoriamo? Conguration Control- Controllo delle release e eventuali cambiamenti. Status Accounting- Registrazione e report dei componenti.

17 8 FPA 17 Review- Assicurarsi della completezza dei vari componenti. Build Management- Gestione dei processi e dei tool utilizzati nel progetto FPA FPA (Function Point Analysis) è un metodo che misura la dimensione funzionale di un sistema informativo. Questo viene fatto osservando le transazioni funzionali e logiche del les rilevanti per gli utenti nel loro business [5]. Necessità di alcuni passi: 1. Identicare le funzioni del sistema che sono rilevanti per gli utenti 2. Determinare la complessità di ogni funzione 3. Contare le funzioni di tipo di dati per determinare il loro contributi al numero dei function point non pesati 4. Contare le funzioni di tipo transazionale per determinare il loro contributi al numero dei function point non pesati 5. Determinare il fattore di aggiustamento del valore 6. Calcolare il numero di function point pesati. Step 1 - FPA distingue tra cinque tipi di funzioni utente: 1. Internal Logical File (ILF) 2. External Interface File (EIF) 3. External Input (EI) 4. External Output (EO) 5. External Inquiry (EQ) Step 2 - FPA distingue tra tre tipi di complessità: 1. Low 2. Average 3. High

18 18 9 COCOMO 9 COCOMO COCOMO (COnstructive COst MOdel) è un modello progettato da Barry Boehm, per dare una stima del numero di uomini-mese che prenderanno parte allo sviluppo di un software. COCOMO consiste in una gerarchia di tre crescenti livelli di dettaglio: 1. Basic COCOMO: è statico, sforzo e costo dello sviluppo di un software come funzione della dimensione di un programma espressa nella sua stima delle linee di codice. 2. Intermediate COCOMO: sforzo come funzione della dimensione del programma e i cost drivers che includono subjective assessment of product, hardware, personale e project attributes. 3. Detailed COCOMO: incorpora tutte le caratteristiche della versione intermedia con un impatto dei cost driver ad ogni passo (analisi, progetto, codica... ), del processo di produzione del software. 9.1 Basic COCOMO Può essere applicato a tre tipologie di progetto: 1. Organic projects: sono relativamente piccoli, semplici progetti, 2. Semi-detached projects: sono una via di mezzo in termini di dimensione e complessità, 3. Embedded projects: sono progetti che devono essere sviluppati con hardware, software. L'equazione del basic COCOMO: E = a b (KLOC) b b D = c b (E) d b P = E/D dove E è lo sforzo (persone-mese), D è il tempo di sviluppo in un mese, KLOC è la stima del numero di line di codice per i progetto (espresse in migliaia), P è il numero di persone richieste. I coecienti a b, b b, c b, d b sono dati Tabella 1 a Pagina 19.

19 10 COCOMO II COCOMO II Software Project a b b b c b d b Organic Semi-detached Embedded Tabella 1: Coecienti Basic COCOMO Nel COCOMO II vengono apportate modiche al COCOMO I. Vengono deniti tre livelli di COCOMO, che corrispondono a tre classi di applicazioni e utilizzano informazioni reperibili in tre diversi momenti del ciclo di vita: 1. Application Composition: è il settore di chi utilizza primitive di alto livello per programmare (ad esempio GUI, spreadsheet) o si riferisce alla fase in cui viene generalmente eettuata una prototipazione per risolvere problemi ad alto rischio (interfacce utente, interazione software/sistema, prestazioni, maturità della tecnologia); vengono utilizzati gli Object Points, in quanto si ritiene che siano disponibili in maniera adabile in questa fase 2. Early Design: si passa alla fase di progetto, con l'esplorazione di alternative per le architetture; vengono usati i Function Points, il linguaggio e alcuni driver di costo in numero limitato, poiché in questa fase non è ancora noto molto a riguardo del progetto 3. Post-Architecture: si giunge alla fase di sviluppo tradizionale; si ottiene la stessa precisione di COCOMO 1; vengono usati LOC, Function Points e linguaggio con 17 cost drivers e 5 fattori di scala, che sostituiscono i fattori del modello precedente e i modelli Organic, Semidetachede Embedded Inoltre, il modello COCOMO II utilizza modelli non lineari per riuso e reingegnerizzazione permette il trattamento delle economie di scala apporta modiche ai moltiplicatori originari si avvale di un modello Bayesiano per i parametri del modello valutati da esperti

20 20 13 Linguaggio Z 11 CORBA L'OMG (Object Management Group), decise di promuovere il CORBA (Common Object Request Broker Architecture) una architettura distribuita orientata algi oggetti. Usando CORBA, un client può in modo trasparente (es.: senza conoscere l'implementazione del server in dettaglio) invocare un metodo su un server in due modi: in modo statico oppure tramite una invocazione dinamica. 12 DFD Un DFD (data ow diagram) è una rappresentazione graca di un usso di dati attraverso un sistema. Un diagramma di usso può essere utilizzato per visualizzare il data processing. 13 Linguaggio Z È un linguaggio per la specica formale, il quale usa la notazione matematica per descrivere in un modo preciso le proprietà e le informazioni che un sistema deve avere, senza conoscere in che modo queste proprietà vengono archiviate [7]; descrive che cosa il sistema deve fare senza sapere come [4]. Una importante caratteristica del linguaggio Z è quella di decomporre la specica in piccole parti chiamati schemas. Gli schema sono usati per descrivere aspetti statici e dinamici. Gli aspetti statici includono: lo stato che può essere occupato, le relazioni tra invarianti che sono mantenute quando un sistema si muove da uno stato all'altro. Gli aspetti dinamici includono: le operazioni possibili, le relazioni tra i loro input e output, i cambiamenti di stato.

21 13 Linguaggio Z Esempio - Denizione sistema Denire formalmente tramite il linguaggio Z un software che gestisce il nome e la data di compleanno di un database di persone. BirthdayBook known: P NAME birthday: NAME DATE known: dom Birthday known è il set dei record nomi con il compleanno birthday è la funzione la quale applicata ad un nome restituisce il compleanno L'ultima riga, è l'invariante in quanto è una relazione vera in ogni stato del sistema. Un possibile stato del sistema è dato da: known = { Primo, Michele, Claudia } birthday = { Primo 25Mar, Michele 20Dec, Claudia 20Dec }. L'invariate è rispettato in quanto il dominio dei birthday record è esattamente uguale a quello di known cioè Esempio - Add Aggiungiamo al sistema la possibilità di inserire nuovi dati. Lo schema è AddBirthday. AddBirthday BirthdayBook name?: NAME date?: DATE name? / known Birthday' =Birthday {name? date? } known è il set dei record nomi con il compleanno birthday è la funzione la quale applicata ad un nome restituisce il compleanno

22 22 14 Diagrammi UML 14 Diagrammi UML UML è un linguaggio di progettazione; UML è una evoluzione di modelli già esistenti, forti anità con ER (Entity - Relationship), FC (Flow Chart), modelli object oriented. Diagrammi UML: Livello logico: diagramma dei casi d'uso (use case) diagramma delle classi (class) diagramma di sequenza (sequence) diagramma di collaborazione (collaboration) diagramma di transizione di stato (state) diagramma delle attività (activity) Livello sico: diagramma dei componenti (component) diagramma di distribuzione dei componenti (deployment) 14.1 Diagramma casi d'uso Questi descrivono l'interazione tra attori e sistema, non la logica interna della funzione; sono infatti espressi in forma testuale, comprensibile anche per i non addetti ai lavori e possono essere deniti a livelli diversi (sistema o parti del sistema). Ragionare sui casi d'uso aiuta a scoprire i requisiti funzionali Diagramma delle classi Il diagramma delle classi, rappresenta le classi e gli oggetti che compongono il sistema, ed i relativi attributi ed operazioni [6, 1]. Specica, mediante le associazioni, i vincoli che legano tra loro le classi; può essere denito in fasi diverse (analisi, disegno di dettaglio) ed inoltre può rappresentare diverse tipologie di oggetti (oggetti business, oggetti di interfaccia,... ).

23 14 Diagrammi UML Diagramma delle sequenze Il diagramma delle sequenze, serve ad evidenziare il modo in cui uno scenario (uno specico percorso in un caso d'uso) viene risolto dalla collaborazione tra un insieme di oggetti; specica la sequenza dei messaggi che gli oggetti si scambiano inoltre può specicare nodi decisionali e iterazioni. Diagrammi di sequenza e diagrammi di collaborazione esprimono informazioni simili, ma le evidenziano in modo diverso Diagramma delle collaborazioni Il diagramma delle collaborazioni, specica gli oggetti che collaborano tra loro in un dato scenario, ed i messaggi che si indirizzano. La sequenza dei messaggi è meno evidente che nel diagramma di sequenza, mentre sono più evidenti i legami tra gli oggetti; può essere utilizzato in fasi diverse (analisi, disegno di dettaglio), e rappresentare diverse tipologie di oggetti Diagramma di stato Specica il ciclo di vita degli oggetti di una classe, denendo le regole che lo governano; quando un oggetto si trova in un certo stato può essere interessato da determinati eventi (e non da altri). Come risultato di un evento l'oggetto può passare ad un nuovo stato (transizione) Diagramma delle attività Serve a rappresentare sistemi di workow, oppure la logica interna di un processo (di qualunque livello, dai business process ai processi di dettaglio). Permette di rappresentare processi paralleli e la loro sincronizzazione; è un caso particolare di diagrammi di stato, in cui ogni stato è uno stato di attività Diagramma dei componenti Evidenzia l'organizzazione e le dipendenze esistenti tra componenti; i componenti sono moduli software eseguibili, dotati di identità e con un'interfaccia ben specicata, inoltre i componenti (come a livello logico le classi) possono essere raggruppati in package.

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 progetto

Ciclo di vita del progetto IT Project Management Lezione 2 Ciclo di vita del progetto Federica Spiga A.A. 2009-2010 1 Ciclo di vita del progetto Il ciclo di vita del progetto definisce le fasi che collegano l inizio e la fine del

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

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

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

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

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

Il modello di ottimizzazione SAM

Il modello di ottimizzazione SAM Il modello di ottimizzazione control, optimize, grow Il modello di ottimizzazione Il modello di ottimizzazione è allineato con il modello di ottimizzazione dell infrastruttura e fornisce un framework per

Dettagli

15 volte più veloce. per ridurre TCO e time-to-market

15 volte più veloce. per ridurre TCO e time-to-market 15 volte più veloce per ridurre TCO e time-to-market Instant Developer aumenta la produttività dei team di sviluppo riducendo il TCO e i tempi di realizzazione delle soluzioni software Instant Developer

Dettagli

Metodologie Agili per lo sviluppo di applicazioni Internet Distribuite. Agile Group DIEE, Università di Cagliari www.agile.diee.unica.

Metodologie Agili per lo sviluppo di applicazioni Internet Distribuite. Agile Group DIEE, Università di Cagliari www.agile.diee.unica. Metodologie Agili per lo sviluppo di applicazioni Internet Distribuite Agile Group DIEE, Università di Cagliari www.agile.diee.unica.it Agile Group Agile Group, gruppo di ricerca su Ingegneria del SW,

Dettagli

Ingegneria del Software

Ingegneria del Software Ingegneria del Software Processi di Sviluppo Agile Origini dello Sviluppo Agile Proposta di un gruppo di sviluppatori che rilevava una serie di criticità degli approcci convenzionali: Troppa rigidità dei

Dettagli

La progettazione centrata sull utente nei bandi di gara

La progettazione centrata sull utente nei bandi di gara Progetto PerformancePA Ambito A - Linea 1 - Una rete per la riforma della PA La progettazione centrata sull utente nei bandi di gara Autore: Maurizio Boscarol Creatore: Formez PA, Progetto Performance

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

Scenario di Progettazione

Scenario di Progettazione Appunti del 3 Ottobre 2008 Prof. Mario Bochicchio SCENARIO DI PROGETTAZIONE Scenario di Progettazione Il Committente mette a disposizione delle risorse e propone dei documenti che solitamente rappresentano

Dettagli

Dispensa di Informatica I.1

Dispensa di Informatica I.1 IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.

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

Modellazione dei dati in UML

Modellazione dei dati in UML Corso di Basi di Dati e Sistemi Informativi Modellazione dei dati in UML Angelo Montanari Dipartimento di Matematica e Informatica Università degli Studi di Udine Introduzione UML (Unified Modeling Language):

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

Stefania Marrara - Esercitazioni di Tecnologie dei Sistemi Informativi. Integrazione di dati di sorgenti diverse

Stefania Marrara - Esercitazioni di Tecnologie dei Sistemi Informativi. Integrazione di dati di sorgenti diverse Politecnico di Milano View integration 1 Integrazione di dati di sorgenti diverse Al giorno d oggi d la mole di informazioni che viene gestita in molti contesti applicativi è enorme. In alcuni casi le

Dettagli

Ciclo di vita del software: strumenti e procedure per migliorarne la sicurezza. Roberto Ugolini roberto.ugolini@postecom.it

Ciclo di vita del software: strumenti e procedure per migliorarne la sicurezza. Roberto Ugolini roberto.ugolini@postecom.it Ciclo di vita del software: strumenti e procedure per migliorarne la sicurezza Roberto Ugolini 1 Il processo di sviluppo sicuro del codice (1/2) Il processo di sviluppo sicuro del codice () è composto

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

Dispensa di database Access

Dispensa di database Access Dispensa di database Access Indice: Database come tabelle; fogli di lavoro e tabelle...2 Database con più tabelle; relazioni tra tabelle...2 Motore di database, complessità di un database; concetto 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

Gestione del workflow

Gestione del workflow Gestione del workflow Stefania Marrara Corso di Tecnologie dei Sistemi Informativi 2004/2005 Progettazione di un Sistema Informativo Analisi dei processi Per progettare un sistema informativo è necessario

Dettagli

Calcolatori Elettronici A a.a. 2008/2009

Calcolatori Elettronici A a.a. 2008/2009 Calcolatori Elettronici A a.a. 2008/2009 PRESTAZIONI DEL CALCOLATORE Massimiliano Giacomin Due dimensioni Tempo di risposta (o tempo di esecuzione): il tempo totale impiegato per eseguire un task (include

Dettagli

Sequence Diagram e Collaboration Diagram

Sequence Diagram e Collaboration Diagram Sequence Diagram e Collaboration Diagram Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania Sommario Interaction

Dettagli

La strada per sviluppare più rapidamente: Unit Test & Continuous Integration

La strada per sviluppare più rapidamente: Unit Test & Continuous Integration La strada per sviluppare più rapidamente: Unit Test & Continuous Integration by Enrico Zimuel Senior Consultant & Architect Zend Technologies Email: enrico.z@zend.com Blog: http://www.zimuel.it/blog Copyright

Dettagli

Il database management system Access

Il database management system Access Il database management system Access Corso di autoistruzione http://www.manualipc.it/manuali/ corso/manuali.php? idcap=00&idman=17&size=12&sid= INTRODUZIONE Il concetto di base di dati, database o archivio

Dettagli

UML un linguaggio universale per la modellazione del software. Adriano Comai

UML un linguaggio universale per la modellazione del software. Adriano Comai UML un linguaggio universale per la modellazione del software Adriano Comai 2 Finalmente uno standard per l analisi e disegno OO? L'obiettivo è ambizioso. Lo Unified Modeling Language (UML) vuole essere,

Dettagli

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi Indice generale OOA Analisi Orientata agli Oggetti Introduzione Analisi Metodi d' analisi Analisi funzionale Analisi del flusso dei dati Analisi delle informazioni Analisi Orientata agli Oggetti (OOA)

Dettagli

I MODULI Q.A.T. PANORAMICA. La soluzione modulare di gestione del Sistema Qualità Aziendale

I MODULI Q.A.T. PANORAMICA. La soluzione modulare di gestione del Sistema Qualità Aziendale La soluzione modulare di gestione del Sistema Qualità Aziendale I MODULI Q.A.T. - Gestione clienti / fornitori - Gestione strumenti di misura - Gestione verifiche ispettive - Gestione documentazione del

Dettagli

FONDAMENTI di INFORMATICA L. Mezzalira

FONDAMENTI di INFORMATICA L. Mezzalira FONDAMENTI di INFORMATICA L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software

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

(Esercizi Tratti da Temi d esame degli ordinamenti precedenti)

(Esercizi Tratti da Temi d esame degli ordinamenti precedenti) (Esercizi Tratti da Temi d esame degli ordinamenti precedenti) Esercizio 1 L'agenzia viaggi GV - Grandi Viaggi vi commissiona l'implementazione della funzione AssegnaVolo. Tale funzione riceve due liste

Dettagli

e-dva - eni-depth Velocity Analysis

e-dva - eni-depth Velocity Analysis Lo scopo dell Analisi di Velocità di Migrazione (MVA) è quello di ottenere un modello della velocità nel sottosuolo che abbia dei tempi di riflessione compatibili con quelli osservati nei dati. Ciò significa

Dettagli

L o. Walter Ambu http://www.japsportal.org. japs: una soluzione agile (www.japsportal.org)

L o. Walter Ambu http://www.japsportal.org. japs: una soluzione agile (www.japsportal.org) L o JAPS: una soluzione Agile Walter Ambu http://www.japsportal.org 1 Lo sviluppo del software Mercato fortemente competitivo ed in continua evoluzione (velocità di Internet) Clienti sempre più esigenti

Dettagli

Dimensione di uno Spazio vettoriale

Dimensione di uno Spazio vettoriale Capitolo 4 Dimensione di uno Spazio vettoriale 4.1 Introduzione Dedichiamo questo capitolo ad un concetto fondamentale in algebra lineare: la dimensione di uno spazio vettoriale. Daremo una definizione

Dettagli

Architetture Applicative

Architetture Applicative Alessandro Martinelli alessandro.martinelli@unipv.it 6 Marzo 2012 Architetture Architetture Applicative Introduzione Alcuni esempi di Architetture Applicative Architetture con più Applicazioni Architetture

Dettagli

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo. DALLE PESATE ALL ARITMETICA FINITA IN BASE 2 Si è trovato, partendo da un problema concreto, che con la base 2, utilizzando alcune potenze della base, operando con solo addizioni, posso ottenere tutti

Dettagli

Metodologie di programmazione in Fortran 90

Metodologie di programmazione in Fortran 90 Metodologie di programmazione in Fortran 90 Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2007/2008 Fortran 90: Metodologie di programmazione DIS - Dipartimento di

Dettagli

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella.

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella. Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella.net Prestazioni Si valutano in maniera diversa a seconda dell

Dettagli

Programmazione a Oggetti Modulo B

Programmazione a Oggetti Modulo B Programmazione a Oggetti Modulo B Progetto Dott. Alessandro Roncato 4/10/2011 Progetto Da svolgere singolarmente Scadenza consegna: una settimana prima dello scritto; Valutazione in base a: Corretta compilazione

Dettagli

PROCEDURA OPERATIVA PER LA GESTIONE DELLO SVILUPPO DEL SOFTWARE BM-33T

PROCEDURA OPERATIVA PER LA GESTIONE DELLO SVILUPPO DEL SOFTWARE BM-33T Proc. 23 Pag. 1 di 8 PROCEDURA OPERATIVA PER LA GESTIONE DELLO SVILUPPO DEL SOFTWARE BM-33T 1. SCOPO... 2 2. APPLICABILITÀ... 2 3. DOCUMENTI DI RIFERIMENTO... 2 3.1. Norme e leggi di riferimento... 2 3.2.

Dettagli

Processi principali per il completamento del progetto

Processi principali per il completamento del progetto Piano di progetto È un documento versionato, redatto dal project manager per poter stimare realisticamente le risorse, i costi e i tempi necessari alla realizzazione del progetto. Il piano di progetto

Dettagli

Project Planning. Politecnico di Milano. Progetto di Ingegneria del Software 2. 15 novembre 2011. Elisabetta Di Nitto Raffaela Mirandola

Project Planning. Politecnico di Milano. Progetto di Ingegneria del Software 2. 15 novembre 2011. Elisabetta Di Nitto Raffaela Mirandola Politecnico di Milano Progetto di Ingegneria del Software 2 Project Planning Autori: Claudia Foglieni Giovanni Matteo Fumarola Massimo Maggi Professori: Elisabetta Di Nitto Raffaela Mirandola 15 novembre

Dettagli

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

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

Dettagli

Raccolta dei Requisiti con i Casi D'uso. Corso di Ingegneria del Software Anno Accademico 2012/13

Raccolta dei Requisiti con i Casi D'uso. Corso di Ingegneria del Software Anno Accademico 2012/13 Raccolta dei Requisiti con i Casi D'uso Corso di Ingegneria del Software Anno Accademico 2012/13 I casi d uso I casi d'uso (use case) sono una tecnica utilizzata per identificare i requisiti funzionali

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

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone BASI DI DATI per la gestione dell informazione Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone Libro di Testo 22 Chianese, Moscato, Picariello e Sansone BASI DI DATI per la Gestione dell

Dettagli

Progettaz. e sviluppo Data Base

Progettaz. e sviluppo Data Base Progettaz. e sviluppo Data Base! Progettazione Basi Dati: Metodologie e modelli!modello Entita -Relazione Progettazione Base Dati Introduzione alla Progettazione: Il ciclo di vita di un Sist. Informativo

Dettagli

Coordinazione Distribuita

Coordinazione Distribuita Coordinazione Distribuita Ordinamento degli eventi Mutua esclusione Atomicità Controllo della Concorrenza 21.1 Introduzione Tutte le questioni relative alla concorrenza che si incontrano in sistemi centralizzati,

Dettagli

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software di sistema e software applicativo I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software soft ware soffice componente è la parte logica

Dettagli

Il linguaggio di specifica formale Z

Il linguaggio di specifica formale Z Il linguaggio Z (Spivey, 1992) Il linguaggio di specifica formale Z Sviluppato presso l Università di Oxford (UK) Basato su FSM Applicato in ambito industriale Dotato di numerose estensioni (Object Z,

Dettagli

Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012

Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012 Fondamenti di informatica Oggetti e Java ottobre 2012 1 JUnit JUnit è uno strumento per assistere il programmatore Java nel testing JUnit consente di scrivere test di oggetti e classi Java i test sono

Dettagli

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti Capitolo 3 L applicazione Java Diagrammi ER Dopo le fasi di analisi, progettazione ed implementazione il software è stato compilato ed ora è pronto all uso; in questo capitolo mostreremo passo passo tutta

Dettagli

Esercizi su. Funzioni

Esercizi su. Funzioni Esercizi su Funzioni ๒ Varie Tracce extra Sul sito del corso ๓ Esercizi funz_max.cc funz_fattoriale.cc ๔ Documentazione Il codice va documentato (commentato) Leggibilità Riduzione degli errori Manutenibilità

Dettagli

Fasi di creazione di un programma

Fasi di creazione di un programma Fasi di creazione di un programma 1. Studio Preliminare 2. Analisi del Sistema 6. Manutenzione e Test 3. Progettazione 5. Implementazione 4. Sviluppo 41 Sviluppo di programmi Per la costruzione di un programma

Dettagli

La specifica del problema

La specifica del problema 2.9 (Caso di studio facoltativo) Pensare a oggetti: esame del problema Iniziamo ora a esaminare il nostro caso di studio di progettazione e implementazione orientate agli oggetti. Le sezioni Pensare a

Dettagli

Soluzione dell esercizio del 2 Febbraio 2004

Soluzione dell esercizio del 2 Febbraio 2004 Soluzione dell esercizio del 2 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. E evidenziato un sotto caso di uso. 2. Modello concettuale Osserviamo

Dettagli

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain. *+33(GLWRU GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain. Il programma si basa su un architettura di tasti funzionali presenti

Dettagli

Capitolo 13. Interrogare una base di dati

Capitolo 13. Interrogare una base di dati Capitolo 13 Interrogare una base di dati Il database fisico La ridondanza è una cosa molto, molto, molto brutta Non si devono mai replicare informazioni scrivendole in più posti diversi nel database Per

Dettagli

Organizzazione aziendale Lezione 16 BPMN. Ing. Marco Greco m.greco@unicas.it Tel.0776.299.3641 Stanza 1S-28

Organizzazione aziendale Lezione 16 BPMN. Ing. Marco Greco m.greco@unicas.it Tel.0776.299.3641 Stanza 1S-28 Organizzazione aziendale Lezione 16 BPMN Ing. Marco Greco m.greco@unicas.it Tel.0776.299.3641 Stanza 1S-28 Nozioni di base Un sistema è una collezione di entità (es. persone o macchine) che interagiscono

Dettagli

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere. UML e i Casi d USO I casi d uso specificano una sequenza di azioni che producono un risultato visibile agli attori del sistema. Essi nascono per fornire descrizioni delle capacità del sistema. I casi d

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

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

sito web sito Internet

sito web sito Internet Siti Web Cos è un sito web Un sito web o sito Internet è un insieme di pagine web correlate, ovvero una struttura ipertestuale di documenti che risiede, tramite hosting, su un web server e accessibile

Dettagli

Lezione 1. Introduzione e Modellazione Concettuale

Lezione 1. Introduzione e Modellazione Concettuale Lezione 1 Introduzione e Modellazione Concettuale 1 Tipi di Database ed Applicazioni Database Numerici e Testuali Database Multimediali Geographic Information Systems (GIS) Data Warehouses Real-time and

Dettagli

MODELLO RELAZIONALE. Introduzione

MODELLO RELAZIONALE. Introduzione MODELLO RELAZIONALE Introduzione E' stato proposto agli inizi degli anni 70 da Codd finalizzato alla realizzazione dell indipendenza dei dati, unisce concetti derivati dalla teoria degli insiemi (relazioni)

Dettagli

WorkFLow (Gestione del flusso pratiche)

WorkFLow (Gestione del flusso pratiche) WorkFLow (Gestione del flusso pratiche) Il workflow è l'automazione di una parte o dell'intero processo aziendale dove documenti, informazioni e compiti vengono passati da un partecipante ad un altro al

Dettagli

03. Il Modello Gestionale per Processi

03. Il Modello Gestionale per Processi 03. Il Modello Gestionale per Processi Gli aspetti strutturali (vale a dire l organigramma e la descrizione delle funzioni, ruoli e responsabilità) da soli non bastano per gestire la performance; l organigramma

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

Software per Helpdesk

Software per Helpdesk Software per Helpdesk Padova - maggio 2010 Antonio Dalvit - www.antoniodalvit.com Cosa è un helpdesk? Un help desk è un servizio che fornisce informazioni e assistenza ad utenti che hanno problemi nella

Dettagli

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014 Archivi e database Prof. Michele Batocchi A.S. 2013/2014 Introduzione L esigenza di archiviare (conservare documenti, immagini, ricordi, ecc.) è un attività senza tempo che è insita nell animo umano Primi

Dettagli

Elementi di UML (7): Diagrammi dei componenti e di deployment

Elementi di UML (7): Diagrammi dei componenti e di deployment Elementi di UML (7): Diagrammi dei componenti e di deployment Università degli Studi di Bologna Facoltà di Scienze MM. FF. NN. Corso di Laurea in Scienze di Internet Anno Accademico 2004-2005 Laboratorio

Dettagli

Organizzazione degli archivi

Organizzazione degli archivi COSA E UN DATA-BASE (DB)? è l insieme di dati relativo ad un sistema informativo COSA CARATTERIZZA UN DB? la struttura dei dati le relazioni fra i dati I REQUISITI DI UN DB SONO: la ridondanza minima i

Dettagli

Corso formazione su Sistema di gestione della qualità. Standard ISO 9001:2000/2008 Vision 2000

Corso formazione su Sistema di gestione della qualità. Standard ISO 9001:2000/2008 Vision 2000 Corso formazione su Sistema di gestione della qualità Standard ISO 9001:2000/2008 Vision 2000 Concetto di qualità La parola Qualità sta a significare l'insieme delle caratteristiche di un prodotto/servizio

Dettagli

Che cos è un prototipo? Perchè creare prototipi?

Che cos è un prototipo? Perchè creare prototipi? Il processo di progettazione requisiti analisi utenza design iterazione prototipazione implementazione e attivazione 1 2 Che cos è un? Perchè creare prototipi? Un modello approssimato o parziale del sistema

Dettagli

Progettazione di Basi di Dati

Progettazione di Basi di Dati Progettazione di Basi di Dati Prof. Nicoletta D Alpaos & Prof. Andrea Borghesan Entità-Relazione Progettazione Logica 2 E il modo attraverso il quale i dati sono rappresentati : fa riferimento al modello

Dettagli

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware COS È UN LINGUAGGIO? Un linguaggio è un insieme di parole e di metodi di combinazione delle

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

Test e collaudo del software Continuous Integration and Testing

Test e collaudo del software Continuous Integration and Testing Test e collaudo del software Continuous Integration and Testing Relatore Felice Del Mauro Roma, Cosa è la Continuous Integration A software development practice where members of a team integrate their

Dettagli

ali e non funzionali con priorità (high, medium, low) Use Case con un Activity Diagram o uno State Diagr ram

ali e non funzionali con priorità (high, medium, low) Use Case con un Activity Diagram o uno State Diagr ram Riassunto deriva able 4 novembre Lista dei requisiti iti funziona ali e non funzionali con priorità (high, medium, low) Diagramma degli Use Case dell intero progetto Descrizione di almeno uno Use Case

Dettagli

Strumenti per la gestione della configurazione del software

Strumenti per la gestione della configurazione del software tesi di laurea Anno Accademico 2005/2006 relatore Ch.mo prof. Porfirio Tramontana correlatore Ch.mo ing. Luigi Suarato candidato Pasquale Palumbo Matr. 534/000021 MANUTENZIONE DEL SOFTWARE Il Configuration

Dettagli

Brochure Internet. Versione 2010.1 The Keyrules Company s.r.l. Pagina 2 di 8

Brochure Internet. Versione 2010.1 The Keyrules Company s.r.l. Pagina 2 di 8 Ogni organizzazione possiede un sistema di regole che la caratterizzano e che ne assicurano il funzionamento. Le regole sono l insieme coordinato delle norme che stabiliscono come deve o dovrebbe funzionare

Dettagli

Object Oriented Software Design

Object Oriented Software Design Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Object Oriented Software Design Corso di Tecniche di Programmazione Laurea in Ingegneria Informatica (Canale di Ingegneria

Dettagli

Release Note Aconex Release 15.1.20 Pubblicato il 6 febbraio 2015 e aggiornato il 26 febbraio 2015 per coprire il periodo di release dal 15 febbraio

Release Note Aconex Release 15.1.20 Pubblicato il 6 febbraio 2015 e aggiornato il 26 febbraio 2015 per coprire il periodo di release dal 15 febbraio Release Note Aconex Release 15.1.20 Pubblicato il 6 febbraio 2015 e aggiornato il 26 febbraio 2015 per coprire il periodo di release dal 15 febbraio al 15 marzo Panoramica Questa release comporta alcune

Dettagli

Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi.

Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi. E. Calabrese: Fondamenti di Informatica Problemi-1 Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi. L'informatica

Dettagli

Project Management. Modulo: Introduzione. prof. ing. Guido Guizzi

Project Management. Modulo: Introduzione. prof. ing. Guido Guizzi Project Management Modulo: Introduzione prof. ing. Guido Guizzi Definizione di Project Management Processo unico consistente in un insieme di attività coordinate con scadenze iniziali e finali, intraprese

Dettagli

ISTITUTO TECNICO ECONOMICO MOSSOTTI

ISTITUTO TECNICO ECONOMICO MOSSOTTI CLASSE III INDIRIZZO S.I.A. UdA n. 1 Titolo: conoscenze di base Conoscenza delle caratteristiche dell informatica e degli strumenti utilizzati Informatica e sistemi di elaborazione Conoscenza delle caratteristiche

Dettagli

Generazione Automatica di Asserzioni da Modelli di Specifica

Generazione Automatica di Asserzioni da Modelli di Specifica UNIVERSITÀ DEGLI STUDI DI MILANO BICOCCA FACOLTÀ DI SCIENZE MATEMATICHE FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Generazione Automatica di Asserzioni da Modelli di Specifica Relatore:

Dettagli

Sistemi informativi secondo prospettive combinate

Sistemi informativi secondo prospettive combinate Sistemi informativi secondo prospettive combinate direz acquisti direz produz. direz vendite processo acquisti produzione vendite INTEGRAZIONE TRA PROSPETTIVE Informazioni e attività sono condivise da

Dettagli

ALLINEARSI: IL DRIVER PER UNA INNOVAZIONE DI SUCCESSO!

ALLINEARSI: IL DRIVER PER UNA INNOVAZIONE DI SUCCESSO! ALLINEARSI: IL DRIVER PER UNA INNOVAZIONE DI SUCCESSO! L allineamento del team esecutivo è definibile come l accordo dei membri del team in merito a: 1. Allineamento personale -consapevolezza dell impatto

Dettagli

Configuration Management

Configuration Management Configuration Management Obiettivi Obiettivo del Configuration Management è di fornire un modello logico dell infrastruttura informatica identificando, controllando, mantenendo e verificando le versioni

Dettagli

Politecnico di Bari Corso di Laurea Specialistica in Ingegneria Informatica A.A. 2008-09. Casi di Studio. Traccia n 1

Politecnico di Bari Corso di Laurea Specialistica in Ingegneria Informatica A.A. 2008-09. Casi di Studio. Traccia n 1 Politecnico di Bari Corso di Laurea Specialistica in Ingegneria Informatica A.A. 2008-09 Casi di Studio Traccia n 1 Si vuole realizzare un portale web per la gestione della rete di vendita di un'azienda

Dettagli

Indice. pagina 2 di 10

Indice. pagina 2 di 10 LEZIONE PROGETTAZIONE ORGANIZZATIVA DOTT.SSA ROSAMARIA D AMORE Indice PROGETTAZIONE ORGANIZZATIVA---------------------------------------------------------------------------------------- 3 LA STRUTTURA

Dettagli

Database. Si ringrazia Marco Bertini per le slides

Database. Si ringrazia Marco Bertini per le slides Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida

Dettagli

I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due:

I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due: Il modello relazionale I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due: 1. forniscono sistemi semplici ed efficienti per rappresentare

Dettagli

UTILIZZATORI A VALLE: COME RENDERE NOTI GLI USI AI FORNITORI

UTILIZZATORI A VALLE: COME RENDERE NOTI GLI USI AI FORNITORI UTILIZZATORI A VALLE: COME RENDERE NOTI GLI USI AI FORNITORI Un utilizzatore a valle di sostanze chimiche dovrebbe informare i propri fornitori riguardo al suo utilizzo delle sostanze (come tali o all

Dettagli

SISTEMI DI NUMERAZIONE E CODICI

SISTEMI DI NUMERAZIONE E CODICI SISTEMI DI NUMERAZIONE E CODICI Il Sistema di Numerazione Decimale Il sistema decimale o sistema di numerazione a base dieci usa dieci cifre, dette cifre decimali, da O a 9. Il sistema decimale è un sistema

Dettagli

PROCEDURA DI CHIUSURA ANNO FISCALE 2006 CON E-SHOP

PROCEDURA DI CHIUSURA ANNO FISCALE 2006 CON E-SHOP PROCEDURA DI CHIUSURA ANNO FISCALE 2006 CON E-SHOP La procedura di chiusura di fine anno, a partire dalla release 1.9.9.76, è stata resa più semplice e dotata di vari controlli che vengono fatti automaticamente

Dettagli