Qualidade e Confiabilidade de Software
1
2018-2019
02023402
Engenharia de Software
Português
Presencial
Semestral
6.0
Opcional
2º Ciclo - Mestrado
Conhecimentos de Base Recomendados
Programação, matemática discreta, estruturas de dados.
Métodos de Ensino
Aulas T com exposição detalhada com meios audiovisuais, dos conceitos, princípios e técnicas fundamentais da Qualidade e Confiabilidade de Software, exemplos que despertem o interesse dos alunos e exemplifiquem a sua aplicação a situações reais. Aulas TP em que se pretende que os alunos, com a orientação do docente, resolvam exercícios de aplicação prática, conjugando conceitos teóricos distintos e raciocínio crítico face a problemas mais complexos. As aulas teórico-práticas serão ainda destinadas ao apoio aos trabalhos práticos. Prática: projetos de pequena dimensão e mini-testes.
Resultados de Aprendizagem
Esta unidade curricular aborda com profundidade as áreas da engenharia de software relacionadas com a verificação, validação e certificação. O objetivo é dotar os alunos com conhecimento abrangente sobre qualidade de software e as atividades técnicas levadas a cabo para assegurar a qualidade e a confiabilidade do software, incluindo análise estática e dinâmica, modelos de desenvolvimento e standards, e certificação de software. Os estudantes irão compreender como se
conduz a garantia de qualidade durante o desenvolvimento de software, aprender a diferença entre análise estática e dinâmica, definir qualidade de software e descrever as atividades de garantia de qualidade no processo de desenvolvimento, realizar testes de software para melhorar a qualidade do software, obter conhecimento sólido em técnicas formais de análise estática, nomeadamente a verificação de modelos, e estimar o número de defeitos em aplicações de software baseadas em densidade de falhas e inserção de defeitos.
Estágio(s)
NãoPrograma
Fundamentos da qualidade de software
- Qualidade funcional e qualidade estrutural
- O valor económico da qualidade
- Confiabilidade de software: atributos, ameaças e meios
- Prevenção e remoção de defeitos
Análise estática e métodos formais
- Inspeções e revisões de software
- Análise estática automática
- Métodos formais de especificação e verificação
- Verificação de modelos
Teste de software
- Testes unitários, testes de integração e testes de sistema
- Testes black-box e white-box
- Testes baseados em modelos
- Critérios de cobertura
- Tracking de defeitos
- Verificação de sistemas distribuídos
- Testes de regressão
Modelos e standards de desenvolvimento
- Processos de ciclo de vida de software
- Qualidade de produtos de software
- Desenvolvimento dirigido por testes
- Programação por contrato
Certificação
- CMMI (Capability Maturity Model Integration)
- Medição e estimação da qualidade de software
- Verificação e validação
- Garantia de qualidade.
Docente(s) responsável(eis)
Henrique Santos do Carmo Madeira
Métodos de Avaliação
Avaliação
Mini Testes: 15.0%
Projecto: 25.0%
Exame: 60.0%
Bibliografia
- Paul Ammann and Jeff Offutt, ―Introduction to Software Testing‖, Cambridge University Press, 2008.
- Mordechai Ben-Ari, ―Principles of the Spin Model Checker‖, Springer, 2008.
- Stephen H. Kan, ―Metrics and Models in Software Quality Engineering‖, Addison-Wesley Professional, 2003.
- Mordechai Ben-Menachem, Garry S. Marliss, ―Software Quality: Producing Practical, Consistent Software‖, International Thomson Computer Press, 1997.