Thèse soutenue

FR
Accès à la thèse
Auteur / Autrice : Angel Rodrigo Núñez López
Direction : Jean-Claude Royer
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance en 2011
Etablissement(s) : Nantes
Ecole(s) doctorale(s) : École doctorale Sciences et technologies de l'information et mathématiques (Nantes)
Partenaire(s) de recherche : autre partenaire : Centrale Nantes (1991-....) - École nationale supérieure des mines (Nantes ; 1990-2016)

Résumé

FR  |  
EN

Object-Oriented Programming (OOP) has become the de facto programming paradigm. Event-Based Programming (EBP) and Aspect-Oriented Programming (AOP) complement OOP, covering some of its deficiencies when building complex software. Today’s applications combine the three paradigms. However, OOP, EBP and AOP have not yet been properly integrated. Their underlying concepts are in general provided as distinct language constructs, whereas they are not completely orthogonal. This lack of integration and orthogonality complicates the development of software as it reduces its understandability, its composability and increases the required glue code. This thesis proposes an integration of OOP, EBP and AOP leading to a simple and regular programming model. This model integrates the notions of class and aspect, the notions of event and join point, and the notions of piece of advice, method and event handler. It reduces the number of language constructs while keeping expressiveness and offering additional programming options. We have designed and implemented two programming languages based on this model: EJava and ECaesarJ. EJava is an extension of Java implementing the model. We have validated the expressiveness of this language by implementing a well-known graphical editor, JHotDraw, reducing its glue code and improving its design. ECaesarJ is an extension of CaesarJ that combines our model with mixins and language support for state machines. This combination was shown to greatly facilitate the implementation of a smart home application, an industrial-strength case study that aims to coordinate different devices in a house and automatize their behaviors