23 research outputs found

    Interim research assessment 2003-2005 - Computer Science

    Get PDF
    This report primarily serves as a source of information for the 2007 Interim Research Assessment Committee for Computer Science at the three technical universities in the Netherlands. The report also provides information for others interested in our research activities

    A prototype-based approach to object evolution

    Get PDF
    International audienceWe investigate, in the context of functional prototype-based languages , a calculus of objects which might extend themselves upon receiving a message, a possibility referred to by Cardelli as a self-inflicted operation. We present a sound type system for this calculus which guarantees that evaluating a well-typed expression will never yield a message-not-found runtime error. The resulting calculus is an attempt towards the definition of a language combining the safety advantage of static type check with the flexibility normally found in dynamically typed languages

    Abstraction over non-local object information in aspect-oriented programming using path expression pointcuts

    Get PDF
    Aspect-oriented software development (AOSD) consists of a number of technologies that promise a better level of modularization of concerns that cannot be separated in individual modules by using conventional techniques. Aspect-oriented programming (AOP) is one of these technologies. It allows the modularization at the level of software application code. It provides programmers with means to quantify over specific points in the base application code, called join points, at which the crosscutting concern code must be triggered. The quantification is achieved by special selection constructs called pointcuts, while the triggered code that is responsible for adapting the selected join point is provided by special construct called advice. The selection and adaptation mechanisms in aspect-oriented programming depend heavily on the distinguishing properties of the join points. These properties can either be derived from the local execution context at the join point or they are considered to be non-local to the join point. Aspect-oriented systems provide a plenty of pointcut constructs that support accessing the local join point properties, while they rarely support the non-local properties. A large research effort has been achieved to extend current aspectoriented systems in order to solve the problem of non-locality. However, none of these proposals support the non-local object relationships. There are many situations where a good abstraction over nonlocal object information is needed, otherwise, the developers will be obliged to provide complex and error-prone workarounds inside advice body that conceptually do not reflect the semantics of join point selection and mix it with the semantics of join point daptation. Such recurrent situations occur when trying to modularize the object persistence concern. Object persistence, the process of storing and retrieving objects to and from the datastore, is a classical example of crosscutting concern. Orthogonal object persistence meets the obliviousness property of AOP: The base code should not be prepared upfront for persistence. This thesis addresses the shortcomings in current aspect-oriented persistence systems. It shows that the reason for such shortcomings is due to the lack of supporting non-local object information by the used aspect-oriented languages. To overcome this problem, this thesis proposes a new extension to the current pointcut languages called path expression pointcuts that operate on object graphs and make relevant object information available to the aspects. As an explicit and complete construct, a formal semantics and type system have provided. Moreover, an implementation of path expression pointcuts is discussed in the thesis along with its usage to show how the aforementioned problems are resolved

    Co-Evolution of Source Code and the Build System: Impact on the Introduction of AOSD in Legacy Systems

    Get PDF
    Software is omnipresent in our daily lives. As users demand ever more advanced features, software systems have to keep on evolving. In practice, this means that software developers need to adapt the description of a software application. Such a description not only consists of source code written down in a programming language, as a lot of knowledge is hidden in lesser known software development artifacts, like the build system. As its name suggests, the build system is responsible for building an executable program, ready for use, from the source code. There are various indications that the evolution of source code is strongly related to that of the build system. When the source code changes, the build system has to co-evolve to safeguard the ability to build an executable program. A rigid build system on the other hand limits software developers. This phenomenon especially surfaces when drastic changes in the source code are coupled with an inflexible build system, as is the case for the introduction of AOSD technology in legacy systems. AOSD is a young software development approach which enables developers to structure and compose source code in a better way. Legacy systems are old software systems which are still mission-critical, but of which the source code and the build system are no longer fully understood, and which typically make use of old(-fashioned) technology. This PhD dissertation focuses on finding an explanation for this co-evolution of source code and the build system, and on finding developer support to grasp and manage this phenomenon. We postulate four "roots of co-evolution" which represent four different ways in which source code and the build system interact with each other. Based on these roots, we have developed tool and aspect language support to understand and manage co-evolution. The roots and the tool support have been validated in case studies, both in the context of co-evolution in general and of the introduction of AOSD technology in legacy systems. The dissertation experimentally shows that co-evolution indeed is a real problem, but that specific software development and aspect language support enables developers to deal with it

    Role-based Adaptation of Business Reference Models to Application Models: An Enterprise Modeling Methodology for Software Construction

    Get PDF
    Large software systems are in need of a construction plan to determine and define every concept and element used in order to not end up in complex, unusable, and cost-intensive systems. Different modeling languages, like UML, support the development of these construction plans and visualize them for the system’s stakeholders. Reference models are a specific kind of construction plan, used as templates for information systems and already capture business domain knowledge for reuse and tailoring. By adaptation, reference models are tailored to enterprise-specific application models, which can be used for software construction and maintenance. However, current adaptation methods suffer from the limitations of pure object-oriented development (e.g., identity issues, large inheritance trees, and inflexibility). In this thesis, the usage of roles as the sole adaptation mechanism is proposed to solve these challenges. With the help of conceptual roles, it is possible to create rich model variations and adaptations from existing (industry standard) reference models, and it is simpler to react to model evolution and changing business logic. Adaptations can be specified with more precision by maintaining or even increasing the model’s expressiveness. As a consequence, the role-enriched final application model can be used to describe software systems in more detail, with different perspectives, and, if available, can be implemented with a role supporting programming language. However, even without this step, the application model itself will provide valuable insights into the overall construction plan of a software system by the combination of structure and behavior and a clear separation of relatively stable domain knowledge from its use case specific adaptation

    Dublin Institute of Technology, Kevin Street : Calendar 1991/92

    Get PDF
    Calendar of academic year 1991/92. Contents include. DIT Courses, fee structures, undergrad programmes, short courses, fees, research & development, campus companies, student services, college regulations, Graduates and prizewinners, awards and external examiners, advisory services for prospective students, college structures, college staff and college library. Foreward by F.M. Brennan, President

    Combining SOA and BPM Technologies for Cross-System Process Automation

    Get PDF
    This paper summarizes the results of an industry case study that introduced a cross-system business process automation solution based on a combination of SOA and BPM standard technologies (i.e., BPMN, BPEL, WSDL). Besides discussing major weaknesses of the existing, custom-built, solution and comparing them against experiences with the developed prototype, the paper presents a course of action for transforming the current solution into the proposed solution. This includes a general approach, consisting of four distinct steps, as well as specific action items that are to be performed for every step. The discussion also covers language and tool support and challenges arising from the transformation

    Un modèle de programmation intégrant classes, événements et aspects

    Get PDF
    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 re- duces 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.Le paradigme de la programmation par objets (PPO) est devenu le paradigme de programmation le plus utilisé. La programmation événementielle (PE) et la programmation par aspects (PPA) complètent la PPO en comblant certaines de ses lacunes lors de la construction de logiciels complexes. Les applications actuelles combinent ainsi les trois paradigmes. Toutefois, la POO, la PE et la POA ne sont pas encore bien intégrées. Leurs concepts sous-jacents sont en général fournis sous la forme de constructions syntaxiques spécifiques malgré leurs points communs. Ce manque d'intégration et d'orthogonalité complique les logiciels car il réduit leur compréhensibilité et leur composabilité, et augmente le code d'infrastructure. Cette thèse propose une intégration de la PPO, de la PE et de la PPA conduisant à un modèle de programmation simple et régulier. Ce modèle intègre les notions de classe et d'aspect, les notions d'événement et de point de jonction, et les notions d'action, de méthode et de gestionnaire d'événements. Il réduit le nombre de constructions tout en gardant l'expressivité initiale et en offrant même des options de programmation supplémentaires. Nous avons conçu et mis en œuvre deux langages de programmation basés sur ce modèle : EJava et ECaesarJ. EJava est une extension de Java implémentant le modèle. Nous avons validé l'expressivité de ce langage par la mise en œuvre d'un éditeur graphique bien connu, JHotDraw, en réduisant le code d'infrastructure nécessaire et en améliorant sa conception. ECaesarJ est une extension de CaesarJ qui combine notre modèle avec de la composition de mixins et un support linguistique des machines à états. Cette combinaison a grandement facilité la mise en œuvre d'une application de maison intelligente, une étude de cas d'origine industrielle dans le domaine de la domotique
    corecore