Ficha Unidade Curricular (FUC)
Informação Geral / General Information
Carga Horária / Course Load
Área científica / Scientific area
Ciências e Tecnologias da Programação
Departamento / Department
Departamento de Ciências e Tecnologias da Informação
Ano letivo / Execution Year
2024/2025
Pré-requisitos / Pre-Requisites
Os tópicos programáticos a desenvolver nesta disciplina pressupõem domínio de modelação e programação orientada a objetos com a linguagem Java.
Objetivos Gerais / Objectives
Esta UC usa como enquadramento de referência o SWEBOK (Software Engineering Body of Knowledge), uma iniciativa da IEEE Computer Society, a organização profissional mais importante da área. São abordadas as várias áreas de conhecimento do SWEBOK, dotando os estudantes de uma visão alargada, completa e integradora da Engenharia de Software, nas suas várias vertentes.
Objetivos de Aprendizagem e a sua compatibilidade com o método de ensino (conhecimentos, aptidões e competências a desenvolver pelos estudantes) / Learning outcomes
Após a conclusão desta unidade curricular o estudante deverá ficar apto a: OA1. Aplicar um processo de engenharia ao desenvolvimento de software; OA2. Desenvolver software em equipas de grande dimensão (>6 elementos); OA3. Aplicar os princípios de engenharia de software tais como análise de requisitos, desenho e análise de software, implementação, inspeção de código, gestão de configurações, construção, entrega e implantação de software; OA4. Avaliar e melhorar a qualidade do produto em Engenharia de Software.
Conteúdos Programáticos / Syllabus
CP1 - Processo da engenharia de software CP2 - Gestão de configurações e construção de software CP3 - Requisitos de software CP4 - Testes de software CP5 - Desenho de software CP6 - Métricas de qualidade e melhoria do produto CP7 - Evolução, entrega e implantação de software.
Demonstração da coerência dos conteúdos programáticos com os objetivos de aprendizagem da UC / Evidence that the curricular units content dovetails with the specified learning outcomes
A interligação entre os conteúdos programáticos e os objetivos de aprendizagem (OA) é a seguinte: Os objetivos de aprendizagem OA1 e OA3 apoiam-se na totalidade do programa, por se basearem na totalidade dos fundamentos da Engenharia de Software. O objetivo de aprendizagem OA2 está relacionado com os itens CP1, CP2, CP3, CP4 e CP5. O objetivo de aprendizagem OA4 está relacionado com os itens CP5, e CP6.
Avaliação / Assessment
Avaliação ao longo do semestre: Projeto prático em grupo com peso de 50% (nota individualizada e mínima de 9.5 em 20). Frequência (1ª época) com peso de 50% (nota mínima 9.5 em 20). A nota final pode ser majorada até 1.6 valores (com limite máximo de 20 valores), através da realização individual de Quizzes nas aulas teórico-práticas, ao longo do semestre. A avaliação dos Quizzes é opcional, não tem nota mínima, soma à nota final calculada com as componentes de projeto e frequência, nunca penalizando a nota final. Exame final (100%): 1ª época, 2ª época e época especial.
Metodologias de Ensino / Teaching methodologies
As aulas teóricas são de exposição com slides, pretendendo cobrir de uma forma abrangente as temáticas do programa, sempre que possível recorrendo a exemplos reais ilustrativos. As aulas teórico-práticas destinam-se à realização de exercícios ao longo do semestre. A língua de ensino nas aulas será o Português e/ou Inglês.
Demonstração da coerência das metodologias de ensino e avaliação com os objetivos de aprendizagem da UC / Evidence that the teaching and assessment methodologies are appropriate for the learning outcomes
Esta UC requer que os estudantes se familiarizem com conceitos teóricos fundamentais da engenharia de software e das atividades da engenharia de software, lecionados nas aulas teóricas, para suporte à realização de fichas práticas durante as aulas teórico-práticas, que por sua vez, proporcionam o treino em ferramentas de suporte às atividades de engenharia de software, imprescindíveis ao desenvolvimento do projeto prático em grupo, realizado sobretudo com recurso a trabalho autónomo por parte dos estudantes/grupos. A avaliação cobre as várias dimensões e competências proporcionadas pela UC, através de avaliação escrita (frequência/exame), avaliação da realização das fichas nas aulas teórico-práticas através de Quizzes (online) e avaliação do projeto prático em grupo.
Observações / Observations
Bibliografia Principal / Main Bibliography
Sommerville, I. (2016). Software Engineering, Global Edition (10th ed.). London, England: Pearson Education. Sommerville, I. (2021). Engineering software products: An introduction to modern software engineering. Pressman, R. S., & Maxim, B. R. (2014). Software Engineering: A Practitioner’s Approach (8th ed.). New York, NY: McGraw-Hill Professional. Fowler, M., Beck, K., Brant, J., Opdyke, W., & Roberts, D. (1999). Refactoring. Boston, MA: Addison Wesley. Ieee Computer Society. (2014). Guide to the software engineering body of knowledge (swebok(r)) (P. Bourque & R. E. Fairley, Eds.). IEEE Computer Society Press. Guerreiro, S. (2015). Introdução à Engenharia de Software, FCA Editora. Pinto, J.P., Tscharf, C. (2019). SCRUM - A gestão ágil de projetos, FCA Editora.
Bibliografia Secundária / Secondary Bibliography
Schach, S. R. (2010). Object-oriented and classical software engineering (8th ed.). New York, NY: McGraw-Hill Professional. IEEE-CS/ACM Joint Task Force on Software Engineering Ethics and Professional Practices. (2004). Software Engineering Code of ethics and Professional Practice. Science and Engineering Ethics.
Data da última atualização / Last Update Date
2024-07-30