A model for widget composition in the OutSystems Platform
| Autor(a) principal: | |
|---|---|
| Data de Publicação: | 2019 |
| Tipo de documento: | Dissertação |
| Idioma: | eng |
| Título da fonte: | Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) |
| Texto Completo: | http://hdl.handle.net/10362/125332 |
Resumo: | Developers use visual programming languages for faster development of user interfaces due to better ease of use, readability, component reusability – widgets –, and an instant preview of the desired effects. However, the most common composition models to form user interfaces are black-box: combine existing widgets to form new widgets, but generally do not allow indiscriminate modification of their internal components. The OutSystems platform provides a What You See Is What You Get (WYSIWYG) experience where developers can build user interfaces by assembling user interface elements from predefined building blocks: the more fundamental and native components (widgets) represent HTML elements, and custom-made building blocks (web blocks) represent reusable compositions. However, web blocks and widgets are not uniform. Currently, through some workarounds, creators can define compositions that, after instantiated, their inside components can be customizable by other developers, but they either do not follow OutSystems’ good practices for creating web applications, do not show the user’s customizations – no preview –, or need expertise that citizen developers do not have. Our objectives with this work are to develop a new composition model for user interface components that allows to customize the properties of the inner elements of reusable compositions at the places where they are instantiated, integrate the model with the platform in a visual and interactive way where creators can control what can be modified, and users can customize respectively while getting a consistent preview. Reusable compositions in the OutSystems language are unique and static. Thus, for developers to be able to change internal components of a composition and get a preview of that change, the underlying models must explicitly receive and transmit properties of the components internal state to the composition elements. The work was validated by usability testing and by comparison between our solution with widgets that are specialized by OutSystems for specific use cases. The new presented approach is faster and more intuitive to use than what is currently offered by OutSystems. We also observed it works best in tandem with mechanisms already in place (e.g., input parameters) to offer more complete reusable compositions. In the end, all objectives were met, providing a working solution which enables users to customize their or other’s web blocks. With this work, reusable composition creators and users will get more control, customization possibilities, and user experience more intuitive, increasing productivity and user satisfaction. |
| id |
RCAP_6cbabdf4c0bf93a322784376d69fd1a1 |
|---|---|
| oai_identifier_str |
oai:run.unl.pt:10362/125332 |
| network_acronym_str |
RCAP |
| network_name_str |
Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) |
| repository_id_str |
https://opendoar.ac.uk/repository/7160 |
| spelling |
A model for widget composition in the OutSystems PlatformLow-code Development PlatformVisual Programming LanguagesWhite box Composition ModelComponent-Based DesignComponent customizationDomínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e InformáticaDevelopers use visual programming languages for faster development of user interfaces due to better ease of use, readability, component reusability – widgets –, and an instant preview of the desired effects. However, the most common composition models to form user interfaces are black-box: combine existing widgets to form new widgets, but generally do not allow indiscriminate modification of their internal components. The OutSystems platform provides a What You See Is What You Get (WYSIWYG) experience where developers can build user interfaces by assembling user interface elements from predefined building blocks: the more fundamental and native components (widgets) represent HTML elements, and custom-made building blocks (web blocks) represent reusable compositions. However, web blocks and widgets are not uniform. Currently, through some workarounds, creators can define compositions that, after instantiated, their inside components can be customizable by other developers, but they either do not follow OutSystems’ good practices for creating web applications, do not show the user’s customizations – no preview –, or need expertise that citizen developers do not have. Our objectives with this work are to develop a new composition model for user interface components that allows to customize the properties of the inner elements of reusable compositions at the places where they are instantiated, integrate the model with the platform in a visual and interactive way where creators can control what can be modified, and users can customize respectively while getting a consistent preview. Reusable compositions in the OutSystems language are unique and static. Thus, for developers to be able to change internal components of a composition and get a preview of that change, the underlying models must explicitly receive and transmit properties of the components internal state to the composition elements. The work was validated by usability testing and by comparison between our solution with widgets that are specialized by OutSystems for specific use cases. The new presented approach is faster and more intuitive to use than what is currently offered by OutSystems. We also observed it works best in tandem with mechanisms already in place (e.g., input parameters) to offer more complete reusable compositions. In the end, all objectives were met, providing a working solution which enables users to customize their or other’s web blocks. With this work, reusable composition creators and users will get more control, customization possibilities, and user experience more intuitive, increasing productivity and user satisfaction.Os programadores usam linguagens de programação visual para um desenvolvimento mais rápido das interfaces de utilizador devido à maior facilidade de uso, legibilidade, reutilização de componentes – widgets – e uma visualização instantânea dos efeitos desejados. No entanto, os modelos de composição mais comuns para formar interfaces de utilizador são black-box: combinam os widgets existentes para formar novos widgets, mas geralmente não permitem modificações indiscriminadas dos seus componentes internos. A plataforma OutSystems fornece uma experiência What You See Is What You Get (WYSIWYG), na qual os programadores podem criar interfaces de utilizador ao montar elementos da interface de utilizador a partir de blocos de construção predefinidos: os componentes mais básicos e nativos (widgets) representam elementos HTML e blocos de construção personalizados (web blocks) representam composições reutilizáveis. No entanto, web blocks e widgets não são uniformes. Atualmente, por meio de soluções alternativas, os criadores podem definir composições que, após instanciadas, os componentes internos podem ser customizados por outros programadores, mas estas não seguem as boas práticas da OutSystems para criar aplicações Web, não mostram as customizações do utilizador – sem preview –, ou são necessários conhecimentos que os programadores podem não possuem. Os nossos objetivos com este trabalho são desenvolver um novo modelo de composição para componentes da interfaces de utilizador que permita customizar as propriedades dos elementos internos das composições reutilizáveis nos locais em que são instanciadas, integrar o modelo à plataforma de maneira visual e interativa, onde os criadores podem controlar o que pode ser modificado e os utilizadores podem customizar respectivamente enquanto obtêm uma visualização consistente. As composições reutilizáveis na linguagem OutSystems são únicas e estáticas. Assim, para que os programadores possam alterar os componentes internos de uma composição e obter um preview dessa alteração, os modelos subjacentes devem receber e transmitir explicitamente propriedades do estado interno dos componentes para os elementos da composição. O trabalho foi validado através de testes de usabilidade e comparação entre a nossa solução e com widgets especializados pela OutSystems para casos de uso específicos. A nova abordagem apresentada é mais rápida e mais intuitiva para usar do que o modelo de composição que é atualmente oferecido pela OutSystems. Também observámos que é mais eficiente usar em conjunto com os mecanismos já existentes (e.g., parâmetros de entrada) para oferecer composições reutilizáveis mais completas. No final, todos os objetivos foram alcançados, fornecendo uma solução funcional que permite aos utilizadores customizar os seus web blocks ou os de outros. Com este trabalho criadores e utilizadores de composições reutilizáveis terão mais controlo, possibilidades de customização e experiência do utilizador mais intuitiva, aumentando a produtividade e a satisfação do programadorSeco, JoãoLourenço, HugoRUNGonçalves, João Ricardo Alpoim2021-09-29T14:52:45Z2019-122019-12-01T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttp://hdl.handle.net/10362/125332enginfo:eu-repo/semantics/openAccessreponame:Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)instname:FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologiainstacron:RCAAP2024-05-22T17:56:26Zoai:run.unl.pt:10362/125332Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireinfo@rcaap.ptopendoar:https://opendoar.ac.uk/repository/71602025-05-28T17:27:35.973680Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) - FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologiafalse |
| dc.title.none.fl_str_mv |
A model for widget composition in the OutSystems Platform |
| title |
A model for widget composition in the OutSystems Platform |
| spellingShingle |
A model for widget composition in the OutSystems Platform Gonçalves, João Ricardo Alpoim Low-code Development Platform Visual Programming Languages White box Composition Model Component-Based Design Component customization Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática |
| title_short |
A model for widget composition in the OutSystems Platform |
| title_full |
A model for widget composition in the OutSystems Platform |
| title_fullStr |
A model for widget composition in the OutSystems Platform |
| title_full_unstemmed |
A model for widget composition in the OutSystems Platform |
| title_sort |
A model for widget composition in the OutSystems Platform |
| author |
Gonçalves, João Ricardo Alpoim |
| author_facet |
Gonçalves, João Ricardo Alpoim |
| author_role |
author |
| dc.contributor.none.fl_str_mv |
Seco, João Lourenço, Hugo RUN |
| dc.contributor.author.fl_str_mv |
Gonçalves, João Ricardo Alpoim |
| dc.subject.por.fl_str_mv |
Low-code Development Platform Visual Programming Languages White box Composition Model Component-Based Design Component customization Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática |
| topic |
Low-code Development Platform Visual Programming Languages White box Composition Model Component-Based Design Component customization Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática |
| description |
Developers use visual programming languages for faster development of user interfaces due to better ease of use, readability, component reusability – widgets –, and an instant preview of the desired effects. However, the most common composition models to form user interfaces are black-box: combine existing widgets to form new widgets, but generally do not allow indiscriminate modification of their internal components. The OutSystems platform provides a What You See Is What You Get (WYSIWYG) experience where developers can build user interfaces by assembling user interface elements from predefined building blocks: the more fundamental and native components (widgets) represent HTML elements, and custom-made building blocks (web blocks) represent reusable compositions. However, web blocks and widgets are not uniform. Currently, through some workarounds, creators can define compositions that, after instantiated, their inside components can be customizable by other developers, but they either do not follow OutSystems’ good practices for creating web applications, do not show the user’s customizations – no preview –, or need expertise that citizen developers do not have. Our objectives with this work are to develop a new composition model for user interface components that allows to customize the properties of the inner elements of reusable compositions at the places where they are instantiated, integrate the model with the platform in a visual and interactive way where creators can control what can be modified, and users can customize respectively while getting a consistent preview. Reusable compositions in the OutSystems language are unique and static. Thus, for developers to be able to change internal components of a composition and get a preview of that change, the underlying models must explicitly receive and transmit properties of the components internal state to the composition elements. The work was validated by usability testing and by comparison between our solution with widgets that are specialized by OutSystems for specific use cases. The new presented approach is faster and more intuitive to use than what is currently offered by OutSystems. We also observed it works best in tandem with mechanisms already in place (e.g., input parameters) to offer more complete reusable compositions. In the end, all objectives were met, providing a working solution which enables users to customize their or other’s web blocks. With this work, reusable composition creators and users will get more control, customization possibilities, and user experience more intuitive, increasing productivity and user satisfaction. |
| publishDate |
2019 |
| dc.date.none.fl_str_mv |
2019-12 2019-12-01T00:00:00Z 2021-09-29T14:52:45Z |
| dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
| dc.type.driver.fl_str_mv |
info:eu-repo/semantics/masterThesis |
| format |
masterThesis |
| status_str |
publishedVersion |
| dc.identifier.uri.fl_str_mv |
http://hdl.handle.net/10362/125332 |
| url |
http://hdl.handle.net/10362/125332 |
| dc.language.iso.fl_str_mv |
eng |
| language |
eng |
| dc.rights.driver.fl_str_mv |
info:eu-repo/semantics/openAccess |
| eu_rights_str_mv |
openAccess |
| dc.format.none.fl_str_mv |
application/pdf |
| dc.source.none.fl_str_mv |
reponame:Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) instname:FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia instacron:RCAAP |
| instname_str |
FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia |
| instacron_str |
RCAAP |
| institution |
RCAAP |
| reponame_str |
Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) |
| collection |
Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) |
| repository.name.fl_str_mv |
Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) - FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia |
| repository.mail.fl_str_mv |
info@rcaap.pt |
| _version_ |
1833596708802527232 |