Requisitos e Arquitetura de Software (2021/2022) - 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 maneiras de descobrir esse propósito, através da identificação, especificação e documentação dos objetivos e necessidades dosstakeholders (ou partes interessadas) 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. Compreender tais objetivos é essencial para realizar decisões arquiteturais bem informadas.

A Arquitectura de Software, por outro lado, cria e documenta a estrutura de alto nível de um sistema de software. Esta estrutura é compostas pelos módulos de software que definem as propriedades externamente visíveis desses módulos e as relações entre eles.

Esta unidade curricular estuda os vários tipos de requisitos e usa atributos de qualidade e análise de conflitos para a derivação de arquiteturas de software.

Objectivos

Objectivo: estudo dos vários tipos de requisitos como pilares orientadores da arquitetura de software. Os requisitos da sustentabilidade, os requisitos não-funcionais (NFRs) e análise de conflitos servem de base para a 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 Elicitação, Especificação e Exploração de Requisitos
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 elicitação de requisitos(e.g.,Design Thinking,Brainstorming,Checklists)
3.2 Métodos para especificação de requisitos (e.g., Goal-oriented, Object-Oriented)
3.3 Estrutura de requisitos de sustentabilidade e dos requisitos não funcionais (Refinamento e operacionalização)
3.4 Modelação baseada em objetivos (modelagem organizacional intencional)
3.5 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

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
Aulas práticas e laboratoriais   26.0
Aulas teóricas   26.0
Avaliação   6.0
Estudo   30.0
Projectos e trabalhos   80.0
Total de Horas 168
ECTS 6.0