Roteiro de Aula – Introdução à Engenharia de Requisitos
1. O que é Engenharia de Requisitos?
Segundo a norma IEEE 610.12-1990 (Standard Glossary of Software Engineering Terminology), Engenharia de Requisitos é definida como:
“A discipline within software engineering that focuses on determining and documenting the functions and constraints of software systems.”
(Uma disciplina dentro da engenharia de software que se concentra em determinar e documentar as funções e restrições de sistemas de software.)
- Definição: processo de identificar, documentar, analisar e manter os requisitos de um sistema.
- Papel no ciclo de vida de software: serve como base para desenvolvimento, testes, validação e manutenção.
- Relevância: um dos principais fatores de sucesso (ou fracasso) em projetos de software.
- [Fonte: Sommerville, Ian. Engenharia de Software, 10ª ed.]
2. Tipos de Requisitos
- Requisitos Funcionais: descrevem o que o sistema deve fazer.
- Requisitos Não Funcionais: características como desempenho, usabilidade, segurança.
- Requisitos de Domínio: específicos do contexto ou área de negócio.
- Exemplo prático:
- Funcional: “O sistema deve permitir login com CPF e senha.”
- Não funcional: “O tempo de resposta deve ser menor que 2 segundos.”
- De domínio: “Deve seguir a Lei 8.666/93 para licitações públicas.”
- [Fonte: Karl Wiegers, Software Requirements]
3. Importância da Clareza e Comunicação
- Requisitos mal definidos causam retrabalho, atrasos e insatisfação do cliente.
- Engenharia de requisitos é uma ponte entre o problema do cliente e a solução técnica.
- Técnicas para evitar ambiguidade: linguagem estruturada, critérios de aceitação, validação com stakeholders.
- [Fonte: IEEE Std 830-1998 – Recommended Practice for Software Requirements Specifications]
4. Fases da Engenharia de Requisitos
- Elicitação: entender o que o cliente precisa.
- Análise: detectar conflitos, priorizar, refinar.
- Especificação: documentar requisitos de forma clara.
- Validação: garantir que os requisitos estão corretos e completos.
- Gerenciamento: lidar com mudanças durante o projeto.
- [Fonte: Pressman, Roger. Engenharia de Software, 8ª ed.]
5. O Papel dos Stakeholders
- Quem são os stakeholders? Clientes, usuários finais, analistas, desenvolvedores, gerentes.
- A importância da escuta ativa e negociação.
- Técnicas de levantamento: entrevistas, observação, questionários, brainstorming.
- [Fonte: Paula Filho, Engenharia de Requisitos]
6. Exercício em sala
- Levantamento de requisitos com base em um estudo de caso simples.
- Identificar 3 requisitos funcionais, 2 não funcionais e 1 de domínio.
- Apresentar as justificativas em pequenos grupos.
7. Estudo de Caso – Sistema de Biblioteca Universitária
Contexto:
A universidade quer desenvolver um sistema para gerenciar o empréstimo de livros em sua biblioteca. O sistema será usado por alunos, professores e bibliotecários. A principal motivação é modernizar o controle de empréstimos, devoluções, reservas e multas.
Objetivo:
Com base no cenário acima:
- Identifique 3 requisitos funcionais
- Identifique 2 requisitos não funcionais
- Identifique 1 requisito de domínio
- Justifique por que você classificou cada item dessa forma
Exemplo de resposta:
Requisitos Funcionais:
- O sistema deve permitir que o aluno pesquise livros pelo nome, autor ou código.
- O sistema deve registrar a data de empréstimo e devolução de cada livro.
- O bibliotecário deve poder aplicar multa por atraso na devolução.
Requisitos Não Funcionais:
- O tempo de resposta da busca de livros deve ser inferior a 3 segundos.
- A interface deve estar disponível em português e inglês.
Requisito de Domínio:
- O sistema deve permitir um empréstimo máximo de 5 livros por usuário, conforme o regulamento da biblioteca da universidade.