1,050 research outputs found
Collaboration Between Developers and Designers
Customer-facing applications are essential for businesses. Therefore, a good user experience
is fundamental for their success in the market. Companies nowadays employ highly
specialized people in front-end development and User Experience (UX) & User Interface
(UI) design to achieve this goal. Their collaboration is critical, and raises some efficiency
challenges in the software industry. This work focuses and is applied on OutSystems, a
low-code platform that inherits these challenges.
While there are some code-generation plugins for popular design tools, these do
not generate code for low-code platforms. Therefore, the transformation process from
design to development is done 100% manually, which is highly inefficient. Our goal is to
accelerate this transformation process from a design model to a development model to
mitigate this inefficiency.
To do so, we developed an approach using model transformation techniques that automates
part of the process. Namely, it automates the generation of application pages/screens
by composing the screen mockups in a design technology (such as Figma or Sketch) with
a library of reusable UI components to instantiate the design in a front-end technology
(such as OutSystems).
Our approach was validated by a professional team of front-end developers from an
established enterprise-grade low-code platform who applied and evaluated this work on
some of their past real projects. Preliminary results show an overall acceptance of the developed
tool with a possible increase of 150% to 400% in the value that they can deliver
without investing more effort than they already do today. This mitigates a bottleneck
faced by development teams today. To increase the value, they could offer to customers
(e.g., by producing more application screens in the same period), they would need to
recruit new collaborators whose skill set is high on demand. This work delivers major efficiency
improvements and lessens the severe lack of qualified professionals, by allowing
existing ones to produce more without investing further effort.As aplicações são algo essencial para as empresas. Uma boa experiência de utilizador é
fundamental para o sucesso destas aplicações no mercado. Hoje em dia, para alcançar este
objetivo, as empresas empregam pessoas altamente especilaizadas em desenvolvimento
Front-End e de UX (User Experience) & UI (User Interface) design. A colaboração destas
equipas é crucial e de momento apresenta desafios de eficiência na indústria do software.
Este trabalho foca-se na OutSystems, uma plataforma low-code, que tem subjacente estas
ineficiências que estão presentes em toda a industria.
Embora atualmente existam alguns plugins de geração de código para as ferramentas
de design populares, estes não geram código para plataformas low-code. Portanto, o
processo de transformação de design para desenvolvimento é um processo 100% manual,
o que resulta em perdas de eficiência que serão refletidas no valor final entregue aos
clientes. O nosso objetivo é acelarar este processo de conversão de um modelo de design
para um modelo de desenvolvimento Front-End para mitigar esta ineficiência.
Para tal, desenvolvemos uma abordagem utilizando técnicas de transformação de modelos
que automatizam parte do processo. Nomeadamente, este automatiza a geração de
páginas/ecrãs de aplicações através da composição de mockups de ecrãs numa tecnologia
de design (como o Sketch) com uma biblioteca de componentes de UI reutilizáveis para
instanciar o design numa tecnologia Front-End (como a OutSystems).
A nossa abordagem foi validada por uma equipa profissional de desenvolvimento
Front-End de uma plataforma low-code de nível empresarial que aplicaram e avaliaram
o trabalho em projetos passados reais da equipa. Os resultados preliminares mostram
uma aceitação global da ferramenta desenvolvida, com um possível aumento entre 150%
a 400% no valor que conseguem oferecer.
Isto permite mitigar um ponto de fricção que as equipas de desenvolvimento encontram
de momento. Para aumentar o valor que a equipa consegue entregar aos clientes
(por exemplo, através da produção de mais ecrãs no mesmo período de tempo), estes
necessitariam de empregar novos colaboradores cujas habilidades têm elevada procura.
O nosso trabalho oferece uma alternativa mais económica para o aumento da eficiência e
ao mesmo tempo diminui o impacto da escassez de profissionais qualificados, ao permitir que os já existentes consigam produzir mais sem investimento adicional da sua parte
Using Workflows to Automate Activities in MDE Tools
Le génie logiciel a pour but de créer des outils logiciels qui permettent de résoudre des
problèmes particuliers d’une façon facile et efficace. À cet égard, l’ingénierie dirigée
par les modèles (IDM), facilite la création d’outils logiciels, en modélisant et transformant
systématiquement des modèles. À cette fin, l’IDM s’appuie sur des workbenches
de langage : des environnements de développement intégré (IDE) pour modéliser des
langages, concevoir des modèles, les exécuter et les vérifier. Mais l’utilisation des outils
est loin d’être efficace. Les activités de l’IDM typiques, telles que la création d’un
langage de domaine dédié ou créer une transformation de modèles, sont des activités
complexes qui exigent des opérations souvent répétitives. Par conséquent, le temps de
développement augmentate inutilement. Le but de ce mémoire est de proposer une approche
qui augmente la productivité des modélisateurs dans leurs activités quotidiennes
en automatisant le plus possible les tâches à faire dans les outils IDM. Je propose une
solution utilisant l’IDM où l’utilisateur définit un flux de travail qui peut être paramétré
lors de l’exécution. Cette solution est implémentée dans un IDE pour la modélisation
graphique. À l’aide de deux évaluations empiriques, je montre que la productivité des
utilisateurs est augmentée et amééliorée.Software engineering aims to create software tools that allow people to solve particular
problems in an easy and efficient way. In this regard, Model-driven engineering
(MDE) enables to generate software tools, by systematically modeling and transforming
models. In order to do this, MDE relies on language workbenches: Integrated Development
Environment (IDE) for engineering modeling languages, designing models executing
them and verifying them. However, the usability of these tools is far from efficient.
Common MDE activities, such as creating a domain-specific language or developing
a model transformation, are nontrivial and often require repetitive tasks. This results
in unnecessary risings of development time. The goal of this thesis is to increase the
productivity of modelers in their daily activities by automating the tasks performed in
current MDE tools. I propose an MDE-based solution where the user defines a reusable
workflow that can be parameterized at run-time and executed. This solution is implemented
in an IDE for graphical modeling. I also performed two empirical evaluations in
which the users’ productivity is improved
Traceability support in software product lines
Dissertação apresentada na Faculdade de Ciências e Tecnologia da Universidade Nova de Lisboa para a obtenção do grau de Mestre em Engenharia Informática.Traceability is becoming a necessary quality of any modern software system. The
complexity in modern systems is such that, if we cannot rely on good techniques and
tools it becomes an unsustainable burden, where software artifacts can hardly be linked
to their initial requirements.
Modern software systems are composed by a many artifacts (models, code, etc.).
Any change in one of them may have repercussions on many components. The
assessment of this impact usually comes at a high cost and is highly error-prone. This
complexity inherent to software development increases when it comes to Software
Product Line Engineering. Traceability aims to respond to this challenge, by linking all
the software artifacts that are used, in order to reason about how they influence each
others.
We propose to specify, design and implement an extensible Traceability Framework
that will allow developers to provide traceability for a product line, or the possibility to
extend it for other development scenarios. This MSc thesis work is to develop an
extensible framework, using Model-Driven techniques and technologies, to provide
traceability support for product lines. We also wish to provide basic and advanced
traceability queries, and traceability views designed for the needs of each user
Digital Ecosystems: Ecosystem-Oriented Architectures
We view Digital Ecosystems to be the digital counterparts of biological
ecosystems. Here, we are concerned with the creation of these Digital
Ecosystems, exploiting the self-organising properties of biological ecosystems
to evolve high-level software applications. Therefore, we created the Digital
Ecosystem, a novel optimisation technique inspired by biological ecosystems,
where the optimisation works at two levels: a first optimisation, migration of
agents which are distributed in a decentralised peer-to-peer network, operating
continuously in time; this process feeds a second optimisation based on
evolutionary computing that operates locally on single peers and is aimed at
finding solutions to satisfy locally relevant constraints. The Digital
Ecosystem was then measured experimentally through simulations, with measures
originating from theoretical ecology, evaluating its likeness to biological
ecosystems. This included its responsiveness to requests for applications from
the user base, as a measure of the ecological succession (ecosystem maturity).
Overall, we have advanced the understanding of Digital Ecosystems, creating
Ecosystem-Oriented Architectures where the word ecosystem is more than just a
metaphor.Comment: 39 pages, 26 figures, journa
Using formal methods to develop WS-BPEL applications
In recent years, WS-BPEL has become a de facto standard language for orchestration of Web Services. However, there are still some well-known difficulties that make programming
in WS-BPEL a tricky task. In this paper, we firstly point out major loose points of the WS-BPEL specification by means of many examples, some of which are also exploited
to test and compare the behaviour of three of the most known freely available WS-BPEL engines. We show that, as a matter of fact, these engines implement different
semantics, which undermines portability of WS-BPEL programs over different platforms. Then we introduce Blite, a prototypical orchestration language equipped with a formal
operational semantics, which is closely inspired by, but simpler than, WS-BPEL. Indeed, Blite is designed around some of WS-BPEL distinctive features like partner links, process termination, message correlation, long-running business transactions and compensation handlers. Finally, we present BliteC, a software tool supporting a rapid and easy development of WS-BPEL applications via translation of service orchestrations written in Blite into executable WS-BPEL programs. We illustrate our approach by means of a running example borrowed from the official specification of WS-BPEL
Panning for gold: designing pedagogically-inspired learning nuggets
Tools to support teachers and learning technologists in the creation of effective learning designs are currently in their infancy. This paper describes a metadata model, devised to assist in the conception and design of new learning activities, that has been developed, used and evaluated over a period of three years. The online tool that embodies this model was not originally intended to produce runtime executable code such as IMS-LD, but rather focussed on assisting teachers in the thought processes involved in selecting appropriate methods, tools, student activities and assessments to suit the required learning objectives. Subsequently, we have modified the RELOAD editor such that the output from our tool can be translated into IMS-LD. The contribution of this paper is the comparison of our data model with that of IMS-LD, and the analysis of how each can inform the other
- …