ISEP
Estudar
Pós-graduações
SWitCH_QA - Curso de Especialização em Garantia de Qualidade de Software
Este curso nasce de uma parceria entre a associação Porto Tech Hub e o ISEP, pretendendo construir a possibilidade de reconversão de carreira a talentos que tenham motivação para transitar para as áreas de Tecnologias da Informação.
1º ano | 1º semestre
Desenvolvimento de Software e Teste I
7 ECTS
Descrição
Objetivos
Programa
ECTS 7
Período 1º semestre
Responsável Paulo Baltarejo Sousa
Teórica 1 hora Prática laboratorial 3 horas
Esta UC fornece os conhecimentos, compreensão e competências iniciais e fundamentais sobre: 1. Algoritmia e programação 2. Processo de desenvolvimento de software (PDS) iterativo e incremental (I&I), em particular de sistemas de informação (SI) 3. Engenharia de requisitos (em particular de SI) 4. Análise de software Orientado por Objetos (OO) 5. Design de software OO 6. Programação OO 7. Testes de Software No final da UC, o aluno deverá ser capaz de: CO1. Interpretar e aplicar as dimensões e intervenientes do PDS, e em particular de SI (NB:2); CO2. Implementar o PDS, em particular do processo I&I, de forma determinística (NB:3); CO3. Implementar métodos de análise OO (NB:3); CO4. Implementar métodos determinísticos de passagem da análise para o design (NB:3); CO5. Implementar métodos, princípios e padrões simples (nomeadamente GRASP e SOLID) de design de software OO e boas práticas como Tell Don?t Ask, DRY, etc. (NB:3); CO6. Implementar métodos e ferramentas de passagem do design para a implementação (NB:3); CO7. Implementar artefactos e notações apropriadas na descrição do problema, da análise, do design e da solução (NB:3).
P1. Algoritmia e programação - Estruturas de dados - Estruturas de controlo de fluxo - Procedimentos e funções - Classe, objeto e método P2. PDS - Disciplinas (e.g. Requisitos, Análise, Design, Codificação, Teste) - Tipos de processos (e.g. cascata, I&I, ágil) P3. Engenharia de requisitos - Análise de requisitos - Requisitos funcionais e não funcionais - Modelação visual: diagramas UML de casos de uso e de sequência P4. Análise OO - Métodos de identificação dos conceitos do domínio e suas relações - Modelo de domínio - Modelação visual: diagramas UML de classes e de estado P5. Design OO - Princípios RDD, GRASP, SOLID e TDD - Definição de responsabilidades e comportamento - Modelação visual: diagramas UML de classes, de sequência e de estado - Introdução ao design de arquitetura de software por camadas - Especificação de testes como design de software (TDD, BDD) P6. Codificação OO - Testes automáticos unitários (de regressão) - Métodos de passagem do design para a implementação
Garantia de Qualidade de Software I
5,5 ECTS
Descrição
Objetivos
Programa
ECTS 5,5
Período 1º semestre
Responsável Alberto Sampaio
Teórica 1 hora Prática laboratorial 3 horas
O aluno deverá: 1. Conhecer o processo de planeamento e implementação do teste de uma aplicação. 2. Conhecer os papéis envolvidos e selecionar os artefactos apropriadas a cada fase. 3. Analisar, projetar, implementar e apresentar os resultados do teste duma aplicação Web usando um processo de desenvolvimento ágil, iterativo e incremental, orientado a testes. 4. Trabalhar em equipa usando um sistema de controlo de versões.
Conceitos básicos de processo de desenvolvimento de software, especialmente ágil Conceitos básicos de garantia de qualidade teste e processo de teste Aplicação de testes ao longo do processo de desenvolvimento de software Teste de aplicações desenvolvidas com métodos ágeis
Projeto I
10 ECTS
Descrição
Objetivos
Programa
ECTS 10
Período 1º semestre
Responsável Paulo Matos
Orientação tutorial 6 horas
No final da UC, o aluno deverá ser capaz de: CO1. Identificar os intervenientes de um Processo de Desenvolvimento de Software (PDS) e compreender os diferentes papeis de cada interveniente, nomeadamente, do cliente (dono do sistema) e do desenvolvedor (integrado numa equipa de desenvolvimento de software) assim como atividades específicas, tais como assegurar a qualidade. CO2. Aplicar os artefactos e notações adequadas a cada fase do PDS na produção de documentação técnica. CO3. Aplicar técnicas de comunicação eficazes com os intervenientes no PDS. CO4. Aplicar regras de trabalho em equipa num PDS, nomeadamente o controle de versões e gestão de tarefas. CO5. Criar aplicações de média complexidade com aplicação de padrões e princípios de desenho OO assim como modelos arquiteturais adequados. CO6. Desenvolvimento do software de acordo com a metodologia test-driven development (TDD). CO7. Conceber e implementar sistemas de integração e implantação contínuas, utilizando virtualização, contentores e ferramentas de automação.
P1. Realização de um projeto em equipa de média complexidade de acordo com o paradigma OO. P2. Aplicação de metodologias ágeis no PDS para a realização de P1 assim como ferramentas e abordagens adequadas a cada fase do PDS. P3. Comunicação, documentação e trabalho em equipa. P4. Construção de sistemas e infraestruturas computacionais baseadas em virtualização e contentores aplicados ao PDS com o propósito de integração e entregas contínuas.
1º ano | 2º semestre
Desenvolvimento de Software e Teste II
7 ECTS
Descrição
Objetivos
Programa
ECTS 7
Período 2º semestre
Responsável Paulo Baltarejo Sousa
Teórica 1 hora Prática laboratorial 3 horas
Esta unidade curricular proporciona conhecimentos e competências nas seguintes disciplinas: 1. Processo intermédio de desenvolvimento de software orientado a objetos 2. Metodologias e ferramentas para o projeto de software orientado a objetos e metodologias orientadas a testes No final do curso, o aluno deverá ser capaz de: CO1 ? Identificar o processo de desenvolvimento de software num projeto de médio porte (BL: 3) CO2 ? Aplicar princípios SOLID (BL 5) CO3 ? Usar sistemas de controle de revisão (BL 2) CO4 ? Aplicar técnicas e metodologias de BDD (BL 3) CO5 ? Trabalhar de forma colaborativa em uma equipa de desenvolvimento de software (BL 3) CO6 ? Utilizar artefactos e notações apropriadas, descrever as propostas e soluções envolvidas (BL 3) CO7 ? Criar, projetar e codificar uma solução de software (BL 6)
P1. Conceitos intermédios de orientação a objetos (25%) P1.1. Design Orientado a Objetos P1.1. Desenvolvimento de Software Orientado a Objetos P2. Testes Funcionais (25%) P2.1. Implementação de Testes de Integração P2.2. Desenho de Testes de Aceitação Funcionais P2.3. Implementação de Testes de Aceitação Funcionais P3. Testes Não Funcionais (25%) P3.1. Implementação de Testes Não Funcionais P4. Metodologia de Behaviour-Driven Development (BDD) (25%) P4.1. Idiomas de Especificação P4.2. Behaviour-Driven Development (BDD)
Garantia de Qualidade de Software II
5,5 ECTS
Descrição
Objetivos
Programa
ECTS 5,5
Período 2º semestre
Responsável Alberto Sampaio
Teórica 1 hora Prática laboratorial 3 horas
O aluno deverá: CO1. Conhecer com detalhe os vários tipos de testes e critérios para geração de casos de teste. CO2. Desenhar e implementar os testes a realizar, tendo em atenção requisitos definidos para o projecto, e analisar os resultados. CO3. Conhecer a aplicar os principais processos de qualidade e características de qualidade do produto e do processo CO4. Conhecer e aplicar algumas medidas de software CO5. Trabalhar, enquanto QA, de forma colaborativa no projecto de uma aplicação web usando a metodologia BDD CO6. Preparar documentação técnica
1. Importância da qualidade: razões para o sucesso e insucesso dos projectos 2. Qualidade do desenho e do código 2.1 Problemas no código fonte 2.2 Características de um bom desenho 2.3 Aplicação de princípios: SOLID, LoD, DRY 3. Revisões pelos pares 4. Processos ATDD e BDD 5. Classificações dos tipos de testes 6. Técnicas White-box, black-box 7. Aplicação das técnicas no projecto 8. Modelo de qualidade ISO/IEC/IEEE 9. Medição 10. Qualidade do processo 11. Preparação de documentação técnica
Projeto II
10 ECTS
Descrição
Objetivos
Programa
ECTS 10
Período 2º semestre
Responsável Paulo Matos
Orientação tutorial 6 horas
No final da UC, o aluno deverá ser capaz de: CO1. Aplicar o Processo de Desenvolvimento de Software (PDS) desempenhando as diferentes tarefas subjacentes aos diferentes intervenientes do PDS. CO2. Criar aplicações de média complexidade com aplicação de padrões de software consolidados, em especial para sistemas distribuídos e descentralizados. CO3. Desenvolvimento do software de acordo com a metodologia test-driven development (TDD) e Behaviour-Driven Development. CO4. Desenhar planos de testes e automatiza-los (i.e., unitários, integração, end-to-end, carga). CO5. Conceber e implementar sistemas de integração e implantação contínuas, utilizando virtualização, contentores e ferramentas de automação. CO6. Trabalhar em equipa, no contexto de um projeto de desenvolvimento de software, aplicando metodologia ágil (i.e., Scrum) CO7. Aplicar as melhores práticas de produção de relatórios e documentação de garantia de qualidade (QA) utilizando-os para comunicar os resultados de um projeto de software
P1. Desenvolvimento de um projeto em equipa de média complexidade com aplicação das boas práticas de engenharia informática em todas as fases do projeto (para aplicação do método Project Based Learning). P2. Metodologias ágeis no PDS. P3. Comunicação, documentação e trabalho em equipa. P4. Aplicação e automatização de mecanismos de QA. P5. Construção de sistemas e infraestruturas computacionais baseadas em virtualização e contentores aplicados ao PDS com o propósito de integração e entregas contínuas.