Mudanças entre as edições de "Casos de Uso"
Linha 27: | Linha 27: | ||
==== Exemplo de um Caso de Uso ==== | ==== Exemplo de um Caso de Uso ==== | ||
− | '''Depositar Cheque''' | + | '''Depositar Cheque'''<br> |
− | + | Ator principal: cliente<br> | |
− | Ator principal: cliente | + | 1. Cliente fornece informações de identificação.<br> |
− | + | 2. Cliente insere envelope com cheque a depositar.<br> | |
− | 1. Cliente fornece informações de identificação. | + | 3. Sistema confirma recebimento do envelope e finaliza transação.<br> |
− | + | Exceções:<br> | |
− | 2. Cliente insere envelope com cheque a depositar. | + | 1.a. Caso o sistema não possa identificar o cliente, continuar com o caso de uso "Solucionar problema de identificação".<br> |
− | + | 3.a. Caso o sistema não consiga identificar que o cliente inseriu um envelope, ele deve apresentar ao cliente a opção de notificar um funcionário, e opcionalmente oferecer ao cliente a opção de bloquear o caixa até que o funcionário apareça.<br> | |
− | 3. Sistema confirma recebimento do envelope e finaliza transação. | + | |
− | + | ||
− | Exceções: | + | |
− | + | ||
− | 1.a. Caso o sistema não possa identificar o cliente, continuar com o caso de uso "Solucionar problema de identificação". | + | |
− | + | ||
− | 3.a. Caso o sistema não consiga identificar que o cliente inseriu um envelope, ele deve apresentar ao cliente a opção de notificar um funcionário, e opcionalmente oferecer ao cliente a opção de bloquear o caixa até que o funcionário apareça. | + | |
==== Comentários sobre o exemplo ==== | ==== Comentários sobre o exemplo ==== |
Edição das 10h34min de 15 de agosto de 2007
Casos de Uso (conhecidos como "Use Cases" em inglês) são uma ferramenta de desenvolvimento, geralmente utilizada para o desenvolvimento de software, com o intuito de determinar as especificações funcionais de um sistema. Estas podem ser agrupadas em um documento que descreve qual é o o objetivo do "mundo real" relativo ao sistema, quais serão os seus usuários e que funções o sistema deverá permitir ou facilitar que as pessoas realizem. Por exemplo: a especificação funcional de um caixa automático de banco (conhecidos em inglês como ATMs) deverá indicar que as pessoas que o utilizarão são correntistas daquele banco, e que as funções que elas poderão realizar através daquele sistema serão o depósito, o saque, o pagamento de contas. Nessa especificação, não deverá constar a função "Abrir Conta", pois supomos que um banco não permitirá que uma pessoa crie uma conta bancária a não ser pessoalmente ou por procuração.
No caso do Stoa, que é um sistema em desenvolvimento contínuo, acreditamos que os Casos de Uso podem ser um canal de comunicação entre os usuários e os desenvolvedores, que facilitará a expressão de desejos e necessidades pelos usuários de maneira semi-formal, o que facilitará a compreensão desses desejos e necessidades por parte dos desenvolvedores.
Os Casos de Uso do Stoa devem ser compreendidos dentro de certos limites, ditados pela delimitação do conceito do que é o Stoa, pela indicação de quais são seus "atores" e dos objetivos gerais desses atores. (Entendemos por "ator", aqui, o "tipo de usuário" do sistema - ou seja, do ponto de vista "mecânico" nada mais do que uma série de bits - não queremos de maneira alguma implicar que as pessoas que usam o stoa estejam "atuando", a menos que façam isso por sua própria vontade).
O que é o Stoa? O Stoa é uma rede social dos alunos, professores e funcionários da USP.
Quais são os atores do Stoa? Alunos, Professores e Funcionários.
Quais são os objetivos de cada tipo de usuário do Stoa? Alunos: Aprender Professores: Ensinar, Pesquisar Funcionários: Facilitar o ensino Todos: Comunicar-se.
Estas definições não são um caso de uso; elas delimitam um "espaço conceitual" dentro do qual escreveremos os casos de uso, que deverá estar dentro dos limites estabelecidos pelo conceito do que é o Stoa, de quais são seus usuários e o que estes usuários querem ao utilizar o sistema.
Formato de um Caso de Uso
Um Caso de Uso pode ter uma infinidade de formatos, dependendo de como seu autor desejar especifica-lo. As principais diferenças entre um formato e outro são a ausência ou presença de campos de informação. Por exemplo, um autor pode considerar que para o Caso de Uso "Sacar Dinheiro" não é necessário indicar quais são as precondições para que o ator que utilize o caixa automático de banco; outro autor pode considerar que essa informação é necessária. É possível deixar a escolha do formato a cargo de cada autor individual, mas isso tornaria o conjunto dos casos de uso menos coerente, e portanto menos interessante para os programadores, que irão no final do processo utilizar os casos de uso para programar o sistema. Portanto, tentaremos adotar um formato comum nos casos de uso do Stoa, que seja ao mesmo tempo suficientemente completo e com o menor número de elementos possível, a fim de que seja útil e simples.
Exemplo de um Caso de Uso
Depositar Cheque
Ator principal: cliente
1. Cliente fornece informações de identificação.
2. Cliente insere envelope com cheque a depositar.
3. Sistema confirma recebimento do envelope e finaliza transação.
Exceções:
1.a. Caso o sistema não possa identificar o cliente, continuar com o caso de uso "Solucionar problema de identificação".
3.a. Caso o sistema não consiga identificar que o cliente inseriu um envelope, ele deve apresentar ao cliente a opção de notificar um funcionário, e opcionalmente oferecer ao cliente a opção de bloquear o caixa até que o funcionário apareça.
Comentários sobre o exemplo
O Caso de Uso "Depositar Cheque" tem a seguinte estrutura:
- Nome
- Lista de Atores
- Seqüência de Etapas
- Exceções.
Tal como referido no item Casos_de_Uso#Formato_de_um_Caso_de_Uso, este caso de uso poderia ter outros itens, como por exemplo Versão, Autor, e alguns outros - veja o formato de caso de uso na página da wikipedia (em glês) sobre Casos de Uso: http://en.wikipedia.org/wiki/Use_case.