Sistemi di Elaborazione dell Informazione Parte Terza L Informazione Il Ciclo di Vita del Software Studio di fattibilità Disegno Dati Analisi dei requisiti Sviluppo Installazione e Collaudo Disegno Software Documentazione Utilizzo e Manutenzione 1
Studio di Fattibilità Aspetti Tecnici Verifica della disponibilità/presenza di HW e SW necessari Sistemi preesistenti da interfacciare Competenze tecniche Competenze di dominio Struttura organizzativa adeguata Aspetti Economici Stima costi HW/SW (es. ambienti di sviluppo) Risorse tecniche e funzionali Interfacce con altri sistemi e Interfaccia Utente Stima benefici Analisi dei Requisiti L analisi dei requisiti per una applicazione implica: Individuazione dei problemi da risolvere Definizione delle funzionalità dell applicazione Definizione dei dati da elaborare e da produrre Le fonti di informazione per l analisi sono: Utenti della applicazione: per mezzo di interviste Documentazione esistente: moduli, regolamenti interni, procedure aziendali, normative Realizzazioni preesisitenti (eventuali): applicazioni devono essere sostituite o che devono interagire con l applicazione da realizzare 2
Disegno del Software La progettazione di una applicazione si esplica in varie fasi: 1. Disegno dei Processi Aziendali da automatizzare 2. Identificazione delle funzioni coinvolte (utenti) 3. Scelta degli strumenti software per lo sviluppo 4. Pianificazione e gestione delle risorse 5. Progettazione dei moduli e definizione degli algoritmi 6. Progettazione Interfaccia Utente 7. Progettazione integrazione con il Sistema Informativo Disegno del Software La progettazione di una applicazione implica la definizione di algoritmi per la soluzione dei problemi che l applicazione deve risolvere Definizione di Algoritmo: sequenza di passi che devono essere seguiti per la risoluzione di un problema secondo un metodo predefinito Definizione ristretta di Algoritmo sequenza di passi che devono essere eseguiti da un programma per implementare un metodo di risoluzione di un problema 3
Disegno del Software Programma La definizione di un algoritmo e dei dati su cui deve agire costituiscono la componente di elaborazione di un programma Dati + Algoritmo = Programma L elaborazione di un programma può essere relativa a: per mezzo di: Dati calcoli e trasformazioni Informazioni analisi e report Conoscenza inferenze e deduzioni Disegno del Software Documentazione Cosa Come Specifiche Funzionali Moduli Funzioni Interazioni Di Design Interfaccia utente Presentation Layer Logica applicativa Business Layer Disegno Dati Data layer Di Programma 4
Sviluppo Strumenti Case (Computer Aided Software Engineering) Gestione del versioning (Check-in/check-out) di: Software Documentazione Organizzazione Team di sviluppo con diritti di accesso Controllo avanzamento sviluppo Tool Editor Compilatori, Interpreti, Linker Generatori di codice e di maschere Installazione e Collaudo Testing Unit Ogni singola funzione Ogni singolo modulo System Interazione moduli applicativi Integrazione con sistemi esterni Strumenti Wiki (collaborativi) di segnalazione bugs sia Intranet che Extranet (con Clienti); es. Bugzilla Installazione Collaudo Piano di testing con Cliente Esecuzione verifiche con Cliente 5
Manutenzione Conservativa Definizione intervento per correzione errori: Service Level Agreement (SLA) Tipo di errori segnalabili Tempi di intervento per tipo di errore Evolutiva Definizione di processo di richiesta di evoluzione del software Passi: richiesta/stima/analisi/stima/sviluppo/testing Costi: analisi, sviluppo Definizione politiche di aggiornamento del software Frequenza rilasci Durata di supporto per versione Costo complessivo di una applicazione Studio di fattibilità Analisi dei requisiti Total Cost of Ownership (TCO) Costo del progetto Disegno Dati Sviluppo Installazione e Collaudo Disegno Software Documentazione 50% Utilizzo e Manutenzione 6
Progettazione del Software Scopo Usability: fare in modo che il modello mentale di chi ha progettato il software corrisponda il più possibile al modello mentale del funzionamento del software così come se lo costruirebbe l utente finale Tecnologie dell informazione e della comunicazione per le aziende a cura di A. Carignani, Ed. Mc Graw Hill Ho una regola semplice per individuare il cattivo design. Tutte le volte che trovo indicazioni su come usare qualcosa, si tratta di un oggetto progettato male Donald Norman Progettazione del Software 7
Modelli di Progettazione del Software Modello a cascata o Waterfall Fasi strettamente successive Controlli di qualità distinti Requisiti necessari a priori: Immutabilità dell analisi Immutabilità del progetto Irrealistico Evoluzione requisiti Revisione per performance Modelli di Progettazione del Software Prototipazione o modello Evoluzionario Sistema completo in scala ridotta per verificare requisiti, poi eliminazione e rifacimento Prototipo da far evolvere in altro, anche variando il contenuto Costoso Modelli Incrementali Soluzione intermedia: Prototipo da far evolvere solo aggiungendo funzioni Interazione con l utente ad ogni fase del progetto Maggior livello di accettazione del software Minori costi di manutenzione (evolutiva) Rischio di progetto strisciante 8
Ciclo di Vita Waterfall Il ciclo di vita a cascata è un approccio in cui le attività, dalla analisi dei requisiti alla progettazione, allo sviluppo e testing alla messa in produzione e manutenzione, vengono svolte una sola volta ed in maniera sequenziale, o con piccole sovrapposizioni Ciclo di Vita Waterfall Analisi dei Requisiti di Sistema Progettazione Architetturale del Sistema ES 1 Analisi dei Requisiti Software Progettazione Architetturale del Software Progettazione di Dettaglio del Software Codifica del SW e Testing Integrazione SW e Testing Test del Sistema SW Integrazione del Sistema Installazione del SW ES n Elemento Software Test del Sistema ES : Elemento sw EH Elementi Hardware Supporto alla accettazione EH : Elemento hw 9
Ciclo di Vita Waterfall Questo tipo di approccio dovrebbe essere preferito quando: i requisiti sono chiari, definibili fin dall'inizio del progetto e stabili tutte le funzionalità del sistema devono essere rilasciate insieme è necessario sostituire in un unica fase un sistema preesistente Ciclo di Vita Waterfall Dei rischi possono derivare dall'adozione di questo ciclo di vita quando: i requisiti non sono ben compresi, o evolvono rapidamente il sistema è troppo grande per essere realizzato in un unico passo sono previste rapide evoluzioni nel contesto tecnologico 10
Ciclo di Vita Incrementale Il ciclo di vita Incrementale parte con una specifica di requisiti completa, ma realizza lo sviluppo in una sequenza di build (rilasci successivi). La prima build incorpora una parte dei requisiti, e le successive ne aggiungono altri, fino al completamento del sistema. I processi di progettazione, implementazione, test, installazione ed accettazione sono ripetuti per ogni build, con maggiore o minore parallelismo in funzione della pianificazione e delle risorse disponibili. Ciclo di Vita Incrementale Build 1 P C/T I/SA R Build 2 P C/T I/SA Build n P C/T I/SA Possibili flussi informativi R: Requisiti C/T: Codifica & testing P: Progettazione I/SA: Installazione & Supporto all Accettazione 11
Ciclo di Vita Incrementale L'adozione di questo ciclo di vita può essere consigliabile quando: è necessario rendere operativo un insieme di funzionalità in tempi brevi il sistema è per sua natura modulare e si presta ad essere realizzato in build successive le risorse possono essere reperite con una distribuzione temporale tale da suggerire quest'approccio Ciclo di Vita Incrementale Può essere invece sconsigliabile adottare il ciclo di vita Incrementale se: i requisiti non sono ben compresi, o evolvono rapidamente si preferisce rendere disponibili le funzionalità in un unico blocco sono previste rapide evoluzioni nel contesto tecnologico la disponibilità delle risorse non è tale da consentire questo approccio 12
Ciclo di Vita Evoluzionario L'approccio Evoluzionario o Prototipale si basa sull'assunzione che i requisiti non sono chiari o non possono essere definiti una volta per tutte, ma vengono piuttosto affinati in cicli successivi. Le attività di base sono sempre le stesse, ma in questo caso vengono ripetute tutte per ogni build. Questo approccio si propone come il più innovativo e il più orientato a supportare le rapide evoluzioni degli scenari organizzativi e tecnologici Ciclo di Vita Evoluzionario Build 1 R 1 P C/T I/SA Build 2 R 2 P C/T I/SA Build n R n P C/T I/SA Flussi informativi (raffinamenti) R: Requisiti C/T: Codifica & test P: Progettazione I/SA: Installazione & Supporto all Accettazione 13
Ciclo di Vita Evoluzionario Questo approccio può essere consigliabile quando: si desidera che il sistema sia operativo in tempi brevi i requisiti non sono del tutto chiari, o sono soggetti ad instabilità sono necessari i feedback dell'utente per poter meglio definire i requisiti è necessario avere rapidi riscontri rispetto alle tecnologie adottate Ciclo di Vita Evoluzionario Il ciclo di vita Evoluzionario consigliabile quando: non è si preferisce rilasciare il sistema in un'unica build non è possibile o non è opportuno coinvolgere il Cliente nel processo di raffinamento dei requisiti la disponibilità delle risorse non è tale da consentire questo approccio 14
Esempi di Applicazioni Aziendali Produzione e vendita macchine utensili Gestione clienti e raccolta ordini Pianificazione e gestione della produzione Gestione di vendite, risorse tecniche e finanziarie Azienda farmaceutica Controllo dosaggio / pressione / temperatura / durata / invio a distributore per imballaggio e confezione Supermercato Aggiornamento del magazzino in tempo reale per mezzo di rilevazione del codice a barre dei prodotti venduti Impresa di spedizioni Ottimizzazione percorsi e carico Corriere espresso Monitoraggio stato via internet Esempi di Applicazioni Aziendali Aziende di Servizi: Banca Mercati elettronici di trading Pagamenti automatici (POS, Bancomat, RID, Posta) Home Banking Assicurazione e Finanziaria Supporto ai Promotori Finanziari Trasporti e Viaggi Informazioni su rete di trasporti (treni, autobus, navi, auto) e alberghi Individuazione e prenotazione posti Acquisto automatico (distributori automatici/internet) biglietti, check-in automatici 15
Sistema Informativo Definizione: Insieme di persone, macchine, applicazioni software e procedure (anche cartacee) che permettono ad un impresa di disporre delle informazioni necessarie alla realizzazione dei propri obiettivi aziendali Definizione ristretta: Sistema computerizzato per l elaborazione elettronica dei dati (Electronic Data Processing-EDP) in un impresa insieme di Applicazioni e Database presenti in azienda Sistema Informativo Un sistema informativo deve provvedere alla raccolta e alla classificazione delle informazioni, da attuarsi con procedure integrate e idonee, al fine di produrre in tempo utile e ai giusti livelli le sintesi necessarie per i processi decisionali, nonché gestire e controllare l attività aziendale nel suo complesso. 16
Tipologie di Sistemi Informativi Sistema Gestionale (es. Banca) Sistema di Distribuzione (es. Società di spedizione) Sistema di Pianificazione (es. Industria) Sistema di Controllo (es. Risk Management) Tipologie di Sistemi Informativi Applicazione dei sistemi informativi alla gerarchia aziendale Supporto alle Decisioni Supporto ai Processi Fonte: Tecnologie dell informazione e della comunicazione per le aziende a cura di A. Carignani, ed. Mc Graw Hill 17
Sistemi Gestionali e per la Distribuzione Sistemi di Ricerca e Sviluppo dei Prodotti Computer Aided Design (CAD) Computer Aided Engineering (CAE) Computer Aided Process Planning (CAPP) Computer Assisted Synthesis Planning (CASP) Architectural Engineering Construction (AEC) Sistemi Gestionali e per la Distribuzione Sistemi per la Vendita Computer Aided Selling (CAS) per la configurazione di un offerta da un catalogo elettronico di prodotti Acquisizione e Verifica dell Ordine Verifica dati sull ordine (Tel., Fax, Disk, Internet) Verifica tecnica della richiesta Solvibilità del Cliente Verifica scadenze 18
Sistemi Gestionali e per la Distribuzione Sistemi di Approvvigionamento Previsione fabbisogno per le vendite Previsione fabbisogno per la produzione Distribuzione dell ordine per l acquisto Materie prime Prodotti Scorte di sicurezza Monitoraggio dell ordine Scadenze Fornitori Controllo in entrata della merce ordinata (es. quantità) Sistemi Gestionali e per la Distribuzione Gestione del Magazzino Monitoraggio Giacienze: + carichi prelievi Prenotazioni Inventario Valutazione materiali Controllo di Gestione 19
Sistemi Gestionali e per la Distribuzione Produzione Computer Aided Manufacturing (CAM) Computer Aided Process Control (CAPC) Programmazione cicli di lavoro Sfruttamento ottimale della capacità produttiva Distribuzione dei carichi di lavoro: Tra risorse umane Tra macchine Tra stabilimenti Controllo avanzamento della produzione Computer Aided Quality (CAQ) Sistemi Gestionali e per la Distribuzione Spedizione Distribuzione: ottimizzare la quantità e tipologia di merce da spedire agli impianti di produzione ai clienti Logistica: ottimizzare modalità e tempistica del trasporto Fatturazione Considera dati su: clienti, ordini, consegne, sconti e maggiorazioni 20
Sistemi Gestionali e per la Distribuzione Assistenza Clientela Help Desk Rilevazioni e classificazione richieste e reclami Supporto alla diagnosi Definizione modalità e tempistiche di intervento Monitoraggio costi e risorse impiegate Tipologie di Sistemi Informativi Applicazione dei sistemi informativi alla gerarchia aziendale Supporto alle Decisioni Supporto ai Processi Fonte: Tecnologie dell informazione e della comunicazione per le aziende a cura di A. Carignani, ed. Mc Graw Hill 21
Sistemi di Pianificazione e Controllo Area Finanza Cash Management System gestione di incassi e pagamenti Gestione Finanziaria gestione investimenti e finanziamenti Gestione delle Risorse Umane Gestione orari Gestione retribuzioni e provvigioni Sistemi di notifica Sistemi di assegnamento del carico di lavoro Sistemi di Pianificazione e Controllo Contabilità Controllo di Gestione Costi e rendimenti per Centro di costo Commessa Cliente Prodotto Contabilità Generale Contabilità Industriale 22
Sistemi di Pianificazione e Controllo Direzione Management Information System (MIS) Sistemi orientati a fornire informazioni al management selezionandole da banche dati esterne, pubbliche o private, o dai database operativi presenti in azienda Executive Information System (EIS) Decision Support System (DSS) Sistemi interattivi che aiutano specialisti e responsabili aziendali a prendere decisioni in situazioni di difficile interpretazione Executive Support System(ESS) Sistema Informativo Integrato Integrazione in un Sistema Informativo: Interazione funzionale di uomini, processi e tecnologie con l obiettivo di creare un insieme unitario e coerente Integrazione Orizzontale Concatenazione di Sistemi Gestionali e per la Distribuzione nell ambito della catena del valore per mezzo di comunicazione di dati e informazioni Integrazione Verticale Convogliamento di informazioni dai Sistemi Gestionali e per la Distribuzione verso Sistemi per la Pianificazione e il Controllo e Supporto alla Direzione, ai fini di elaborare strategie aziendali basate sulla conoscenza della situazione 23
Magazzino Sistema Informativo Integrato Conoscenza Dati Informazioni Ricerca e sviluppo Vendite Ordini e approvvigionamenti Produzione Spedizione Assistenza Clienti Integrazione Funzionale e di Processo in un Sistema Informativo Fonte: Tecnologie dell informazione e della comunicazione per le aziende a cura di A. Carignani, ed. Mc Graw Hill 24