Scuola Politecnica e delle Scienze di Base Corso di Laurea Magistrale in Ingegneria Informatica PROGETTAZIONE MODEL-DRIVEN DI UN SISTEMA EMBEDDED INDUSTRIALE tesi di laurea magistrale PROGETTAZIONE MODEL-DRIVEN DI UN SISTEMA EMBEDDED INDUSTRIALE Anno Accademico 2013/2014 relatore Ch.mo Prof Stefano Russo correlatore Ing. Domenico Di Leo Ing. Bruno Busco candidato Francesco Pascale Matr. M63000092 Scuola Politecnica e delle Scienze di Base Corso di Laurea Magistrale in Ingegneria Informatica PROGETTAZIONE MODEL-DRIVEN DI UN SISTEMA EMBEDDED INDUSTRIALE Obiettivi Analizzare le metodologie di progettazione model-driven e i relativi linguaggi standard per la modellazione Realizzare con metodologie model-driven il progetto di un sistema embedded nell’ambito del contesto industriale considerato Confrontare un approccio di modellazione a oggetti con uno procedurale Valutare vantaggi e svantaggi dell’applicazione di una metodologia modeldriven in un contesto industriale Il caso di studio è un sistema software utilizzato a bordo treno per il monitoraggio del veicolo Scuola Politecnica e delle Scienze di Base Corso di Laurea Magistrale in Ingegneria Informatica PROGETTAZIONE MODEL-DRIVEN DI UN SISTEMA EMBEDDED INDUSTRIALE Model-Driven Architecture Model Driven Architecture (MDA) fornisce un approccio alla modellazione Model-Driven basata su standard OMG. Propone un approccio per lo sviluppo di sistemi basato su trasformazioni tra modelli UML a differenti livelli di astrazione. Il Platform-Independent Model (PIM) rappresenta il sistema e le sue funzionalità astraendo da dettagli specifici di una piattaforma tecnologica; questi sono considerati quando si trasforma il PIM nel Platform-Specific Model (PSM). Il PSM è poi trasformato in una specifica implementazione. L’approccio Model-Driven induce progettisti e tester a definire in maniera più formale modelli adeguati per le varie fasi dello sviluppo, e l’implementazione è supportata da appositi strumenti. Scuola Politecnica e delle Scienze di Base Corso di Laurea Magistrale in Ingegneria Informatica PROGETTAZIONE MODEL-DRIVEN DI UN SISTEMA EMBEDDED INDUSTRIALE SysML Systems Modeling Language (SysML) è linguaggio di modellazione. Costituisce un sottoinsieme UML con delle estensioni Supporta la specifica, l'analisi, la progettazione, la verifica e la validazione di sistemi sia hardware sia software Supporta l’interscambio di modelli e di dati tramite lo standard XML Metadata Interchange (XMI) Scuola Politecnica e delle Scienze di Base Corso di Laurea Magistrale in Ingegneria Informatica PROGETTAZIONE MODEL-DRIVEN DI UN SISTEMA EMBEDDED INDUSTRIALE Caso di studio: Il sistema TOD di AnsaldoBreda AnsaldoBreda, azienda leader nel settore ferroviario in Italia e nel mondo nella costruzione di treni per metropolitane e linee ferroviarie ad alta velocità. Sistema in esame: TOD (Train Operator Display) Il TOD è l’interfaccia verso il macchinista e il manutentore che permette di controllare lo stato di marcia in sicurezza del veicolo. Scuola Politecnica e delle Scienze di Base Corso di Laurea Magistrale in Ingegneria Informatica PROGETTAZIONE MODEL-DRIVEN DI UN SISTEMA EMBEDDED INDUSTRIALE Ingegnerizzazione model-driven: la metodologia proposta Attività Modellazione procedurale Modellazione a oggetti 1. Analisi SysML SysML/UML 2. Progettazione 3. Generazione del codice PIM UML PSM UML (Profiled) Rhapsody FunctionalC C C (Object-Based) C++ UML (IBM Rhapsody Testing Profile ) 4. Testing Generazione automatica dell’implementazione dell’infrastruttura di test (IBM TestConductor) Generazione automatica dell’infrastruttura di test e della implementazione (IBM TestConductor) e dei Test Case (IBM ATG) Scuola Politecnica e delle Scienze di Base Corso di Laurea Magistrale in Ingegneria Informatica PROGETTAZIONE MODEL-DRIVEN DI UN SISTEMA EMBEDDED INDUSTRIALE Strumenti di supporto utilizzati Eclipse-Papyrus Modellazione SysML IBM Rational Rhapsody Developer Modellazione FunctionalC-UML Generazione del codice Generazione casi di test Scuola Politecnica e delle Scienze di Base Corso di Laurea Magistrale in Ingegneria Informatica PROGETTAZIONE MODEL-DRIVEN DI UN SISTEMA EMBEDDED INDUSTRIALE Analisi: modellazione SysML FASE 1a: Analisi e modellazione dei requisiti e delle relazioni tra di essi (Requirements Diagram RD) • I requisiti sono raggruppati secondo un criterio di coesione interna (requisiti generali, di servizio, etc). FASE 1b: Definizione dell’architettura di alto livello (Block Definition Diagram - BDD). • Sono definiti i blocchi del sistema, composto dal TOD e dai dispositivi con cui interagisce (DBU – Diagnostic Based Unit, sensori, attuatori). Scuola Politecnica e delle Scienze di Base Corso di Laurea Magistrale in Ingegneria Informatica PROGETTAZIONE MODEL-DRIVEN DI UN SISTEMA EMBEDDED INDUSTRIALE Analisi con SysML FASE 1c: Definizione dell’architettura interna dei blocchi (Internal Block Diagram - IBD) • Per ogni blocco sono definiti: i dettagli interni, i flussi dei dati e dei segnali e le connessioni fra i Flow Port. FASE 1d: Allocazione dei Requisiti (allocated Requirements Diagram) • I requisiti sono allocati ai blocchi (in modo da supportare la loro tracciabilità nonché l’analisi d’impatto). Scuola Politecnica e delle Scienze di Base Corso di Laurea Magistrale in Ingegneria Informatica PROGETTAZIONE MODEL-DRIVEN DI UN SISTEMA EMBEDDED INDUSTRIALE Progettazione procedurale FASE 2a: Si utilizzano i File Diagram del profilo FunctionalC del tool IBM Rhapsody per modellare i moduli software (file in linguaggio C). le funzioni e gli attributi offerti, così come le dipendenze di inclusione tra essi. FASE 2b: Il comportamento dinamico dei moduli è definito tramite State Chart. FASE 3: Il codice è generato automaticamente ed è possibile animare il modello durante l’esecuzione con la possibilità di fare early verification. FASE 4: Uso di IBM TestConductor per definire l’infrastruttura di testing. Scuola Politecnica e delle Scienze di Base Corso di Laurea Magistrale in Ingegneria Informatica PROGETTAZIONE MODEL-DRIVEN DI UN SISTEMA EMBEDDED INDUSTRIALE Progettazione a oggetti FASE 2a: Modellazione del class diagram (UML) con la definizione delle interfacce offerte e richieste e gli attori esterni al sistema FASE 2b: Realizzazione degli State Chart che descrivono il comportamento dinamico di ciascuna classe FASE 3: Il codice è generato automaticamente ed è possibile animare il modello durante l’esecuzione con la possibilità di fare early verification. FASE 4: Uso di IBM TestConductor per definire l’infrastruttura di testing. TestConductor ne genera l’implementazione e Automatic Test generator (IBM ATG) i casi di test Scuola Politecnica e delle Scienze di Base Corso di Laurea Magistrale in Ingegneria Informatica PROGETTAZIONE MODEL-DRIVEN DI UN SISTEMA EMBEDDED INDUSTRIALE Considerazioni Supporto per la tracciabilità dei requisiti Integrazione tra le varie fasi di progettazione Early Verification (Verifica e Validazione dei modelli) Codice generato automaticamente potrebbe non rispettare le policy aziendali Tempo di startup iniziale per l’apprendimento di nuove tecnologie Sviluppo vincolato al tipo di prodotto utilizzato Costo elevato delle licenze degli strumenti di supporto commerciali (non open source) Scuola Politecnica e delle Scienze di Base Corso di Laurea Magistrale in Ingegneria Informatica PROGETTAZIONE MODEL-DRIVEN DI UN SISTEMA EMBEDDED INDUSTRIALE Grazie per l’attenzione