La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Ingegneria del SW.

Presentazioni simili


Presentazione sul tema: "Ingegneria del SW."— Transcript della presentazione:

1 Ingegneria del SW

2 Programma Principi di ingegneria del software Processo software
Ciclo di vita Definizione del problema Analisi dei requisiti e specifiche: modelli semantici, data-flow, viewpoint, metodi formali, concezione object, reti di Petri Progettazione Collaudo Mantenimento, re-engineering Gestione della configurazione Qualità: garanzia, norme, metriche Gestione manageriale: personale, costo, pianifica Riuso Design Pattern UML

3 Cos’è L’ingegneria del SW è un campo della scienze del computer che si occupa della costruzione di sistemi software importanti e complessi che vengono sviluppati da equipe di ingegneri. Questi sistemi esistono spesso in più versioni e sono in servizio per più anni. Scienze del computer Cliente Problema Teorie Funzioni del computer Computer = tool per risolvere un problema. Il SW subisce delle variazioni (modifiche, adattamenti, vari ambienti…). Mentre si impara a programmare bene non si insegna a come costruire migliori sistemi software. La maggiore parte dei problemi sono ampi e non sono mai stati risolti. Dunque si deve procedere ad un analisi. Ingegneria del Software Strumenti e Tecniche per Risolvere il problema

4 Cos’è Metodi  procedure formali Strumenti
Procedura  combinazione di strumenti e tecniche Metodo = procedure formale x produrre un risultato Paradigma  style

5 I primi passi nell’ ingegneria del software
Apparse negli anni 70 per rispondere alla “crisi del software” quando si è Reso conto che il SW superava il costo materiale HW (oggi lo supera ampiamente). Crisi del SW Costo SW vs HW

6 I primi passi del sviluppo software
‘50-’65 (programmer) Elaborazione batch Distribuzione limitata Software personalizzato, scritto da una sola persona, motivata, esperta ‘65-’73 (software engineering / software crisis) Scalare da sistemi SW piccoli a grandi Tempo reale, multiutenza Basi dati Pacchetti software commerciali Turn-over del programmatore Cambiamenti nel SW difficili da gestire gestione strumenti metodi tecniche ‘73-’88 Sistemi distribuiti Hardware a basso costo Crescita del mercato Ricerca

7 I primi passi del sviluppo software (2)
’87- … Sistemi da scrivania potenti Tecnologia oggetto Strumenti di 4 generazione Sistemi esperti / Reti neurali Elaborazione parallela Rete web Open-source

8 Crisi del SW: una sfida permanente
Matenimento e evoluzione dei SW specifici . adattamento ai nuovi bisogni dei clienti e dell’impresa . gestione dell’organizzazione del sw Eterogeneità dei sistemi . messa in rete di sistemi ibridi . portabilità SW su varie piattaforme (windows, linux, ...) Sistemi più complessi (millioni di linee di codice, migliaiai di tabelle nelle basi di dati, e sono eseguiti da numerosi calcolatori) Se queste sfide non vengono affrontate presto, i sistemi sono consegnati in ritardo, costano più del previsto, e con un livello di qualità inaccettabilmente povero.

9 Definizioni di Ing SW Definizione 1 Definizione 2
Disciplina di scienze del computer che offre i metodi e le tecniche per sviluppare e mantenere la qualità di un software, In sintesi una disciplina che consente di risolvere un problema Definizione 2 E’ lo studio dei principi, metodi e strumenti per sviluppare e mantenere i sistemi software

10 Definizione IEEE IEEE std ’s Standard Glossary of Software Engineering Terminology Applicazione di un approccio sistematico, disciplinato e quantificabile per lo sviluppo, l’operatività e la manutenzione del software

11 Ciclo di vita del software
Cambiamenti in ING. SW Tecno. Oggetto Reuso Ciclo di vita del software Modello a cascata Desktop Computing Tempo mercato Cambiamenti in Ingegneria del Software Economia Interfaccia utente Rete

12 Esempi fallimenti Servizio ambulanze per London
500 pazienti al giorno per 750 veicoli Unificazione di 3 servizi, ottimizzazione di percorsi Guida vocale degli autisti Risultati 3 versioni, costo totale Euro L’ultima versione abbandonata dopo soli 3 giorni d’uso Analisi errata del problema. Memoria non liberata.

13 Esempi fallimenti Oslo (’93) Aeroporto Denver (’94)
Errore sistema di conto dei voti Nuove elezioni Aeroporto Denver (’94) Sistema di smistamento dei bagagli Inaugurazione dell’aeroporto ritardata di 18 mesi $ al giorno di perdita (costi + mancati guadagni) Realizzazione difettosa

14 Esempi fallimenti Ariane V (’95)
Esplosione in volo – costo di 5,8 Miliardi di Euro Conversione da un numero floating point di 64-bit a signed integer di 16-bit . Alcuni moduli ripresi da Ariane IV senza nuova validazione. Mars Climate Orbiter & Mars Polar Lander (’99) Difetti nel software hanno causato il fallimento delle missioni. Errore nel calcolo del’orbito: misure di unità anglosassoni piuttosto che metriche. Costo di 120 M$ Therac-25 Macchinario per la radioterapia. Trattamento con 16,000–25,000 rad al posto di 180. 5 morti. Errori di programmazione nel controllo della tastiera.

15 Esempi fallimenti Y2K Bug 2000 Anno codificato su 2 caratteri
Costo sarebbe di 300 Miliardi $ California Department of Motor Vehicles (DMV) Introduzione nuove tecnologie nella gestione delle patente Progetto interrotto in 93 dopo un costo di 45 Milioni $ Progetto volontarie ma non convincente per gli utenti come i dirigente Specifiche anche confuse

16 Statistica progetti Standish Group CHAOS report

17 Statistica progetti Standish Group International, Inc

18 Fallimento Progetti iniziati abbandonati:
Non conformità (non rispetto capitolato d’oneri) Non adeguazione della realizzazione rispetto al bisogno finale Ritardo troppo importante 90% superanno il budget (50% hanno costato di più)

19 Principali cause di fallimenti
Complessità Cambiamenti (costo 10 volte più elevato se in fase di sviluppo piuttosto che in partenza, 100 se in fase di produzione). Il SW non si consuma ma diventa obsoleto. Importanza del mantenimento del sistema sotto-stimato Debolezza dei tests effettuati

20 Apporto dell’ingegneria del software
Hotel Hyatt Sistema di prenotazione Risultati Riuscita grazie al coinvolgimento utenti, sostegno dirigenti Specifiche chiare e definizione modulare del progetto 31 % progetti falliti in 1995 18 % progetti falliti in 2004

21 Obiettivi dell’ingegneria del software
L’ingegneria del SW si preoccupa dei processi di fabbricazione del SW, In modo che i criteri seguenti siano soddisfatti: Sistema fabbricato corrisponde ai bisogni degli utenti Qualità corrisponde al contratto iniziale (validità, affidabilità, robustezza, riusabilità, tracciabilità,…). I costi rimangono nei limiti previsti all’origine I tempi rimangono nei limiti previsti all’origine

22 Tipi di sistemi da produrre
Importanti sistemi di gestione (sistemi d’informazione); spesso sistemi transazionale costruiti su db centrale Sistemi in tempi reali che devono rispondere a degli eventi nei limiti di tempo predefiniti e stretti. Sistemi distribuiti su rete di macchine (distribuzione dei dati e/o trattamenti), “nuove architetture” legate ad internet. Embedded system e sistemi critici interfacciati con un sistema da controllare (es: aeronautica, centrali nucleari,…).

23 Chi è coinvolto ?

24 Riferimenti  C.Ghezzi, M.Jazayeri, D.Mandrioli, "Fundamentals of Software Engineering" Prentice -Hall, 1991  I.Sommerville, "Software Engineering", 5th ed. Addison Wesley, 1995  G.Kotonya, I.Sommerville, "Requirements Engineering" Wiley, 1997  Roger S.Pressman, "Principi di Ingegneria del Software", 3rd Ed. Academic Press, 2002  Shari Lawrence Pfleeger “Software Engineering theory and practice” International Edition, 1998  Luigi Buglione “Misurare il Solftware” FrancoAngeli, 1999  Martin Fowler “UML Distilled” Addison-Wesley, 2000  Leszek A.Maciaszek “Sviluppo di sistemi informativi con UML” Addison-Wesley, 2002 A.Binato, A.Fuggetta, L.Sfardini “Ingegneria del software – Creatività e metodo” Addison-Wesley, 2006


Scaricare ppt "Ingegneria del SW."

Presentazioni simili


Annunci Google