Koskimies, Kai Evert RossLopes, AntóniaSantos, André L.2009-05-122014-11-142010-03-232014-11-142009-05-12http://hdl.handle.net/10451/14303http://repositorio.ul.pt/handle/10455/3151Object-oriented frameworks play an important role in current software engineering practice. Frameworks enable the development of several applications in a particular domain with high levels of reuse. However, although frameworks are a powerful means for software reuse, their reuse interface is typically difficult to learn, a problem which hinders their full potential. Different strategies can be used to overcome this problem, namely by developing documentation, instantiation tools, or a domain-specific language (DSL). Although DSLs provide the most effective support for using a framework, developing and maintaining them are challenging and laborious tasks. This work proposes a technique based on aspect-oriented programming for enhancing framework reuse interfaces, so that framework-based applications can be developed at a higher abstraction level. A pattern language for aiding the design of such reuse interfaces is also presented. Although the adoption of higher level reuse interfaces facilitates framework usage, this work goes one step further and proposes a technique that, capitalizing on such reuse interfaces, enables automation gains on the development of DSLs for instantiating frameworks. By exploiting the close relation between application concepts and code based on the proposed reuse interfaces, ready-to-use DSLs can be automatically extracted using a generic language workbench. A prototype of such language workbench for building domain-specific modeling languages has been implemented, and the proposed techniques have been evaluated using two real frameworks.engDomain-Specific (Modeling) LanguagesLanguage WorkbenchesAspect-Oriented ProgrammingObject-Oriented FrameworksDomain-Oriented Reuse Interfaces for Object-Oriented Frameworksmaster thesis