Saltar para:
Logótipo
Você está em: Início > EIC0048

Arquitectura de Sistemas de Software

Código: EIC0048     Sigla: ASSO

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

Ocorrência: 2020/2021 - 2S Ícone do Moodle Ícone  do Teams

Ativa? Sim
Unidade Responsável: Departamento de Engenharia Informática
Curso/CE Responsável: Mestrado Integrado 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
MIEIC 64 Plano de estudos a partir de 2009/10 4 - 6 42 162

Língua de trabalho

Português - Suitable for English-speaking students

Objetivos

ENQUADRAMENTO À 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.

OBJETIVOS ESPECÍFICOS 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.

DISTRIBUIÇÃO PERCENTUAL Componente Científica: 50% Componente Tecnológica 50%.

Resultados de aprendizagem e competências

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

* Reconhecer os principais estilos de arquitectura existentes para sistemas de software.

* Descrever uma arquitectura de forma precisa.

* Idealizar diferentes arquitecturas alternativas para resolver um mesmo problema e avaliar de forma justificada qual a melhor, quer em termos de desenho, quer em termos de reutilização.

* Reconhecer e compreender diversos padrões de desenho.

* Conhecer e aplicar diversos métodos e técnicas de reutilização de software.

* Construir um sistema de software de média dimensão de acordo com uma especificação de requisitos e uma especificação de arquitectura, seleccionando e aplicando padrões de desenho, utilizando um método de desenvolvimento baseado em componentes e tecnologias recentes.

* Utilizar definições e ferramentas de desenvolvimento existentes para tornar mais expedita a realização das tarefas anteriores.

Modo de trabalho

Presencial

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

CONHECIMENTO PRÉVIO 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, princípios e abordagens fundamentais. *O que é arquitectura de software? *A importância da arquitectura de software. *Exemplos de arquitecturas aos níveis micro e macro: padrões de desenho, frameworks e linhas de produção. Estilos de Arquitectura * Os principais estilos arquitecturais * Exemplos clássicos Padrões de Desenho: *As origens dos padrões de software. *Tipos de padrões de software: padrões de arquitectura, padrões de desenho, estruturas idiomáticas. *Exemplos de Padrões de Arquitectura: POSA patterns. *Exemplos de Padrões de Desenho: GoF patterns. Arquitecturas de Software: *Arquitecturas e Atributos de Qualidade. *Estilos de arquitecturas, modelos de referência e arquitecturas de referência: pipes and filters, data abstraction,object-orientation, event-based systems, layered systems, repositories, interpreters, process-control systems. *Desenho, avaliação e refinamento de arquitecturas de software. *Representação e Documentação de arquitecturas de software. *Reutilização de arquitecturas de software: linhas de produção, frameworks, componentes de software. Casos de Estudo *Estudo de arquitecturas simples. *Estudo de arquitecturas tecnológicas complexas.

Bibliografia Obrigatória

Erich Gamma... [et al.]; Design patterns. ISBN: 0-201-63361-2

Bibliografia Complementar

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

Métodos de ensino e atividades de aprendizagem

As aulas teóricas são utilizadas tanto para a exposição formal dos principais conhecimentos da disciplina como para a apresentação final e discussão dos projectos desenvolvidos pelos alunos ao longo do semestre. Por forma a focar a atenção dos alunos 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 alunos terão oportunidade de colocar em prática os conhecimentos transmitidos através de pequenos exercícios, jogos de simulação e desenvolvimento incremental de um projecto de média dimensão. As questões, os exercícios e o projecto conjuntamente incentivarão os alunos a complementar os conhecimentos transmitidos com outros conhecimentos resultantes de pesquisas individuais efectuadas sobre os conteúdos da disciplina.

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

50% no Teste. 50% no Projecto.

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.

Observações

A disciplina pressupõe conhecimentos de engenharia de software e experiência de desenvolvimento de sistemas de software.

Atualização por motivos COVID-19: o mini-teste presencial previsto é substituido por um trabalho escrito individual, com o mesmo peso relativo na avaliação e esforço total (estudo e escrita) similar. 

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-11-09 às 05:14:00 | Política de Utilização Aceitável | Política de Proteção de Dados Pessoais | Denúncias