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

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

Embed Size (px)

Citation preview

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