Analisys and Development of Real Time Software Giuseppe Lipari e Enrico Bini Scuola Superiore S.Anna Carlo Vitucci Ericsson Italia Applicazioni Real-time Applicazioni reattive: Interagiscono con l’ambiente in maniera tempestiva La risposta ad un evento deve avvenire entro un tempo massimo predeterminato (deadline) evento elaborazione deadline Applicazioni Real-time Utente Eventi: Periodici Aperiodici Gli eventi sono spesso asincroni Programma concorrente Sistema operativo real-time >10 msec 1 msec HW Sviluppo di applicazioni RT 1. Progettazione dell’aspetto funzionale 2. Suddivisione in processi concorrenti a. Comunicazione tra processi b. Parametri (vincoli temporali, priorità) 3. Analisi temporale 4. Implementazione 1. Progetto delle funzionalità Varie metodologie e tool UML (es. Rational rose) SDL (es. Telelogic) Nessuna tratta gli aspetti temporali esplicitamente NOTA: la parola real-time è spesso usata in maniera impropria Prossimi sviluppi... OMG sta definendo il profilo RT-UML Permette l’annotazione di un progetto UML con vincoli RT Permetterà la verifica automatica dei vincoli SDL potrà utilizzare UML come notazione per parti della specifica 2. Scomposizione in processi In gran parte fatta “manualmente” Il progettista usa la sua esperienza Non ci sono metodologie di supporto Problemi: Come distribuire le funzionalità nei vari processi Come assegnare le priorità Supporto tramite tool In SDL, generazione automatica del codice secondo due modalità Un unico processo Più processi concorrenti Nel secondo caso, non si può intervenire facilmente sui parametri 3. Analisi Real-time Indica se i vincoli temporali saranno rispettati Meglio farla il prima possibile nel ciclo di sviluppo Per evidenziare potenziali problemi Per calibrare le risorse da utilizzare Serve un modo per esprimere i vincoli temporali nella fase 1 Tool per l’analisi Real-Time Tool commerciali Tri-pacific Timesys Non facilmente integrabili con i tool attualmente utilizzati in Ericsson Prossimo futuro: RT-UML ? Sommario La progettazione di applicazioni realtime viene in parte fatta artigianalmente Separazione della parte funzionale in processi RT Assegnamento delle priorità Pochi strumenti di analisi e di sintesi di supporto al progettista per la parte real-time Obiettivi della ricerca Fornire una metodologia integrabile di supporto all’analisi di applicazioni RT Modello matematico dell’applicazione Algoritmo per la scelta ottima dei parametri (priorità ecc.) Algoritmo per la garanzia dei vincoli temporali Integrazione della metodologia nel processo di sviluppo Work in Progress Definizione di un modello matematico “Modeling Event-driven Real-Time Applications Using DAGs” E. Bini, G. Lipari, C. Vitucci, RealTime System Symposium, WIP session. Viene proposto un modello basato su grafi per modellare un’applicazione real-time Next step Algoritmo di ottimizzazione per ricavare le priorità in maniera semi-automatica