Casos de Uso
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:
- Nome
- Contexto
- Sequência de Etapas
- Alternativas
- 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
- Publicar
- Comentar
- Responder
- Emitir
- Navegar
- Listar/Buscar
- Inscrever-se
- Receber
- 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
- Administrar
- Administrar Contatos
- Votar
- Interessar-se
- Criar
- 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.).