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
2022/2023
Pré-requisitos / Pre-Requisites
Frequência com sucesso de pelo menos uma unidade curricular no 1º ciclo de Bolonha em que se cubram em largura os tópicos do corpo de conhecimento em Engenharia de Software (SWEBOK). No caso de ex-alunos de licenciatura do DCTI/ISCTE-IUL, esses pré-requisitos são garantidos pela unidade curricular de Engenharia de Software.
Objetivos Gerais / Objectives
Os principais objectivos desta unidade curricular são: - compreender a necessidade das arquiteturas de software e a sua relação com o desenho de software; - produzir arquiteturas de software sucintas a partir de especificações de requisitos e gerir a correspondente rastreabilidade; - analisar os compromissos entre abordagens arquiteturais alternativas no projeto de um sistema de software; - utilizar atributos de qualidade para avaliar arquiteturas de software; - reconhecer padrões de desenho arquitetural e aplicá-los de forma adequada.
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. Conhecer as condicionantes técnicas, sociais e de negócio que determinam a escolha das arquiteturas de software. OA2. Identificar as principais características de um modelo de qualidade para arquiteturas. OA3. Descrever arquiteturas usando uma notação adequada para o efeito. OA4. Reconhecer os principais estilos arquiteturais dos sistemas de software. OA5. Propor alternativas arquiteturais para um problema e discutir a sua adequação.
Conteúdos Programáticos / Syllabus
CP1. O que é e porque é importante a arquitetura de software CP2. Atributos de qualidade do software (v.g. disponibilidade, interoperabilidade, modificabilidade, desempenho, testabilidade) CP3. Padrões e táticas arquiteturais CP4. Modelação e análise de atributos de qualidade CP5. Arquitetura em projetos ágeis CP6. Arquitetura e requisitos CP7. Desenho da arquitetura CP8. Documentação da arquitetura CP9. Arquitetura, implementação e testes CP10. Reconstrução e conformidade da arquitetura CP11. Avaliação da Arquitetura CP12. Arquitetura e linhas de produto 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) realiza-se da seguinte forma: OA1: CP1 OA2: CP2 OA3: CP3, CP4, CP5, CP6 OA4: CP5, CP6, CP7 OA5: CP5, CP8, CP9
Avaliação / Assessment
A natureza prática desta UC e a necessidade em que a avaliação de conhecimentos se faça essencialmente através da capacidade dos estudantes em aplicar os conhecimentos na conceção, desenho, implementação, validação, verificação, implantação, manutenção e evolução de um projeto de software, leva a que o método de avaliação adotado seja o de avaliação baseada em projeto. Em 1ª época ou época normal, avaliação periódica, sem obrigação de assiduidade mínima, com 3 momentos de avaliação do projeto em grupo: - Apresentação de progresso a meio do semestre com peso de 20% na nota final da UC; - Relatório final do projeto com peso de 15% e software entregue com peso de 35% na nota final da UC; - Apresentação final com peso de 10% e discussão com peso de 10% na nota final da UC. A avaliação é feita com base no desempenho e contributo individual de cada elemento do grupo. Ou avaliação no final do semestre (1ª época), por projecto individual com 2 momentos de avaliação: - Relatório do projeto com peso de 20% e software entregue com peso de 45% na nota final da UC; - Apresentação do trabalho com peso de 10% e discussão com peso de 15% 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 20% na nota final da UC; - Software entregue com peso de 45% na nota final da UC; - Apresentação do trabalho com peso de 10% na nota final da UC; - Discussão do trabalho com peso de 15% na nota final da UC. Todas as épocas de avaliação contemplam uma componente de avaliação realizada na plataforma de eLearning, com peso de 10% (2 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 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 respectivos objectivos (OA): OA1: MEA1, MEA2 OA2: MEA1, MEA2 OA3: MEA2, MEA3 OA4: MEA1, MEA2, MEA3 OA5: MEA3, MEA4
Observações / Observations
.
Bibliografia Principal / Main Bibliography
Design Patterns: Elements of Reusable Object-Oriented Software, Erich Gamma, Richard Helm, Ralph Johnson and John M. Vlissides, Addison-Wesley, 1994. Patterns of Enterprise Application Architecture, Martin Fowler, Addison-Wesley, 2012. Software Architecture in Practice, Len Bass, Paul Clements and Rick Kazman, Addison-Wesley, 2021.
Bibliografia Secundária / Secondary Bibliography
Selected readings and tutorials made available in the eLearning platform throughout the semester. Microservices Patterns: With examples in Java, Chris Richardson, Manning Publications, 2019. Fundamentals of Software Architecture: An Engineering Approach, Mark Richards and Neal Ford, O'Reilly, 2020.
Data da última atualização / Last Update Date
2024-02-16