Ingegneria del Software



Documenti analoghi
Ingegneria del Software

Definizione di Open Source

Le licenze d uso. Le principali tipologie di licenze

Corso di Informatica

Cenni sull ingegneria del software e sulla qualità dei programmi

Concetti di base di ingegneria del software

Piano di gestione della qualità

Diritto d autore e banche di dati

LICENZE D'USO E TIPOLOGIE DI SOFTWARE

Software Gestionali Open Source per le PMI

Direttiva 98/84/CE del 20 novembre 1998, sulla tutela dei servizi ad accesso condizionato e dei servizi di accesso condizionato.

NOZIONI DI BASE DEL DIRITTO IL DIRITTO COME INSIEME DI REGOLE

GUIDA - Business Plan Piano d impresa a 3/5 anni

Guida alla prevenzione della pirateria software SIMATIC

Modulo 1. Concetti di base della Tecnologia dell Informazione ( Parte 1.8) Rielaborazione dal WEB: prof. Claudio Pellegrini - Sondrio.

S o f t w a r e L i b e r o : p e r c h é? a cura di don Paolo La Terra

Studio di Economia e consulenza Aziendale s.r.l. Attivati gli incentivi a favore delle imprese che si vogliono inserire nel mercato estero

Ciclo di vita del software

della manutenzione, includa i requisiti relativi ai sottosistemi strutturali all interno del loro contesto operativo.

Progettazione dei Sistemi di Produzione

Paolo Zatelli. Dipartimento di Ingegneria Civile e Ambientale Università di Trento. Open Source e Free Software. Open Source e Free Software

Architetture Applicative

TECNICO SUPERIORE DEI TRASPORTI E DELL INTERMODALITÀ

I brevetti software. Una minaccia per le imprese e la ricerca. Perché i brevetti sulle idee sono dannosi per lo sviluppo e la libera impresa

L'Open Source nella cultura giuridica italiana. -e anche al di fuori di essa

IL MARKETING E QUELLA FUNZIONE D IMPRESA CHE:

La progettazione centrata sull utente nei bandi di gara

ALTRA ECONOMIA. Le licenze nel software. di virtualmondo. terza parte del seminario sul software libero. per contatti

La correlazione tra la direttiva 98/34/CE e il regolamento sul reciproco riconoscimento

CAMERA DEI DEPUTATI PROPOSTA DI LEGGE COMINARDI, LOMBARDI, DI BATTISTA, TRIPIEDI, CIPRINI, CHIMIENTI, BALDASSARRE, BARONI

Il software: la tutela d autore

GESTIONE AVANZATA DEI MATERIALI

CONVEGNO BNL / ODCEC TORINO. Problematiche inerenti l utilizzo di prodotti a copertura dei rischi

Informatica giuridica. Prof. Alessandro Bugatti

Software Libero. Terra Futura - Firenze

Ambito della tutela del software I diritti esclusivi sul software Le licenze d uso Le licenze del software libero Le facoltà dell utilizzatore

Aspetti legali. Tutela legale del software

I modelli di qualità come spinta allo sviluppo

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

GESTIONE AVANZATA DEI MATERIALI

Osservatorio 2. L INDUSTRIA METALMECCANICA E IL COMPARTO SIDERURGICO. I risultati del comparto siderurgico. Apparecchi meccanici. Macchine elettriche

Perchè usare sw open source nelle scuole

Ciclo di vita del software: Tipologie di software

Specifiche dello sviluppo di un progetto software e indicazioni sulla documentazione e sulle modalità di esercizio delle prestazioni

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati

REGOLAMENTO DI ESECUZIONE FOTOCOPIE

PIL : produzione e reddito

INGEGNERIA DEL SOFTWARE. Prof. Paolo Salvaneschi

Il software. E' una serie di istruzioni eseguite dal PC.

OpenPsy: OpenSource nella Psicologia. Presentazione del progetto in occasione dell edizione 2004 del Webbit (Padova)

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

Allegato A al CCNL 2006/2009 comparto Ministeri

ISTITUTO TECNICO ECONOMICO MOSSOTTI

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

Ciclo di vita dimensionale

AA Corso di impianti elettrici. Lezione 3 - Legislazione

Lezione Introduzione

Provincia Autonoma di Bolzano Disciplinare organizzativo per l utilizzo dei servizi informatici, in particolare di internet e della posta

Università di Roma La Sapienza, Facoltà di Ingegneria

EU-StORe Indagine sulla qualità delle risorse didattiche aperte

IL PROCESSO DI FABBRICAZIONE (sviluppo nuovo prodotto)

Generazione Automatica di Asserzioni da Modelli di Specifica

LA FIRMA DIGITALE. Evoluzione della normativa italiana e componenti di base

PLC Sistemi a Logica Programmabile Il linguaggi di programmazione

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

In legenda sono riportate le fasi R, P, C/T e I/SA come specificato nella norma ISO/IEC

GESTIONE DELLE NON CONFORMITÀ E RECLAMI

ISO/IEC 2700:2013. Principali modifiche e piano di transizione alla nuova edizione. DNV Business Assurance. All rights reserved.

MService La soluzione per ottimizzare le prestazioni dell impianto

Format per la progettazione (di un unità formativa di xx ore per apprendere per competenze)

Percorso di formazione continua nell ambito del progetto La strada per domani 2 Modulo qualità e sviluppo

Introduzione. Il software e l ingegneria del software. Marina Mongiello Ingegneria del software 1

S T U D I O L E G A L E M I S U R A C A - A v v o c a t i, F i s c a l i s t i & A s s o c i a t i L a w F i r m i n I t a l y

Indagine Conciliazione e Flessibilità Oraria in Azienda

UNIVERSITÀ DEGLI STUDI DELL INSUBRIA Via Ravasi Varese

Il web server Apache Lezione n. 3. Introduzione

MANUALE ESPERTI PON 2007/2013

TECNICHE DI SIMULAZIONE

Scopo della lezione. Informatica. Informatica - def. 1. Informatica

PROMUOVERSI MEDIANTE INTERNET di Riccardo Polesel. 1. Promuovere il vostro business: scrivere e gestire i contenuti online» 15

ReStartApp. Edizione ) PRESENTAZIONE DELL IDEA DI IMPRESA ALLEGATO 2. N.B.: I campi contrassegnati con l asterisco (*) sono obbligatori

L ESEPRIENZA DELLO SPORTELLO: DATI STATISTICI

Corso di Informatica

2) PRESENTAZIONE DELL IDEA DI IMPRESA ALLEGATO 2 N.B.:

Viene utilizzato in pratica anche per accompagnare e supportare adeguatamente le richieste di finanziamenti agevolati e contributi a fondo perduto.

Ministero dell istruzione, dell università e della ricerca. Liceo Tecnologico. Indirizzo Elettrico Elettronico

Introduzione a Dev-C++

Il rapporto strutturale sul sistema economico produttivo della provincia di Bologna

PRESCRIZIONI PARTICOLARI DIRETTIVA 2006/42/CE RELATIVA ALLE MACCHINE Allegato X Garanzia Qualità Totale

CORSO DI FORMAZIONE IN OSTEOPATIA

Qualità e Certificazione certificazione di prodotto - Marcantonio Catelani Facoltà di Ingegneria Firenze

Leasing secondo lo IAS 17

Il modello generale di commercio internazionale

Dalla Business Idea al Business Plan - 1 -

Gestione del workflow

PON ISTITUTO DI ISTRUZIONE SECONDARIA SUPERIORE Distretto Scolastico n GINOSA (TA)

1 Università di Trento ed Euricse 2 Università dell Insubria, Varese

visto il trattato sul funzionamento dell Unione europea,

LA LEGGE SUL FRANCHISING. Confronto tra la raccolta di usi e la nuova legge

Transcript:

UNIVERSITA DI FIRENZE Facoltà di Ingegneria Ingegneria del Software Prof. Giacomo Bucci (aa 2011-2012) 1 Introduzione PROVVISORIO

Contenuto Cos è il SW Prodotto/processo Legislazione Categorie/tipi di software Dimensione economica/sociale Ingegneria del software Ciclo di vita Introduzione (aa 2011/12) G. Bucci 2

Cos è il software E Codice, ma non solo.. anche: documentazione, regole di impiego, manuali d uso,... Riguardato come prodotto di un processo industriale rispettando tempi, costi,.. E un prodotto speciale immateriale Introduzione (aa 2011/12) G. Bucci 3

Processo - prodotto Prodotto software: deve soddisfare requisiti di qualità come si misura la qualità? Processo software: Il processo software è molto simile ad una continua progettazione piuttosto che ad una produzione tradizionale (ciclo di vita) Introduzione (aa 2011/12) G. Bucci 4

Produzione Produzione di beni materiali: mezzi di produzione, forza lavoro, materie prime ForzaLav Mezzi proc Prodotto finito Materiali Produzione di software: In pratica è rilevante la sola forza lavoro

Prodotto speciale Il software è un prodotto immateriale prodotto di una attività intellettuale (progettazione continua) non c è un processo manifatturiero totalmente malleabile difficile da descrivere non si consuma facilmente copiabile Introduzione (aa 2011/12) G. Bucci 6

Legislazione In Europa non è brevettabile (negli Usa sì) il Consiglio dei ministri UE aveva emanato una direttiva a favore della brevettabilità il Parlamento europeo ha respinto la direttiva il 6 Luglio 2005 648 contro, 14 favorevoli, 18 astenuti E la prima volta che una direttiva del Consiglio viene respinta in seconda lettura!!! Esperienza americana: Brevettabilità = Contenziosi legali il 98% dei brevetti si dimostra inutile Introduzione (aa 2011/12) G. Bucci 7

In Italia (in Europa) Il SW è un opera di ingegno. Regolato dalla legge sul diritto d autore (248/2000) Copiare sw abusivamente (anche se non per profitto) è un illecito penale l Art 13 punisce da 6 mesi a 3 anni chi duplica abusivamente SW Il compratore non è affatto protetto!! E se fa un danno? Introduzione (aa 2011/12) G. Bucci 8

Art 13 Legge 248/2000 Chiunque abusivamente duplica, per trarne profitto, programmi per elaboratore o ai medesimi fini importa, distribuisce, vende, detiene a scopo commerciale o imprenditoriale o concede in locazione programmi contenuti in supporti non contrassegnati dalla Società italiana degli autori ed editori (SIAE), è soggetto alla pena della reclusione da sei mesi a tre anni e della multa da lire cinque milioni a lire trenta milioni. La stessa pena si applica se il fatto concerne qualsiasi mezzo inteso unicamente a consentire o facilitare la rimozione arbitraria o l elusione funzionale di dispositivi applicati a protezione di un programma per elaboratori. La pena non è inferiore nel minimo a due anni di reclusione e la multa a lire trenta milioni se il fatto è di rilevante gravità. Introduzione (aa 2011/12) G. Bucci 9

Categorie Commerciale (Windows XP) Shareware Freeware Opensource Non Opensource (Java) (prova + registrazione a 1 mese) (Linux) Public domain (non ci sono più diritti) Che fare? Comprare, affittare, sviluppare, far sviluppare???? Introduzione (aa 2011/12) G. Bucci 10

Shareware Può essere liberamente ridistribuito e utilizzato per un periodo di tempo di prova variabile (generalmente 30 giorni), dopodiché è necessario registrare il software presso la casa produttrice pagandone l'importo. La versione di prova ha alcune limitazioni rispetto alla versione completa quali l'impossibilità di stampare o salvare i files o simili, contenere al suo interno meccanismi di protezione tali da impedire di utilizzare il software dopo la scadenza ed altro. Una volta acquistata la versione completa viene generalmente fornito un Codice Seriale da inserire nell'applicativo per sbloccarne le funzioni senza dover effettuare una nuova installazione. Introduzione (aa 2011/12) G. Bucci 11

Freeware Software che viene distribuito in modo gratuito. Con o senza codice sorgente, a totale discrezione dell'autore e senza alcun obbligo al riguardo. È sottoposto esplicitamente ad una licenza che ne permette la redistribuzione gratuita. Il software freeware viene concesso in uso senza alcun corrispettivo, ed è liberamente duplicabile e distribuibile, con pochissime eccezioni. Di norma l'autore che decide di rilasciare il suo lavoro come freeware, esercitando appieno il suo diritto di scegliere le forme e le modalità di distribuzione che ritiene più idonee, inserisce esplicitamente delle clausole che impediscono qualsiasi tipo di pagamento per la distribuzione del suo software, fatto salvo un eventuale "piccolo" rimborso per supporti e spese di duplicazione. (Richard Stallman, Linus Torvalds) Introduzione (aa 2011/12) G. Bucci 12

Open Source http://www.opensource.org

Tipi Software di sistema Software applicativo Software embedded Prevalente gestione e elaborazione dati Prevalente controllo ecc. Molto diversi tra loro Non esiste una soluzione valida per tutti i campi applicativi Introduzione (aa 2011/12) G. Bucci 14

Tipologia delle applicazioni Sequenziali Un solo flusso di controllo Concorrenti Più flussi di controllo paralleli Dipendenti dal tempo La velocità di esecuzione influenza non solo le prestazioni, ma anche la correttezza (hard real-time) Introduzione (aa 2011/12) G. Bucci 15

Contenuto Cos è il SW Prodotto/processo Legislazione Categorie/tipi di software Dimensione economica/sociale Ingegneria del software Ciclo di vita Introduzione (aa 2011/12) G. Bucci 16

Prodotto interno lordo Il PIL è il valore complessivo dei beni e servizi prodotti all'interno di un Paese in un certo intervallo di tempo (1 anno) e destinati ad usi finali (consumi finali, investimenti, esportazioni nette); non viene quindi conteggiata la produzione destinata ai consumi intermedi, che rappresentano il valore dei beni e servizi consumati e trasformati nel processo produttivo per ottenere nuovi beni e servizi. Introduzione (aa 2011/12) G. Bucci 17

Italia PIL a prezzi di mercato (ML ) Anno PIL 2001 1.248.648 2002 1.295.226 2003 1.335.354 2004 1.391.530 2005 1.428.375 2006 1.479.981 2007 1.535.540 Fonte: ISTAT Introduzione (aa 2011/12) G. Bucci 19

Tasso di crescita PIL Nel 2009 è stato negativo (-1%) Introduzione (aa 2011/12) G. Bucci 20

Valore assoluto PIL (2009) 1 $ = 0.77 1.500.000 ca (occhio al tasso di cambo ) MLN Debito pubblico Italia (6/2011) : 1.812.000 (3/2012) : 1.900.000 Sorgente: banca Mondiale (aprile 2011)

Dimensione economica/sociale Industria SW (2007) : PIL Italia anno 2007: 1.535 MLD (c.a.) Mercato IT 2007: 22 MLD (c.a.) mercato IT 2007: 1,41% del PIL Mercato SW 2007: 4 MLD (c.a.) mercato del SW 2007: 0,26% del PIL Introduzione (aa 2011/12) G. Bucci 22

I prossimi trasparenti sono presi dal Rapporto Assintel 2010 Introduzione (aa 2011/12) G. Bucci 23

Introduzione (aa 2011/12) G. Bucci 24

Introduzione (aa 2011/12) G. Bucci 25

Introduzione (aa 2011/12) G. Bucci 26

Introduzione (aa 2011/12) G. Bucci 27

Attenzione a India e Cina E anche all Italia, nel senso opposto! Introduzione (aa 2011/12) G. Bucci 28

Dimensione sociale Le nostre vite dipendono (sono influenzate) dal software: ABS Monitoraggio pazienti Conti correnti Iscrizione agli esami (rischio letale) (rischio economico) (nessun rischio) I malfunzionamenti possono produrre danni economici e alle persone Conviene avere teorie/metodi solidi Introduzione (aa 2011/12) G. Bucci 29

Contenuto Cos è il SW Prodotto/processo Legislazione Categorie/tipi di software Dimensione economica/sociale Ingegneria del software Ciclo di vita Introduzione (aa 2011/12) G. Bucci 30

Come si scrivono i programmi ovvero Cosa capita troppo spesso Introduzione (aa 2011/12) G. Bucci 31

Software crisis e leggende metropolitane sui progettisoftware (un po datate) Oltre il 60% dei progetti fallisce L 80% supera i tempi previsti Il 50% produce sistemi con funzioni non richieste dall utente Decine di miliardi di sprecati Introduzione (aa 2011/12) G. Bucci 32

Ingegneria del software Termine coniato nel 1968 (a Garmisch Partenkirchen, Germania) durante una conferenza internazionale Vorrebbe essere l applicazione dei metodi dell ingegneria al software Approccio sistematico allo sviluppo, all operatività, alla manutenzione e al ritiro del software(*) Attenzione: Ingegneria NON scienza (*) IEEE 610.12 - Glossary of Software Engineering Terminology Introduzione (aa 2011/12) G. Bucci 33

What is Software Engineering? IEEE 610 (Glossary of Software Engineering Terminology) The application of a systematic, disciplined quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software Introduzione (aa 2011/12) G. Bucci 34

Programmazione<=> Ing. SW Il programma che calcola il MCD di due numeri è di interesse dell Ing. del SW? No! Perché E un problema ben formalizzato Nel caso specifico esiste un algoritmo (Euclide) che ne permette il calcolo E un problema di programmazione Introduzione (aa 2011/12) G. Bucci 35

Programmazione<=> Ing. SW Un sistema di matematica che consente La scrittura a video di formule, di sistemi di equazioni, La soluzione di problemi complessi con differenti strategie di soluzione L analisi dei risultati ecc. è un problema di Ing. del SW? Sì Interfaccia grafica, interpretazione formule, strumenti di analisi, integrazione,.. Introduzione (aa 2011/12) G. Bucci 36

L ingegnere del software E un programmatore in grande (programming in the large) capire i requisiti - stendere le specifiche progettare scomporre i problemi, identificare i moduli gestire il processo di sviluppo lavorare in team - ripartire il lavoro Computer software engineers apply computer science, engineering, and math to design, develop, and test software. Computer hardware engineers design computer chips, boards, systems, modems, and printers. Introduzione (aa 2011/12) G. Bucci 37

Il ciclo di vita Da ANSI / IEEE Std 729-1983 Il ciclo di vita è il periodo di tempo che: inizia quando un prodotto software viene concepito termina quando il prodotto software non viene più usato Costituisce il contesto organizzativo per lo sviluppo di un progetto Detto anche processo software Introduzione (aa 2011/12) G. Bucci 38

Il ciclo di vita Organizzato in fasi. Grossolanamente: sviluppo e uso. La fase di uso è molto più lunga della fase di progetto e sviluppo durante la fase d uso è normale apportare modifiche Inizio Rilascio Abbandono Sviluppo Uso Introduzione (aa 2011/12) G. Bucci 39

Schema preliminare sviluppo Requisiti Analisi Spec. Requisiti Spazio del problema Progettazione Spec. Progetto Realizzazione Spazio della soluzione Codice corretto Introduzione (aa 2011/12) G. Bucci 40

Analisi/specifica dei requisiti L analisi è lo studio di un problema prima di intraprendere qualsiasi azione (De Marco) L analisi è lo studio del dominio di un problema, che porta alla specifica di un comportamento esternamente osservabile, a una descrizione coerente e fattibile di ciò che occorre realizzare Introduzione (aa 2011/12) G. Bucci 41

Requisiti Insieme delle caratteristiche che il prodotto deve possedere per soddisfare al proprio scopo di uso. Un requisito è: qualcosa che il software deve fare; una caratteristica che esso deve possedere. Un requisito esiste sia perché: la natura dell applicazione lo richiede; il committente vuole che esso sia parte del prodotto (software). Introduzione (aa 2011/12) G. Bucci 42

Studio di Fattibilità Analisi Più una caterva di altri documenti Modello a Cascata: La madre di tutti i cicli di vita SRS Progetto Elementi di disturbo Codifica Test unit DS Fasi e deliverables (principali) Integraz Test sist. Codice e risultati test Manutenz

Categorie di requisiti Requisiti funzionali ciò che il sistema deve fare (stampare le fatture emesse giornalmente) Requisiti non funzionali proprietà (qualità) che il sistema deve possedere (stampare in meno di un minuto) Vincoli sono requisiti di carattere generale; definiti prima che inizi l effettiva raccolta dei requisiti (usare Linux come sistema operativo) Introduzione (aa 2011/12) G. Bucci 44

Specifica dei requisiti Metodo classico: elencazione ESEMPIO <id> il <sistema> deve <funzione> R1. Il sistema deve presentare lo stato delle prenotazioni delle camere a un generica data R2. Il sistema deve ricercare le camere libere tra due date generiche date R2.2. In mancanza di camere libere, deve cercare la camera che ha più giorni contigui liberi nell intervallo R3. Il sistema deve calcolare la spesa relativa a un ospite al momento del termine del suo soggiorno Introduzione (aa 2011/12) G. Bucci 45

Specifica dei requisiti Attraverso l analisi dei Casi d uso ESEMPIO Introduzione (aa 2011/12) G. Bucci 46

Rapidi cambiamenti L Ingegneria del software è un settore tecnologico che ha subito rapidi cambiamenti, specialmente negli ultimi anni (Java e Web sono di metà anni Novanta) Nel processo software: dal metodo a cascata ai metodi agili Introduzione (aa 2011/12) G. Bucci 47

Rapidi cambiamenti L Ingegneria del software è un settore tecnologico che ha subito rapidi cambiamenti, specialmente negli ultimi anni (Java e Web sono di metà anni Novanta) Nel processo software: dal metodo a cascata ai metodi agili Introduzione (aa 2011/12) G. Bucci 48

Modello iterativo-evolutivo Successivi ampliamenti e rifiniture attraverso iterazioni multiple (feedback) Il sistema cresce incrementalmente Introduzione (aa 2011/12) G. Bucci 49

RUP This diagram is Copyright 1999-2005 IBM. http://www.agilemodeling.com/essays/agilemodelingrup.htm Introduzione (aa 2011/12) G. Bucci 50

C è sempre qualche estremista There are certain things you must do. You must write tests before code (TDD). You must program in pairs. You must integrate frequently. You must be rested. You must communicate with the customer daily. You must follow the customer s priorities. You must leave the software clean and simple by the end of the day. You must adapt the process and practices to your environment. Introduzione (aa 2011/12) G. Bucci 51

Quando la sicurezza è il requisito principale... Sistemi embedded, sistemi medicali, controllo del traffico aereo, ecc.. Garantire affidabilità, sicurezza, qualità, Sostanzialmente viene seguito il metodo a cascata: Analisi e progettazione accurata sin dall inizio. Analisi, analisi del rischio, pianificazione, tracciabilità dei requisiti, assicurazione della qualità, versionamento,.. Esistono molte normative e standard (di prodotto e di processo) per i vari settori (Ferrovie, avionica,..) Introduzione (aa 2011/12) G. Bucci 52

Contenuto del corso Modellazione Programmazione OO UML Tecniche di analisi/progetto/sviluppo Use case driven analysis (TDD) Tecnologie Design patterns, Architectural patterns Altro Modelli ciclo di vita, qualità, stima risorse,.. Introduzione (aa 2011/12) G. Bucci 53

Generi trattati Normalmente faremo riferimento ad applicazioni enterprise Gestione di un albergo Trattamento mutui Ecc. Ma anche software per applicazioni di controllo Casello autostradale Introduzione (aa 2011/12) G. Bucci 54

Obiettivo Useremo JAVA, ma l obiettivo non è imparare un linguaggio in più L obiettivo è imparare ad analizzare, modellare, progettare,... Introduzione (aa 2011/12) G. Bucci 55

Tools (da usare) StarUML (free) Modellazione UML Eclipse IDE per lo sviluupo dei programmi Java Come linguaggio di programmazione Tutta roba scaricabile da rete Introduzione (aa 2011/12) G. Bucci 56