SingularCode

ENGSOFT-03

3. Análise e Levantamento de Requisitos

Atualizado em: 26 de fevereiro de 2024

Por: Nelson H. Koshoji

3.1. Definições e Conceitos

Análise e Levantamento de Requisitos são etapas no processo de desenvolvimento de software, que têm como objetivo garantir que o sistema final esteja alinhado com as necessidades e expectativas dos usuários e demais partes interessadas. Essas etapas envolvem uma série de atividades dedicadas a identificar, compreender, documentar e analisar os requisitos do sistema. Vamos explorar esses conceitos e definições com mais detalhes:

 

 

Levantamento de Requisitos (Elicitação de Requisitos):

 

Definição: Levantamento de requisitos, também conhecido como elicitação de requisitos, refere-se ao processo de coletar os requisitos de um sistema a partir de usuários, clientes, e outras partes interessadas. O objetivo é entender o que os usuários precisam do sistema, quais problemas ele deve resolver, e como ele deve se integrar ao ambiente de trabalho ou de uso.

Técnicas:

  • Entrevistas: Conversas estruturadas ou semi-estruturadas com os stakeholders para coletar informações sobre suas necessidades e expectativas.
  • Questionários e Pesquisas: Ferramentas úteis para coletar informações de um grande número de pessoas em um curto período de tempo.
  • Workshops de Requisitos: Sessões interativas que reúnem múltiplos stakeholders para discutir e concordar sobre os requisitos do sistema.
  • Observação: Observar diretamente os usuários em seu ambiente natural de trabalho pode revelar requisitos não expressos verbalmente.
  • Análise de Documentos: Revisar a documentação existente e outros recursos para identificar requisitos implícitos ou explícitos.

 

 

Análise de Requisitos

 

Definição: Uma vez que os requisitos são coletados, a análise de requisitos é o processo de examinar, interpretar e avaliar os dados coletados para determinar as necessidades reais dos stakeholders. Isso inclui priorizar requisitos, identificar conflitos ou ambiguidades, e transformar os requisitos coletados em uma especificação detalhada que será usada como base para o desenvolvimento subsequente.

Objetivos:

  • Validação: Garantir que os requisitos realmente representem o que os stakeholders precisam e esperam do sistema.
  • Priorização: Determinar a importância relativa de cada requisito, ajudando a guiar o planejamento do projeto e a tomada de decisões.
  • Verificação: Certificar-se de que os requisitos são tecnicamente viáveis, dentro do orçamento e do escopo do projeto.

Resultados:

  • Documento de Requisitos de Software: Um documento formal que especifica os requisitos funcionais e não funcionais, restrições, e outros dados necessários para o desenvolvimento.
  • Modelos e Diagramas: Representações visuais dos requisitos, como diagramas UML, que ajudam na compreensão e na comunicação dos requisitos entre a equipe de desenvolvimento e os stakeholders.

 

 

Importância da Análise e Levantamento de Requisitos

 

A análise e o levantamento de requisitos são fundamentais para o sucesso de qualquer projeto de desenvolvimento de software. Eles ajudam a garantir que o produto final atenda às necessidades dos usuários, evitam mal-entendidos e alterações de requisitos tardias, que são fontes comuns de atrasos e custos adicionais. Além disso, um processo de análise de requisitos bem executado pode melhorar significativamente a qualidade do produto final, aumentar a satisfação do usuário e reduzir o tempo e o custo de desenvolvimento.

 

 

3.2. Requisitos

 

Requisitos são especificações detalhadas sobre o que um sistema deve fazer e como deve se comportar sob determinadas condições. Eles são fundamentais no processo de desenvolvimento de software, servindo como a espinha dorsal para o design, implementação e teste do sistema. Os requisitos são geralmente divididos em várias categorias, sendo as mais comuns os requisitos funcionais e não funcionais. Vamos explorar esses conceitos com mais detalhes.

 

Requisitos Funcionais:

 

Definição: Requisitos funcionais descrevem as funções específicas, ações ou comportamentos que o sistema deve realizar. Eles detalham o que o sistema deve fazer, as operações que deve suportar, e como deve reagir a entradas específicas. Os requisitos funcionais são orientados pelas necessidades diretas dos usuários e pelo propósito que o sistema deve servir.

Exemplos:

  • O sistema deve fornecer uma função de busca para que os usuários possam encontrar produtos por nome ou categoria.
  • O sistema deve processar pagamentos através de cartões de crédito e PayPal.

Características:

  • São geralmente descritos como “o sistema deve…” para indicar uma ação ou resultado esperado.
  • Podem ser testados diretamente através de casos de teste para verificar se o sistema atende ao requisito especificado.

 

Requisitos Não Funcionais

 

Definição: Requisitos não funcionais, por outro lado, definem os atributos de qualidade do sistema, como desempenho, segurança, usabilidade, e confiabilidade. Eles não estão relacionados diretamente com as funções específicas que o sistema realiza, mas com como o sistema realiza essas funções. Esses requisitos são fundamentais para garantir a satisfação do usuário e a adequação do sistema ao seu contexto de uso.

Exemplos:

  • O sistema deve responder a todas as consultas de busca em menos de 2 segundos.
  • O sistema deve garantir a segurança dos dados do usuário, utilizando criptografia de ponta a ponta.
  • O sistema deve ser capaz de suportar 10.000 usuários simultâneos sem degradação de desempenho.

Características:

  • São frequentemente expressos como padrões ou métricas que o sistema deve atender.
  • A verificação desses requisitos pode exigir testes especializados, como testes de carga para desempenho ou auditorias de segurança.

 

Importância dos Requisitos Funcionais e Não Funcionais

 

Ambos os tipos de requisitos são essenciais para o sucesso de um projeto de software. Os requisitos funcionais garantem que o sistema atenda às necessidades diretas dos usuários, fornecendo as funcionalidades necessárias. Os requisitos não funcionais, por sua vez, asseguram que o sistema seja confiável, seguro, e agradável de usar, o que é crucial para a aceitação e satisfação do usuário.

A falta de clareza ou a incompletude em qualquer um desses tipos de requisitos pode levar a problemas significativos durante o desenvolvimento, incluindo atrasos, custos adicionais, e um produto final que não atende às expectativas dos usuários. Portanto, uma compreensão clara e uma documentação detalhada dos requisitos funcionais e não funcionais são fundamentais desde as fases iniciais de um projeto de software.

 

3.3. Exemplo:

Para ilustrar como os requisitos funcionais e não funcionais se aplicam a um sistema de e-commerce de livros, vamos criar um cenário hipotético e listar alguns requisitos essenciais para o desenvolvimento e operação bem-sucedidos deste sistema.

 

Cenário: E-commerce de Livros “Leitura Virtual”

“Leitura Virtual” é uma plataforma online que permite aos usuários buscar, revisar, e comprar livros. A plataforma visa oferecer uma experiência de compra fácil e agradável, com uma ampla variedade de títulos disponíveis, desde best-sellers internacionais até obras de autores independentes.

 

Requisitos Funcionais

RF01 – Cadastro de Usuário: O sistema deve permitir que os usuários criem uma conta, fornecendo e-mail, senha, e informações pessoais básicas.

RF02 – Cadastro de Livros: O sistema deve permitir o cadastro de livros com título, autor, gênero ou ISBN, preço, quantidade.

RF03 – Busca de Livros: O sistema deve permitir que os usuários busquem livros por título, autor, gênero ou ISBN.

RF04 – Detalhes do Livro: O sistema deve exibir detalhes dos livros, incluindo título, autor, preço, avaliações e sinopse.

RF05 – Gestão de Carrinho de Compras: Os usuários devem ser capazes de adicionar, remover e alterar a quantidade de itens no carrinho de compras.

RF06 – Processamento de Pagamento: O sistema deve processar pagamentos utilizando métodos como cartões de crédito e PayPal.

RF07 – Histórico de Compras: O sistema deve fornecer aos usuários um histórico de suas compras anteriores.

RF08 – Avaliações e Resenhas: Os usuários devem poder postar avaliações e resenhas sobre os livros que compraram.

RF09 – Recomendações de Livros: O sistema deve oferecer recomendações personalizadas de livros com base no histórico de compras e navegação do usuário.

 

Requisitos Não Funcionais

RNF01 – Login de Usuário (Segurança): O sistema deve permitir que os usuários façam login usando seu e-mail e senha.

RNF02 – Desempenho: O sistema deve responder a todas as consultas de busca em menos de 2 segundos.

RNF03 – Segurança: O sistema deve proteger os dados do usuário, utilizando criptografia SSL para transações e armazenamento seguro de senhas.

RNF04 – Usabilidade: O site deve ser responsivo e fácil de usar em dispositivos móveis e desktops, com um design intuitivo.

RNF05 – Disponibilidade: O sistema deve estar disponível 99,9% do tempo, com manutenção programada realizada fora dos horários de pico.

RNF06 – Escalabilidade: O sistema deve ser capaz de suportar um aumento de até 100% no número de usuários ativos sem degradação de desempenho.

RNF07 – Compatibilidade: O site deve ser compatível com os navegadores mais recentes, incluindo Chrome, Firefox, Safari e Edge.

 

 

Sugestões de Técnicas Aplicadas para o Levantantamento dos Requisitos:

Para elaborar uma entrevista e questionários que poderiam ter levado ao levantamento dos requisitos do e-commerce de livros “Leitura Virtual”, é importante focar em obter insights detalhados sobre as necessidades dos usuários, expectativas e experiências desejadas. Abaixo, apresento um exemplo de como essas ferramentas de coleta de requisitos podem ser estruturadas.

 

Entrevista com Stakeholders

Objetivo: Compreender as expectativas dos stakeholders para o desenvolvimento do e-commerce “Leitura Virtual”.

Público-alvo: Proprietários da loja, gerentes, equipe de marketing, representantes de atendimento ao cliente e potenciais usuários.

Perguntas:

  1. Visão Geral e Objetivos:

    • Qual é o objetivo principal do e-commerce “Leitura Virtual”?
    • Que tipo de livros você planeja vender (gêneros, formatos)?
  2. Funcionalidades e Usabilidade:

    • Quais funcionalidades você considera essenciais para o site?
    • Como você imagina o processo de busca por um livro no site?
    • Que tipo de informações sobre os livros devem ser disponibilizadas aos usuários?
  3. Experiência do Usuário:

    • Quais características você acredita que farão os usuários preferirem “Leitura Virtual” a outros e-commerces de livros?
    • Como você espera que seja a experiência de checkout?
  4. Segurança e Desempenho:

    • Quais são suas principais preocupações em relação à segurança dos dados dos usuários?
    • Existem expectativas específicas sobre o desempenho do site (por exemplo, tempo de carregamento da página)?
  5. Manutenção e Suporte:

    • Como você planeja lidar com atualizações e manutenção do site?
    • Que tipo de suporte ao cliente será oferecido?

 

Questionário para Usuários Potenciais

Objetivo: Identificar as necessidades, preferências e expectativas dos usuários finais.

Formato: Online, com perguntas fechadas e abertas para permitir tanto respostas quantitativas quanto qualitativas.

Perguntas:

  1. Preferências de Compra:

    • Com que frequência você compra livros online?
    • Quais fatores são mais importantes para você ao escolher uma loja online de livros (por exemplo, preço, variedade, facilidade de uso)?
  2. Funcionalidades Desejadas:

    • Que funcionalidades você considera indispensáveis em um e-commerce de livros?
    • Você acha importante poder deixar avaliações e resenhas sobre os livros? Por quê?
  3. Experiência de Navegação:

    • Em uma escala de 1 a 5, quão importante é para você a facilidade de navegação em um site de e-commerce?
    • Você prefere usar dispositivos móveis ou desktop para comprar livros online?
  4. Segurança e Privacidade:

    • Quão preocupado(a) você está com a segurança dos seus dados pessoais e financeiros ao fazer compras online?
    • Você estaria disposto(a) a criar uma conta no site fornecendo informações pessoais para uma experiência de compra personalizada?
  5. Suporte ao Cliente:

    • Como você prefere entrar em contato com o suporte ao cliente em caso de problemas ou dúvidas (chat online, e-mail, telefone)?
    • Qual é a sua expectativa de tempo de resposta para o suporte ao cliente?

 

Conclusão

Através dessas entrevistas e questionários, é possível coletar uma rica variedade de dados que informarão os requisitos do sistema “Leitura Virtual”. As respostas ajudarão a equipe de desenvolvimento a entender melhor as necessidades e expectativas dos stakeholders e dos usuários finais, garantindo que o sistema final seja bem recebido e atenda às demandas do mercado.