Engenharia de Software
Código
0105995Créditos ECTS
6Objetivos
1. Adquirir os princípios e conceitos subjacentes a uma visão global do processo de desenvolvimento de software, desde o levantamento de requisitos até à entrega e à manutenção do sistema.
2. Integrar os conhecimentos adquiridos em outras disciplinas do curso no contexto do processo de desenvolvimento de software.
3. Compreender o desenvolvimento de software como uma atividade de engenharia que integra a tecnologia com fatores sociais e humanos.
Programa
1. Introdução à Engenharia de Software: objetivos, âmbito e desafios, aspetos éticos e conduta profissional
2. Processos de desenvolvimento de software: importância, atividades, metodologias clássicas e ágeis, mudança e melhoria contínua.
3. Gestão de projetos de software: princípios e normas de qualidade, gestão de riscos e de equipas, planeamento.
4. Engenharia de requisitos: classificação dos requisitos de software, levantamento e análise, especificação e documentação, validação e verificação, gestão de requisitos.
5. Desenho de software: princípios, abordagens, estilos arquiteturais, arquiteturas, padrões de desenho, documentação e avaliação.
6. Construção de código: fundamentos e boas práticas para a minimização da complexidade e a garantia da qualidade.
7. Verificação e validação: Níveis de teste (unitários, integração, sistema, aceitação, instalação), estratégias, desenvolvimento orientado a testes.
8. Entrega e manutenção: evolução do software, avaliação da continuidade, tipos de manutenção
Métodos de Ensino
As aulas teóricas são vocacionadas para a apresentação e discussão de conceitos e estudos de caso. As aulas práticas laboratoriais, articuladas com as aulas teóricas, são vocacionadas para a análise e discussão plenária de respostas a questões sobre casos de estudo e da resolução de problemas e exercícios teórico-práticos.
Em cada edição desta unidade curricular é organizado, pelo menos, um seminário temático proferido por responsável pelo desenvolvimento de software em entidade local, de forma a que os estudantes possam tomar contacto com a realidade de trabalho local em engenharia de software.
A plataforma de e-Learning Moodle da UAc (em http://moodle.uac.pt) é utilizada como repositório de material pedagógico e didático de apoio à aprendizagem, bem como de agendamento, divulgação e promoção de atividades complementares e de gestão da avaliação.
AVALIAÇÃO:
Em cada edição da unidade curricular, a avaliação, contínua e periódica, é constituída por uma componente individual teórico-prática que tem peso entre 40% e 60% e uma componente de projeto em grupo que tem peso entre 40% e 60%, ambas com nota mínima de 10 valores.
Bibliografia
Essencial
- Sommerville, I. (2015), Software Engineering (10ª edição): Pearson International Edition.
- J. Pinto, C. Tscharf (2019), Scrum - a gestão ágil de projetos, 1ª edição, FCA.
- Freeman, E., Sierra, K., Bates B. (2014), Head First Design Patterns: O'Reilly.
Complementar
- Bruegge B. e Dutoit, A. H. (2013), Object-oriented software Engineering using UML, Patterns and Java (3ª edição): Pearson International Edition
- Sommerville, I. (2020), Engineering Software Products - An Introduction to Modern Software Engineering (1ª edição): Pearson.
- McConnell, S. (2019), More Effective Agile: A Roadmap for Software Leaders, Construx Press
Método de Avaliação
De acordo com Métodos de Ensino - 100 %