Inheritance and the development of encapsulated software systems
Research directions in object-oriented programming
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
The point of view notion for multiple inheritance
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
Object-oriented modeling and design
Object-oriented modeling and design
From objects to classes: algorithms for optimal objection-oriented design
Software Engineering Journal
Using role components in implement collaboration-based designs
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Law-governed regularities in object systems: part I: an abstract model
Theory and Practice of Object Systems
The Art of the Metaobject Protocol
The Art of the Metaobject Protocol
An Incremental Class Reorganization Approach
ECOOP '92 Proceedings of the European Conference on Object-Oriented Programming
ECOOP '93 Proceedings of the 7th European Conference on Object-Oriented Programming
Objects with Multiple Most Specific Classes
ECOOP '95 Proceedings of the 9th European Conference on Object-Oriented Programming
Modeling Subobject-based Inheritance
ECCOP '96 Proceedings of the 10th European Conference on Object-Oriented Programming
An Aristotelian understanding of object-oriented programming
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Hi-index | 0.01 |
Although seemingly simple and intuitive, the object model still contains ambiguous notions. For example, inheritance has been proved to convey two different meanings depending on whether it is behavior or implementation that is inherited. Another conceptually simple notion, multiple inheritance, has not yet been clearly formalized.In this paper, we start by looking at relationships between sibling classes (two immediate subclasses of a common parent). Siblings can be combined through multiple inheritance, or on the contrary, they can be mutually exclusive. We call the relation between incompatible siblings opposition, and show how it could help in formalizing object models.We then consider widening the explicit use of negation in object models. We argue that negative assertions could be used to validate the creation of new classes to ensure they are compatible with the intended uses of existing classes. Negation leads us to consider the implicit assumption behind object models, we propose to shift from the closed world assumption to the open world assumption.