Trends on Adaptive Object Models Research Filipe Figueiredo Correia 1, 2 and Hugo Sereno Ferreira 1, 3 1 ParadigmaXis — Arquitectura e Engenharia de Software, S.A., Avenida da Boavista, 1043, 4100-129 Porto, Portugal {filipe.correia,hugo.ferreira}@paradigmaxis.pt http://www.paradigmaxis.pt/ 2 FEUP — Faculdade de Engenharia da Universidade do Porto, Rua Dr. Roberto Frias, s/n 4200-465, Porto, Portugal filipe.correia@fe.up.pt http://www.fe.up.pt/ 3 MAP-I Doctoral Programme in Computer Science, hugo.ferreira@di.uminho.pt http://www.map.edu.pt/i Abstract. An Adaptive Object Model (AOM) is a meta-modeling dy- namic technique, where a runtime model is used in order to allow for fast prototyping and model experimentation. It uses several levels of abstrac- tion but differs from generative approaches and reflection in it’s degree of dynamism and application domain. We present a set of common AOM-related design patterns, along with several open issues. We also present the current version of Oghma, an AOM-based system that aims to become a framework for information systems development. Our intent was to compare Oghma with other systems of this sort. We believed some of Oghma’s solutions belong to the current state of the art, but also that some benefit could be taken from other researcher’s experiences with AOMs. We have verified our beliefs to some extent, and briefly documented some of Oghma’s solutions that we have not yet found applied to other AOMs. However, Oghma is still not close of being a comprehensive solution. Key words: Adaptive object models, AOM, Model driven engineering, Design patterns, Meta-modeling, UML virtual machine, Oghma 1 Introduction Creating abstractions has been a recurrent solution in the process of building software systems, allowing developers to direct more attention to software design instead of the idiosyncrasies of the platform being used. Model Driven Engineer- ing (MDE) takes abstractions further, focusing on abstracting particular busi- ness domains, rather than only technology related issues [1]. Using this approach, domain models may play an important role on the process of requirements en- gineering, but their usefulness is also extendable to other software engineering activities. 1