Buscar

Diagrama de Casos de Uso_ Principais desafios na elaboração

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

10/4/2014 Diagrama de Casos de Uso: Principais desafios na elaboração
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=29790 1/11
www.devmedia.com.br 
[versão para impressão]
Link original: http://www.devmedia.com.br/articles/viewcomp.asp?comp=29790
Diagrama de Casos de Uso:
Principais desafios na
elaboração
Este artigo compartilha os principais desafios e dificuldades
que programadores ou analistas de sistemas, que possuem
um perfil mais técnico, enfrentam na elaboração ou
compreensão de um diagrama de caso de uso.
Artigo no estilo Mentoring (saiba mais)
Mentoring: apresentação do cenário
Este artigo é recomendado para todos os membros envolvidos no desenvolvimento de
software que possuem interação com casos de uso. A proposta não é fazer um passo
a passo sobre como fazer um diagrama de caso de uso, mas sim, compartilhar os
principais desafios e dificuldades que programadores ou analistas de sistemas, que
possuem um perfil mais técnico, enfrentam na elaboração ou compreensão deste
diagrama.
Um projeto é considerado bem sucedido quando ele é entregue para o seu usuário
10/4/2014 Diagrama de Casos de Uso: Principais desafios na elaboração
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=29790 2/11
final e este não encontra divergências entre o que se pediu e o que foi feito. E
entregar exatamente o solicitado é um processo complicado, pois exige muito mais do
que o conhecimento de uma linguagem de programação.
É necessário entender o negócio do cliente e saber transpor de forma clara e objetiva
todas as funcionalidades solicitadas. Dentro de um projeto de software, isto é feito na
fase de análise de sistemas e as funcionalidades são descritas, na maioria das vezes,
seguindo os padrões definidos por uma linguagem de modelagem unificada, a UML,
através de diagramas de casos de uso.
Todo profissional deve estar sempre preparado para encarar desafios, dificuldades e
superá-los com sucesso. Isso acontece em qualquer área e é o que todo chefe espera de
seus funcionários. Em TI isso não seria diferente. É muito comum em nosso ramo
ouvirmos que o prazo para a criação de um projeto é apertado e que o orçamento é
curto, porém temos que entregá-lo com sucesso, dentro do prazo estabelecido e com
qualidade.
E para que isso aconteça, os profissionais precisam desdobrar-se e por muitas vezes
executar atividades das quais não tiveram tempo hábil para se preparar ou ainda não tem
conhecimento suficiente para executá-los. Um exemplo clássico é quando programadores
ou analistas com perfis mais técnicos são selecionados para entrevistar os usuários e
descrever todas as funcionalidades em casos de uso na fase de análise do projeto.
Neste contexto, esse artigo apresenta as principais dificuldades encontradas por estes
profissionais na elaboração de um caso de uso e sugestões de como resolver os
principais problemas, mitigando os riscos de não ter todas as funcionalidades descritas
seguindo as melhores práticas abordadas pela UML (ler BOX 1).
BOX 1. UML
A UML (Unified Modeling Language ou Linguagem de Modelagem Unificada) é uma
linguagem visual utilizada para modelar sistemas computacionais. Essa linguagem se
tornou, nos últimos anos, a linguagem-padrão de modelagem de software adotada
internacionalmente pela indústria de Engenharia de Software.
Deve ficar bem claro que a UML não é uma linguagem de programação, e que o seu
objetivo é auxiliar os engenheiros de software a definir as características do
10/4/2014 Diagrama de Casos de Uso: Principais desafios na elaboração
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=29790 3/11
software, tais como seus requisitos, seu comportamento, sua estrutura lógica, a
dinâmica de seus processos e até mesmo suas necessidades físicas em relação ao
equipamento sobre o qual o sistema deverá ser implantado.
Todas essas características são definidas por meio da UML antes do software
começar a ser realmente desenvolvido.
A UML possui diversos diagramas com o objetivo de fornecer múltiplas visões do
sistema, analisando-o e modelando-o sob diversos aspectos. Cada diagrama da UML
analisa o sistema, ou parte dele, sob uma determina visão. Alguns diagramas
enfocam o sistema de forma mais comportamental, apresentando uma visão das
funcionalidades do sistema, como é o objetivo do diagrama de casos de uso, ao
passo que outros oferecem uma visão de uma camada mais profunda do software,
apresentando um enfoque mais técnico.
O desenvolvimento de software, independente da metodologia adotada, possui as fases
de análise, desenho (design), codificação, testes e implantação. Cada uma destas fases
tem uma importância crucial, e para atingir os objetivos do projeto, todas devem ser
criteriosamente elaboradas, seja utilizando uma abordagem mais rica em documentação,
como, por exemplo, o UP (Unified Process) ou metodologias mais ágeis como o SCRUM.
Em TI, costuma-se priorizar as atividades de design e codificação. Isso acontece pelo
perfil do profissional que atua na área, formada principalmente por técnicos, que dedicam
boa parte do seu tempo em estudos e pesquisas em linguagens de programação e tem
um interesse muito maior por bits e bytes do que por documentação.
Outro ponto que direciona estes profissionais a gostarem mais da parte técnica é a grade
curricular dos cursos de tecnologia na maioria das universidades, que possuem um
grande número de disciplinas referentes à programação e muito pouco referente à
metodologias, processos e documentações.
Porém, a fase de análise de sistemas é de fundamental importância para o sucesso de um
projeto, pois é nela que será entendido todo o negócio do cliente e descritas todas as
funcionalidades e comportamentos esperados para o sistema. Um projeto é considerado
bem sucedido quando ele é entregue para o seu usuário final e este não encontra
divergências entre o que se pediu e o que foi feito.
E entregar exatamente o solicitado é um processo complicado, pois exige muito mais do
10/4/2014 Diagrama de Casos de Uso: Principais desafios na elaboração
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=29790 4/11
que o conhecimento de uma linguagem de programação.
Uma boa prática para descrever as funcionalidades do sistema é seguir os padrões
definidos por uma linguagem de modelagem unificada, a UML, através de diagramas de
casos de uso. Este diagrama é utilizado principalmente para auxiliar no levantamento e
análise dos requisitos, em que são determinadas as necessidades do usuário, e na
compreensão do sistema como um todo, embora venha a ser consultado durante todo o
processo de modelagem e sirva de base para todos os outros diagramas.
O diagrama de casos de uso apresenta uma linguagem simples e de fácil compreensão
para que os usuários possam ter uma ideia geral de como o sistema irá se comportar.
Normalmente, os casos de uso são elaborados por profissionais que tem perfil de análise
de sistemas, que conseguem entrevistar os clientes, entender todas as suas
necessidades, e transpor de forma clara e objetiva, todos os cenários propostos.
Entretanto, o mundo corporativo, com suas premissas de curto prazo e orçamento
apertado, muitas vezes propicia o surgimento de situações de desvio do cenário ideal
para o desenvolvimento de um projeto.
Tais desvios podem surpreender funcionários, que passam a assumir papéis e
responsabilidades das quais não tiveram tempo hábil para se preparar ou ainda não tem
conhecimento suficiente para executá-los. Um exemplo clássico desses desvios é
observado quando pessoas de vocação técnica e aptidão para a codificação de programas
são deslocadas para elaborarem casos de uso na fase de Análise do Projeto.
Pessoas das áreas mais técnicas tendem a explicar comodevemos resolver um problema.
Entretanto, quando estas pessoas assumem o papel de Analista de Negócio durante a
fase de análise do projeto, elas devem, entre outras tarefas, especificar o que tem que
ser feito, e deixar para a próxima fase, a de desenho físico, a explicação de que forma o
problema ou o cenário proposto na fase anterior será solucionado tecnicamente.
Outra grande dificuldade encontrada é que casos de uso são subjetivos. Eles não são
definidos por uma gramática rigorosa como são nossas linguagens de programação. Não
existem compiladores que analisam casos de uso e comprovam se eles estão válidos,
bem formatados e se fazem sentido para o negócio.
Em análise de exemplos reais, é possível observar o cenário descrito acima, com diversas
pessoas com vocação e experiência técnica especificando casos de uso. Em alguns
exemplos, existe ainda um agravante, onde muitos possuem apenas experiência em “Alta
10/4/2014 Diagrama de Casos de Uso: Principais desafios na elaboração
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=29790 5/11
Plataforma (Mainframe)”, o que cria um grau de complexidade ainda maior, por nunca
terem visto nada em UML.
Geralmente, pessoas com experiência em “Baixa Plataforma”, se nunca elaboraram um
caso de uso, pelo menos já tiveram a oportunidade de visualizar um diagrama em UML, e
neste caso, os atores, cenários e relacionamentos não são tão complexos como para as
pessoas que estavam acostumadas a trabalhar apenas com fluxogramas.
A partir de agora serão abordados alguns dos problemas mais comuns encontrados em
casos de uso elaborados por pessoas técnicas, acompanhados de algumas dicas para
solução:
O que fazer? x Como fazer?
Um dos problemas mais comuns na elaboração de casos de uso é encontrar, em sua
descrição, de que forma vamos resolver um problema ou uma ação esperada. A forma ou
método utilizado para resolver o problema ou para explicar “como fazer” deve ser
considerado em uma fase posterior do projeto.
Como podemos ter certeza ainda na fase de análise que o que estou dizendo no “como
fazer” é a melhor alternativa? Não é possível ter esta certeza, pois nesta fase do projeto
estamos ainda entendendo e detalhando o escopo, isto é, o que tem que ser feito.
Quando todo o escopo estiver detalhado, será possível ter uma visão completa e optar
pela melhor alternativa para resolver o cenário proposto.
E para ter esta visão detalhada, é preciso entender todas as funcionalidades solicitadas
para o sistema. E é isso que a descrição do caso de uso tem que conter. É necessário
descrever passo a passo toda a interação entre um “Ator” e um “Sistema”, sempre
detalhando o que tem que ser feito com uma visão de negócio.
Descrever os passos dos fluxos tecnicamente
Como boa prática na especificação de um caso de uso, não se deve descrever nos
passos dos fluxos informações técnicas ou de interface com o usuário.
Exemplo de um passo com informação técnica e com detalhe de interface:
- O Sistema irá buscar no servidor “SRV_PROD_005A”, base de dados “SCH_CORP”,
tabela “TB_045_CLIE”, os campos “CLI_ST_NOME”, “CLI_ST_FONE”, “CLI_ST_ENDE”
através do sinônimo “TB_CLIENTE” para apresentar no pop-up.
10/4/2014 Diagrama de Casos de Uso: Principais desafios na elaboração
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=29790 6/11
Exemplo do mesmo passo, descrito com visão de negócio:
- O Sistema apresenta ao “Ator” as informações “Nome”, “Telefone” e “Endereço” do
Cliente selecionado.
Como se pode verificar, existe uma grande diferença nos itens acima. Se você tiver um
conhecimento técnico, pode pensar: com as informações do primeiro item (como fazer)
eu consigo programar e com as do item debaixo (o que fazer), não. Porém, deve-se ter
em mente alguns pontos importantes para a fase de análise:
· Quem deve validar o caso de uso é uma pessoa que tem conhecimento do negócio e na
maior parte das vezes ela não faz ideia o que é um banco de dados;
· Se um sistema novo estiver sendo criado, com o escopo ainda sendo detalhado, não é
possível saber quais tabelas ou campos devem ser criados;
· Um detalhamento excessivo de interface visual durante a fase de análise pode limitar o
design do sistema. Especificar detalhes visuais se faz necessário somente para o
entendimento do comportamento do sistema.
Caso informações técnicas estejam disponíveis durante a descrição do caso de uso, é
possível criar uma seção “Direcionamento Técnico” e informar nesta seção os servidores,
tabelas, campos ou outras informações técnicas que facilitarão o entendimento do
analista de sistema quando o mesmo estiver fazendo o “desenho lógico e/ou físico” da
aplicação.
Utilizar a “Extends” do caso de uso exatamente
como a herança na programação orientada a
objetos
Na orientação a objeto, quando se diz que uma classe herda de outra, isto significa que
ela passa a ter também as funcionalidades e comportamentos desta classe herdada.
Entretanto, para casos de uso, o conceito de “extends” é um pouco diferente. Ele é
usado para mostrar que um caso de uso pode adicionar a funcionalidade de outro caso
de uso em determinadas circunstâncias.
Podemos dizer que ao estender outro caso de uso, ele poderá acionar uma
funcionalidade deste caso de uso herdado em algum momento de sua funcionalidade
original. Por exemplo, o caso de Uso “Efetuar Login” de um sistema pode incluir a opção
10/4/2014 Diagrama de Casos de Uso: Principais desafios na elaboração
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=29790 7/11
“Registrar nova conta”, mas só quando o usuário ainda não tiver uma conta (ver Figura
1).
Figura 1. Representação de “Extends” nos Casos de Uso.
Quando um caso de uso adiciona a funcionalidade de outro caso de uso em todas as
situações, deve-se utilizar o relacionamento “include” ao invés de “extends”. Por
exemplo, o caso de uso “Processar Pedido” inclui a opção “Emitir Nota Fiscal”. Isto
significa que sempre que o caso de uso “Processar Pedido” for acionado, a opção “Emitir
Nota Fiscal” também será acionada (ver Figura 2).
Figura 2. Representação de “Include” nos Casos de Uso.
Identificar cada caso de uso como uma classe,
10/4/2014 Diagrama de Casos de Uso: Principais desafios na elaboração
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=29790 8/11
um programa ou sub-programa
Um problema conceitual é criar uma associação que um caso de uso representa uma
classe (na baixa plataforma) ou um programa / sub-programa (na alta plataforma). O
caso de uso deve representar uma funcionalidade, e esta pode derivar em um ou mais
programas/classes, conforme solução técnica que será definida na fase de desenho físico.
Desta forma, sempre que for mapear os casos de uso a serem elaborados, pense em
funcionalidades. Procure abstrair o que será necessário criar tecnicamente para
implementar estas funcionalidades.
Caso de uso sem ator relacionado
Conceitualmente, os passos dos fluxos do caso de uso descrevem a interação entre o
ator e o sistema. A questão ator gera bastante confusão, pois passa a impressão muitas
vezes errônea de que tem que ser uma pessoa. Devido a esta confusão, já foram
encontrados diversos casos de uso sem ter um ator relacionado, já que o mesmo era
disparado automaticamente por um sistema e neste caso não tinha uma “pessoa” ou um
“ator humano” para associar.
Este erro é bastante comum em casos de uso que descrevem cenários que irão ocasionar
no desenho físico, programas batch, web-services, etc. Para este cenário, têm-se como
atores os sistemas que chamam e iniciam os casos de uso. Por exemplo: o
processamento batch que envia os dados contábeis para o Banco Central é acionado por
um “Scheduler” (ver Figura 3).
10/4/2014 Diagrama de Casos deUso: Principais desafios na elaboração
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=29790 9/11
Figura 3. Representação de um sistema como “Ator”.
Caso de uso sem um início definido
Todo caso de uso deve ter um início, isto é, deve ter um ator que o aciona. Para facilitar
o entendimento, pode-se citar tecnicamente que o início de um caso de uso pode ser a
seleção de uma opção ou um agendamento de um processo batch, etc. Como exemplo,
tem-se:
01. Este caso de uso inicia quando o ator seleciona a opção “Incluir Cliente” da “Tela
Inicial”.
Requisitos de negócio sem caso de uso
relacionado
Como saber se todos os casos de uso foram mapeados e descritos? Será que nenhum
caso de uso foi esquecido? Esta é uma dificuldade para quem precisa ter uma visão global
do projeto.
Para auxiliar nesta situação, uma boa dica é utilizar uma matriz de relacionamento
“Requisitos x Casos de Uso”, para não deixar nenhum requisito funcional sem um caso
de uso associado. Alguns sistemas de mercado como, por exemplo, o Enterprise
Architect da Sparx Systems, criam esta matriz automaticamente.
10/4/2014 Diagrama de Casos de Uso: Principais desafios na elaboração
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=29790 10/11
Atraso na data de entrega acordada para os
casos de uso
Muitas pessoas, quando têm a responsabilidade de identificar e descrever todos os casos
de uso de um projeto ou de um módulo do projeto, têm o hábito de identificar um caso
de uso e já descrevê-lo. Apesar de não ser uma prática errada, a maneira mais segura de
fazê-la é mapeando todos os casos de uso antes de especificá-los.
Desta forma, é possível identificar partes que serão reutilizadas (casos de uso que
podem ser incluídos ou estendidos) e também ter uma visibilidade da complexidade e
qual a produtividade média para descrever cada caso de uso. Com isso, é possível auxiliar
os gerentes de projeto a mitigarem o risco de possíveis atrasos nas datas acordadas.
Dar nome ao caso de uso
Muitos dos casos de uso revisados em projetos não seguem as normas pré-
estabelecidas para a nomenclatura, tais como: eles deveriam começar com um verbo
como, por exemplo, “Consultar”, “Incluir”, “Alterar”, etc.
Assim, ter um padrão de nomes e um guia para seguir é sempre importante.
Para minimizar este problema de “esquecimento” ou mesmo de “falta de conhecimento
das normas de nomenclatura”, uma boa dica é ter um checklist que o analista deve usar
sempre que finalizar o seu caso de uso. Este checklist deve conter validações para todas
as regras e normas, o que o ajudará a revisar se algo foi esquecido ou criado de maneira
inválida.
Conclusão
Todos estes problemas e dificuldades relatados aqui demonstram que apesar de ter uma
notação simples e da sua teoria não ser extensa, elaborar casos de uso não é ato trivial
tanto quanto pode aparentar ser.
É importante que todos os membros envolvidos no desenvolvimento de software, que
utilizam UML, entendam como elaborar e como interpretar um caso de uso, pois ele é a
base de todo o projeto. Durante a fase de análise, ele é o principal entregável e durante
as demais fases, ele é base tanto para a elaboração dos diagramas na fase de desenho
do projeto, como na fase de construção onde o programador entenderá qual o
comportamento deverá ser implementado e também na fase de testes, onde será
10/4/2014 Diagrama de Casos de Uso: Principais desafios na elaboração
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=29790 11/11
possível validar se todas as funcionalidades solicitadas pelo cliente, foram disponibilizadas
no sistema.
Espero que as lições aprendidas na prática e documentadas neste artigo possam ajudar
na elaboração de casos de uso mais eficazes, que possam ser facilmente compreendidos
e que permitam aos desenvolvedores construir o produto certo na primeira vez,
diminuindo o retrabalho e conduzindo a um aumento de produtividade e qualidade da
equipe, e consequentemente a um projeto de sucesso.
Links e Referências
UML Use Case Diagrams: Guidelines
http://msdn.microsoft.com/en-us/library/dd409432.aspx
Use Case Diagrams Tutorial
http://sparxsystems.com/resources/uml2_tutorial/uml2_usecasediagram.html
Especificação UML 2.0
http://www.omg.org/spec/UML/2.4.1/Superstructure/PDF
Gilleanes T.A. Guedes, UML 2 – Uma abordagem prática, Junho, 2010.
 
Adriano Esposito
Arquiteto Empresarial e de Soluções na Hewlett-Packard Company, com mais de 15 anos de experiência
na área de TI. Bacharel em Ciência da Computação na PUC-SP, possui especialização em Gestão de TI
pela FGV-SP. Certificado em Intel [...]

Outros materiais