Work With Us

We are always looking for bright people interested in the Engineering of Interactive Systems.

We list some open topics, suitable for thesis work, below:


Título: Editor de padrões de comportamento

Este projecto tem como objectivo desenvolver um editor para a definição de comportamentos a verificar no mapa de navegação de uma interface. O editor será integrado na IVY workbench (http://ivy.di.uminho.pt), uma ferramenta baseada em modelos para a análise automatizada de sistemas interactivos em desenvolvimento na Universidade do Minho.
Duas abordagens alternativas podem ser consideradas. Uma, identificar uma linguagem gráfica adequada (vários têm sido propostas na literatura). Outra, a definição das propriedades 'por exemplo'. Isto é, a partir de uma série de exemplos de comportamentos da interface, deduzir uma propriedade que os caracterize. O objectivo é analisar as duas alternativas, escolhendo a mais promissora e desenvolver um editor que a suporte. Para a implementação prevê-se a utilização de JavaFX, o que permitira a execução do editor quer em ambiente Java quem em ambiente Web.

Título: Testes de interfaces baseados em modelos

Com este projecto pretende-se continuar o desenvolvimento da ferramenta TOM, uma ferramenta de testes baseados em modelos. Em particular, pretende-se realizar uma análise comparativa entre as características do TOM e de outras ferramentas actualmente disponíveis (por exemplo, ModelJUnit). Numa primeira fase será feito um levantamento das ferramentas existentes. Numa segunda fase será definido um caso de estudo e avaliada a utilização de cada uma das ferramentas identificadas. COmo resultado final pretende-se não só o resultado da comparação como um roadmap para o desenvolvimento futuro da TOM.

Title: Android Apps

This thesis will create Android Apps simulating interactive medical devices (e.g., insulin pumps and injectors), cars, or robotic applications. The Apps will be based on realistic prototypes available with our PVSio-web prototyping toolkit (http://www.pvsioweb.org/). A library of user interface widgets for common display elements and controls will be developed as part of the thesis. The prototypes will be developed using Android Studio (https://developer.android.com/studio/index.html).

Title: Automated user interface testing tool

This thesis will extend our PVSio-web prototyping toolkit (http://www.pvsioweb.org/) with a new plugin for automated testing of user interface prototypes. The extension will allow developers to:
* Record interactions (e.g., button clicks) carried out by the user with a device prototype executed in PVSio-web.
* Playback recorded tests, by highlighting on the PVSio-web prototype which input widgets have been used by the user.
* Open, Import, and Save pre-recorded interaction logs, e.g., based on logs stored in real devices.
The implementation will be in JavaScript, and will build on functions provided by d3 (https://d3js.org/) and Jasmine (https://jasmine.github.io/). Prototypes based on real medical devices used in hospitals will be used as example application.

Title: 3D Virtual Scenarios Builder

This thesis will extend our PVSio-web prototyping toolkit (http://www.pvsioweb.org/) with a new front-end for building and simulating 3D virtual scenarios. The aim is to provide developers with tools for exploring and demonstrating the context within which a device is used (e.g., a hospital, a cockpit, etc). The simulations will include virtual persons as in classical social life simulator games, such as the Sims. Simulations can be interactive (e.g., actions carried out by the virtual persons are controlled with mouse clicks), or guided by pre-recorded scripts. The rendering engine will be based on the Unity game engine (https://unity3d.com/)

Title: Library of user interface widgets

This thesis will extend our PVSio-web prototyping toolkit (http://www.pvsioweb.org/) with a library of programmable widgets (displays and controls) for specific application domains. The visual appearance of the widgets is based on those used in real systems, e.g., in car consoles, medical device front panels, flight decks. Widgets will be developed in Javascript, and will provide APIs suitable to control the visual appearance and the behavior of the widgets. For example, a widget representing the speedometer of a car will provide APIs for setting up the speed value rendered by the speedometer, and APIs to define the visual style (e.g., color, range of values) of the speedometer. Another example is a widget representing a steering wheel, that will provide APIs for signalling changes in the steering wheel's rotation and getting the rotation angle value. Integration with external controllers, such as Joypads, will also be introduced as part of the developed library.

Título: Ferramenta de modelação UML

A linguagem UML é neste momento um standard na academia e na indústria, devido à sua grande relevância. Em unidades curriculares como Desenvolvimento de Sistemas de Software, é leccionada esta linguagem de uma forma focada na prática. Assim, a utilização de ferramentas de suporte é essencial.
A ferramenta Visual Paradigm tem sido a mais utilizada neste contexto, dadas as suas capacidades. No entanto, existem duas características desta ferramenta que poderiam ser melhoradas neste contexto. Por um lado, a ferramenta dispõe de um grande conjunto de funcionalidades que não são exploradas durante as aulas, dada a sua especificidade. Isto faz com que a ferramenta se torne mais pesada, e mais complexa de utilizar. Por outro lado, a natureza comercial da ferramenta impede a sua extensão, e adaptação das funcionalidades.
O objectivo desta dissertação é estabelecer as fundações para o desenvolvimento de uma ferramenta de suporte ao UML, que no longo prazo poderia complementar/substituir a ferramenta Visual Paradigm. Como tal, inclui como tarefas base:
* Definição de estruturas de suporte a modelos UML;
* Definição das tecnologias de suporte;
* Implementação de uma framework de suporte aos modelos;
Existe um conjunto de tarefas opcionais/alternativas que poderão também ser tidas em conta, como:
* Escolha de um ou mais tipos de diagramas para abordar;
* Implementação de editores gráficos (tecnologia a decidir);
* Implementação de mecanismos para importação/exportação de modelos;
* Outras funcionalidades propostas pelo aluno.

Título Framework para desenvolvimento de aplicações hibridas web/desktop

As soluções de software actuais, raramente são baseadas simplesmente em tecnologias desktop. Neste momento, o foco Web têm uma relevância que não pode ser negligenciada. No entanto, existem situações em que o trabalho necessário para implementar soluções em tecnologias Web, apesar de relevante, é demasiado custoso face aos ganhos. Surgem assim, abordagens que procuram facilitar a integração dos dois mundos. Uma tecnologia que explora este tipo de abordagens, são as Java applets, consistindo em aplicações Java que podem ser executadas no browser. No entanto, este tipo de aplicações levanta vários problemas (e.g. problemas de segurança relacionados com a utilização de plugins), que levaram a que esta tecnologia esteja a ser abandonada.
Face a isto, surgiu a ideia de criar a framework CrossFX, uma framework para o desenvolvimento de aplicações híbridas. Com esta framework é possível desenvolver aplicações nativamente em Java SE, que podem ser acedidas também através de um browser, recorrendo a tecnologias Web  (i.e. HTML, JavasSript e CSS). Desta forma elimina-se, por um lado, a complexidade de desenvolver uma aplicação web nativa, e por outro, os problemas de segurança pela instação de plugins no browser. Para além disso, será possível desenvolver uma só aplicação desktop, que pode ser executada simultaneamente como standalone, ou via browser.
O objectivo desta dissertação é a implementação desta framework, a partir de experiências já realizadas com o desenvolvimento deste tipo de aplicações. As tarefas base incluem:
* Exploração da plataforma JavaFX e webview, e integração de páginas web;
* Exploração da framework CrossFX, e definição de um conjunto de requisitos iniciais;
* Implementação de um controller unificado para interagir com a página web e com a aplicação nativa;
* Disponibilização da solução, e implementação de uma aplicação sobre a framework.
Existe um conjunto de tarefas opcionais/alternativas que poderão também ser tidas em conta, como:
* Unificação de funcionalidades do browser e da framework (e.g. Abrir ficheiro), para permitir uma utilização mais transparente para o utilizador;
* Outras funcionalidades propostas pelo aluno.