Saltar para:
Logótipo
Você está em: Início > M.EIC044

Técnicas Avançadas de Construção de Software

Código: M.EIC044     Sigla: TACS

Áreas Científicas
Classificação Área Científica
OFICIAL Engenharia de Software

Ocorrência: 2021/2022 - 1S

Ativa? Sim
Unidade Responsável: Departamento de Engenharia Informática
Curso/CE Responsável: Mestrado em Engenharia Informática e Computação

Ciclos de Estudo/Cursos

Sigla Nº de Estudantes Plano de Estudos Anos Curriculares Créditos UCN Créditos ECTS Horas de Contacto Horas Totais
M.EIC 24 Plano de estudos oficial 2 - 6 39 162

Língua de trabalho

Inglês

Objetivos

Os estudantes devem ser capazes de identificar e aplicar técnicas avançadas de especificação, síntese e manipulação de artefactos executáveis em diferentes fases de desenvolvimento de software, com o intuito de promover atributos de qualidade, tais como confiabilidade, flexibilidade, testabilidade e performance. Em particular, pretende-se reduzir ao máximo o tempo investido a "programar", automatizando várias facetas dessa atividade.

Resultados de aprendizagem e competências


  • Identificar problemas amenos a técnicas de metaprogramação e desenvolvimento automático;

  • Desenhar modelos/meta-modelos específicos de domínio;

  • Processar instanciações de especificações textuais com combinadores de parsing, bem como respectivos mecanismos de execução;

  • Aplicar técnicas de derivação/geração de código/comportamento automaticamente a partir de especificações de alto nível

  • Aplicar técnicas de aprendizagem computacional à construção de código;

  • Depurar programas por especificação incremental de propriedades;

  • Aplicar técnicas de correção automática de programas;

  • Outras técnicas avançadas de desenvolvimento

Modo de trabalho

À distância

Programa


  • Metaprogramação e engenharia orientada a modelos


    • Modelos, Metamodelos e Meta-Metamodelos


      • Idiomas específicos de domínio

      • Internos

      • Externos

      • Visuais vs baseados em texto

      • Parser combinators


    • Intérpretes e auto-intérpretes

    • Geração de código-fonte e Transpiladores

    • Meta-programação para reflexão e tempo de execução


  • Programação automática


    • Especificações de alto nível

    • Síntese e Derivação de Programas

    • Técnicas de pesquisa de programas

    • Derivação formal

    • Mutação

    • Suportado por Aprendizagem Automática


  • Técnicas de Depuramento Avançadas


    • Reparação Automática de Programas

    • Testes baseados em propriedades e fuzzing

    • Localização de falhas


Bibliografia Obrigatória

Volter, M. ; Model-Driven Software Development: Technology, Engineering, Management, Wiley Software Patterns Series, 2006
Fowler, M. ; Domain Specific Languages, Addison-Wesley Signature Series, 2010

Métodos de ensino e atividades de aprendizagem

Aulas teórico-práticas de exposição e discussão dos tópicos programáticos. Primeiramente, os estudantes irão desenvolver um projeto guiado que incrementalmente resultará num sistema baseado em metamodelos com uma linguagem específica de domínio executável, primeiro por técnicas simples de interpretação e finalmente geração de código via transpilação. Subsequentemente irão desenvolver um projeto integrado que aplique o conjunto restante das técnicas a serem expostas.

Tipo de avaliação

Avaliação distribuída sem exame final

Componentes de Avaliação

Designação Peso (%)
Participação presencial 5,00
Teste 15,00
Trabalho prático ou de projeto 80,00
Total: 100,00

Componentes de Ocupação

Designação Tempo (Horas)
Elaboração de projeto 162,00
Frequência das aulas 39,00
Total: 201,00

Obtenção de frequência

Todas as componentes têm uma classificação mínima de 40%. 

Fórmula de cálculo da classificação final

N = 0.05 * P + 0.15 * T + 0.80 * P

Avaliação especial (TE, DA, ...)

Igual à avaliação normal, excepto a componente de participação

Melhoria de classificação

Através da melhoria do trabalho apresentado, desde que não ultrapasse 4 valores da classificação do teste teórico.
Recomendar Página Voltar ao Topo
Copyright 1996-2025 © Faculdade de Engenharia da Universidade do Porto  I Termos e Condições  I Acessibilidade  I Índice A-Z  I Livro de Visitas
Página gerada em: 2025-06-15 às 08:42:56 | Política de Utilização Aceitável | Política de Proteção de Dados Pessoais | Denúncias