Engenharia de Software

Objetivos

Saber:

  • Princípios, objetivos e conceitos fundamentais da Engenharia de Software.
  • As problemáticas do desenvolvimento de software em larga escala.
  • Gestão de software.
  • Técnicas e ferramentas de análise de requisitos, arquitetura de software e desenho.
  • Introdução ao desenho arquitetural.
  • Gestão da variabilidade: Linhas de Produtos de Software.
  • Qualidade do software.
  • Verificação e Validação (V&V).
  • Evolução do software.

Saber fazer:

  • Gerir um projeto de software, incluindo pessoas, tarefas e custos.
  • Identificar e especificar os vários tipos de requisitos.
  • Selecionar alternativas arquiteturais básicas.
  • Modelar e desenhar o software com vista à reutilização em larga escala.
  • Modelar e desenhar o software com vista à evolução.
  • Aplicar as técnicas de V&V.
  • Aplicar as várias técnicas e usar ferramentas típicas de engenharia de software.

Caracterização geral

Código

1405

Créditos

6.0

Professor responsável

Ana Maria Diniz Moreira, João Baptista da Silva Araújo Júnior

Horas

Semanais - 4

Totais - A disponibilizar brevemente

Idioma de ensino

Português

Pré-requisitos

Métodos de desenvolvimento de software

Bibliografia

  • I. Sommerville, Software Engineering,  Pearson, 10th edition, 2015
  • R.S. Pressman, Software Engineering: A Practitioner''''''''''''''''s Approach, 8th edition,  McGraw-Hill, 2014
  • B. Hughes, M. Cotterell, Software Project Management, McGraw-Hill Higher Education; 5th edition, 2009.
  • A. Lamsweerde, Requirements Engineering, Wiley, 2009
  • I. Alexander, N. Maiden, Scenarios, Stories, Use Cases: Through the Systems Development Life-Cycle, Wiley, 2004
  • S. Pfleeger, J. Atlee, Software Engineering - Theory and Practice, Prentice Hall, 2005
  • L. Bass, P. Clements, R. Kazman, "Software Architecture in Practice", 3rd edition, Addison-Wesley, 2012.
  • C. Kaner, J. Falk, H. Q. Nguyen, Testing Computer Software, 2nd Edition, Wiley, 1999
  • T. Mens, S. Demeyer, Software Evolution, Springer, 2010

Método de ensino

No início das aulas os alunos receberão o planeamento para os tópicos de investigação e o trabalho prático, incluindo os pontos que devem ser endereçados. Cada ponto está relacionado com tópicos específicos apresentados nas teóricas. Um prazo é dado para a entrega dos trabalhos.

As aulas teóricas são dadas em sala de aula equipada com um projetor e slides em Powerpoint. As aulas práticas são realizadas em salas equipadas com computadores e projetor.

Método de avaliação

A avaliação consiste das seguintes componentes obrigatórias: um trabalho prático entregue em duas fases; 2 testes. O trabalho é realizado em grupo e o exame, individualmente. A nota é uma média ponderada do trabalho prático (Fase I = 20%; Fase II = 30%), e da nota dos testes (Teste I = 25%; Teste II = 25%).

Trabalho prático: Um trabalho prático obrigatório entregue em duas fases, valendo 20% (da nota final) na 1ª fase e 30% (da nota final) na 2ª fase. Para obter frequência, a média ponderada das duas fases deve ser superior ou igual a 9,5.

Testes: 2 testes valendo cada um 25%  da nota final. O aluno deve obter um valor  de 9,5 no mínimo, na média dos testes, caso contrário deverá ir a recurso caso tenha obtido frequência (dada pelo trabalho prático). A nota final é uma média ponderada das notas dos testes (25% cada), da 1ª fase do trabalho prático (20%) e da 2ª fase do trabalho prático (30%). Os testes são sem consulta. Os testes serão, à partida, presenciais. Se não for possível, passarão a online.

O acesso ao exame é dado exclusivamente a alunos com frequência válida, obtida este semestre ou no ano lectivo anterior, e a alunos em melhoria de nota. Em época de recurso, a nota do exame substitui a nota dos testes, mantendo-se a regra da nota mínima de 9,5 valores do exame, para cumprir parcialmente os critérios de aprovação. Portanto, se a nota do exame de recurso for menor que 9,5 o aluno é reprovado, caso contrário a nota final = (Nota do exame + média ponderada do trabalho)/2. O mesmo se aplica em época especial. Alunos sem qualquer avaliação durante o semestre terão a classificação de "Ausente". O exame também é sem consulta. O exame será, à partida, presencial. Se não for possível, passará a online.

A melhoria de todas as componentes só pode ser efetuada por frequência da UC no ano letivo imediatamente após aquele em que foi obtida a aprovação, submetendo-se o estudante, nesse ano, a todas as componentes de avaliação ao longo do período de aulas, carecendo de autorização do regente para a sua realização.  

Conteúdo

1. Motivação para Engenharia de Software

1.1 Princípios e objetivos da Engenharia de Software

1.2 Conceitos, atividades de software, ética profissional

 

2. Modelos de processo de software

2.1 Modelos tradicionais de ciclo de vida do software 

2.2. O desenvolvimento ágil

 

3. Gestão de software

3.1 Gestão de pessoas

3.2 Gestão de risco

3.3 Gestão de configuração

 

4. Modelação conceptual

4.1 Modelação de processos de negócio com BPMN (Business Process Modeling Notation)

4.2 Modelos de requisitos com orientação a objetivos com a abordagem KAOS

4.3 Modelação do dominio da solução

 

5. Reuso de Software 

5.1 Conceitos e panorama de técnicas de reuso

5.2 Linhas de produtos de software (engenharia do domínio e engenharia da aplicaçãp)

 

6. Qualidade do software

6.1 V&V

6.2 Prototipagem

6.3 Modelos de maturidade 

 

7. Evolução de Software

8.1 Envelhecimento de software

8.2 Mudança de software

Cursos

Cursos onde a unidade curricular é leccionada: