![]() Jahic, Benjamin ![]() ![]() ![]() in Information (2023), 14(4), Neural network (NN) components are being increasingly incorporated into software systems. Neural network properties are determined by their architecture, as well as the training and testing datasets used ... [more ▼] Neural network (NN) components are being increasingly incorporated into software systems. Neural network properties are determined by their architecture, as well as the training and testing datasets used. The engineering of datasets and neural networks is a challenging task that requires methods and tools to satisfy customers’ expectations. The lack of tools that support requirements specification languages makes it difficult for engineers to describe dataset and neural network recognition skill requirements. Existing approaches often rely on traditional ad hoc approaches, without precise requirement specifications for data selection criteria, to build these datasets. Moreover, these approaches do not focus on the requirements of the neural network’s expected recognition skills. We aim to overcome this issue by defining a domain-specific language that precisely specifies dataset requirements and expected recognition skills after training for an NN-based system. In this paper, we present a textual domain-specific language (DSL) called SEMKIS-DSL (Software Engineering Methodology for the Knowledge management of Intelligent Systems) that is designed to support software engineers in specifying the requirements and recognition skills of neural networks. This DSL is proposed in the context of our general SEMKIS development process for neural network engineering. We illustrate the DSL’s concepts using a running example that focuses on the recognition of handwritten digits. We show some requirements and recognition skills specifications and demonstrate how our DSL improves neural network recognition skills. [less ▲] Detailed reference viewed: 27 (2 UL)![]() Sousa, Tiago ![]() ![]() ![]() in de Jesus Sousa, Tiago Alexandre; Ries, Benoit; Guelfi, Nicolas (Eds.) Formal Verification of Ecosystem Restoration Requirements Using UML and Alloy (2023) United Nations have declared the current decade (2021-2030) as the ”UN Decade on Ecosystem Restoration” to join R&D forces to fight against the ongoing environmental crisis. Given the ongoing degradation ... [more ▼] United Nations have declared the current decade (2021-2030) as the ”UN Decade on Ecosystem Restoration” to join R&D forces to fight against the ongoing environmental crisis. Given the ongoing degradation of earth ecosystems and the related crucial services that they offer to the human society, ecosystem restoration has become a major society-critical issue. It is required to develop rigorously software applications managing ecosystem restoration. Reliable models of ecosystems and restoration goals are necessary. This paper proposes a rigorous approach for ecosystem requirements modeling using formal methods from a model-driven software engineering point of view. The authors describe the main concepts at stake with a metamodel in UML and introduce a formalization of this metamodel in Alloy. The formal model is executed with Alloy Analyzer, and safety and liveness properties are checked against it. This approach helps ensuring that ecosystem specifications are reliable and that the specified ecosystem meets the desired restoration goals, seen in our approach as liveness and safety properties. The concepts and activities of the approach are illustrated with CRESTO, a real-world running example of a restored Costa Rican ecosystem. [less ▲] Detailed reference viewed: 85 (27 UL)![]() Sousa, Tiago ![]() ![]() ![]() Report (2023) United Nations have declared the current decade (2021-2030) as the ”UN Decade on Ecosystem Restoration” to join R&D forces to fight against the ongoing environmental crisis. Given the ongoing degradation ... [more ▼] United Nations have declared the current decade (2021-2030) as the ”UN Decade on Ecosystem Restoration” to join R&D forces to fight against the ongoing environmental crisis. Given the ongoing degradation of earth ecosystems and the related crucial services that they offer to the human society, ecosystem restoration has become a major society-critical issue. It is required to develop rigorously software applications managing ecosystem restoration. Reliable models of ecosystems and restoration goals are necessary. This paper proposes a rigorous approach for ecosystem requirements modeling using formal methods from a model-driven software engineering point of view. The authors describe the main concepts at stake with a metamodel in UML and introduce a formalization of this metamodel in Alloy. The formal model is executed with Alloy Analyzer, and safety and liveness properties are checked against it. This approach helps ensuring that ecosystem specifications are reliable and that the specified ecosystem meets the desired restoration goals, seen in our approach as liveness and safety properties. The concepts and activities of the approach are illustrated with CRESTO, a real-world running example of a restored Costa Rican ecosystem. [less ▲] Detailed reference viewed: 80 (29 UL)![]() Guelfi, Nicolas ![]() in Software (2022), 1(1), 80-106 Detailed reference viewed: 58 (6 UL)![]() Jahic, Benjamin ![]() ![]() ![]() Report (2021) Neural networks are becoming increasingly part of today’s software systems. These neural networks are simplified models of the human brain that are mainly capable of learning from large datasets to ... [more ▼] Neural networks are becoming increasingly part of today’s software systems. These neural networks are simplified models of the human brain that are mainly capable of learning from large datasets to compute some function based on recognized data. Engineering these datasets and these neural network-based software systems is a complicated and challenging task. Software engineers require methods and tools to engineer these datasets and neural networks for their customers and to satisfy their requirements. In general, they lack methods and tools to support the engineering of dataset and neural networks that satisfy the customer’s requirements. They follow traditional approaches consisting of time-consuming, imprecise and manual activities. Typically, these approaches are not supported by any tool that precisely analyse and specify the neural network’s recognition skills. In our previous work, we have introduced the notion of key-properties for describing the neural network’s recognition skills. In this paper, we define a domain-specific language to support our SEMKIS software engineering methodology for the dataset augmentation to improve network’s key-properties. We present the SEMKIS-DSL for the specification of the key-properties of a neural network. We illustrate the concepts of our DSL with a running example specifying a neural network for recognizing a digital meter counter state. This running example demonstrates a specification of the neural network’s key-properties using the SEMKIS-DSL and a successful improvement of the neural network’s recognition skills. [less ▲] Detailed reference viewed: 191 (18 UL)![]() Ries, Benoit ![]() ![]() ![]() in Proceedings of the 9th International Conference on Model-Driven Engineering and Software Development (2021, February) Since the emergence of deep learning (DL) a decade ago, only few software engineering development methods have been defined for systems based on this machine learning approach. Moreover, rare are the DL ... [more ▼] Since the emergence of deep learning (DL) a decade ago, only few software engineering development methods have been defined for systems based on this machine learning approach. Moreover, rare are the DL approaches addressing specifically requirements engineering. In this paper, we define a model-driven engineering (MDE) method based on traditional requirements engineering to improve datasets requirements engineering. Our MDE method is composed of a process supported by tools to aid customers and analysts in eliciting, specifying and validating dataset structural requirements for DL-based systems. Our model driven engineering approach uses the UML semi-formal modeling language for the analysis of datasets structural requirements, and the Alloy formal language for the requirements model execution based on our informal translational semantics. The model executions results are then presented to the customer for improving the dataset validation activity. Our approach aims at validating DL-based dataset structural requirements by modeling and instantiating their datatypes. We illustrate our approach with a case study on the requirements engineering of the structure of a dataset for classification of five-segments digits images. [less ▲] Detailed reference viewed: 341 (42 UL)![]() Jahic, Benjamin ![]() ![]() ![]() in Proceedings of the 2020 European Symposium on Software Engineering (2020, November 06) Software engineers are increasingly asked to build datasets for engineering neural network-based software systems. These datasets are used to train neural networks to recognise data. Traditionally, data ... [more ▼] Software engineers are increasingly asked to build datasets for engineering neural network-based software systems. These datasets are used to train neural networks to recognise data. Traditionally, data scientists build datasets consisting of random collected or generated data. Their approaches are often costly, inefficient and time-consuming. Software engineers rely on these traditional approaches that do not support precise data selection criteria based on customer’s requirements. In this paper, we introduce an extended software engineering method for dataset augmentation to improve neural networks by satisfying the customer’s requirements. We introduce the notion of key-properties to describe the neural network’s recognition skills. Key-properties are used all along the engineering process for developing the neural network in cooperation with the customer. We propose a rigorous process for augmenting datasets based on the analysis and specification of the key-properties. We conducted an experimentation on a case study on the recognition of the state of a digital meter counter. We demonstrate an informal specification of the neural network’s key-properties and a successful improvement of a neural network’s recognition of the meter counter state. [less ▲] Detailed reference viewed: 179 (44 UL)![]() Capozucca, Alfredo ![]() ![]() in Frontiers in Software Engineering Education. FISEE 2019. Lecture Notes in Computer Science (2020), 12271 Developing academic education programmes for software engineers is a difficult task mainly due to three main factors: (1) ever-changing information and communication technologies produced by the industry ... [more ▼] Developing academic education programmes for software engineers is a difficult task mainly due to three main factors: (1) ever-changing information and communication technologies produced by the industry and meant for citizens living in digital disruptions age, (2) lack of official or de-facto standards for the software engineering domain, (3) slow pace of the standardisation bodies and of the academia for deploying standard competence frameworks or education programmes. This applies more especially to DevOps which regroups a set of skills being the most demanded today by the job market. This paper is a first attempt to introduce a standard based development process to derive a DevOps education programme for graduate education. It is introduced as a generic process mainly based on the SWECOM standard. This process is applied to generate a proposal for a significant DevOps graduate academic programme definition in a comprehensive and, most importantly, in a skill oriented manner. [less ▲] Detailed reference viewed: 109 (7 UL)![]() ; ; Capozucca, Alfredo ![]() in Bruel, Jean-Michel; Mazzara, Manuel; Meyer, Bertrand (Eds.) Software Engineering Aspects of Continuous Development and New Paradigms of Software Production and Deployment (2020, January 19) The new century brought us a kind of renaissance in software development methods. The advent of the Agile manifesto has led to greater appreciation of methodologies aimed at producing valuable software ... [more ▼] The new century brought us a kind of renaissance in software development methods. The advent of the Agile manifesto has led to greater appreciation of methodologies aimed at producing valuable software through continuous incremental cycles. More recently, a new set of practices enclosed under the term DevOps has appeared to attain manifesto's objectives in more efficient manner. The software development community has already noticed the benefits brought by DevOps. Thus, the necessity of education in the field becomes more and more important, both from the technical and organisational point of view. This paper describes parallel experiences of teaching both undergraduate and graduate students at the university, and junior professional developers in industry, compares the two approaches and sums up the lessons learnt. A vision driven by the DevOps practices aimed at implementing a shift in the Software Engineering Higher Education curricula to takeover its current limitations is also reported at the end of the paper. [less ▲] Detailed reference viewed: 133 (4 UL)![]() ; ; Capozucca, Alfredo ![]() in Mazzara, Manuel; Rivera, Victor; Sadovykh, Andrey (Eds.) et al Microservices: Science and Engineering (2020) DevOps processes comply with principles and offer practices with the main objective of efficiently supporting the evolution of IT systems. To be efficient, a DevOps process relies on a set of integrated ... [more ▼] DevOps processes comply with principles and offer practices with the main objective of efficiently supporting the evolution of IT systems. To be efficient, a DevOps process relies on a set of integrated tools. DevOps is among the first competencies, together with agile method, required by the industry. As a new approach it is necessary to develop and offer to the academy and to the industry training programs to prepare engineers in the best possible way. In this chapter we present the main aspects of the educational effort made in recent years to educate engineers on the concepts and values of the DevOps philosophy. This includes principles, practices, tools, and architectures, primarily the microservices architectural style, which shares many aspects of DevOps approaches, especially modularity and flexibility, which enable continuous change and delivery. Two experiments have been carried out, one at the academic level as a master program course and the other as an industrial training. Based on those two, we provide a comparative analysis and some proposals in order to develop and improve DevOps education for the future. [less ▲] Detailed reference viewed: 153 (3 UL)![]() Capozucca, Alfredo ![]() ![]() Presentation (2019, November) Detailed reference viewed: 73 (1 UL)![]() Jahic, Benjamin ![]() ![]() ![]() in Proceedings of 10th IEEE International Conference on Software Engineering and Service Science (2019, October 19) Software engineers require a large amount of data for building neural network-based software systems. The engineering of these data is often neglected, though, it is a critical and time-consuming activity ... [more ▼] Software engineers require a large amount of data for building neural network-based software systems. The engineering of these data is often neglected, though, it is a critical and time-consuming activity. In this work, we present a novel software engineering approach for dataset augmentation using neural networks. We propose a rigorous process for generating synthetic data to improve the training of neural networks. Also, we demonstrate our approach to successfully improve the recognition of handwritten digits using conditional generative adversarial networks (cGAN). Finally, we shortly discuss selected important issues of our process, presenting related work and proposing some improvements. [less ▲] Detailed reference viewed: 277 (147 UL)![]() ; ; Capozucca, Alfredo ![]() Report (2019) DevOps processes comply with principles and offer practices with main objective to support efficiently the evolution of IT systems. To be efficient a DevOps process relies on a set of integrated tools ... [more ▼] DevOps processes comply with principles and offer practices with main objective to support efficiently the evolution of IT systems. To be efficient a DevOps process relies on a set of integrated tools. DevOps is among the first competencies together with Agile method required by the industry. As a new approach it is necessary to develop and offer to the academy and to the industry training programs to prepare our engineers in the best possible way. In this chapter we present the main aspects of the educational effort made in the recent years to educate to the concepts and values of the DevOps philosophy. This includes principles, practices, tools and architectures, primarily the microservices architectural style, which shares many aspects of DevOps approaches especially the modularity and flexibility which enables continuous change and delivery. Two experiences have been made, one at academic level as a master program course and the other, as an industrial training. Based on those two experiences, we provide a comparative analysis and some proposals in order to develop and improve DevOps education for the future. [less ▲] Detailed reference viewed: 104 (4 UL)![]() ; ; Capozucca, Alfredo ![]() Report (2019) This paper describes our experience of delivery educational programs in academia and in industry on DevOps, compare the two approaches and sum-up the lessons learnt. We also propose a vision to implement ... [more ▼] This paper describes our experience of delivery educational programs in academia and in industry on DevOps, compare the two approaches and sum-up the lessons learnt. We also propose a vision to implement a shift in the Software Engineering Higher Education curricula. [less ▲] Detailed reference viewed: 139 (11 UL)![]() Capozucca, Alfredo ![]() ![]() ![]() in Bruel, Jean-Michel; Mazzara, Manuel; Meyer, Bertrand (Eds.) Software Engineering Aspects of Continuous Development and New Paradigms of Software Production and Deployment (2019, January 19) DevOps have received marginal attention inside the higher education level curricula despite of its boom in the industrial sector. This paper presents the design of an academic master-level course aimed at ... [more ▼] DevOps have received marginal attention inside the higher education level curricula despite of its boom in the industrial sector. This paper presents the design of an academic master-level course aimed at DevOps. The proposed design is based on earlier experiences in teaching DevOps-related topics. The specification of the course design is provided using the SWEBOK Guide and Bloom’s taxonomy to enhance the quality of the course design specification, and ease its assessment once delivered. [less ▲] Detailed reference viewed: 221 (29 UL)![]() Ries, Benoît ![]() ![]() ![]() Software (2018) Detailed reference viewed: 118 (15 UL)![]() Ries, Benoît ![]() ![]() ![]() Poster (2018) ABSTRA Detailed reference viewed: 89 (20 UL)![]() ; ; Guelfi, Nicolas ![]() in ACM Computing Surveys (2018), 51(5), 109 Petri nets slicing is a technique that aims to improve the verification of systems modeled in Petri nets. Petri nets slicing was first developed to facilitate debugging but then used for the alleviation ... [more ▼] Petri nets slicing is a technique that aims to improve the verification of systems modeled in Petri nets. Petri nets slicing was first developed to facilitate debugging but then used for the alleviation of the state space explosion problem for the model checking of Petri nets. In this article, different slicing techniques are studied along with their algorithms introducing: i) a classification of Petri nets slicing algorithms based on their construction methodology and objective (such as improving state space analysis or testing), ii) a qualitative and quantitative discussion and comparison of major differences such as accuracy and efficiency, iii) a syntactic unification of slicing algorithms that improve state space analysis for easy and clear understanding, and iv) applications of slicing for multiple perspectives. Furthermore, some recent improvements to slicing algorithms are presented, which can certainly reduce the slice size even for strongly connected nets. A noteworthy use of this survey is for the selection and improvement of slicing techniques for optimizing the verification of state event models. [less ▲] Detailed reference viewed: 112 (3 UL)![]() Ries, Benoît ![]() ![]() ![]() in Proceedings of the 11th ACM SIGPLAN International Conference on Software Language Engineering SLE'18 (2018) Detailed reference viewed: 164 (17 UL)![]() Guelfi, Nicolas ![]() ![]() ![]() Poster (2017, November 08) Detailed reference viewed: 106 (12 UL) |
||