
Sylvain VauttierIMT Mines Alès | EMA · Laboratory of Computer and Production Engineering (LGI2P)
Sylvain Vauttier
Phd, HDR Associate professor
About
90
Publications
13,966
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
614
Citations
Introduction
Software architecture evolution
Context-awareness
Autonomous adaptation
AAL - ELE
Publications
Publications (90)
Pull-based Development (PbD) is widely used in collaborative development to integrate changes into a project codebase. In this model, contributions are notified through Pull Request (PR) submissions. Project administrators are responsible for reviewing and integrating PRs. In the integration process, conflicts occur when PRs are concurrently opened...
Coding practices are increasingly used by software companies. Their use promotes consistency, readability, and maintainability, which contribute to software quality. Coding practices were initially enforced by general-purpose linters, but companies now tend to design and adopt their own company-specific practices. However, these company-specific pr...
Developers are extracted from 17 open-source projects from GitHub. Projects are chosen that use the java programming language, the Spring framework and Maven/Gradle build tools. Along with these developers, 24 software engineering metrics are extracted for each of them. These metrics are either calculated by analyzing the source code or relative to...
Digital twins, along with Internet of Things and Artificial Intelligence, have been identified as one of the key technologies for Industry 4.0. However, the definition of Digital Twin (DT) is still abstract and context-dependent. In this paper, we present a metamodel that supports concrete and operational descriptions of digital twin deployment. Th...
Experienced developers are key for the success of software development projects. In open-source software development, due to openness and distance, one cannot always rely on interpersonal interactions to know who these key people are. Automating the mining of experienced developers is not an easy task either, because of the subjectivity and relativ...
Pull-based Development (PbD) is widely used in software teams to integrate incoming changes into a project codebase. In this model, contributions are advertised through Pull Request (PR) submissions. Project administrators are responsible for reviewing and integrating PRs. Prioritizing PRs is one of the main concerns of project administrators in th...
Nowadays, development teams often rely on tools such as Jira or Bugzilla to manage backlogs of issues to be solved to develop or maintain software. Although they relate to many different concerns (e.g., bug fixing, new feature development, architecture refactoring), few means are proposed to identify and classify these different kinds of issues, ex...
Nowadays, development teams often rely on tools such as Jira or Bugzilla to manage backlogs of issues to be solved to develop or maintain software. Although they relate to many different concerns (e.g., bug fixing, new feature development, architecture refactoring), few means are proposed to identify and classify these different kinds of issues, ex...
Empirical software engineering has leveraged open software repositories to profile and categorize project contributors. The objective of our work is to conduct a similar but original study, focused on architectural contributions, to evaluate the profiles of contributors playing this specific development role and their evolution over time. This pape...
Software architecture modeling plays a key role in software development and, beyond, in software quality. The Spring framework is widely used in industry to deploy software. This paper evaluates whether Spring fosters good practices for architecture definition. It describes the results of an empirical study, based on a corpus of open-source Spring...
Component-based development is the software paradigm focused on building applications using reusable software components. Applications are built by assembling components, where the required interfaces of a component are connected to compatible provided interfaces of other components. In order to have an effective building process, software architec...
Software architectures are subject to several types of change during the software lifecycle (e.g. adding requirements, correcting bugs, enhancing performance). The variety of these changes makes architecture evolution management complex because all architecture descriptions must remain consistent after change. To do so, whatever part of the archite...
Handling evolution in component-based software architectures is a non trivial task. Indeed, a series of changes applied on software may alter its architecture leading to several inconsistencies. In turn, architecture inconsistencies lead to software erosion and shorten its lifetime. To avoid architectural inconsistencies and increase software relia...
System quality is key part of software system in industry. It not only directly affects the customers/users' satisfaction, but also influences the entire lifecycle of system products from requirement to maintenance. Many quality assurance development methodologies and standards are proposed. However, software evolution as an another important part...
Companies often develop a set of software variants that share some features and differ in other ones to meet specific requirements. To exploit the existing software variants as a Software Product Line (SPL), a Feature Model of this SPL must be built as a first step. To do so, it is necessary to define and document the optional and mandatory feature...
Companies often develop in a non-disciplined manner a set of software variants that share some features and differ in others to meet variant-specific requirements. To exploit existing software variants and manage them coherently as a software product line, a feature model must be built as a first step. To do so, it is necessary to extract mandatory...
Reverse Engineering Feature Models from Software Configurations
Software architectures are the blueprint of software systems construction and evolution. During the overall software lifecycle, several changes of its architecture may be considered (e.g. including new software requirements, correcting bugs, enhancing software performance). To ensure a valid and reliable evolution, software architecture changes mus...
Companies often develop a set of software variants that share some features and differ in other ones to meet specific requirements. To exploit existing software variants and build a Software Product Line (SPL), a Feature Model (FM) of this SPL must be built as a first step. To do so, it is necessary to mine optional and mandatory features in additi...
Companies often develop a set of software variants that share some features and differ in other ones to meet specific requirements. To exploit existing software variants and build a Software Product Line (SPL), a Feature Model (FM) of this SPL must be built as a first step. To do so, it is necessary to mine optional and mandatory features in additi...
Formal Concept Analysis is a theoretical framework which structures a set of objects described by properties. Formal Concept Analysis is a classification technique that takes data sets of objects and their attributes, and extracts relations between these objects according to the attributes they share. This structure reveals and categorizes commonal...
This papers gives an overview of our formal approach to address the architecture-centric evolution at the three main steps of component-based software development: specification, implementation and deployment. We illustrate our proposal with an example of software evolution that leads to erosion and we demonstrate how our evolution process can reso...
Migrating software product variants which are deemed similar into a product line is a challenging task with main impact in software reengineering. To exploit existing software variants to build a software product line (SPL), the first step is to mine the feature model of this SPL which involves extracting common and optional features. Thus, we prop...
Mining Features from the Object-Oriented Source Code of a Collection of Software Variants Using Formal Concept Analysis and Latent Semantic Indexing
Companies often develop a set of software variants that share some features and differ in other ones to meet specific requirements. To exploit existing software variants and build a software product line (SPL), a feature model of this SPL must be built as a first step. To do so, it is necessary to mine optional and mandatory features from the sourc...
Formal Concept Analysis (FCA) is a theoretical framework which structures a set of objects described by properties. In order to migrate software product variants which are considered similar into a product line, it is essential to identify the common and the optional features between the software product variants. In this paper, we present an appro...
Component-based development promotes a software development process that focuses on component reuse. How to describe a desired component before searching in the repository? How to find an existing component that fulfills the required functionalities? How to capture the system personalization based on its constitutive components' customization? To a...
A methodology to recover feature models from object-oriented source code
Component-based development promotes a software development process that focuses on component reuse. How to describe a desired component before searching in the repository? How to find an existing component that fulfills the required functionalities? How to capture the system personalization based on its constitutive components' customization? To a...
In component-based software engineering, software architectures govern not only software development but also software evolution. Indeed, to efficiently and accurately manage software evolution and guarantee its quality, architecture models should be at the core of the evolution process, be accurately synchronized with the runtime systems and have...
Incremental development is now state of the practice. In-deed, it is promoted from the rational unified process to ag-ile development methods. Few methods however guide soft-ware developers and architects in doing so. For instance, no tool is proposed to verify the non-regression of function-alities, modeled as behavior specifications, between incr...
Software Product Line (SPL) is a development paradigm that targets the creation of software system variants that belong to the same domain. Usually software system variants, developed with clone-and-own approach, form a starting point for building SPL. To migrate software systems which are deemed similar to a product line, it is necessary to detect...
Ubiquitous computing provides a dynamic access to different functionalities of networkable electronic devices. Whereas basic services have limited use, predefined complex services cannot encompass every end-user's needs nor be adapted to a set of services that are dynamically discovered in an open environment. Alternatively, users need to be provid...
A Web service is a software functionality accessible through the network. Web services are intended to be composed into coarser-grained
applications. Achieving a required composite functionality requires the discovery of a collection of Web services out of the
enormous service space. Each service must be examined to verify its provided functionalit...
Exception handling and replication are two complementary mechanisms that increase software reliability. Exception handling helps programmers in controlling situations in which the normal execution flow of a program cannot continue. Replication handles system fail- ures through redundancy. Combining both techniques is a first step to- wards building...
Exception handling and replication are two complementary mechanisms that increase software reliability. Exception handling helps programmers in controlling situations in which the normal execution flow of a program cannot continue. Replication handles system failures through redundancy. Combining both techniques is a first step towards building a t...
This paper proposes SAASHA, a Self-Adaptable Agent System for Home Automation that provides end-users with the capacity of defining custom scenarios to act on their environment. The proposed system adapts dynamically to the environment without any expert intervention. It is composed of two types of component-based software agents: Graphical User In...
Architecture-centric, component-based development intensively reuses components from repositories. Such development processes produce architecture definitions, using architecture description languages (ADLs). This paper proposes a three step process. Architecture specifications first capture abstract and ideal architectures imagined by architects t...
Component-based development focuses on component reuse and composition: abstract components (as wished) must be searched for and matched to existing component (as found). This search and reuse activity greatly impacts software development and evolution processes. Unfortunately, very few works propose adaptations of traditional software engineering...
In SOA, composite applications can be developed on the basis of collections of interacting web services. A service's functionality is exposed to the external world by an abstract interface, described by the standard WSDL language, which must be published by service providers to public registries where service consumers can find them. Nowadays, web...
This is a paper that was submitted to the ECSA 2010 Conference (http://www.itu.dk/ecsa2010/) but was refused (notification was received on May 15, 2010).
Pour satisfaire les besoins des utilisateurs de manière pertinente et fiable, les systèmes de contrôle d'environnements domotiques doivent posséder des qualités de décentralisation, d'adaptation, de dynamicité et d'autonomie. Nous proposons de répondre à ces exigences à l'aide d'un système multi-agents à base de composants. Les agents contrôlent le...
Une architecture logicielle peut être définie à différents niveaux d'abstraction, correspondants aux différentes étapes de son processus de développement : spécification, implémentation et déploiement. La cohérence entre les dif- férentes définitions d'une architecture doit être maintenue : sa définition à un niveau d'abstraction doit être conforme...
Software components and web services are software building blocks that are used in the composition of mod- ern software applications. They both provide functionalities that require to be advertised by registries in order to be discovered and reused during software building processes. Building or evolving existing software implies assembling softwar...
While the use of components grows in software development, building effective component directories becomes a critical issue as architects need help to search components in repositories. During the life-cycle of component-based software, several tasks, such as construction from scratch or component substitution, would benefit from an efficient comp...
Many studies have been conducted in order to develop systems that respond to user requirements in domotic environments. These systems generally offer predefined scenarios corresponding to general requirements and enable users to select those he/she wants to trigger. We claim that such behaviors cannot be hardwired: user scenario definition should b...
Component directories index components by the services they offer thus enabling us to rapidly access them. Component directories are also the cornerstone of dynamic component assembly evolution when components fail or when new functionalities have to be added to meet new requirements. This work targets semi-automatic evolution processes. It states...
Large, complex and long-lived software need to be upgraded at runtime. Addition, removal and replacement of a software component are the elementary evolution operations that have to be supported. Yet, dynamic changes are errorprone as it is difficult to guarantee that the new system will still work and that all functionalities and quality are prese...
http://www.lirmm.fr/~dony/postscript/exc-FacomaReport08.pdf
Complex and long-lived software need to be upgraded at runtime. Replacing a software component with a newer version is the basic evolution operation that has to be supported. It is error-prone as it is difficult to guarantee the preservation of functionalities and quality. Few existing work on ADLs fully support a component replacement process from...
Exception handling and replication are two mechanisms that increase the reliability of applications. Exception handling helps programmers to control situations in which the normal flow of a program execution cannot continue. Replication handles system failures. Exceptions handling and replication do not apply to the same situations and are two comp...
The increased popularity of web services is accompanied with an increase in both provider and service number. This fairly large service number causes a deficiency in the selection of the most pertinent service, and makes it an effortful and time-consuming task. We propose the WSPAB (Web Service Personal Address Book) tool that aims at defining a co...
SUMMARY In this paper, we present a search-based automatic many-to-one component substitution mechanism. When a component is removed from an assembly to overcome component obsolescence, failure or unavailability, most existing systems perform component-to- component (one-to-one) substitution. Thus, they only handle situations where a specific candi...
The ANR FACOMA project puts a strong emphasis on exception handling as one of the tools for ensuring reliability of cooperative multi-agent applications and more generally with applications built on top of active objects. The related task in this project is to install an appropriate exception handling system in the DIMA agent language and to adapt...
Reliability is a major issue in new software architectures (such as multi-agent systems or software component based architectures) as they aim at integrating separately developed software parts. In this paper, we focus on both multi-agent systems and a crucial feature to ensure software reliability: an appropriate exception handling system. We firs...
Résumé. Les annuaires de composants permettent d'indexer et de localiser ra- pidement les composants selon les services qu'ils offrent. Ils donnent ainsi aux assemblages en cours d'exécution la possibilité d'évoluer dynamiquement par remplacement de composants, en cas de défaillance, ou par intégration de nou- velles fonctionnalités, en réponse à d...
This document is the semestrial report of the Lirmm partner for the Facoma project. It concludes semester 2 - out of 6 - for the project. During this semester, partners from Lirmm and Lgi2p have worked on: i) defining an exception handling system for agents. This work is based on previous work that has been done by these partners on the Sage except...
In component-based software engineering, software systems are built by assembling prefabricated reusable components. The compat- ibility between the assembled components is crucial. It is determined by the comparison of their exposed interfaces: required interfaces (describ- ing the services the component needs) and provided interfaces (describing...