indietroavanti inizio 07/04/2014 ingegneria del sw nathalie morey [email protected] e-mail
TRANSCRIPT
Indietro AvantiInizioPresentazione corso
Programma
Principi di ingegneria del software
Definizione del problemaAnalisi dei requisiti e specifiche: modelli semantici, data-flow, viewpoint,
metodi formali, concezione object, reti di PetriProgettazioneCollaudoMantenimento, re-engineering
UML
Processo software
Ciclo di vita
Riuso
Design Pattern
Gestione della configurazione
Qualità: garanzia, norme, metriche
Gestione manageriale: personale, costo, pianifica
Indietro AvantiInizioPresentazione corso
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
Indietro AvantiInizioPresentazione corso
Cos’è
ClienteScienze delcomputer
TeorieFunzioni
del computer
Problema
Ingegneria delSoftware
Strumenti eTecniche perRisolvere il problema
L’ingegneria del SW è un campo della scienze del computer che si occupa della costruzione di sistemi software quanto importanti e complessi ad essere sviluppati da equipe di ingegneri. Questi sistemi esistono spesso in più versioni e sono in servizio per più anni.
Indietro AvantiInizioPresentazione corso
Cos’è
• Metodi procedure formali
• Strumenti
• Paradigma style
• Procedura combinazione di strumenti e tecniche
Indietro AvantiInizioPresentazione corso
I primi passi nell’ ingegneria del software
Costo SW vs HWCrisi del SW
Apparse negli anni 70 per rispondere alla “crisi del software” quando si èReso conto che il SW superava il costo materiale (oggi lo supera ampiamente).
Indietro AvantiInizioPresentazione corso
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
‘73-’88• Sistemi distribuiti• Hardware a basso costo• Crescita del mercato• Ricerca
gestionestrumenti
metoditecniche
Indietro AvantiInizioPresentazione corso
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
Indietro AvantiInizioPresentazione corso
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.
Indietro AvantiInizioPresentazione corso
Definizioni
Definizione 1
Disciplina di scienze del computer che offre i metodi e le tecnicheper 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 mantenerei sistemi software
Indietro AvantiInizioPresentazione corso
Definizione IEEE
Applicazione di un approccio sistematico, disciplinato e quantificabile per lo sviluppo, l’operatività e la manutenzione del software
IEEE std 610.12-1990’s Standard Glossary of Software Engineering Terminology
Indietro AvantiInizioPresentazione corso
Cambiamenti in ING. SW
Cambiamenti in Ingegneria
del Software
Tecno. OggettoReuso
Pb Waterfall
Tempo mercato
Rete
Interfaccia utente
Economia
Desktop Computing
Indietro AvantiInizioPresentazione corso
Esempi fallimenti
Servizio ambulanze per London
Unificazione di 3 servizi, ottimizzazione di percorsiGuida vocale degli autisti
Pb
3 versioni, costo totale 11 000 000 EuroL’ultima versione abbandonata dopo soli 3 giorni d’uso
Risultati
Analisi errata del problema. Memoria non liberata.
500 pazienti al giorno per 750 veicoli
Indietro AvantiInizioPresentazione corso
Esempi fallimenti
Oslo (’93)
Errore sistema di conto dei votiNuove elezioni
Aeroporto Denver (’94)
Sistema di smistamento dei bagagli
Inaugurazione dell’aeroporto ritardata di 18 mesi
$ 1 000 000 al giorno di perdita (costi + mancati guadagni)
Realizzazione difettosa
Indietro AvantiInizioPresentazione corso
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.
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.
Costo di 120 M$
Indietro AvantiInizioPresentazione corso
Esempi fallimenti
Y2K Bug 2000
Anno codificato su 2 caratteriCosto 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
Indietro AvantiInizioPresentazione corso
Statistica progetti
Standish Group CHAOS report. - 2009
Indietro AvantiInizioPresentazione corso
Statistica progetti
Standish Group International, Inc. - 2008
Indietro AvantiInizioPresentazione corso
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ù)
Indietro AvantiInizioPresentazione corso
Principali cause di fallimenti
➟Complessità
➟Importanza mantenimento sotto stimato
➟Debolezza dei tests
➟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.
Indietro AvantiInizioPresentazione corso
Apporto dell’ingegneria del software
31 % progetti falliti in 1995
18 % progetti falliti in 2004
Sistema di prenotazione
Riuscita grazia coinvolgimento utenti, sostegno dirigenti
Specifiche chiare e definizione modulare del progetto
Risultati
Hotel Hyatt
Indietro AvantiInizioPresentazione corso
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
Indietro AvantiInizioPresentazione corso
Tipi di sistemi a produrre
•Importanti sistemi di gestione (sistemi d’informazione); spesso sistemi transazionale costruiti su db centrale
• Sistemi 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,…).
Indietro AvantiInizioPresentazione corso
Chi è coinvolto ?