Software - Università degli Studi di Verona

Corso di Informatica
per Giurisprudenza
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