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

Arquitetura e Desenho de Software

Código: MESW0003     Sigla: ADS

Áreas Científicas
Classificação Área Científica
CNAEF Ciências informáticas

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

Ativa? Sim
Página Web: https://moodle.up.pt/course/view.php?id=2146
Unidade Responsável: Departamento de Engenharia Informática
Curso/CE Responsável: Mestrado em Engenharia de Software

Ciclos de Estudo/Cursos

Sigla Nº de Estudantes Plano de Estudos Anos Curriculares Créditos UCN Créditos ECTS Horas de Contacto Horas Totais
MESW 19 Plano Oficial a partir do ano letivo 2016/17 1 - 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

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 e utilizando um método de desenvolvimento baseado em componentes.
• 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)

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.

Estilos de Arquitectura
• Os principais estilos arquitecturais
• Exemplos de estilos de arquitetura: pipes and filters, data abstraction, object-orientation, event-based systems, layered systems, repositories, interpreters, process-control systems.

Padrões de Software
• 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.

Desenho orientado a Objetos
• Os princípios SOLID
• Code Smells
• Refatoração e Refatoração para Padrões
• Tópicos avançados de orientação a objetos

Bibliografia Obrigatória

Gamma Erich 070; Design patterns. ISBN: 0-201-63361-2
Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, Michael Stal; Pattern-Oriented Software Architecture Volume 1: A System of Patterns, Wiley, 1996. ISBN: 978-0471958697

Bibliografia Complementar

Bass Len; Software Architecture in Practice. ISBN: 0-201-19930-0
Martin Fowler; Refactoring. ISBN: 0-201-48567-2

Métodos de ensino e atividades de aprendizagem

As aulas terão uma componente teórica, utilizada 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 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 com exame final

Componentes de Avaliação

Designação Peso (%)
Exame 40,00
Participação presencial 10,00
Trabalho prático ou de projeto 50,00
Total: 100,00

Componentes de Ocupação

Designação Tempo (Horas)
Estudo autónomo 30,00
Frequência das aulas 36,00
Trabalho laboratorial 90,00
Total: 156,00

Obtenção de frequência

Não exceder os limites de faltas e participar ativamente nos trabalhos práticos que estarão sujeitos a avaliação.

Os alunos dispensados das regras de frequência devem, em períodos de tempo definidos com o professor, apresentar a evolução dos seus trabalhos e participar nas sessões finais das apresentações como alunos regulares.

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

Avaliação Distribuída = Projecto * 0.5 + Participação Individual * 0.1
Avaliação Final = Avaliação Distribuída * 0.60 + Exame * 0.40

Todas as componentes têm uma classificação mínima de 40%.
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-07-27 às 03:40:37 | Política de Utilização Aceitável | Política de Proteção de Dados Pessoais | Denúncias