Ficha Unidade Curricular (FUC)

Informação Geral / General Information


Código :
04982
Acrónimo :
04982
Ciclo :
2.º ciclo
Língua(s) de Ensino :
Inglês (en), Português (pt)
Língua(s) amigável(eis) :
Inglês, Português

Carga Horária / Course Load


Semestre :
2
Créditos ECTS :
6.0
Aula Teórica (T) :
12.0h/sem
Aula Teórico-Prática (TP) :
12.0h/sem
Aula Prática e Laboratorial (PL) :
0.0h/sem
Trabalho de Campo (TC) :
0.0h/sem
Seminario (S) :
0.0h/sem
Estágio (E) :
0.0h/sem
Orientação Tutorial (OT) :
1.0h/sem
Outras (O) :
0.0h/sem
Horas de Contacto :
25.0h/sem
Trabalho Autónomo :
125.0
Horas de Trabalho Total :
150.0h/sem

Área científica / Scientific area


Ciências e Tecnologias da Informação

Departamento / Department


Departamento de Ciências e Tecnologias da Informação

Ano letivo / Execution Year


2026/2027

Pré-requisitos / Pre-Requisites


Frequência com sucesso de pelo menos uma unidade curricular do 1º ciclo ou 2º ciclo de Bolonha, em que se abordem tópicos essências em segurança da informação, algoritmos e técnicas de programação.

Objetivos Gerais / Objectives


Os estudantes serão dotados de uma compreensão aprofundada das práticas de desenvolvimento de software seguro, bem como uma visão geral das técnicas e ferramentas para desenvolver software seguro. Eles explorarão vulnerabilidades de segurança comuns, princípios de codificação segura, design de software seguro e as melhores práticas para desenvolver aplicações robustas e resilientes. O curso enfatizará a implementação prática por meio de projetos práticos, estudos de caso e boas práticas da indústria.

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 UC o estudante deverá ficar apto a: OA1. Compreender o Ciclo de Vida do Desenvolvimento de Software Seguro (SSDLC) e explicar a importância da segurança, as fases do SSDLC e as vulnerabilidades comuns. OA2. Aplicar Princípios de Design Seguro e implementar técnicas como defesa em profundidade, privilégio mínimo e modelagem de ameaças. OA3. Escrever Código Seguro, prevenindo ataques de injeção, garantindo autenticação segura e criptografando dados sensíveis. OA4. Ter conhecimento sobre como realizar Testes de Segurança. OA5. Implementar Implantação Segura e práticas de DevSecOps. OA6. Garantir Conformidade e Adesão Regulatória – Aplicar padrões de segurança como GDPR, HIPAA, PCI-DSS e ISO 27001. OA7. Proteger Aplicações Web, em Nuvem e Móveis. OA8. Analisar Tendências Emergentes em Segurança e avaliar riscos de segurança em IA, modelos de confiança zero e ameaças quânticas.

Conteúdos Programáticos / Syllabus


CP1. Introdução ao Desenvolvimento de Software Seguro e Visão Geral do Ciclo de Vida do Desenvolvimento de Software Seguro (SSDLC). CP2. Princípios de Design de Software Seguro: Segurança por design e defesa em profundidade. CP3. Práticas e Diretrizes de Codificação Segura para diversas linguagens (Java, Python, C, etc.), falhas comuns de codificação, autenticação segura, gerenciamento de sessões e práticas criptográficas. CP4. Vulnerabilidades e Explorações de Software. CP5. Testes de Segurança e Análise Estática de Código. CP6. Testes de Intrusão (Penetration Testing) e Hacking Ético. CP7. Implantação Segura de Software e DevSecOps. CP8. Conformidade, Regulamentos e Padrões de Segurança. CP9. Desenvolvimento Seguro em Ambientes de Nuvem e Mobile. CP10. Ameaças Emergentes e Tendências Futuras. Conclusões.

Demonstração da coerência dos conteúdos programáticos com os objetivos de aprendizagem da UC / Evidence that the curricular unit's content dovetails with the specified learning outcomes


Os tópicos associados aos Conteúdos Programáticos (CP) identificados neste FUC (CP1 a CP10) fornecem o conhecimento necessário para o planejamento, desenvolvimento e testes necessários para o desenvolvimento de software seguro, conforme definido nos Objetivos de Aprendizagem/Resultados de Aprendizagem (OA), a saber: CP1 e CP2 introduzem os alunos ao tema do desenvolvimento seguro de software (AO1, AO2); CP3 e CP4 identificam recursos e conceitos, abordando técnicas básicas para o desenvolvimento de software seguro em contextos específicos e para vulnerabilidades específicas (AO3 e AO4); CP5 e CP6 ampliam técnicas e definições para a implementação de requisitos de teste necessários para gerenciar e avaliar software seguro (AO5 e AO6); CP7, CP8 e CP9 fornecem habilidades no planejamento, desenvolvimento e implementação de software com respeito ao processo de desenvolvimento, padrões e aspectos legais (AO7, AO8 e AO9); CP10 trata de problemas futuros e emergentes (AO10).

Avaliação / Assessment


A natureza eminentemente prática desta Unidade Curricular (UC), bem como a necessidade de avaliar a capacidade dos estudantes para aplicar os conhecimentos adquiridos na resolução de problemas no domínio do Desenvolvimento Seguro de Software, justificam a adoção do seguinte modelo de avaliação. A avaliação poderá ser realizada através de uma das seguintes modalidades: 1) Avaliação ao longo do semestre A avaliação contínua pressupõe uma assiduidade mínima correspondente a 50% das aulas lecionadas e integra três momentos de avaliação, compostos por exercícios práticos, projetos individuais e trabalhos em grupo, distribuídos da seguinte forma: Apresentação intermédia do progresso do projeto, com ponderação de 20% na classificação final da UC; Entrega dos artefactos produzidos e do relatório final do projeto, com ponderação de 50% na classificação final da UC; Apresentação final do projeto, com ponderação de 10%, e respetiva discussão, com ponderação de 20% na classificação final da UC. A avaliação incide no desempenho e no contributo individual de cada estudante no desenvolvimento das atividades propostas. 2) Avaliação por exame: Os estudantes que optem por esta modalidade, bem como aqueles que não obtenham aprovação na avaliação continua ao longo do semestre, serão avaliados através de exame escrito final (100%), a realizar na 1.ª época, 2.ª época ou época especial. A aprovação na UC exige a obtenção de uma classificação mínima de 9,5 valores no exame final. Todas as componentes de avaliação, em qualquer época de avaliação, requerem a classificação mínima de 9,5 valores, numa escala de 0 a 20 valores. Sugere-se que os estudantes possuam conhecimentos prévios nas áreas de programação e redes de computadores, considerados relevantes para o adequado acompanhamento dos conteúdos e atividades desenvolvidos no âmbito desta Unidade Curricular. Ou avaliação no final do semestre (1ª época), por projeto individual com 2 momentos de avaliação: - Relatório do projeto com peso de 45% na nota final da UC; - Apresentação e discussão do trabalho com peso de 30% na nota final da UC. Em 2ª época, melhoria de nota ou época especial (nos termos do RGACC), avaliação por projeto individual, disponibilizado aos estudantes que o solicitarem: - Relatório do projeto com peso de 45% na nota final da UC; - Apresentação e Discussão do trabalho com peso de 30% na nota final da UC; Todas as épocas de avaliação contemplam uma componente de avaliação realizada na plataforma de eLearning ou via um teste escrito, com peso de 25% (5 valores em 20) na nota final da UC. Todas as componentes de avaliação, em todas as épocas de avaliação, têm nota mínima de 9,5 valores (em 20).

Metodologias de Ensino / Teaching methodologies


Serão utilizadas as seguintes metodologias de ensino-aprendizagem (MEA): MEA1: Expositivas, para apresentação dos enquadramentos teóricos MEA2: Ilustrativas, para exemplificação dos conceitos teóricos em contextos reais e seminários. MEA3: Participativas, com análise e resolução de problemas MEA4: Argumentativas, com apresentação e discussão do projeto de grupo

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


Principais interligações entre as metodologias de ensino-aprendizagem (MEA) e os respetivos objetivos (OA): (OA1) Nas aulas teóricas serão introduzidos os conceitos fundamentais sobre privacidade de dados. (OA2) Pelo menos uma das componentes de avaliação implicará uma abordagem do estado da arte em algum dos tópicos relevantes da UC, cujos resultados serão partilhados com todos os estudantes da turma, para estimular o pensamento crítico. (OA3) Através da apresentação de casos de estudo será estimulada a discussão sobre as relações de complementaridade e/ou interdependência entre os vários tópicos da UC. (OA4) Os trabalhos práticos estarão intimamente relacionados com os tópicos introduzidos nas aulas teóricas, permitindo consolidar o processo de aprendizagem. (OA5) De uma maneira geral os vários tópicos e trabalhos práticos da UC suscitarão questões e implicarão decisões relacionadas com planeamento, desenvolvimento e exploração de sistemas e serviços de informação com privacidade de dados. (OA6) Nos trabalhos práticos serão abordados serviços, sistemas e ferramentas de referência, bem como o seu enquadramento da privacidade de dados e tecnologias utilizadas no contexto pessoal e institucional.

Observações / Observations


Nesta unidade curricular, as metodologias estão divididas entre o método expositivo (aplicado nas aulas teóricas) e o método experimental e de observação que se aplica nas aulas praticas. Assim, tendo em conta a importância da vertente de programação, cujas competências são essenciais ao âmbito da disciplina, a junção das duas metodologias de ensino versa a aquisição dos objetivos propostos para esta disciplina. O projeto prático de desenvolvimento de grupo ou individual e a resolução de exercícios de programação visa dotar os alunos de competência para a resolução autónoma e em grupo dos problemas típicos decorrentes no desenvolvimento de software seguro e conhecer os ambientes de teste e construção deste software.

Bibliografia Principal / Main Bibliography


- Cryptography and network security: principles and practice, Stallings, William. Edição: 6th ed. Harlow, Pearson Education, 2014. 751 p. : il., fig., tab. ; 23 cm ISBN: 9780273793359. - Jarmul, K. (2023). Practical Data Privacy. O'Reilly Media, Inc. ISBN: 9781098129460. - Distributed systems: principles and paradigms / Andrew S. Tanenbaum, Maarten van Steen. Edição: 2nd ed Publicação: Harlow : Pearson, 2014. 633 p. : il., fig., graf. ; 28 cm. ISBN: 9781292025520

Bibliografia Secundária / Secondary Bibliography


- NOETZOLD, Darlan; LEITHARDT, Valderi. Fundamentos, Avanços Recentes e Desafios com Algoritmos Criptográficos: Criptografia Clássica, Quântica e Pós Quântica: Uma análise aprofundada para uso em aplicações do mundo real. [S.l.]: KS OmniScriptum Publishing, 2026. ISBN 9786209263446. - Benjamin C. M. Fung, Ke Wang, Ada Wai-Chee Fu, and Philip S. Yu; Introduction to Privacy-Preserving Data Publishing Concepts and Techniques, Chapman & Hall/CRC, 2011 https://dl.acm.org/doi/10.5555/1855031 - Fábio Pereira, Paul Crocker, Valderi R.Q. Leithardt, PADRES: Tool for PrivAcy, Data REgulation and Security, SoftwareX, Volume 17, 2022, 100895, ISSN 2352-7110, https://doi.org/10.1016/j.softx.2021.100895. - Warren, Samuel; Brandeis, Louis (December 15, 1890). ""The Right to Privacy"". Harvard Law Review. IV (5): 193–220. Retrieved 4 June 2021 – via Internet Archive. Disponível em: https://groups.csail.mit.edu/mac/classes/6.805/articles/privacy/Privacy_brand_warr2.html

Data da última atualização / Last Update Date


2026-07-10