Análise e Transformação de Software
- Análise de programas:
- Extracção de dados
- Armazenamento da informação recolhida
- Exploração do conhecimento.
- Transformação de programas:
- Programação estratégica.
- Técnicas de Slicing.
- Especialização de programas e cálculo parcial.
- Paradigmas para visualização de dados e de conhecimento:
- visualização de informação, de dados e de software.
- modelos de visualização.
- visualização/navegação em árvores, grafos, hiper-cubos, petri-nets.
- visualização/navegação em ontologias.
- animação de algoritmos.
- Exploração de Ambientes de Trabalho usando os paradigmas explicitados nos items acima.
Resultados de Aprendizagem Específicos
- Capacidade de construir front-ends poderosos para a análise de linguagens de programação (ambíguas ou não).
- Capacidade de desenvolver software como uma tarefa de transformar programas e/ou especificações em implementações eficientes.
- Capacidade de utilizar métricas e técnicas de transformação de programas para optimizar programas (e.g. cálculo parcial, detecção de código morto), efectuar debugging de programas (e.g. slicing), melhorar a estrutura dos programas (e.g. refactoring).
- Capacidade de definir testes para software e testar automaticamente programas em diferentes linguagens de programação.
- Capacidade para criar representações visuais adequadas à compreensão clara do conhecimento complexo detido.