Departamento de Informática (UM)

Página de Unidade Curricular

DesignaçãoCódigoCursoRegimeRegente

Tópicos de Desenvolvimento de Software

14621 [ME78ME7800006560]

Mestrado em Engenharia Informática [MEINF]

S2

João Alexandre Baptista Vieira Saraiva

Objetivos

Os conteúdos programáticos incluídos nesta UC incluem diferentes técnicas avançadas de desenvolvimento de. Cada um dos conteúdos aborda uma área específica de desenvolvimento de software e está diretamente relacionado com cada um dos objetivos de aprendizagem. A apresentação dos conteúdos será ainda apoiada por ferramentas de software que implementam os conceitos apresentados e que os alunos terão de utilizar no desenvolvimento de um projeto prático.

Programa

1. Metodologias de desenvolvimento de software
2. Desenvolvimento ágil de software
3. Desenvolvimento de software orientado a aspectos
4. Linhas de produtos de software
5. Linguagens de modelação
6. Linguagens de modelação específicas de domínio
7. Engenharia reserva
8. Inferência de modelos
9. Transformações de modelos
10. Modelo para modelo
11. Modelo para texto
12. (Co-)Evolução de modelos
13. Sincronização de modelo / instância
14. Reparação de modelos

Bibliografia

Software Product Lines: Practices and Patterns, Paul Clements and Linda Northrop, Addison-Wesley, August 2001.

Generative Programming - Methods, Tools, and Applications, Krzysztof Czarnecki and Ulrich W. Eisenecker, Addison-Wesley, June 2000.

Model Driven Engineering: An Emerging Technical Space, Bézivin J. (2006) In: Lämmel R., Saraiva J., Visser J. (eds) Generative and Transformational Techniques in Software Engineering. GTTSE 2005. Lecture Notes in Computer Science, vol 4143. Springer, Berlin, Heidelberg.

Aspect-oriented software development, Filman, Robert, Tzilla Elrad, Siobhán Clarke, and Mehmet Akşit. Addison-Wesley Professional, 2004.

Agile software development: the cooperative game, Cockburn, A., 2006. Pearson Education.

Resultados da aprendizagem

- Entender as diferentes metodologias de desenvolvimento de software
- Entender o paradigma de desenvolvimento de software orientado a aspectos
- Entender como desenvolver software usando linhas de produtos de software
- Entender o uso de linguagens de modelação de propósito geral e específicas de domínio
- Entender o processo de engenharia reserva
- Entender transformações de modelos para modelos e modelos para texto
- Entender a evolução de modelos e a correspondente co-evolução de instâncias (sincronização)
- Entender as diferentes estratégias de reparação de modelos.

Método de avaliação

A avaliação terá em conta duas componentes de avaliação: um teste individual e um projeto em grupo. A nota final terá em conta estas duas componentes bem como uma avaliação contínua ao longo das aulas onde a motivação e interesse do aluno serão considerados na avaliação. O aluno está aprovado a esta disciplina quando a média das várias componentes atingir a nota 10.

Funcionamento

Turno: T 1; Docente: Rui António Ramada Rua; Dep.: DI; Horas: 15.
Turno: PL 1; Docente: Rui António Ramada Rua; Dep.: DI; Horas: 30.

[ Outras UCs do Departamento ]