LInformatica dal Problema alla Soluzione Il Processo di sviluppo del software Mario Capurso .

24
L’Informatica dal Problema alla Soluzione Il Processo di sviluppo del software Mario Capurso http://info.bazarinfo.info

Transcript of LInformatica dal Problema alla Soluzione Il Processo di sviluppo del software Mario Capurso .

Page 1: LInformatica dal Problema alla Soluzione Il Processo di sviluppo del software Mario Capurso .

L’Informatica dal Problema alla Soluzione

Il Processo di sviluppo del software

Mario Capursohttp://info.bazarinfo.info

Page 2: LInformatica dal Problema alla Soluzione Il Processo di sviluppo del software Mario Capurso .

Il ProblemaLa necessità di risolvere problemi è una

esigenza umana fondamentaleQuesta esigenza presume l’esistenza di

diverse categorie di persone: Coloro che sentono il problema e desiderano

risolverlo (utenti finali) Coloro che cercano soluzioni per il problema

(ricercatori, analisti, progettisti) Coloro che costruiscono strumenti e dispositivi

che risolvono i problemi (costruttori)

Page 3: LInformatica dal Problema alla Soluzione Il Processo di sviluppo del software Mario Capurso .

Il Problema

Intuibile Formalizzabile Risolubile

Page 4: LInformatica dal Problema alla Soluzione Il Processo di sviluppo del software Mario Capurso .

Risolvere il ProblemaPer risolvere un problema è necessario

Intuirlo Esprimerlo con formule Trovare un metodo di soluzione Usare il metodo correttamente

E’ sempre possibile tutto ciò ?

Page 5: LInformatica dal Problema alla Soluzione Il Processo di sviluppo del software Mario Capurso .

Il Problema: risolubile ?

Problema nonesprimibileProblema intuibile

Problema formalizzabile

Risolubile

Col computer

Page 6: LInformatica dal Problema alla Soluzione Il Processo di sviluppo del software Mario Capurso .

Il Problema: non risolubile ?

Perché: Non esprimibile Esprimibile solo intuitivamente Formalizzabile ma non risolubile Formalizzabile, risolubile ma non col

computer Formalizzabile, risolubile col computer

ma in tempi e costi inaccettabili

Page 7: LInformatica dal Problema alla Soluzione Il Processo di sviluppo del software Mario Capurso .

Il Ciclo di sviluppo del Software Analisi Progettazione Programmazione Test (Ricerca e correzione degli errori) Documentazione Installazione Manutenzione

Page 8: LInformatica dal Problema alla Soluzione Il Processo di sviluppo del software Mario Capurso .

Il Sistema Un Sistema è un insieme di

Componenti legate da forme di Interazione

Page 9: LInformatica dal Problema alla Soluzione Il Processo di sviluppo del software Mario Capurso .

In un Sistema bisogna osservare…

AmbienteComponente

Interazione

•Obiettivo

•Strumenti

•Risorse

•Procedure

•Variabili di Stato

•Stati

•Eventi

Page 10: LInformatica dal Problema alla Soluzione Il Processo di sviluppo del software Mario Capurso .

Un Sistema può essere… Naturale o Artificiale Semplice o Complesso Deterministico o Probabilistico Aperto o Chiuso Con o senza Feedback

Page 11: LInformatica dal Problema alla Soluzione Il Processo di sviluppo del software Mario Capurso .

Notazione di Yourdon-De Marco

Ambiente

Componenteulteriormentedecomponibile

Interazione

ComponenteNON

ulteriormentedecomponibile

Archivio

Page 12: LInformatica dal Problema alla Soluzione Il Processo di sviluppo del software Mario Capurso .

Esempio: Il nostro Istituto

Istituto

La nostracittà

Didattica

U.Tecnico

Studenti

Genitori

PresideFa Iscrizione

Archiviostudenti

Chiede libretto

Page 13: LInformatica dal Problema alla Soluzione Il Processo di sviluppo del software Mario Capurso .

Fase di Analisi Obiettivo: Analizzare i termini del problema Lavora l’Analista di Sistema Produce un Documento di Analisi

Sintomi e conseguenze del problema Analisi dell’esistente Analisi dei Requisiti

NON deve produrre una soluzione Prepara il terreno per il progettista

Page 14: LInformatica dal Problema alla Soluzione Il Processo di sviluppo del software Mario Capurso .

Analisi dell’esistente Descrive il sistema esistente, usando la

notazione di Yourdon-De Marco Riporta e descrive obiettivo, ambiente,

componenti, interazioni, risorse, strumenti, procedure, variabili di stato, stati ed eventi del sistema

Ripete la cosa per le componenti ulteriormente decomponibili (sottosistemi)

Page 15: LInformatica dal Problema alla Soluzione Il Processo di sviluppo del software Mario Capurso .

Analisi dei Requisiti Riporta le caratteristiche che il cliente

desidera siano presenti nella soluzione Un requisito comincia con la frase “La

soluzione dovrebbe…” e ha una priorità Priorità alta: deve esserci per forza Priorità media: meglio se c’è Priorità bassa: non è importante

Page 16: LInformatica dal Problema alla Soluzione Il Processo di sviluppo del software Mario Capurso .

Tipi di RequisitiSecondo la Metodologia ISO (International Standard

Organization) ODP (Open Distributed Processing), i Requisiti vanno raggruppati in cinque Punti di Vista (Viewpoints):

Enterprise (Parlano dell’utente, di uso, tempi e costi)

Information (Parlano di Informazioni da gestire) Computation (Parlano di Funzionalità da eseguire) Engineering (Parlano di Architettura da

possedere) Technology (Parlano di Tecnologia da utilizzare)

Page 17: LInformatica dal Problema alla Soluzione Il Processo di sviluppo del software Mario Capurso .

Esempi Enterprise: La soluzione dovrebbe essere

usata… Information: La soluzione dovrebbe gestire le

seguenti informazioni… Computation: La soluzione dovrebbe realizzare

le seguenti funzionalità… Engineering: La soluzione dovrebbe avere la

seguente architettura… Technology: La soluzione dovrebbe usare la

seguente tecnologia…

Page 18: LInformatica dal Problema alla Soluzione Il Processo di sviluppo del software Mario Capurso .

Analisi e Costruzione di Prototipi L’ingegnere edile mostra al cliente un

modellino del palazzo prima di costruirlo, per capire meglio le sue esigenze

Così l’informatico potrebbe mostrare al cliente un prototipo usa e getta del programma prima di costruirlo, per capire meglio le sue esigenze (REQUISITI)

Questa tecnica viene chiamata di Quick Prototyping

Page 19: LInformatica dal Problema alla Soluzione Il Processo di sviluppo del software Mario Capurso .

Fase di Progettazione Obiettivo: Progettare una o più soluzioni Lavora il Progettista di Sistema Produce un Documento di Progettazione

Soluzione 1 Soluzione 2 Soluzione n Analisi Costi-Benefici

Richiede che il cliente decida quale soluzione realizzare (oppure che decida di lasciar tutto com’è adesso)

Prepara il terreno per la realizzazione della soluzione

Page 20: LInformatica dal Problema alla Soluzione Il Processo di sviluppo del software Mario Capurso .

Soluzioni Possibili Lascia tutto com’è adesso Compra invece che costruire Sostituisci archivi manuali con archivi

informatici e procedure manuali con procedure informatiche (soluzione di minimo impatto)

Guarda le soluzioni sul mercato e prendi il meglio da tutte

Inventati qualcosa, perché non esiste nulla da cui copiare

Page 21: LInformatica dal Problema alla Soluzione Il Processo di sviluppo del software Mario Capurso .

Come appare una Soluzione ? Descrizione della Soluzione Descrizione del sistema progettato, usando la

notazione di Yourdon-De Marco Descrizione di obiettivo, ambiente, componenti,

interazioni, procedure, risorse, strumenti, variabili di stato, stati ed eventi del sistema progettato. Descrivere le procedure in pseudocodice. Descrivere gli archivi come tabelle

Ripetere la cosa per le componenti ulteriormente decomponibili (sottosistemi)

Descrizione dei requisiti utente posseduti e non posseduti dalla soluzione

Page 22: LInformatica dal Problema alla Soluzione Il Processo di sviluppo del software Mario Capurso .

Suggerimenti per una Soluzione di Minimo Impatto Ogni requisito di tipo Information

“La soluzione dovrebbe gestire le seguenti

informazioni sull’entità X…” diventa un archivio X ed un insieme di funzionalità “inserisci, modifica, cancella, stampa, vai all’inizio, alla fine, avanti, indietro nell’archivio X” (diverranno form e bottoni in Visual Basic, moduli e sottoprogrammi in C, classi e metodi in Java…)

Page 23: LInformatica dal Problema alla Soluzione Il Processo di sviluppo del software Mario Capurso .

Ulteriori Suggerimenti Ogni procedura manuale diventa

una procedura informatica Ogni requisito di tipo computation

diventa una procedura di tipo informatico

Le procedure informatiche vengono raggruppate in menù

Page 24: LInformatica dal Problema alla Soluzione Il Processo di sviluppo del software Mario Capurso .

Analisi Costi-Benefici Analizza in maniera comparativa

costi e benefici delle varie soluzioni Cerca di quantificare i benefici di

ciascuna soluzione Distingue i costi iniziali dai costi

ricorrenti Serve al cliente per decidere quale

soluzione realizzare