Propostas de Estágio 2011/2012

DEI - FCTUC
Gerado a 2024-04-29 12:20:02 (Europe/Lisbon).
Voltar

Titulo Estágio

Aumento da expressividade de primitivas de consulta/pesquisa na DSL OutSystems

Área Tecnológica

Engenharia de Software

Local do Estágio

Linda-a-Velha, Lisboa, Portugal

Enquadramento

A OutSystems disponibiliza uma plataforma, a Outsystems Agile Platform, para o desenvolvimento, gestão, e operação de aplicações empresariais web e mobile web.

Esta plataforma é desenvolvida e mantida por um grupo de R&D que contém especialistas nas áreas de desenho de linguagens de programação, compiladores, desenho de interfaces ao utilizador e usabilidade.

Um dos objectivos da OutSystems é o de garantir que os programadores de sistemas de informação, que utilizem a Agile Platform, tenham uma produtividade várias vezes superior quando comparada com a utilização de outras tecnologias “main stream”.

Por forma a atingir este objectivo, a OutSystems criou uma DSL (domain specific language). Esta DSL está adaptada à criação e alteração de aplicações web e mobile web. Esta DSL é completamente gráfica, desde a definição do modelo de dados, interface ao utilizador final, processos de negócio, ou mesmo a definição da lógica.

Uma das características da DSL é o facto de esta ter um nível de abstracção elevado e de ser rapidamente apreendida por novos programadores.

Tendo em conta que a linguagem foi criada para a criação e manutenção de aplicações web e mobile web, as primitivas desta que permitem efectuar consulta/pesquisa de dados são de extrema importância.
Existem duas primitivas na linguagem relevantes na consulta/pesquisa de dados: Simple Query e Advanced Query.

1. A Simple Query permite ao programador desenhar uma consulta/pesquisa de uma forma gráfica e sem a necessidade de conhecimentos específicos de SQL (structured query language). Existem outras vantagens desta primitiva quando comparada com a Advanced Query: Por outro lado, o IDE (integrated development environment) da OutSystems consegue inferir os “joins”, aumentando a produtividade dos programadores que usam esta primitiva. O compilador da OutSystems consegue também efectuar optimizações, por forma a que em tempo de execução sejam obtidos apenas os dados estritamente necessários, sem que para tal o programador tenha que os especificar.

2. A Advanced Query é uma primitiva que permite ao programador escrever uma consulta/persquisa em formato textual, com uma sintaxe muito semelhante à do SQL. É utilizada pelos programadores quando a expressividade da primitiva Simple Query não é suficiente para o objectivo pretendido.

Para mais informação relativa a estas duas primitivas, por favor aceder a:
http://www.outsystems.com/help/servicestudio/6.0/Using_Data/Define_Simple_Queries.htm
http://www.outsystems.com/help/servicestudio/6.0/Using_Data/Define_Advanced_Queries.htm


Dado que as Simple Queries têm várias vantagens em relação às Advanced Queries (conforme indicado anteriormente), a OutSystems propõe uma dissertação de mestrado que visa na investigação e alterações à DSL da OutSystems por forma a aumentar a expressividade da primitiva Simple Query.

Objetivo

No âmbito deste projecto será necessário:
1. Apresentar um estudo do estado da arte nos temas apresentados.
2. Efectuar um levantamento das construções/padrões SQL (Advanced Query) mais frequentemente utilizados pelos programadores em projectos OutSystems. A OutSystems contém um repositório com dezenas/centenas de aplicações reais criadas na DSL OutSystems, pelo que o aluno terá um acesso valioso a esta informação.
3. Propor um aumento da expressividade da primitiva Simple Query, por forma a diminuir a necessidade da utilização de Advanced Queries. Deverão ser enumerados quais as novas construções SQL que devem ser suportadas pela Simple Query.
4. Propor um desenho de alteração à primitiva Simple Query, por forma a que esta passe a suportar um subconjunto das construções SQL mais frequentes identificados no ponto 2.
5. Prototipar / implementar no IDE da Agile Platform a extensão da primitiva Simple Query desenhada no ponto 3.
6. Apresentar um relatório da tese de dissertação.

Plano de Trabalhos - Semestre 1

O aluno será inserido no grupo de R&D da OutSystems, na área da DSL (Domain Specific Language) da Agile Platform.
No primeiro semestre é esperado que o aluno apresente um estudo do estado da arte nos temas apresentados (ponto 1.), efectue um levantamento das construções/padrões SQL (ponto 2.) e que proponha um aumento da expressividade da primitiva Simple Query (ponto 3.)
Em Setembro e Outubro de 2011 o aluno ganhará contexto sobre a DSL OutSystems.
Entre Outubro 2011 e Janeiro 2012 será apresentado um estudo do estado da arte e efectuado o levantamento de forma automática / assistida das construções/padrões SQL (Advanced Query) mais frequentemente utilizados. Será ainda criado uma versão preliminar do relatório da tese de dissertação.

Plano de Trabalhos - Semestre 2

No segundo semestre é esperado que o aluno proponha um desenho de alteração à primitiva Simple Query (ponto 4.), prototipe / implemente no IDE da Agile Platform a extensão da primitiva Simple Query desenhada (ponto 5.), e que apresente um relatório da tese de dissertação (ponto 6.).
Entre Janeiro e Fevereiro de 2012 será efectuado o desenho de alteração à primitiva Simple Query.
Entre Fevereiro e Maio de 2012 será Prototipado / implementado no IDE da Agile Platform a extensão da primitiva Simple Query desenhada anteriormente.
Em Junho de 2012 será finalizada a elaboração do relatório final da tese de dissertação.

Condições

Trabalho será realizado nas instalações da OutSystems (Linda-a-Velha).
A OutSystems atribui uma bolsa com dois componentes:
- Bolsa mensal para compensação da regularidade dos alunos (fixa);
- Bolsa anual para compensação dos resultados finais (variável).

Observações

O aluno deverá ter uma média igual ou superior a 14 e demonstrar interesse na área de linguagens de programação e engenharia de software.

Orientador

Lúcio Ferrão
lucio.ferrao@outsystem.com 📩