Oferta Formativa - Sinopse

Design de Software

Código: 425117
Ano Letivo: 2015/16
Departamento: Informática
ECTS: 6
Carga horária: T: 2:00 h; TP: 1:30 h; OT: 2:00 h;
Área Científica: Informática; 

Objetivos da Unidade Curricular

Engenharia de Software (ES). Pretende-se que os alunos fiquem a conhecer algum contexto e história da ES.
Arquiteturas de Software. Pretende-se familiarizar os alunos com o desenho arquitetural de sistemas de software. Nomeadamente que fiquem a conhecer os principais estilos arquiteturais e suas propriedades e sejam capazes de:
-usar linguagens de descrição de arquiteturas para representar arquiteturas de software;
-conceber arquiteturas alternativas para um sistema e de as avaliar face a determinados requisitos;
-reconhecer conformidade entre implementação e arquitetura.
Linhas de Produto de Software (LPS). Pretende-se familiarizar os alunos com técnicas de desenho de famílias de sistemas de software e de gestão da variabilidade. Nomeadamente que fiquem a conhecer:
-principais desafios e benefícios das LPS;
-desenho e programação de sistemas baseado em aspectos;
-desenho de arquiteturas genéricas através de frameworks OO;
-técnicas generativas;
-model-driven development.


Pré-requisitos

Sem pré-requisitos

Conteúdos

Engenharia de Software: Contexto e história.
Design de Software: Processo de design, noções de qualidade, princípios de desenho.
Arquitectura de Software: Estilos arquiteturais, linguagens de descrição de arquiteturas, técnicas de avaliação e análise, ADD (attribute-driven design)
Linhas de Produto de Software: Engenharia de domínio, técnicas de gestão da variabilidade.

 

Descrição detalhada dos conteúdos programáticos

Componente Teórica

Apresentação da Engenharia de Software. Contextualização nas Engenharias e breve perspetiva histórica do desenvolvimento da disciplina. Identificação dos desafios da complexidade no desenvolvimento do Software.

Caracterização geral do processo de Design de Software. Introdução às noções de qualidade de Software. Apresentação de alguns princípios fundamentais de Design.

Introdução aos conceitos fundamentais de Arquitetura de Software. Descrição das principais estruturas e tipos de vistas. Caracterização dos estilos arquiteturais mais importantes. Introdução às linguagens de descrição de arquiteturas e modelos. Apresentação de alguns cenários e táticas que endereçam atributos de qualidade. Introdução à técnica ADD (Attribute Driven Design). Apresentação de algumas técnicas de avaliação e análise. Caracterização da noção de conformidade entre arquitetura e implementação.

Introdução às Linhas de Produto de Software. Descrição das noções de Análise e Engenharia de Domínio. Apresentação de algumas técnicas de gestão de variabilidade, tais como desenho e programação centrado em aspectos, técnicas generativas e MDD (Model-Driven Development).

 

Componente Teórica-Prática

Não são introduzidos conteúdos programáticos.

 

Componente Prática

Não aplicável.

 

Bibliografia

Recomendada

[B03] Software Design. David Budgen, Addison-Wesley, 2003. ISBN: 0-201-72219-4. 

[BCK03] Software Architecture in Practice. Len Bass, Paul Clements, Rick Kasman , Addison Wesley, 2003. ISBN: 0321154959. 

[C10] Documenting Software Architectures: Views and Beyond (2nd Edition), Paul Clements et al, Addison Wesley, 2010. ISBN: 0321552687.

[CN02] Software Product Lines: Practices and Patterns. Paul Clements e Linda Northrop, 2002. Addison-Wesley. ISBN: 0-201-70332-7. 

[SG96] Software Architectures: Perspectives on an Emerging Discipline. Mary Shaw e David Garlan, Prentice Hall, 1996. ISBN: 0131829572.

 

Outros elementos de estudo

[PBL05] Software Product Line Engineering, K.Pohl, G.Bockle,F.Lindenm 2005. Springer.

[TMD09] Software Architecture: Foundations, Theory and Practice, R.Taylor, N.Medvidovic, E.Dashofty, Wiley, 2009

 

Métodos de Ensino

Nas aulas teóricas são expostos os conteúdos programáticos e casos de estudo ilustrativos; nas aulas teórico-práticas são realizados pequenos exercícios que visam aplicar e raciocinar sobre os conteúdos programáticos expostos nas teóricas.

 

Métodos de Avaliação

A componente prática compreende uma série de três exercícios, nomeadamente pequenos projetos descritos sob a forma de um relatório escrito, e uma apresentação oral da análise de um artigo. A componente teórica corresponde a um exame escrito.

 

Língua de ensino

Inglês caso haja algum aluno estrangeiro que perceba inglês e não perceba português, português caso contrário.