Qualidade do Software

Objectivos

Saber:
- Componentes de um sistema de gestão da qualidade (SGQ)
- Modelos de qualidade de software e sua avaliação
- Verificação e validação
- Princípios, objectivos e conceitos fundamentais da reengenharia de software
- Software legado
- Técnicas e ferramentas de engenharia reversa
- Reengenharia e refabricação de programas

Saber fazer:
- Reificar um SGQ para projectos de desenvolvimento de software
- Construir um modelo de qualidade de software
- Selecionar e utilizar técnicas de verificação e validação adequadas
- Avaliação crítica do grau de cobertura atingido com as técnicas de verificação e validação
- Analisar sistemas existentes de dimensão não trivial
- Obtenção/extracção de conceitos de alto nível de sistemas legados
- Elaboração de diagnósticos úteis para a reengenharia
- Dominar técnicas de reengenharia de software

Soft skills:
- Trabalho em equipa
- Defesa pública de pontos de vista

Caracterização geral

Código

11170

Créditos

6.0

Professor responsável

Ana Maria Diniz Moreira, Miguel Carlos Pacheco Afonso Goulão

Horas

Semanais - 4

Totais - 52

Idioma de ensino

Português

Pré-requisitos

Engenharia de Software, Métodos de Desenvolvimento de Software

Bibliografia

Chikofsky, E.J., Cross II, J.H. Reverse Engineering and Design Recovery: a Taxonomy. IEEE Software 7(1), pp.13-17, IEEE Computer Society Press, January 1990.

Lanza M.; Marinescu R. Object-Oriented Metrics in Practice. Springer-Verlag 2006. ISBN-10 3-540-24429

Fowler M. Refactoring: Improving the Design of Existing Code. Addison-Wesley, 1999. ISBN:0-201-48567-2

Método de ensino

As aulas teóricas consistem na exposição de matéria, ilustrada com exemplos de aplicação, e suportada por diapositivos e pela utilização do ambiente de desenvolvimento no computador do docente.

Nas aulas de laboratório, os alunos resolvem exercícios que constituem exemplos concretos de aplicação dos conceitos dados nas anteriores aulas teóricas.

Os alunos podem esclarecer dúvidas durante as aulas ou nos horários de atendimento.


Método de avaliação

A avaliação consiste em dois testes (num total de 45% da nota) e dois trabalhos práticos (num total de 55%) da nota. Um dos trabalhos (e respectivo teste) incide, sobretudo, em modelos de qualidade e em técnicas de verificação e validação). O outro trabalho, e respectivo teste, incide sobre a engenharia reversa, reengenharia e aplicação de padrões de desenho.


Conteúdo

1. Introdução à Qualidade de Software

2. Modelos de Qualidade de Software

2.1 Modelos de Qualidade do Processo

2.2 Modelos de Qualidade do Produto

3. Verificação e Validação de Software

3.1 Revisões (passo-a-passo, inspecções, demonstrações, auditorias)

3.2 Técnicas de leitura (ad-hoc, baseada em listas de verificação, baseada em defeitos, baseada em perspectiva)

3.3 Análise de custos e benefícios das revisões

3.4 Teste de software (fundamentos, testes de caixa negra, testes de caixa branca)

4. Evolução de Software

4.1 Engenharia reversa de sistemas de software

4.2 Métricas de software

4.3 Visualização de software

5. Reengenharia de sistemas de software

5.1 Fundamentos de reengenharia

5.2 Refabricação

6. Desenho e Reutilização de Software

6.1 Desarmonias de concepção

6.2 Padrões de concepção

Cursos

Cursos onde a unidade curricular é leccionada: