L’Informatica dal Problema alla Soluzione Il Processo di sviluppo del software Mario Capurso http://info.bazarinfo.info
Il Problema La necessità di risolvere problemi è una esigenza umana fondamentale Questa 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)
Il Problema Intuibile Formalizzabile Risolubile
Risolvere il Problema E’ sempre possibile tutto ciò ? Per risolvere un problema è necessario Intuirlo Esprimerlo con formule Trovare un metodo di soluzione Usare il metodo correttamente E’ sempre possibile tutto ciò ?
Il Problema: risolubile ? Col computer Risolubile Problema formalizzabile Problema non esprimibile Problema intuibile
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
Il Ciclo di sviluppo del Software Analisi Progettazione Programmazione Test (Ricerca e correzione degli errori) Documentazione Installazione Manutenzione
Il Sistema Un Sistema è un insieme di Componenti legate da forme di Interazione
In un Sistema bisogna osservare… Obiettivo Strumenti Risorse Procedure Variabili di Stato Stati Eventi Componente Ambiente Interazione
Un Sistema può essere… Naturale o Artificiale Semplice o Complesso Deterministico o Probabilistico Aperto o Chiuso Con o senza Feedback
Notazione di Yourdon-De Marco Componente ulteriormente decomponibile Ambiente Interazione Componente NON ulteriormente decomponibile Archivio
Esempio: Il nostro Istituto Chiede libretto Didattica Studenti La nostra città Archivio studenti Fa Iscrizione U.Tecnico Preside Genitori Istituto
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
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)
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
Tipi di Requisiti Secondo 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)
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…
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
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
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
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
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…)
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ù
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