2024
Metodologias e Desenvolvimento de Software
Nome: Metodologias e Desenvolvimento de Software
Cód.: INF13204L
6 ECTS
Duração: 15 semanas/156 horas
Área Científica:
Informática
Língua(s) de lecionação: Português
Língua(s) de apoio tutorial: Português
Regime de Frequência: Presencial
Objetivos de Desenvolvimento Sustentável
Objetivos de Aprendizagem
Pretende-se transmitir ao aluno noções sólidas de Engenharia de Software que permitam a criação de software de qualidade, seguro, de confiança e de fácil manutenção. Após concluírem a unidade curricular, os alunos deverão ser capazes de:
- Conhecer e aplicar os diferentes processos de desenvolvimento de software;
- Conhecer e criar os diferentes tipos de requisitos de software;
- Modelar software;
- Conhecer e aplicar os processos associados ao desenho e implementação de software;
- Conhecer e aplicar diferentes padrões de software durante o desenvolvimento de software;
- Conhecer e aplicar os conceitos de gestão de configurações;
- Conhecer e aplicar os conceitos de teste e validação de software;
- Conhecer e aplicar os diferentes processos de desenvolvimento de software;
- Conhecer e criar os diferentes tipos de requisitos de software;
- Modelar software;
- Conhecer e aplicar os processos associados ao desenho e implementação de software;
- Conhecer e aplicar diferentes padrões de software durante o desenvolvimento de software;
- Conhecer e aplicar os conceitos de gestão de configurações;
- Conhecer e aplicar os conceitos de teste e validação de software;
Conteúdos Programáticos
- Introdução à Engenharia de Software
- Processos de Desenvolvimento de Software
- Métodos de desenvolvimento baseadas em planos
- Métodos ágeis de desenvolvimento
- Engenharia de requisitos
-- Requisitos funcionais, não funcionais, sistema e utilizador
-- Validação de requisitos
-- Gestão de requisitos
- Modelação de software
-- Modelos de contexto, interação, estruturais e de comportamento
-- Desenvolvimento baseado em modelos
- Desenho e implementação de software
-- Desenho de software usando UML
-- Padrões de software
-- Implementação de software
- Gestão de configurações
-- Gestão de alterações, versões e releases
-- Construção do sistema
- Verificação e validação de software
-- Testes de desenvolvimento, release e utilizador
- Processos de Desenvolvimento de Software
- Métodos de desenvolvimento baseadas em planos
- Métodos ágeis de desenvolvimento
- Engenharia de requisitos
-- Requisitos funcionais, não funcionais, sistema e utilizador
-- Validação de requisitos
-- Gestão de requisitos
- Modelação de software
-- Modelos de contexto, interação, estruturais e de comportamento
-- Desenvolvimento baseado em modelos
- Desenho e implementação de software
-- Desenho de software usando UML
-- Padrões de software
-- Implementação de software
- Gestão de configurações
-- Gestão de alterações, versões e releases
-- Construção do sistema
- Verificação e validação de software
-- Testes de desenvolvimento, release e utilizador
Métodos de Ensino
As metodologia de ensino serão baseadas em aulas teóricas e práticas. Procura-se uma aprendizagem ativa que estimule o aluno a desenvolver os diversos temas que são abordados nesta unidade curricular. Serão resolvidos problemas em grupo durante as aulas práticas, que farão parte de um projeto que será desenvolvido ao longo de toda a unidade curricular, e que terá como objetivo desenvolver um software de raíz recorrendo aos conceitos de Engenharia de Software apresentados nas aulas teóricas e às ferramentas exploradas nas aulas práticas, permitindo aos alunos consolidar os conhecimentos adquiridos nesta unidade curricular.
Avaliação
No regime de avaliação contínua, a nota final da disciplina resultará da média ponderada da componente prática e da componente teórica, com as seguintes ponderações:
- Componente teórica:
-- Teste 1: 30%;
-- Teste 2: 30%;
- Componente prática:
-- Trabalho prático: 40%;
No regime de exame, a nota final da disciplina resultará da média ponderada da componente prática e da componente teórica, com as seguintes ponderações:
- Componente teórica:
-- Exame: 60%;
- Componente prática:
--Trabalho prático: 40%;
- Componente teórica:
-- Teste 1: 30%;
-- Teste 2: 30%;
- Componente prática:
-- Trabalho prático: 40%;
No regime de exame, a nota final da disciplina resultará da média ponderada da componente prática e da componente teórica, com as seguintes ponderações:
- Componente teórica:
-- Exame: 60%;
- Componente prática:
--Trabalho prático: 40%;
Bibliografia
- Sommerville, Ian. Software engineering, Global Edition (10th Edition). New York: Pearson Education Limited, 2015.
- Fowler, Martin. UML Distilled: A Brief Guide to the Standard Object Modeling Language (Third Edition). Addison-Wesley Professional, 2004.
- Seidl, Martina, et al. UML @ classroom : an introduction to object-oriented modeling. Cham: Springer, 2015).
- Martin, Robert C. Agile Software Development, Principles, Patterns, and Practices: Pearson New International Edition. Pearson Education Limited, 2013.
- Myers, Glenford J., Corey Sandler, and Tom Badgett, 3rd Edition. The art of software testing. John Wiley & Sons, 2011.
- Gamma, Erich. Design patterns : elements of reusable object-oriented software. Addison-Wesley, 1995.
- Fowler, Martin. UML Distilled: A Brief Guide to the Standard Object Modeling Language (Third Edition). Addison-Wesley Professional, 2004.
- Seidl, Martina, et al. UML @ classroom : an introduction to object-oriented modeling. Cham: Springer, 2015).
- Martin, Robert C. Agile Software Development, Principles, Patterns, and Practices: Pearson New International Edition. Pearson Education Limited, 2013.
- Myers, Glenford J., Corey Sandler, and Tom Badgett, 3rd Edition. The art of software testing. John Wiley & Sons, 2011.
- Gamma, Erich. Design patterns : elements of reusable object-oriented software. Addison-Wesley, 1995.
Equipa Docente
- Pedro Dinis Loureiro Salgueiro [responsável]