Ficha Unidade Curricular (FUC)

Informação Geral / General Information


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

Carga Horária / Course Load


Semestre :
1
Créditos ECTS :
6.0
Aula Teórica (T) :
0.0h/sem
Aula Teórico-Prática (TP) :
36.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 :
37.0h/sem
Trabalho Autónomo :
113.0
Horas de Trabalho Total :
150.0h/sem

Á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