Propostas atribuídas ano letico 2025/2026

DEI - FCTUC
Gerado a 2025-08-31 18:11:54 (Europe/Lisbon).
Voltar

Titulo Estágio

SRS Advanced Search: Motor de Pesquisa Avançada de Código e outros Artefactos de Software

Área Tecnológica

Web Semântica, Processamento de Linguagem Natural, Engenharia de Software

Local do Estágio

DEI

Enquadramento

O sistema SRS: Semantic Reuse System (http://kis-cms.dei.uc.pt/projects/srs), desenvolvido no laboratório de Knowledge and Intelligent Systems do grupo CMS do CISUC, é uma plataforma para a aquisição, gestão e reutilização do conhecimento que é gerado durante o desenvolvimento de software. Este conhecimento provém de vários elementos tais como código, documentos e diagramas UML. O sistema tira partido das tecnologias disponibilizadas pela Semantic Web para a representação e categorização do conhecimento. A plataforma assume a forma de um sistema centralizado que é acedido por várias aplicações cliente, que vão desde as aplicações de gestão do conhecimento na plataforma até plug-in’s integrados em aplicações ligadas ao desenvolvimento de software.

A reutilização de conhecimento é hoje em dia um desafio da maior importância para as empresas de desenvolvimento de software, à medida que os projectos de desenvolvimento de software crescem em termos de tamanho, complexidade e número de tecnologias envolvidas. Para que a reutilização de conhecimento seja uma realidade é necessário criar as condições que permitam aos programadores aceder facilmente a todo o conhecimento disponível. A pesquisa de recursos é por isso um ponto fundamental em todo este processo, uma vez que é o principal meio de acesso a toda a informação partilhada, dentro e fora das organizações. Existe assim a necessidade de criar mecanismos de pesquisa cada vez mais eficientes e adequados às características do conhecimento a que esta se dirige. Em particular, na área de desenvolvimento de software, grande parte do conhecimento pesquisado apresenta características específicas, nomeadamente o código fonte e os documentos técnicos, que permitem focar a pesquisa nos parâmetros mais relevantes para o programador.

http://www.google.com/codesearch

  http://www.exampledepot.com/

  http://forums.sun.com/

  http://www.google.com

  http://www.wolframalpha.com/

Objetivo

O objectivo desta dissertação é o desenvolvimento de funcionalidades de pesquisa avançada dentro da plataforma SRS que permitam ir além da pesquisa comum baseada em palavras-chave. Actualmente, a pesquisa de conhecimento na plataforma abrange o conhecimento armazenado no repositório central da organização e/ou em repositórios online (Google Code Search , Java Developers Almanac  e Sun Forums ), sendo a pesquisa feita de forma idêntica à pesquisa num motor de pesquisa como o Google . Pretende-se enriquecer este processo de pesquisa com mecanismos que permitam ao utilizador realizar pesquisas mais complexas. Este tipo de pesquisa mais avançada poderá tirar partido das especificidades dos vários tipos de recursos e da forma como estes se relacionam para focar a pesquisa nos parâmetros realmente importantes para o programador. Alguns exemplos seriam a pesquisa de classes que implementam determinados interfaces, métodos que seguem uma determinada assinatura, documentos que especificam determinados módulos, etc. Para que este processo não se torne demasiado complexo para o programador, a sintaxe da pesquisa tem de ser simultaneamente poderosa e simples. Em última instância, seria interessante que o sistema conseguisse dar resposta a pequenas perguntas em linguagem natural, o que coloca o desafio num outro patamar, mais interessante para quem usa e para quem desenvolve. Por outro lado, a apresentação dos resultados da pesquisa é um ponto que não deve ser descurado. A forma como a informação é apresentada ao programador é determinante para o sucesso de todo o processo. Desta forma, pretende-se também explorar técnicas de selecção e extracção da informação relevante para a pesquisa dentro dos resultados obtidos, de forma a direccionar a atenção do programador para a informação que este realmente procura.

Embora fugindo um pouco ao tema em questão e apresentando um nível de complexidade bastante alto, uma das ferramentas que poderá servir de inspiração para este trabalho é o motor de pesquisa Wolfram Alpha , que permite recolher um conjunto de conhecimento sistemático a partir de perguntas a formulações colocadas pelo utilizador. 

Plano de Trabalhos - Semestre 1

Revisão Bibliográfica

Estudo da Plataforma SRS

Estudo das Ferramentas e Tecnologias de Desenvolvimento

Análise e Especificação do Protótipo

Plano de Trabalhos - Semestre 2

Implementação do Protótipo

Testes e Experimentação do Protótipo

Elaboração da Dissertação

Condições

O estágio não é remunerado.

O local de trabalho será o laboratório de investigação do grupo CMS do CISUC.

Orientador

Paulo Jorge de Sousa Gomes
pgomes@dei.uc.pt 📩