A conceptual model for metadata-based frameworks. - Eduardo Martins Guerra (2010)
Framework can be considered an incomplete software with some points that can be specialized to add application-specific behavior, allowing not only source code reuse but also design reuse. Techniques for developing frameworks evolved, starting from the usage of inheritance and composition and passing through more sophisticated ones, such as reflection and introspection. Recent frameworks employ the strategy to define a specific metadata schema for applications to use in their classes and programming elements, enabling framework behavior customization. Despite this technique is being widely used, there are not models, design patterns or development guidelines that aim to help in the creation of this kind of framework. This thesis proposes a conceptual model for metadata-based frameworks that has the aim to identify appropriate solutions for its internal structure and scenarios where it is suitable for. A pattern language presents design solutions aiming a greater flexibility in the structure of this kind of framework and a collection of architectural patterns proposes scenarios for their usage. Some frameworks were developed by students using the proposed pattern solutions and the results of their usage were assessed using questionnaires. Additionally, an experiment was conducted evaluating the metadata-based framework usage in the identified scenarios, observing the consequences comparatively to approaches without frameworks and with a traditional framework. As a result, software architects and framework developers with this conceptual model should be able to identify situations where the metadata usage is appropriate and to design suitable solutions that provides flexibility in metadata reading and processing.