Ciclo di vita del software



Documenti analoghi
Ciclo di vita del software: Tipologie di software

Software e Algoritmi. Lezione n. 3

Ciclo di vita del software: Tipologie di software

Dispensa di Informatica I.1

Dall idea al software, dall artigianato al processo industriale

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

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

Software: di base ed applicativo

Concetti di base di ingegneria del software

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

Ciclo di vita del software

Sistemi informativi, sistemi informatici e software

Linguaggi e Paradigmi di Programmazione

Lezione 8. La macchina universale

ALGORITMI e PROGRAMMI Programmazione: Lavoro che si fa per costruire sequenze di istruzioni (operazioni) adatte a svolgere un dato calcolo

Corso di Informatica

Cos è l Ingegneria del Software?

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

Software. Algoritmo. Algoritmo INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042)

Fondamenti di Informatica Ingegneria Clinica Lezione 16/10/2009. Prof. Raffaele Nicolussi

PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE

Software e Algoritmi

Corso di Informatica

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

TECNOLOGIE INFORMATICHE DELLA COMUNICAZIONE ORE SETTIMANALI 2 TIPO DI PROVA PER GIUDIZIO SOSPESO PROVA DI LABORATORIO

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

Informatica - A.A. 2010/11

Appunti sulla Macchina di Turing. Macchina di Turing

Fondamenti di Informatica Ingegneria Clinica Lezione 19/10/2009. Prof. Raffaele Nicolussi

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

Il calcolatore oggi : UN SISTEMA DI ELABORAZIONE

UNIVERSITA DEGLI STUDI DI BRESCIA Facoltà di Ingegneria

IRSplit. Istruzioni d uso 07/10-01 PC

Generazione Automatica di Asserzioni da Modelli di Specifica

1. BASI DI DATI: GENERALITÀ

Ciclo di Istruzione. Ciclo di Istruzione. Controllo. Ciclo di Istruzione (diagramma di flusso) Lezione 5 e 6

FONDAMENTI di INFORMATICA L. Mezzalira

SOFTWARE. È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software:

Cenni sull ingegneria del software e sulla qualità dei programmi

Contenuti. Visione macroscopica Hardware Software. 1 Introduzione. 2 Rappresentazione dell informazione. 3 Architettura del calcolatore

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia

Il Punto di vista dell Organismo notificato

PREMESSA AUTOMAZIONE E FLESSIBILITA'

Appunti del corso di Informatica 1 (IN110 Fondamenti) 4 Linguaggi di programmazione

Architettura di un calcolatore

Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica. Ingegneria del Software. La fase di Analisi

Sistemi informativi secondo prospettive combinate

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

INTRASTAT TELEMATICO

Il concetto di informatica. Bogdan Maris ( )

COME VIENE REALIZZATO UN SERVIZIO DI RIORGANIZZAZIONE DEI SISTEMI INFORMATIVI AZIENDALI?

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

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

SIEBEL CRM ON DEMAND MARKETING

CdL in Medicina Veterinaria - STPA AA

Esame di INFORMATICA

Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Appunti di Sistemi Elettronici

IL SOFTWARE. Giada Agostinacchio Classe 2^ Beat ISIS G.Meroni Lissone Anno Scolastico 2007/2008

Software. Definizione, tipologie, progettazione

Informatica Industriale e Monitoraggio della Produzione

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

Base di dati e sistemi informativi

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

ALLEGATO Esempio di questionario per la comprensione e valutazione del sistema IT

LA SOLUZIONE. EVOLUTION, con la E LA TECNOLOGIA TRASPARENTE IL SOFTWARE INVISIBILE INVISIBILE ANCHE NEL PREZZO R.O.I. IMMEDIATO OFFERTA IN PROVA

ZFIDELITY - ZSE Software & Engineering Pag.1 / 11

Lo sviluppo del software: usi e clausole commentate Aspetti Tecnici. Prof. Franco Sirovich Dipartimento di Informatica Università di Torino

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10

Il software: la tutela d autore

La programmazione. Sviluppo del software

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Informatica. Scopo della lezione

Materiale didattico. Laboratorio di Informatica a.a I) Introduzione all Informatica. Definizione di Informatica. Definizione di Informatica

Sviluppo, Acquisizione e Riuso

Il Sistema Operativo. Di cosa parleremo? Come si esegue un programma. La nozione di processo. Il sistema operativo

PLC Sistemi a Logica Programmabile Il linguaggi di programmazione

YOUR EASY SOLUTION FOR COSTING

PROGRAMMAZIONE MODULARE DI INFORMATICA CLASSE QUINTA - INDIRIZZO MERCURIO SEZIONE TECNICO

Informatica e Telecomunicazioni

Sistema G.U.S. Capitolato di Gara ALLEGATO A

Modulo 1. Concetti di base della Tecnologia dell Informazione ( Parte 1.1)

Strumenti di gestione del ciclo di vita del software

La portata del software

INFORMATICA 1 L. Mezzalira

CPU. Maurizio Palesi

Linguaggi per COMUNICARE. Il linguaggio è un sistema codificato di segni che consente la comunicazione, intesa come scambio di informazioni

DOMANDA DI CONNESSIONE PER IMPIANTI DI PRODUZIONE ALLA RETE ELETTRICA DI DISTRIBUZIONE

La progettazione centrata sull utente nei bandi di gara

GAS.DV/WIN Allocazione e Bilanciamento

ITIS OTHOCA ORISTANO PROGRAMMAZIONE AUTOMATICA CAM. Prof. Ignazio Peddis A.S. 2007/08

INGEGNERIA DEL SOFTWARE. Prof. Paolo Salvaneschi

NORMA CEI EN PLC: programmazione. PLC: programmazione. PLC: programmazione. Automazione Industriale 3. Automazione Industriale

Sistema Informativo Monitoraggio e Campionamento Ambientale

Fondamenti di Informatica. Docenti: Prof. Luisa Gargano Prof. Adele Rescigno BENVENUTI!

TECNOLOGIA CLASSE PRIMA TRAGUARDI DI COMPETENZA DA SVILUPPARE AL TERMINE DELLA CLASSE PRIMA

Edok Srl. FatturaPA Light. Servizio di fatturazione elettronica verso la Pubblica Amministrazione. Brochure del servizio

FASCICOLO CERTIFICAZIONI E INTERFACCIA RETE

Al giorno d oggi, i sistemi per la gestione di database

Creare diagrammi di Gantt con Visio 2003

Transcript:

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 del computer costituita da parti elettroniche e meccaniche Firmware: insieme di microprogrammi registrati sulle memorie permanenti dei dispositivi elettronici, solitamente introdotti dal costruttore e cablati nell hardware Software: Insieme di programmi scritti in qualche linguaggio di programmazione eseguibili dal computer

Software - seconda definizione Istruzioni che eseguite da un computer svolgono una funzione prestabilita con prestazioni prestabilite - (programma) strutture dati mediante le quali i programmi trattano adeguatamente le informazioni - (schemi logici e fisici dei dati) documenti che descrivono le operazioni e l uso dei programmi - (documentazione tecnica e manuale utente) [R.S. Pressman,Principi di Ingegneria del software, McGraw-Hill 2000] Tipologia del software Software di base software al servizio di altri software sistema operativo: insieme di programmi che governano le funzioni e le risorse primarie del calcolatore esecuzione di programmi operazioni di ingresso/uscita gestione di file protezione rilevazione errori Software applicativo: dedicato ad uno scopo applicativo

Strati del software Utente Programmi applicativi Linguaggi e ambienti di programmazione Sistema operativo Firmware HARDWARE Tipologie di software software real-time - software dedicato alla sorveglianza, all analisi e all elaborazione di eventi esterni (rilevamento di temperature di una piastra di acciaio durante la lavorazione) software gestionale - elaborazione dei dati e dei processi aziendali - 70%-80% software scientifico - astronomia, calcolo parallelo, etc.

Tipologie di software software di Intelligenza Artificiale - basati su algoritmi non numerici - sistemi esperti, reti neruali, dimostratori di teoremi, etc. software embedded - programmi residenti in prodotti industriali (lavatirici, forno, termostati ambientali, etc.) software per PC - applicativi di office-automation (fogli elettronici, elaboratori di testi, etc.) software basato su WEB - B2B, B2C, portali, etc. Categorie di software Generici prodotti software standardizzati venduti sul mercato le specifiche vengono dettate dal mercato e dal produttore stesso Dedicati progetti ad hoc creati per un determinato cliente le specifiche vengono dettate dal cliente Prodotto vs. Progetto

Azioni Oggetti problema Schema di percorso: dal problema ai risultati Comprendere il problema ANALISI algoritmo PROGRAMMAZIONE software ELABORAZIONE risultati Elenco di istruzioni per ottenere la soluzione Tradurre la soluzione in un linguaggio comprensibile al calcolatore Algoritmo tradotto in un linguaggio eseguibile dal calcolatore Fase di esecuzione del programma da parte del computer Esempio Problema- Prelevare contanti in banca Analisi - si possono prelevare contanti in diversi modi:bancomat, mediante assegno, chiedendo un prestito, fare una rapina, etc. Algoritmo - si decide per il bancomat, si descrivono i passi operativi e le istruzioni che attivano il bancomat Elaborazione- esecuzione delle operazioni Risultati - i contanti

Algoritmo - definizione intuitiva Elenco preciso di operazioni, comprensibile da un esecutore, che definisce una sequenza finita di passi i quali risolvono ogni problema di un dato tipo (classe di problemi). algoritmo deriva dal nome di un matematico arabo - alkhuwarizmi vissuto nel nono secolo d.c. Esempio: operazioni necessarie per compiere una telefonata, per prelevare denaro dal bancomat, per iscriversi ad un esame, etc. Esempio - bancomat macro operazioni 1. Estrazione della tessera bancomat 2. Inserimento della tessera nell apposito macchinario 3. Scelta dell operazione da eseguire 4. Inserimento del codice segreto 5. Conclusione operazione 6. Prelievo tessera 7. Prelievo contanti

Algoritmo - definizione rigorosa Sequenza ordinata finita di passi, ripetibili e non ambigui, che se eseguita con determinati dati in ingresso (input) produce in uscita(output) dei risultati ovvero la soluzione di una classe di problemi dati algoritmo risultati Soluzione ad una classe di problemi Caratteristiche dell algoritmo Un algoritmo si suppone sempre che comunichi con l ambiente acquisendo dati e restituendo risultati Le operazioni di cui è composto l algoritmo si dicono istruzioni Ogni istruzione opera su dei dati o prodotti dall algoritmo stesso o acquisiti dall esterno

Produzione del Software il software si genera trasformando l algoritmo in un linguaggio di programmazione comprensibile ed eseguibile dal calcolatore poiché però il calcolatore comprende solo codice macchina (sequenza di zero e uno) sono nati linguaggi di alto livello che si interpongono fra il codice macchina e l algoritmo algoritmo Programma in linguaggio di alto livello Programma in linguaggio macchina comprensibile ma non eseguibile eseguibile Codice sorgente e oggetto Il programma scritto in linguaggio Assembler o in linguaggio di alto livello viene detto programma sorgente o CODICE SORGENTE Il programma sorgente è l input dato ai traduttori che producono in uscita il programma in linguaggio macchina o CODICE OGGETTO Codice SORGENTE TRADUTTORE Codice OGGETTO

Ingegneria del software Il termine viene coniato durante una conferenza NATO nel 1968 in Germania a Garmish - crisi del software - costi, controllo, governabilità, qualità, manutenzione La IEEE (1993) definisce gli ambiti dell ingegneria del software: (a) disciplina che regola in modo scientifico lo sviluppo, la gestione e la manutenzione del software, (b) studio delle strategie di cui al punto a). Insieme di passi che definiscono il percorso di creazione del software Strategia di base STUMENTI METODI PROCESSO QUALITA TOTALE Tools automatizzati di supporto ai metodi e ai processi -CASE Tecniche per governare i passi Motivazioni incrementare la qualità del software ossia rendere maggiormente industrializzato un processo che è ancora molto artigianale governare la complessità ossia non far fallire progetti di grandi dimensioni o di nuova concezione minimizzare i costi di produzione e manutenzione ossia consentire un facile intervento da parte di persone diverse dallo sviluppatore originario riciclare il software ossia riutilizzo di lavoro già fatto

Fasi del processo di sviluppo sw Analisi - analisi dei requisiti -3%* Progettazione - specifiche -8% Implementazione - sviluppo del codice -7% Validazione - collaudo -15% Installazione e documentazione 10% correzioni Modificazione - 67% del costo 10% adattamenti Smaltimento 50% nuove funzioni Modelli di processo Modello a cascata - le fasi elencate sono in stretta sequenza - 70 Modello prototipale - le fasi si intersecano e producono ciclicamente prototipi da sottoporre al cliente - usa e getta o esplorativa Modello incrementale - produce versioni intermedie di prodotto raffinabile fino alla versione finale Modello a spirare di Boehm - 88 ogni ciclo della spirale rappresenta una fase suddivisa per funzioni che mirano a controllare il rischio

Modello a cascata Modello prototipale

Modello incrementale Fase 3 Fase 2 Fase 1 Modello a spirale

Prodotti del processo A t t i v i t a D o c u m e n t i P r o d o t t i A n a lis i re q u is iti S tu d io d i fa ttib ilita, S c h e m a d i r e q u is it i D e f in iz io n e r e q u is it i D o c u m e n t i d e i r e q u is it i S p e c if ic a d e l s is te m a S p e c if ic h e f u n z io n a li, p ia n o d i a c c e t ta z io n e, D r a f t d e l m a n u a le u t e n te P r o g e t t o a r c h it e t tu r a le S p e c if ic a a r c h it e t t u r a le, p ia n o d i te s t in g d e l sistem a P r o g e t t o in t e r f a c c ia S p e c if ic a in t e r f a c c ia, p ia n o d i in te g r a z io n e P r o g e t t o d e t ta g lia t o, S p e c if ic a d e l p r o g e t t o, p ia n o d i te s t in g u n ita C o d if ic a C o d ic e d e l p r o g r a m m a T e s t in g d e lle u n it a R a p p o r t o s u l t e s t d e lle u n it a T e s t in g d e i m o d u li R a p p o r to s u l te s t d e i m o d u li T e s t in g d i in t e g r a z io n e R a p p o r to s u l te s i d i integrazione,m anuale T e s t in g d e l s is t e m a R a p p o r to s u i te s t d e l sistem a T e s t d i a c c e t ta z io n e S is t e m a f in a le e d o c u m e n t a z io n e Prodotti del processo e clausole contrattuali Studio di fattibilità - deve essere accettato dal cliente- nei casi di gara di appalto pubblica l AIPA indica lo schema da seguire e il documento diviene la base per comporre il capitolato tecnico Elenco dei requisiti di sistema - deve essere approvato dal clientedefinisce la base delle funzioni su cui si effettuerà il collaudo finale Specifiche di interfaccia - è bene farle firmare dal cliente Verbale di avanzamento lavori - deve essere prodotto dal fornitore e vidimato dal cliente al fine di documentare ritardi, modificazioni, integrazioni, etc. rispetto all elenco dei requisiti di sistema Verbale di collaudo finale - deve essere approvato dal cliente e solitamente è il passo che da vita al pagamento Manutenzione - è buona norma inserire una clausola di regolamentazione della manutenzione Documentazione tecnica e documentazione utente - occorre sempre richiederla - non sempre viene infatti fornita

Clausole per la tutela della prodotto marchio e logo proprietà - colui che è proprietario del bene uso - clausole che regolamentano l uso del bene differenziando anche la destinazione d uso (per ricerca, scopo di lucro, etc.) accesso - clausole che regolamentano l accesso ai dati connessi al bene (banche dati) rivendita/cessione - clausole che regolamentano la rivendita a terzi territorialità - clausole che regolamentano la territorialità geografica delle clausole sopra esposte modificazioni - clausole che regolamentano la modificabilità del software - personalizzazioni su cliente integrabilità - clausole che regolamentano la possibilità di integrare il software altri programmi Reverse engineering - inserire una clausola esplicita per evitare il reverse engineering = operazione che mediante dei tool software evince dal codice oggetto il codice sorgente all 80-90%