{"id":129,"date":"2014-01-10T20:30:12","date_gmt":"2014-01-10T23:30:12","guid":{"rendered":"http:\/\/www.hectordufau.com.br\/wp\/?p=129"},"modified":"2015-03-10T16:51:26","modified_gmt":"2015-03-10T19:51:26","slug":"como-escrever-casos-de-uso","status":"publish","type":"post","link":"https:\/\/www.hectordufau.com.br\/wp\/?p=129","title":{"rendered":"Como Escrever Casos de Uso"},"content":{"rendered":"<p>Um caso de uso pode ser definido, resumidamente, como uma descri\u00e7\u00e3o do que o sistema deve fazer para atingir um determinado objetivo. Em uma narrativa em texto, os casos de uso s\u00e3o amplamente utilizadas para descobrir e registrar requisitos, necess\u00e1rios para o desenvolvimento de sistemas.<!--more--><\/p>\n<p>Abaixo apresento a estrutura de um caso de uso, em formato de tabela:<\/p>\n<table style=\"border-style: solid;\" border=\"0\">\n<tbody>\n<tr>\n<td><strong>T\u00edtulo do Caso de Uso<\/strong><\/td>\n<td colspan=\"3\">o nome \u00e9 o objetivo na forma de uma pequena frase de verbo ativo<\/td>\n<\/tr>\n<tr>\n<td>Contexto de Uso:<\/td>\n<td colspan=\"3\">uma senten\u00e7a maior do contexto de uso se necess\u00e1rio<\/td>\n<\/tr>\n<tr>\n<td>Escopo:<\/td>\n<td colspan=\"3\">qual sistema est\u00e1 sendo considerado caixa-preta sob desenvolvimento<\/td>\n<\/tr>\n<tr>\n<td>N\u00edvel:<\/td>\n<td colspan=\"3\">um dentre estes: resumo, objetivo do usu\u00e1rio, subfun\u00e7\u00e3o<\/td>\n<\/tr>\n<tr>\n<td>Ator Prim\u00e1rio:<\/td>\n<td colspan=\"3\">um nome de papel para o ator prim\u00e1rio, ou a descri\u00e7\u00e3o<\/td>\n<\/tr>\n<tr>\n<td>Stakeholders e Interesses:<\/td>\n<td>Stakeholder<\/td>\n<td colspan=\"2\">Interesse<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>nome do stakeholder<\/td>\n<td colspan=\"2\">coloque aqui o interesse do stakeholder<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>nome do stakeholder<\/td>\n<td colspan=\"2\">coloque aqui o interesse do stakeholder<\/td>\n<\/tr>\n<tr>\n<td>Pr\u00e9-condi\u00e7\u00e3o:<\/td>\n<td colspan=\"3\">o que esperamos que j\u00e1 seja o estado do mundo<\/td>\n<\/tr>\n<tr>\n<td>Garantias m\u00ednimas:<\/td>\n<td colspan=\"3\">os interesses protegidos em qualquer sa\u00edda<\/td>\n<\/tr>\n<tr>\n<td>Garantias de sucesso:<\/td>\n<td colspan=\"3\">os interesses satisfeitos em um final bem sucedido<\/td>\n<\/tr>\n<tr>\n<td>Acionador:<\/td>\n<td colspan=\"3\">a a\u00e7\u00e3o sob o sistema que inicia o caso de uso<\/td>\n<\/tr>\n<tr>\n<td>Descri\u00e7\u00e3o<\/td>\n<td>Passo<\/td>\n<td colspan=\"2\">A\u00e7\u00e3o<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>1<\/td>\n<td colspan=\"2\">coloque aqui os passos do cen\u00e1rio do acionamento a entrega do objetivo e qualquer esclarecimento posterior<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>2<\/td>\n<td colspan=\"2\">&lt;&#8230;&gt;<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>3<\/td>\n<td colspan=\"2\"><\/td>\n<\/tr>\n<tr>\n<td>Extens\u00f5es<\/td>\n<td>Passo<\/td>\n<td colspan=\"2\">A\u00e7\u00e3o de Desvio<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>1a<\/td>\n<td colspan=\"2\">condi\u00e7\u00e3o que causa o desvio: a\u00e7\u00e3o ou nome do sub caso de uso<\/td>\n<\/tr>\n<tr>\n<td>Varia\u00e7\u00f5es Tecnol\u00f3gicas e Dados<\/td>\n<td><\/td>\n<td colspan=\"2\"><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>1<\/td>\n<td colspan=\"2\">lista de varia\u00e7\u00f5es<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Para escrever um caso de uso, observe as seguintes sugest\u00f5es:<\/p>\n<ul>\n<li>Escreva algo leg\u00edvel. Casos de uso casuais e leg\u00edveis ainda s\u00e3o \u00fateis, enquanto casos de uso ileg\u00edveis n\u00e3o ser\u00e3o lidos.<\/li>\n<li>Trabalhe com amplitude primeiro, da menor precis\u00e3o para a maior precis\u00e3o.\n<ul>\n<li>N\u00edvel de Precis\u00e3o 1: Nome e objetivos dos atores prim\u00e1rios.<\/li>\n<li>N\u00edvel de Precis\u00e3o 2: O resumo do caso de uso ou o cen\u00e1rio de sucesso principal.<\/li>\n<li>N\u00edvel de Precis\u00e3o 3: As condi\u00e7\u00f5es de extens\u00e3o.<\/li>\n<li>N\u00edvel de Precis\u00e3o 4: Os passos de tratamento da extens\u00e3o.<\/li>\n<\/ul>\n<\/li>\n<li>Para cada passo:\n<ul>\n<li>Mostre um objetivo tendo sucesso.<\/li>\n<li>Capture as inten\u00e7\u00f5es do ator, n\u00e3o os detalhes da interface do usu\u00e1rio.<\/li>\n<li>Tenha um ator passando informa\u00e7\u00e3o, validando uma condi\u00e7\u00e3o ou atualizando um estado.<\/li>\n<li>Escreva coment\u00e1rios entre os passos para indicar a seq\u00fc\u00eancia dos passos (ou a falta de).<\/li>\n<li>Pergunte &#8220;por que&#8221; para encontrar um pr\u00f3ximo n\u00edvel de objetivo mais alto.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>O processo de escrita de um caso de uso pode ser realizado nos seguintes passos abaixo:<\/p>\n<ol>\n<li>Especifique o escopo e os limites do sistema. Rastreie mudan\u00e7as no diagrama de contexto inicial com a lista dentro\/fora.<\/li>\n<li>Fa\u00e7a brainstorming e liste os atores prim\u00e1rios. Encontre todo ator prim\u00e1rio humano e n\u00e3o humano ao longo da vida do sistema.<\/li>\n<li>Fa\u00e7a brainstorming e liste exaustivamente os objetivos dos usu\u00e1rios para com o sistema. A lista ator-objetivo inicial agora est\u00e1 dispon\u00edvel.<\/li>\n<li>Capture os casos de uso resumo mais externos para ver quem realmente importa. Confira se h\u00e1 um caso de uso mais externo para cada ator prim\u00e1rio.<\/li>\n<li>Reconsidere e revise os casos de uso resumo. Adicione, subtraia e junte objetivos. Reexamine os acionadores baseados em tempo e outros eventos no limite do sistema.<\/li>\n<li>Selecione um caso de uso para expandir. Considere escrever uma narrativa para aprender o material.<\/li>\n<li>Capture os stakeholders e interesses, pr\u00e9-condi\u00e7\u00f5es e garantias. O sistema assegurar\u00e1 as pr\u00e9-condi\u00e7\u00f5es e garantir\u00e1 todos os interesses.<\/li>\n<li>Escreva o cen\u00e1rio de sucesso principal (CSP). Use de 3 a 9 passos para satisfazer todos os interesses e as garantias.<\/li>\n<li>Fa\u00e7a brainstorming e liste exaustivamente as condi\u00e7\u00f5es de extens\u00e3o. Inclua todas que o sistema pode detectar e deve tratar.<\/li>\n<li>Escreva os passos de tratamento de extens\u00e3o. Cada um terminar\u00e1 voltando para o CSP, com uma sa\u00edda de sucesso separada ou com uma falha.<\/li>\n<li>Extraia fluxos complexos para subcasos de uso; junte subcasos de uso triviais. Extrair um subcaso de uso \u00e9 f\u00e1cil, mas ele adiciona custo ao projeto.<\/li>\n<li>Reajuste o conjunto: adicione, subtraia e junte conforme necess\u00e1rio. Verifique pela legibilidade, integridade e satisfa\u00e7\u00e3o dos interesses dos stakeholders.<\/li>\n<\/ol>\n<p>Por fim, fa\u00e7a a verifica\u00e7\u00e3o de cada um dos campos do caso de uso escrito, respondendo \u00e0s seguintes perguntas:<\/p>\n<table border=\"0\">\n<tbody>\n<tr>\n<td><strong>Campo<\/strong><\/td>\n<td><strong>Quest\u00e3o<\/strong><\/td>\n<\/tr>\n<tr>\n<td rowspan=\"2\" valign=\"top\">T\u00edtulo do Caso de Uso<\/td>\n<td>1. \u00c9 uma frase com verbo ativo que declara o objetivo do ator prim\u00e1rio?<\/td>\n<\/tr>\n<tr>\n<td>2. O sistema pode alcan\u00e7ar o objetivo?<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\">Escopo e N\u00edvel<\/td>\n<td>3. Os campos est\u00e3o preenchidos?<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"2\" valign=\"top\">Escopo<\/td>\n<td>4. O caso de uso trata do sistema mencionado no Escopo como uma caixa-preta? (A resposta deve ser &#8220;Sim&#8221; se \u00e9 um documento de requisitos de sistema, mas poderia ser &#8220;N\u00e3o&#8221; se o caso de uso \u00e9 um caso de uso de neg\u00f3cio caixa-branca.)<\/td>\n<\/tr>\n<tr>\n<td>5. Se o sistema no Escopo \u00e9 o sistema a ser projetado, o projetista tem que projetar tudo dentro dele e nada fora dele?<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"2\" valign=\"top\">N\u00edvel<\/td>\n<td>6. O conte\u00fado do caso de uso corresponde ao n\u00edvel de objetivo declarado?<\/td>\n<\/tr>\n<tr>\n<td>7. O objetivo est\u00e1 realmente no n\u00edvel de objetivo declarado?<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"2\" valign=\"top\">Ator Prim\u00e1rio<\/td>\n<td>8. Ele\/ela\/isso tem comportamento?<\/td>\n<\/tr>\n<tr>\n<td>9. Ele\/ela\/isso tem um objetivo com o Sistema sob Discuss\u00e3o (SsD) que \u00e9 uma promessa de servi\u00e7o do SsD?<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"2\" valign=\"top\">Pr\u00e9-condi\u00e7\u00f5es<\/td>\n<td>10. Elas s\u00e3o obrigat\u00f3rias e podem ser estabelecidas no local pelo SsD?<\/td>\n<\/tr>\n<tr>\n<td>11. \u00c9 verdade que elas nunca s\u00e3o verificadas no caso de uso?<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\">Stakeholders e Interesses<\/td>\n<td>12. Eles s\u00e3o nomeadas e o sistema deve satisfazer seus interesses como declarado? (Uso varia por formalidade e toler\u00e2ncia)<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\">Garantias M\u00ednimas<\/td>\n<td>13. Todos interesses dos stakeholders est\u00e3o protegidos?<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\">Garantias de Sucesso<\/td>\n<td>14. Todos interesses dos stakeholders est\u00e3o satisfeitos?<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"3\" valign=\"top\">Cen\u00e1rio de Sucesso Principal<\/td>\n<td>15. Ele tem de 3 a 9 passos?<\/td>\n<\/tr>\n<tr>\n<td>16. Ele \u00e9 executado do acionamento at\u00e9 a entrega da garantia de sucesso?<\/td>\n<\/tr>\n<tr>\n<td>17. Ele permite as varia\u00e7\u00f5es corretas na seq\u00fc\u00eancia?<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"8\" valign=\"top\">Cada Passo em Qualquer Cen\u00e1rio<\/td>\n<td>18. \u00c9 descrito em uma frase como um objetivo que tem sucesso?<\/td>\n<\/tr>\n<tr>\n<td>19. O processo move-se distintamente para frente depois de sua conclus\u00e3o bem-sucedida?<\/td>\n<\/tr>\n<tr>\n<td>20. Est\u00e1 claro qual ator est\u00e1 operando o objetivo &#8211; quem est\u00e1 &#8220;com a bola&#8221;?<\/td>\n<\/tr>\n<tr>\n<td>21. Est\u00e1 clara a inten\u00e7\u00e3o do ator?<\/td>\n<\/tr>\n<tr>\n<td>22. O n\u00edvel de objetivo do passo \u00e9 menor do que o n\u00edvel de objetivo do caso de uso geral? Ele est\u00e1, preferivelmente s\u00f3 um pouco abaixo no n\u00edvel de objetivo do caso de uso?<\/td>\n<\/tr>\n<tr>\n<td>23. Voc\u00ea tem certeza que o passo n\u00e3o descreve o projeto de interface de usu\u00e1rio do sistema?<\/td>\n<\/tr>\n<tr>\n<td>24. Est\u00e1 clara qual informa\u00e7\u00e3o est\u00e1 sendo passada no passo?<\/td>\n<\/tr>\n<tr>\n<td>25. Ele &#8220;valida&#8221;, em vez de &#8220;verificar&#8221; a condi\u00e7\u00e3o?<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"2\" valign=\"top\">Condi\u00e7\u00e3o de Extens\u00e3o<\/td>\n<td>26. O sistema pode e deve detect\u00e1-la e trat\u00e1-la?<\/td>\n<\/tr>\n<tr>\n<td>27. Ela \u00e9 o que o sistema realmente precisa?<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\">Lista de Varia\u00e7\u00f5es Tecnol\u00f3gicas e de Dados<\/td>\n<td>28. Voc\u00ea tem certeza que n\u00e3o \u00e9 uma extens\u00e3o habitual de comportamento do cen\u00e1rio de sucesso principal?<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"3\" valign=\"top\">Conte\u00fado do Caso de Uso Geral<\/td>\n<td>29. Para os respons\u00e1veis e usu\u00e1rios: &#8220;\u00c9 isso que voc\u00ea quer?&#8221;<\/td>\n<\/tr>\n<tr>\n<td>30. Para os respons\u00e1veis e usu\u00e1rios: &#8220;Voc\u00ea ser\u00e1 capaz de dizer, na entrega, se voc\u00ea o obteve?&#8221;<\/td>\n<\/tr>\n<tr>\n<td>31. Para os desenvolvedores: &#8220;Voc\u00ea pode implement\u00e1-lo?&#8221;<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"font-size: 10px;\"><strong>Fonte<\/strong>: COCKBURN, A. Writing Effective Use Cases, 1\/e. Boston: Addison-Wesley, 2001<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Um caso de uso pode ser definido, resumidamente, como uma descri\u00e7\u00e3o do que o sistema deve fazer para atingir um determinado objetivo. Em uma narrativa em texto, os casos de uso s\u00e3o amplamente utilizadas para descobrir e registrar requisitos, necess\u00e1rios [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":141,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[46],"tags":[],"class_list":["post-129","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ferramentas"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.hectordufau.com.br\/wp\/wp-content\/uploads\/2014\/01\/drive-use-case.jpg?fit=530%2C622&ssl=1","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p4cTO8-25","jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.hectordufau.com.br\/wp\/index.php?rest_route=\/wp\/v2\/posts\/129","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hectordufau.com.br\/wp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hectordufau.com.br\/wp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hectordufau.com.br\/wp\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hectordufau.com.br\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=129"}],"version-history":[{"count":11,"href":"https:\/\/www.hectordufau.com.br\/wp\/index.php?rest_route=\/wp\/v2\/posts\/129\/revisions"}],"predecessor-version":[{"id":140,"href":"https:\/\/www.hectordufau.com.br\/wp\/index.php?rest_route=\/wp\/v2\/posts\/129\/revisions\/140"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hectordufau.com.br\/wp\/index.php?rest_route=\/wp\/v2\/media\/141"}],"wp:attachment":[{"href":"https:\/\/www.hectordufau.com.br\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=129"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hectordufau.com.br\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=129"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hectordufau.com.br\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=129"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}