Engenharia de Software (2021/2022) - Departamento de Informática

Informação adicional: https://moodle.fct.unl.pt/course/view.php?id=7054

Descrição

Esta cadeira é destinada a alunos do 3º ano do MEI, em substituição da antiga cadeira Métodos de Desenvolvimento de Software (MDS) do MIEI igualmente do 3º ano. Sendo uma cadeira nova, a frequência obtida em MDS não transita para a cadeira de SE. Mais, esta cadeira não substitui a antiga cadeira "Engenharia de Software" do MIEI 4º ano.

Esta unidade curricular é o ponto de partida para expor os alunos a sistemas de média ou grande dimensão, desenvolvidos por terceiros, desenvolvendo capacidades de análise e compreensão de código para posterior evolução, segundo uma abordagem DevOps. Equipas de até 6 alunos estendem projectos open source existentes (em domínios diversos tais como jogos, aplicações de negócio e ferramentas de desenvolvimento), com novas características. Para isso, os alunos aprenderão e usarão na prática um conjunto de metodologias de desenvolvimento e evolução de software, desde os requisitos à implementação e teste do software, sendo fundamental a utilização de técnicas planeadas de reutilização como a utilização de padrões e frameworks e de engenharia reversa. Os vários passos do processo de desenvolvimento (análise, especificação, desenho de solução, implementação, testes e operação) serão apoiados por tecnologias adequadas e tipicamente usadas na indústria.

Objectivos

Esta UC de 9 ECTS tem por objectivo dotar os alunos de competências para analisar sistemas complexos existentes, e fazê-los evoluir usando metodologias e ferramentas tipicamente usadas na indústria. Assim, o aluno deve:

Programa
Bibliografia Principal

Ian Sommerville, Software Engineering, Pearson, 10th edition, 2015

Jim Arlow and Ila Neustadt, UML 2 and the Unified Process: Practical Object-Oriented Analysis and Design (2nd Edition), Addison-Wesley Professional; 2 edition, July 7, 2005

Lanza M.; Marinescu R. Object-Oriented Metrics in Practice. Springer 2006. ISBN-10 3-540-24429

L. Bass, P. Clements, R. Kazman, "Software Architecture in Practice", 3rd edition, Addison-Wesley, 2012

Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, 1995

Len Bass, Ingo Weber, Liming Zhu, DevOps: A Software Architect''s Perspective (SEI Series in Software Engineering), Pearson Education, 2015

S Demeyer, T Mens, Software Evolution, Springer, 2008

Glenford J. Myers, The Art of Software Testing, Third Edition, John Wiley & Sons, Inc., 2011


Requisitos Prévios

Esta cadeira tem como requisitos desejáveis base ter passado à cadeira de "Introdução à Programação" e "Programação Orientada a Objectos".

Esforço do Aluno
  Horas por crédito 28
  Horas p/ semana Semanas Horas
Aulas práticas e laboratoriais   2.0
Aulas teóricas   3.0
Avaliação   6.0
Estudo   60.0
Projectos e trabalhos   116.0
Total de Horas 187
ECTS 9.0