• Imprimir
Engenharia de Sistemas e Informação

Professores da Área de Engenharia Sistemas e Informação:

Linhas de Pesquisa:

 

Banco de Dados

A linha de pesquisa de Banco de Dados concentra estudos que tocam em aspectos relacionados a gerência de dados, seja na captura dos dados, armazenamento, consulta ou análise. A gerência de dados tem assumido uma posição de destaque no mundo atual devido às recentes pesquisas em Big Data, onde novas técnicas e métodos vêm sendo propostos para tratar um grande volume de dados sem precedente na história. Em relação à captura, as pesquisas nessa linha compreendem diversos contextos, incluindo o cenário de experimentação científica ou mesmo ambientes de desenvolvimento de software. Para o armazenamento, estudamos diversos modelos de dados, desde o tradicional modelo relacional até o semiestruturado. Diversas aplicações envolvem grandes quantidades de dados, o que torna o processamento de consulta nesse cenário desafiador. A linha de pesquisa de Banco de Dados investiga técnicas eficientes de processamento de consultas, incluindo processamento distribuído em nuvens ou clusters de computadores. Finalmente, no contexto de análise de dados, a linha também investiga e desenvolve técnicas de mineração de dados, fundamentais para descobrir regras, identificar padrões e tendências, normalmente ocultos nesse grande volume de dados, para auxiliar a tomada de decisões.

Engenharia de Software

A linha de pesquisa em Engenharia de Software na UFF busca por métodos, técnicas e ferramentas que auxiliem no desenvolvimento e manutenção de software, contribuindo para seus fundamentos e sua prática. Os temas de pesquisas dessa linha incluem Arquitetura de Software, Gerência de Configuração e Sistemas Multi-Agente. Arquitetura de Software define como os requisitos são mapeados e atendidos pelo sistema em execução. Gerência de Configuração se propõe a controlar a evolução dos artefatos de software, fazendo uso extensivo de técnicas de versionamento. Finalmente, as pesquisas em Sistemas Multi-Agentes aplicam ou adaptam técnicas conhecidas e utilizadas para o desenvolvimento de software orientado a objetos no domínio de sistemas multi-agente.

Inteligência Artificial

A pesquisa em Inteligência Artificial (IA) na UFF envolve o estudo de princípios e técnicas para o desenvolvimento de sistemas computacionais que apresentem comportamento inteligente, bem como o estudo de material fundamental sobre temas como lógica, probabilidade e linguagem. IA na UFF cobre uma variedade de tópicos incluindo representação de conhecimento, aprendizado de máquina, ontologia, processamento de linguagem natural, raciocínio e lógica, sistema de informação, mineração de dados, agentes, sistemas multi-agentes, sistemas de recomendação, inteligência coletiva e inteligência ambiental. Nossa pesquisa enfatiza modelos computacionais que apresentem comportamento inteligente. Áreas de aplicação incluem sistemas de suporte à decisão, planejamento, reconhecimento de padrões e aquisição automática de conhecimento.

Linguagens de Programação

Linguagens de programação formam uma área significativa dentro da ciência da computação pela sua importância teórica e prática. Do ponto de vista teórico, linguagens são elementos fundamentais em computabilidade, semântica de programas e teoria da computação em geral. Do ponto de vista prático, processadores de linguagem como compiladores e interpretadores são ferramentas essenciais ao cotidiano da ciência da computação. Recentemente, a relação entre linguagens de programação e engenharia de software se estreitou ainda mais com o Desenvolvimento Dirigido a Modelos. Além de explorar a relação entre Linguagens de Programação e Desenvolvimento Dirigido a Modelos, é objetivo desta linha de pesquisa investigar aspectos formais da semântica das linguagens de programação e sua relação com métodos formais.

Métodos Formais

Métodos formais são técnicas rigorosas, isto é, fundamentadas matematicamente, para o desenvolvimento de software. Lógica matemática tem um papel fundamental no estudo e desenvolvimento destas técnicas. Essencialmente, pode-se representar um artefato de software como uma teoria numa lógica apropriada e, pelo raciocínio sobre esta teoria, verificarmos ou validarmos o artefato dado. Linguagens de especificação são elementos de primeira classe destas técnicas e sua semântica formal é essencial ao processo de verificação, o que estabelece uma relação fundamental com linguagens de programação