Riassunto analitico
Abbiamo applicato i principi dell’ingegneria del software orientata agli oggetti in automazione per sviluppare metodi per lo sviluppo di software nell’automazione. I metodi da noi sviluppati ci hanno permesso di: sviluppare software con una logica di controllo indipendente dai dettagli tramite un’architettura di astrazione; modellare comportamenti reattivi nel codice direttamente tramite UML State-Chart; ottenere una buona riusabilità sfruttando le funzionalità dell’object oriented programming; garantire una specifica qualità del software e gestione del lifecycle generando sequenze di test e verifica e validazione dai timing diagram nelle specifiche; verificare e validare le parti del software attraverso Hardware-in-the-Loop modulare; migliorare l’usabilità e gestione del lifcecycle generando la documentazione del software in automatico e direttamente dal codice. Abbiamo pubblicato e presentato i nostri metodi come 5 articoli scientifici in 4 conferenze internazionali duranti il periodo del dottorato. Il costo e la complessità dello sviluppo del software in automazione sta crescendo. Questa crescita rende sempre più critiche le sfide della riusabilità, manutenibilità, usabilità, gestione del ciclo di vita, e flessibilità del software. Per affrontare queste sfide, spesso i software engineer introducono nuovi approcci nello sviluppo del software Tuttavia, spesso questi approcci riescono a risolvere solo parti di queste sfide. Per esempio, un approccio che facilita l’uso e lo sviluppo del software deve considerare anche la gestione della sua documentazione. Infatti, per quanto sia possibile facilitare l’uso e lo sviluppo del software, la sua documentazione sarà sempre richiesta. Abbiamo affiancato 10 sviluppatori PLC per imparare, ed usare i nostri metodi per sviluppare 11 librerie software che comprendono più di 1000 entità (e.g. Function Blocks, Structs, Interfaces, etc.). Queste librerie e le loro entità sono state utilizzate per realizzare software di macchina. Il software sviluppato ha mostrato un grado di riusabilità maggiore al 70% attraverso le funzionalità dell’object orientation, maggiore indipendenza dalla piattaforma hardware utilizzata, una riduzione dei tempi di sviluppo del software, un aumento dell’usabilità e di gestione del ciclo vita del software di automazione. L’insieme di questi metodi ci ha permesso di migliorare più fasi dello sviluppo del software e il rilascio di 6 versioni delle librerie sviluppate con questi metodi. Inoltre, attraverso i feedback degli sviluppatori abbiamo perfezionato i metodi stessi. Crediamo che questi risultati diano una buona indicazione della direzione da intraprendere per affrontare le sfide odierne nello sviluppo del software in automazione. Attraverso questi metodi, i software engineer potranno migliorare l’efficienza dello sviluppo aumentando anche la qualità del software sviluppato.
|
Abstract
We applied principles of object oriented software engineering in automation to develop methods for the development of software in automation. These methods allowed us to achieve the following: to develop PLC software with control logic independent from hardware platform specificity by an abstraction architecture; to increase reusability by object oriented features; to model reactive behaviors by UML State-Charts directly into code; to guarantee software quality and lifecycle management by generating software test sequences for verification and validation from timing diagram specifications; to guarantee certain properties by verifying and validating software through modular Hardware-in-the-Loop; to improve usability and lifecycle management by automatically generating software documentation from source code. We published and presented our methods as 5 papers in 4 international conferences during the PhD period.
The cost and complexity of software development in automation is growing. Such growth makes even more critical software challenges in automation software development. These challenges consist of usability, maintainability, management of lifecycle, and flexibility of software. To meet these challenges, often software engineers introduce new approaches in software development. However, often these approaches met only part of these challenges. For example, an approach that addresses to ease and improve usability of software development has to take into account also the management of documentation. In fact, as far as it is possible to ease software development, its documentation will always be required.
Due to that, we supported 10 PLC developers to learn, and use our methods to develop 11 software libraries which contained more than 1000 entities (e.g. Function Blocks, Structs, Interfaces, etc.). Then, these libraries and their entities were used to realize machine software.
Developed software showed a degree of reusability greater than 70% by object oriented features, a greater independence from its automation hardware platform, an improved usability, and improved lifecycle management. Moreover, the software development showed a reduction in development time.
The set of our methods allowed us to improve different phases of software development and to achieve 6 releases of our libraries. Moreover, developers’ feedback helped us to improve our methods themselves.
We believe that these results give a good indication of the direction to be taken to address today’s challenges in automation software development. Moreover, we believe that though these methods, software engineers will improve development efficiency and increase the quality of developed software.
|