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) :
Inglês, Portuguê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


2024/2025

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


Os tópicos associados aos CP identificados nesta FUC (CP1 a CP12) dão suporte às várias atividades e decisões implicadas na concepção e desenvolvimento de um projeto em Engenharia de Software (ES), em particular nos aspetos arquiteturais e de desenho de Software (SW), definidos nos OA, nomeadamente: - O CP1 e CP2 capacitam para a identificação do âmbito, características e condicionantes arquiteturais e de desenho do projeto de SW (OA1 e OA2); - O CP3, CP4, CP6 e CP7 dão a conhecer estratégias e opções para a organização interna do produto SW e para os correspondentes reflexos nas características (externas) observáveis do produto SW (OA2, OA4, OA5); - O CP5, CP8, CP9 proporcionam conhecimento sobre aspetos de gestão do projeto de SW, relacionados com arquitetura e desenho de SW (OA2, OA3); - O CP10, CP11, CP12 são dedicados a atividades do ciclo de vida do projeto/produto de SW, centradas na aceitação, manutenção e evolução da arquitura e do desenho do SW (OA4 e OA5).

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 ao longo do semestre, 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 em 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


Esta UC requer que os estudantes se familiarizem com conceitos teóricos fundamentais da arquitetura e desenho de software, cujos materiais de apoio são disponibilizados na plataforma de eLearning e avaliados através da realização de Quizzes (online). As discussões e apresentações do projeto prático em grupo, avaliadas em dois momentos ao longo do semestre, complementam o processo de avaliação desta UC, que está sobretudo centrado no desenvolvimento do projeto em grupo e na demonstração que os estudantes fazem relativamente às capacidades identificadas nos objetivos de aprendizagem, implicadas nas atividades e decisões sobre arquitetura e desenho de software no projeto.

Observações / Observations


.

Bibliografia Principal / Main Bibliography


Gamma, E., Helm, R., Johnson, R., & Vlissides, J. (1994). Design patterns. Boston, MA: Addison Wesley. Fowler, M. (2012). Patterns of Enterprise Application Architecture. Addison-Wesley Educational. Bass, L., Kazman, R., & Clements, P. (2021). Software Architecture in Practice. Addison-Wesley Educational.

Bibliografia Secundária / Secondary Bibliography


Selected readings and tutorials made available in the eLearning platform throughout the semester. Richardson, C. (2019). Microservice patterns. New York, NY: Manning Publications. Richards, M., & Ford, N. (2020). Fundamentals of software architecture. Sebastopol, CA: O’Reilly Media.

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


2024-07-30