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 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 intuibile Problema non esprimibile 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 Ambiente Componente •Risorse •Procedure •Variabili di Stato Interazione •Stati •Eventi 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 Archivio Componente NON ulteriormente decomponibile Esempio: Il nostro Istituto Chiede libretto Didattica Studenti La nostra città Archivio studenti Fa Iscrizione Preside Genitori Istituto U.Tecnico 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 diventa un archivio X ed un insieme di funzionalità “inserisci, modifica, sull’entità X…” 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