Disciplina

Área

Área Científica de Metodologia e Tecnologias da Programação > Linguagens de Programação

Activa nos planos curriculares

MEIC-A 2006 > MEIC-A 2006 > 2º Ciclo > Área de Especialização Complementar > Ciência da Computação > Desenvolvimento e Verificação de Software

MMA 2006 > MMA 2006 > 2º Ciclo > Perfis > Matematica da Computação > Metodologia e Tecnologia da Programação > Desenvolvimento e Verificação de Software

Nível

Projecto (30%) + 2 Testes (70%)

Tipo

Não Estruturante

Regime

Semestral

Carga Horária

1º Semestre

3.0 h/semana

1.5 h/semana

147.0 h/semestre

Objectivos

Esta UC pretende cobrir diversos tópicos relacionados com o desenvolvimento de software robusto, incluindo teste, detecção de erros, verificação e metodologias para a construção de código robusto. O foco será nas metodologias mais recentes que permitem o desenvolvimento de software robusto a custo moderado. Pretende-se que esta UC efectue a ligação entre os fundamentos teóricos e a aplicação prática dos diversos tópicos cobertos.

Programa

Técnicas de debugging. Geração automática de testes. Instrumentalização e monitorização em runtime. Detecção de invariantes. Detecção e análise de problemas de desempenho. Métodos de caixa-negra. Introdução à análise estática. Sistemas de tipos. Detecção de erros. Análise de programas. Verificação de modelos.

Metodologia de avaliação

Projecto (30%) + 2 Testes (70%)

Pré-requisitos

Componente Laboratorial

Princípios Éticos

Componente de Programação e Computação

Componente de Competências Transversais

Bibliografia

Principal

Software Abstractions: Logic, Language, and Analysis

D. Jackson

2006

MIT Press


Introduction to Software Testing

P. Amman and J. Offutt

2008

Cambridge University Press