Faculdade

Department

Temas de Investigação para alunos 2011/2012

Índice

Projectos Livres

Construção e Análise de Software

Sistemas e Redes de Computadores

Suporte à Decisão e Inteligência Artificial

Tecnologia de Sistemas de Informação

Engenharia de software

Descrição - projectos livres

Construção e Análise de Software

Nome Testes unitários em CxProlog
Destinatários 2º ciclo / 1º ciclo - 3º ano
Resumo

CxProlog é uma implementação de Prolog com diversas extensões que inclui um framework simples para testes unitários. O objectivo deste trabalho é a escrita duma colecção de testes unitários para validar a implementação dos predicados primitivos do próprio CxProlog, face à sua especificação, descrita no manual. Sendo o tempo limitado e as funcionalidades a testar muitas, será dada maior prioridade à validação das partes da linguagem que não fazem parte da especificação ISO-Prolog.

Orientador Artur Miguel Dias, amd "arroba" di.fct.unl.pt
Mais informações

Estar familiarizado com a linguagem de programação JAVA, e ter aprovação nas disciplinas de Programação Orientada por Objectos (POO) e de Algoritmos e Estruturas de Dados (AED).

Disponível?

Sim 

 

Nome Tipos comportamentais em Java
Destinatários 1º ciclo – 3º ano ou 2º ciclo
Resumo Os sistemas de tipos comportamentais para linguagens concorrentes chegaram recentemente às linguagens "mainstream" como o Java. No âmbito académico surgiram várias propostas e protótipos, baseadas em abordagens diferentes. Pretende-se encontrar alguns problemas cuja solução beneficie com os tipos comportamentais, e implementar tal solução em vários dos protótipos disponíveis. O objectivo do exercício é comparar as abordagens de um ponto de vista prático, procurando ao mesmo tempo conhecer mais profundamente cada uma delas. O trabalho insere-se num projecto de investigação financiado pela FCT.
Orientador António Ravara
Requisitos O bolseiro deve gostar de programação concorrente e de análise de programas, e ter conhecimentos básicos de lógica e de sistemas de tipos. O bolseiro deve ser capaz de desenvolver autonomamente trabalho, devidamente enquadrado e orientado.
Competências O bolseiro ficará a conhecer o estado da arte em sistemas de tipos comportamentais para linguagens de programação concorrentes, ganhando experiência na sua utilização para resolver problemas concretos. Tal experiência será útil tanto para o mercado de trabalho (em empresas que desenvolvam software concorrente com necessidade de garantias de correcção) como na continuação de trabalho académico (ao ficar a conhecer um tema "quente" que podem suportar trabalho de pós-graduação).

Disponível?

Sim 

 

Nome Interface entre as linguagens CxProlog e CPython
Destinatários 1º ciclo – 3º ano ou 2º ciclo
Resumo CxProlog é uma implementação de Prolog com diversas extensões, entre as quais interfaces para as linguagens C/C++ e Java. O objetivo deste trabalho é efetuar a primeira fase da criação duma interface para a linguagem Python, concretamente para a implementação mais usada, o CPython. Note que, tal como o Java, o CPython corre sobre uma máquina virtual própria. Além da utilidade da interface em si, esta tarefa contribuirá com mais um exemplo para uma análise comparativa de mecanismos de interligação com diferentes linguagem (identificação de aspetos semelhantes e distintos), em função das características e formas de implementação dessas linguagens.
Orientador Artur Miguel Dias
Requisitos O candidato deverá já ter obtido aprovação nas disciplinas de AED e LAP. A maior parte do código a escrever será em C, porque é nessa linguagem que o CxProlog e o CPython estão escritos.
Competências Investigação dos mecanismos de interoperabilidade de duas linguagens e aplicação dos conhecimentos adquiridos na realização dum protótipo.

Disponível?

Sim 

 

Sistemas e Redes de Computadores

Nome Avaliação sumária do ambiente de computação de elevado desempenho (HPC) da Intel
Destinatários 2º ciclo
Resumo

Avaliação sumária do ambiente de desenvolvimento e suporte à execução paralela de aplicações de elevado desempenho em clusters Linux/Intel High Performance Computing, e inclui a abordagem dos seguintes pontos: i) Arquitectura Intel Cluster Ready; ii) Procedimentos para a instalação e distribuição (deployment) do software; iii) Ferramentas de gestão e monitorização; iv) Linguagens, modelos e bibliotecas de programação (e.g., Intel Cluster Toolkit Compiler Edition, com suporte para MPI e openMP); v) Debuggers, suporte de bibliotecas para cálculo numérico (e.g., MKL) optimizadas (versões sequencial e paralela); vi) Escalonamento (job scheduler), focado na plataforma Sun Grid Engine. Ensaio “em produção” de uma aplicação paralela no ambiente. Breve comparação com outros ambientes idênticos (e.g., Sun Studio, Windows HPC Server 2008 R2/Visual Studio).

Orientador Paulo Lopes, pal "arroba" di.fct.unl.pt
Mais informações

O candidato deverá ter frequentado ou estar a frequentar Sistemas Distribuídos e Sistemas de Operação. Deverá ainda ter interesses que se manifestam pelo gosto e/ou opção por disciplinas da secção de Arquitectura e Sistemas de Computadores, tais como Redes de Computadores, Computação Paralela e Distribuída, Sistemas de Computação em Grid, ou Gestão de Centros de Dados.

Disponível?

Sim 

 

Nome Avaliação sumária do ambiente de computação de elevado desempenho (HPC) da Microsoft
Destinatários 2º ciclo
Resumo

Avaliação sumária do ambiente de desenvolvimento e suporte à execução paralela de aplicações de elevado desempenho em clusters Windows HPC Server 2008 R2; inclui a abordagem dos seguintes pontos: i) Arquitectura da solução; ii) Procedimentos para a instalação e distribuição (deployment) do software; iii) Ferramentas de gestão e monitorização; iv) Linguagens, modelos e bibliotecas de programação (Visual Studio/MPI/openMP); v) Debuggers, suporte de bibliotecas para cálculo numérico (e.g., BLAS, LAPACK) optimizadas (versões sequencial e paralela); vi) Escalonamento (job scheduler, e políticas suportadas, e.g., prioridades, FIFO, backfill). Ensaio “em produção” de uma aplicação paralela no ambiente. Breve comparação com outros ambientes idênticos (e.g., Intel High Performance Computing, Sun Studio).

Orientador Paulo Lopes, pal "arroba" di.fct.unl.pt
Mais informações

O candidato deverá ter frequentado ou estar a frequentar Sistemas Distribuídos e Sistemas de Operação. Deverá ainda ter interesses que se manifestam pelo gosto e/ou opção por disciplinas da secção de Arquitectura e Sistemas de Computadores, tais como Redes de Computadores, Computação Paralela e Distribuída, Sistemas de Computação em Grid, ou Gestão de Centros de Dados.

Disponível?

Sim 

 

Nome Instalação e ensaio de uma plataforma de Cloud Computing: openNebula
Destinatários 2º ciclo
Resumo

O paradigma Cloud Computing (http://en.wikipedia.org/wiki/Cloud_computing) retoma uma antiga proposta de usar serviços computacionais da mesma forma/com a mesma simplicidade com que se usa a rede eléctrica que entra em nossas casas – basta ligar um equipamento (appliance) a uma tomada. Ao contrário da Grid Computing, focada na utilização maciça de recursos em paralelo como forma de resolver problemas difíceis, e que nasceu em centros de investigação, o Cloud Computing é fortemente apoiado pela indústria (IBM, Microsoft, VMware), e por ela usado (Amazon, Google). Neste trabalho é proposta a criação de uma configuração “private cloud” sobre VMware usando o OpenNebula, um toolkit open source, e o seu ensaio com algumas aplicações de demonstração.

Orientador Paulo Lopes, pal "arroba" di.fct.unl.pt
Mais informações

O candidato deverá, preferencialmente, ter frequentado ou estar a frequentar as disciplinas de Sistemas Distribuídos e Sistemas de Operação. Deverá ainda ter interesses que se manifestam pelo gosto e/ou opção por disciplinas tais como Computação Paralela e Distribuída ou Sistemas de Computação em Grid.

OpenNebula (http://www.opennebula.org/start e http://www.opennebula.org/cloud:cloud)
Cloud computing (http://en.wikipedia.org/wiki/Cloud_computing)

Disponível?

Sim 

 

Nome Unified Model Evaluation
Destinatários 2º ciclo
Resumo No seguimento do trabalho realizado na tese de Mestrado “Cooperative Memory and Database Transactions”, o aluno terá como objectivo implementar o modelo unificado numa framework de memoria transaccional em Java denominada Deuce e avaliar este novo modelo numa aplicação mais realista. Para tal terá de modificar um sistema de indexação de palavras muito usado em motores de busca, o Apache Lucene, de forma a usar o modelo unificado aquando a adição de novos termos de busca num ambiente multithreaded.
Orientador João Lourenço / Ricardo Dias
Requisitos Competências preferenciais: Bons conhecimentos da Linguagem de Programação Java; Bons conhecimentos de Base de Dados; Bons conhecimentos da Língua Inglesa (incluindo escrita); Bom currículo escolar.
Competências O aluno será integrado numa equipa de investigação dinâmica. Serão desenvolvidas competências técnicas no tema específico do trabalho e da escrita de documentação, competências humanas para participar activamente em reuniões, para preparação e apresentação pública de trabalhos.

Disponível?

Sim 

 

Nome JTracePattern Interpreter
Destinatários 2º ciclo
Resumo Dispomos actualmente de um sistema que recolhe traços de execução de programas que usam o modelo transaccional em memoria para controlo de concorrência. Por análise dos traços, é possível reconhecer padrões que representam potenciais anomalias. A detecção desses padrões pode ser usada para correcção de bugs em algoritmos de memoria transaccional ou para verificar propriedades de isolamento de transacções. O aluno terá como objectivo desenvolver um interpretador para uma linguagem lógica de descrição de padrões de forma a detectar possíveis anomalias presentes nos traços recolhidos.
Orientador João Lourenço / Ricardo Dias
Requisitos Competências preferenciais: Gosto pela área de compilação; Bons conhecimentos da Linguagem de Programação Java; Bons conhecimentos da Língua Inglesa (incluindo escrita); Bom currículo escolar.
Competências O aluno será integrado numa equipa de investigação dinâmica. Serão desenvolvidas competências técnicas no tema específico do trabalho e da escrita de documentação, competências humanas para participar activamente em reuniões, para preparação e apresentação pública de trabalhos.

Disponível?

Sim 

 

Nome Visualização de Informação para Análise de Programas
Destinatários 2º ciclo
Resumo Durante a execução de um programa com Memória Transaccional (MT), várias transacções são iniciadas e executadas concorrentemente. Ao estudar por análise estática (sem executar o programa) as transacções que irão ser executadas, bem como a sua ordem, é possível detectar anomalias que iriam acontecer em tempo de execução. No contexto de uma tese de Mestrado, foi desenvolvida uma ferramenta que gera potenciais sequências de transacções e indica as anomalias existentes. Esta informação é actualmente apresentada apenas em formato de texto. Pretende-se que o candidato implemente uma ferramenta que apresente uma representação visual da informação gerada pela ferramenta de análise estática anteriormente desenvolvida.
Orientador João Lourenço / Ricardo Dias
Requisitos Competências preferenciais: Bons conhecimentos da Linguagem de Programação Java; Bons conhecimentos da Língua Inglesa (incluindo escrita); Bom currículo escolar.
Competências O aluno será integrado numa equipa de investigação dinâmica. Serão desenvolvidas competências técnicas no tema específico do trabalho e da escrita de documentação, competências humanas para participar activamente em reuniões, para preparação e apresentação pública de trabalhos.

Disponível?

Sim 

 

Nome Simulação do comportamento e evolução do grafo da ASes da Internet
Destinatários 1º ciclo -- 3º ano ou 2º ciclo
Resumo A rede Internet é formada internamente por cerca de 45.000 subredes (ISPs grandes e pequenos, Content Providers, outras instituições). Existem dados publicamente disponíveis sobre o grafo formado pelos ASes da Internet que permitem estudar algumas das suas propriedades através de simulação. Neste caso concreto interessam-nos particularmente dados sobre as falhas das ligações entre os ASes em função dos respectivos tipos. Este conhecimento é fundamental para perceber como vai evoluir a Internet no futuro e qual o peso que essas falhas têm sobre os seus routers. Em particular, para apoio ao desenvolvimento de actividades de um projecto de aplicação de técnicas de "Edge Controlled Routing" à Internet.
Orientador José Legatheaux Martins
Requisitos Gosto por temas de encaminhamento em redes de computadores e capacidade de programação de algoritmos para manipulação e análise de grafos.
Competências O bolseiro poderá adquirir competências sobre simuladores para simulação de redes e comportamento dos routers e dos algoritmos de routing em função do dinamismo da rede Internet.

Disponível?

Sim 

 

Nome Propriedades do grafo de sistemas autónomos da Internet
Destinatários 1º ciclo -- 3º ano ou 2º ciclo
Resumo A rede Internet é formada internamente por cerca de 45.000 subredes (ISPs grandes e pequenos, Content Providers, outras instituições). Existem dados publicamente disponíveis sobre o grafo formado pelos ASes da Internet que permitem estudar algumas das suas propriedades e a respectiva evolução: diâmetro, hierarquização, distribuição do tamanho dos caminhos, clusters, assortativity, etc. Este conhecimento é fundamental para perceber como a Internet está a evoluir e também para perceber qual o comportamento na mesma de diferentes opções de algoritmos de encaminhamento. Em particular, para apoio ao desenvolvimento de actividades de um projecto de aplicação de técnicas de "Edge Controlled Routing" à Internet.
Orientador José Legatheaux Martins
Requisitos Gosto por temas de encaminhamento em redes de computadores e capacidade de programação de algoritmos para manipulação e análise de grafos.
Competências O bolseiro poderá adquirir competências de "Network Science", algoritmos de grafos e sua implementação, algoritmos de encaminhamento para redes de muito larga escala.

Disponível?

Sim 

 

Nome Avaliação sumária do ambiente de computação de elevado desempenho (HPC) da Oracle
Destinatários 2º ciclo
Resumo Avaliação sumária do ambiente de desenvolvimento e suporte à execução paralela de aplicações de elevado desempenho em clusters Oracle HPC Software, Linux Edition, e inclui a abordagem dos seguintes pontos: i) Arquitectura da solução; ii) Procedimentos para a instalação e distribuição (deployment) do software; iii) Ferramentas de gestão e monitorização; iv) Linguagens, modelos e bibliotecas de programação (e.g., Oracle Studio/MPI/openMP); v) Debuggers, suporte de bibliotecas para cálculo numérico (e.g., BLAS, LAPACK) optimizadas (versões sequencial e paralela); vi) Escalonamento (job scheduler), focado na plataforma Oracle Grid Engine. Ensaio “em produção” de uma aplicação paralela no ambiente. Breve comparação com outros ambientes idênticos (e.g., Intel Cluster Toolkit Compiler Edition, Windows HPC Server 2008 R2/Visual Studio).
Orientador Paulo Afonso Lopes
Requisitos O candidato deverá ter frequentado ou estar a frequentar Sistemas Distribuídos e Sistemas de Operação. Deverá ainda ter interesses que se manifestam pelo gosto e/ou opção por disciplinas da secção de Arquitectura e Sistemas de Computadores, tais como Redes de Computadores, Computação Paralela e Distribuída, Sistemas de Computação em Grid, ou Gestão de Centros de Dados.

Disponível?

Sim 

 

Suporte à Decisão e Inteligência Artificial

Nome Interface Gráfica para um Resolvedor de Restrições
Destinatários 2º ciclo
Resumo

O objectivo do projecto é o desenvolvimento de uma interface gráfica para um resolvedor de restrições em domínios contínuos.

Um conjunto de variáveis reais e um conjunto de restrições sobre essas variáveis pode ser visualizado como um conjunto de pontos no espaço (em que cada variável representa uma dimensão) cujos valores satisfazem as restrições. Por exemplo, consideremos as variáveis x, y e z e a restrição 1>=x^2+y^2+z^2. O conjunto de pontos que satisfazem esta restrição pode ser visualizado como uma esfera centrada em (0,0,0) e com raio 1.

Os resolvedores de restrições são aplicações capazes de resolver numericamente as restrições e de calcular soluções aproximadas para o problema. No entanto, devido à complexidade das restrições em domínios contínuos, o processo de resolução é em geral bastante moroso, pelo que algumas destas aplicações têm a capacidade de fornecer resultados parciais em tempo de execução. Os resultados parciais fornecidos pelo resolvedores de restrições são representados numericamente por conjuntos de "caixas" que poderão conter pontos que satisfaçam as restrições (ou em que garantidamente todos os seus pontos satisfaçam as restrições).

No exemplo anterior, poderá inicialmente ser fornecido um resultado parcial que seja um cubo que englobe toda a esfera (por exemplo o cubo [-1,1]x[-1,1]x[-1,1]). Posteriormente, este resultado poderá ser refinado para um conjunto de cubos mais pequenos que definem a esfera com mais precisão sendo os cubos internos à esfera compostos exclusivamente por pontos que satisfazem a restrição.

Durante o projecto deverá ser concebido e implementado uma interface gráfica para um resolvedor de restrições já existente. A interface gráfica deverá permitir ao utilizador a definição das variáveis e restrições do problema, a atribuição de valores para os parâmetros do resolvedor de restrições e a visualização dos resultados fornecidos por este em tempo de execução.

Orientador Jorge Cruz, jc "arroba" di.fct.unl.pt
Mais informações  

Disponível?

Sim 

 

Nome Local Search for Continuous Constraints
Destinatários 2º ciclo
Resumo Completeness and reliability are essential in numerous practical applications such as engineering design, robotics, control, logistics, manufacturing, chemical and biological sciences and computer-aided design to name a few. These problems involve equations, inequalities and objective functions on real variables. Modeling them with constraints allow the users to express their problems in a declarative way and to apply guaranteed solving techniques. In this project, the student will develop and implement local search algorithms to integrate with a continuous constraint solver with the goal of anticipating the localization of particular solutions.
Orientador Jorge Cruz, jc "arroba" di.fct.unl.pt
Mais informações  

Disponível?

Sim 

 

Nome Constraint Propagation for Continuous Domains
Destinatários 2º ciclo
Resumo Completeness and reliability are essential in numerous practical applications such as engineering design, robotics, control, logistics, manufacturing, chemical and biological sciences and computer-aided design to name a few. These problems involve equations, inequalities and objective functions on real variables. Modelling them with constraints allow the users to express their problems in a declarative way and to apply guaranteed solving techniques. In this project, the student will develop and implement constraint propagation algorithms for continuous domains using state-of-the-art techniques based on the monotonic properties of the constraints.
Orientador Jorge Cruz, jc "arroba" di.fct.unl.pt
Mais informações  

Disponível?

Sim 

 

Nome Modelling biochemical dynamic systems
Destinatários 2º ciclo
Resumo This project will focus on the application of numerical integration algorithms to modeling processes such as electrochemical reactions end enzyme kinetics. The core of the project will be the implementation of modeling tools and direct interaction with experimental data. The goal is to familiarize the student with real-life problems in data processing and with scientific calculations, more specifically solving ordinary and partial differential equations (ODE and PDE, respectively) systems. Depending on the student's interests, the task may involve either the implementation of a basic solver or the use of more sophisticated open source solvers.
Orientador Ludwig Krippahl, ludi "arroba" di.fct.unl.pt
Mais informações  

Disponível?

Sim 

 

Tecnologia de Sistemas de Informação

Nome Geo-referenced Access to Points of Interest
Destinatários 2º ciclo
Resumo

Power Line Maintenance Inspection is done based on reports with technical descriptors contained in geo-referenced points of interest (POI). It would be extremely useful to have a smartphone (or similar) application that would allow downloading relevant data in the current localisation context, acquired by GPS. A prototype on Android has already been developed in Albatroz company, and now the goal is to extend it by incorporating upload capabilities with information related to visual anomalies detected (including geo-referenced images locally taken with the device). The application to be developed, in cooperation with Albatroz, includes a server that will interface with a database management system, and a client, where the user interface to select POI is located. Such interface comprises graphical navigation, geographical references, and sorting by priority levels.

Orientador Francisco Azevedo, fa "arroba" di.fct.unl.pt
Mais informações Albatroz enginnering website: www.albatroz-eng.com

Pre-requisites: 
Geo-referenced Information Systems.
WEB Programming. 

Disponível?

Sim 

 

Engenharia de software

Nome Extracção do core do Framework do JUnit4
Destinatários 1º ciclo – 3º ano
Resumo Explorar/estudar o framework JUnit4 e extrair de um "core" que inclua apenas as funcionalidades mínimas. O texto fonte do core a extrair deve estar limpo de todas as outras funcionalidades. Pretende-se também um relatório técnico contendo um levantamento das funcionalidades (concerns) do framework, sua classificação em termos de essenciais/acessórias descrevendo a arquitectura e estrutura de módulos.
Orientador Miguel P. Monteiro
Requisitos - Bom domínio de Java, incluindo tipos genéricos.- Bom domínio (e gosto por) da POO.
Competências Esta tarefa proporciona uma série de competências na área de Engª de S/w:- O JUnit é o "Hello World" dos frameworks OO. Explorá-lo dá experiência e competências nesse tema. - O JUnit é rico em "design patterns". A sua exploração enriquece a experiência nesse tema. - O JUnit é muito usado e conhecido. Um conhecimento aprofundado deste framework é útil para actividades de desenvolvimento/evolução de S/w. - O JUnit é um sistema de teste de S/w. O seu estudo dá competências no tópico do teste de S/w.

Disponível?

Sim