GUI GENERATION BASED ON LANGUAGE EXTENSIONS A model to generate GUI, based on Source Code with Custom Attributes Marco Monteiro School of Technology and Management, Polytechnic Institute of Leiria, Leiria, Portugal marco@estg.ipleiria.pt Paula Oliveira, Ramiro Gonc ¸alves Engineering Department, University of Tr´ as-os-Montes e Alto Douro, Vila Real, Portugal poliveir@utad.pt, ramiro@utad.pt Keywords: Attribute-Oriented Programming; Source Code Model; GUI Generation; Data-Driven Application; Abstract: Due to data-driven application nature and its increasing complexity, developing its user interface can be a repetitive and time-consuming activity. Consequently, developers tend to focus more on the user interface aspects and less on business related code. In this paper, we’re presenting an alternative approach to graphical user interface development for data-driven applications, that allows developers to refocus on the source code and concentrate their efforts on application core logic. The key concept behind our approach is the generation of concrete graphical user interface from a source code based model, which includes the original source code metadata and non-intrusive declarative language extensions that describes the user interface structure. Concrete user interface implementation will be delegated to specialized software packages, developed by external entities, that provides complete graphical user interfaces services to the application. When applying our approach, we’re expecting faster graphical user interface development. 1 INTRODUCTION In this paper we propose an alternative approach to Graphical User Interface (GUI) development for data- driven applications. Nowadays developers tend to create GUI by composition of various components. Our final goal is to allow developers to define GUI by adding non-intrusive declarative language exten- sions to the original source code and then acquire an external software package to which they delegate the implementation of the concrete GUI. We start by introducing the research problem on section 2, followed by a description of the proposed model on section 3 and conclusions on section 4. 2 OVERVIEW Currently, a large number of projects use Component Based Development (CBD), which allows application development by assembling a set of pre-manufactured components. Each component is a black-box entity, which can be deployed independently and is able to deliver specific services (Szyperski, 1998). GUIs are composed of various graphical elements, such as buttons or input fields, each with its own pre- sentation and behavior aspects that needs to be con- sidered. Presentation concern the appearance and lay- out of GUI elements and behavior is related to the interaction between themselves or between them and the underlying code. Using CBD, each GUI element is mapped to a component and presentation or behav- ior aspects are defined by its properties, methods and events. Also, by using Rapid Application Develop- ment (RAD) tools, GUI layout design is made visu- ally through composition of components. Compared to older processes, the advent of CBD and RAD tools has increased GUI development productivity. However, CBD still hasn’t redeemed its promises of reuse and flexibility (Bruin and Vliet, 2002) and there’s still a lot of risks, challenges and unresolved issues in CBD (Vitharana, 2003). One of those is- sues is related to the process of component compo- sition and configuration. On large or very large ap- plications, the same component can be reused several times on different contexts, which is a major factor to the productivity improvement accomplished by CBD. However, as the number of instances and complexity