Propostas de Estágio 2012/2013

DEI - FCTUC
Gerado a 2024-05-03 10:13:38 (Europe/Lisbon).
Voltar

Titulo Estágio

Criação de um modulo/ferramenta de programação visual para YVision

Área Tecnológica

Engenharia de Software

Local do Estágio

Caparica

Enquadramento

YVision
O YVision é o resultado de 10 anos de investigação e desenvolvimento pela YDreams em interacção homem-máquina. A Natureza inspira-nos para criar sistemas que transcendem as interfaces tradicionais: mundos sintéticos que podem ser tocados, puxados ou empurrados, os quais são embebidos de conteúdos contextualizados.

O desenvolvimento destas aplicações requer conhecimento avançado nas áreas de visão computacional, síntese de imagem, simulação de física, inteligência artificial e multi-processamento, tornando o seu desenvolvimento muito dispendioso. Esta complexidade resulta também num processo muito sujeito a erros, pondo em causa a robustês das aplicações.

O departamento de I&D da YDreams desenvolveu esta plataforma onde as funcionalidades de todas estas áreas foram encapsuladas em componentes reutilizáveis, e com uma arquitectura comprovada. Um extenso trabalho foi feito no desenho da plataforma de forma a evitar a “customization pitfall” onde, uma vez terminado o desenvolvimento de uma aplicação, se torna muito difícil e dispendioso fazer alterações.

Arquitectura
O YVision define uma arquitectura baseada em componentes, em conjunto com o padrão “service locator“. Esta abordagem promove uma melhor separação de responsabilidades na criação de aplicações pois cada componente deve representar um aspecto particular e, consequentemente, as dependências entre eles são mais facilmente conhecidas e reduzidas ao mínimo necessário. Os componentes são agregados em objectos do mundo sintético (World Objects).

O comportamento e o tempo de vida de um World Object é definido por comportamentos compostos hierarquicamente numa árvore (Behavior Tree).

O uso de árvores de comportamentos mostra-se mais flexível e menos complicado do que as tradicionais máquinas de estados. Além disso as árvores de comportamentos são “Turing complete”, ou seja, permitem qualquer cálculo sobre uma sequência de dados.

As árvores de comportamento tornam muito fácil a paralelização da sua execução, o que permite tirar o máximo partido dos CPUs modernos com vários cores.

Desenvolvimento
O YVision é desenvolvido em Microsoft .NET, uma plataforma de desenvolvimento que suporta várias linguagens de programação (C#, VB.NET, C++/CLI, F#, IronPython, IronRuby, etc.). Inclui uma biblioteca de classes bastante extensa e serviços de segurança, gestão de memória e excepções, acessíveis a qualquer uma das linguagens de programação.

O YVision é compatível com Mono#, o que permite a sua execução em vários sistemas operativos. Actualmente a sua execução é suportada em Windows (32 e 64 bits) e Mac OS X.

O YVision SDK inclui integração para os ambientes de desenvolvimento Microsoft Visual Studio e MonoDevelop . Esta integração inclui templates para código (projectos, classes e fragmentos), documentação de referência e visualizadores de debug, tornando ainda mais fácil o desenvolvimento nestes ambientes que já incluem outras funcionalidades como: colorização do código, preenchimento automático (auto-completion) e debugger integrado.

Actualmente o desenvolvimento é possível tanto em Windows como em Mac OS X.

Objetivo

O desenvolvimento de uma interface gráfica para o YVision apresenta desafios que vão para além de um simples editor de mundos sintéticos 3D. Pretende-se provir o utilizador final de uma ferramenta gráfica que permita especificar todos os aspectos do mundo sintético que pretende criar. Esta ferramenta gráfica torna-se então numa ferramenta de programação visual.
Dada a natureza da arquitectura do YVision e recentes avanços em Domain-Specific Languages (DSL), acreditamos ser possível desenvolver uma interface gráfica que seja um híbrido entre um ambiente de desenvolvimento e um editor 3D, onde será possível a um público alargado de utilizadores, nomeadamente designers, programadores, investigadores e outros criativos, desenharem experiências e mundos interactivos com comportamentos complexos e “Turing complete”.
Nesta proposta de tese de mestrado ou estagio estudar-se-á o estado da arte em DSLs e ambientes de programação, serão levantados mais requisitos, conceptualizar-se-á uma arquitectura para o interface gráfico que será concretizado numa prova de conceito funcional.

Plano de Trabalhos - Semestre 1

Estudo da plataforma YVision, Estudo do estado da arte em ferramentas de programação visual. Estas tarefas terão a duração do primeiro semestre.
As tarefas serão feitas acompanhadas por elementos da equipa de desenvolvimento do YVision. Este acompanhamento será feito de forma presencial na YDreams ou de forma remota consoante a preferência do estagiário.
No caso de acompanhamento remoto serão usadas ferramentas de colaboração online: reuniões via skype, google docs.

Plano de Trabalhos - Semestre 2

Concepção e especificação da Ferramenta de Programação Visual - 6 semanas
Desenvolvimento do prototipo da Ferramentas de Programação Visual - 10 semanas
Testes e Avaliações do prototipo Ferramentas de Programação Visual - 2 semanas
Relatório - 2 semanas

Condições

Competêncas:
Linguagens de programação orientadas por objectos, linguagens de programação funcionais, geometria 3d, computação gráfica, padrões de desenho para interfaces homem-maquina. preferência por experiência de desenvolvimento em .net framework, c++, c#.

Condições:
Inserção numa equipa jovem e dinâmica num ambiente de trabalho profissional.
projecto inovador com mercado global.
Subsidio de alimentação.
Formação no âmbito da programação em YVision (plataforma proprietaria da YDreams) incluindo conceitos fundamentais de programação de aplicações de realidade aumentada e interacção natural.

Orientador

Antão Almada
antao.almada@ydreams.com 📩