Papers by Jean-Marc Jézéquel
IDM & SYSTÈMES AUTO-ADAPTATIFS Ingénierie dirigée par les modèles: du design-time au run-time
Triskell–Modélisation par aspects de lignes de produits
Parallélisation d'un routeur XTP
Data transfer services using distributed computers
Trusted components-2nd Workshop on Trusted Components
Ingénierie Dirigé par les Modèles: du design-time au runtime

Proceedings. 5th International Workshop on Enterprise Networking and Computing in Healthcare Industry (IEEE Cat. No.03EX717), 2003
This paper addresses not only the question of testability measurement of OO designs but also focu... more This paper addresses not only the question of testability measurement of OO designs but also focuses on its practicability. While detecting testability weaknesses (called testability anti-patterns) of an OO design is a crucial task, one cannot expect from a non-specialist to make the right improvements, without guidance or automation. To overcome this limitation, this paper investigates solutions integrated to the 00 process. We focus on the design patterns as coherent subsets in the architecture, and we explain how their use can provide a way for limiting the severity of testability weaknesses, and of confining their effects to the classes involved in the pattern. Indeed, design patterns appear both as a usual refinement instrument, and a cause of complex interactions into a class diagram -and more specifically of testability anti-patterns. To reach our objective of integrating the testability improvement to the design process, we propose first a testability grid to make the relation between each pattern and the severity of the testability anti-patterns, and we present our solution, based on a definition of patterns at metalevel, to automate the instantiation of patterns constrained by testability criteria.
Many engineers are still reluctant to adopt advanced object-oriented technologies (such as high m... more Many engineers are still reluctant to adopt advanced object-oriented technologies (such as high modularity, dynamic binding, automatic garbage collection, etc.) for embedded systems with real-time constraints, because of their supposed inefficiency. We set ourselves into the context of building telecommunication systems with a standard object-oriented analysis and design approach. We describe how we use relevant design patterns, followed with an implementation in a pure object-oriented language (Eiffel) to conciliate the needed efficiency with the benefits of the object-oriented approach -flexibility, dynamic configurability, maintenability, portability, etc. We discuss a case study based on the implementation of SMDS (Switched Multi-megabits Data Service) servers featuring high-throughput and low-delay transmissions and respecting the real-time constraints of SMDS.
Customization and 3D printing
Proceedings of the 18th International Software Product Line Conference on - SPLC '14, 2014
ABSTRACT 3D printing is gaining more and more momentum to build customized product in a wide vari... more ABSTRACT 3D printing is gaining more and more momentum to build customized product in a wide variety of fields. We conduct an exploratory study of Thingiverse, the most popular Website for sharing user-created 3D design files, in order to establish a possible connection with software product line (SPL) engineering. We report on the socio-technical aspects and current practices for modeling variability, implementing variability, configuring and deriving products, and reusing artefacts. We provide hints that SPL-alike techniques are practically used in 3D printing and thus relevant. Finally, we discuss why the customization in the 3D printing field represents a challenging playground for SPL engineering.
L'objet, 2008
Afin de faire face à la complexité du logiciel due à la variabilité de ses environnements et de s... more Afin de faire face à la complexité du logiciel due à la variabilité de ses environnements et de ses utilisations, l'ingénierie des lignes de produits permet d'important gains en termes de coûts et de qualité de développement en systématisant la réutilisation d'éléments communs. Néanmoins, les approches actuelles manquent de flexibilité dans la prise en compte des exigences particulières à un utilisateur. Nous illustrons ici comment, en utilisant des techniques d'ingénierie des modèles telles que la composition et la transformation et en les outillant dans l'environnement de métamodelisation Kermeta, il est possible de concilier flexibilité et efficacité lors de la dérivation de produits.
Contract spaces for trusted components
Pennaneac’h “Vers l’utilisation dóutils de validation de protocole dans UML”, Technique et Science Informatique vol 17 no 9
Modern GUI toolkits propose the use of declarative data bindings to link the domain data to their... more Modern GUI toolkits propose the use of declarative data bindings to link the domain data to their presentations. These approaches work fine for defining simple bindings, but require an increasing programming effort as soon as the bindings become more complex. In this paper, we propose the use of active operations for specifying and implementing UI data bindings to tackle this issue. We demonstrate that the proposed approach goes beyond the usual declarative data bindings by combining the simplicity of the declarative approaches with the expressiveness of active operations.
Protocol engineering using UML
ABSTRACT
Vers un rapprochement de l'IDM et de la compilation

ACM SIGPLAN Notices, 2014
Writing large Web applications is known to be difficult. One challenge comes from the fact that t... more Writing large Web applications is known to be difficult. One challenge comes from the fact that the application's logic is scattered into heterogeneous clients and servers, making it difficult to share code between both sides or to move code from one side to the other. Another challenge is performance: while Web applications rely on ever more code on the client-side, they may run on smart phones with limited hardware capabilities. These two challenges raise the following problem: how to benefit from high-level languages and libraries making code complexity easier to manage and abstracting over the clients and servers differences without trading this ease of engineering for performance? This article presents highlevel abstractions defined as deep embedded DSLs in Scala that can generate efficient code leveraging the characteristics of both client and server environments. We compare performance on client-side against other candidate technologies and against hand written lowlevel JavaScript code. Though code written with our DSL has a high level of abstraction, our benchmark on a real world application reports that it runs as fast as hand tuned low-level JavaScript code.

Lecture Notes in Computer Science, 2001
Software developers spend most of their time modifying and maintaining existing products. This is... more Software developers spend most of their time modifying and maintaining existing products. This is because systems, and consequently their design, are in perpetual evolution before they die. Nevertheless, dealing with this evolution is a complex task. Before evolving a system, structural modifications are often required. The goal of this kind of modification is to make certain elements more extensible, permitting the addition of new features. However, designers are seldom able to evaluate the impact, on the whole model, of a single modification. That is, they cannot precisely verify if a change modifies the behavior of the modeled system. A possible solution for this problem is to provide designers with a set of basic transformations, which can ensure behavior preservation. These transformations, also known as refactorings, can then be used, step by step, to improve the design of the system. In this paper we present a set of refactorings and explain how they can be designed so as to preserve the behavior of a UML model. Some of these refactorings are illustrated with examples.

Integrating Software Process Reuse and Automation
2013 20th Asia-Pacific Software Engineering Conference (APSEC), 2013
ABSTRACT Reusing software processes from a Software Process Line (SPL, i.e., a set of software pr... more ABSTRACT Reusing software processes from a Software Process Line (SPL, i.e., a set of software processes that captures their commonalities and variabilities) and automating their execution is a way to reduce development costs. However, to our best knowledge no approach integrates both aspects. The difficulty is to automate the execution of a process whose variability is only partially resolved (i.e., a value is not set to each variable part of the process). Indeed, according to projects' constraints, it is possible to start the execution of a part of a process whose variability is resolved, while postponing the resolution of the variability of other parts of this process. In this paper, we propose a tool-supported approach that integrates both aspects. It consists of reusing processes from an SPL according to projects' requirements. The processes are bound to components that automate their execution. When the variability of a process to execute is not fully resolved, our approach consists of resolving this variability during the execution of this process. We illustrate this work on a family of processes for designing and implementing modeling languages. Our approach enables both the reuse of software processes and the automation of their execution, while enabling to resolve process variability during the execution.
Uploads
Papers by Jean-Marc Jézéquel