Engenharia de Software

Conhecimentos de Base Recomendados

Conhecimentos de programação necessários para a escrita de testes unitários.

Métodos de Ensino

Nesta unidade curricular são utilizadas as seguintes metodologias de ensino:

Método expositivo: método explicativo onde factos, conceitos, princípios e generalizações são definidos e apresentados pelo professor e discutidos com a turma, seguido de exemplos demonstrativos;

Método experimental: método ativo onde o estudante desenvolve o conhecimento através da resolução de problemas e o desenvolvimento de projeto, em dinâmica de grupo e trabalho individual e refletivo.

Resultados de Aprendizagem

  • Identificar e descrever os motivos pelos quais a engenharia de software é essencial;
  • Identificar e descrever os principais processos de desenvolvimento de software;
  • Identificar os diferentes tipos de requisito e descrever os principais métodos de desenvolvimento dos mesmos;
  • Criar documentos de especificação de requisitos;
  • Identificar e descrever os principais padrões de arquitetura de software;
  • Desenhar a arquitetura de software adequada a um determinado problema;
  • Criar modelação de software utilizando diagramas UML;
  • Identificar e descrever processos ágeis de desenvolvimento de software;
  • Construir testes de software;
  • Desenvolver software utilizando plataformas low/zero code;
  • Reconhecer a importância da qualidade de software.

 

 

 

Programa

  • Conceitos base de Engenharia de software;
  • Processo de desenvolvimento de software;
  • Engenharia de requisitos;
  • Arquitetura e desenho de software
    • Modelo C4
  • Modelação de sistemas com UML (Unified Modeling Language);
  • Testes de software;
  • Métodos ágeis de desenvolvimento de software;
  • Desenvolvimento de software utilizando sistemas Low Code / Zero Code (e.g. OutSystems, Microsoft PowerApps);
  • Qualidade de software.

Docente(s) responsável(eis)

Métodos de Avaliação

Avaliação Periódica
  • - Exame - 40.0%
  • - Trabalho Individual e/ou de Grupo - 60.0%
Avaliação final
  • - Exame - 50.0%
  • - Trabalho Individual e/ou de Grupo - 50.0%

Estágio(s)

NAO

Bibliografia

Guerreiro, S. (2015). Introdução à engenharia de software. FCA. 

Sommerville, I. (2011). Engenharia de software  (9a edição). Addison Wesley.

Palhoto, T. (2016). Desenvolvimento ágil de software. FCA.

Borges, J. L. M., Cunha, J. F., Dias, T. G. (2015). Modelação de dados em UML – uma abordagem por problemas. FCA. 

Laboon, B. (2016).  A friendly introduction to software testing (1ª edição). CreateSpace Independent Publishing Platform.