Using prototypical objects to implement shared behavior in object-oriented systems
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
ACM Transactions on Information Systems (TOIS)
COCS '90 Proceedings of the ACM SIGOIS and IEEE CS TC-OA conference on Office information systems
Automated assistance for program restructuring
ACM Transactions on Software Engineering and Methodology (TOSEM)
Refactoring object-oriented frameworks
Refactoring object-oriented frameworks
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Extending object-oriented systems with roles
ACM Transactions on Information Systems (TOIS)
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
On the representation of roles in object-oriented and conceptual modelling
Data & Knowledge Engineering
Object Schizophrenia Problem in Object Role System Design
OOIS '02 Proceedings of the 8th International Conference on Object-Oriented. Information Systems
An Object Data Model with Roles
VLDB '93 Proceedings of the 19th International Conference on Very Large Data Bases
A Study of The Fragile Base Class Problem
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
Refactoring for generalization using type constraints
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
Refactoring to Patterns
The role concept in data models
VLDB '77 Proceedings of the third international conference on Very large data bases - Volume 3
Systematically refactoring inheritance to delegation in java
Proceedings of the 30th international conference on Software engineering
A precise model for contextual roles: The programming language ObjectTeams/Java
Applied Ontology - Roles, an interdisciplinary perspective
Hi-index | 0.00 |
Role objects are a widely recognized design pattern for representing objects that expose different properties in different contexts. By developing a tool that automatically refactors legacy code towards this pattern and by applying this tool to several programs, we have found not only that refactoring to role objects as currently defined produces code that is hard to read and to maintain, but also that the refactoring has preconditions so strong that it is rarely applicable in practice. We have therefore taken a fresh look at role objects and devised an alternative form that solves the exact same design problems, yet is much simpler to introduce and to maintain. We describe refactoring to this new, lightweight form of role objects in informal terms and report on the implementation of our refactoring tool for the JAVA programming language, presenting evidence of the refactoring's increased applicability in several sample programs.