Using prototypical objects to implement shared behavior in object-oriented systems
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
Using role components in implement collaboration-based designs
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Roles: conceptual abstraction theory and practical language issues
Theory and Practice of Object Systems - Special issue on subjectivity in object-oriented systems
Medical Image Analysis: Progress over Two Decades and the Challenges Ahead
IEEE Transactions on Pattern Analysis and Machine Intelligence
On the representation of roles in object-oriented and conceptual modelling
Data & Knowledge Engineering
Component Software: Beyond Object-Oriented Programming
Component Software: Beyond Object-Oriented Programming
Using role-based coordination to achieve software adaptability
Science of Computer Programming
Serfs: Dynamically-bound parameterized components
Journal of Systems and Software
Object-based and class-based composition of transitive mixins
Information and Software Technology
Electronic Notes in Theoretical Computer Science (ENTCS)
IEEE Transactions on Software Engineering
Flexible metaprogramming and AOP in Java
Science of Computer Programming
A precise model for contextual roles: The programming language ObjectTeams/Java
Applied Ontology - Roles, an interdisciplinary perspective
Framework for application management with dynamic aspects J-EARS case study
Information and Software Technology
Tailorable language for behavioral composition and configuration of software components
Computer Languages, Systems and Structures
AspectC++: An integrated approach for static and dynamic adaptation of system software
Knowledge-Based Systems
Components meet aspects: Assessing design stability of a software product line
Information and Software Technology
Delegation by object composition
Science of Computer Programming
Comprehensive aspect weaving for Java
Science of Computer Programming
Hi-index | 0.00 |
Abstract: One of the challenges in software development regards the appropriate coupling of separated code elements in order to correctly build initially expected high-level software functionalities. In this context, we address issues related to the dynamic composition of such code elements (i.e. how they are dynamically plugged together) as well as their collaboration (i.e. how they work together). We also consider the limitation of build-level dependencies, to avoid the entire re-compilation and re-deployment of a software when modifying it or integrating new functionalities. To solve these issues, we propose a new design pattern coupling role and component concepts and illustrate its relevance for medical software. Compared to most related works focusing on few role concepts while ignoring others, the proposed pattern integrates many role concepts as first-class entities, including in particular a refinement of the notion of collaboration. Another significant contribution of our proposal concerns the coupling of role and component concepts. Roles are related to the functional aspects of a target software program (composition and collaboration of functional units). Components correspond to the physical distribution of code elements with limited build-level dependencies. As illustrated in this paper, such a coupling enables to instantiate a software program using a generic main program together with a description file focusing on software functionalities only. Related code elements are transparently retrieved and composed at run-time before appropriately collaborating, regardless the specificity of their distribution over components.