Este artigo apresenta inicialmente algumas definições associadas à engenharia de requisitos e à especificação de requisitos através de casos de uso. Em seguida, são apresentados alguns exemplos reais de especificação utilizando casos de uso.
Para que serve:
O objetivo do artigo é explicitar de forma prática como a especificação dos requisitos do software através de casos de uso podem ser efetuadas em um nível de detalhe tal que informações importantes para outras etapas do desenvolvimento como planejamento de testes, projeto e desenvolvimento não sejam omitidas.
Em que situação o tema é útil:
O assunto abordado é útil no dia a dia do analista de requisitos na realização de suas atividades.
A engenharia de requisitos é um termo usado para descrever as atividades relacionadas à produção (levantamento, registro, validação e verificação) e gerência (controle de mudanças, gerência de configuração, rastreabilidade, gerência de qualidade dos requisitos) de requisitos. A Figura 1 representa essa definição.
Figura 1. Engenharia de Requisitos.
Mas o que podemos entender por requisitos? Existem diferentes definições encontradas na literatura técnica:
· Um requisito é uma característica do sistema ou a descrição de algo que o sistema é capaz de realizar para atingir os seus objetivos;
· As descrições das funções e restrições são os requisitos do sistema;
· Um requisito é uma propriedade que o software deve exibir para resolver algum problema no mundo real;
· Uma condição ou uma capacidade que deve ser alcançada ou estar presente em um sistema para satisfazer um contrato, padrão, especificação ou outro documento formalmente imposto...
Assim, podemos entender requisitos como sendo o conjunto de necessidades explicitadas pelo cliente que deverão ser atendidas para solucionar um determinado problema do negócio no qual o cliente faz parte. É importante estar atento para esta definição: embora o requisito seja definido pelo cliente, nem sempre o que o cliente quer é o que o negócio precisa. Cabe à equipe de consultores identificar a real necessidade do negócio.
Neste contexto, requisitos são importantes para:
· Estabelecer uma base de concordância entre o cliente e o fornecedor sobre o que o software fará;
· Fornecer uma referência para a validação do produto final;
· Reduzir o custo de desenvolvimento (como vimos anteriormente, requisitos mal definidos causam retrabalho).
A atividade de identificação e especificação de requisitos do software é uma atividade bastante desafiadora. É complexo:
· Identificar as reais necessidades do cliente;
· Lidar com clientes;
· Formalizar as necessidades do cliente através da especificação de requisitos de forma que esta seja de fácil entendimento para o cliente e forneça as informações requeridas pela equipe de desenvolvimento;
· Lidar com domínios desconhecidos. Entende-se por domínio o contexto para o qual o software está sendo desenvolvido. Por exemplo: contabilidade, medicina, controle de estoque. Para ilustrar esta dificuldade, imagine-se elaborando a especificação dos requisitos de um módulo estatístico para um sistema do mercado financeiro;
· Definir as necessidades do usuário em termos de especificações.
O objetivo deste artigo não é apresentar um referencial teórico sobre como lidar com cada questão envolvida nas atividades diárias de um analista de requisitos. Focaremos aqui apenas no último tópico da lista apresentada acima: “Definir as necessidades do usuário em termos de especificações”. Faremos isto de forma totalmente prática através da apresentação de um conjunto de casos de uso especificados que poderão servir de base para suas atividades como analista de requisitos.
Contextualização dos Exemplos
As especificações de casos de uso apresentadas neste artigo são fruto da experiência prática do autor. Eles não servem de gabarito para futuras atividades de especificação, ao invés disso, podem ser considerados um ponto de partida para que possamos ver na prática como podemos escrever casos de uso.
É importante estar atento também ao fato de que os casos de uso apresentados neste artigo refletem as características de escrita dos autores. Estas características que envolvem itens como nível de detalhamento, informações contidas nos casos de uso, dentre outras, costumam mudar também de organização para organização.
Tendo isto em mente, para este artigo iremos considerar o conjunto de definições apresentado na Tabela 1 como sendo importantes na descrição de um caso de uso.
Objetivo: |
Contém uma breve descrição do objetivo do caso de uso. |
Requisitos: |
Neste campo indicamos a qual requisito funcional o caso de uso em questão está associado. |
Atores: |
Neste campo definimos a lista de atores associados ao caso de uso. Ator é qualquer entidade externa que interage com o sistema (neste caso, com o caso de uso em questão). |
Prioridade: |
Informação identificada junto ao usuário que auxilia na definição dos casos de uso que serão contemplados em cada iteração do desenvolvimento do software. |
Pré-condições: |
Neste campo devemos informar as condições que devem ser atendidas para que o caso de uso possa ser executado. |
Freqüência de uso: |
Informação identificada junto ao usuário que auxilia na definição dos casos de uso que serão contemplados em cada iteração do desenvolvimento do software. |
Criticalidade: |
Informação identificada junto ao usuário que auxilia na definição dos casos de uso que serão contemplados em cada iteração do desenvolvimento do software. |
Condição de Entrada: |
Neste campo definimos qual ação do ator dará início à interação com o caso de uso em questão. |
Fluxo Principal: |
Esta é uma das seções principais do caso de uso. É onde descrevemos os passos entre o ator e o sistema. O fluxo principal é o cenário que maisacontece no caso de uso e/ou o mais importante. |
Fluxo Alternativo: |
Fluxo alternativo é o caminho alternativo tomado pelo caso de uso a partir do fluxo principal, ou seja, dada uma condição de negócio o caso de uso seguirá por outro cenário que não o principal caso essa condição seja verdadeira. |
Pós-condições: |
Neste campo devemos informar o estado em que o sistema (ou entidade manipulada no caso de uso) estará depois que o caso de uso for executado. |
Regras de negócio: |
Nesta seção descrevemos todas as regras funcionais que o caso de uso deve cumprir durante sua execução. |
Tabela 1. Conceitos envolvidos na descrição de um caso de uso.
A partir de agora apresentaremos dois exemplos de casos de uso. Procuramos utilizar como exemplo situações corriqueiras no dia a dia do desenvolvimento de software.
[subtítulo]Exemplos de Casos de Uso[/subtítulo]
Inicialmente vamos apresentar um caso de uso contendo a descrição de um cenário de cadastro básico para a entidade Pessoa Física. Este cadastro possui as operações de consulta, inclusão, exclusão e alteração. Sua especificação está apresenta na Tabela 2.
UC1 – Manter Pessoa Física
Objetivo: |
Permitir que funcionários adicionem, consultem, removam ou alterem dados de pessoas físicas. |
Requisitos: |
- |
Atores: |
Funcionário |
Prioridade: |
Baixa |
Pré-condições: |
|
Freqüência de uso: |
Eventual |
Criticalidade: |
Baixa |
Condição de Entrada: |
O Funcionário seleciona a opção Manter Pessoa Física. |
Fluxo Principal: |
1. O sistema apresenta formulário de busca de pessoas físicas contendo as informações: - CPF (campo editável) - Nome (campo editável) - Estado (lista dos Estados brasileiros) - As opções Buscar e Cancelar - A opção Incluir Nova Pessoa Física 2. O ator escolhe a opção Incluir Nova Pessoa Física [A1][A2] 3. O sistema apresenta formulário de cadastro de Pessoas Físicas contendo os seguintes campos a serem preenchidos: (Informações Gerais) - CPF (campo editável) - RG (campo editável) - Nome (campo editável) (Endereços) - Tabela com os endereços cadastrados para a pessoa física que está sendo criada (cada endereço adicionado possui as seguintes informações: Logradouro, Bairro, Complemento, CEP, Município, Estado e País) e a opção de Excluir Endereço ... |
Confira outros conteúdos:
SQL SUM: somando os valores de uma...
SQL: INNER JOIN
SQL: Introdução ao Where
Promoção de Natal
Oferta exclusiva de Natal!
Pagamento anual
12x no cartão
De: R$ 69,00
Por: R$ 59,90
Total: R$ 718,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- 12 meses de acesso
Pagamento recorrente
Cobrado mensalmente no cartão
De: R$ 79,00
Por: R$ 59,90 /mês
Total: R$ 718,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- Fidelidade de 12 meses
- Não compromete o limite do seu cartão
<Perguntas frequentes>
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.