Disciplina

Área

Área Científica de Metodologia e Tecnologias da Programação > Engenharia da Programação

Activa nos planos curriculares

MEIC-T 2018 > MEIC-T 2018 > 2º Ciclo > Agrupamentos > Engenharia de Software > Arquitectura de Software

MEIC-T 2021 > MEIC-T 2021 > 2º Ciclo > Área Principal > Agrupamentos > Engenharia de Software > Arquitectura de Software

MEIC-T 2015 > MEIC-T 2015 > 2º Ciclo > Agrupamentos > Engenharia de Software > Arquitectura de Software

MEIC-A 2021 > MEIC-A 2021 > 2º Ciclo > Area Principal > Agrupamentos > Engenharia de Software > Arquitectura de Software

MEIC-A 2015 > MEIC-A 2015 > 2º Ciclo > Agrupamentos > Engenharia de Software > Arquitectura de Software

MEIC-T 2006 > MEIC-T 2006 > 2º Ciclo > Áreas de Especialização Complementares > Engenharia de Software > Arquitectura de Software

MEIC-A 2006 > MEIC-A 2006 > 2º Ciclo > Área de Especialização Complementar > Engenharia de Software > Arquitectura de Software

Nível

A avaliação da cadeira de Arquitecturas de Software é composta pelos seguintes elementos: • Exame teórico: 40% da nota final, nota mínima de 8.5 valores (em 20) • Mini testes: 40% da nota final, 4 mini testes realizadas durante as aulas práticas, são consideradas as 3 melhores notas • Trabalhos práticos (em grupo): 20% da nota final A nota final é calculada de acordo com a fórmula • NotaFinal = roundHalfUp(0.4 x E + 0.4 x MT + 0.2 x TP) em que "E", "MT" e "TP" correspondem às notas (de 0 a 20 valores) do Exame, Mini Testes e dos Trabalhos Práticos, respectivamente. A nota dos mini testes é calculada • MT = ((MT1 + ... + MT4) - MIN(MT1, ... , MT4))/3. A nota dos trabalhos práticos "TP" é a média aritmética, sem arredondamentos, das notas obtidas em cada um dos trabalhos práticos realizados. Opção para trabalhadores estudantes: Os alunos que tiverem o estatuto de trabalhador-estudante realizam apenas exame final, cujo peso na nota final é de 100%.

Tipo

Não Estruturante

Regime

Semestral

Carga Horária

1º Semestre

2.0 h/semana

1.5 h/semana

119.0 h/semestre

Objectivos

Formar nos métodos, técnicas e linguagens do desenho de software de qualidade utilizando as abordagens de arquiteturas de software e desenho centrado no domínio para o desenvolvimento de sistemas de software de larga escala. Estudar os métodos e as técnicas da passagem do espaço do problema para o espaço da solução de modo a garantir a rastreabilidade entre os requisitos do sistema e o seu desenho. Ler, analisar e desenhar arquiteturas de software.

Programa

Introdução à Arquitetura de Software: definição de arquitetura de software; o ciclo de influência da arquitetura. Dos requisitos para a arquitetura: atributos de qualidade arquitetural; táticas para atingir as qualidades arquiteturais; as qualidades arquiteturais de disponibilidade, facilidade de modificação, desempenho, segurança, interoperabilidade, facilidade de teste, usabilidade e escalabilidade. Documentar arquiteturas de software: vistas e estilos arquiteturais; o tipo vista módulo e os seus estilos arquiteturais; o tipo vista componente-e-conetor e os seus estilos arquiteturais; o tipo vista de afetação e os seus estilos arquiteturais. Desenvolvimento de sistemas de software de larga escala: desenho centrado no domínio; arquitetura de microserviços; tecnologias para processar um grande número de eventos assíncronos. Casos de estudo: sistemas reais como, por exemplo, Facebook, Twitter, Amazon e Netflix.

Metodologia de avaliação

A avaliação da cadeira de Arquitecturas de Software é composta pelos seguintes elementos: • Exame teórico: 40% da nota final, nota mínima de 8.5 valores (em 20) • Mini testes: 40% da nota final, 4 mini testes realizadas durante as aulas práticas, são consideradas as 3 melhores notas • Trabalhos práticos (em grupo): 20% da nota final A nota final é calculada de acordo com a fórmula • NotaFinal = roundHalfUp(0.4 x E + 0.4 x MT + 0.2 x TP) em que "E", "MT" e "TP" correspondem às notas (de 0 a 20 valores) do Exame, Mini Testes e dos Trabalhos Práticos, respectivamente. A nota dos mini testes é calculada • MT = ((MT1 + ... + MT4) - MIN(MT1, ... , MT4))/3. A nota dos trabalhos práticos "TP" é a média aritmética, sem arredondamentos, das notas obtidas em cada um dos trabalhos práticos realizados. Opção para trabalhadores estudantes: Os alunos que tiverem o estatuto de trabalhador-estudante realizam apenas exame final, cujo peso na nota final é de 100%.

Pré-requisitos

Unidades curriculares de licenciatura de Engenharia de Software, Programação por Objetos, Bases de Dados e Sistemas Distribuídos

Componente Laboratorial

Análise da arquitetura de software de casos de estudo reais da indústria de software, como sejam Uber, Netflix, Facebook, Twitter, etc.

Princípios Éticos

Todos os membros de um grupo são responsáveis pelo trabalho do grupo. Em qualquer avaliação, todo aluno deve divulgar honestamente qualquer ajuda recebida e fontes usadas. Numa avaliação oral, todo aluno deverá ser capaz de apresentar e responder a perguntas sobre toda a avaliação.

Componente de Programação e Computação

No curso onde esta UC é oferecida estão asseguradas as componentes de Computação e Programação de acordo com o MEPP 2122.

Componente de Competências Transversais

Um grupo de 6 elementos analisa um caso de estudo real da indústria, o que corresponde a 20% da avaliação.

Bibliografia

Principal

Software Architecture in Practice (4th Edition)

Len Bass, Paul Clements, Rick Kazman

2022

Addison-Wesley


Documenting Software Architectures: Views and Beyond (2nd Edition)

Paul Clements, Felix Bachmann, Len Bass, David Garlan, James Ivers, Reed Little, Paulo Merson, Robert Nord, Judith Stafford

2010

Addison-Wesley