Objetivos de aprendizagem e a sua compatibilidade com o método de ensino (conhecimentos, aptidões e competências a desenvolver pelos estudantes)
Em geral, espera-se que um aluno aprovado nesta Unidade Curricular tenha a capacidade de entender e de aplicar boas práticas na construção de software.
Em particular, espera-se do aluno aprovado:
1 - A capacidade de estruturar o desenvolvimento de sistemas de software utilizando a abstração e a decomposição;
2 - A capacidade de documentar APIs de forma a serem entendíveis pelos seus utilizadores;
3 - A aptidão de desenvolver software em equipa e controlar e harmonizar diferentes versões;
4 - A capacidade de conceber e implementar testes unitários de forma a validar a obediência aos requisitos
Conteúdos programáticos
Boas práticas de construção de software
Alto Nível
Decomposição e Abstracção
Generalização
Encobrimento da Informação
Baixo
Nível
Convenções de Codificação
Programação Defensiva
Validação dos Parâmetros e disparo de Exceções
Application Programming Interfaces (APIs)
Utilização e Construção de Java Packages
Criação de Documentação com JavaDocs
Normas a obedecer na escrita de JavaDocs
Controle de Versões e Colaboração em Equipa
Git e Github
Repositórios Locais e Remotos
Melhoramentos contínuos e gestão das versões
Branch e Merge
Sincronização de repositórios locais com repositórios remotos
Testes Unitários
Testes sistemáticos
Testes automatizados com JUnit
Concepção e implementação de Casos de Teste
Demonstração da coerência dos conteúdos programáticos com os objetivos de aprendizagem da unidade curricular
Cada um dos objetivos enumerados para a Unidade Curricular (UC) é atingido por cada um dos tópicos principais dos conteúdos programáticos da UC. O objetivo geral é obtido pela acumulação dos objetivos enumerados, constituindo um macro objetivo.
Os 4 objetivos enumerados, do 1 a 4, são conseguidos pelo trabalho desenvolvido em cada um dos pontos do plano curricular.
Metodologias de ensino e de aprendizagem específicas da unidade curricular articuladas com o modelo pedagógico
Metodologia de ensino: Aulas teórico-práticas de exposição da matéria, de demonstração de conceitos e de software, de resolução de exercícios e de apresentação e discussão da solução dos exercícios. Aulas práticas dedicadas à realização do projeto da disciplina e aulas de apresentação e discussão dos projetos dos alunos.
Avaliação: Realização de um teste prático com um peso de 50% na nota final Conceção, desenho e implementação de um projeto em sala de aula (50% da nota final).
Demonstração da coerência das metodologias de ensino e avaliação com os objetivos de aprendizagem da unidade curricular
Tendo em conta que as boas práticas seguem conceitos teóricos que são essenciais para se conseguir os objetivos e resultados propostos, as metodologias seguidas, apesar de previligiarem o trabalho prático, incluem também uma componente teórica que dá sentido ao conjunto de conhecimento que depois se aplicará na prática.
A avaliação contempla estas duas facetas dos conteúdos incluídos nesta UC. O teste prático permitirá aferir da conjugação entre teoria e prática. O trabalho de grupo favorece a aprendizagem e simultaneamente permite aferir do progresso do estudante ao longo do semestre.
Bibliografia de consulta (existência obrigatória)
Beginning Software Engineering (2015), Rod Stephens, Wrox