Faculdade de Ciências e Tecnologia

Requisitos e Arquitetura de Software

Código

11171

Unidade Orgânica

Faculdade de Ciências e Tecnologia

Departamento

Departamento de Informática

Créditos

6.0

Professor responsável

Ana Maria Dinis Moreira

Horas semanais

4

Total de horas

4

Língua de ensino

Português

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.

Saber:

  • Lidar com desafios colocados pela dimensão, objectivos contraditórios e descrição deficiente dos problemas reais.
  • Compreender as vantagens da sistematização e reutilização planeada para a derivação da arquitetura.
  • Ponderar a arquitectura com base em alternativas nem sempre disjuntas.

Saber fazer:

  • Aplicar abordagens orientadas a objectivos para identificar, especificar, validar e gerir requisitos.
  • Usar o NFR Framework para refinar NFRs e resolver conflitos.
  • Analisar alternativas arquiteturais e escolher para satisfazer as restrições impostas pelos NFRs, promovendo a derivação sistemática da arquitetura.
  • Descrever arquiteturas usando visões, padrões e estilos.

Utilizar linguagens de descrição arquitetural ferramentas automáticas.

Pré-requisitos

Métodos de Desenvolvimento de Software;

Engenharia de Software;

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

Conteúdo

1. Introduction
1.1 The nature and importance of Requirements Engineering
1.2 Requirements as drivers of Software Architecture
1.3 Software Architecture and its importance in evolution

2. Requirements Engineering Process
2.1 Requirements engineering processes and models
2.2 Requirements Elicitation and Exploration (Design Thinking, Brainstorming)
2.3 Requirements Analysis and Negotiation (Conflict management and prioritisation)
2.4 Requirements Validation (Inspections, prototypes, model validation and requirements testing)
2.5 Requirements Management  (Variable and enduring requirements, change management, traceability)
2.6 Requirements documentation standards ( (e.g., IEEE 830-1998)

3. Requirements Engineering Techniques
3.1 Methods for requirements specification
3.2 Non-Functional Requirements Framework (Refinement and operationalization)
3.3. Goal-based Modelling with iStar (Intentional organizational modeling)
3.4 Derivation of object-oriented models (Mappings between paradigms, models and concepts)

4. Software Architecture Design Fundamentals
4.1 Software Architecture principles
4.2 Mapping requirements to architectural concepts
4.3 Documenting Software Architecture

5. Software Architecture Techniques
5.1 System structuring and modular decomposition
5.2 Architectural views
5.3 Architectural styles and patterns (catalogs of software architectures)
5.4 Architectural description languages
5.5 Architecture evaluation

6. Advances in requirements and architecture
6.1 Crosscutting concerns
6.2 Domain Analysis and Software Product Lines

 

Bibliografia

  • An Introduction to requirements Engineering, I. K. Bray, Addison-Wesley, 2002
  • K. Wiegers, J. Beatty, Software Requirements, Microsoft Press, 2013
  • J.Dick, E. Hull, K. Jackson, Requirements Engineering,  Springer-Verlag, 2010 
  • A. Lamsweerde, Requirements Engineering, Wiley, 2009
  • I. Alexander, N. Maiden, Scenarios, Stories, Use Cases: Through the Systems Development Life-Cycle, Wiley, 2004
  • G. Kotonya, I. Sommerville, “Requirements Engineering: Processes and Techniques”, Wiley, 1998
  • I. Alexander, R. Stevens,  “Writing Better Requirements”, Addison Wesley, 2002
  • R. N. Taylor, et al, "Software Architecture: Foundations, Theory, and Practice" John Wiley and Sons, 2009
  • L. Bass, et al, "Software Architecture in Practice", 2nd edition, Addison-Wesley, 2003
  • P. Clements, et al "Documenting Software Architectures: Views and Beyond", Addison-Wesley, 2003.

Método de avaliação

**As regras de avaliação podem sofrer ajustes durante as duas primeiras semanas de aulas**

A avaliação consiste em duas componentes obrigatórias:

(i) Trabalho prático (50%) com entregáveis ao longo do semestre;

(ii) Dois testes (50%).

O trabalho (e respectivo relatório) é realizado em grupos de 2-3, e os testes individualmente.

A nota é uma média ponderada do trabalho prático (50%), e da nota dos testes (25% cada um).

A frequência é dada pelos trabalhos e apenas alunos com média superior a 9.5 valores têm frequência.

Os alunos que não cumprirem qualquer uma das componentes de avaliação são classificados como "Reprovados" e “Ausentes” caso não entreguem qualquer componente de avaliação.

O exame de época de recurso é para alunos que têm frequência, mas que não obtiveram um desempenho satisfatório na avaliação contínua, com média entre 9.5 e 20, ou que desejam fazer melhoria.

Para melhorias de nota realizadas na época de recurso do semestre em que foi obtida aprovação na cadeira, as regras de cálculo da nota são as da época de recurso, ou seja, a nota final é a nota do exame. Melhorias de notas obtidas em semestres anteriores são feitas exclusivamente por exame, em época de recurso ou época especial, sendo a nota final a nota obtida no exame.

Na época especial, a nota final é a nota do exame.

Cursos