 
                                Corso di Informatica per Giurisprudenza Lezione 5 Matteo Cristani Dipartimento di Informatica Facoltà di Scienze MM. FF. NN. Università degli Studi di Verona http://www.sci.univr.it/~cristani 1 Agenda  Software  Tipi di software  Sistema operativo  Software applicativo  Fasi di sviluppo del software 2 Tipi di software  Classificazione generale  Software orizzontale General-purpose software  Linguaggi di programmazione  Utilità  Produttività individuale   Software verticale Applicazioni specifiche  Linguaggi special-purpose  3 Software di uso generale Sistemi operativi  Ambienti operativi  4 Linguaggi di programmazione Compilatori ed interpreti  Librerie riusabili  Ambienti di sviluppo  Verificatori (semi)automatici  Applicazioni di Project Management  5 Utilità di sistema  Connettività      Connection Management Systems Session Management System Web Browsers Client Posta Elettronica Gestione modem  Gestione periferiche     Gestione stampanti Gestione dischi e file Gestione periferiche speciali Virus/worm/intrusion detection system 6 Produttività individuale Word processor  Desktop Publishing   Scientific Desktop Publishing Spreadsheet  Presentation Management Systems  Database Management Systems  Idea Processor  7 Software speciale  Applicazioni verticali  Contabilità e finanza  Automazione industriale  WorkFlow Management Systems  Linguaggi Special-Purpose  Linguaggi specifici di risorsa  Linguaggi orientati alla modellazione di sistemi fisici 8 Sistema operativo  Funzioni  Gestione memoria  Gestione dispositivi e periferiche  Gestione rete locale e geografica  Gestione applicazioni  Caratteristiche  (Possibilmente) platform-independent 9 Software applicativo Il nome applicazione deriva dal fatto che tale software è utilizzato per ottenere certi scopi  Applicazioni di lettura e scrittura di dati o applicazioni di sola lettura  Applicazioni general-purpose o specifiche, dipendenti o indipendenti dal sistema operativo, dipendenti o indipendenti dalla piattaforma  10 Fasi di sviluppo del software  Fasi fondamentali  Specifiche dei requisiti  Specifiche funzionali  Specifiche di disegno  Specifiche di architettura  Specifiche dei test  Sviluppo  Test  Manutenzione 11 Tipi di software dal punto di vista dello sviluppo  Software commerciale  Nessun committente  Requisiti tagliati su committenti virtuali  Software su commessa  Richiesto  da un cliente o utente Software di ricerca  Software sviluppato per operare con problemi al limite 12 Specifiche dei requisiti Fase cooperativa  Titolare: il committente   Il committente descrive ciò che desidera per il software richiesto  Per il software non su commessa la fase di specifiche dei requisiti è sostituita da un brainstorming (in alcuni casi anche da discussioni strutturate) 13 Specifiche funzionali Fase cooperativa  Titolare: lo sviluppatore   Lo sviluppatore descrive le funzioni ipotizzate per il software al committente  Riceve conferma dal committente  Per il software non su commessa la fase di specifiche funzionale è sostituita da discussioni strutturate 14 Specifiche di disegno Fase decisionale  Titolare: lo sviluppatore   Si decide come implementare le funzioni dal punto di vista delle loro relazioni  Il Disegno di un Software è il documento di riferimento per migrazioni del software in altri linguaggi di programmazione, su altri sistemi operativi o piattaforme (porting) 15 Specifiche di architettura Fase decisionale  Titolare: lo sviluppatore   Si decide come implementare le funzioni definendo le scelte di architettura Linguaggio  Sistema operativo  Piattaforma  Tecniche e metodologia di sviluppo  Strumenti CASE (Computer Aided Software dEvelopment)  16 Specifiche dei test Fase operativa  Titolare: lo sviluppatore   Vengono scritti i test che saranno impiegati per validare il software  Fase delicatissima perché test poco efficaci provvederanno sistemi con fault, mentre test troppo raffinati rallenteranno la consegna 17 Sviluppo Fase operativa  Titolare: lo sviluppatore   Divisa in Implementazione  Assemblaggio  18 Testing Fase di prova delle funzioni  Controllo della correttezza ed operatività  Controllo della risposta al sovraccarico  Controllo della risposta all’eccesso di richieste  19 Manutenzione Correzione dei bachi  Integrazione delle funzioni  Miglioramento delle risposte  Aggiunte funzionali ed operative  20 Distribuzione temporale delle fasi (auspicabile) 20 18 16 14 12 10 8 6 4 2 0 Tempo SR SF SD SA SVI TEST MAN 21 Distribuzione temporale delle fasi (effettiva) 20 18 16 14 12 10 8 6 4 2 0 Tempo SR SF SD SA SVI TEST MAN 22 Caratteristiche dello sviluppo  Metodologia TOP-DOWN  Operazioni in sequenza  Controllo della funzionalità  Progressività  Riuso di codice  Modularità  Indipendenza funzionale  Carattere operativo del software 23 Figure professionali dell’informatica  Sviluppatore  Erede sincretico di Analista  Analista-Programmatore  Programmatore   Sistemista  Specialista di architetture  Specialista di reti 24 Operatori dell’informatica Software house  Consulenti indipendenti  Negozi specializzati (sic!)  Provider internet  25