Saltar para:
Logótipo
Você está em: Início > M.EIC010

Arquitetura de Sistemas de Software

Código: M.EIC010     Sigla: ASSO

Áreas Científicas
Classificação Área Científica
OFICIAL Engenharia de Software

Ocorrência: 2022/2023 - 2S Ícone do Moodle

Ativa? Sim
Unidade Responsável: Departamento de Engenharia Informática
Curso/CE Responsável: Mestrado em Engenharia Informática e Computação

Ciclos de Estudo/Cursos

Sigla Nº de Estudantes Plano de Estudos Anos Curriculares Créditos UCN Créditos ECTS Horas de Contacto Horas Totais
M.EIC 29 Plano de estudos oficial 1 - 6 39 162

Docência - Responsabilidades

Docente Responsabilidade
Filipe Alexandre Pais de Figueiredo Correia Regente
Ademar Manuel Teixeira de Aguiar Regente

Docência - Horas

Teórico-Práticas: 3,00
Tipo Docente Turmas Horas
Teórico-Práticas Totais 1 3,00
Ademar Manuel Teixeira de Aguiar 1,50
Filipe Alexandre Pais de Figueiredo Correia 1,50

Língua de trabalho

Português - Suitable for English-speaking students

Objetivos

À medida que os sistemas de software aumentam de dimensão e de complexidade torna-se cada vez mais importante compreendê-los a níveis de abstracção mais elevados. A arquitectura de um sistema de software descreve a sua estrutura global em termos dos seus componentes, das propriedades externas desses componentes e das suas interrelações. Para sistemas de média e grande dimensão a escolha adequada da arquitectura assume uma importância crucial para o sucesso do seu desenvolvimento.

A disciplina de Arquitecturas de Sistemas de Software tem como objectivo principal introduzir os conceitos de arquitecturas de software, padrões de desenho e tópicos directamente relacionados, tais como o de componentes de software. Pretende ensinar a desenhar, compreender e avaliar arquitecturas de sistemas de software, tanto ao nível de abstracção de macro-arquitectura como de micro-arquitectura e assim familiarizar os alunos com os conceitos fundamentais de arquitectura de software, as propriedades e aplicabilidade dos diferentes estilos de arquitectura existentes, os padrões de desenho mais populares, componentes de software, arquitecturas reutilizáveis e as relações destes conceitos todos com a reutilização de software.

Resultados de aprendizagem e competências

No final da disciplina os alunos deverão ser capazes de:

• Reconhecer os principais padrões de arquitetura existentes para sistemas de software.
• Descrever uma arquitetura de forma precisa.
• Idealizar diferentes arquiteturas alternativas para resolver um mesmo problema e avaliar de forma justificada qual é a melhor em função dos atributos de qualidade que suporta.
• Reconhecer e compreender diversos padrões de desenho.
• Conhecer e aplicar diversos métodos e técnicas de reutilização de software.
• Identificar os fatores chave no desenho de arquiteturas de software evoluíveis.
• Desenhar um plano de migração entre diferentes tipos de arquitetura.
• Construir um sistema de software de média dimensão de acordo com uma especificação de requisitos, selecionando e aplicando padrões de desenho e de arquitetura, usando um método de desenvolvimento baseado em componentes e tecnologias recentes.
• Utilizar ferramentas que tornem mais expedita a realização das tarefas de desenvolvimento.

Modo de trabalho

Presencial

Pré-requisitos (conhecimentos prévios) e co-requisitos (conhecimentos simultâneos)

Os alunos devem ter conhecimentos e experiência anterior em desenvolvimento de software, programação orientada por objectos, e engenharia de software.

Programa

Introdução

• Desenho de software: conceitos e princípios fundamentais
• O que é arquitetura de software?
• A importância da arquitetura de software
• Design a múltiplos níveis, do macro ao micro: estilos arquiteturais e padrões de arquitetura, padrões de desenho e idiomas

Padrões de Software

• As origens dos padrões de software
• Exemplos de padrões de desenho (GoF)
• Exemplos de padrões de arquitetura (POSA)
• Refatoração para padrões

Arquiteturas de Software

• Atributos de qualidade
• Avaliando arquiteturas: funções objetivo
• Desenhando para atributos de qualidade: táticas
• Representação e Documentação de arquiteturas de software
• Reutilização de arquiteturas de software: linhas de produção, frameworks, componentes de software

Arquiteturas de Software Evolucionárias

• Lei de Conway
• Mudança incremental
• Acoplamento arquitetural
• Evolução de dados
• Construção de arquiteturas evoluíveis
• Refatoração arquitetural
• Microserviços, exemplo de uma arquitetura desenhada para a evolução

Bibliografia Obrigatória

Erich Gamma... [et al.]; Design patterns. ISBN: 0-201-63361-2
Buschmann, F., Henney, K. & Schmidt, D.C.; Pattern-Oriented Software Architecture Volume 4: A Pattern Language for Distributed Computing, Wiley, 2007. ISBN: 0470059028
Ford, N., Parsons, R. & Kua, P.; Building evolutionary architectures: Support constant change, O'Reilly Media, 2017. ISBN: 1491986360

Bibliografia Complementar

Bass, Len; Software Architecture in Practice. ISBN: 0-201-19930-0

Métodos de ensino e atividades de aprendizagem

As aulas serão utilizadas para a exposição formal dos principais tópicos da unidade curricular e para a apresentação final e discussão dos projetos desenvolvidos pelos estudantes ao longo do semestre. Para focar a atenção dos estudantes, nos tópicos principais serão propostas pequenas questões de resposta facultativa e livre sobre os tópicos em estudo para desenvolvimento fora de aulas. Ao longo do semestre os estudantes  terão oportunidade de colocar em prática os conhecimentos transmitidos através de pequenos exercícios e desenvolvimento incremental de um projeto de média dimensão. As questões, os exercícios e o projeto conjuntamente incentivarão os estudantes  a complementar os conhecimentos transmitidos com conhecimentos resultantes de pesquisas individuais efetuadas sobre os conteúdos da unidade curricular.

 

Tipo de avaliação

Avaliação distribuída sem exame final

Componentes de Avaliação

Designação Peso (%)
Participação presencial 10,00
Teste 30,00
Trabalho escrito 30,00
Trabalho laboratorial 30,00
Total: 100,00

Componentes de Ocupação

Designação Tempo (Horas)
Estudo autónomo 20,00
Frequência das aulas 42,00
Trabalho laboratorial 100,00
Total: 162,00

Obtenção de frequência

Obtenção de pelo menos 50% da avaliação nas componentes teste, trabalho escrito e trabalho laboratorial.

Fórmula de cálculo da classificação final

Nota final = (teste x 30%) + (projecto x 60%) + (desempenho individual x 10%).

Avaliação especial (TE, DA, ...)

Idênticas às dos alunos ordinários.

Melhoria de classificação

A classificação final pode ser melhorada através de repetição do teste (em casos excepcionais devidamente justificados) e/ou evolução do projecto.

Recomendar Página Voltar ao Topo
Copyright 1996-2024 © Faculdade de Engenharia da Universidade do Porto  I Termos e Condições  I Acessibilidade  I Índice A-Z  I Livro de Visitas
Página gerada em: 2024-04-19 às 03:06:44 | Política de Utilização Aceitável | Política de Proteção de Dados Pessoais | Denúncias