Casos de Uso

De Stoa
Ir para: navegação, pesquisa

Conteúdo

Introdução

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.

Os casos de uso são textos semi-formais. Para uma introdução totalmente informal ao Stoa, consulte as Estórias de Uso do Stoa. A semi-formalidade dos casos de uso é uma decorrência de os casos de uso serem uma tentativa de criar uma especificação do sistema que seja escrita pelos usuários finais do sistema, que podem ser leigos quanto à programação de computadores, mas ao mesmo tempo os casos de uso devem ser úteis para os programadores, que irão desenvolver o sistema norteados por esses casos de uso.

O conjunto dos casos de uso de um sistema deve ser coerente, e deve poder ser resumido em uns poucos elementos básicos. Estes elementos básicos podem constituir um documento que descreve qual é o o objetivo que pretendemos alcançar utilizando o sistema como um todo. Esse documento especifica também quais serão os usuários desse sistema e que funções o sistema deverá implementar para permitir ou facilitar que os usuários realizem seus objetivos pessoais.

Esta página de wiki é tal documento com relação ao conjunto de casos de uso do Stoa, e também uma explicação simplificada do que são casos de uso e como escrevê-los.

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 permitirá a comunicação pelos usuários de quais seus anseios e exigências através de um documento semi-formal, o que facilitará a compreensão dessas necessidades por parte dos desenvolvedores.

Além disso, os casos de uso permitem o desenvolvimento de testes funcionais, na medida em que somente sabendo qual é o funcionamento esperado de um sistema é que podemos determinar um teste para verificar se este funcionamento é realizado satisfatoriamente ou não.

Outra utilidade dos casos de uso é utiliza-los como esboço para a documentação.

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 quais são os objetivos desses atores. (Entendemos por "ator", aqui, um tipo de usuário do sistema - ou seja, um conjunto de usuários que tenham em comum algumas características de uso do sistema, o que determina um perfil de uso do Stoa, ou seja, para os casos de uso, o termo "ator" designa um conjunto de usuários com características em comum - e portanto não queremos de maneira alguma implicar que as pessoas que utilizam o Stoa estejam "atuando").

Definições

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.

Qual é o objetivo dos usuários que o Stoa pretende facilitar?

Comunicar-se.

Estas definições não são um caso de uso; elas delimitam as fronteiras dentro das quais escreveremos os casos de uso, a partir dos elementos apresentados.

Formato de um Caso de Uso

Um caso de uso pode ter uma infinidade de formatos, dependendo de como seu autor desejar especifica-lo. Além das diferenças textuais nos mesmos itens de informação, um caso de uso pode diferir de outro caso de uso relativo à mesma função pela ausência ou presença de itens de informação. O conjunto dos itens de informação de um caso de uso, desprovidos de texto além de seus nomes, constitui o formato de um caso de uso.

Por exemplo, considere o seguinte caso de uso.

Criar Estilo
Ator principal: Usuário
Este caso de uso é iniciado quando o usuário decide criar um novo estilo de layout para suas páginas do Stoa.
1. Navegar até a página de Criação e Edição de Estilos.
2. Criar um novo Estilo.
3. Aplicar novo Estilo a páginas sob a responsabilidade do Usuário.
Alternativas:
2.a. Caso o usuário pretenda criar um Estilo a partir de um Estilo preexistente, este deverá ser selecionado e editado.

Esse caso de uso possui os itens "Nome", "Ator principal", "Contexto", "Sequência" e "Alternativas", que constituem o formato desse caso de uso.

Considere agora o mesmo caso de uso, com outro formato.

Criar Estilo
Ator principal: Usuário
Ator secundário: Outro Usuário
Nível: Médio
Este caso de uso é iniciado quando o usuário decide criar um novo estilo de layout para suas páginas do Stoa.
1. Navegar até a página de Criação e Edição de Estilos.
2. Criar um novo Estilo.
3. Aplicar novo Estilo a páginas sob a responsabilidade do Usuário.
Alternativas:
2.a. Caso o usuário pretenda criar um Estilo a partir de um Estilo preexistente, este deverá ser selecionado e editado.
Observações:
Este caso de uso não prevê a correção de erro caso a edição ou criação de estilo seja feita de modo tal pelo usuário, que sua utilização como Estilo principal do usuário implique na própria página de seleção de Estilos tornar-se ilegível.

Neste segundo caso, o formato do caso de uso é: "Nome", "Ator principal", "Ator secundário", "Nível", "Contexto", "Sequência", "Alternativas" e "Observações".

É 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 escrever 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.

No momento, ainda estamos na fase inicial da produção dos casos de uso do Stoa, e portanto ainda não determinamos qual formato utilizaremos. Mas com certeza existirão os itens Nome, Sequência e Alternativas, pois estes itens são o mínimo necessário para que existam casos de uso.

No momento, determinamos que o formato de casos de uso do Stoa é o seguinte: Nome, Contexto, Sequência, Alternativas e Observações, sendo estes últimos dois itens opcionais.

Exemplo de um Caso de Uso

Escrever Mensagem no Blog
Este caso de uso é iniciado quando o usuário decide escrever uma mensagem nova em um blog.
1. Usuário navega até o blog no qual pretende escrever mensagem.
2. Usuário escreve e aprova nova mensagem.
3. Sistema confirma recebimento da mensagem e passa a exibir a nova mensagem nas páginas adequadas.
Alternativas:
2.a. Caso o usuário não tenha permissão de escrever nova mensagem no blog selecionado, o sistema deve informar o usuário de tal fato, e notificar o moderador da comunidade de tal evento, desde que o moderador tenha selecionado que seja informado de tais eventos.
Observações:
O sistema não verifica se o usuário utilizaou expressões chulas em sua mensagem; espera-se que o controle de linguagem seja feito dinamicamente pelos usuários através da função Denunciar Mensagem.

Comentários sobre o exemplo

O caso de uso "Escrever Mensagem no Blog" tem a seguinte estrutura:

  1. Nome
  2. Contexto
  3. Sequência de Etapas
  4. Alternativas
  5. Observações

Tal como referido no item Formato de um Caso de Uso, este caso de uso poderia ter outros itens, como por exemplo Versão, Autor, entre outros - veja o formato de caso de uso na página (em inglês) da wikipedia sobre casos de uso[1].

Nome de um Caso de Uso

O nome de um caso de uso deve ser informativo e tão simples quanto possível. Segundo os autores do livro Patterns for Effective Use Cases[2], o nome de um caso de uso deve ser um VerbPhraseName, ou seja, o nome de um caso de uso deve ser uma frase que corresponde a uma ação, geralmente escrita como um verbo. Bons nomes para casos de uso seriam, no caso do Stoa, 'Escrever Mensagem de Blog', 'Criar Comunidade' e 'Adicionar Contato'.

Contexto

O contexto de um caso é uma descrição da situação inicial do usuário, isto é, uma frase ou parágrafo que indique o que o usuário deve ter feito para chegar àquele caso de uso, e que recursos o sistema já deve ter disponível para concretizar o objetivo do usuário.

Sequência de Etapas

A sequência de etapas deve, de maneira global, corresponder a uma única função ou objetivo do ator primário. Na terminologia dos autores de Patterns for Effective Use Cases[2], um caso de uso deve contemplar um CompleteSingleGoal (objetivo único e completo em si mesmo), ou seja, a sequência de etapas deve ser uma lista ordenada de passos a serem dados para que o usuário, a partir da situação descrita pelo contexto especificado no caso de uso, consiga obter um resultado tangível.

O conjunto das etapas deve ser razoavelmente homogêneo, isto é, as etapas não devem ser cada uma de um 'nível de abstração' muito diferente do outro. Por exemplo, a sequência de um caso de uso não deve ser assim:

1. Usuário decide qual palavra-chave irá pesquisar.
2. Usuário pressiona tecla correspondente à primeira letra da palavra-chave que deseja pesquisar.
3. Usuário repete etapa 2 tantas vezes quanto necessário até escrever toda a palavra-chave.
4. Usuário clica no botão "Ok".
5. O sistema apresenta os resultados da pesquisa.

No exemplo acima, a primeira etapa (usuário decide palavra-chave) corresponde a uma função que pode ser dita de 'nível médio' de abstração - metaforicamente, um objetivo 'visível a olho nu'. As etapas seguintes podem ser ditas de 'baixo nível' de abstração - cada uma corresponde a uma etapa a ser realizada pelo usuário, mas de maneira muito diferente da etapa 1. Metaforicamente, as demais etapas são 'microscópicas'.

O erro neste caso consiste na mistura dos dois níveis de abstração - pois deverão haver, nesta situação, vários casos de uso: um de nível médio para descrever a função Pesquisar Palavra-chave e, no nível baixo, um para Preencher Campo de Texto, outro para Clicar Botão e outro para Exibir Resultados de Pesquisa. O caso de uso de nível médio fará referência aos casos de uso de nĩvel baixo, sem no entanto ser ele mesmo de nível baixo.

Alternativas

As exceções devem complementar a sequência principal do caso de uso de modo que o conjunto da sequência principal mais as exceções constitua o conjunto de todas as possibilidades funcionais relevantes para o caso.

Entretanto, se as exceções tornam-se muito numerosas ou muito ramificadas, isto é sinal de que possivelmente o caso de uso deve ser fracionado, por exemplo promovendo uma exceção ao status de caso de uso.

Metodologia de Criação dos Casos de Uso do Stoa

Em primeiro lugar, este é um esforço colaborativo. Sinta-se livre para editar os casos de uso escritos por outras pessoas, e saiba que os casos de uso que você escrever possivelmente serão editados por outras pessoas, também.

Cada etapa de um caso de uso pode ou não ser um caso de uso em si mesma. Se a etapa corresponder a um procedimento simples que o sistema deve executar, a etapa não é um caso de uso. Se a etapa corresponder a uma ação simples que um usuário deve fazer, ela tampouco será um caso de uso. Uma etapa será um caso de uso quando ela corresponder a mais de uma ação ou procedimento.

A grande exceção a esta regra é quando uma etapa simples de nível alto ou médio corresponder a muitas etapas de nível médio ou baixo. Nesse caso, uma atividade simples torna-se um caso de uso.

Um caso de uso que tem como uma de suas etapas uma etapa extendida (ou seja, uma etapa que corresponde a mais de uma ação ou procedimento), está ligado a outros casos de uso, aqueles que definem as etapas componentes de suas etapas extendidas.

Árvore dos Casos de Uso do Stoa

Este mapa inclui apenas os casos de uso mais abstratos, ou seja, aqueles que correspondem a aspectos do Stoa que são evidentemente úteis aos usuários como Escrever Mensagem, e exclui os casos de uso relativos a funcionalidades do sistema de "baixo nível", como Exibir Caixa de Texto.

Os casos de uso em negrito são as "raizes" da árvore, e só servem para englobar os conjuntos de casos de uso, que estão em itálico. Os casos de uso que efetivamente correspondem a funções do Stoa são os que não têm "text decorations" ("frescuras de texto", em tradução livre). Para uma forma menos abstrata dos casos de uso, veja essas Estórias de Uso

Interagir
Emitir
Publicar
Escrever Mensagem de Blog Pública
Publicar Apresentação
Wikiar
Chatear com Todos
Reclamar
Sugerir
Compartilhar
Escrever Mensagem de Blog para todo o Stoa
Escrever Mensagem de Blog para uma comunidade específica
Escrever Mensagem para Turma
Escrever Mensagem de Blog para uma Disciplina
Apresentar para Comunidade
Redigir Dúvida
Chatear com Comunidade
Chatear com Turma
Dizer
Enviar Mensagem
Chatear com usuário
Comentar
Comentar Mensagem de Blog
Comentar Apresentação
Comentar Arquivo
Comentar Evento
Comentar Enquete
Responder
Responder a Mensagem
Responder a Dúvida
Responder a Enquete
Responder a Simulado
Navegar
Listar/Buscar
Buscar por palavras-chave
Listar Comunidades
Listar Turmas
Listar Apresentações
Listar Arquivos
Listar Eventos
Listar Feeds
Listar Enquetes
Listar Chats
Inscrever-se
Inscrever-se em uma Comunidade
Inscrever-se em uma Turma
Inscrever-se em uma Disciplina
Inscrever-se no Stoa
Efetuar Login
Efetuar Logout
Receber
Receber Mensagem
Receber Notificação que Blog Interessante Mudou
Receber Notificação que Apresentação Interessante Mudou
Receber Notificação que Arquivo Interessante Mudou
Receber Aviso de Recebimento
Consultar Estatísticas
Consultar Estatísticas sobre Blog
Consultar Estatísticas sobre Mensagem de Blog
Consultar Estatísticas sobre Mensagem
Consultar Estatísticas sobre Comunidade
Consultar Estatísticas sobre Apresentação
Consultar Estatísticas sobre Perfil
Consultar Estatísticas sobre Arquivo
Consultar Estatísticas sobre Evento
Consultar Estatísticas sobre Feed
Consultar Estatísticas sobre Enquete
Consultar Estatísticas sobre Turma
Visitar
Visitar Comunidade
Visitar Evento
Visitar Feed
Visitar Enquete
Visitar Mensagem
Visitar Wiki
Visitar Apresentação
Visitar Arquivo
Visitar Tag
Visitar Blog
Visitar Perfil
Administrar
Administrar Contatos
Adicionar Usuário como Contato
Remover Contato de Usuário
Acompanhar Rastros de Usuário
Bloquear Interações de Usuário
Apagar Rastros
Votar
Votar em Blog
Votar em Apresentação
Votar em Arquivo
Interessar-se
Marcar como Interessante
Marcar Blog como Interessante
Marcar Apresentação como Interessante
Marcar Arquivo como Interessante
Marcar Tag como Interessante
Desmarcar como Interessante
Desmarcar Blog como Interessante
Desmarcar Apresentação como Interessante
Desmarcar Arquivo como Interessante
Desmarcar Tag como Interessante
Criar
Criar Comunidade
Criar Tema
Enviar Arquivo
Criar Evento
Adicionar Feed ao Agregador
Criar Enquete
Criar Simulado
Criar Turma
Criar Disciplina
Criar Material Didático
Modificar
Modificar Comunidade
Modificar Tema
Atualizar Arquivo
Modificar Evento
Remover Feed do Agregador
Modificar Enquete
Encerrar Enquete
Modificar Simulado
Encerrar Simulado
Modificar Turma
Copiar Turma
Armazenar Turma
Modificar Material Didático

Estórias de Uso

As Estórias de Uso são um conjunto de pequenas crônicas escritas por usuários do Stoa que têm como intuito apresentar de maneira ficcional como o Stoa pode ser utilizado, de acordo com as intenções (boas ou não) de usuários também fictícios do Stoa. Em outras palavras, são pequenas crônicas nas quais o Stoa tem um papel, às vezes pequeno, às vezes grande. Lembre-se: qualquer semelhança com os usuários reais do Stoa é mera coincidência!!! Você pode ler as Estórias de Uso clicando aqui.

Glossário

Pesquisar 
é o termo consagrado pelo escritores de documentação de informática para designar a ação de "fazer uma busca", por exemplo num site como o Google o usuário "pesquisa" por palavras e expressões. Entretanto o termo pesquisa é utilizado de maneira mais frequente pelos alunos e professores da USP para designar uma atividade acadêmica muito característica que consiste na investigação sistemática de um assunto, geralmente vinculada com o recebimento de uma bolsa ou a obtenção de um título acadêmico. Portanto decidimos utilizar pesquisa para a atividade acadêmica e busca para a atividade computacional.
Sessão 
é o termo utilizado para designar o conjunto de atividades realizadas entre o momento em que um usuário inicia sua interação com o sistema e o momento em que finaliza essa interação. Em teoria, uma sessão pode ter qualquer duração, mas na prática cada sessão dura entre alguns minutos e algumas horas, e é delimitada pelo login e pelo logout. Uma sessão geralmente tem associada a si um cookie, que nada mais é do que um arquivo texto armazenado no computador do usuário, que serve, grosso modo, como solução técnica do problema de "acompanhar" muitos usuários visitando muitas páginas ao mesmo tempo.
Sistema 
é o termo utilizado para designar o conjunto dos aplicativos (softwares) que trabalham em conjunto para fornecer ao usuário as funções que este necessita para que consiga ou tenha facilitado o cumprimento de seus objetivos. No caso do Stoa, é importante distinguir entre o site Stoa e o sistema Stoa: o site é "apenas" a página da internet, enquanto que o sistema Stoa é composto por muitas partes, como servidores, bancos de dados, frameworks como Elgg e Moodle, e várias outras coisas de interesse para os desenvolvedores, mas que devem ser invisíveis para os usuários do sistema que não têm interesse em conhecer o Stoa "por dentro". (Nota aos desenvolvedores: os casos de uso referem-se ao sistema Stoa, e portanto podemos modelar o sistema através dos casos de uso com grande liberdade, por exemplo, criando casos de uso que têm funções com etapas que, para serem cumpridas, algumas devem ser executadas pelo Moodle, e outras pelo Stoa-stable, outras pelo SQL, etc. Isto pode parecer um erro à primeira vista, mas cabe lembrar aqui que os casos de uso têm como objetivo primordial definir as funcionalidades do Stoa que sejam de valor para os usuários. Para estes, muitas vezes não importa qual servidor ou qual PHP executa realmente seus comandos, importa apenas que seu objetivo seja cumprido. Nota: inicialmente os casos de uso modelarão apenas o site Stoa, ignorando as funcionalidades do Moodle e dos demais componentes. Até mesmo o wiki será meio "deixado de lado". Isto se deve à urgência de documentar o Stoa para uso dos usuários e para a campanha de divulgação.).


Referências

  1. Wikipedia: Use Cases
  2. 2,0 2,1 Adolph, Steve & Bramble, Paul. Patterns for Effective Use Cases.
Ferramentas pessoais
Espaços nominais

Variantes
Ações
Navegação
Imprimir/exportar
Ferramentas