Disciplina
Arquitectura de Software
Á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
Documenting Software Architectures: Views and Beyond (2nd Edition)