Kim Mens - Academia.edu (original) (raw)

Papers by Kim Mens

Research paper thumbnail of Reuse Contracts: Managing the Evolution of Reusable Assets

A critical concern in the reuse of software is the propagation of changes made to reusable artifa... more A critical concern in the reuse of software is the propagation of changes made to reusable artifacts. Without techniques to manage these changes, multiple versions of these artifacts will propagate through different systems and reusers will not be able to benefit from improvements to the original artifact. We propose to codify the management of change in a software system by means of reuse contracts that record the protocol between managers and users of a reusable asset. Just as real world contracts can be extended, amended and customised, reuse contracts are subject to parallel changes encoded by formal reuse operators: extension, refinement and concretisation. Reuse contracts and their operators serve as structured documentation and facilitate the propagation of changes to reusable assets by indicating how much work is needed to update previously built applications, where and how to test and how to adjust these applications.

Research paper thumbnail of A Model-driven Pointcut Language for More Robust Pointcuts

Research paper thumbnail of Report of the 6th ECOOP'05 Workshop on Object-Oriented Reengineering

Research paper thumbnail of Software as Feature Clouds (poster)

Ensure through static and dynamic verification that introduction or activation of features does n... more Ensure through static and dynamic verification that introduction or activation of features does not harm the application App Dynamic Composition Providing meaningful models to express features, contexts and their interaction

Research paper thumbnail of Usage Contracts (presentation at SATTOSE 2014)

Research paper thumbnail of Workshop Report —ECOOP’98 Workshop 7 Tools and Environments for Business Rules

Lecture Notes in Computer Science, 1998

This workshop focussed on the requirements for tools and environments that support business rules... more This workshop focussed on the requirements for tools and environments that support business rules in an object-oriented setting and attempted to provide an overview of possible techniques and tools for the handling, de nition and checking of these rules and the constraints expressed by them during analysis, design and development o f objectoriented software.

Research paper thumbnail of Preface to Variability@ER’11

Lecture Notes in Computer Science, 2011

As software requirements constantly increase in size and complexity, the need for methods, formal... more As software requirements constantly increase in size and complexity, the need for methods, formalisms, techniques, tools and languages for managing and evolving software artifacts become crucial. One way to manage variability when dealing with a rapidly growing variety of software products is through developing and maintaining families of software products rather than individual products. Variability management is concerned with controlling the versions and the possible variants of software systems. Variability management gained a special interest in various software-related areas in different phases of the software development lifecycle. These areas include conceptual modeling, product line engineering, feature analysis, software reuse, configuration management, generative programming and programming language design. In the context of conceptual modeling, the terminology of variability management has been investigated, yielding ontologies, modeling languages, and classification frameworks. In the areas of software product line engineering and feature analysis, methods for developing core assets and efficiently using them in particular contexts have been introduced. In the software reuse and configuration management fields, different mechanisms for reusing software artifacts and managing software versions have been proposed, including adoption, specialization, controlled extension, parameterization, configuration, generation, template instantiation, analogy construction, assembly, and so on. Finally, generative programming deals with developing programs that synthesize or generate other programs and programming language design provides techniques for expressing and exploiting commonality of source code artifacts, but also for specifying the allowed or potential variability, whether it is static or dynamic. The purpose of this workshop is to promote the theme of variability management from all or part of these different perspectives, identifying possible points of synergy, common problems and solutions, and visions for the future of the area. The workshop accepted 4 papers dealing with variability management related issues:

Research paper thumbnail of Usage contracts: Offering immediate feedback on violations of structural source-code regularities

Science of Computer Programming, 2015

ABSTRACT Developers often encode design knowledge through structural regularities such as API usa... more ABSTRACT Developers often encode design knowledge through structural regularities such as API usage protocols, coding idioms and naming conventions. As these regularities express how the source code should be structured, they provide vital information for developers using or extending that code. Adherence to such regularities tends to deteriorate over time because they are not documented and checked explicitly. This paper introduces uContracts, an internal DSL to codify and verify such regularities as ‘usage contracts’. Our DSL aims at covering most common usage regularities, while still providing a means to express less common ones. Common regularities are identified based on regularities supported by existing approaches to detect bugs or suggest missing code fragments, techniques that mine for structural regularities, as well as on the analysis of an open-source project. We validate our DSL by documenting the structural regularities of an industrial case study, and analyse how useful the information provided by checking these regularities is for the developers of that case study.

Research paper thumbnail of Combining Software Descriptions

Lecture Notes in Computer Science, 1998

Object-oriented software can be described in many di erent ways. In this extended abstract of [MM... more Object-oriented software can be described in many di erent ways. In this extended abstract of [MMSH97] we focus on the question how these di erent software descriptions can best be combined in order to facilitate reuse and evolution. ... Adaptive Object-Oriented Software. The Demeter Method with propagation patterns ... [Lie96] KJ Lieberherr. . PWS Publishing Company, 1996. [MMSH97] K. Mens, T. Mens, P. Steyaert, and K. De Hondt. Combining software descriptions. Vrije Universiteit Brussel, Technical report vub-prog-tr-97- 06, 1997. ...

Research paper thumbnail of Declarative Meta Programming

Research paper thumbnail of Language Engineering for Mobile Software

Design, Implementation, and Emergent Applications, 2012

... for Mobile Software Engineer Bainomugisha+ Alfredo Cádiz ∗ Pascal Costanza+ ... (defparameter... more ... for Mobile Software Engineer Bainomugisha+ Alfredo Cádiz ∗ Pascal Costanza+ ... (defparameterbob-phone (clone @smartphone)) (defparameter alice-phone (clone @smartphone)) (callbob-phone alice-phone) -> Playing ringtone -> Call from bob-phone to alice-phone ...

Research paper thumbnail of Supporting Software Development through

In current-day software development, programmers oftenuse programming patterns to clarify their i... more In current-day software development, programmers oftenuse programming patterns to clarify their intents and toincrease the understandability of their programs. Unfortunately, most software development environments do not adequatelysupport the declaration and use of such patterns. To explicitly codify these patterns, we adopt a declarativemeta-programming approach. In this approach, we reify thestructure of an (object-oriented) program in terms of logicclauses. We declare programming patterns as logic ruleson top of these clauses. By ...

Research paper thumbnail of Multiple Dispatch for Ambient Intelligence

Developing object technology for Ambient Intelligence is not going to be easy. AmI poses hard con... more Developing object technology for Ambient Intelligence is not going to be easy. AmI poses hard conditions like frequent disconnection and low-resource computing (just to mention a few), and also it poses hard requirements, like unanticipated context-aware adaptation and unanticipated interaction of applications. We believe that object orientation can provide the right answers, but those answers are certainly not based on the kind of OO technology currently being deployed in industry and mainly being researched in the scientific world (namely class-based, ...

Research paper thumbnail of Towards a Unifying Conceptual Framework for Inconsistency Management Approaches

Abstract. The problem of managing inconsistencies within and between models is omnipresent in sof... more Abstract. The problem of managing inconsistencies within and between models is omnipresent in software engineering. Over the years many different inconsistency management approaches have been proposed by the research community. Because of their large diversity of backgrounds and the diversity of models being considered, it is difficult to pinpoint what these approaches have in common and what not. As a result, researchers encounter difficulties when positioning and comparing their work with existing state-of-the- ...

Research paper thumbnail of The intensional view environment

International Conference on Software Maintenance (ICSM) Industrial and Tool, 2005

The IntensiVE tool suite, which is based on the underlying models of Intensional Views and Intens... more The IntensiVE tool suite, which is based on the underlying models of Intensional Views and Intensional Relations, allows for the documentation of high-level structural regularities in the source code of a software system. It also supports co-evolution of those regularities with the source code when either of them evolve. IntensiVE was implemented in VisualWorks Smalltalk (7.3) and comprises, amongst others, the following sub-tools: • Intensional View Editor • View Consistency Checker • Relation Editor • Relation Checker • Intensional View Displayer

Research paper thumbnail of A model-driven pointcut language for more robust pointcuts

Proceedings of Software engineering Properties of Languages for Aspect Technologies (SPLAT’06), Bonn, Germany, Mar 13, 2006

Improved modularity and separation of concerns does not only intend to aid initial development, b... more Improved modularity and separation of concerns does not only intend to aid initial development, but is conceived such that developers can better manage software complexity, evolution and reuse [1]. Paradoxically, the essential techniques that AOSD proposes to improve software modularity seem to restrict the evolvability of that software. More specifically, because aspects need to define a pointcut that states when and where they need to be invoked in the execution of the base program, aspects are not robust to ...

Research paper thumbnail of Evolution Questions and Answers

Research paper thumbnail of A Formalisation of Encapsulated Modification of Objects

UK PubMed Central (UKPMC) is an archive of life sciences journal literature.

Research paper thumbnail of Proceedings of the Third International ERCIM Symposium on Software Evolution (Software Evolution 2007)

DI-fusion, le Dépôt institutionnel numérique de l'ULB, est l'outil de référencementde l... more DI-fusion, le Dépôt institutionnel numérique de l'ULB, est l'outil de référencementde la production scientifique de l'ULB.L'interface de recherche DI-fusion permet de consulter les publications des chercheurs de l'ULB et les thèses qui y ont été défendues.

Research paper thumbnail of JPC: A library for categorising and applying inter-language conversions between Java and Prolog

Science of Computer Programming

ABSTRACT The number of approaches existing to enable a smooth interaction between Java and Pro-lo... more ABSTRACT The number of approaches existing to enable a smooth interaction between Java and Pro-log programs testifies the growing interest in solutions that combine the strengths of both languages. Most of these approaches provide limited support to allow programmers to cus-tomise how Prolog artefacts should be reified in the Java world, or how to reason about Java objects on the Prolog side. This is an error-prone task since often a considerable amount of mappings must be developed and organised. Furthermore, appropriate mappings may depend on the particular context in which a conversion is accomplished. Although some libraries alleviate this problem by providing higher-level abstractions to deal with the complexity of custom conversions between artefacts of the two languages, these libraries themselves are difficult to implement and evolve. We claim that this is caused by their lack of appropriate underlying building blocks for encapsulating, categorising and applying Java-Prolog conversion routines. We therefore introduce a new library, JPC, serving as a development tool for both programmers willing to categorise context-dependent conversion constructs in their Java-Prolog systems, and for architects implementing frameworks providing higher-level abstractions for better interoperability between these two languages.

Research paper thumbnail of Reuse Contracts: Managing the Evolution of Reusable Assets

A critical concern in the reuse of software is the propagation of changes made to reusable artifa... more A critical concern in the reuse of software is the propagation of changes made to reusable artifacts. Without techniques to manage these changes, multiple versions of these artifacts will propagate through different systems and reusers will not be able to benefit from improvements to the original artifact. We propose to codify the management of change in a software system by means of reuse contracts that record the protocol between managers and users of a reusable asset. Just as real world contracts can be extended, amended and customised, reuse contracts are subject to parallel changes encoded by formal reuse operators: extension, refinement and concretisation. Reuse contracts and their operators serve as structured documentation and facilitate the propagation of changes to reusable assets by indicating how much work is needed to update previously built applications, where and how to test and how to adjust these applications.

Research paper thumbnail of A Model-driven Pointcut Language for More Robust Pointcuts

Research paper thumbnail of Report of the 6th ECOOP'05 Workshop on Object-Oriented Reengineering

Research paper thumbnail of Software as Feature Clouds (poster)

Ensure through static and dynamic verification that introduction or activation of features does n... more Ensure through static and dynamic verification that introduction or activation of features does not harm the application App Dynamic Composition Providing meaningful models to express features, contexts and their interaction

Research paper thumbnail of Usage Contracts (presentation at SATTOSE 2014)

Research paper thumbnail of Workshop Report —ECOOP’98 Workshop 7 Tools and Environments for Business Rules

Lecture Notes in Computer Science, 1998

This workshop focussed on the requirements for tools and environments that support business rules... more This workshop focussed on the requirements for tools and environments that support business rules in an object-oriented setting and attempted to provide an overview of possible techniques and tools for the handling, de nition and checking of these rules and the constraints expressed by them during analysis, design and development o f objectoriented software.

Research paper thumbnail of Preface to Variability@ER’11

Lecture Notes in Computer Science, 2011

As software requirements constantly increase in size and complexity, the need for methods, formal... more As software requirements constantly increase in size and complexity, the need for methods, formalisms, techniques, tools and languages for managing and evolving software artifacts become crucial. One way to manage variability when dealing with a rapidly growing variety of software products is through developing and maintaining families of software products rather than individual products. Variability management is concerned with controlling the versions and the possible variants of software systems. Variability management gained a special interest in various software-related areas in different phases of the software development lifecycle. These areas include conceptual modeling, product line engineering, feature analysis, software reuse, configuration management, generative programming and programming language design. In the context of conceptual modeling, the terminology of variability management has been investigated, yielding ontologies, modeling languages, and classification frameworks. In the areas of software product line engineering and feature analysis, methods for developing core assets and efficiently using them in particular contexts have been introduced. In the software reuse and configuration management fields, different mechanisms for reusing software artifacts and managing software versions have been proposed, including adoption, specialization, controlled extension, parameterization, configuration, generation, template instantiation, analogy construction, assembly, and so on. Finally, generative programming deals with developing programs that synthesize or generate other programs and programming language design provides techniques for expressing and exploiting commonality of source code artifacts, but also for specifying the allowed or potential variability, whether it is static or dynamic. The purpose of this workshop is to promote the theme of variability management from all or part of these different perspectives, identifying possible points of synergy, common problems and solutions, and visions for the future of the area. The workshop accepted 4 papers dealing with variability management related issues:

Research paper thumbnail of Usage contracts: Offering immediate feedback on violations of structural source-code regularities

Science of Computer Programming, 2015

ABSTRACT Developers often encode design knowledge through structural regularities such as API usa... more ABSTRACT Developers often encode design knowledge through structural regularities such as API usage protocols, coding idioms and naming conventions. As these regularities express how the source code should be structured, they provide vital information for developers using or extending that code. Adherence to such regularities tends to deteriorate over time because they are not documented and checked explicitly. This paper introduces uContracts, an internal DSL to codify and verify such regularities as ‘usage contracts’. Our DSL aims at covering most common usage regularities, while still providing a means to express less common ones. Common regularities are identified based on regularities supported by existing approaches to detect bugs or suggest missing code fragments, techniques that mine for structural regularities, as well as on the analysis of an open-source project. We validate our DSL by documenting the structural regularities of an industrial case study, and analyse how useful the information provided by checking these regularities is for the developers of that case study.

Research paper thumbnail of Combining Software Descriptions

Lecture Notes in Computer Science, 1998

Object-oriented software can be described in many di erent ways. In this extended abstract of [MM... more Object-oriented software can be described in many di erent ways. In this extended abstract of [MMSH97] we focus on the question how these di erent software descriptions can best be combined in order to facilitate reuse and evolution. ... Adaptive Object-Oriented Software. The Demeter Method with propagation patterns ... [Lie96] KJ Lieberherr. . PWS Publishing Company, 1996. [MMSH97] K. Mens, T. Mens, P. Steyaert, and K. De Hondt. Combining software descriptions. Vrije Universiteit Brussel, Technical report vub-prog-tr-97- 06, 1997. ...

Research paper thumbnail of Declarative Meta Programming

Research paper thumbnail of Language Engineering for Mobile Software

Design, Implementation, and Emergent Applications, 2012

... for Mobile Software Engineer Bainomugisha+ Alfredo Cádiz ∗ Pascal Costanza+ ... (defparameter... more ... for Mobile Software Engineer Bainomugisha+ Alfredo Cádiz ∗ Pascal Costanza+ ... (defparameterbob-phone (clone @smartphone)) (defparameter alice-phone (clone @smartphone)) (callbob-phone alice-phone) -> Playing ringtone -> Call from bob-phone to alice-phone ...

Research paper thumbnail of Supporting Software Development through

In current-day software development, programmers oftenuse programming patterns to clarify their i... more In current-day software development, programmers oftenuse programming patterns to clarify their intents and toincrease the understandability of their programs. Unfortunately, most software development environments do not adequatelysupport the declaration and use of such patterns. To explicitly codify these patterns, we adopt a declarativemeta-programming approach. In this approach, we reify thestructure of an (object-oriented) program in terms of logicclauses. We declare programming patterns as logic ruleson top of these clauses. By ...

Research paper thumbnail of Multiple Dispatch for Ambient Intelligence

Developing object technology for Ambient Intelligence is not going to be easy. AmI poses hard con... more Developing object technology for Ambient Intelligence is not going to be easy. AmI poses hard conditions like frequent disconnection and low-resource computing (just to mention a few), and also it poses hard requirements, like unanticipated context-aware adaptation and unanticipated interaction of applications. We believe that object orientation can provide the right answers, but those answers are certainly not based on the kind of OO technology currently being deployed in industry and mainly being researched in the scientific world (namely class-based, ...

Research paper thumbnail of Towards a Unifying Conceptual Framework for Inconsistency Management Approaches

Abstract. The problem of managing inconsistencies within and between models is omnipresent in sof... more Abstract. The problem of managing inconsistencies within and between models is omnipresent in software engineering. Over the years many different inconsistency management approaches have been proposed by the research community. Because of their large diversity of backgrounds and the diversity of models being considered, it is difficult to pinpoint what these approaches have in common and what not. As a result, researchers encounter difficulties when positioning and comparing their work with existing state-of-the- ...

Research paper thumbnail of The intensional view environment

International Conference on Software Maintenance (ICSM) Industrial and Tool, 2005

The IntensiVE tool suite, which is based on the underlying models of Intensional Views and Intens... more The IntensiVE tool suite, which is based on the underlying models of Intensional Views and Intensional Relations, allows for the documentation of high-level structural regularities in the source code of a software system. It also supports co-evolution of those regularities with the source code when either of them evolve. IntensiVE was implemented in VisualWorks Smalltalk (7.3) and comprises, amongst others, the following sub-tools: • Intensional View Editor • View Consistency Checker • Relation Editor • Relation Checker • Intensional View Displayer

Research paper thumbnail of A model-driven pointcut language for more robust pointcuts

Proceedings of Software engineering Properties of Languages for Aspect Technologies (SPLAT’06), Bonn, Germany, Mar 13, 2006

Improved modularity and separation of concerns does not only intend to aid initial development, b... more Improved modularity and separation of concerns does not only intend to aid initial development, but is conceived such that developers can better manage software complexity, evolution and reuse [1]. Paradoxically, the essential techniques that AOSD proposes to improve software modularity seem to restrict the evolvability of that software. More specifically, because aspects need to define a pointcut that states when and where they need to be invoked in the execution of the base program, aspects are not robust to ...

Research paper thumbnail of Evolution Questions and Answers

Research paper thumbnail of A Formalisation of Encapsulated Modification of Objects

UK PubMed Central (UKPMC) is an archive of life sciences journal literature.

Research paper thumbnail of Proceedings of the Third International ERCIM Symposium on Software Evolution (Software Evolution 2007)

DI-fusion, le Dépôt institutionnel numérique de l'ULB, est l'outil de référencementde l... more DI-fusion, le Dépôt institutionnel numérique de l'ULB, est l'outil de référencementde la production scientifique de l'ULB.L'interface de recherche DI-fusion permet de consulter les publications des chercheurs de l'ULB et les thèses qui y ont été défendues.

Research paper thumbnail of JPC: A library for categorising and applying inter-language conversions between Java and Prolog

Science of Computer Programming

ABSTRACT The number of approaches existing to enable a smooth interaction between Java and Pro-lo... more ABSTRACT The number of approaches existing to enable a smooth interaction between Java and Pro-log programs testifies the growing interest in solutions that combine the strengths of both languages. Most of these approaches provide limited support to allow programmers to cus-tomise how Prolog artefacts should be reified in the Java world, or how to reason about Java objects on the Prolog side. This is an error-prone task since often a considerable amount of mappings must be developed and organised. Furthermore, appropriate mappings may depend on the particular context in which a conversion is accomplished. Although some libraries alleviate this problem by providing higher-level abstractions to deal with the complexity of custom conversions between artefacts of the two languages, these libraries themselves are difficult to implement and evolve. We claim that this is caused by their lack of appropriate underlying building blocks for encapsulating, categorising and applying Java-Prolog conversion routines. We therefore introduce a new library, JPC, serving as a development tool for both programmers willing to categorise context-dependent conversion constructs in their Java-Prolog systems, and for architects implementing frameworks providing higher-level abstractions for better interoperability between these two languages.