Prévia do material em texto
Engenharia de Requisitos de Software Tipos de Requisitos O que são Requisitos? 2 “Os requisitos de um sistema são as descrições do que o sistema deve fazer, os serviços que oferece e as restrições a seu funcionamento. Esses requisitos refletem as necessidades dos clientes para um sistema que serve a uma finalidade determinada, como controlar um dispositivo, colocar um pedido ou encontrar informações. O processo de descobrir, analisar, documentar e verificar esses serviços e restrições é chamado Engenharia de Requisitos.” Ian Sommerville Importância dos Requisitos 3 A falta de cuidado com os requisitos pode levar a: ❖ Construção de um sistema que resolve o problema errado; ❖ Não funciona como esperado; ❖ Difícil para os usuários entenderem e utilizarem; ❖ Alto custo. Vale a pena utilizar algum tempo para entender o problema e seu contexto, e obter os requisitos certos na primeira vez. Análise de Requisitos 4 A Análise de Requisitos consiste na primeira atividade (etapa) dos ciclos de vida (ou modelos de processos que vimos na aula anterior) e visa identificar as necessidades do cliente e os objetivos do software bem como especificar as funcionalidades do mesmo. Ocorre em 2 momentos: ○ Conceitualmente (classificação em RF e RNFs); ○ Modelagem gráfica – UML (Diagrama de Casos de Uso); E em diferentes visões: ○ Sistema (engenharia de requisitos); ○ Cliente/usuário; ○ Equipe de Software (analista, projetista, desenvolvedor, DBA, tester...). Análise de Requisitos 5 OBJETIVO: escrever um documento que possa ser estudado para construir o sistema requerido. Documentação: SRS (Software Requirements Specification) ou, em português, Especificação dos Requisitos de Software. DIFICULDADES DA ANÁLISE: Todo processo de análise de requisitos é um processo de comunicação! - Em todo processo de comunicação há interpretações errôneas, redundâncias e ambiguidades. 6 CAMISETA: até tento ler sua mente, mas só retorna void Requisitos de Software 7 São declarações do que um sistema deve fazer ou, em outras palavras, são características ou funções que os sistemas devem possuir para que atendam aos objetivos do(s) cliente(s) e resolvam um conjunto de problemas. ✓ São definidos sobre as demandas do cliente; ✓ Dependem das tarefas cuja execução será suportada pelo sistema; ✓ Dependem das necessidades específicas do(s) cliente(s) que utilizará(ão) o sistema; Requisitos de Software 8 CURIOSIDADE: Nº DE REQUISITOS POR PROJETO SISTEMA ERP (Enterprise Resource Planning) ~1000 REQUISITOS BOEING 777 ~300.000 REQUISITOS Classificação de Requisitos: 9 ➢ Requisito Usuário-Cliente x Sistema; Requisitos usuário x sistema 10 Requisitos do usuário: ➢ Declarações em linguagem natural e também em diagramas sobre as funções que o sistema deve fornecer e as restrições sob as quais deve operar. Escrito para os usuários. Requisitos do sistema: ➢ Um documento estruturado que estabelece detalhadamente as funções e as restrições de sistema. Define o que deve ser implementado. Escrito para os desenvolvedores. Requisitos Funcionais - RF 11 Descrições das funções/funcionalidades que o sistema deve possuir, e estão ligadas ao domínio do problema. Em outras palavras: é a descrição de uma demanda/necessidade do usuário e não está ligada a uma característica computacional. Definem as funcionalidades e o comportamento do sistema: ➢ mediante cada entrada; ➢ é aquilo que descreve o que o sistema tem que fazer a cada ação de um usuário ou outro sistema. Requisitos Funcionais – Exemplos: 12 ✓ Deve ser possível realizar cadastros de produtos, com código único, categoria, descrição e preço. ✓ Deve ser possível cadastrar uma venda no sistema, com um identificador único, data, hora, valor total, quantidade de itens. ✓ O sistema deve permitir o cadastrar todos os materiais da biblioteca incluindo livros, revistas, periódicos, vídeos, mídias, monografias. ✓ O sistema deverá permitir que os usuários procurem por um livro/revista/mídia pelo título, assunto ou editora (cada um desses é um requisito); ✓ É necessário que cada usuário se autentique no sistema por meio de login (e-mail) e senha. Requisitos Funcionais – Exemplos: 13 Requisitos Funcionais 14 Em princípio, a especificação de requisitos funcionais deve ser completa e consistente. ➢ Completeza: ➢ Todas as funções requeridas pelo usuário devem estar definidas; ➢ Consistência: ➢ Não devem haver definições contraditórias de requisitos. Na prática, é quase impossível atingir a consistência e a completeza dos requisitos. Requisitos Funcionais 15 Algumas questões que nos ajudam a definir os Requisitos Funcionais: ➢ O que o sistema deve fazer? ➢ Quando ele deve atuar? ➢ Quais cálculos devem ser realizados? ➢ Como o sistema deve reagir a eventos externos? Requisitos Não Funcionais - RNF 16 Descrições de interesse do usuário mas que tem características computacionais (desempenho, normas técnicas – ISO, tempo de processamento, backup, portabilidade, segurança, sistemas operacionais, uso de determinados softwares - licenças gratuitas, por exemplo). São também chamados de restrições ou requisitos de qualidade! ✓ O que se espera do sistema em termos de qualidade e normas/padrões que devem conduzir o seu funcionamento e construção; ✓ Descrevem restrições desejadas ou necessárias, atributos do sistema ou de seu ambiente. Os RNFs podem ser classificados em 3 tipos: PRODUTO, ORGANIZACIONAL e EXTERNO. Requisitos Não Funcionais do PRODUTO 17 Especificam ou restringem o comportamento do produto de software. - Desempenho e velocidade: transações processadas por segundo, tempo de resposta usuário/evento; tempo de atualização – refresh tela; - Limites de armazenamento: memória requerida - bytes necessários; - Limites de capacidade de dispositivos I/O: dispositivos de entrada e saída requeridos e suas especificidades; - Usabilidade: tempo gasto em treinamento, facilidade de uso, interface amigável; - Confiabilidade: tempo médio para falhas, probabilidade de indisponibilidade, taxa de ocorrência de falhas, backup e recuperação, disponibilidade; - Portabilidade: deve funcionar corretamente em diferentes sistemas operacionais ou navegadores; - Documentação: documentação produzida durante o desenvolvimento; - Recursos: pessoais, materiais, financeiros. Requisitos Não Funcionais do PRODUTO 18 EXEMPLOS: Ex.1: Toda consulta de produto baseada em código de barra, deve resultar em até 0,5 segundo. (Desempenho e velocidade) Ex.2: O sistema deve possuir disponibilidade de 24x7 (Confiabilidade) Ex.3: O backup semanal dos dados do sistema é necessário. (Confiabilidade) Ex.4: O sistema deve funcionar corretamente em diferentes navegadores (Chrome, Firefox, Opera, etc) (Portabilidade) Requisitos Não Funcionais ORGANIZACIONAIS 19 Requisitos que são consequência de políticas de procedimentos nas organizações do cliente e do desenvolvedor. - Padrões de processo: normas, ISO, CMMI, MPS.Br, etc; - Implementação: linguagens de programação, SGBD, etc; - Prazos: relativos à entrega do produto. EXEMPLOS: Ex.1: Os relatórios emitidos pelo sistema devem seguir o padrão ABNT. (Padrões de Processo) Ex.2: A linguagem utilizada no desenvolvimento será C#. (Implementação) Ex.3: O sistema deve ser desenvolvido usando ferramentas de software livre Requisitos Não Funcionais EXTERNOS 20 Relacionados a fatores externos ao sistema e ao processo de desenvolvimento: - Interoperabilidade: comunicação com outros sistemas; - Legislação: leis sobre segurança de informações (LGPD), tributações, impostos; - Éticos: privacidade; EXEMPLOS: Ex.1: O sistema será integrado com o módulo de pagamento PagSeguro. (Interoperabilidade) Ex. 2: A tributação dos serviços (ISS) é de 15% em MG. (Legislação) Exercícios: 21 Exercícios: 22 Regras de Negócios - RN 23 Regras de negócio são premissasaplicadas a uma operação comercial de uma empresa, que precisam ser atendidas para o negócio “acontecer”. É possível uma empresa mais arcaica viver sem software, mas mesmo uma empresa arcaica não consegue viver sem regras de negócio. Em uma regra de negócio, a descrição deve ter clareza para que a implementação desta regra tenha sucesso nos resultados, assegurando um entendimento claro de cada regra. Regras de Negócios - RN 24 Exemplo: Para um aluno obter aprovação em uma disciplina, é necessário ter nota >= 60 pontos e frequência >=75% nas aulas do semestre. Se: 40 pontos == 75%, ele estará em recuperação. Para os casos de frequência