T&T SYSTEMS srl Presentazione della Società 2 Chi siamo La T&T Systems, che conta nel complesso di un organico complessivo di ca. 45 persone, per la maggior parte laureati in materie scientifiche è specializzata nello sviluppo ed utilizzo di strumenti, metodi e tecnologie informatiche nel campo dell'automazione industriale. L’offerta copre una vasta gamma di servizi e tecnologie; più in particolare T&T Systems offre: la progettazione e lo sviluppo di sistemi elettronici programmabili la progettazione, lo sviluppo e la messa in servizio di sistemi di controllo e supervisione (sistemi SCADA) l’implementazione HW/SW di sistemi di aggregazione e di elaborazione e di trasferimento di dati in sistemi di produzione e in sistemi di controllo, automazione e supervisione la progettazione e lo sviluppo di schede a microprocessore lo sviluppo di applicazioni web sia in campo industriale che commerciale lo sviluppo di sistemi di Data WareHouse e di Business Intelligence T&T Systems fornisce inoltre, nell'ambito della sicurezza funzionale dei sistemi elettronici, a società di ingegneria, impiantistiche, operative ed ai solution provider, competenze, metodologie, tecniche, consulenza e coaching finalizzati alla realizzazione di sistemi di automazione destinati ad essere utilizzati in applicazioni safety-critical e ad alta disponibilità. La T&T Systems oltre ad avere un forte e molto competente gruppo di progettisti HW/SW, ha fatto crescere al suo interno un gruppo di R&D con l’ottica di sviluppare e mettere a punto nuove tecnologie. L’ultimo importante risultato è stato l’implementazione della piattaforma ICEBERG, un insieme di moduli e componenti software che realizzano nel loro complesso l’obiettivo di avere a disposizione un ambiente strutturato e standardizzato finalizzato all’attività di sviluppo di complesse applicazioni software. Forte impulso viene dato attualmente allo sviluppo di Sistemi a Supporto in Tempo Reale delle Decisioni, cioè dell’implementazione, con l’uso della piattaforma ICEBERG, all’interno delle aziende industriali, di infrastrutture HW/SW in grado di individuare in anticipo eventi di alto livello risultanti da specifici fattori di basso livello, consentendo azioni di risposta immediate e proattive a specifici scenari. T&T Systems ha origine dall’esperienza professionale dei due soci Roberto Trapani e Michele Ticozzi. 3 Michele Ticozzi Roberto Trapani laureato in Ingegneria Nucleare laureato in Ingegneria Nucleare ideatore e Project Manager di sistemi di acquisizione, restituzione dati e di comando eregolazione di impianti industriali esperto nello sviluppo di modelli matematici in campo fluidodinamico e neutronico per l'analisi della sicurezza e la simulazione dinamica di Impianti Nucleari consulente per l’iter di certificazione di sistemi industriali rilevanti ai fini della Sicurezza Funzionale dei Sistemi ad Elettronica Programmabile analista esperto riguardo metodologie e tecniche informatiche innovative nell’ambito del controllo di processo e dell’automazione industriale ispettore ACCREDIA 4 Servizi La T&T Systems si pone sul mercato come azienda di servizi nel campo dell'informatica industriale, con la capacità e le competenze necessarie per soddisfare una vasta gamma d’esigenze. T&T Systems propone: Sviluppo HW sviluppo progetto elettrico completo di schede a microprocessore di qualsivoglia complessità realizzazione di prototipi atti alla validazione HW/SW dei progetti elettrici realizzati assistenza al collaudo dei prototipi presso il cliente o laboratori specializzati assistenza al processo di omologazione secondo le vigenti normative Sviluppo FW FW su schede elettroniche con microprocessori/microcontrollori delle più diffuse marche, da 8 bit a 32 bit, in particolare per implementare: o metodi di acquisizione, analisi e trattamento di grandezze elettriche analogiche o algoritmi di protezione e controllo conformi alle normative di settore Sviluppo sistemi SW sviluppo di sistemi di acquisizione e restituzione dati, di sistemi di controllo e supervisione e delle relative interfacce utente, il tutto installabile su qualsiasi piattaforma HW e qualsiasi sistema operativo sviluppo di sistemi a supporto in tempo reale delle decisioni Attività di analisi HW/SW 5 scrittura di specifiche funzionali e di dettaglio del FW e del SW coaching, consulenza, scrittura di documentazione ai fine della certificazione relativa alla Sicurezza Funzionale dei Sistemi ad Elettronica Programmabile Competenze tecniche Competenze tecniche di base conoscenza dei linguaggi e dei sistemi operativi real-time (RTOS) tra i più affermati sul mercato conoscenza dei principali ambienti di sviluppo di software embedded esperienza nel trattamento e nella trasmissione di dati in applicazioni real-time progettazione e realizzazione di software per sistemi SCADA conoscenza di reti di telecomunicazione per la trasmissione dati progettazione secondo gli standard ISO/OSI di software per la gestione dei protocolli di comunicazione più diffusi in campo industriale realizzazione di applicazioni con architettura CLIENT/SERVER in ambiente embedded real-time automazione del processo di testing in laboratorio progettazione di Firmware per schede a microprocessore (da 8 bit a 32 bit) delle famiglie più diffuse conoscenza e programmazione di molteplici famiglie di PLC driver software per un'innumerevole serie di microcontrollori e chip intelligenti conoscenza dei BUS dati industriali più diffusi sviluppo di software e personalizzazione applicativi su DCS conoscenza delle principali norme sulla sicurezza funzionale dei sistemi elettronici programmabili 6 Principali clienti ABB Adda Lodi ABB Ricerca Sesto S. Giovanni (Milano) ABB Sace Bergamo AEG Milano Alstom Bergamo Automata Caronno Pertusella (Varese) Carlo Gavazzi Impianti Marcallo Con Casone (Milano) Cimbali Binasco (Milano) Contrel Elettronica Lodi EPTA Milano ESA Elettronica Mariano Comense (Como) IMQ Milano Magrini Galileo Agrate Brianza (Milano) Marelli Corbetta (Milano) Siemens Milano ST Microelectronics Agrate Brianza (Milano) Tecnint HTE Merate (Lecco) Telestar Rovellasca (Como) 7 Team Attualmente il team T&T Systems conta circa 40 addetti di cui 25 laureati in discipline scientifiche. La formazione del personale è operata all’interno della società; i nuovi collaboratori vengono opportunamente addestrati ed introdotti agli strumenti ed alla metodologia di lavoro. Organigramma Amministratore unico Direzione tecnica Amministrazione Responsabile Commerciale Roberto Trapani Michele Ticozzi Nicoletta Giansantelli Fulvio Achermann Indirizzi Roberto Trapani Cellulare Posta elettronica Michele Ticozzi Cellulare Posta elettronica Nicoletta Giansantelli Cellulare Posta elettronica Fulvio Achermann Cellulare Posta elettronica +39 348 2256302 [email protected] +39 348 6003282 [email protected] Nicoletta Giansantelli [email protected] +39 3403466704 [email protected] 8 Dettaglio delle competenze 9 10 Dettaglio delle competenze COMPETENZE ESEMPI Linguaggi: ASSEMBLER, C ANSI, C++, Visual C, JAVA, PASCAL e Visual Basic Competenze informatiche di base Piattaforme: Dos, UNIX, LINUX, VMS, OS/2 Windows 95/98 e Windows NT/2000/XP/Seven, Alpha, RSX-11M Ambienti integrati e Debugger: Xray, Probe, SingleStep, KwikLook, EDE, WinIdea, Prism, Illuminator, Iar, NodeBuilder, CodeWarrior Tools di gestione automatica della configurazione software: Aide de Camp, CMS, Visual SourceSave, Sniff+ Utilizzo di strumenti informatici e hardware tra i più evoluti Compilatori delle case più note: Microtec, WindRiver, Gnu, Tasking, Sds CrossCode, Iar, Cosmic, Microsoft, Borland Emulatori: Applied Microsystems, Lauterbach, HP, ISystem, Zax Promice Analizzatori di protocollo e di stati logici Conoscenza dei Sistemi Operativi Real-Time tra i più affermati sul mercato INUX RTAI PSOS System VRTX AMX RTXC Enea OSE 11 Conoscenza delle principali norme sulla qualità e sicurezza dei sistemi elettronici programmabili ISO 9001 UL 1998 IEC 61508 IEC 60730 Automazione del processo di testing in laboratorio Controllo remoto di strumenti di misura da laboratorio mediante protocollo standard GPIB Z80 Toshiba NeuronChip Microcontrollori 68HC08, 68HC11 e 68HC12 della 68HCS08 Motorola Famiglia 8051 Philips Famiglie 68K, PPC, ColdFire e M-Core Motorola Famiglia Texas Instruments MSP430 Famiglia Microchip 16F8xx Famiglie ST6, ST10 Schede della famiglia MVME Motorola Progettazione di Firmware per schede a microprocessore (da 8 bit a 32 bit) delle famiglie più diffuse Microcontrollori Ethernet (es. Intel 82596, Intel 21143, Dec 21140, Motorola 60EN302) DSP ADC e DAC di vari costruttori UART e SCC Bridge per bus VME e PCI Driver software per un'innumerevole serie di microcontrollori e chip intelligenti Ethernet VME GPIB ISA/PCI Can Profibus Conoscenza dei BUS dati industriali più diffusi Progettazione secondo gli standard ISO/OSI di software per la gestione dei protocolli di comunicazione più diffusi in campo industriale Realizzazione di applicazioni con architettura CLIENT/SERVER in ambiente embedded realtime Bitbus Modbus/Jbus FIP LON TCP/IP UDP/IP DecNet ed una gran serie di protocolli proprietari Implementazione di un gateway tra il bus di sistema Ethernet e il bus di campo Modbus 12 Progettazione e realizzazione di software per sistemi SCADA FactoryLink Fix Dmacs Telegyr System 8000 Sviluppo di software e personalizzazione applicativi su DCS Fisher Rosemount RS3 HoneyWell PlantScape Moore APACS ABB Advant Controller 450 Conoscenza e programmazione di molteplici famiglie di PLC Esperienza nel trattamento e nella trasmissione di dati in applicazioni real-time, conoscenza di reti di telecomunicazione per la trasmissione dati PLC 5 SLC 500 (Allen Bradley) April 5000 (April / Telemecanique) GE Fanuc Serie 90 PES HIMA Modicon Centrale elettrica ENEL di Vado Ligure Sistema di automazione delle cabine elettriche primarie di trasformazione Rete Itapac della Telecom Rete RIAM dell'ENEL 13 14 I progetti su commessa 15 16 Progetti significativi sviluppati su commessa La T&T Systems ha maturato la propria esperienza nei seguenti settori: supervisione di centrali termoelettriche sistemi di automazione di impianti industriali telecontrollo di reti elettriche monitoraggio ambientale telelettura di dati tariffari collaudo di macchine controlli automatici di apparecchiature e diagnostica a distanza convertitore di protocolli di rete controllo-comando di sottostazioni elettriche in campo ferroviario consulenza nel campo della sicurezza funzionale di sistemi elettronici programmabili sistemi HW e SW di acquisizione, elaborazione, restituzione dati A titolo esemplificativo viene proposta una lista di progetti significativi cui la T&T Systems ha partecipato ed i relativi ambienti di sviluppo. 17 PROGETTO NOTE Supervisione di centrali termoelettriche per Telegyr Sistema di supervisione del ciclo primario delle centrali termoelettriche dell’ENEL composto da: Nodi acquisitori delle grandezze analogiche, digitali e dei conteggi Nodi concentratori Apparati centrali (SCADA, postazione operatore) Terminali video collegati ad una unità centrale VAX con sistema operativo VMS. Linguaggio ANSI C, sistema operativo real-time VRTX Gestione delle release (CMS) Telelettura di dati tariffari dell'ENEL Sistema di telelettura di un contatore elettrico composto da: Un apparato centrale per la lettura dei dati tariffari dei gruppi misure e conteggi (GMC) e dei registratori delle curve di carico (RCCA) per le utenze AT e MT Driver software per interfacciare il sistema di telelettura con la rete radiotelefonica privata dell'ENEL (RIAM) Rete RIAM dell’ENEL per la comunicazione tra apparato centrale e dispositivi remoti (GMC e RCCA), sistema operativo DOS, linguaggio PASCAL Monitoraggio ambientale per centrali ENEL Sviluppo del software real-time su PC di un sistema concentratore ed elaboratore di dati provenienti da periferiche di monitoraggio ambientale di centrali termoelettriche (ad esempio, le centrali ENEL di Monfalcone e Piombino) PC industriale PC-104, sistema operativo DOS, libreria real-time Ctasker, linguaggio C, protocollo di campo Modbus Quadro di bordo per autoveicoli IVECO Sviluppo del firmware di controllo del quadro di bordo di autoveicoli commerciali IVECO Microcontrollore Motorola 68HC08, sistema operativo real-time proprietario, linguaggio C 18 IRU Progetto e sviluppo del firmware per un’unità periferica di automazione locale e di interfaccia con gli organi di campo con le seguenti caratteristiche: esecuzione concorrente in ambiente di multiprogarammazione di logiche di automazione (fino a 7); possibilità di telecaricare separatamente ogni logica senza interferire con l’esecuzione delle altre; schede CPU ridondate in riserva calda Microprocessore Motorola MC68302, sistema operativo real-time Psos+, linguaggio C, progettazione delle logiche di automazione mediante CAD (Logicad), bus di campo seriale con standard elettrico RS485 e protocollo di comunicazione Modbus Scheda Motorola MVME 162-512 equipaggiata con: Microprocessore Motorola MC68040, Ethernet Controller Intel I82596, Serial Communication Controller Zilog Z85230, Serial Communication IndustryPack (IP) ognuno equipaggiato con microprocessore Motorola MC68302, sistema operativo real-time Psos+, networking software in ambiente real-time Pna+, protocolli di comunicazione TCP/IP, UDP/IP, MODBUS BSP per scheda Motorola Sviluppo del BSP (Board Support Package) in ambiente MicrotecSpectra per la scheda Motorola MVME 2100 JTER / JCOL TUBUS TU-AL MERU FRONT E MERU TUBUS TU-xxx RETR ACU Progetto e sviluppo del firmware per un’unità con funzioni di automazione di area, gateway tra bus di sistema Ethernet e bus di campo Modbus su supporto RS485, router dei dati distribuiti tra le unità di automazione locale appartenenti all’area controllata e verso altre aree connettore TU-xxx Microprocessore Motorola PPC8240 (Power Quick II), microcontrollore Ethernet Intel 21143, bridge bus PCI-VME Tundra Univers II, microcontrollore Scasi, sistema operativo real-time VRTX, linguaggio Assembler e C 19 M3 CIMBALI Progetto e sviluppo del sistema di controllo automatico di macchine elettroniche per la confezione di caffè espresso Microcontrollore Philips della famiglia 80C51, e microcontrollori Motorola 68HC11 sistema operativo real-time RTXC, linguaggio C Firmware per protezioni a bassa tensione ABB Sace Sviluppo firmware per la scheda di dialogo connessa a protezioni di bassa tensione Microprocessori Motorola MC68302 e Neuronchip, sistemi operativi real-time AMX, linguaggi C e C++, protocolli Modbus e Lon Firmware per protezioni a media/alta tensione Telegyr Sviluppo firmware per protezioni a media/alta tensione Microprocessore Motorola MC68000 e MC68302 sistemi operativi real-time AMX e Psos+, linguaggio Assembler e C Automazione delle cabine primarie di trasformazione dell’ENEL Sviluppo firmware per la scheda di dialogo connessa ad ogni protezione di cabina Microprocessore Motorola MC68EN302, sistema operativo real-time Psos+, networking software in ambiente real-time Pna+, protocollo di comunicazione TCP/IP Monitoraggio interruttori ad alta tensione Sviluppo di firmware per un sistema di controllo e monitoraggio di interruttori ad alta tensione Microprocessori Motorola MC68332 e MC68302, sistema operativo real-time AMX, linguaggio C 20 Convertitore protocollo FIPBitbus Sviluppo del firmware residente in una scheda avente funzioni di convertire di protocollo FIPBITBUS Microprocessore Motorola MC68302, sistema operativo real-time Psos+, linguaggio C PLC Programmazione su PLC Modicom dei sistemi d’automazione, comando e supervisione di: Una sottostazione di trasformazione elettrica delle Ferrovie dello Stato (primo esempio in Italia di utilizzo di logiche programmabili da parte delle Ferrovie dello Stato) Una sottostazione di trasformazione elettrica della Metropolitana Milanese Una sottostazione di trasformazione elettrica dell’ATM di Milano Tre sottostazioni di trasformazione elettrica della Ferrovia Ostia Lido Roma Sistema di sviluppo MODSOFT Supervisione pozzi AGIP Centro raccolta olio Val D'Agri (Potenza): Sistema di supervisione e monitoraggio di una rete di pozzi petroliferi AGIP. Realizzazione del software dei sistemi ESD/PSD e di controllo pozzi. Assistenza ai collaudi in fabbrica e attivazione in campo PLC Allen Bradley SLC500 e sistema di sviluppo RSLOGIX. PLC Hima H51qHRS e sistema di sviluppo ELOP II NT. Software SCADA Rockwell RSVIEW Rete Ferroviaria Italiana Realizzazione di moduli software per un terminale dedicato alla gestione del sezionamento a distanza delle tratte elettriche Sistema operativo Linux RedHat 7.2 Interfaccia grafica X-Window Motif 21 Firmware di lettura/impostazione parametri valvole elettroidrauliche Gestione dei dati di impostazione valvole idrauliche scambiati serialmente con un PC ed un HMI Sistema operativo Windows 2000, interfaccia grafica LabView, microcontrollore Motorola 68HC12, linguaggio C Firmware di gestione apparati domotici Gestione di un impianto domotico attraverso l’invio di comandi via sms o radiofrequenza Sistema operativo Windows 2000, protocollo di comunicazione Lon, microprocessore Toshiba Neuronchip, linguaggio C Centro di controllo della rete elettrica di Trieste (ACEGAS): preparazione di un database contenente i parametri di gestione delle cabine elettriche presentazione dei parametri nei confronti dell’operatore basata su un sistema di finestre grafiche rappresentanti lo schema elettrico della cabina Sistema di supervisione TG8000 (Telegyr Systems), tool utilizzato per la realizzazione delle pagine grafiche: IPE Job scheduler per i reparti stampa e legatoria dell’industria grafica realizzato da Didelme Sistemi Applicazione che gestisce in modo grafico la schedulazione di vari task (azioni, commesse, lavorazioni etc…) legati all’attività di stampa e legatoria Utilizzo di un OCX della Netronic 22 Simulatore di guida ferroviaria realizzato in collaborazione con Dornier per le FS Implementazione di software in linguaggio C per il simulatore di guida della locomotiva E464 in ambiente Linux-Unix: Realizzazione di un software dedicato alla comunicazione del simulatore con i monitor della cabina comando, Creazione e modifica delle interfacce utente (UI) Sistema operativo Linux e Unix. Linguaggi: C, C++, Assembler per Microchip Microcontrollore Microchip 16F877 Protocollo di comunicazione TC57 Corso di formazione intitolato “Validazione del SW” tenuto presso IMQ Il corso, rivolto al personale IMQ, si è svolto sui seguenti temi: Architettura dei microcontrollori. Metodologie e formalismi per il progetto, lo sviluppo e il collaudo di sistemi embedded. Il testing del software secondo le norme sulla sicurezza (con esempi sulle norme CEI EN 60730 e CEI 61508). Lo sviluppo: codifica in linguaggio Assembler e C Pannelli di controllo delle macchine per lo stampaggio di materie plastiche della Automata Implementazione di dll in linguaggio C\C++ per la comunicazione (protocolli Bitbus e CAPC) tra PC e pannelli Realizzazione dei relativi programmi di test Implementazione di un applicativo per il controllo di dati di produzione provenienti da macchine connesse ad una rete ethernet, e raccolti mediante un OPC Server 23 Modulo di comunicazione atto a dotare i banchi di refrigerazione di produzione EPTA S.p.A. di due canali di comunicazione WIFI e Bluetooth Possibilità di scambiare dati ed interagire con dispositivi mobili (PC, telefoni cellulari, IPOD; ecc.) Possibilità via WIFI/INTERNET di tele controllare e monitorare i banche frigo da remoto Sistema sviluppato su PANDA board, SO Unix, liguaggio C++ Modulo di comunicazione “LIN” master per banchi frigo e modulo periferico LIN slave con uscita analogica 0-10 V Sviluppo dei moduli sia HW che SW Firmware sviluppato in linguaggio C Progetto HW/SW di un Gateway Modbus/Profibus Scheda elettronica che associata ad un qualsiasi apparato MODBUS RTU agisce da “spina di comunicazione” consentendo di inserire l’apparato Modbus in un bus Profibus DP. Fornitura del file “GSD” (Generic Station Description) per un setup semplificato del bus Profibus Mappa di memoria del dispositivo Modbus configurabile Associazione delle variabili Modbus (registri e coils) a variabili Profibus liberamente configurabile Microprocessore Freescale HC S08 Linguaggi Assembler e C Progetto HW/SW di un Traslatore di Protocollo Modbus/M-Bus Scheda elettronica che associata ad un multimetro (Modbus RTU) della Contrel Elettronica consente di inserire il multimetro in un bus M-Bus Microprocessore Texas Instruments Stellaris ARM Cortex-M3S Linguaggio Assembler e C 24 Sistema di Automazione del Minimetro di Perugia Nell’ambito della progettazione del sistema di automazione dell’impianto realizzazione di documentazione tecnica secondo la norma IEC 61508 relativa a: specifiche funzionali descrizione architettura Hardware e Software protocolli di test Hardware e Software manuali uso e manutenzione Sviluppo e certificazione di sicurezza del sistema di telecontrollo degli impianti fissi di trazione elettrica a 3kVcc di RFI S.p.A. (gruppo Ferrovie dello Stato) Certificazione di sicurezza funzionale SIL 3 secondo la norma IEC 61508 PLC Siemens dalla famiglia Simatic S7 400 FH (Failsafe e High Availability) Ambiente di sviluppo Siemens Simatic S7 Scada Siemens WinCC Consulenza relativa alle attività di Hazard Analysis e di scrittura dei documenti correlati con la sicurezza (identificazione dei Pericoli ed Analisi del Rischio, (HIEA), Piano di Sicurezza del Sistema, Specifiche dei Requisiti di Sicurezza del Sistema e del Software, Safety Case, ecc.…). Assunzione del ruolo di “Verificatore” nell’ambito delle attività di Verifica e Validazione del Sistema e del Software al fine di ottenere la certificazione SIL 2 del sistema secondo le norme CEI EN 50126 e 50128. Validazione del traduttore (compilatore) Software relativo al linguaggio di programmazione C mediante l’utilizzo della suite di validazione Plum Hall. Analisi statica del codice sorgente ed analisi di copertura del Software ottenuta dal testing eseguite mediante tool dedicati; Scrittura di documentazione tecnica relativa al Software , quali, ad esempio, specifiche dei requisiti, dell’architettura, di test, ecc.… 25 Impianto Oil & Gas di West Ashrafi – Egitto Nell’ambito della progettazione dei principali sistemi strumentati per la sicurezza (SIS) dell’impianto, – ESD Emergency Shut Down; Fire & Gas detection, attività di: Hazard Analysis Collaborazione alla scrittura delle specifiche tecniche HW e SW Verifica e Validazione Safety Assessment Calcolo del SIL, dell’affidabilità e della disponibilità dei singoli contrl-loop, e complessivi di sistema Certificazione di sicurezza funzionale SIL 3 secondo la norma IEC 61511 Design e ingegnerizzazione del SIS comprendente il calcolo e la verifica del SIL di ogni SIF: Calcolo dei PFD di ogni control loop FMEA di ogni control loop FTA di ogni control loop Diagramma dei blocchi di affidabilità e calcolo del SIL di ogni control loop. Definizione del piano di sicurezza e del ciclo di vita del sistema Analisi RAM comprendente il calcolo della disponibilità del SIS e del BPCS. Definizione delle procedure di valutazione del rischio. Sviluppo del piano di validazione e delle procedure di test del software applicativo Sistema a messaggi variabili del Minimetro di Perugia Realizzazione dell’applicazione software che consente di visualizzare sui display delle vettura dei messaggi preconfigurati relativi alla posizione della vettura, oppure dei messaggi di avviso liberamente predisposti dal personale della sala di controllo del sistema Applicazione di tipo web interattiva con architettura Client/Server e con scambio dati tra server e client basato su protocollo AJAX Uso di JavaScript Linguaggi PHP, HTML, C e Visual Basic 26 Il progetto ICEBERG 27 28 ICEBERG PIATTAFORMA STRATEGICA PER LO SVILUPPO DI APPLICAZIONI DISTRIBUITE ICEBERG è un insieme di moduli e componenti software in formato sorgente, che, sviluppati interamente da T&T Systems, hanno nel loro insieme realizzato l’obiettivo di ottenere un ambiente strutturato e standardizzato finalizzato all’attività di sviluppo di software applicativo in ambiente multipiattaforma L’attività di progettazione di programmi e applicazioni software ha da sempre costituito per T&T Systems il core business e la stessa mission della società. In questo contesto si è resa evidente nel tempo la necessità di disporre di un ambiente di sviluppo atto a facilitare e rendere più efficiente tale attività ed ICEBERG viene incontro proprio a questo tipo di esigenza. La T&T Systems per tutte le applicazioni sviluppate su commessa, può, grazie ad ICEBERG, avvalersi di una serie di componenti e moduli software pienamente controllabile, modulabile ed integrabile, il tutto senza il bisogno di supporti esterni e senza la necessità di pagare royalty o licenze. Non va poi sottovalutato il vantaggio, possedendo uno strumento come ICEBERG, di poter addestrare con maggiore rapidità ad una attività di sviluppo il personale neo-assunto proveniente dall’università o dalla scuola superiore. Utilizzando ICEBERG viene così enormemente accelerata la formazione e la possibilità di rendersi operativi e produttivi. L’ottica è stata quella di migliorare la qualità del servizio offerto, di standardizzare lo sviluppo e di diminuire i costi. Con ICEBERG la T&T Systems si è posta l’obiettivo di ottenere un ambiente di sviluppo per applicazioni distribuite, basato su tecnologie non proprietarie. A tal fine è stato scelto come linguaggio di programmazione C++. In questo contesto il front-end (interfaccia utente) di una applicazione sviluppata con ICEBERG viene costruito con pagine grafiche, mentre la parte elaborativa (back-end), viene affidata ad una libreria di servizi, cioè di programmi sviluppati ad hoc in linguaggio C++. Va da se che sia i moduli grafici che i vari servizi, una volta sviluppati per una applicazione, possono essere riutilizzati per applicazioni successive, con grande risparmio di costi. Per quanto riguarda le pagine grafiche, si ha a disposizione, inglobate in ICEBERG, una serie di oggetti grafici (form, griglie, liste, menu, pulsanti etc) che di volta in volta vengono riutilizzati come template per le successive applicazioni. Riassumendo, le caratteristiche essenziali di ICEBERG sono: indipendenza dalle piattaforme hw sulle quali i vari componenti del sistema vengono installati indipendenza dai sistemi operativi possibilità di sviluppare applicazioni internettistiche senza dipendere da un browser specifici indipendenza da qualsiasi sistema, tool, linguaggio proprietario sviluppo della piattaforma realizzato completamente all’interno della T&T Systems, avendo in tal modo la completa disponibilità dei moduli in linguaggio sorgente utilizzo di un linguaggio di programmazione standard (C/C++) e di compilatori open source una solida architettura distribuita e strutturata in maniera ottimale integrazione nella piattaforma di un completo sistema di gestione e monitoraggio possibilità di sviluppare applicazioni integranti dati (real time) di campo e dati di produzione con dati provenienti dalle aree di business possibilità di realizzare applicazioni grafiche integranti visualizzazioni 2d e 3d 29 Con l’uso di ICEBERG lo sviluppo di applicazioni anche complesse e distribuite, è grandemente facilitato dal disporre di una serie di moduli già sviluppati, che costituiscono un minimo comune denominatore per tutte le applicazioni. Questa caratteristica di ICEBERG consente di strutturare le nostre offerte in due parti distinte: i moduli di ICEBERG già sviluppati ed utilizzabili nello sviluppo dei vostri sistemi verranno fornite mediante un contratto di licenza d’uso (con o senza disponibilità dei sorgenti) le parti da sviluppare ex-novo per le specifiche esigenze delle aziende verranno invece quotate a corpo in base all’impegno di risorse necessario ARCHITETTURA DI ICEBERG L’architettura di ICEBERG è divisa in due macro aree: la rete applicativa (che si occupa della gestione attiva di dati e segnali da e verso il mondo esterno in base alle funzionalità che si intendono implementare) e il sistema di gestione e monitoraggio (che gestisce i processi e le macchine coinvolte dalla rete applicativa, permettendone la valutazione ed eventualmente una riorganizzazione a caldo per ottimizzare le risorse hardware disponibili). ICEBERG client application Monitor client ICEBERG ICEBERG dispatcher dispatcher Monitor Monitor master master ICEBERG services Monitor Monitor delegate delegate DATA SERVER DataBase DataBase Dati, Dati, File File Mondo Mondo esterno esterno OTHER Internet Internet 30 I/O I/O 31 Rete Applicativa La rete applicativa di ICEBERG prevede quattro livelli, integrati con un sistema di gestione e monitoraggio. Di seguito la descrizione. Livello 1: ICEBERG client application ICEBERG client application è un programma grafico che permette di gestire le funzionalità che si intendono implementare e può essere installato su: Personal computer con sistema operativo WINDOWS (XP sp3 o superiore) Personal computer con sistema operativo LINUX (2.6.33 o superiore) Personal computer con sistema operativo MAC- OS (10.6.8 o superiore) Smart phone e tablet con sistema operativo iOS (4.3 o superiore) Smart phone e tablet con sistema operativo Android (2.1 o superiore) Ogni ICEBERG client application è costituita dai seguenti tre moduli: Interfaccia utente: l’interfaccia utente viene realizzata mediante l’utilizzo di oggetti e componenti grafici facenti parte integrante della piattaforma. Tali oggetti e componenti grafici (caselle di testo, bottoni, radio button, griglie, menù a tendina, liste etc.) sono sviluppati in linguaggio C/C++ sfruttando le api OpenGL e OpenGL ES Modulo atto all’invio messaggi al dispatcher Modulo atto alla ricezione messaggi dal dispatcher Livello 2: ICEBERG dispatcher ICEBERG dispatcher è un programma predisposto a ricevere richieste dalle ICEBERG client application e a inoltrarle agli ICEBERG services, con tecniche di instradamento “intelligenti” le cui regole possono variare in funzione del carico elaborativo e dello stato della rete. ICEBERG dispatcher può essere installato su: Personal computer con sistema operativo WINDOWS (XP sp3 o superiore) Personal computer con sistema operativo LINUX (2.6.33 o superiore) Personal computer con sistema operativo MAC- OS (10.6.8 o superiore) 32 Workstation con sistema operativo LINUX (2.6.33 o superiore) Schede elettroniche programmabili con sistema operativo LINUX (2.6.33 o superiore) Esso è costituito dai seguenti quattro moduli: Modulo per ricezione messaggi dai client Modulo invio messaggi ai client Modulo per invio richieste ai servizi Modulo ricezione risposte dai servizi Livello 3: ICEBERG services Gli ICEBERG services sono programmi eseguibili predisposti a gestire le richieste provenienti dall’ICEBERG dispatcher e a interagire con il mondo esterno. Gli ICEBERG services possono essere installati nello stesso computer dall’ICEBERG dispatcher oppure su uno o più computer distribuiti in rete. Gli ICEBERG services possono essere installati su: Personal computer con sistema operativo WINDOWS (Xp sp3 o superiore) Personal computer con sistema operativo LINUX (2.6.33 o superiore) Personal computer con sistema operativo MAC- OS (10.6.8 o superiore) Workstation con sistema operativo LINUX (2.6.33 o superiore) Schede elettroniche programmabili con sistema operativo LINUX (2.6.33 o superiore) Attualmente sono stati sviluppati, tra gli altri, i seguenti servizi: Connessione a DB: SQLite, Sybase, SQL Server, MySQL Gestione stampe: file bitmap, file testo Driver comunicazione: RS-232, TCP/IP, UDP Gestione trasferimento file: FTP Gestione mail: POP3, SMTP Criptaggio dati: caesar, vigenere, playfair Gestione macchine in remoto: TELNET 33 Livello 4: Mondo esterno Sul mondo esterno, per mezzo dei servizi, ICEBERG può compiere le seguenti azioni: Acquisizioni di dati di campo analogici e digitali Invio di comandi analogici o digitali verso il campo Interrogazioni e download di informazioni da basi di dati strutturati o no su DBMS Interfacciamento con applicativi di terze parti. Sistema di gestione e monitoraggio La struttura di monitoraggio è parte integrante della piattaforma ICEBERG. Essa consiste in una serie di programmi aventi il compito di effettuare una gestione completa dei processi attivi sulle diverse macchine sulle quali viene distribuita l’applicazione. Si tratta quindi, in relazione al sistema ICEBERG, di un vero e proprio “sistema operativo distribuito”; ciò significa che, su ogni macchina della rete fisica su cui è installato un modulo della piattaforma, è anche attivo un processo in grado di effettuare le seguenti operazioni: Avviare e arrestare i programmi coinvolti nella rete applicativa installati sulla propria macchina Interrogare i componenti della piattaforma installati sulla propria macchina per ottenere informazioni su stato e traffico gestito Il sistema di gestione e monitoraggio è adibito inoltre a: Configurare ”a caldo” la rete applicativa sulla base dell’analisi del carico del lavoro Controllare il corretto funzionamento delle macchine e dei processi che le caratterizzano Analogamente a quanto visto per la rete applicativa, anche per il sistema di gestione e monitoraggio possono essere individuati diversi livelli di funzionamento; in questo caso essi sono tre e sono descritti di seguito. Livello 1: Monitor client Consiste in un programma installato su una macchina client, abilitata all’amministrazione dell’intero sistema. Consente ad un utente amministratore di gestire e controllare l’intero sistema di monitoraggio. 34 Livello 2: Monitor master Si tratta di un programma sempre attivo residente sulla stessa macchina su cui è attivo l’ICEBERG dispatcher. Il Monitor master è in grado di comunicare con il Monitor client e lo fa su un canale di comunicazione parallelo a quello della rete applicativa, ma completamente indipendente. Il Monitor master permette di controllare l’attività dell’ICEBERG dispatcher e degli altri ICEBERG services, eventualmente residenti sulla sua stessa macchina, funzionando da unità centrale della struttura di monitoraggio. Le funzionalità del Monitor master sono le seguenti: Avvio e arresto dei servizi installati sulla stessa macchina Avvio e arresto dei servizi installati sulle altre macchine, grazie alla comunicazione con i Monitor delegate Interrogazione dei componenti del sistema installati sulla sua stessa macchina per ottenere informazioni su stato e traffico gestito Controllo dei Monitor delegate inviando loro richieste e ricevendone risposte da inoltrare al Monitor client dell’amministratore. Livello 3: Monitor delegate Su ogni macchina della rete è attivo un programma detto Monitor delegate in comunicazione diretta con il Monitor master. Ogni Monitor delegate ha totale accesso agli ICEBERG services attivi sulla stessa macchina ed è in grado di controllarli permettendone l’avvio, l’arresto ed è in grado di interrogarli per ottenere informazioni su stato e traffico gestito. 35 Sicurezza Funzionale dei Sistemi Elettronici 36 37 T&T Systems, nell'ambito della Sicurezza Funzionale dei Sistemi Elettronici destinati ad essere utilizzati in applicazioni safety-critical e ad alta disponibilità, offre le seguenti competenze: a) norme relative alla sicurezza funzionale dei sistemi elettronici. T&T Systems ha maturato esperienze specifiche relative alla norme internazionali di tipo generale: IEC 61508 e UL 1998, e alle norme internazionali di settore, come ad esempio: IEC 61511 (industria di processo); IEC 50126, 50128, 50129 (applicazioni ferroviarie); IEC 60601 (apparati elettromedicali) b) conoscenze ingegneristiche necessarie alla progettazione di sistemi safety critical e/o ad alta disponibilità; ad esempio: l’hazard analisys, la determinazione del SIL (Safety Integrity Level), la determinazione dell’albero dei guasti, il calcolo della probabilità di guasto, la stesura del Reability blockdiagram ed altro c) tutte le conoscenze ed esperienze attinenti la sicurezza funzionale del software consistenti in metodologie e tecniche di analisi, di design e di validazione così come previste dalle norme sulla sicurezza, quali, ad esempio:UL 1998, IEC 61508-3, IEC 50508, IEC 606011-4 ed altre ancora. Capacità di applicare tali tecniche e metodologie a progetti software industriali complessi L'offerta della T&T Systems in tale ambito copre una vasta gamma di settori: dal nucleare all’oil & gas, dal medicale ai trasporti pubblici, dalle utility ai servizi primari, e comprende sia sistemi di automazione complessi che singoli apparati. Per capire cosa sia la sicurezza funzionale, innanzitutto bisogna definire cosa si intende per “sicurezza”. In questo caso per “sicurezza” si intende l’assenza di inaccettabili rischi di ferite o danni alla salute delle persone, sia come esito diretto, sia come esito indiretto di danneggiamenti provocati ai beni o all’ambiente. Nei sistemi tecnici ci possono essere molti tipi diversi di rischi: rischi meccanici, elettrici, rischi chimici, i rischi di esplosione, eccetera. Quando si dice che un sistema, un apparato, o una macchina sono sicuri, si intende dire che i rischi presentati da essi sono sufficientemente bassi per poter essere accettati. La sicurezza funzionale, pertanto, è la parte della sicurezza globale che dipende dal corretto funzionamento di un sistema o di un apparato in risposta a i propri input; in altre parole la sicurezza funzionale consiste nell’individuare le condizioni potenzialmente pericolose che comportano l’attivazione di dispositivi protettivi o correttivi, per prevenire l’insorgenza di eventi pericolosi, oppure per mitigarne le conseguenze dannose. Dalla definizione data, si può indurre che la sicurezza funzionale è basata su sistemi attivi; ad esempio: l’attivazione di un pressostato quando la pressione all’interno di un serbatoio raggiunge un livello potenzialmente pericoloso, e la conseguente apertura di una valvola di scarico per diminuire la pressione ed evitarne il possibile scoppio 38 l'individuazione di fumo da parte di sensori intelligenti e, conseguentemente, l'attivazione del relativo sistema antincendio pertanto, i sistemi di sicurezza passivi, quali le porte tagliafuoco, non possono esssere considerati come correlati con la sicurezza funzionale in quanto non corrispondono ai criteri sopra riportati. La sicurezza funzionale è un concetto applicabile a tutti i settori industriali, ed è fondamentale per consentire l’utilizzo di tecnologie complesse nei sistemi critici per la sicurezza umana, quali l’avionica, i sistemi di automazione dell’industria di processo, i sistemi automatici di segnalamento ferroviario, eccetera. Infatti la sicurezza funzionale serve ad assicurare che i sistemi di sicurezza forniscano la desiderata riduzione del rischio necessaria per garantire la sicurezza di un impianto o di un sistema. La sicurezza funzionale riguarda pertanto l'uso di sistemi di sicurezza automatizzati per proteggere da danni le persone e/o l'ambiente. E' possibile dare evidenza del raggiungimento della sicurezza funzionale documentando che la funzionalità di detti sistemi è sufficientemente affidabile per il livello di rischio che essi devono controllare. La sicurezza funzionale è una questione che concerne i proprietari e gli operatori degli impianti e dei macchinari, così come le imprese che progettano e forniscono sistemi di sicurezza ed i componenti che ne fanno parte. I sistemi di sicurezza possono fallire per diversi motivi, da grossolani errori umani e di specificazione, a minuscoli "bachi" nel software. Questi modi di guasto possono essere inavvertitamente "incorporati" nel sistema e rimanere latenti in attesa di "colpire"..., oppure possono essere di natura più casuale perché qualsiasi hardware ha una certa probabilità di guastarsi prima o poi. Indipendentemente dalle cause di guasto, i sistemi di sicurezza sono considerati come l'ultima difesa prima del danno, pertanto la loro sicurezza funzionale deve essere "progettata" in modo integrato sin dal concepimento del sistema o dell'impianto, e deve essere mantenuta integra per tutto il suo ciclo di vita. Com'è intuibile il campo d'azione riguardante la sicurezza funzionale è molto ampio e molto profondo, e coinvolge tutte le imprese e le organizzazioni implicate nella catena di fornitura e di utilizzo, sia che esse siano responsabili della proprietà dell'intero impianto, dell'ingegneria del sistema nel suo complesso, oppure dello sviluppo del software a bordo di in un minuscolo sensore integrato nell'elettronica. 39 Il Software a bordo degli elaboratori elettronici può essere usato per pilotare diversi tipi di sistemi, tra cui, ad esempio: il controllo del traffico aereo, le applicazioni ferroviarie, gli impianti nucleari. Come si può intuire, i guasti a questo tipo di impianti possono avere conseguenze molto diverse, ognuna delle quali può avere un certo livello di gravità o di criticità. La conseguenza peggiore è la perdita di vite umane, e generalmente a questa conseguenza viene assegnato il livello di criticità maggiore; per il software di questi sistemi di solito viene richiesto l’utilizzo delle norme e delle procedure più rigorose. Gli altri livelli di criticità, invece, considerano la gravità del guasto in base al compito di cui il sistema è responsabile ed in base all’entità del danno provocato ai beni materiali, alle eventuali lesioni/ferite provocate, o ad altri tipi di perdite. Il software ad alta integrità, quindi, è un tipo di software che deve essere in grado di operare in modo affidabile nelle funzionalità critiche per la sicurezza, e il cui insuccesso può produrre conseguenze catastrofiche come ad esempio ferite gravi, perdita di vite umane, danni ai beni materiali, danni economici, oppure falle nella sicurezza. Esempi di ciò, come già accennato, possono essere il software dei sistemi di sicurezza delle centrali nucleari, dei dispositivi medicali, delle applicazioni bancarie elettroniche, dei sistemi di controllo del traffico aereo, dei processi di produzione automatizzati, dei sistemi militari, eccetera. In altre parole il software ad alta integrità è un software la cui robustezza ed affidabilità è tale da ridurre la probabilità di malfunzionamenti ad un livello compatibile con quello richiesto per le applicazione critiche per la sicurezza. A questo punto la domanda da porsi è come sia possibile implementare un software ad alta integrità, ovvero come sia possibile ottenere un software che abbia le caratteristiche sopra descritte. La prima considerazione da tenere a mente è che il software, a differenza dall’hardware, non è affetto dagli errori aleatori, ma solo da errori sistematici, cioè da malfunzionamenti che dipendono da errori commessi durante la sua progettazione e/o realizzazione; tali errori possono essere, a seconda dei casi, errori di specificazione oppure di implementazione/ realizzazione. Per questo motivo l’approccio attuale è quello di cercare di minimizzare la probabilità che tali errori vengano inglobati nel software, adottando un processo realizzativo il più rigoroso possibile. Le attuali norme relative alla sicurezza funzionale prescrivono l’adozione di un particolare ciclo di vita del software, denominato ciclo di vita di sicurezza. I requisiti di tale ciclo coprono tutti gli aspetti implicati nella gestione di un prodotto software, dai processi di “Quality Assurance”, alle procedure di modifica e manutenzione; dalle metodologie di analisi, alle tecniche di testing. Per quanto concerne lo sviluppo del software, le norme relative alla sicurezza di ultima generazione suggeriscono quasi sempre di adottare il così detto modello a "V". 40 41 Business Intelligence e Data Warehouse 42 43 Il supporto adeguato in ogni fase della progettazione La Business Intelligence si pone l’obbiettivo di supportare analisti e manager aziendali fornendo loro le informazioni necessarie ai processi decisionali quotidiani. A tal fine è necessario recuperare i dati aziendali, uniformarli e organizzarli in strutture dati che siano funzionali ad una loro analisi, ossia costruire il Data Warehouse aziendale. In tutte le fasi di questo processo, che trasforma i dati in informazioni, METER ( consociata T&T Systems ) propone le proprie competenze sulla base della esperienza maturata e dell’uso di tecnologie e metodologie innovative. Estrazione e Trasformazione dei Dati Preparazione e Archiviazione dei Dati Interpretazione e Analisi dei Dati Presentazione dei Dati Sistema Transazionale OLTP Sistemi Legacy Sistemi EBusiness 44 Banche Dati Esterne Estrazione e Trasformazione dei Dati E’ la fase di acquisizione e validazione dei dati. Il patrimonio dei dati in azienda è spesso disomogeneo e frammentato a seconda dei diversi domini del Sistema Transazionale (Produzione, Acquisti, Magazzino, Ricerca e sviluppo, Marketing e Vendite, Contabilità e Finanza). Esso deve essere integrato con altre fonti di dati come i Sistemi Legacy, i Sistemi di E-Business e le Banche dati Esterne. Per raggiungere l’obiettivo di una struttura organizzata e condivisa di informazioni e conoscenze è necessario: Individuare i sistemi alimentanti i dati di interesse, Definire i processi e le regole di estrazione dalle fonti alimentanti e di caricamento nella base dati, Definire i processi e le regole di trasformazione (pulire, uniformare, completare,…) per l’integrazione (dati mancanti o errati, codifiche o denominazioni differenti, unità di misura o formati inconsistenti). Tecnologie utilizzate: Oracle Warehouse Builder, DB2 Warehouse Manager, SAS Warehouse Administrator, SQL Server DTS,… e/o sviluppo custom. Preparazione e Archiviazione dei Dati E’ la fase di distribuzione dei dati agli utenti e alle applicazioni. Si pone l’obiettivo di realizzare una base dati di massimo dettaglio disponibile per: la creazione di dati di sintesi (data mart tematici o aggregazioni), l’esecuzione di analisi di tipo statistico che devono essere effettuate sul massimo dettaglio. Essa è disegnata tipicamente secondo un modello “a stella”, è denormalizzata, storicizzata e ridondante per facilitare la consultazione e le performance. Tecnologie utilizzate: Tipicamente è realizzata su piattaforme relazionali (Oracle, DB2, SQL Server, …) 45 Star-Schema A partire da un classico Physical Data Model di tipo relazionale e normalizzato è possibile realizzare un semplice Star-schema come in figura. Nello Star-schema la tabella centrale è detta Tabella dei Fatti, da cui si diramano tutta una serie di tabelle di look-up dette Dimensioni, contenenti le descrizioni dettagliate dei dati corrispondenti agli ID Le Gerarchie descrivono la struttura organizzativa e la relazione logica “a livelli” o “padre-figlio” di una dimensione di analisi. Se ad esempio la dimensione è il Tempo, una sua possibile gerarchia può essere la seguente (a partire dal figlio verso il padre): settimana->mese->quarto di anno->anno Interpretazione e Analisi dei Dati E’ la fase di trasformazione dei dati in informazioni per gli utenti del sistema. Predispone e prepara i dati per l’utente finale attraverso: aggregazioni tematiche (vendite, magazzino,…) o per tipo di utente (commerciale, contabile,…), valorizzazione di indici e/o variabili, applicazione di modelli statistici che hanno l’obiettivo di individuare legami e somiglianze non esplicitamente osservabili. Tecnologie: Si utilizzano generalmente strutture dati diverse: RDB, Relational Data Base (Oracle, SQL Server, DB2, Oracle,…) HDB, Hybrid Data Base (Holos, Essbase, SQL Server OLAP Services, …) MDB, Multidimensional Data Base (Holos, Essbase, SLQ Server OLAP Services, SAS MDDB, …) 46 L’On-Line Analytical Processing (OLAP) Metadata Model si basa sulla definizione di tabelle multidimensionali, dette cubi. Ciascun lato di un cubo risulta una Dimensione, o un suo sottoinsieme, di uno Starschema. In figura viene visualizzato un esempio di un cubo a tre dimensioni relativo allo Star-schema della sezione precedente e le possibili “viste” bidimensionali costituite dalle sue sezioni OLAP Metadata Model 47 Sistemi a supporto in tempo reale delle decisioni 48 49 Sistemi a supporto in tempo reale delle decisioni Le organizzazioni innovative di successo stanno comprendendo che l’analisi retrospettiva dei dati business critical, supportati dagli strumenti tradizionali di Business Intelligence, non è più sufficiente per soddisfare la richiesta di operare in unmercato altamente competitivo, dove le decisioni devono essere prese alla “velocità di Internet”. Maggior velocità vuol dire essere maggiormente in grado di “vedere” e “reagire” ai cambi del proprio ambiente di business e, di conseguenza, guadagnare vantaggio competitivo nei confronti dei concorrenti che usano unicamente la visione retrospettiva dei dati storici. Inoltre, si è registrato che i processi di business sono sempre più digitalizzati. A questo si aggiunge la grande disponibilità di “sensori“ elettronici che hanno aumentato significativamente il volume di “eventi” disponibili come input digitali. Sebbene i vantaggi potenziali di un approccio real time all’informazione siano comprovabili, l’applicazione pratica di tale modelli risulta ancora limitata a causa dalla complessità nell’allestimento di un’infrastruttura event-driven e dalla scarsa disponibilità sul mercato di competenze specifiche. Questo tipo di approccio diventa però sempre più strategico in varie aree di business ed in questa ottica T&T Systems offre il proprio supporto e consulenza, mediante l'utilizzo della piattaforma ICEBERG. Complex Event Processing (CEP), letteralmente "elaborazione degli eventi complessi", è una teoria nuova ma in costante evoluzione, originariamente concepita da David Luckham, Stanford University nel 1990. Consiste nell'uso della tecnologia per individuare in anticipo eventi di alto livello risultanti da specifici fattori di basso livello identificando e analizzando relazioni di tipo causa-effetto su eventi in real time, e consentendo così azioni di risposta immediate e proattive a specifici scenari. L’innovazione tecnologica evidenzia tre tendenze: Crescita del volume di eventi rappresentati da input digitali Crescita del numero e del tipo di eventi richiesti per prendere una decisione business; questi eventi possono essere sia interni all’organizzazione sia esterni Velocità di degrado del valore dell’informazione business, che ne richiede l’impiego nelle appropriate finestre temporali 50 L’elaborazione dei processi in tempo reale sta crescendo di rilevanza nella grandi organizzazioni che devono soddisfare le seguenti richieste business: Prendere più velocemente decisioni conseguenze di eventi maturati in processi business critici Rispondere più velocemente e con maggiore accuratezza alle opportunità di business e alle “sollecitazioni” specie se provenienti dall’ambiente esterno (integrazione di dati esterni, gestione di input dal “campo”, conformità verso nuove normative, dati ambientali, ecc.) Migliorare i livelli di servizio o le funzionalità di processo per offrire al cliente vantaggi competitivi In questo ambito, T&T Systems offre la propria esperienza per rispondere alla crescente richiesta, da parte delle aziende Manifatturiere e di Servizi, di soluzioni CEP oriented, perché molto sensibili all’importanza di reagire prontamente ad eventi esterni favorevoli o critici. T&T Systems vuole dare un supporto decisivo alle Piccole e Medie imprese che dimostrano una propensione molto positiva agli investimenti in “innovazione”. Infatti la prima vera sfida che la nostra industria deve vincere è quella della crescita, puntando soprattutto sulla produzione ad alto valore aggiunto per sottrarsi alla concorrenza di prezzo dei paesi emergenti. Partendo da queste considerazioni, T&T Systems intende qualificare la sua offerta in quei segmenti di mercato in cui: I processi decisionali interni risultano migliorabili con l’introduzione della tecnologia CEP nei processi di business critici e sono fortemente influenzati dall’impiego di “data in motion” Il miglioramento dei processi decisionali comporta un vantaggio competitivo nei confronti della concorrenza Il miglioramento dei livelli di servizio offerti aumenta il valore della proposta e la competitività. 51 La metodologia di lavoro 52 53 Il supporto adeguato in ogni fase della progettazione L’Iter di progettazione ha inizio con un’attenta analisi della situazione corrente in collaborazione col cliente. A seguito di essa si passa alla definizione dei requisiti cui l’applicazione deve soddisfare e si procede alla modellizzazione del software, ossia alla sua definizione logica. Segue l’ideazione e la realizzazione dell’applicativo conformemente alle caratteristiche dell’ambiente di sviluppo (piattaforme, protocolli, linguaggi). Si conclude con la validazione dell’applicazione, la sua installazione e se necessario la sua manutenzione e modernizzazione. In tutte queste fasi forniamo il nostro supporto e la nostra esperienza. 54 Definizione delle funzionalità richieste Definizione dei requisiti della applicazione Il nostro standard aziendale per la specificazion e, l’analisi ed il design è UML Verifica della fattibilità delle funzionalità richieste in relazione alle risorse a disposizione (hardware e software) ed ai tempi/costi Decisione dell’ambiente di sviluppo del software Programmazione della attività di lavoro Il metodo d’analisi usato è ObjectOriented (UML) Progettazio ne di architettur e complesse, distribuite, parallele, sequenziali Utilizzo di strumenti (CASE) per il software engineerin g Utilizzo di un design modulare che permette la riusabilità del software Competen ze ingegneri stiche, fisicomatemati che, informati che Ideazione di procedure di calcolo compless e 55 Installazione, configurazione, utilizzo di sistemi operativi realtime, tools di sviluppo, linguaggi….. Esperienza di sviluppo con più gruppi di lavoro e gestione delle fasi di integrazione e delle release software Utilizzo di prodotti per il pre-debug software, di emulatori, di simulatori di microcontrollo -ri e periferiche Integrazione con la parte hardware, utilizzo di analizzatori di protocollo e analizzatori di performance del software Installazione presso il cliente, redazione della manualistica necessaria Manutenzione e Modernizzazione Verifica e Validazione Implementazione Design del software Analisi Architetturale Studio di Fattibilità Specificazione Comprensione del problema col cliente Definizione delle funzionalità da testare e realizzazione di test-case su tutte le componenti del sistema La manutenzio ne può spaziare dalla semplice risoluzione di un problema funzionale, all’estension ee aggiorname nto del prodotto, fino a giungere al “porting” su altra piattaforma Modernizzazione e ottimizzazio ne del prodotto Specificazione Comprensione delle caratteristiche del prodotto Individuazione delle sue funzionalità Definizione dei requisiti Scrittura della specifica E’ la fase di comprensione delle caratteristiche del prodotto software richiesto in collaborazione col cliente. Vengono quindi individuate le funzionalità a cui deve soddisfare l’applicazione e vengono definiti i suoi requisiti. A conclusione di questa fase normalmente redigiamo la cosiddetta Specifica dei Requisiti o Specifica Funzionale. Come azienda abbiamo maturato una consolidata esperienza in molti settori (cfr. Dettaglio delle Competenze) quali quello elettrico, automazione di macchine, supervisione e controllo di processi, trasmissione ed elaborazione dati. Possiamo quindi offrire le nostre competenze nella comprensione di molte delle problematiche legate a tali ambiti e proporre delle soluzioni informatiche adeguate. In tutte le fasi della progettazione operiamo seguendo una precisa metodologia di lavoro ed utilizzando tecnologie e strumenti all’avanguardia In merito alla metodologia, il nostro standard aziendale per la specificazione, l’analisi ed il design è UML (Unified Modelling Language). “UML è la notazione standard industriale internazionale per l’analisi e il design Object-Oriented. E’ definito dall’Object Management Group (www.omg.org) e sta per essere recepito come standard anche dalla Comunità Europea” 56 Approfondimento… L’utilizzo di UML nella fase di specificazione permette di definire il cosiddetto UseCase Diagram, ossia un diagramma che definisce le funzionalità del sistema, i soggetti coinvolti e le relazioni esistenti tra di essi. Un esempio molto semplice di UseCase Diagram è il seguente. Esso definisce il problema di come prenotare una camera in un Hotel. l soggetti Hotel Reserv ation System Make Reservati on Reception Customer Confirm Reservation Cancel Reservation Manager Check In Guest Check Out Guest Reserve Conference Room coinvolti sono il cliente, la Reception e il Manager dell’Hotel. Le operazioni principali che coinvolgono cliente e Reception sono: Effettuare una prenotazione, Confermare la prenotazione, Cancellare la prenotazione, Fare il check-in del cliente, Fare il check-out del cliente. L’operazione che coinvolge cliente e Manager è invece: Prenotazione della conference-room. Studio di Fattibilità Verifica della fattibilità delle funzioni richieste Verifica della compatibilità delle risorse SW/HW disponibili con i requisiti dell’applicazione Scelta degli strumenti di sviluppo Valutazione dei tempi Valutazione dei costi Scrittura (mediante tools ad hoc) del piano temporale e definizione delle fasi del progetto con le relative milestones Tale studio riguarda la verifica della fattibilità del prodotto software richiesto in base ai vincoli di tempo/costo definiti dal cliente ed in base alle risorse hardware/software messe a disposizione. 57 In tale ambito proponiamo lo studio di fattibilità dell’applicativo sulla base delle seguenti considerazioni preliminari: analisi delle risorse HW/SW disponibili e verifica della loro compatibilità con i requisiti ed i vincoli imposti dal cliente, analisi delle metodologie e delle tecnologie implicate nel progetto, valutazione degli strumenti HW/SW necessari allo sviluppo, valutazione dei tempi e costi necessari per ogni fase dello sviluppo. Questo ci ha portato spesso, dopo una verifica di ciò che il mercato propone, a decidere con quali strumenti software operare, infatti se le scelte rispondono adeguatamente ai requisiti, gli obiettivi verranno raggiunti nei tempi ed entro il budget prestabiliti. Viene quindi stabilita una preliminare pianificazione dell’attività, anche facendo ricorso a tools come Microsoft Project per la definizione delle scadenze, dei costi e delle tempistiche di tutte le fasi del progetto. E’ bene osservare quanto sia importante la corretta valutazione delle risorse HW disponibili e la loro complessità; la progettazione SW è infatti pesantemente influenzata da questi parametri. Abbiamo una vasta conoscenza delle più disparate piattaforme HW e delle loro problematiche e siamo abituati ad interagire con chi realizza o è preposto alla parte hardware. Questo ci permette una corretta individuazione dei “tempi e metodi” necessari allo sviluppo del progetto SW. Ad esempio, una RAM da 1Kb è sicuramente più economica di una da 1Mb, ma comporta un vincolo severo per cui è indispensabile progettare una base dati con peculiarità di cui una RAM da 1Mb non ha bisogno. Anche la scelta degli strumenti software è determinante. Ad esempio, l’RTOS (Real Time Operative System) Open-source Embedded Linux ha caratteristiche, potenzialità e problematiche implementative e d’installazione diverse da un RTOS proprietario come il PSOS 58 Approfondimento… Sistemi DACO o di terze parti 9 8 10 UEC Server Postazioni operative OIS 1 Hardware UEC 2 3 Sistemi DACO o di terze parti ETHERNET 7 9 Tessere Smart devices ACU 3 6 FIELDBUS o MODBUS IRU 5 7 TU Tessere 4 Smart devices 6 Nella scelta di un RTOS è necessario considerare vari aspetti economici quali: il prezzo iniziale d’acquisto, gli investimenti per l’addestramento, il costo di ogni modulo aggiuntivo che è necessario integrare e la scalabilità dell’RTOS. Altri criteri risultano cruciali: L’applicazione richiede un RTOS? Quale tipo di RTOS è adatto all’applicazione? Quali prestazioni ci si aspetta da esso? L’architettura dell’applicazione come è influenzata dall'uso di un RTOS? Meglio un RTOS Open-source od uno proprietario? In quest’ultimo caso la casa fornitrice è appropriata per l’azienda? Come integrate RTOS e ambiente di sviluppo? Quale supporto tecnico è necessario? L’RTOS supporta i microprocessori utilizzati? Ecc…. 59 Analisi Architetturale Metodo di analisi: object-oriented e UML Utilizzo di CASE (Computer Aided Software Engineering) Progettazione di architetture complesse Approfondita conoscenza della programmazione concorrente con risorse condivise Scrittura del documento di analisi architetturale con utilizzo della notazione UML E’ il processo di comprensione del sistema e la sua decomposizione logica in moduli funzionali. Si pone su di un livello d’astrazione tale da risultare indipendente dalle peculiarità fisiche dell’ambiente di sviluppo. T&T Systems ha la capacità di operare l’analisi del software in relazione a tutte le componenti del sistema: base di dati, da progettare nella sua struttura e nella modalità di accesso alle informazioni, package per la comunicazione, con la conoscenza delle caratteristiche e delle potenzialità dei protocolli di comunicazione più usati, sistemi operativi, con la individuazione delle funzionalità messe a disposizione, parte hardware dell’applicazione, parte software preesistente o sviluppata da terzi. Al termine di tale operazione viene redatto un Documento di Analisi del Software rispettando la notazione UML. Abbiamo esperienza di sviluppo di architetture distribuite, client-server, parallele e sequenziali. In particolare conosciamo le problematiche tipiche del software realtime: programmazione concorrente con risorse da condividere, sincronizzazione di operazioni, definizione delle priorità. Il nostro metodo di analisi e di design è Object-Oriented. Esso permette di enucleare le varie parti del sistema e classificarle come entità, dati, relazioni o interfacce. 60 Approfondimento… Nell’ultimo decennio il modello Object-Oriented si è imposto sia nel campo della analisi che nel design del software. I principali vantaggi del modello Object-Oriented sono i seguenti: ereditarietà e polimorfismo rendono i sistemi ObjectOriented molto estensibili, velocemente sviluppabili e in parte riusabili, il design Object-Oriented è adatto ad implementazioni distribuite, parallele o sequenziali, gli “oggetti” rappresentano delle entità concettuali molto aderenti a quelle del mondo reale sia per il designer che per l’utente, le aree di dati condivisi sono incapsulate, riducendo la possibilità di una modifica o di un accesso indesiderato, le eventuali modifiche richieste sono molto localizzate e difficilmente esse interagiscono in modo inaspettato con altri moduli del programma. Nella progettazione della gerarchia delle classi, così come nella realizzazione di tutti i diagrammi previsti dallo standard UML, utilizziamo tools di alto livello (detti CASE –Computer Aided Software Engineering–), come per esempio System Architect della Popkin Software che automatizzano e velocizzano le operazioni di software engineering. 61 Design del software Massima aderenza all’architettura Design modulare per favorire la manutenibilità Identificazione dei metodi e degli attributi degli oggetti (classi) Utilizzo di competenze multidisciplinari Progettazione di procedure di calcolo anche complesso Scrittura del documento di design con utilizzo di notazione UML Il design del software procede dall’analisi architetturale sviluppando in dettaglio tutti i moduli funzionali in relazione alle peculiarità dell’ambiente operativo. In tale fase sono richieste competenze multidisciplinari: competenze ingegneristiche, per comprendere e interagire con la parte hardware e di comunicazione del sistema, competenze fisico-matematiche, per realizzare codici complessi di calcolo o ideare logiche concorrenti di accesso alle risorse, competenze informatiche dettagliate su protocolli, sistemi operativi, linguaggi, e sulle metodologie di analisi degli stati di un sistema, delle tempistiche di un sistema, e delle sue interfacce (cfr. approfondimento finale). Grazie alla eterogeneità dei progetti sviluppati e alla diversa estrazione delle proprie risorse umane, T&T Systems ha accumulato un ampio spettro di abilità e capacità. Offriamo la nostra collaborazione nel design del software in accordo col Documento d’analisi del software (anche nel caso in cui esso sia stato elaborato da terzi) e redigiamo un Documento di Design del software, anch’esso conforme alla notazione UML. Nel caso d’impostazione Object-Oriented, il concetto di “oggetto”, o per meglio dire di classe, definito finora solo come ente logico, viene sviluppato con l’identificazione dei suoi attributi e metodi. Anche in un linguaggio non orientato agli oggetti, come per esempio il C, tentiamo comunque un approccio con un’ organizzazione modulare del codice. Ciò ha il pregio di rendere il codice riusabile e più facilmente mantenibile. 62 Approfondimento… UML offre un’ampia gamma di diagrammi per la realizzazione del design nei suoi molteplici aspetti: diagramma delle classi (per la definizione della gerarchia delle classi), utilizzato in fase di Analisi Architetturale, ma particolarizzato in fase di Design con la definizione di metodi ed attributi diagramma entità-relazioni (per individuare le entità e le relazioni tra gli oggetti del modello) diagrammi di attivazione e tempistica, ossia Sequence e Collaboration Diagrams, (per la sequenza di attivazione dei processi in un intervallo temporale) diagrammi a stati finiti e transizioni (per la dinamica dei processi) diagrammi di flusso (per descrivere la logica di un algoritmo complesso) Tali metodologie forniscono angolazioni differenti e complementari con cui studiare il prodotto software. 63 Implementazione del software Conformità dello sviluppo software con quanto specificato nell’analisi e nel design Implementazione secondo gli standard della programmazione ad oggetti ed il linguaggio in uso Conoscenza dei principali ambienti di sviluppo software e firmware Gestione del progetto software e delle releases mediante tools di configuration management Esecuzione di pre-debug e pre-integrazione mediante utilizzo di tools software e di strumentazione (debugger, emulatori, oscilloscopi, ecc.) E’ la fase di codifica del software con gli strumenti di sviluppo e le piattaforme definiti in precedenza. T&T Systems ha la capacità d’implementare il software in conformità all’analisi ed al design eseguiti personalmente o da terzi. Il software segue una logica modulare e rispetta criteri di qualità: è commentato ed organizzato in file distinti per ciascun modulo funzionale, sfrutta tutte le potenzialità e gli standard della programmazione ad oggetti e del linguaggio in uso. Possediamo le conoscenze tecniche per: installare, configurare, personalizzare, utilizzare tutto l’ambiente di sviluppo (tool software, sistemi operativi, linguaggi,..), gestire la fase di sviluppo in collaborazione con altri gruppi di lavoro, sincronizzare le fasi d’aggiornamento (release software) con l’archiviazione delle versioni software anche mediante tools (es.: Microsft Visual SourceSafe oppure TakeFive Sniff+). Al termine della fase d’implementazione vi è una fase di pre-debug del software sviluppato dal proprio gruppo. In tale ambito proponiamo: ideazione di un micro-ambiente di pre-debug in collaborazione col progettista hardware: simulazione di Input/Output, simulazione di periferiche HW, simulazione di canali di comunicazione, ecc, implementazione di moduli SW atti a simulare parti del sistema non ancora sviluppate (possono essere delle semplici routine, oppure possono essere uno o più processi, o, addirittura, possono essere dei veri e propri applicativi; in quest’ultimo caso si tratta di veri e propri simulatori), 64 implementazione di test per verificare l’HW (spesso, quando lo sviluppo HW giunge alla realizzazione dei primi prototipi, non è ancora possibile utilizzare gli strumenti tipici di testing dell'HW come ad esempio l’incircuit) esecuzione del pre-debug con gli strumenti forniti dal tool di sviluppo, con emulatori HW o con tools SW. 65 Approfondimento… Se il design è ben progettato, l’implementazione richiede un periodo di realizzazione molto limitato. Nel caso di un design modulare molto codice (ad esempio, quello fornito dal venditore dei tool di sviluppo o altro proveniente da terzi) può venire riutilizzato od integrato con grande risparmio di tempo. Ovviamente è la complessità dell’applicazione a determinare le modalità e le problematiche di tale processo. Nei casi più elementari, per lo sviluppo bastano un editor di testo ed un compilatore. In casi più complessi bisogna sviluppare codice su più piattaforme con differenti target. Ad esempio in uno dei progetti sviluppati per la Telegyr (citato nella sezione dedicata ai progetti su commessa) il sistema è stato sviluppato su VAX-VMS in multiutenza mediante l’utilizzo di terminali video ed ha comportato molte fasi di integrazione tra i vari gruppi. Poiché spesso lo sviluppo del software e dell’hardware procedono in parallelo è necessario utilizzare emulatori/simulatori di microcontrollori e di periferiche. Tale fase viene detta di ‘pre-silicon’. Invece, nel caso in cui l’hardware è già a disposizione, si è nella fase di ‘post-silicon’. Approfondimento… Eseguendo il pre-debug è possibile procedere secondo due approcci (cfr. Scheda Tecnica): Multi-debug, ossia un debug per ciascuna componente, Single-debug, ossia un unico debug per tutte le componenti. Il primo approccio è adatto all’analisi dettagliata di ciascun ‘core’ in uso, ma risulta inadeguato in architetture complesse e distribuite dove è necessario verificare le interazioni tra le parti in modo sincronizzato. Il secondo approccio è molto più economico: il tempo per l’apprendimento dello strumento sono ridotti e così pure il tempo di esecuzione della verifica. Inoltre un’unica supervisione dell’intera applicazione è ciò di cui si sente più la necessità. Un prodotto per il single-debug deve permettere di definire un breakpoint complesso in un processo in cui più parti interagiscono (ad esempio più device) mantenendo la sincronizzazione tra le parti. Nello stesso tempo esso deve poter essere adattato ai target coinvolti o ai loro simulatori (se in fase pre-silicon). 66 Validazione e Verifica Esecuzione della fase di integrazione anche di sistemi complessi Esecuzione del testing secondo gli standard di qualità ISO-9001 Utilizzo di tools tra i più sofisticati per l’analisi delle performance e del test coverage Utilizzo di tools per il debug sincronizzato di sistemi eterogenei e architetture distribuite Scrittura della specifica di test e dei test reports Esecuzione dei tests di accettazione secondo la specifica del cliente Terminata l’implementazione del software ed un suo primo debug è necessario integrare e testare tutti i suoi componenti per procedere alla sua validazione ed accettazione da parte del cliente. T&T Systems attua la fase di verifica seguendo gli standard di qualità ISO9001. In particolare vengono redatti i seguenti documenti: specifica di Test, documento di dettaglio di Test. La specifica di Test definisce le funzionalità da testare e l’ambiente in cui il test viene eseguito. Il documento di dettaglio di Test individua per ciascuna funzionalità da testare alcuni test-case in cui vengono definiti i parametri di input, gli output che il programma è chiamato a produrre, e le apparecchiature utilizzate per la verifica. Il personale addetto alla validazione esegue i test-case e riporta il loro esito (test-report). Se tutti i tests hanno esito positivo si procede all’installazione finale del software. Nella fase di verifica tutte le componenti software e hardware vengono integrate. Non è più possibile, come invece nella fase d’implementazione, avvalersi di simulatori SW/HW e tools analoghi. Tutte le componenti del sistema devono essere obbligatoriamente presenti; è consentito al più simulare il campo a cui il sistema verrà connesso. Durante l’esecuzione dei test-case sono necessari molti strumenti e svariati tool: analizzatori di protocollo, per la parte di comunicazione, 67 analizzatori di performance del software (tempi di esecuzione, utilizzo della memoria) e dei tracciati di codice percorsi, tool per il debug sincronizzato di sistemi eterogenei (con DSP e CPU) e di architetture distribuite (andando ad analizzare gli accessi e l’utilizzo di code, mailbox, aree condivise,ecc…), utilizzo di strumentazione di laboratorio ad esempio: oscilloscopi, analizzatori di stati logici, ecc. Approfondimento… Spesso nelle applicazioni hard real time viene considerato mandatorio il rispetto dei vincoli temporali da parte dell’applicazione (tempi di esecuzione di determinate procedure o rapidità di risposta del sistema a determinati input). In questi casi può essere richiesto, come test di accettazione, la registrazione dell’evoluzione temporale di uno o più segnali di output pilotati dall’applicazione. Per poter eseguire questo tipo di test diventa indispensabile l’utilizzo di strumentazione di laboratorio anche sofisticata quali oscilloscopi veloci o analizzatori di stati logici. analizzatore di stati logici oscilloscopio A seconda del tipo e della complessità dell’applicazione è necessario saper scegliere il tipo ed il numero di test da effettuare, la modalità con cui effettuarli e, spesso, è necessario verificare il grado di copertura assicurato dall’insieme dei tests effettuati. T&T Systems ha l’esperienza e le competenze per affrontare questo problema avvalendosi delle più moderne metodologie ed eventualmente anche di tools specializzati. 68 Approfondimento… Il test può risultare molto complesso a causa dei differenti strati software di cui si compone l’applicazione. Si pongo le seguenti domande: Quanti test è necessario eseguire? Quali dati di test bisogna utilizzare? Come produrre test che facciano emergere eventuali errori? Come evitare test ridondanti? Quando è adeguato terminare il test? Nel processo di definizione dei test-case due possibili approcci vengono utilizzati: Black Box Test, ossia un test funzionale basato sulla definizione del problema, senza considerarne l’implementazione e di conseguenza eseguibile da personale esterno, White Box Test, ossia un test funzionale che si basa sull’implementazione software progettato dall’implementatore del software. In quest’ultimo ambito rientra ad esempio il metodo di classificazione ad albero o classification tree method. Esso parte dalla definizione di un problema funzionale (per esempio, verificare il corretto valore della variabile di uscita C, ‘position’, nel range assegnatole sapendo che essa viene prodotta a partire dalle variabili d’ingresso A e B, ‘range_start’ e ‘range_length’, entrambe intere). Per prima cosa si considerano tutti i possibili test-case e li si classifica in classi disgiunte (ad esempio per A e B i possibili valori sono positivo, negativo e zero per C sono semplicemente ‘inside’ e ‘outside’ il range stabilito). Si noti che se ad esempio B definisce una lunghezza, è necessario testare i comportamento del programma anche in presenza di valori negativi, cosa che probabilmente sfuggirebbe in un insieme di test-case selezionati spontaneamente. 69 Poi si procede ad un’analisi più dettagliata di ciascuna classe individuando le sottoclassi che meglio distinguono i valori critici da verificare. Ad esempio, può essere utile analizzare il caso critico in cui un valore intero raggiunge il valore massimo o quello minimo. Inoltre se un valore di C risulta ‘outside’ del range, è utile classificare se esso risulta ‘below’ o ‘above’ del range. Viceversa, se un valore di C risulta ‘inside’ il range, è interessante scoprire a che distanza dai bordi si trova e quindi catalogarlo come ‘middle’, ‘lower border’ o ‘upper border’. La figura seguente presenta il classification tree completo. Una volta definito il classification tree è necessario definire i test-case, ossia dei possibili percorsi in tale albero con valori fissati. Se l’applicazione è molto estesa sarà quasi impossibile verificare tutte le possibili diramazioni. Un criterio per definire un numero di test-case che assicuri la giusta copertura è quello di contare il numero delle foglie dell’albero (nell’esempio, 5+3+7=15). Esistono in commercio tools che, partendo da un classification tree, preparano un insieme di test-case anche se nella definizione dei test-case critici e sensibili all’errore è bene affidarsi all’abilità e all’esperienza umana. 70 Manutenzione e Modernizzazione Copertura di tutto il ciclo di vita del software I prodotti sviluppati sono tutti coperti da garanzia Possibilità di concordare contratti di manutenzione Porting di applicazioni software sia su piattaforme che su ambienti di sviluppo diversi da quelli originali Adeguamento delle applicazioni software all’evoluzione dell’hardware La manutenzione viene garantita su tutti i prodotti software sviluppati dalla T&T Systems. Essa può prevede sia la risoluzione di problemi funzionali che l’aggiornamento del software. Nel caso di modifica della piattaforma viene fornito un’attività di ‘porting’ ed integrazione. La manutenzione quindi non si riduce alla semplice soluzione di un malfunzionamento. La modernizzazione e l’ottimizzazione sono altri due aspetti che tutto il software moderno richiede con continuità. L’introduzione di nuovi standard di qualità portano alla necessità di un aggiornamento del software anche in seguito alla modifica dei componenti hardware, che spesso diventano obsoleti. Inoltre è sempre più urgente il bisogno di velocizzare il tempo di esecuzione ed ottimizzare l’utilizzo delle risorse. Il tuning di un database rientra come esempio d’intervento di ottimizzazione delle query ad esso inoltrate. L’evoluzione delle piattaforme e le rinnovate potenzialità di componenti che fino a pochi anni fa’ si consideravano unicamente appartenenti alla sfera hardware, come i microprocessori, impongono un ripensamento delle vecchie applicazioni ancora funzionanti. 71 Approfondimento… Molte case fornitrici di semiconduttori, come la ST Microelectronics, la Motorola, Arm, ecc…, stanno trasferendo nei loro chip sistemi completi che ai tempi erano presenti solo a livello di board. Questa migrazione è molto appetibile dal punto di vista del costo del prodotto finito, infatti permette una drastica diminuzione dei componenti HW, con conseguente semplificazione degli stampati, riduzione degli ingombri, aumento dell’affidabilità, ecc. La conseguenza è che per seguire questa evoluzione dell’HW spesso si deve reimplementare la parte hardware-depending degli applicativi. A volte questa riscrittura comporta il cambiamento dell’ambiente di sviluppo (linguaggio, compilatore, librerie, ecc….) e non di rado costringe a sostituire interi strati SW come ad esempio l’RTOS. E’ chiaro che in questi ultimi casi, l’ammodernamento del prodotto richiede uno sforzo ben maggiore rispetto alla semplice riscrittura di qualche driver software. 72 73 Alcuni progetti a titolo di esempio 74 75 1° Esempio: Sistema di supervisione per centrali termoelettriche Acquisizione ed elaborazione di grandezze analogiche e digitali Trattamento delle misure Raccolta e trasmissione dei dati verso gli apparati centrali Elaborazione, archiviazione e visualizzazione dei dati su Human Machine Interface A titolo d’esempio viene descritto un progetto cui la T&T Systems ha partecipato per conto della Telegyr Systems (gruppo Siemens). Si tratta di un sistema di supervisione per centrali termoelettriche che attualmente è installato in molti impianti Enel (Tavazzano, Montalto di Castro, Pisa, ecc). Il sistema è organizzato in modo gerarchico ed è costituito dai nodi acquisitori delle grandezze di campo, dai nodi concentratori di dati e dagli elaboratori installati in sala manovre: SCADA, posto operatore, registratore d’eventi, ecc… Le principali operazioni svolte dal sistema sono le seguenti: Acquisizione da campo. Essa è realizzata dai nodi acquisitori che compiono le seguenti funzioni: 1. Acquisizione misure analogiche 2. Acquisizione segnali digitali lenti 3. Acquisizione segnali digitali veloci 4. Acquisizione contatori 5. Ora datura degli eventi 6. Sincronizzazione dell’orologio di sistema con segnale orario RAI Raccolta e trasmissione dati. È realizzata dai nodi concentratori. 1. Interrogazione ciclica dei nodi acquisitori e ritrasmissione verso il centro dei dati 2. Configurazione dei nodi acquisitori 3. Ridondanza delle funzioni di comunicazione Human Machine Interface. È costituita dall’insieme degli apparati presenti in sala manovre che costituiscono il cosiddetto centro: 1. Stazione operatore 2. SCADA 3. Registratore d’eventi In figura è schematizzato il sistema. 76 Scada Misure Comunicazione dati Gestione della ridondanza sui bus dati Acquisizione da campo Segnali digitali lenti Acquisizione Ingressi analogici Concentratore dati A Stazione operatore <<include>> Acquisizione Ingressi digitali lenti Gestione dell'interrogazione sui bus di campo Impulsi Concentratore dati B Acquisizione Contatori Registratore cronolgico ev enti Gestione della trasmissione dati al centro Ev enti/Segnali digitali v eloci Acquisizione Ingressi digitali v eloci <<include>> <<include>> Libro giornale Gestione della conf igurazione dei nodi acquisitori Oro-datatura Orologio Master Segnale orario RAI Il sistema presenta un’architettura complessa in cui i segnali da campo vengono raccolti dai nodi acquisitori ed inviati tramite protocollo Bitbus ai concentratori di dati, i quali li ritrasmettono alla sala operativa con protocollo DecNet. Il sistema è riconfigurabile da Stazione Operatore in molte delle sue componenti, come la disposizione degli Input sul campo ed un gran numero di paramtri come ad esempio i tipi di trasduttori per le misure analogiche, le soglie, ecc…. 77 2° Esempio: Macchina automatica per il caffè M3 Café-Club Macchina completamente automatica e configurabile Produzione di caffè e cappuccino Gestione della contabilità locale e remota Acquisizione da remoto delle diagnostiche e delle statistiche memorizzate sulla macchina Acquisizione da remoto, in tempo reale, dei principali parametri di funzionamento della macchina Un secondo esempio significativo è il progetto della macchina M3 “Café Club” della Cimbali. Si tratta di un progetto che la T&T Systems ha sviluppato a partire dalla fase di specificazione ideando uno strumento di analisi modulare del software. L’architettura del software è apparentemente meno complessa del progetto precedente perché tutte le funzionalità vengono implementate all’interno della macchina utilizzando un unico protocollo proprietario di comunicazione. In realtà il progetto M3 è un esempio ben riuscito di automazione industriale di macchine. La struttura interna della macchina presenta un’architettura modulare. Ad ogni macro-funzione è associata una scheda elettronica: Display e tastiera scheda display Movimentazioni meccaniche scheda ciclo-caffè Servizi ausiliari (acqua calda, vapore, latte) scheda servizi Telecontrollo scheda modem. Essa può prevedere uno (come in figura) o più gruppi erogatori. Le schede comunicano tra loro con un bus seriale. La macchina prevede alcune funzionalità aggiuntive quali ad esempio il telecontrollo (possibilità di acquisire da una postazione remota i dati statistici/diagnostici memorizzati dalla macchina, oppure di acquisire in tempo reale, durante i cicli produttivi, i principali parametri di funzionamento della macchina), la gestione della contabilità locale (abilitazione all’erogazione mediante riconoscimento dell’utente per mezzo di “smart-card” e relativo contabilizzazione della bevanda erogata), la gestione della contabilità remota (abilitazione di erogazione di bevande in base al credito restante controllato da una cassa centralizzata o da una gettoniera). 78 La macchina è concepita con un’architettura gerarchica: la schedadisplay è il master del sistema e tutte le altre schede gli sono asservite. La scheda-display è quindi il cervello della macchina; coordina tutti i cicli produttivi, specie quelli che richiedono la cooperazione sincronizzata di più schede (ad esempio la produzione di cappuccino richiede la sincronizzazione delle azioni svolte dalla scheda-caffè con quelle svolte della scheda-servizi, infatti è necessario sincronizzare le fasi del ciclo caffè con quelle del ciclo latte); la scheda-display ha inoltre il compito di gestire i cicli di lavaggio del circuito caffè e latte che vengono attivati automaticamente ad orari programmabili. La scheda-caffè è preposta al controllo di tutti gli organi meccanici attivati durante i cicli produttivi o di lavaggio; è altresì preposta alla raccolta dei dati relativi agli stessi cicli da utilizzarsi per la funzione di telecontrollo. La scheda-servizi ha il compito di controllare i boiler e la caldaia vapore, l’erogazione dosata di acqua, ed il ciclo latte (erogazione e montatura); anche questa scheda ha il compito di fornire i dati di sua competenza (temperature) alla funzione di telecontrollo. Il software della macchina è suddiviso in quattro applicativi, uno per ogni tipologia di scheda; ogni applicativo è composto da un insieme di processi che operano solo se attivati (processi di foreground) e da un insieme di processi sempre attivi (processi di background). La politica con cui vengono schedulati i processi è quella classica della programmazione concorrente basata sulla priorità dei processi. Ogni processo è estremamente specializzato e gestisce una sola funzione elementare del sistema. I processi sono progettati in modo da costituire delle black-box di cui si conoscono solo funzione, input, output e, nel caso dei processi di foreground, una serie di condizioni (equazione logica) che ne determina l’attivazione. Esistono due processi privilegiati: l’ordinatore che ciclicamente attiva i processi di foreground per cui sono verificate le condizioni logiche di attivazione, ed il coordinatore che svolge le funzioni di coordinamento tra i diversi applicativi presenti sulla macchina. Lo scheduling, il passaggio di dati, la gestione delle risorse condivise, la sincronizzazione dei processi di un singolo applicativo sono svolti da un RTOS d’acquisto, mentre tutto ciò che concerne la sincronizzazione ed il passaggio di dati tra applicativi (schede) diversi è affidato al protocollo di comunicazione. 79 3° Esempio: DS6100-ACU-MODBUS, un sistema integrato di automazione per impianti industriali v erso Ethernet v erso Ethernet FRONTE A B Alimentatori ACU A ACU B WD Sistema di automazione con architettura distribuita Struttura del sistema di tipo gerarchico Distribuzione delle funzioni di automazione su più unità elaborative Completa ridondanza del sistema mediante backup caldo delle unità elaborative Completa configurabilità del sistema Logiche di automazione telecaricabili dall’unità centrale sulle unità periferiche Possibilità di aggiornare le logiche di automazione e la configurazione delle unità elaborative senza metterle fuori linea RETRO ACU B ACU A B A Alimentatori Dimensioni larghezza: 482 mm altezza: 265 mm profondità: 180 mm +12 / -12 / +5 Vcc 220 Vca Come terzo esempio si riporta il sistema DS6100 della Telegyr Systems, progetto a cui la T&T Systems ha partecipato contribuendo a sviluppare l’Area Control Unit (ACU), componente architetturale che svolge sia le funzioni di automazione di area che quelle di gateway tra il bus di sistema Ethernet e il bus di campo, e l’Intelligent Remote Unit (IRU), componente architetturale che svolge, tramite i suoi componenti MERU (Modulo di Elaborazione Remota) e TU (Schede di I/O), funzioni sia di automazione locale che di interfaccia con gli organi di impianto. Il sistemaDS6100-ACU-MODBUS, è un sistema integrato di automazione per impianti industriali che realizza con un'architettura distribuita su più livelli le funzioni di: automazione, controllo e regolazione, protezione, registrazione cronologica di eventi, supervisione, archiviazione, configurazione, diagnostica, comunicazione con altri sistemi. Nell'ambito delle applicazioni nell'automazione delle centrali elettriche dell'ENEL, il sistema in oggetto integra gran parte delle funzionalità tipiche dei vari sistemi attualmente presenti in centrale, in particolare: i sistemi di comando centralizzato; i sistemi di allarme; i sistemi di supervisione; i sistemi di regolazione. 80 I principali settori di applicazione del sistema sono: produzione di energia elettrica, impianti ausiliari legati alla produzione di energia elettrica, trattamento acqua, industria siderurgica, industria vetraria, industria alimentare, industria farmaceutica, industria petrolchimica, impianti ausiliari di stabilimento, settore navale. I fattori qualificanti del progetto sono: Struttura del sistema di tipo gerarchico, per meglio rispondere all'organizzazione interdipendente dei possibili processi industriali controllati Distribuzione delle funzioni su più unità elaborative dislocabili in punti diversi dell'impianto (ad es. acquisizione e restituzione verso il campo, automazione locale), per consentire la riduzione dei cablaggi di impianto e delle superfici dei locali necessari per l'installazione delle apparecchiature del sistema in prossimità della sala manovre (retroquadro). Utilizzo di canali di comunicazione basati su bus standard, in particolare: FIELDBUS e MODBUS per i bus di campo, sia per facilitare l'interfaccia con apparati di acquisizione e restituzione di altri costruttori che per favorire l'integrazione tra sistemi diversi; ETHERNET per il bus di sistema, per favorire l'integrazione tra sistemi di centrale diversi. La comunicazione con altri sistemi di centrale è ottenibile anche mediante interfacce seriali dedicate con opportuni protocolli standardizzati di scambio dati. Sistemi DACO o di terze parti 9 8 10 UEC Server Postazioni operative OIS 1 Hardware UEC 2 3 Agevole ingegnerizzazione informatizzata del sistema, per consentire: Sistemi DACO o di terze parti ETHERNET 7 9 Tessere Smart devices ACU al costruttore, l'utilizzo di equipaggiamenti di moduli hardware standard con personalizzazioni software, piuttosto che cablaggi fissi, diminuendo così i tempi di consegna e semplificando le fasi di collaudo; al cliente, la personalizzazione del sistema in tutti i casi in cui ritenga opportuno farlo autonomamente. 3 6 FIELDBUS o MODBUS IRU 5 7 TU Tessere 4 Smart devices 6 81 Ciò è ottenuto tramite: la realizzazione dei disegni degli schemi di automazione, con produzione automatica dei programmi e della documentazione unifilare corrispondente; la generazione automatica degli identificativi dei segnali di ingresso/uscita durante la fase di configurazione delle utenze sui circuiti di acquisizione/restituzione specializzati, con conseguente riduzione dei tempi di configurazione e limitazione delle possibilità di errore; la configurazione dei dati (data-base, pagine, logiche di automazione, ecc.) da un'unica postazione operativa centrale (es. quella del sistemista); la telecaricabiltà automatica dei dati configurati, in linea e tramite i bus del sistema, sugli apparati di automazione; ciò consente, tra l'altro, di installare gli apparati di automazione in ambienti ostili; il recupero di configurazioni di dati già disponibili, in particolare sia quelle realizzate per impianti similari (ad es. per le centrali con più coppie di gruppi generatori) che quelle già informatizzate dal cliente; la realizzazione di un'interfaccia di esercizio coerente con le esigenze ergonomiche del cliente, in alternativa a quella di base prodotta Elevata modularità e scalabilità architetturale, a livello di: sistema globale, grazie all'utilizzo di un unico set di componenti che consente di ottenere costi/prezzi proporzionati alle singole taglie, dall'automazione integrata del macchinario delle APr ai piccoli/medi sistemi degli IAu; apparati di automazione locale, grazie alla libertà di raggruppare le utenze per singola unità di elaborazione, anche per la caduta del vincolo di separazione e indipendenza dei circuiti per singola; apparati di acquisizione e restituzione, grazie alla configurabilità software e hardware dei circuiti di ingresso/uscita. 82 Possibilità di gestire dati provenienti da dispositivi esterni intelligenti (cioè dotati di propria capacità elaborativa, ad es. smart devices, apparati di protezione) predisposti per lo standard elettrico RS-485, per consentire maggiore flessibilità di interfacciamento con i processi controllati Possibilità di gestire eventi ad elevata risoluzione (minimo 2 ms) con sincronizzazione dell'orologio mediante segnale radio, per consentire funzioni di: RCE; sequenze eventi post mortem. Struttura del software aperta in quanto ottenuta: integrando prodotti di mercato (FACTORY LINK per le funzioni SCADA, LOGICAD per la configurazione delle logiche di automazione, sistemi operativi Unix SCO ODT per le unità di elaborazione centrali e Psos+ per gli apparati di automazione locali, data-base relazionale INGRES); utilizzando standard internazionali (OSF/Motif per le interfacce grafiche, POSIX per l'interfaccia tra applicazioni e sistema operativo, protocollo di rete TCP/IP su ETHERNET, linguaggio di programmazione ANSI C, NFS/FTP per la gestione dei file su rete, RPC per l'attivazione di applicazioni in rete, linguaggio SQL di accesso al data-base relazionale, FIELDBUS e MODBUS come bus di campo). La seguente figura illustra sinteticamente l’architettura del sistema 83 OIS/SCADA OIS h/c SOR WD b/n Bus di sistema ETHERNET ACU WD A A IB MODBUS IRU MERU Bus A TUBUS TU xxxx xxxx xxxx xxxx TR TR SD SD S S TC TC SOR Scheda orologio radiosincronizzato TR Tessere di regolazione Linea seriale watch dog S Serializzatore IB Interfaccia con bus di campo TC Tessere di comando SD Smart devices WD Attestazione cavi di impianto 84 T&T SYSTEMS srl Sede legale I-20129 Milano, via Plinio 1 Uffici I-20127 Milano, via N. Battaglia 27 Telefono +39 0228970440 Fax Posta elettronica: +39 022871305 Informazioni generali Informazioni commerciali Informazioni tecniche [email protected] [email protected] [email protected] Sito web www.tetsys.it www.ttsystems.it www.hintsw.com Capitale sociale Codice fiscale e Partita IVA 75.000,00 € 12539930151 85