Il processo di produzione del SW. Sezione I: Introduzione, ciclo di vita del SW

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Il processo di produzione del SW. Sezione I: Introduzione, ciclo di vita del SW"

Transcript

1 Il processo di produzione del SW Sezione I: Introduzione, ciclo di vita del SW

2 PRIMA PARTE Il processo di produzione del software I. Introduzione, ciclo di vita del SW II. Qualità, standard III. Test del SW IV. Project Management

3 I. Introduzione, ciclo di vita del SW I.1. Cos è l Ingegneria del Software I.2. Il prodotto I.3. Il processo I.4. Modelli per il ciclo di vita del software 3

4 I.1. COS È L INGEGNERIA DEL SOFTWARE Possibili definizioni Breve storia Crisi del SW 4

5 Possibili definizioni dell Ing. Del SW Creazione di software multiversione da parte di più operatori [Parnas, 1978] programmazione ing. SW Il settore dell informatica che si occupa di sistemi grandi e complessi, per la cui realizzazione servono unaopiùsquadre di ingegneri [Ghezzi, Jazayeri, Mandrioli, 2003] eliminazione difetti, potenziamento/modifica/eliminazione funzioni Applicazione di un approccio sistematico, disciplinato e quantificabile nello sviluppo, funzionamento e manutenzione del SW [IEEE Standard ] applicazione dell ingegneria al SW 5

6 Breve storia dell Ing. Del SW Albori dell informatica (~ ): problemi ben compresi e conosciuti (ad es., soluzione equazioni differenziali); spesso, programmatore = utente Diffusione dei computer (~ ): professione programmatore (programmatore utente necessità di specifiche); tipicamente, lavora da solo Grandi sistemi SW ( 1965): esempio: OS 360 (per IBM 360) difficoltà nell adattare le tecniche usate per lo sviluppo di piccoli programmi 6

7 Crisi del software La buona programmazione non basta I membri di un gruppo spendono più tempo per comunicare fra loro che per programmare Alcune persone possono abbandonare il progetto: influenza negativa sul lavoro altrui, trasferimento orale della conoscenza Cambiamento nei requisiti influenza su tutto il progetto Serviva un nuovo approccio! 7

8 Ingegneria del software Il termine nasce nel 1968 in una conferenza NATO. È la disciplina il cui scopo è dare un approccio sistemistico alla produzione, alla manutenzione ed alla evoluzione del prodotto software Si vuole usare lo stesso approccio degli altri settori dell ingegneria (civile, industriale) L ingegneria del software comprende: modelli astratti e teoria di base metriche metodi e processi di produzione e di test tecnologie e strumenti obiettivi da raggiungere (qualità del sw) sensibilità pratica 8

9 Ipotesi: Un problema temporaneo? I ritardi nella consegna e gli sforamenti del budget possono essere risolti con migliori: Realtà: strumenti (di analisi, sviluppo, ) tecniche di management No silver bullet [Brooks 1987] Problemi accidentali (risolti dagli strumenti) Problemi essenziali (non risolti dagli strumenti) Le applicazioni complesse non sono completamente comprese né dai clienti, né dagli sviluppatori Non si sa come stimare la difficoltà di un progetto e quanto tempo è necessario 9

10 Un esempio famoso Programma Guerre stellari (1985, presidenza Reagan). Si dimette Dave Parnas (uno dei massimi esperti di IS mondiali, responsabile informatica), Motivazione pubblica: le odierne conoscenze e tecnologie non sono in grado (e non lo saranno in breve tempo) in grado di affrontare problemi così complessi 10

11 Il futuro HW potente e a basso costo produzione di sistemi software sempre più complessi e difficili da gestire Spese mondiali per il SW: 1985: 140 G$ 2000: 800 G$ (PIL Italia 2000: 1074 G$) Si continuano a sviluppare strumenti metodologie 11

12 I IL PRODOTTO Definizioni Concetti generali Cenni storici I problemi dello sviluppo del software 12

13 Software: Definizioni Creazione dell intelletto che include programmi, strutture dati, documentazione. L esecuzione dei programmi realizza (sperabilmente) le funzionalità previste. Prodotto Software: Insieme completo di programmi, procedure e relativa documentazione, rilasciato ad un utente. Componente Software: Ogni parte identificabile di un prodotto software, sia in uno stadio intermedio del processo di sviluppo, che al termine di esso. 13

14 Classificazione delle applicazioni SW (1) Rispetto al flusso di esecuzione: Sequenziali (unico flusso di controllo) Concorrenti (necessità di sincronizzazione e comunicazione) Dipendenti dal tempo (come le concorrenti + vincoli temporali sulla velocità di esecuzione) 14

15 Classificazione delle applicazioni SW (2) Rispetto alla natura degli elementi: Realizzazione di funzioni Gestione di dati (sistemi informativi) Controllo (sincronizzazione e cooperazione) 15

16 Macroclassificazione delle applicazioni sw Sistemi operativi e software di sistema sw di servizio Real time software vincoli precisi sui tempi di risposta Sistemi informativi gestione patrimonio informativo di un azienda Software scientifico calcolo numerico/simbolico Software nascosto (embedded) semafori, ascensori, lavatrici, telefoni, ecc.. PC software 16

17 Caratteristiche del software Il SW è sviluppato (attività human intensive) e non costruito come un qualsiasi prodotto industriale (ad es., un monitor) ingegneria, e non fabbricazione È possibile modificare facilmente il prodotto senza modificare il progetto è frequente l abuso della flessibilità Il SW non si consuma Il SW non è (era) realizzato utilizzando componenti preesistenti 17

18 Prodotto industriale e prodotto software Prodotto Industriale Definito il progetto e il processo di produzione del bene si può delegare la produzione a strutture esterne senza influenzarne il risultato. I parametri e le tecniche usate per descrivere un prodotto sono consolidate, affidabili ed efficaci. Prodotto Software A partire da una specifica comune delegare la realizzazione a diversi soggetti porta alla realizzazione di prodotti totalmente diversi. La descrizione delle caratteristiche funzionali e di qualità del prodotto software rimane un problema aperto. 18

19 Prodotto industriale e prodotto software (2) Prodotto Industriale Sono possibili: economie di scala processi di produzione e distribuzione diversificati in funzione delle dimensioni del mercato a cui il prodotto si rivolge. Prodotto Software Non è distinguibile la produzione su piccola scala da quella su larga scala. Esiste una attività di revisione ed aggiornamento non comparabile con quella dei prodotti tradizionali. 19

20 Insieme di: persone, Processo di sviluppo del software: strutture organizzative, regole, politiche, procedure/attività, componenti software, metodologie, strumenti utilizzati o creati appositamente per concepire, sviluppare, mettere in servizio e innovare/estendere un prodotto software. 20

21 Prospettiva storica della produzione del software : prima era batch, distribuzione limitata, software customizzato : seconda era multiuser, Real-Time, Database, software prodotto : terza era sistemi distribuiti, hardware low-cost, mercato di massa : quarta era OO technologies, sistemi user friendly, Powerful PC 1995-oggi: quinta era internet, distributed computing, CORBA-DCOM, component-ware, J2EE 21

22 Esercizi/riflessioni Esistono altri fattori che differenziano il software da altri prodotti industriali? Perché il prodotto software si differenzia così tanto da altri prodotti industriali? 22

23 Prospettiva storica del costo sw / hw costo sw / costo hw

24 Prospettiva storica del costo del costo sw / costo hw 100 software sviluppo manutenzione ANDAMENTO DELLA LA SPESA PER IL SOFTWARE 24

25 Ripartizione del costo del software 15% 80% manutenzione sviluppo 20% 46% verifica e manutenzione e modifiche validazione dis. eanalisi codifica documentazione 20% 9% 10% % costo totale % costo di sviluppo RIPARTIZIONE DEI COSTI TRA MANUTENZIONE E SVILUPPO RIPARTIZIONE DEI COSTI DI SVILUPPO TRA: ANALISI, DISEGNO, CODIFICA, DOCUMENTAZIONE E VERIFICA 25

26 Deterioramento e guasti hw e sw % guasti hw % guasti sw (teoria) tempo tempo % guasti sw (comportamento osservato) Cambiamenti sw tempo 26

27 Problemi nello sviluppo del SW IBM survey, % dei sistemi costa più del previsto 68% non viene completato nel tempo previsto 88% deve essere riprogettato in maniera sostanziale Bureau of labour, 1997 Ogni 6 nuovi sistemi messi in linea, 2 cancellati Per sistemi di grandi dimensioni, sale a 3 In media la sottostima del tempo di completamento è del 50% 27

28 Alcuni famosi incidenti causati dal software Errore di programmazione Therac-25: macchina per la radioterapia ( ). Gestione SW della mutua esclusione errata. Ariane 6: missile ESA (1996). Eccezione lanciata (ADA) a causa di violazione di assunzioni non documentate. London Ambulance Service (1992). Errore di analisi Errore di management Perdita di chiamate, duplicazione di dispatching. 28

29 Componenti sw e riusabilità Il concetto di componente software riusabile si va sempre più facendo strada. È strettamente collegato all analisi (ad es., in UML) e ai linguaggi (ad es., Java, C++, C#, Delphi) Object Oriented. Determina, fra l altro, un alto riuso di componenti, molto efficace in alcuni contesti (ad es., per la costruzione di interfacce grafiche -- Graphical User Interface o GUI). 29

30 I IL PROCESSO Il processo di produzione del sw Fasi essenziali 30

31 Il processo di produzione 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 di fasi in cui decomporlo, un insieme di prodotti delle varie fasi, un insieme di metodi da adottare nelle varie fasi, un insieme di tecniche o modelli con cui descrivere i prodotti delle fasi. 31

32 Progetto Sviluppo Fasi essenziali del processo di produzione sw Manutenzione (sw esistente) correttiva (20%): risoluzione di errori adattativa (20%): cambiamenti/aggiunte di specifiche perfettiva (50%) migliorativa: req. non funzionali (spazio, tempo) evolutiva: req. funzionali secondari preventiva (10%) rendere più semplice la individuazione di errori tramite miglioramenti del codice (ristrutturazione, pulizia, ecc.) 32

33 Attività trasversali Controllo/gestione del progetto Revisioni tecniche del progetto Controllo di qualità Gestione della configurazione Gestione della documentazione Gestione della riusabilità Misure Gestione dei rischi 33

34 Elementi del processo di produzione del sw Insiemi di attività Scadenze Prodotti intermedi Controlli qualità Attività trasversali Gestione del progetto Metriche ecc. 34

35 Re-Engineering Lo sviluppo ex novo è solo uno degli aspetti dell Ingegneria del Software In questo caso si può parlare di forward engineering Se di un sistema esistente (mal documentato) si vuole creare una documentazione adeguata, si attua un processo di reverse engineering Per ricostruire un sistema ingegnerizzato a partire da un vecchio sistema inadeguato: Reverse Engineering + Forward Engineering = Re-Engineering 35

36 I.4. MODELLI PER IL CICLO DI VITA DEL SW Presentazione dei vari modelli Confronto 36

37 Modelli per il processo di produzione (ciclo di vita) del sw Sequenziale (cascata, classico) Prototipale Rapid Application Development (RAD) Modelli evolutivi Incrementale Spirale Sviluppo concorrente Extreme programming Tecniche e linguaggi di quarta generazione Modelli basati su metodi formali 37

38 Visione caotica del processo Definizione del problema Stato corrente Soluzione tecnica Integrazione 38

39 Visione caotica del processo (2) Stato corrente Sfida: gestire in maniera ragionevole questi stadi coesistenti 39

40 Processo a cascata (waterfall, Royce 1970) ANALISI DESIGN CODIFICA TEST MANUTENZIONE Ispirazione dall industria manufatturiera, reazione al code and fix 40

41 Fasi e prodotti del modello a cascata analisi descrizione di cosa si vuole realizzare definizione dei requisiti design progettazione del sistema (come si vuole realizzarlo) architettura e moduli codifica realizzazione in un linguaggio di programmazione sorgenti test verifica di aderenza, test di modulo e di integrazione documenti di test manutenzione gestione cambiamenti 41

42 Problemi del modello a cascata I progetti reali raramente seguono il flusso sequenziale proposto dal modello Spesso si verificano iterazioni È spesso difficile per il cliente dichiarare tutti i requisiti in modo esplicito. Il modello ha difficoltà a gestire la naturale incertezza che esiste all inizio di nuovi progetti 42

43 Problemi del modello a cascata (2) Il cliente deve avere pazienza, una versione funzionante del sistema non potrà essere disponibile se non nelle ultime fasi del ciclo di vita. Inoltre, scoprire un errore in questa fase può avere conseguenze disastrose. Il lavoro degli sviluppatori è inutilmente ritardato (il tempo di attesa complessiva può superare il tempo di lavoro!!!) 43

44 Modello prototipale Interazione con l utente Realizz. modifica prototipo Test del prototipo (con l utente) La prototipazione ha come obiettivo la realizzazione del prodotto software attraverso successive realizzazioni di prototipi: paper protoype, o mock-up, o prototipo freddo, solo interfaccia completezza e disambiguazione requisiti, manuale utente working prototype: implementa solo alcune funzioni breadboard: funzionalità critiche, senza interfaccia 44

45 Modello prototipale (2) Se il prototipo è working: lo si trasforma nel programma finale, oppure lo si butta Vantaggi: molto attraente, sia per il cliente sia per lo sviluppatore coinvolge maggiormente il cliente nella definizione delle specifiche, evita/riduce le incomprensioni Potenziali svantaggi: può evolvere in un sistema senza un progetto solido possibile spreco di risorse nel caso usa e getta tentazione di riutilizzare le scelte prototipali (o, addirittura il prototipo stesso) 45

46 Modello RAD (Rapid Application Development) Obiettivo: rapida (60-90 gg.) codifica (riuso/parallelismo) Ipotesi fondamentali (e limiti dell approccio): requisiti chiari la complessità è limitata (ad es., semplice sistema informativo), le prestazioni non sono critiche l applicazione si può decomporre in macrofunzioni realizzate da gruppi di lavoro diversi che operano in parallelo 46

47 Le cinque fasi: 1. Analisi dell azienda: Modello RAD (2) A che serve l informazione, da dove viene, dove va, a chi serve? 2. Analisi dei dati: Modellazione (ad es., con diagramma delle classi UML) 3. Analisi dei processi: Modellazione del ciclo di vita degli oggetti (come vengono creati, interrogati, modificati, cancellati) 4. Codifica: riuso, tramite componenti sw 4th generation techniques (4GT) 5. Test e messa in esercizio (alcune componenti sono già state testate) 47

48 Modello incrementale analisi progetto codifica test versione 1... analisi progetto codifica test Simile al prototipale ma: i prodotti intermedi sono funzionanti permette una più accurata progettazione e programmazione dell uso delle risorse versione n Prodotti Funzionanti 48

49 Modello incrementale (2) Esempio (editore di testi): 1. Gestione file, editing, stampa documenti (core) 2. Correzioni ortografiche 3. Formattazione pagina 49

50 Modello a spirale (Bohem, 1988) Raccolta dei requisiti iniziale 2) Planning 3) Risk analysis 1) Interazione con il cliente 4) Ingegnerizzazione 6) Valutazione da parte del cliente 5) Realizzazione e rilascio Primo prototipo 50

51 Gestione dei rischi Alcune tipologie di rischio: Personale inadeguato Scheduling sbagliato Budget non realistico Sviluppo del sistema sbagliato (validation: Are we building the right product?, vs. verification: Are we building the product right?, Bohem) Alti rischi possono provocare ritardi e costi imprevisti Meno informazione più rischi 51

52 Considerazioni sul modello a spirale Rappresenta una razionalizzazione del modello prototipale: Non termina con la consegna del prodotto Ammette che il processo sia dormiente Si presta alla gestione di progetti complessi Può essere significativo prevedere il numero delle iterazioni Può essere integrato con altri approcci (modello ad assemblaggio dei componenti) Sta acquistando sempre maggiore popolarità Alcuni CASE tool lo supportano Il cliente è spesso scettico ( converge? ) Recente evoluzione: modello ad assemblaggio di componenti 52

53 Modello ad assemblaggio di componenti Le fasi 4 e 5 del ciclo di vita a spirale vengono unificate, e comprendono la seguente sequenza di attività Identificazione dei componenti di interesse Ispezione dei componenti di libreria Realizzazione dei componenti non disponibili Estrazione dei componenti disponibili Inserimento dei nuovi componenti in libreria Realizzazione dell n-esima iterazione del sistema 53

54 Extreme Programming (XP) Approccio recente (1996) Obiettivi: Maggiore coinvolgimento del cliente (customer satisfaction) Rispondere ragionevolmente ai cambiamenti nei requisiti (anche quelli tardivi) Enfasi sul lavoro di gruppo (che può coinvolgere anche il cliente) Ridurre il numero di regole e di procedure (lightweight, o agile methodology) Forte enfasi sul test 54

55 Ciclo di vita: modello XP 55

56 Alcune regole di XP: codifica The customer is always available. Code must be written to agreed standards. Code the unit test first. All production code is pair programmed. Only one pair integrates code at a time. Integrate often. Use collective code ownership. Leave optimization till last. No overtime. 56

57 Il mondo open source: alcuni link Eric S. Raymond's Home Page Articolo The Cathedral and the Bazaar In italiano: Table of Contents: The Cathedral and the Bazaar The Mail Must Get Through The Importance of Having Users Release Early, Release Often How Many Eyeballs Tame Complexity When Is a Rose Not a Rose? Popclient becomes Fetchmail Fetchmail Grows Up A Few More Lessons from Fetchmail Necessary Preconditions for the Bazaar Style The Social Context of Open-Source Software On Management and the Maginot Line Epilog: Netscape Embraces the Bazaar 57

58 Tecniche e linguaggi di quarta generazione (4GT/4GL) Strumenti e linguaggi caratterizzati da un elevato livello di astrazione Linguaggi dichiarativi Formalismi/linguaggi grafici Generazione automatica del codice maggiore produttività 58

59 Un esempio Open Source: ArgoUML 59

60 Tecniche e linguaggi di quarta Potenziali svantaggi: generazione (2) Strumenti difficili da usare (difficoltà paragonabile ai linguaggi di programmazione convenzionali) Il codice generato potrebbe essere inefficiente La manutenzione è difficile L approccio sembra essere indicato per applicazioni di piccole dimensioni Non si risparmia tempo nell analisi, progetto e test 60

61 Metodi formali Formalismi rigorosi (logici/algebrici) per le fasi di specifica, sviluppo e verifica Non si basano sul linguaggio naturale (inerentemente ambiguo) Affrontano i problemi di ambiguità, vaghezza, incompletezza e inconsistenza delle specifiche Esistono linguaggi formali funzionanti (ad es. SMV, TLA, Alloy, Z, ) Riportiamo un esempio con una sintassi inventata 61

62 Metodi formali: esempio void Ordina(int a[], int n) // commento: ordina il vettore a, che ha n componenti tutte diverse tra // loro, in maniera crescente pre: I J (I 0 I n-1 J 0 J n-1 I J) a[i] a[j] post: //1. gli elementi del vettore risultante sono ordinati ( I (I > 0 I n-1 ) a[i] > a[i-1]) //2. gli elementi nel vett. risultante sono presenti nel vett. originario ( K (K 0 K n-1 ) L (L 0 L n-1 a[k] = pre(a[l]))) //3. gli elementi del vett. originario sono presenti nel vett.risultante ( R (R 0 R n-1 ) S (S 0 S n-1 pre(a[r]) = a[s])) 62

63 Metodi formali: esercizi 1. È possibile semplificare la specifica precedente? 2. Scrivere un specifica valida per il caso generale, ovvero il caso in cui non sia valida la precondizione che impone che tutti gli elementi del vettore sono distinti fra loro. 63

64 Metodi formali (2) Vantaggi: Permettono controlli formali sulle specifiche Permettono la verifica automatica di incompletezze e inconsistenze nelle specifiche Permettono la generazione automatica del codice Potenziali svantaggi: Difficili ad usarsi, richiedono personale specializzato Lenti nell utilizzo Non molto validi come forma di comunicazione con l utente 64

65 Metodi formali: sviluppi recenti Recentemente sono stati sviluppati strumenti e metodologie che risolvono, in parte, i problemi dei metodi formali, in particolare: Offrendo una migliore gestione dei processi di forward e backward engineering Garantendo un efficienza accettabile Offrendo utili metafore grafiche Un esempio è dato dal tool Alloy Analyzer (alloy.mit.edu), che fornisce, fra l altro, strumenti per l analisi di diagrammi delle classi UML 65

66 Un esempio in AlloyAnalyzer module alloyexamples/prog_sw_1/iiiappello_2005 // 1. encoding of UML class diagram // 1.a classes and associations // 1.b inverse associations // 1.c disjointness & completeness // 2. encoding of constraints // 3. verification of assertions // 1.a --EXAMPLE sig Visita { assistito: one Persona, medico: one Persona, indicazione: set Prescrizione } // 1.b --EXAMPLE fact reverseassistito { all p: Persona p.assistito.assistito = p } // 2. --EXAMPLE fact nomedicoassistito { // un medico non può mai visitare // se stesso all v: Visita v.medico!= v.assistito } Generato automaticamente 66

67 Un esempio in AlloyAnalyzer (cont.) assert noduevisitestessaprescrizione { // true assertion: // implied by cardinality constraints // due visite distinte non possono // avere prescrizioni in comune all v1, v2: Visita v1!= v2 => no v1.indicazione & v2.indicazione } check noduevisitestessaprescrizione for 2 Chiediamo la verifica di questa affermazione 67

68 Prodotto e processo: riassunto Il prodotto SW ed il relativo processo di produzione differiscono notevolmente da quelli di altri prodotti industriali Le tecnologie e le metodologie si evolvono rapidamente È necessaria una (auto)formazione continua, per restare aggiornati! 68

69 Qualità del Prodotto Software 69

70 Qualità esterne ed interne Qualità esterne: Sono le qualità visibili agli utenti del sistema Percepibili anche da chi non è specialista dell informatica Non richiedono l ispezione del codice sorgente Qualità interne: Sono le qualità che riguardano gli sviluppatori Valutabili da specialisti Richiedono la conoscenza della struttura del programma A volte la distinzione fra qualità esterne ed interne non è perfettamente marcata 70

71 Fattori di qualità del SW QUALITÀ ESTERNE Correttezza Affidabilità Robustezza Sicurezza Innocuità Usabilità Estendibilità Riusabilità Interoperabilità QUALITÀ INTERNE Efficienza Strutturazione Modularità Comprensibilità Verificabilità Manutenibilità Portabilità 71

72 Esercizio 3 Considerare le seguenti proprietà di un impianto Hi-Fi e stabilire quali di esse sono esterne e quali sono interne: 1. il tempo dedicato al collaudo; 2. la fedeltà sonora; 3. la probabilità di malfunzionamenti nel primo anno di utilizzazione; 4. la dimensione del trasformatore per l alimentazione; 5. l ergonomia dei comandi; 6. la linearità della risposta in frequenza. 72

73 Correttezza, Affidabilità, Robustezza, Innocuità, Sicurezza Correttezza: (fondamentale) il SW fa ciò per cui è stato progettato Affidabilità: si può fare affidamento (in senso statistico) sulle funzionalità del SW Robustezza: il SW ha un comportamento accettabile anche nel caso di situazioni non specificate Innocuità: il sistema NON entra in certi stati (pericolosi) Sicurezza: il SW garantisce la riservatezza nell accesso ai dati 73

74 Usabilità Enfasi sull utente Psicologia cognitiva Fattori fisici/ergonomici Mentalità dell utente Interfacce grafiche/visuali Viene, spesso, totalmente ignorata 74

75 Estendibilità Facilità con cui il SW può essere adattato a modifiche delle specifiche. Importantissima in grandi programmi Due princìpi per l estendibilità: Semplicità di progetto Decentralizzazione nell architettura del SW 75

76 Riusabilità Facilità con cui il SW può essere re-impiegato in applicazioni diverse da quella originaria Evita di reinventare soluzioni Richiede alta compatibilità Uso di librerie di componenti riutilizzabili Progetto del SW più generale possibile Documentazione Maggiore affidabilità 76

77 Interoperabilità Facilità di interazione con altri moduli al fine di svolgere un compito più complesso Problemi tecnologici e semantici Favorisce la riusabilità 77

78 Nota sulle qualità esterne Correttezza Estendibilità Riusabilità sono qualità chiave, fortemente favorite da un approccio orientato agli oggetti 78

79 Efficienza Si riferisce al peso che il software ha sulle risorse del sistema tempo di esecuzione utilizzo di memoria Teoria della complessità limiti asintotici caso medio caso peggiore Simulazioni (ad es., teoria delle reti di code) Legata alle prestazioni (quest ultime percepibili dall utente, quindi qualità esterne) 79

80 Strutturazione/Modularità Strutturazione Capacità del SW di riflettere con la sua struttura le caratteristiche del problema trattato e delle soluzioni adottate Modularità Grado di organizzazione del SW in parti ben specificate ed interagenti 80

81 Comprensibilità Capacità del SW di essere compreso e verificato anche da parte di chi non ha condotto il progetto si applica sia al software sia al processo facilitata da: strutturazione modularità la comprensibilità del software facilita: l analisi della correttezza la correzione di errori ilriuso 81

82 Verificabilità La possibilità di verificare che gli obiettivi proposti siano stati raggiunti È una caratteristica sia del processo sia del prodotto Facile: il codice soddisfa gli standard di codifica? Difficile: il codice fa ciò che deve fare? (vedi correttezza) 82

83 Manutenibilità/portabilità Manutenibilità: Facilità nell effettuare modifiche Portabilità: Possibilità di riusare codice sorgente linguaggi compilabili su più piattaforme macchine virtuali (html/java) 83

84 Nota sulle qualità interne Strutturazione Modularità sono caratteristiche di estremo interesse, favorite dall approccio orientato agli oggetti 84

85 Esercizio 4 Assimilando le qualità di un programma alle proprietà delle automobili, il fatto che i motori di un certo modello possono essere montati su diversi modelli di automobile a quali qualità fa riferimento? 85

86 Misura delle qualità Ogni qualità deve essere valutata attraverso alcune proprietà, misurabili in modo oggettivo e quantitativo, possedute dalle entità. Differenti entità possono essere collocate su una scala di valori in funzione dei livelli misurati per questi attributi. 86

87 Qualità in contrasto Non tutte le qualità possono essere massimizzate Alcune sono intrinsecamente in contrasto fra loro. Ad esempio: Usabilità e sicurezza Efficienza e portabilità È necessario scegliere un adeguato bilanciamento 87

88 Esercizio 5 Le qualità dei programmi non sono necessariamente indipendenti tra loro. Ad esempio, all aumentare della modularità aumenta in genere anche la leggibilità. Considerare due qualità alla volta e valutare il loro rapporto reciproco. 88

89 Tendenze nello sviluppo di applicazioni SW + Complessità delle informazioni da gestire + Progetti di dimensioni medio-grandi + Eterogeneità degli utenti - Durata media dei sistemi + Bisogno di interventi di manutenzione - Costi di produzione e tempi di produzione + Qualità del prodotto finito 89

90 Princìpi guida nello sviluppo del software Rigore e formalità Lo sviluppo del software è una attività creativa che va accompagnata da un approccio rigoroso (o addirittura formale) Possiamo realizzare prodotti affidabili, controllarne il costo, aumentare la fiducia nel loro corretto funzionamento. Separazione degli interessi Affrontare separatamente i diversi aspetti per dominare la complessità Modularità Realizzare la separazione degli interessi in due fasi: I singoli moduli vanno trattati separatamente I dettagli interni dei singoli moduli vanno trattati separatamente dalle relazioni inter-modulari 90

91 Princìpi guida nello sviluppo del software (2) Astrazione Identificare aspetti fondamentali ed ignorare i dettagli irrilevanti Anticipazione del cambiamento Per favorire l estendibilità e il riuso Generalità Ricerca si soluzioni generali Incrementalità: raggiungere l obiettivo attraverso passi successivi per anticipare feedback dell utente per facilitare verifiche di correttezza per predisporsi alla estendibilità e al riuso 91

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

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

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

Introduzione alla progettazione del software

Introduzione alla progettazione del software Laurea in Ingegneria Gestionale Progettazione del Software Anno Accademico 2003/04 G. De Giacomo & M.Scannapieco Dipartimento di Informatica e Sistemistica Università di Roma La Sapienza Introduzione alla

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

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

Ingegneria del Software. MINR a.a. 2009-2010. Prof. Giuseppe Santucci. 01- Introduzione

Ingegneria del Software. MINR a.a. 2009-2010. Prof. Giuseppe Santucci. 01- Introduzione Ingegneria del Software MINR a.a. 2009-2010 Prof. Giuseppe Santucci 01- Introduzione 01Intro.1 Informazioni generali sul corso Sommario Cenni storici, problemi dello sviluppo del software, concetti generali

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

Ingegneria del SW. Nathalie Morey. nmorey@unime.it. E-mail. 20-06-2013 Inizio. Indietro Avanti

Ingegneria del SW. Nathalie Morey. nmorey@unime.it. E-mail. 20-06-2013 Inizio. Indietro Avanti Ingegneria del SW Nathalie Morey E-mail nmorey@unime.it 20-06-2013 Programma Principi di ingegneria del software Processo software Ciclo di vita Definizione del problema Analisi dei requisiti e specifiche:

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

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

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

all ingegneria del software

all ingegneria del software Luca Cabibbo Ingegneria del Software Introduzione all ingegneria del software Dispensa IDS 1 ottobre 2008 1 -Fonti [Sommerville/8e] Capitolo 1, Introduzione [Pressman/6e] Capitolo 1, Il software e l ingegneria

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

Ingegneria del Software Progettazione

Ingegneria del Software Progettazione Ingegneria del Software Progettazione Obiettivi. Approfondire la fase di progettazione dettagliata che precede la fase di realizzazione e codifica. Definire il concetto di qualità del software. Presentare

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

Il ciclo di vita del software

Il ciclo di vita del software Il ciclo di vita del software Il ciclo di vita del software Definisce un modello per il software, dalla sua concezione iniziale fino al suo sviluppo completo, al suo rilascio, alla sua successiva evoluzione,

Dettagli

Metodi Formali nell Ingegneria del Software (Laurea Specialistica Ing.Informatica) A.A. 2005-06 Marco Cadoli

Metodi Formali nell Ingegneria del Software (Laurea Specialistica Ing.Informatica) A.A. 2005-06 Marco Cadoli Metodi Formali nell Ingegneria del Software (Laurea Specialistica Ing.Informatica) A.A. 2005-06 Marco Cadoli Università di Roma La Sapienza Dipartimento di Informatica e Sistemistica PRIMA PARTE Il ruolo

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

Scienze del computer. Cliente. Funzioni del computer. Problema. Teorie. Ingegneria del Software. Strumenti e Tecniche per Risolvere il problema

Scienze del computer. Cliente. Funzioni del computer. Problema. Teorie. Ingegneria del Software. Strumenti e Tecniche per Risolvere il problema L ingegneria del SW è un campo della scienze del computer che si occupa della costruzione di sistemi software complessi che vengono sviluppati da equipe di ingegneri. Sistemi che devono essere in servizio

Dettagli

Ingegneria del Software Requisiti e Specifiche

Ingegneria del Software Requisiti e Specifiche Ingegneria del Software Requisiti e Specifiche Obiettivi. Affrontare i primi passi della produzione del software: la definizione dei requisiti ed il progetto architetturale che porta alla definizione delle

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

Sistemi Informativi I Lezioni di Ingegneria del Software

Sistemi Informativi I Lezioni di Ingegneria del Software 1 Introduzione all Ingegneria del Software. In questa prima parte viene definita l Ingegneria del Software o Software Engineering (SWE), vengono presentate le caratteristiche del ciclo di vita di un prodotto

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

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

Requisiti sulla qualità del software secondo lo standard ISO/IEC 25010

Requisiti sulla qualità del software secondo lo standard ISO/IEC 25010 1. Premessa. Requisiti sulla qualità del software secondo lo standard ISO/IEC 25010 Domenico Natale AB Medica Versione 1 Riunione delle Commissione UNINFO Informatica Medica Milano, 30 settembre 2013 La

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

Dall analisi dei requisiti alla specifica della soluzione

Dall analisi dei requisiti alla specifica della soluzione Dall analisi dei requisiti alla specifica della soluzione G.Raiss - 4 maggio 2001 1 IL processo di produzione del sw Passando da un approccio artigianale ad uno industriale nello sviluppo del software,

Dettagli

1. L Ingegneria del Software

1. L Ingegneria del Software 1. L Ingegneria del Software Obiettivi della lezione: Definire cosa si intende per Ingegneria del Software Discutere i concetti di prodotto software e di processo software Spiegare il concetto di visibilità

Dettagli

Fondamenti di Informatica 7. Linguaggi di programmazione

Fondamenti di Informatica 7. Linguaggi di programmazione I linguaggi di alto livello Fondamenti di Informatica 7. Linguaggi di programmazione Introduzione alla programmazione Caratteristiche dei linguaggi di programmazione I linguaggi di programmazione di alto

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

Applicazione: SAI - Sistema di Audit Interno

Applicazione: SAI - Sistema di Audit Interno Riusabilità del software Catalogo delle applicazioni: Amministrativo/Contabile Applicazione: SAI Sistema di Audit Interno Amministrazione: Agenzia delle Entrate Responsabile dei sistemi informativi Nome

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

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

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

Software solido e usabile: come integrare ingegneria dell usabilità e del software

Software solido e usabile: come integrare ingegneria dell usabilità e del software Software solido e usabile: come integrare ingegneria dell usabilità e del software Giorgio Brajnik e Andrea Baruzzo Dip. di Matematica e Informatica Università di Udine e Interaction Design Solutions srl

Dettagli

Relazione Pinakes3 Analisi modello di business (BOZZA) di Valeriano Sandrucci 08/09/07

Relazione Pinakes3 Analisi modello di business (BOZZA) di Valeriano Sandrucci 08/09/07 Relazione Pinakes3 Analisi modello di business (BOZZA) di Valeriano Sandrucci 08/09/07 1. Introduzione...3 1.2. Application vs Tool... 3 2. Componenti logiche di un modello... 6 3. Ontologie e Semantic

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

CORSO I.F.T.S. "TECNICHE PER LA PROGETTAZIONE E LA GESTIONE DI DATABASE. Matricola 2014LA0033 DISPENSE DIDATTICHE MODULO DI PROGETTAZIONE SOFTWARE

CORSO I.F.T.S. TECNICHE PER LA PROGETTAZIONE E LA GESTIONE DI DATABASE. Matricola 2014LA0033 DISPENSE DIDATTICHE MODULO DI PROGETTAZIONE SOFTWARE CORSO I.F.T.S. "TECNICHE PER LA PROGETTAZIONE E LA GESTIONE DI DATABASE Matricola 2014LA0033 DISPENSE DIDATTICHE MODULO DI PROGETTAZIONE SOFTWARE Dott. Imad Zaza Lezione del 08/07/2014 Page 1 Elementi

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

Cosa significa che il SW è non lineare? Piccoli cambiamenti nel codice portano a grandi cambiamenti di comportamento

Cosa significa che il SW è non lineare? Piccoli cambiamenti nel codice portano a grandi cambiamenti di comportamento Cosa significa che il SW è non lineare? Piccoli cambiamenti nel codice portano a grandi cambiamenti di comportamento Cosa s'intende per Information Hiding? Impedire l'accesso a dettagli implementativi

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

Sistemi Distribuiti. Il corso: informazioni utili AA 2006/2007. Riferimenti del docente: Ricevimento: Materiale Didattico:

Sistemi Distribuiti. Il corso: informazioni utili AA 2006/2007. Riferimenti del docente: Ricevimento: Materiale Didattico: Sistemi Distribuiti Corso di Laurea Specialistica in Telecomunicazioni AA 2006/2007 Slides del corso Sara Tucci Piergiovanni Il corso: informazioni utili Riferimenti del docente: - sito web: www.dis.uniroma1.it/

Dettagli

SCD IS. Processi software. Processi Software. UniPD - 2009 - Ingegneria del Software mod. A 1. Definizioni. Modelli di ciclo di vita

SCD IS. Processi software. Processi Software. UniPD - 2009 - Ingegneria del Software mod. A 1. Definizioni. Modelli di ciclo di vita Processi software Anno accademico 2009/10 Ingegneria del mod. A Tullio Vardanega, tullio.vardanega@math.unipd.it SCD IS Definizioni Ciclo di vita Copre l evoluzione di un prodotto dal concepimento al ritiro

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

Sistemi Informativi e WWW

Sistemi Informativi e WWW Premesse Sistemi Informativi e WWW WWW: introduce un nuovo paradigma di diffusione (per i fornitori) e acquisizione (per gli utilizzatori) delle informazioni, con facilità d uso, flessibilità ed economicità

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

Interfaccia Utente. Prototipi. Sviluppo SW - Usabilità. Sviluppo SW a cascata. Il ciclo di vita a stella (Hix & Hartson)

Interfaccia Utente. Prototipi. Sviluppo SW - Usabilità. Sviluppo SW a cascata. Il ciclo di vita a stella (Hix & Hartson) Interfaccia Utente An interface is a bridge between the world of the product or system and the world of the user. It is the means by which the users interact with the product to achieve their goals. It

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

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

Sistema Operativo Compilatore

Sistema Operativo Compilatore MASTER Information Technology Excellence Road (I.T.E.R.) Sistema Operativo Compilatore Maurizio Palesi Salvatore Serrano Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 1 Il Sistema

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

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

Introduzione alla Programmazione ad Oggetti in C++

Introduzione alla Programmazione ad Oggetti in C++ Introduzione alla Programmazione ad Oggetti in C++ Lezione 1 Cosa è la Programmazione Orientata agli Oggetti Metodologia per costruire prodotti software di grosse dimensioni che siano affidabili e facilmente

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

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

ALL. C AFFIDAMENTO AI SENSI DELL ART. 125, COMMI 10 E 11, DEL D.LGS. 163/2006 E S.M.I. DELLA PROGETTAZIONE E REALIZZAZIONE DI UN

ALL. C AFFIDAMENTO AI SENSI DELL ART. 125, COMMI 10 E 11, DEL D.LGS. 163/2006 E S.M.I. DELLA PROGETTAZIONE E REALIZZAZIONE DI UN ALL. C AFFIDAMENTO AI SENSI DELL ART. 125, COMMI 10 E 11, DEL D.LGS. 163/2006 E S.M.I. DELLA PROGETTAZIONE E REALIZZAZIONE DI UN PORTALE WEB NELL AMBITO DELLA MISURA 2.6. DEL POI ENERGIA FESR 2007 2013

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

Ciclo di vita del software

Ciclo di vita del software Operatore Informatico Giuridico Informatica Giuridica A.A 2003/2004 I Semestre Ciclo di vita del software Lezione 2 prof. Monica Palmirani Hardware e Software - prima definizione Hardware: parte fisica

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

INGEGNERIA DEL SOFTWARE

INGEGNERIA DEL SOFTWARE INGEGNERIA DEL SOFTWARE DESIGN Avvertenza: gli appunti si basano sul corso di Ingegneria del Software tenuto dal prof. Picco della facoltà di Ingegneria del Politecnico di Milano (che ringrazio per aver

Dettagli

A3_1 V2.2 Analisi dei Requisiti e Specifica Significato, motivazioni e processi

A3_1 V2.2 Analisi dei Requisiti e Specifica Significato, motivazioni e processi Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE Paolo Salvaneschi A3_1 V2.2 Analisi dei Requisiti e Specifica Significato, motivazioni e processi Il contenuto del documento è liberamente

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

Calcolo numerico e programmazione. Sistemi operativi

Calcolo numerico e programmazione. Sistemi operativi Calcolo numerico e programmazione Sistemi operativi Tullio Facchinetti 25 maggio 2012 13:47 http://robot.unipv.it/toolleeo Sistemi operativi insieme di programmi che rendono

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

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

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

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

CAPITOLO 1 I SISTEMI OPERATIVI

CAPITOLO 1 I SISTEMI OPERATIVI CAPITOLO 1 I SISTEMI OPERATIVI Introduzione ai sistemi operativi pag. 3 La shell pag. 3 Tipi di sistemi operativi pag. 4 I servizi del sistema operativo pag. 4 La gestione dei file e il file system Il

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

COMPA Bologna 7/8/9 novembre 2006. ITIL / CMDBuild: un esempio di progetto di BPR e riuso in ambito ICT

COMPA Bologna 7/8/9 novembre 2006. ITIL / CMDBuild: un esempio di progetto di BPR e riuso in ambito ICT COMPA Bologna 7/8/9 novembre 2006 ITIL / CMDBuild: un esempio di progetto di BPR e riuso in ambito ICT 1 Motivazioni del progetto (1) Il Servizio Sistemi Informativi e Telematici del Comune di Udine è

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

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

Use Case Driven Object Modeling: ICONIX

Use Case Driven Object Modeling: ICONIX Use Case Driven Object Modeling: ICONIX Un esempio di specifica, analisi, progetto e sviluppo utilizzando ICONIX Ditta di Noleggio Dvd Un sistema per la gestione di una ditta di noleggio dvd che ha più

Dettagli

Software. Definizione, tipologie, progettazione

Software. Definizione, tipologie, progettazione Software Definizione, tipologie, progettazione Definizione di software Dopo l hardware analizziamo l altra componente fondamentale di un sistema di elaborazione. La macchina come insieme di componenti

Dettagli

Progetto: JNSIL LEAF. Presentazione: nuova procedura Java based e cross Platform per la gestione di LEAsing e Finanziamenti

Progetto: JNSIL LEAF. Presentazione: nuova procedura Java based e cross Platform per la gestione di LEAsing e Finanziamenti Progetto: JNSIL LEAF Presentazione: nuova procedura Java based e cross Platform per la gestione di LEAsing e Finanziamenti Negli ultimi anni si è diffuso il trend di trasformare applicazioni pensate per

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

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Fondamenti di Informatica

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Fondamenti di Informatica Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Fondamenti di Informatica Linguaggi di Programmazione Michele Tomaiuolo Linguaggi macchina I

Dettagli

Introduzione alla Progettazione per Componenti

Introduzione alla Progettazione per Componenti Introduzione alla Progettazione per Componenti Alessandro Martinelli 6 ottobre 2014 Obiettivo del Corso Il Progetto Software Reale Il Componente Software La Programmazione Ad Oggetti Fondamenti di Informatica

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

Check list per la valutazione di adeguatezza e Indice di adeguatezza

Check list per la valutazione di adeguatezza e Indice di adeguatezza Check list per la valutazione di adeguatezza e Indice di adeguatezza DigitPA 00137 Roma - viale Marx, 43 Pagina 1 di 16 Indice 1. PREMESSA... 3 2. ELEMENTI DI VALUTAZIONE DELL ADEGUATEZZA DELLA SOLUZIONE...

Dettagli

INGEGNERIA DEL SOFTWARE

INGEGNERIA DEL SOFTWARE INGEGNERIA DEL SOFTWARE SPECIFICA DEI REQUISITI Avvertenza: gli appunti si basano sul corso di Ingegneria del Software tenuto dal prof. Picco della facoltà di Ingegneria del Politecnico di Milano (che

Dettagli

CAPITOLATO TECNICO PER LA COSTRUZIONE, GESTIONE E MANUTENZIONE SITO WEB ISTITUZIONALE DELL UNIONE DEI COMUNI DELL APPENNINO BOLOGNESE.

CAPITOLATO TECNICO PER LA COSTRUZIONE, GESTIONE E MANUTENZIONE SITO WEB ISTITUZIONALE DELL UNIONE DEI COMUNI DELL APPENNINO BOLOGNESE. CAPITOLATO TECNICO PER LA COSTRUZIONE, GESTIONE E MANUTENZIONE SITO WEB ISTITUZIONALE DELL UNIONE DEI COMUNI DELL APPENNINO BOLOGNESE. Articolo 1 Oggetto dell appalto 1. L appalto ha per oggetto la progettazione,

Dettagli

Prefazione. Contenuti

Prefazione. Contenuti Prefazione Il sistema operativo costituisce uno dei componenti fondamentali di ogni sistema di elaborazione, in particolare è quello con cui l utente entra direttamente in contatto quando accede al sistema,

Dettagli

La documentazione del progetto (p.278)

La documentazione del progetto (p.278) La documentazione del progetto (p.278) La qualità di un progetto viene valutata anche in base alla documentazione acclusa. I benefici di una buona documentazione sono sempre tangiili. La documentazione

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

Dettaglio dei corsi in aula

Dettaglio dei corsi in aula L offerta formativa Dettaglio dei corsi in aula Software Engineering Object Oriented Analysis and Design: fondamenti e principi dell object orientation. Dall analisi alla progettazione. I Design Pattern.

Dettagli

11. Evoluzione del Software

11. Evoluzione del Software 11. Evoluzione del Software Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) 11. Evoluzione del Software 1 / 21 Evoluzione del Software - generalità Cosa,

Dettagli

Introduzione al Calcolo Scientifico

Introduzione al Calcolo Scientifico Introduzione al Calcolo Scientifico Corso di Calcolo Numerico, a.a. 2010/2011 Francesca Mazzia Dipartimento di Matematica Università di Bari Francesca Mazzia (Univ. Bari) Introduzione al Calcolo Scientifico

Dettagli

Modelli di Processo. www.vincenzocalabro.it

Modelli di Processo. www.vincenzocalabro.it Modelli di Processo Il Modello del Processo Il modello del processo stabilisce i principi di base su cui si fonda lo sviluppo del software (e a cui è dovuto il successo o l insuccesso) Non esiste un unico

Dettagli

Introduzione. Capitolo 1

Introduzione. Capitolo 1 Capitolo 1 Introduzione Architecture is the set of design decisions that you wish you could get right early in a project, but that you are not necessarily more likely to get them right than any other.

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

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

12. Evoluzione del Software

12. Evoluzione del Software 12. Evoluzione del Software Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) 12. Evoluzione del Software 1 / 21 Evoluzione del Software - generalità Cosa,

Dettagli

Introduzione al corso

Introduzione al corso Corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Meccanica (A-K) Ing. Agnese Pinto 1 di 21 Informazioni utili Ing. Agnese Pinto: Contatti: Laboratorio di Sistemi Informativi (SisInfLab)

Dettagli

Object-Relational Mapping

Object-Relational Mapping Object-Relational Mapping Versione Preliminare Antonella Poggi Dipartimento di informatica e Sistemistica Sapienza Università di Roma Progetto di Applicazioni Software Anno accademico 2008-2009 Questi

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

INGEGNERIA DEL SOFTWARE

INGEGNERIA DEL SOFTWARE INGEGNERIA DEL SOFTWARE INTRODUZIONE Avvertenza: gli appunti si basano sul corso di Ingegneria del Software tenuto dal prof. Picco della facoltà di Ingegneria del Politecnico di Milano (che ringrazio per

Dettagli

Introduzione al Calcolo Scientifico

Introduzione al Calcolo Scientifico Introduzione al Calcolo Scientifico Corso di Calcolo Numerico, a.a. 2008/2009 Francesca Mazzia Dipartimento di Matematica Università di Bari Francesca Mazzia (Univ. Bari) Introduzione al Calcolo Scientifico

Dettagli

Il modello RAD 1. Rapid Application Development punta a un ciclo di sviluppo molto breve

Il modello RAD 1. Rapid Application Development punta a un ciclo di sviluppo molto breve Il modello RAD 1 Rapid Application Development punta a un ciclo di sviluppo molto breve adattamento del modello a cascata in cui l obiettivo di uno sviluppo rapido è raggiunto grazie a strategie costruttive

Dettagli