<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>PauloMotta.pro &#187; UML</title>
	<atom:link href="http://www.paulomotta.pro.br/tag/uml/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.paulomotta.pro.br</link>
	<description>&#34;Qualquer tecnologia suficientemente avançada é indistinguível da mágica&#34; - Arthur C. Clarke</description>
	<lastBuildDate>Fri, 03 Sep 2010 11:39:33 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Diagrama de Sequência</title>
		<link>http://www.paulomotta.pro.br/2009/09/23/diagrama-de-sequencia/</link>
		<comments>http://www.paulomotta.pro.br/2009/09/23/diagrama-de-sequencia/#comments</comments>
		<pubDate>Wed, 23 Sep 2009 03:46:37 +0000</pubDate>
		<dc:creator>prmottajr</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Principal]]></category>
		<category><![CDATA[ANÁLISE]]></category>
		<category><![CDATA[PROGRAMAÇÃO]]></category>
		<category><![CDATA[UML]]></category>

		<guid isPermaLink="false">http://www.paulomotta.pro.br/2009/09/23/diagrama-de-sequencia/</guid>
		<description><![CDATA[Entre os diversos diagramas oferecidos pela UML, o de sequência tem um importante papel na concepção das interações entre as classes do sistema. O objetivo deste diagrama é apresentar, em ordem de chamada, as interações entre os métodos das classes.
A primeira observação é que não devemos fazer diagramas de sequência para todos os casos de [...]]]></description>
			<content:encoded><![CDATA[<p><!-- 		@page { margin: 20mm } 		P { margin-bottom: 2.12mm } 		A:link { so-language: zxx } -->Entre os diversos diagramas oferecidos pela <a href="../2009/09/21/unified-modeling-language-uml/" target="_blank">UML</a>, o de sequência tem um importante papel na concepção das interações entre as classes do sistema. O objetivo deste diagrama é apresentar, em ordem de chamada, as interações entre os métodos das classes.</p>
<p>A primeira observação é que não devemos fazer diagramas de sequência para todos os casos de uso do sistema. Apenas as partes mais complicadas devem ser exploradas para isso, pois este diagrama pode ser trabalhoso e criá-lo para todas as partes do sistema não seria produtivo nem traria benefícios extra.</p>
<p>Vejamos um caso prático, digamos um cadastro seguindo os moldes do já tradicional CRUD. Este tipo de módulo de sistema é tão bem resolvido que temos padrões de caso de uso, de análise e até de codificação, inclusive o Netbeans é capaz de gerar automaticamente. Neste caso, criar diagramas de sequência geraria uma enorme carga de trabalho, mas não traria nenhuma informação nova.</p>
<p>Uma boa dica para identificar casos de uso que devem gerar diagramas de sequência é buscar pelas quantidades de entidades e passos envolvidos. Isso não é uma regra fixa, mas pode ajudar bastante!</p>
<p>A segunda dica é procurar as ações descritas no caso de uso e podemos fazer isso identificando os verbos nas sentenças. Isto está relacionado ao fato de que os métodos (que são o ponto chave deste diagrama) modelam o comportamento dos objetos de uma classe e portanto o que pode ou não ser feito.</p>
<p>Essa relação entre ações e métodos direciona o analista para pensar em termos de código e é por isso que este diagrama faz parte da fase de projeto. Quando criamos um diagrama de sequência pensamos de forma mais concreta identificando nomes de métodos, dependências, tipos de retorno e listas de parâmetros. Dependendo da ferramenta gráfica utilizada os métodos adicionados nesta etapa já vão popular as classes, quando gerarmos o código esses esqueletos de método serão inseridos. Essa característica favorece até mesmo o uso de técnicas de teste já que com os métodos identificados fica mais fácil de gerar seus testes.</p>
<p>A seguir alguns exemplos de diagramas de sequência.</p>
<p><a href="http://www.paulomotta.pro.br/wp-content/uploads/2009/09/diagramaImportacao.jpg"><img class="aligncenter size-medium wp-image-344" title="diagramaImportacao" src="http://www.paulomotta.pro.br/wp-content/uploads/2009/09/diagramaImportacao-300x181.jpg" alt="" width="300" height="181" /></a></p>
<p><a href="http://www.paulomotta.pro.br/wp-content/uploads/2009/09/ProjetoSoftwareDiaSeqVenda.jpg"><img class="aligncenter size-medium wp-image-346" title="ProjetoSoftwareDiaSeqVenda" src="http://www.paulomotta.pro.br/wp-content/uploads/2009/09/ProjetoSoftwareDiaSeqVenda-300x122.jpg" alt="" width="300" height="122" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.paulomotta.pro.br/2009/09/23/diagrama-de-sequencia/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Unified Modeling Language &#8211; UML</title>
		<link>http://www.paulomotta.pro.br/2009/09/21/unified-modeling-language-uml/</link>
		<comments>http://www.paulomotta.pro.br/2009/09/21/unified-modeling-language-uml/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 04:37:05 +0000</pubDate>
		<dc:creator>prmottajr</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Principal]]></category>
		<category><![CDATA[ANÁLISE]]></category>
		<category><![CDATA[UML]]></category>

		<guid isPermaLink="false">http://www.paulomotta.pro.br/2009/09/21/unified-modeling-language-uml/</guid>
		<description><![CDATA[A linguagem unificada de modelagem (do inglÃªs Unified Modeling Language &#8211; UML) Ã© uma ferramenta poderosa para expressar o conhecimento obtido atravÃ©s das tÃ©cnicas de anÃ¡lise de sistemas. No entanto para ser usada corretamente precisamos entender bem do que se trata.
A primeira coisa a entender Ã© que esta ferramenta Ã© visual, no sentido de que [...]]]></description>
			<content:encoded><![CDATA[<p>A linguagem unificada de modelagem (do inglÃªs Unified Modeling Language &#8211; UML) Ã© uma ferramenta poderosa para expressar o conhecimento obtido atravÃ©s das tÃ©cnicas de anÃ¡lise de sistemas. No entanto para ser usada corretamente precisamos entender bem do que se trata.</p>
<p>A primeira coisa a entender Ã© que esta ferramenta Ã© visual, no sentido de que define componentes visuais para representar os conceitos identificados em um sistema e as formas como esses conceitos se relacionam. Isto nÃ£o quer dizer que a ferramenta tenha uma plataforma visual, sendo apenas uma especificaÃ§Ã£o que diversos fabricantes usam para definir suas prÃ³prias plataformas (gratuitas ou pagas) para suportar o uso da ferramenta (UML). Isso significa, inclusive, que os fabricantes estÃ£o livres para representar internamente essas estruturas que compÃµe a especificaÃ§Ã£o da forma que acharem mais conveniente. As evoluÃ§Ãµes no sentido de interpretar modelos para gerar cÃ³digo propostas pela <a href="http://www.paulomotta.pro.br/2008/09/10/geracao-de-codigo-e-mdd/" target="_blank">MDA</a> tentam convencer fabricantes para convergir para uma representaÃ§Ã£o unificada (ou pelo menos de fornecer a capacidade de exportar em um modelo comum em XML) a fim de que possa ser possÃ­vel processar a informaÃ§Ã£o, jÃ¡ que a leitura de imagens seria totalmente sem cabimento.</p>
<p>A segunda coisa a ter em mente Ã© que a UML <em>nÃ£o</em> Ã© uma metogologia, tÃ©cnica ou processo para desenvolver sistemas. Simples assim, nÃ£o Ã© e pronto. Usar UML nÃ£o significa ter um sistema orientado a objetos, nÃ£o significa nem mesmo ter um sistema <em>certo</em> (nem certo do ponto de vista de realizar as funÃ§Ãµes esperadas pelo usuÃ¡rio, nem do ponto de vista de estar sem erros.) Possivelmente Ã© nesta segunda etapa que os estudantes e usuÃ¡rios de UML tenham mais problemas.</p>
<p>Atualmente no mercado Ã© praticamente impossÃ­vel achar uma vaga de estÃ¡gio ou emprego para desenvolvimento de sistemas que nÃ£o peÃ§a conhecimentos de modelagem e de UML. Muitas vezes o que os empregadores nÃ£o percebem Ã© que o tanto que Ã© requisitado, principalmente de estagiÃ¡rios, torna praticamente impossÃ­vel contratar alguÃ©m, acabam que as entrevistas passam a ser mecanismos repletos de ficÃ§Ã£o, porque o candidato diz que sabe e o entrevistador tenta avaliar o melhor possÃ­vel se isso Ã© uma verdade. Considerando que os cursos de computaÃ§Ã£o tem duraÃ§Ã£o de 3 a 5 anos dependendo da instituiÃ§Ã£o e do enfoque e que para o aluno entender realmente de anÃ¡lis e e desenvolvimento de sistemas demora atÃ© que tenha completado um ciclo de disciplinas que pode levar de 1 a 2 anos. AlÃ©m disso, para que o aluno entenda <a href="http://www.paulomotta.pro.br/2009/08/14/mas-como-as-disciplinas-se-relacionam/" target="_blank">como as disciplinas se relacionam</a> tambÃ©m existe um tempo prÃ³prio. EntÃ£o atÃ© que o aluno-candidato esteja pronto para fazer uma entrevista ele estarÃ¡ praticamente formado pelo curso e aÃ­ a ideia de um estÃ¡gio jÃ¡ comeÃ§a perder o sentido jÃ¡ que seu princÃ­pio Ã© o de colocar na prÃ¡tica o que se estÃ¡ vendo no curso.</p>
<p>A relaÃ§Ã£o entre esses tempos e o uso correto da UML estÃ¡ no fato de que sÃ£o requisitos para o uso eficiente e correto da UML saber <a href="http://www.paulomotta.pro.br/2009/08/01/como-se-faz-analise/" target="_blank">fazer anÃ¡lise</a> e um processo de desenvolvimento de sistemas. Esses dois requisitos sÃ£o extensos e densos por si sÃ³, e se nÃ£o forem conhecidos corretamente nÃ£o tem sentido usar UML. Vejamos porque:</p>
<ul>
<li>UML serve para documentar a anÃ¡lise &#8211; para documentar alguma coisa precisamos das tÃ©cnicas para identificar essa coisa, em sistemas sÃ£o tÃ©cnicas de entrevista, escrita, itens tecnolÃ³gicos (que vÃ£o fundamentar a infraestrutura do sistema e sua arquitetura,) textos, algoritmos e padrÃµes entre outros. Se o analista nÃ£o conhecer esses fundamentos corretamente nÃ£o conseguirÃ¡ fazer o levantamento de informaÃ§Ãµes necessÃ¡rio para <em>usar</em> a UML.</li>
<li>Diagramas da UML nÃ£o tÃªm uma ordem implÃ­cita &#8211; a UML define um conjunto de diagramas que sÃ£o mais ou menos Ãºteis em cada tipo de situaÃ§Ã£o de desenvolvimento de sistemas, mas esses diagramas na verdade sÃ£o TODOS opcionais, isso mesmo, o analista vai usar os diagramas que julgar mais importantes, que o cliente solicitar (quando o cliente tem um processo prÃ³prio), ou que se adequarem melhor Ã  situaÃ§Ã£o. AlÃ©m disso, nÃ£o tem nada na UML que diga que deve-se fazer primeiro o diagrama X ou Y, entÃ£o por si sÃ³ a UML nÃ£o Ã© capaz de definir o fluxo pelo qual vamos executar nosso trabalho a fim de conceber e desenvolver o sistema para o usuÃ¡rio. O efeito colateral disso Ã© que muitas vezes o sistema Ã© feito de maneira <em>ad-hoc</em> e no final sÃ£o usadas ferramentas para gerar modelos reversos, ou seja, ler o cÃ³digo e gerar os diagramas. EstÃ¡ tÃ©cnica de gerar modelos reversos Ã© muito Ãºtil quando estamos tentando entender um sistema existente e nÃ£o temos documentaÃ§Ã£o nem acesso aos desenvolvedores originais da equipe, mas nÃ£o deveria ser usada como tÃ©cnica de desenvolvimento normal.</li>
</ul>
<p>EntÃ£o as empresas deveriam gastar mais tempo investindo em consolidar seus processos de desenvolvimento e treinar seus contratados do que buscar pessoas jÃ¡ prontas.</p>
<p>AlÃ©m de saber usar a UML como linguagem para representar seus conceitos, o analista precisa dominar tÃ©cnicas de levantamento e escrita das necessidades de seu cliente, a correta identificaÃ§Ã£o dos <a href="http://www.paulomotta.pro.br/2009/08/17/requisitos/" target="_blank">requisitos</a> Ã© fundamental para o desenvolvimento de um sistema que atenda o cliente. E mais uma vez nÃ£o existe representaÃ§Ã£o de requisitos na UML, essa Ã© uma outra parte que precisa ser realizada antes de partirmos para utilizÃ¡-la. AtÃ© mesmo os <a href="http://www.paulomotta.pro.br/2009/09/15/casos-de-uso/" target="_blank">casos de uso</a> que sÃ£o tÃ£o falados nÃ£o fazem parte da UML! O que existe na UML Ã© um <em>diagrama</em> que representa as relaÃ§Ãµes entre casos de usos bem como com seus atores, mas nÃ£o quais os passos de um caso de uso. AtÃ© podemos falar que um diagrama de atividades poderia ser usado para representar os passos de um caso de uso, mas isso seria uma subutilizaÃ§Ã£o deste elemento.</p>
<p>Uma vez que o analista domine todos esses aspectos e essas dimensÃµes chega a hora de usar a UML e nesse momento surge uma outra dÃºvida, qual ferramenta grÃ¡fica usar? Vale a pena mesmo usar uma ferramenta grÃ¡fica diretamente?</p>
<p>Existem vÃ¡rias ferramentas grÃ¡ficas para UML gratuitas e pagas, com diferentes capacidades e recursos, e claro diferentes faixas de preÃ§os. Uma comparaÃ§Ã£o entre as ferramentas precisa de um artigo prÃ³prio, mas uma coisa que pode ser evidenciada as ferramentas gratuitas apresentam realmente muitas limitaÃ§Ãµes em relaÃ§Ã£o as suas versÃµes pagas. Se o custo for um fator determinante para o projeto (e normalmente Ã©) deve-se levar em conta que as ferramentas que sÃ£o integradas ao ambiente de desenvolvimento podem oferecer mais capacidades de geraÃ§Ã£o de cÃ³digo e isso pode ajudar no desenvolvimento do projeto.</p>
<p>Quanto ao aspecto de <em>quando</em> comeÃ§ar a usar uma boa dica vem do pessoal de mÃ©todos agÃ©is, que pregam que devemos fazer a anÃ¡lise em um quadro branco ou mesmo em uma janela, e somente <em>depois</em> de chegarmos a algum acordo bÃ¡sico sobre o que serÃ¡ feito devemos passar aquilo para uma ferramenta. Na verdade essa dica Ã© bem compreensÃ­vel porque a Ã¡rea visÃ­vel que temos em qualquer ferramenta Ã© muito menor do que qualquer quadro branco (ou janela) e como no inÃ­cio vamos fazer muitas modificaÃ§Ãµes atÃ© chegar a uma versÃ£o mais estÃ¡vel entÃ£o Ã© muito incomodo trabalhar direto em uma ferramenta.</p>
<p>EntÃ£o para encadearmos o conhecimento a melhor ideia Ã© seguir:</p>
<ol>
<li>Conhecer as tÃ©cnicas de anÃ¡lise &#8211; permite escrever as necessidades do cliente</li>
<li>Conhecer um processo de desenvolvimento de sistemas &#8211; determina como encadear o que deve ser feito e quando deve ser feito</li>
<li>Conhecer a UML &#8211; contÃ©m os artefatos que sÃ£o necessÃ¡rios para documentar o que foi analisado</li>
<li>Conhecer uma ferramenta grÃ¡fica UML &#8211; permite desenhar os conceitos e possivelmente gerar os cÃ³digos base para o sistema.</li>
</ol>
<p>Seguindo essa ordem a chance de ter sucesso com o desenvolvimento de sistemas aumenta drasticamente porque passa a ser uma atividade coordenada.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.paulomotta.pro.br/2009/09/21/unified-modeling-language-uml/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Casos de Uso</title>
		<link>http://www.paulomotta.pro.br/2009/09/15/casos-de-uso/</link>
		<comments>http://www.paulomotta.pro.br/2009/09/15/casos-de-uso/#comments</comments>
		<pubDate>Tue, 15 Sep 2009 16:21:33 +0000</pubDate>
		<dc:creator>prmottajr</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Principal]]></category>
		<category><![CDATA[ANÁLISE]]></category>
		<category><![CDATA[UML]]></category>

		<guid isPermaLink="false">http://www.paulomotta.pro.br/2009/09/15/casos-de-uso/</guid>
		<description><![CDATA[O processo de anÃ¡lise de sistemas comeÃ§a com o levantamento do problema que serÃ¡ trabalhado, o maior erro que pode ser cometido Ã© comeÃ§ar a solucionar um problema que nÃ£o sabemos qual Ã©. Entretanto, uma vez definido e descrito o problema, identificada a soluÃ§Ã£o que vai ser empregada, a prÃ³xima etapa Ã© a listagem dos [...]]]></description>
			<content:encoded><![CDATA[<p>O processo de anÃ¡lise de sistemas comeÃ§a com o levantamento do problema que serÃ¡ trabalhado, o maior erro que pode ser cometido Ã© comeÃ§ar a solucionar um problema que nÃ£o sabemos qual Ã©. Entretanto, uma vez definido e descrito o problema, identificada a soluÃ§Ã£o que vai ser empregada, a prÃ³xima etapa Ã© a listagem dos requisitos funcionais e nÃ£o funcionais. Tendo a lista de requisitos funcionais, precisamos identificar todos os passos para realizar cada um dos requisitos funcionais, e isso Ã© o papel dos casos de uso.</p>
<p>Muitas vezes os casos de uso sÃ£o confundindos com os diagramas de caso de uso, estes sÃ£o representaÃ§Ãµes grÃ¡ficas que permitem visualizar os relacionamentos entre atores e casos de uso alÃ©m de relaÃ§Ãµes entre casos de uso. No entanto esses diagramas nÃ£o apresentam quais sÃ£o os passos necessÃ¡rios para atingir o objetivo do requisito funcional representado. Para que seja possÃ­vel desenvolver um sistema, precisamos entender qual Ã© a necessidade do usuÃ¡rio, e isso Ã© feito com entrevistas que serÃ£o documentadas para nortear a criaÃ§Ã£o ou atualizaÃ§Ã£o de mÃ³dulos no sistema.</p>
<p>Ã‰ importante utilizar o texto de um caso de uso para descrever, de forma clara e objetiva, o que precisa ser feito em cada funcionalidade do sistema. Neste aspecto uma caracterÃ­stica interessante Ã© que existem diversos modelos de casos de uso com mais ou menos seÃ§Ãµes, cada tipo se adequa melhor a um tipo de situaÃ§Ã£o ou contexto de trabalho, mas sÃ£o necessÃ¡rias pelos menos seis seÃ§Ãµes:</p>
<ol>
<li>TÃ­tulo &#8211; Ã© o nome do caso de uso propriamente dito, pode incluir um cÃ³digo para simplificar as referÃªncias</li>
<li>DescriÃ§Ã£o &#8211; pequeno texto que descreve a que esse caso de uso se refere, ou seja, explica de forma <em>resumida</em> o que acontece nesse caso de uso.</li>
<li>PrÃ©-condiÃ§Ãµes &#8211; sÃ£o todas as condiÃ§Ãµes que devem ser verdadeiras para que o caso de uso possa executar, entÃ£o para o desenvolvedor significa que terÃ£o que ser testadas antes de seguir em frente. Uma prÃ©-condiÃ§Ã£o clÃ¡ssica: &#8220;UsuÃ¡rio precisa estar autenticado no sistema,&#8221; indica que devemos testar (de alguam forma) se o usuÃ¡rio estÃ¡ autenticado (alÃ©m de ter autorizaÃ§Ã£o para acessar o recurso). Em sistemas web Ã© muito comum tentar quebrar a seguranÃ§a digitando o endereÃ§o de alguma pÃ¡gina do sistema diretamente no <em>browser</em>.</li>
<li>PÃ³s-condiÃ§Ãµes &#8211; sÃ£o todos os itens que garantimos como vÃ¡lidos se o caso de uso terminar com sucesso. Recibos impressos, dados salvos, e todo tipo de resultado obtido a partir da execuÃ§Ã£o desse caso de uso.</li>
<li>Fluxo Principal &#8211; aqui descrevemos os passos, em uma lista numerada, para se atingir o objetivo do caso de uso. Aqui nÃ£o devemos incluir referÃªncias a tecnologias especÃ­ficas (tais como &#8220;clicar no botÃ£o&#8221; ou &#8220;fazer um insert no banco&#8221;) e consideramos que nÃ£o acontecem erros, simplesmente porque fica muito mais fÃ¡cil de enteder o que deve ser feito se pensarmos de forma isolada em um caso correto.</li>
<li>Fluxos Alternativos &#8211; descrevemos aqui todas as situaÃ§Ãµes que podem acontecer em relaÃ§Ã£o ao fluxo principal, situaÃ§Ãµes de erro ou de desvio, por exemplo, usuÃ¡rio escolhe outra forma de pagamento por nÃ£o ter dinheiro suficiente para a compra. Aqui fica fÃ¡cil pensar de forma pontual em cada situaÃ§Ã£o de falha ou exceÃ§Ã£o porque o fluxo principal estÃ¡ completo, entÃ£o cada item de fluxo alternativo deve comeÃ§ar com o nÃºmero do passo que referencia no fluxo principal e deve descrever textualmente qual Ã© a situaÃ§Ã£o de erro (ou exceÃ§Ã£o) que aconteceu, em seguida apresenta uma lista numerada de passos para contornar a situaÃ§Ã£o.</li>
</ol>
<p>Ã‰ claro que existem outras seÃ§Ãµes possÃ­veis, mas muitas vezes trabalhamos com sistemas pequenos/mÃ©dios nos quais seÃ§Ãµes extra nÃ£o agregam muita informaÃ§Ã£o considerando o trabalho necessÃ¡rio para mantÃª-las. A primeira coisa a ter em mente Ã© que nÃ£o devemos utilizar associaÃ§Ãµes com tecnologias, nÃ£o deve ser usada nenhuma instruÃ§Ã£o de cÃ³digo, referÃªncias a tela ou bancos de dados. No entanto podemos ajudar na criaÃ§Ã£o do sistema atravÃ©s do uso de certas palavras-chave para guiar o entendimento, a escrita Ã© uma ferramenta fundamental no desenvolvimento de sistemas. Quando escrevemos que o usuÃ¡rio &#8220;seleciona&#8221; uma opÃ§Ã£o isso indica para o leitor que vai haver alguma maneira de escolher entre opÃ§Ãµes existentes e que serÃ£o apresentadas para ele, ou seja, ele nÃ£o vai escrever um valor, apenas a forma de concretizar isso Ã© que depende da tecnologia. Da mesma forma quando escrevemos que o usuÃ¡rio &#8220;informa&#8221; um valor, isso indica que deverÃ¡ existir uma forma para o usuÃ¡rio inserir um texto livre, o que vai restringir serÃ¡ o tipo de dado, se utilizaremos um nÃºmero inteiro, um nÃºmero real ou um texto tal como um nome.</p>
<p>Uma outra caracterÃ­stica interessante Ã© o fato de que no Fluxo Principal devemos nos concentrar em apresentar para o usuÃ¡rio um cenÃ¡rio sem erros, isso Ã© importante para que fique claro como atingir o objetivo daquele caso de uso, se misturarmos o tratamento de erro ou de exceÃ§Ã£o aos passos principais, pode ficar confuso o que Ã© parte da soluÃ§Ã£o e o que Ã© situaÃ§Ã£o de erro. AlÃ©m disso, facilita muito termos um &#8220;roteiro&#8221; de como atingir o objetivo do caso de uso para entÃ£o incluir os tratamentos de possÃ­veis erros.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.paulomotta.pro.br/2009/09/15/casos-de-uso/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
