Requisitos e Arquitetura de Software (2019/2020) - Departamento de Informática
Descrição

O sucesso de um projeto de software é dado pelo nível com que atende o propósito pretendido. A Engenharia de Requisitos oferece formas de descobrir esse objetivo, através da identificação, especificação e documentação dos stakeholders (ou partes interessadas), dos seus objetivos e necessidades de uma forma que sirva para comunicação, análise e implementação. Muitos desses objetivos são difíceis de especificar, podem estar em conflito e são difíceis de satisfazer. O entendimento de tais objetivos é essencial para realizar decisões arquiteturais bem informadas. Esta unidade curricular estuda os vários tipos de requisitos e usa requisitos não-funcionais e análise de conflitos para a derivação da arquitetura de software.

Objectivos

Objectivo: estudo dos vários tipos de requisitos como pilares orientadores da arquitetura de software. Os requisitos não-funcionais (NFRs) e análise de conflitos servem de base para derivação sistemática da arquitetura de software.

Compreender:

Saber:

Saber fazer:

Programa

1. Introdução
1.1 A natureza e a importância da Engenharia de Requisitos
1.2 Requisitos como drivers da Arquitetura de Software
1.3 Arquitetura de software e sua importância na evolução do software

2. Processo de Engenharia de Requisitos
2.1 Processos e modelos de engenharia de requisitos
2.2 Requisitos Elicitação e Exploração (Design Thinking, Brainstorming)
2.3 Análise e Negociação de Requisitos (gestão de conflitos e priorização)
2.4 Validação de Requisitos (Inspeções, protótipos, validação de modelo e teste de requisitos)
2.5 Gestão de Requisitos
2.6 Padrões de documentação de requisitos ((por exemplo, IEEE 830-1998)

3. Técnicas de engenharia de requisitos
3.1 Métodos para especificação de requisitos
3.2 Estrutura de requisitos não funcionais (Refinamento e operacionalização)
3.3. Modelação baseada em objetivos com iStar (modelagem organizacional intencional)
3.4 Derivação de modelos orientados a objetos (mapeamentos entre paradigmas, modelos e conceitos)

4. Fundamentos de desenho arquitetural
4.1 Princípios de arquitetura de software
4.2 Mapeamento de requisitos para conceitos arquiteturais
4.3 Documentação da arquitetura de software

5. Técnicas de arquitetura de software
5.1 Estruturação do sistema e decomposição modular
5.2 Vistas arquiteturais
5.3 Estilos e padrões arquiteturais (catálogos de arquiteturas de software)
5.4 Linguagens de descrição arquiteturais
5.5 Avaliação da arquitetura

6. Avanços em requisitos e arquitetura
6.1 Questões transversais
6.2 Análise de Domínio e Linhas de Produto de Software

Bibliografia Principal
Requisitos Prévios

Métodos de Desenvolvimento de Software

Engenharia de Software

Linguagens de Modelação para Domínios Específicos

Esforço do Aluno
  Horas por crédito 28
  Horas p/ semana Semanas Horas
Total de Horas 0
ECTS 6.0