Slide 1 Lezione 1. La disciplina dellIngegneria del Software, e il software come prodotto [GJM91, Capp. 1, 2] [S2001, Cap. 1] La disciplina S. E. - generalità

Slides:



Advertisements
Presentazioni simili
USABILITÁ Sembra banale, ma….
Advertisements

EUCIP IT Administrator Modulo 4 - Uso Esperto della Rete Reti informatiche: Introduzione AICA © 2005.
CALENDARIO FORMAZIONE LISEM 2004/2005 Labirinto, test sul potenziale imprenditoriale 01/10/2004 (ven) h – Tecniche creative e pensiero propositivo.
1 Introduzione ai calcolatori Parte II Software di base.
INGEGNERIA DEI PROCESSI GESTIONALI
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità D1 Architetture di rete.
Unità D1 Architetture di rete.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità D1 Architetture di rete.
Corso di Laurea Magistrale in Informatica - SITI Corso di Laurea Magistrale in Informatica Sistemi Informativi e Tecnologie per lInterazione (SITI) 11/6/2008.
1 Il punto di vista Un sistema è una parte del mondo che una persona o un gruppo di persone, durante un certo intervallo di tempo, sceglie di considerare.
Le aziende di Software La realizzazione del software si articola in alcune fasi: - analisi accurata del problema - individuazione della modalità di risoluzione.
1 9: Progettazione Architetturale Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,
1 14. Verifica e Validazione Come assicurarsi che il software corrisponda alle necessità dellutente? Introdurremo i concetti di verifica e validazione.
2. INGEGNERIA DI SISTEMA Il software è inutile a meno che non sia combinato con componenti hardware per formare un “sistema” Introdurremo il concetto di.
Studiare INFORMATICA all’Università Ca’ Foscari
Il Software: Obiettivi Programmare direttamente la macchina hardware è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica del computer.
Ingegneria del Software Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dellInformazione Università di Siena Via Roma 56 – – SIENA Uff
Distributed Object Computing
Introduzione allinformatica. Cosè linformatica ? Scienza della rappresentazione e dellelaborazione dellinformazione ovvero Studio degli algoritmi che.
Architettura Three Tier
Corso di Laurea in Biotecnologie Informatica (Programmazione)
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
Corso di Informatica (Programmazione)
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Problemi e algoritmi Anno Accademico 2009/2010.
Corso di Informatica per Giurisprudenza Lezione 5
1 2. Analisi degli Algoritmi. 2 Algoritmi e strutture dati - Definizioni Struttura dati: organizzazione sistematica dei dati e del loro accesso Algoritmo:
Economia politica II – Modulo di Macroeconomia
Struttura dei sistemi operativi (panoramica)
CAPITOLO 2 INTRODUZIONE AL LINGUAGGIO JAVA E ALL'AMBIENTE HOTJAVA.
DHTML: Modello degli Eventi 1. 2 Sommario Introduzione Evento onclick Evento onload Gestione errori con onerror Gestione mouse con levento onmousemove.
2) Sistemi operativi Lab. Calc. AA2004/05 - cap.2.
SOFTWARE I componenti fisici del calcolatore (unità centrale e periferiche) costituiscono il cosiddetto Hardware (alla lettera, ferramenta). La struttura.
Il Problema della Compatibilità Anno 2000 Ministero del Tesoro del Bilancio e della Programmazione Economica CONSIP S.p.A.
Labortaorio informatica 2003 Prof. Giovanni Raho 1 INFORMATICA Termini e concetti principali.
Gaetano Santucci Centro Nazionale per l’Informatica
I SISTEMI OPERATIVI.
La struttura organizzativa e informativa del controllo
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
Norman Endpoint Protection Sicurezza all'avanguardia in tutta facilità!
Modulo 1 - Hardware u.d. 3 (syllabus – 1.3.5)
ISOIVA (LOCALE) TO ISOIVA (WEB) RIPARTIZIONE INFORMATICA UFFICIO APPLICATIVI AMMINISTRATIVI 13/04/2011 UNIVERSITÀ DEGLI STUDI DI FERRARA 1.
Scheda Ente Ente Privato Ente Pubblico. 2ROL - Richieste On Line.
STRUTTURA GENERALE DI UN ELABORATORE
Concetti di base sul Software dei PC Unitre Anno
Partite insieme a noi per un viaggio nel mare dei numeri del Vostro Business liberi da ogni limite…
VIRTUALIZZAZIONE Docente: Marco Sechi Modulo 1.
Firenze – Festival della Creatività 2009 Comm.it s.r.l. – Ing. Davide Rogai, Ph.D. – Software >> fast on demand software.
Il Sistema Operativo (1)
AICA Corso IT Administrator: modulo 4 AICA © EUCIP IT Administrator Modulo 4 - Uso Esperto della Rete Risoluzione dei Problemi e Analisi del Traffico.
LE COMPONENTI DEL SISTEMA INFORMATIVO
Ingegneria del software Modulo 1 -Introduzione al processo software Unità didattica 1 - Cicli di vita Ernesto Damiani Università degli Studi di Milano.
Design Goals Definiamo le fondamenta dello sviluppo del sistema.
Analisi dei Requisiti (Requirements Engineering) Seminario RE Università degli Studi di Padova, 12 Gennaio 2004.
Alla fine degli anni quaranta nasceva il mito del cervello elettronico, e tutte le attività connesse allutilizzo del computer venivano indicate tramite.
Scelta di un modello di processo: esempio
Commenti alle Attività Generiche. Attività Generiche (Pressman) Principali: Comunicazioni; Pianificazione; Modellazione; Costruzione, Dispiegamento Collaterali:
Progettazione concettuale di SI basati su Web
Lezione 1 Panoramica sui paradigmi di programmazione
1 Tecnologie per la domotica: situazione attuale e prospettive Ing. Paolo Mazzetti Firenze, 19 maggio 2005 Domotica.
INTERFACCE Schede elettroniche che permettono al calcolatore di comunicare con le periferiche, che possono essere progettate e costruite in modo molto.
Tecnologie Informatiche ed Elettroniche per le Produzioni Animali (corso TIE) CORSO LAUREA MAGISTRALE IN SCIENZE E TECNOLOGIE DELLE PRODUZIONI ANIMALI.
LINGUAGGI DI PROGRAMMAZIONE Per comunicare comandi e dati ad un computer occorre un particolare linguaggio detto LINGUAGGIO MACCHINA, che è un insieme.
MCSA Mobile Code System Architecture Infrastruttura a supporto della code mobility Pierfrancesco Felicioni Reti di Calcolatori L.S. 2005/2006.
Capitolo 1 Il middleware
Sistemi basati su conoscenza (agenti intelligenti) Prof. M.T. PAZIENZA a.a
Sistemi operativi di rete Ing. A. Stile – Ing. L. Marchesano – 1/18.
Riunione CCR 21/12/2005 Gruppo Storage Relazione sulla analisi di infrastrutture Fibre Channel e presentazione attivita’ per il 2006 Alessandro Brunengo.
Implementazioni di un analizzatore di protocollo Esistono quattro fondamentali tradeoff per la realizzazione di un analizzatore di protocollo:  Analisi.
Dal problema al programma – ciclo di sviluppo del software La scrittura del programma è solo una delle fasi del processo di sviluppo di un'applicazione.
COMPONENTI DI UN SISTEMA INFORMATICO HardwareSoftware Parte fisicaComponenti logiche Componenti fisiche (elettroniche e meccaniche) di un computer Istruzioni.
Transcript della presentazione:

Slide 1 Lezione 1. La disciplina dellIngegneria del Software, e il software come prodotto [GJM91, Capp. 1, 2] [S2001, Cap. 1] La disciplina S. E. - generalità Caratteristiche del prodotto software. Requisiti di qualità in diverse aree applicative

Slide 2 Software Engineering Si occupa di teorie, metodi, strumenti per progettare, costruire e mantenere grandi sistemi software … …cosi grandi da richiedere un TEAM di sviluppatori --> problemi di comunicazione fra persone, anche non tecnici e da realizzare entro un dato TEMPO e BUDGET (cost- effective software development). Parnas: Multi-person construction of multi-version software.

Slide 3 Sempre piu sistemi sono controllati via software Le economie dei paesi evoluti dipendono dal software (nellindustria, nelle amministrazioni)...e le spese di ingegneria del software rappresentano una frazione significativa del loro P.I.L. Dunque i progressi in questo settore possono avere un forte impatto economico Importanza della disciplina

Slide 4 Prospettiva storica Il termine SE viene introdotto in una conferenza USA del 1968 sulla crisi del software derivata dalla accresciuta potenza dei computer di terza generazione. I costi dellhardware crollavano, quelli del software crescevano: si sapevano scrivere buoni programmi (strutturati, efficienti), non buoni sistemi. Molti insuccessi in 30 anni, anche recenti AT&T SW switching system failed: long distance call paralized for almost 24 hours in USA. DENVER Airport: difetti software --> ritardo di 9 mesi nellapertura dellaeroporto. Perdite: mezzo milione di dollari al giorno. Disciplina ancora in evoluzione (vedi dibattito su Formal Methods). Piani attuali per un curriculum universitario SE autonomo in USA.

Slide 5 Differenze fra S.E. e Computer Science Computer Science si occupa di teorie e fondamenti; Software Engineering degli aspetti pratici dello sviluppo di sistemi software Le teorie della C. S. non forniscono attualmente fondamenta complete per S. E....

Slide 6 Cosa è un processo software? Un insieme di attività il cui obiettivo è lo sviluppo e levoluzione di un sistema software Attività fondamentali in qualunque processo software: Specifica - cosa il sistema deve fare, e sotto quali vincoli Sviluppo - produzione del software Validazione - appurare che il sistema corrisponda alle aspettative del cliente Evoluzione - modifiche del sistema in risposta a evoluzioni dei requisiti iniziali

Slide 7 Esistono vari modelli (tipi) di processo software Waterfall Evolutionary development Formal transformation Integration from reusable components Un modello puo essere descritto in termini di workflow: sequenza di attività di team o individui, e inter- relazioni data-flow: insieme di attività (di persone o computers) e loro connessioni input-output role-action: chi (persone) fa che cosa

Slide 8 Cosa sono i metodi di ingegneria del software? Sono approcci allo sviluppo software che includono modelli e notazioni (spesso grafici) per la descrizione di aspetti del sistema regole, o vincoli che i modelli devono (mutuamente) soddisfare raccomandazioni pragmatiche per la buona progettazione guida alluso di un dato modello di sviluppo (chi svolge quali attività in quale ordine…) I metodi sono piu concreti, specifici dei modelli di sviluppo diversi metodi possono far riferimento, ad esempio, al modello waterfall

Slide 9 Cosa è il CASE (Computer-Aided Software Engineering) Strumenti (software) per il supporto semi- automatico di attività del processo software. Spesso associati a un metodo specifico es: strumento: Rational Rose; metodo: Rational Unified Process Upper-CASE Supportano le attività iniziali del processo: requirements, design Lower-CASE Supportano le attività finali del processo: programming, debugging and testing

Slide 10 Nello sviluppo di sistemi integrati i costi della parte software (spesso la piu creativa) tendono a dominare su quelli hardware. Il prezzo del software installato su un PC puo superare quello dellhardware… La manutenzione del sw costa piu dello sviluppo. La produzione su larga scala del pacchetto software Rational Rose Modeller Edition, a sviluppo completato, costa circa un euro a copia (il costo di un CD) quella della FIAT Stilo no I costi dipendono fortemente dai requisiti non -funzionali es: performance, reliability Quali sono i costi del software?

Slide 11 Possibili ripartizioni di costi Costi di solo sviluppo: SpecificationDesignImplem.Integration and testing Costi di sviluppo con il modello evolutionary: Sviluppo Evolutionary develop.System testing Costi di sviluppo, manutenzione, evoluzione del sistema: Spec. Manutenzione e/o Evoluzione Sistemi software specifici (client-contractor) Development Spec. System testing (per piu piattaforme/config.) Sistemi software generici (per PC)

Slide 12 Quali le sfide attuali di S.E. ? Utilizzo di legacy systems I vecchi sistemi devono essere manutenuti, aggiornati, integrati nei nuovi sistemi (esigenza economica) Eterogeneità I sistemi tendono ad essere distribuiti e ad utilizzare diverse piattaforme hard/soft »architettura Microsoft.net »coordination languages Tempi di consegna sempre piu brevi …entro ieri…

Slide 13 Le proprietà del prodotto software Comprende tutto linsieme degli artefatti del processo di sviluppo: requisiti, specifiche, progetti, programmi, files di configurazione documentazione di sistema, documentazione utente sito web per il download di nuove versioni, correzioni, informazioni… Prodotto logico, non fisico: molto malleabile Si può modificare molto facilmente, anche indipendentemente dal progetto o dalla specifica…(!) »… mentre per modificare un aereo si riparte sicuramente dal progetto

Slide 14 Due tipi di prodotto software Prodotti generici Sistemi stand-alone prodotti da una azienda di sviluppo software (es: Microsoft) e offerti a un pubblico vasto, non necessariamente specializzato. In crescita a partire dagli anni 80, con la diffusione dei PC Requisiti e specifica sono prodotti dallo stesso sviluppatore Prodotti specifici (bespoke) Sistemi richiesti da un committente, o cliente, che è lorigine di requisiti e specifica Il maggior volume di affari e sui prodotti generici, Il maggior sforzo di sviluppo su quelli specifici.

Slide 15 Proprietà interne ed esterne Si distinguono proprietà: Esterne: quelle visibili dallutente finale. Interne: quelle che riguardano chi lo sviluppa, lo mantiene, lo cambia Le interne aiutano a ottenere le esterne: esempio, la verificabilità aiuta a ottenere la affidabilità. Limportanza di una data proprietà dipende dal tipo di prodotto e dal suo ambiente di utilizzo. In sistemi safety-critical e real-time, dependability e efficienza sono cruciali

Slide 16 Correttezza Un programma, o la implementazione di un sistema, è funzionalmente corretto se si comporta sempre come definito nella specifica dei requisiti funzionali. Viene verificata con metodi sperimentali (testing) o analitici (formal verification).

Slide 17 Dependability Mix di reliability, safety, security… Reliable (affidabile) Proprietà statistica, espressa in termini della probabilità che il sistema operi come previsto in un determinato intervallo temporale. »Non implica correttezza: i programmi artigianali sono corretti quelli professionali hanno known bugs. Failure rate: numero di fallimenti per unità di tempo, o per n. di transazioni o di program runs Safety critical Quando un fallimento software può causare perdite umane Secure Protezione da accessi non autorizzati, e da conseguenti danni economici

Slide 18 Efficienza (efficiency, performance) Un sistema è efficiente se usa le sue risorse in maniera economica. Tipicamente: usare poco spazio (disco, memoria centrale) e poco tempo per fornire i propri servizi. Questa proprietà varia col miglioramento della tecnologia hardware (MegaBytes e MegaHertz). Performance evaluation mediante: »analisi di complessità degli algoritmi (caso medio, caso peggiore) »misura sul campo »analisi matematica di un modello »simulazione sul modello.

Slide 19 Usabilità (usability, user-friendliness) Documentazione e user-interface appropriate Proprietà soggettiva. Es. »Spiegazioni verbose e menù sono apprezzati dall utente inesperto, non dallesperto. Proprietà relativa: adeguamento alle soluzioni più diffuse » Mac --> Windows »In futuro…? In sistemi senza interfaccia utente (embedded): facilità di configurazione e adattamento allambiente hardware. Ricerca su nuovi paradigmi di interazione uomo-macchina

Slide 20 Robustezza Comportamento ragionevole anche in casi non previsti nei requisiti (es. dati input scorretti o disk error). Indipendente dalla correctness. Es: un ponte che crolla per una piena di estrema gravità. Diversi gradi di robustness vanno applicati a diversi casi – per esempio: linput al sistema viene da un utente inesperto o da un sensore?

Slide 21 Interoperabilità Capacità di cooperare con altri sistemi. Es. 1 - Un amplificatore HiFi accetta giradischi e CD Es. 2 - Cooperazione fra le diverse componenti (Spreadsheet, Word processor, Mail, Presentation) di pacchetti software integrati. Viene ottenuta standardizzando le interfacce.

Slide 22 Manutenibilità - evolvibilità Deve essere possibile correggere e far evolvere il software per riflettere nuovi requisiti Ma i cambiamenti devono interessare tutta la pila di documenti del processo Es. - Il sistema di prenotazione aerea SABRE (American Airlines) è mantenuto ed accresciuto dagli anni 60.

Slide 23 Verificabilità La specifica, il design, il codice vengono realizzati in modo da semplificarne la verifica di proprietà. Certi linguaggi di specifica sono più verificabili di altri. Il codice può venire arricchito con software monitors.

Slide 24 Riusabilità Come evolvable ma riferito a nuovi prodotti, anziché a versioni dello stesso prodotto. Applicabile soprattutto a parti del sistema. Librerie FORTRAN, C, Java disponibili sul mercato. Proprieta ben realizzata in O-O Design (anche attraverso ereditarietà).

Slide 25 Portabilità Quando può girare in diversi ambienti (piattaforma HW o SW) Si può ottenere facendo utilizzare al sistema solo un sottoinsieme stabile di risorse dellambiente, o di istruzioni macchina.

Slide 26 Conflitti tra proprietà del software Esempio 1 Ottimizzare interfacce utente oppure lefficienza Esempio 2 Ottimizzare lefficienza oppure la manutenibilità (mediante riuso di componenti off-the shelf)

Slide 27 Requisiti di qualità in diverse aree applicative Information systems Real-time systems Distributed systems Embedded systems

Slide 28 Information systems Sistemi data-oriented. La loro funzione è gestire informazione. Costruiti attorno a un data base che viene manipolato mediante transazioni (create, retrieve, update, delete). Es.: banca, biblioteca, personale dipendente. Data integrity Non corruzione dei dati per malfunzionamenti del sistema Security Protezione da accessi non autorizzati

Slide 29 Data availability Quando e per quanto i dati diventano inaccessibili? Transaction performance Transazioni per unità di tempo.

Slide 30 Real-time systems Sistemi control-oriented. Devono rispondere a eventi esterni entro tempi prefissati, spesso (non sempre!) brevissimi. Es1. Sistema controllo edificio: aumento temperat. => allarme Es2. Controllo mouse - 1 click, 2 click. Tempi di risposta Essi caratterizzano la performance in sistemi generici, ma la correctness in sistemi real-time.

Slide 31 Distributed systems Insieme di computers collegati da rete (nodi + link) Banda larga e bassa error-rate ==> possibilità di distribuire le componenti del sistema. Distribuzione di dati o funzioni di calcolo ? Robust Tolleranza a fallimenti di nodi Tolleranza a fallimenti di link

Slide 32 Rendere distribuito un sistema può migliorare alcune sue proprietà: data-replication ==> reliability data-distribution ==> performance

Slide 33 Embedded systems La componente software è immersa in un sistema hardware specifico (non PC) e lo controlla. Es. Aereo, frigorifero, robot Requisiti meno stringenti per usabilità. Interfaccia uomo-macchina ===> interfaccia SW-HW Il Sistema è più evolvibile se si spostano funzionalità da HW a SW.