Order-sorted algebra solves the constructor-selector, multiple representation, and coercion problems
Information and Computation
Regular types for active objects
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Covariant deep subtyping reconsidered
ACM SIGPLAN Notices
Covariance and contravariance: conflict without a cause
ACM Transactions on Programming Languages and Systems (TOPLAS)
More dynamic object reclassification: Fickle∥
ACM Transactions on Programming Languages and Systems (TOPLAS)
The Use of Sorts in Algebraic Specifications
Selected papers from the 8th Workshop on Specification of Abstract Data Types Joint with the 3rd COMPASS Workshop on Recent Trends in Data Type Specification
ECOOP '93 Proceedings of the 7th European Conference on Object-Oriented Programming
Predicate Dispatching: A Unified Theory of Dispatch
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
A Radical Reduction of UML's Core Semantics
UML '02 Proceedings of the 5th International Conference on The Unified Modeling Language
A new Concept of Refinement used for Behaviour Modelling with Automata
FME '94 Proceedings of the Second International Symposium of Formal Methods Europe on Industrial Benefit of Formal Methods
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A type system for object models
Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering
A radical revision of UML's role concept
UML'00 Proceedings of the 3rd international conference on The unified modeling language: advancing the standard
Prototypes with multiple dispatch: an expressive and dynamic object model
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
Hi-index | 0.00 |
Models addressing both structure and behaviour of a system are usually quite complex. Much of the complexity is caused by the necessity to distinguish between different cases, such as legal vs. illegal constellations of objects, typical vs. rare scenarios, and normal vs. exceptional flows of control. The result is an explosion of cases causing large and deeply nested case analyses. While those based on the kinds of objects involved can be tackled with standard dynamic dispatch, possibilities for differentiations based on the state of objects have not yet been considered for modelling. We show how the handling of class and state-induced distinctions can be unified under a common subtyping scheme, and how this scheme allows the simplification of models by splitting them into piecewise definitions. Using a running example, we demonstrate the potential of our approach and explain how it serves the consistent integration of static and dynamic specifications.