<?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>Arkhi &#187; arquitetura de software</title>
	<atom:link href="http://blog.arkhi.com.br/category/arquitetura-de-software/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.arkhi.com.br</link>
	<description>Arquitetura Corporativa</description>
	<lastBuildDate>Mon, 30 Nov 2009 01:21:51 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Domínios da Arquitetura Corporativa</title>
		<link>http://blog.arkhi.com.br/2009/11/29/dominios-da-arquitetura-corporativa/</link>
		<comments>http://blog.arkhi.com.br/2009/11/29/dominios-da-arquitetura-corporativa/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 01:21:51 +0000</pubDate>
		<dc:creator>Eros Viggiano</dc:creator>
				<category><![CDATA[arquitetura corporativa]]></category>
		<category><![CDATA[arquitetura de negócio]]></category>
		<category><![CDATA[arquitetura de software]]></category>
		<category><![CDATA[gestão em aquisição de software]]></category>
		<category><![CDATA[arquitetura tecnológica]]></category>

		<guid isPermaLink="false">http://blog.arkhi.com.br/?p=665</guid>
		<description><![CDATA[A arquitetura de software pode ser entendida como um domínio da arquitetura corporativa. Inclusive, é dentro de tal contexto que o mais eficaz valor da arquitetura de software é realizado: o alinhamento com o negócio. Antes de prosseguirmos, convém definir &#8220;arquitetura corporativa&#8221;.
“A arquitetura corporativa define a coleção de capacidades de negócio, processos, serviços de negócio, [...]]]></description>
			<content:encoded><![CDATA[<p>A arquitetura de software pode ser entendida como um domínio da arquitetura corporativa. Inclusive, é dentro de tal contexto que o mais eficaz valor da arquitetura de software é realizado: o alinhamento com o negócio. Antes de prosseguirmos, convém definir &#8220;arquitetura corporativa&#8221;.</p>
<p><em>“A arquitetura corporativa define a coleção de capacidades de negócio, processos, serviços de negócio, serviços tecnológicos e infraestrutura  de TI para realizar tais capacidades.”</em> &#8211; TOGAF</p>
<p>TOGAF (The Open Group Architecture Framework) é um dos corpos de conhecimento em arquitetura corporativa. A saber, alguns outros:</p>
<ul>
<li>Zachman: o primeiro framework de arquitetura corporativa</li>
<li>EABOK: iniciativa do governo norte americano</li>
<li>DoDAF : framework do Departamento de Defesa Norte Americano</li>
<li>MODAF: framework do Departamento de Defesa do Reino Unido</li>
</ul>
<p>A arquitetura corporativa se preocupa com as capacidades da organização, enquanto que a arquitetura de software é apenas um dos aspectos para desenvolver tais capacidades. Abaixo relacionamos o senso comum sobre os domínios da arquitetura corporativa.</p>
<p style="text-align: center;"><img class="size-full wp-image-666 aligncenter" title="Típicos Domínios da Arquitetura Corporativa" src="http://blog.arkhi.com.br/wp-content/uploads/2009/11/dominios.png" alt="Típicos Domínios da Arquitetura Corporativa" width="547" height="304" /></p>
<p>Arquitetura de negócio é composta por:</p>
<ul>
<li>estratégia, governança e organização de um negócio;</li>
<li>informação sobre os processos-chaves de negócio;</li>
<li>relacionamento entre todos estes conceitos.</li>
</ul>
<p>Arquitetura de dados é composta por:</p>
<ul>
<li>estrutura lógica e física de ativos de dados da organização;</li>
<li>recursos de gestão de dados.</li>
</ul>
<p>Arquitetura de aplicação descreve o grupo lógico das capacidades para gerenciar objetos de dados necessários para processar os dados e o negócio.</p>
<p>E, finalmente, a arquitetura tecnológica:</p>
<ul>
<li>envolve capacidades lógicas de software e hardware requeridas para suportar a implantação de serviços de negócio, dados e aplicação;</li>
<li>inclui infraestrutura de TI, middleware, redes, comunicação e padrões (standards).</li>
</ul>
<p>A arquitetura de software, ao mesmo tempo que se preocupa fortemente com a arquitetura de sistemas de informação (aplicações e dados), se relaciona diretamente com a arquitetura de negócios e arquitetura tecnológica.  O relacionamento com a arquitetura de negócio provê um alinhamento natural com o contexto organizacional, as estratégias corporativas e os processos de negócio. Além disto, a estreita ligação com a arquitetura tecnológica garante que a fundação de TI estará apta a suportar aplicações com necessidades de negócio perfeitamente endereçadas.</p>
<p>A arquitetura de software, dentro de uma abordagem corporativa, certamente terá maiores chances de transformar o software em valor real para a companhia.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.arkhi.com.br/2009/11/29/dominios-da-arquitetura-corporativa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Artigo sobre gestão em arquitetura de software</title>
		<link>http://blog.arkhi.com.br/2009/08/26/artigo-sobre-gestao-em-arquitetura-de-software/</link>
		<comments>http://blog.arkhi.com.br/2009/08/26/artigo-sobre-gestao-em-arquitetura-de-software/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 13:05:09 +0000</pubDate>
		<dc:creator>Eros Viggiano</dc:creator>
				<category><![CDATA[arquitetura de software]]></category>
		<category><![CDATA[artigo]]></category>
		<category><![CDATA[ciclo de vida]]></category>
		<category><![CDATA[gestão]]></category>

		<guid isPermaLink="false">http://blog.arkhi.com.br/?p=638</guid>
		<description><![CDATA[Graças ao lembrete do Adriano Tavares, informamos que Marco Aurélio e eu publicamos o artigo &#8220;Ciclo de Vida da Gestão em Arquitetura de Software&#8221; na edição 14 da Engenharia de Software Magazine.
Atualmente a Engenharia de Software Magazine só está disponível para assinatura digital. Havendo algum interesse pelo artigo, deixe seu comentário.
Obrigado, Adriano!
]]></description>
			<content:encoded><![CDATA[<p>Graças ao lembrete do <a href="http://pangeanet.org/profile/adrianotavares">Adriano Tavares</a>, informamos que Marco Aurélio e eu publicamos o artigo <a href="http://www.devmedia.com.br/articles/viewcomp.asp?comp=13253">&#8220;Ciclo de Vida da Gestão em Arquitetura de Software&#8221;</a> na edição 14 da <a href="http://www.devmedia.com.br/assgold/listmag.asp?site=48">Engenharia de Software Magazine</a>.</p>
<p>Atualmente a Engenharia de Software Magazine só está disponível para assinatura digital. Havendo algum interesse pelo artigo, deixe seu comentário.</p>
<p>Obrigado, Adriano!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.arkhi.com.br/2009/08/26/artigo-sobre-gestao-em-arquitetura-de-software/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Gestão da arquitetura de software</title>
		<link>http://blog.arkhi.com.br/2009/08/02/gestao-da-arquitetura-de-software/</link>
		<comments>http://blog.arkhi.com.br/2009/08/02/gestao-da-arquitetura-de-software/#comments</comments>
		<pubDate>Sun, 02 Aug 2009 18:05:16 +0000</pubDate>
		<dc:creator>Eros Viggiano e Marco Mendes</dc:creator>
				<category><![CDATA[arquitetura de software]]></category>

		<guid isPermaLink="false">http://blog.arkhi.com.br/?p=571</guid>
		<description><![CDATA[arquitetura de software, gestão, projeto]]></description>
			<content:encoded><![CDATA[<p>É cada vez mais comum que empresas e projetos tenham pessoas ou times exercendo o papel do arquiteto de software e atividades em cronogramas relacionadas ao desenho de uma arquitetura de software. Mas o que é a arquitetura de software e quais são as atividades que devem ser realizadas pelo arquiteto de software? A arquitetura é uma atividade puramente técnica? Criar uma arquitetura de software é apenas modelar diagramas e implementar provas de conceito? A arquitetura de software produz realmente valor de negócio para um projeto? E como poderíamos organizar as atividades de arquitetura de software para gerar valor concreto para um projeto, produto ou organização?</p>
<p>A arquitetura de software tem por objetivo fazer o melhor uso dos recursos técnicos de um projeto para garantir a maior eficiência possível aos objetivos do projeto, produto e mesmo à visão e missão de uma empresa.</p>
<p>Podemos identificar, nesta visão, atividades tais como:</p>
<ul>
<li><strong>garantir o alinhamento técnico do projeto</strong> às diretrizes e estratégias tecnológicas de uma área ou organização, bem como à sua cultura organizacional;</li>
<li><strong>atender as restrições gerenciais de um projeto</strong> tais como custo, prazo e competências técnicas da equipe;</li>
<li><strong>identificar e detalhar requisitos</strong> significativos para a arquitetura de software;</li>
<li><strong>antecipar e mitigar os riscos técnicos</strong> de um projeto;</li>
<li><strong>realizar a análise e desenho técnico da arquitetura</strong> através de técnicas de modelagem arquitetural;</li>
<li><strong>construir provas de conceito e gerar código executável</strong> para os principais pontos de risco do projeto;</li>
<li><strong>orientar e acompanhar o time técnico</strong> para garantir a aderência do código construído às diretrizes arquiteturais do projeto;</li>
<li><strong>validar a estabilidade e objetivos</strong> da arquitetura do produto;</li>
<li><strong>coletar lições aprendidas e promover um novo ciclo de melhorias.</strong></li>
</ul>
<p>Em verdade, o ciclo de vida da arquitetura de software deve ser compreendido através de um processo mais amplo que aspectos puramente técnicos, que denominamos aqui como a gestão da <strong>arquitetura de software</strong>. </p>
<p>Arquiteturas de software são sempre desenvolvidas dentro de um contexto de negócios como, por exemplo, a criação ou evolução de um produto, a automação de processos de negócio ou a integração entre sistemas de fornecedores distintos. Assim como a arquitetura de software realiza tecnicamente objetivos organizacionais, ela deve prover feedback do mundo real conforme mostrado na figura abaixo.</p>
<p><img class="alignnone size-full wp-image-572" title="Influências sobre a gestão da arquitetura de software" src="http://blog.arkhi.com.br/wp-content/uploads/2009/05/influencias.png" alt="Influências sobre a gestão da arquitetura de software" width="589" height="340" /></p>
<p><em>&#8220;O líder planeja no início, antes de começar a agir&#8221;</em> &#8211; Sun Tzu em &#8220;A Arte da Guerra&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.arkhi.com.br/2009/08/02/gestao-da-arquitetura-de-software/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>As diferenças entre um arquiteto de software e um projetista Java EE/.NET</title>
		<link>http://blog.arkhi.com.br/2009/07/16/as-diferencas-entre-um-arquiteto-de-software-e-um-projetista-java-ee-net/</link>
		<comments>http://blog.arkhi.com.br/2009/07/16/as-diferencas-entre-um-arquiteto-de-software-e-um-projetista-java-ee-net/#comments</comments>
		<pubDate>Thu, 16 Jul 2009 20:28:39 +0000</pubDate>
		<dc:creator>Marco Mendes</dc:creator>
				<category><![CDATA[arquitetura de software]]></category>

		<guid isPermaLink="false">http://blog.arkhi.com.br/?p=616</guid>
		<description><![CDATA[Muitas vezes um arquiteto é confundido com um desenvolvedor sênior ou projetista especialista.  Um arquiteto, entretanto, não é um projetista especialista de uma tecnologia. O arquiteto de software é apenas outro papel, com outras atribuições e outras funçoes, conforme podemos observar dentro das escolas de renome de arquitetura de software no mundo, como por exemplo [...]]]></description>
			<content:encoded><![CDATA[<p>Muitas vezes um arquiteto é confundido com um desenvolvedor sênior ou projetista especialista.  Um arquiteto, entretanto, não é um projetista especialista de uma tecnologia. O arquiteto de software é apenas outro papel, com outras atribuições e outras funçoes, conforme podemos observar dentro das escolas de renome de arquitetura de software no mundo, como por exemplo o <a title="SEI SAT" href="http://www.sei.cmu.edu/architecture/" target="_blank">SEI SAT</a> .</p>
<p>Um arquiteto é um papel generalista. Um projetista é um especialista para um determinado domínio (ex: Java EE ou .NET). A figura abaixo, adaptada do trabalho de <a title="Gaudi" href="http://www.gaudisite.nl/SARCH.html" target="_blank">Gerrit Muller</a>, explora esta dicotomia.</p>
<div id="attachment_621" class="wp-caption aligncenter" style="width: 829px"><img class="size-large wp-image-621" title="Arquitetos Versus Projetistas Java EE/.NET" src="http://blog.arkhi.com.br/wp-content/uploads/2009/07/ArquitetosVersusProjetistas1-1024x553.jpg" alt="ArquitetosVersusProjetistas" width="819" height="442" /><p class="wp-caption-text">Arquitetos (em vermelho) versus projetistas Java/.NET (em azul)</p></div>
<p style="text-align: center;">
<p style="text-align: left;">Resumimos abaixo as principais diferenças abaixo entre estes papéis, que muitas vezes são confundidos sob a mesma alcunha do &#8220;arquiteto&#8221; dentro do mercado brasileiro.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-620" title="ArquitetosVersusProjetistas2" src="http://blog.arkhi.com.br/wp-content/uploads/2009/07/ArquitetosVersusProjetistas2.JPG" alt="ArquitetosVersusProjetistas2" width="710" height="503" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.arkhi.com.br/2009/07/16/as-diferencas-entre-um-arquiteto-de-software-e-um-projetista-java-ee-net/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Para saber mais sobre arquitetura de software, estude sobre arquiteturas de negócio</title>
		<link>http://blog.arkhi.com.br/2009/07/08/para-saber-mais-sobre-arquitetura-de-software-estude-sobre-arquiteturas-de-negocio/</link>
		<comments>http://blog.arkhi.com.br/2009/07/08/para-saber-mais-sobre-arquitetura-de-software-estude-sobre-arquiteturas-de-negocio/#comments</comments>
		<pubDate>Wed, 08 Jul 2009 13:38:53 +0000</pubDate>
		<dc:creator>Marco Mendes</dc:creator>
				<category><![CDATA[arquitetura de negócio]]></category>
		<category><![CDATA[arquitetura de software]]></category>

		<guid isPermaLink="false">http://blog.arkhi.com.br/?p=613</guid>
		<description><![CDATA[Arquitetos de software de verdade investem grande parte do seu aprendizado em técnicas arquiteturais. Exemplos destas técnicas incluem o modelo de visualização 4+1 de Kruchten, processos de software, os modelos SEI QAW, ATAM, CBAM, V&#38;B e ADD, os modelos de requisitos FURPS+, ISO 9126, ISO SQUARE, as recomendações arquiteturais da norma IEEE 1471, técnicas de [...]]]></description>
			<content:encoded><![CDATA[<p><em>Arquitetos de software de verdade</em> investem grande parte do seu aprendizado em técnicas arquiteturais. Exemplos destas técnicas incluem o modelo de visualização 4+1 de Kruchten, processos de software, os modelos SEI QAW, ATAM, CBAM, V&amp;B e ADD, os modelos de requisitos FURPS+, ISO 9126, ISO SQUARE, as recomendações arquiteturais da norma IEEE 1471, técnicas de liderança de times e mesmo modelos de arquiteturas corporativas como o TOGAF ou o Zachman Framework.</p>
<p>A notícia boa é que este corpo de conhecimento técnico permite que o arquiteto projete, elicite requisitos, modele, experimente, prove conceitos com código, acompanhe a sua equipe e edifique toda a arquitetura técnica de um produto.</p>
<p>A notícia ruim é que mesmo este corpo gigantesco não garante o bem mais esperado de uma arquitetura de software, que é o alinhamento às estratégias de uma organização.</p>
<p>A notícia pragmática, então, é uma arquitetura de software somente deve existir para servir à uma arquitetura de nível superior, chamada de arquitetura de negócio. A arquitetura de negócio não é um super-conjunto da arquitetura de software. Ela é apenas uma arquitetura que existe em outro plano.</p>
<p>Uma arquitetura de negócio é uma macro-organização que descreve o modelo operacional de uma organização, suas áreas de negócio, seus processos de negócio nucleares e os seus atores de negócio.</p>
<p>Para tornar o concreto o nosso raciocínio, uso como exemplo o <a href="http://en.wikipedia.org/wiki/Enhanced_Telecom_Operations_Map">eTOM </a>dentro so segmento de TELECOM. o eTOM é um guia com a descrição dos processos de negócio para um provedor de serviços de telecomunicações.</p>
<p>Um outro exemplo concreto é o <a href="http://en.wikipedia.org/wiki/SCOR">SCOR</a>, modelo de referência para empresas que possuam complexas cadeias de fornecimento (supply-chains).</p>
<p>Um terceiro exemplo, dentro do governo Brasileiro, é a <a href="http://www.aneel.gov.br/arquivos/PDF/NT_Empresa%20de%20Refer%C3%AAncia.pdf">empresa de referência da ANEEL</a>. Esta empresa de referência serve como modelo operacional para qualquer concessionária de distribuição de energia elétrica, descrita no documento supracitado através de um conjunto de motivadores de negócio, processos de negócio, regras de negócio e modelo organizacional.</p>
<p>Um quarto exemplo é o ITIL, que é uma arquitetura de negócio para operações e serviços de TI.</p>
<p>Ao saber mais do contexto onde atuamos como arquitetos, podemos escolher entre soluções técnicas mais adequadas e coerentes. Podemos usar melhor os recursos escassos da TI e gerar mais valor de negócio para estas empresas.</p>
<p>Para se tornar um melhor arquiteto e saber mais sobre arquiteturas de software, estude mais as arquiteturas de negócio das verticais de atuação da sua empresa.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.arkhi.com.br/2009/07/08/para-saber-mais-sobre-arquitetura-de-software-estude-sobre-arquiteturas-de-negocio/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fowler sobre Agilidade com Arquitetura de Software</title>
		<link>http://blog.arkhi.com.br/2009/06/30/fowler-sobre-agilidade-com-arquitetura-de-software/</link>
		<comments>http://blog.arkhi.com.br/2009/06/30/fowler-sobre-agilidade-com-arquitetura-de-software/#comments</comments>
		<pubDate>Tue, 30 Jun 2009 20:11:58 +0000</pubDate>
		<dc:creator>Eros Viggiano</dc:creator>
				<category><![CDATA[arquitetura de software]]></category>
		<category><![CDATA[ágil]]></category>
		<category><![CDATA[agilidade]]></category>

		<guid isPermaLink="false">http://blog.arkhi.com.br/?p=610</guid>
		<description><![CDATA[Há algum tempo discutimos sobre o aparente conflito entre arquitetura de software e métodos ágeis. Uma interessante e recente apresentação de Martin Fowler e Rebecca Parsons enfatiza os benefícios dos conceitos ágeis para a arquitetura de software. São 45 minutos da sua vida bem investidos  
]]></description>
			<content:encoded><![CDATA[<p>Há algum tempo discutimos sobre o aparente conflito entre <a href="http://blog.arkhi.com.br/2009/04/13/agilidade-versus-arquitetura-de-software/">arquitetura de software e métodos ágeis</a>. Uma interessante e recente <a href="http://www.infoq.com/presentations/agilists-and-architects">apresentação de Martin Fowler e Rebecca Parsons</a> enfatiza os benefícios dos conceitos ágeis para a arquitetura de software. São 45 minutos da sua vida bem investidos <img src='http://blog.arkhi.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.arkhi.com.br/2009/06/30/fowler-sobre-agilidade-com-arquitetura-de-software/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Palestra &#8220;O Arquiteto de Software em Projetos JEE&#8221;</title>
		<link>http://blog.arkhi.com.br/2009/06/21/arquiteto-de-software-em-projetos-jee/</link>
		<comments>http://blog.arkhi.com.br/2009/06/21/arquiteto-de-software-em-projetos-jee/#comments</comments>
		<pubDate>Sun, 21 Jun 2009 19:19:24 +0000</pubDate>
		<dc:creator>Eros Viggiano</dc:creator>
				<category><![CDATA[arquitetura de software]]></category>
		<category><![CDATA[arquiteto de software]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[JEE]]></category>

		<guid isPermaLink="false">http://blog.arkhi.com.br/?p=603</guid>
		<description><![CDATA[Tivemos a oportunidade de palestrar sobre arquitetura de software no evento MGJUG Tech Meeting, em 20/06/2009, no campus do UNI-BH. Segue apresentação.
Arquiteto de Software em Projetos JEE
View more OpenOffice presentations from eros.viggiano.

]]></description>
			<content:encoded><![CDATA[<p>Tivemos a oportunidade de palestrar sobre arquitetura de software no evento <a href="https://mgjug.dev.java.net/">MGJUG</a> Tech Meeting, em 20/06/2009, no campus do <a href="http://www.unibh.br/">UNI-BH</a>. Segue apresentação.</p>
<div style="width:425px;text-align:left" id="__ss_1616333"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/eros.viggiano/arquiteto-de-software-em-projetos-jee?type=powerpoint" title="Arquiteto de Software em Projetos JEE">Arquiteto de Software em Projetos JEE</a><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=arquiteto-jee-slideshareeros-viggiano-090621141210-phpapp01&#038;stripped_title=arquiteto-de-software-em-projetos-jee" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=arquiteto-jee-slideshareeros-viggiano-090621141210-phpapp01&#038;stripped_title=arquiteto-de-software-em-projetos-jee" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/">OpenOffice presentations</a> from <a style="text-decoration:underline;" href="http://www.slideshare.net/eros.viggiano">eros.viggiano</a>.</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.arkhi.com.br/2009/06/21/arquiteto-de-software-em-projetos-jee/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Estabelecendo a estratégia arquitetural</title>
		<link>http://blog.arkhi.com.br/2009/04/21/estabelecendo-a-estrategia-arquitetural/</link>
		<comments>http://blog.arkhi.com.br/2009/04/21/estabelecendo-a-estrategia-arquitetural/#comments</comments>
		<pubDate>Tue, 21 Apr 2009 23:32:13 +0000</pubDate>
		<dc:creator>Eros Viggiano</dc:creator>
				<category><![CDATA[arquitetura de software]]></category>
		<category><![CDATA[estratégia]]></category>

		<guid isPermaLink="false">http://dearchitectura.wordpress.com/?p=554</guid>
		<description><![CDATA[Entendemos que o arquiteto de software é o estrategista técnico do produto de software. O arquiteto de software (ou time de arquitetura) deve ser capaz de estabelecer, planejar e executar uma estratégia técnica para o software para atingir a visão do produto. Neste post, iremos discutir sobre o desenvolvimento da estratégia arquitetural.
Há algum tempo discutimos [...]]]></description>
			<content:encoded><![CDATA[<p>Entendemos que o arquiteto de software é o estrategista técnico do produto de software. O arquiteto de software (ou time de arquitetura) deve ser capaz de estabelecer, planejar e executar uma estratégia técnica para o software para atingir a visão do produto. Neste post, iremos discutir sobre o desenvolvimento da estratégia arquitetural.</p>
<div id="attachment_567" class="wp-caption aligncenter" style="width: 610px"><a href="http://dearchitectura.files.wordpress.com/2009/04/estrategia-arquitetural3.png"><img class="size-full wp-image-567" title="estrategia-arquitetural3" src="http://dearchitectura.files.wordpress.com/2009/04/estrategia-arquitetural3.png" alt="Do desenvolvimento da estratégia à execução" width="600" height="100" /></a><p class="wp-caption-text">Do desenvolvimento da estratégia à execução</p></div>
<p>Há algum tempo discutimos sobre a necessidade de <a href="http://dearchitectura.wordpress.com/2009/01/24/a-primeira-atividade-de-um-arquiteto-de-software-em-projetos-de-ti/">definir uma visão da arquitetura do software</a>, isto é, onde a arquitetura pretende chegar e como ela irá contribuir para concretizar a visão do produto. A visão arquitetural declara os objetivos pretendidos com a arquitetura. Também é interessante que a visão contemple <a href="http://dearchitectura.wordpress.com/2009/01/29/principios-arquiteturais/">princípios arquiteturais</a> a serem seguidos, norteando os arquitetos e disciplinando suas atividades. A visão deve ser suficiente para provar que a equipe é capaz de desenvolver o projeto e conseguir o patrocínio.</p>
<p> </p>
<p>Em seguida, convém que o time de arquitetura realize uma análise estratégica e descubra quais são as questões-chave para a arquitetura &#8211; as quais chamaremos de diretrizes arquiteturais. O time deve promover discussões com os stakeholders, investigando os interesses envolvidos, e analisar o contexto do projeto e organizacional de forma a revelar todas as forças quem podem influenciar o produto. Nesta análise, é imprescindível identificar e tratar riscos técnicos &#8211; cuja mitigação deve envolver o gerente do projeto. Invariavelmente o contexto dos projetos de desenvolvimento de software é permeado por oportunidades e ameaças como, por exemplo, prazos políticos, restrições tecnológicas, expertise do time de desenvolvimento, patrocínio, etc. Ao final desta atividade, o time deve contar com um conjunto de diretrizes arquiteturais. Ou, até mesmo, indicar que um projeto é inviavel tecnicamente dentro de tal contexto.</p>
<p>De posse das diretrizes arquiteturais, o time de arquitetura deve formular a estratégia. Atualmente a formulação de uma estratégia arquitetural pode ser considerada uma arte, dependendo muito da experiência da equipe. De uma forma geral, é importante identificar uma estratégia que atenda às diretrizes. Ao formular a estratégia, o arquiteto de software ou o time de arquitetura deve levar em consideração as experiências pregressas e se perguntar &#8220;qual estratégia melhor poderá responder às diretrizes arquiteturais?&#8221;  Estilos e padrões arquiteturais, sejam públicos ou de conhecimento do arquiteto, podem conduzir a escolha pois aproveitam experiências bem sucedidas. O principal produto desta atividade é a escolha dos principais mecanismos arquiteturais seguida de orientações sobre como desenvolvê-los.</p>
<p>O planejamento da definição arquitetural permite que a estratégia seja traduzida em ações culminando em um plano detalhado. O plano de definição arquitetural organiza a decomposição dos subsistemas, módulos ou componentes do sistema de software. Este plano deve ser fomentar à <a href="http://pt.wikipedia.org/wiki/Wbs">Estrutura Analítica do Projeto</a> (EAP ou WBS, em inglês), auxiliando o gerente de projeto à organizar as atividades de um <a href="http://dearchitectura.wordpress.com/2009/01/22/projetos-dirigidos-por-arquiteturas-de-software-o-diretor-e-o-produtor-de-software/">projeto dirigido pela arquitetura</a>.</p>
<p>Enfim, a execução da estratégia arquitetural é caracterizada pelas atividades de gestão de requisitos arquiteturais, modelagem arquitetural e avaliação de arquiteturas. Note que o ciclo formado tem forte relação com o ciclo de <a href="http://en.wikipedia.org/wiki/PDCA">PDCA</a>. Na execução, o emprego de táticas arquiteturais &#8211; sejam de mercado, acadêmicas ou conhecidas pelo arquiteto &#8211; consolida a definição arquitetural. Mas isto já é uma outra (longa) história&#8230;</p>
<div id="attachment_557" class="wp-caption aligncenter" style="width: 310px"><a href="http://dearchitectura.files.wordpress.com/2009/04/planejamento-execucao.png"><img class="size-medium wp-image-557" title="planejamento-execucao" src="http://dearchitectura.files.wordpress.com/2009/04/planejamento-execucao.png?w=300" alt="Planejamento e execução arquiteturais" width="300" height="258" /></a><p class="wp-caption-text">Planejamento e execução arquiteturais</p></div>
<p>Referências:</p>
<ol>
<li><a href="http://goliath.ecnext.com/coms2/gi_0199-1648156/Michael-Porter-What-is-Strategy.html">What is Strategy?</a> - Michael Porter</li>
<li><a href="http://www.thepalladiumgroup.com/ABOUT/Pages/ExecutionPremium.aspx">The Execution Premium</a> &#8211; Kaplan e Norton </li>
<li><a href="http://www.bredemeyer.com/pdf_files/vision_input.pdf">Creating An Architectural Vision</a> &#8211; Malan e Bredemeyer</li>
<li><a href="http://www.gaudisite.nl/CustomerObjectivesViewPaper.pdf">The customer objectives view</a> &#8211; Gerrit Muller</li>
<li><a href="http://www.gaudisite.nl/SystemArchitectureBook.pdf">System Architecting</a> &#8211; Gerrit Muller</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://blog.arkhi.com.br/2009/04/21/estabelecendo-a-estrategia-arquitetural/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Uma trilha de estudos iniciais para arquitetura de software</title>
		<link>http://blog.arkhi.com.br/2009/04/14/uma-trilha-de-estudos-iniciais-para-arquitetura-de-software/</link>
		<comments>http://blog.arkhi.com.br/2009/04/14/uma-trilha-de-estudos-iniciais-para-arquitetura-de-software/#comments</comments>
		<pubDate>Tue, 14 Apr 2009 19:38:27 +0000</pubDate>
		<dc:creator>Eros Viggiano</dc:creator>
				<category><![CDATA[arquitetura de software]]></category>
		<category><![CDATA[iniciante]]></category>
		<category><![CDATA[trilha de estudo]]></category>

		<guid isPermaLink="false">http://dearchitectura.wordpress.com/?p=547</guid>
		<description><![CDATA[Seja em sala de aula ou no trabalho, frequentemente alguém nos solicita um trilha de estudos em arquitetura de software. Longe de ter a presunção de conhecer O caminho certo, tentamos montar um pequeno guia de estudo inicial para arquitetura de software. Pessoas com aspirações diversas tem diferentes necessidades e sugerimos que cada um avalie [...]]]></description>
			<content:encoded><![CDATA[<p>Seja em sala de aula ou no trabalho, frequentemente alguém nos solicita um trilha de estudos em arquitetura de software. Longe de ter a presunção de conhecer<strong> O </strong>caminho certo, tentamos montar um pequeno guia de estudo inicial para arquitetura de software. Pessoas com aspirações diversas tem diferentes necessidades e sugerimos que cada um avalie o que melhor lhe cabe. De uma forma geral, recomendamos iniciar com as seguintes fontes:</p>
<ol>
<li>Trilogia de arquitetura de software do SEI:
<ul>
<li><strong><a href="http://www.sei.cmu.edu/publications/books/engineering/sw-arch-practice-second-edition.html">Software Architecture in Practice</a></strong><a href="http://www.sei.cmu.edu/publications/books/engineering/sw-arch-practice-second-edition.html"> (2nd Edition)</a></li>
<li><strong><a href="http://www.sei.cmu.edu/publications/books/engineering/eval-sw-arch.html">Evaluating Software Architectures</a></strong><a href="http://www.sei.cmu.edu/publications/books/engineering/eval-sw-arch.html">: Methods and Case Studies</a></li>
<li><strong><a href="http://www.sei.cmu.edu/publications/books/engineering/documenting-sw-arch.html">Documenting Software Architectures</a></strong><a href="http://www.sei.cmu.edu/publications/books/engineering/documenting-sw-arch.html">: Views and Beyond</a> (recomendamos esperar a segunda edição, a ser lançada ainda neste ano).</li>
</ul>
</li>
<li><strong><a href="http://www.viewpoints-and-perspectives.info/index.php?page=book">Software Systems Architecture</a></strong><a href="http://www.viewpoints-and-perspectives.info/index.php?page=book">: Working With Stakeholders Using Viewpoints and Perspectives</a> &#8211; de Nick Rozanski e Eóin Woods </li>
<li>Livros e artigos do site do <strong><a href="http://www.gaudisite.nl/">Gaudí System Architecting</a></strong>, mantido por Gerrit Muller.</li>
<li>Artigos do site de Dana <a href="http://www.bredemeyer.com/">Bredemeyer</a>.</li>
<li><a href="http://blogs.msdn.com/jmeier/">Blog de J. D. Meyer</a> </li>
<li>Família POSA. Para começar economizando, opte pelo Volume 4 e dispense o Volume 1. <strong><a href="http://www.amazon.com/Pattern-Oriented-Software-Architecture-Distributed-Computing/dp/0470059028">Pattern-Oriente​d Software Architecture Volume 4</a></strong>: A Pattern Language for Distributed Computing (v. 4) &#8211; Frank Buschmann (Author), et al.</li>
<li><strong><a href="http://www.amazon.com/Art-Systems-Architecting-Third-Engineering/dp/1420079131/">The Art of Systems Architecting</a></strong><a href="http://www.amazon.com/Art-Systems-Architecting-Third-Engineering/dp/1420079131/">, Third Edition</a> &#8211; Mark W. Maier e Eberhardt Rechtin</li>
<li><strong><a href="http://www.amazon.com/Software-Architecture-Perspectives-Emerging-Discipline/dp/0131829572">Software Architecture: Perspectives on an Emerging Discipline</a></strong> - Mary Shaw e David Garlan</li>
</ol>
<p>Criei uma lista bem completa e que vai muito além do iniciante está disponível em uma <a href="http://www.amazon.com/wishlist/1YDO5H3FETIJ4">wishlist da Amazon</a>. Aliás, se você passou do item 6, já venceu com louvor sua iniciação arquitetural (a prática é outro papo).</p>
<p>Se está mesmo com preguiça, muito ansioso e quer ter uma noção sobre arquitetura de software em um fim de semana, sugiro o <strong><a href="http://www.amazon.com/Essential-Software-Architecture-Ian-Gorton/dp/3540287132">Essential Software Architecture</a></strong> de Ian Gorton. Simples como sua proposta.</p>
<p>É bom lembrar que estamos nos referindo somente aos conhecimentos necessários para o desempenho das atividades técnicas da arquitetura de software. Conforme já comentamos anteriormente, o arquiteto de software deve desenvolver habilidades como, entre outras, liderança e comunicação interpessoal.</p>
<p>Gostou? Achou exagerado? Conhece outro caminho? Fique a vontade para comentar.</p>
<p>E se você começou a estudar usando esta lista, por favor, queremos saber.</p>
<p>Bons estudos!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.arkhi.com.br/2009/04/14/uma-trilha-de-estudos-iniciais-para-arquitetura-de-software/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Agilidade versus Arquitetura de Software</title>
		<link>http://blog.arkhi.com.br/2009/04/13/agilidade-versus-arquitetura-de-software/</link>
		<comments>http://blog.arkhi.com.br/2009/04/13/agilidade-versus-arquitetura-de-software/#comments</comments>
		<pubDate>Tue, 14 Apr 2009 01:03:51 +0000</pubDate>
		<dc:creator>Eros Viggiano</dc:creator>
				<category><![CDATA[arquitetura de software]]></category>
		<category><![CDATA[agilidade]]></category>

		<guid isPermaLink="false">http://dearchitectura.wordpress.com/?p=538</guid>
		<description><![CDATA[Atualmente, existe uma aparente tensão entre a comunidade de praticantes de métodos ágeis e arquitetos de software ortodoxos. Os chamados agilistas entendem que os arquitetos produzem “muito papel”, enquanto que mudança nos requisitos (principalmente arquiteturais) provoca incômodo a alguns arquitetos de software em qualquer estágio do projeto. Comentaremos rapidamente alguns mitos de agilidade versus arquitetura de [...]]]></description>
			<content:encoded><![CDATA[<p>Atualmente, existe uma aparente tensão entre a comunidade de praticantes de métodos ágeis e arquitetos de software ortodoxos. Os chamados agilistas entendem que os arquitetos produzem “muito papel”, enquanto que mudança nos requisitos (principalmente arquiteturais) provoca incômodo a alguns arquitetos de software em qualquer estágio do projeto. Comentaremos rapidamente alguns mitos de agilidade versus arquitetura de software.</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<th width="30%" valign="top">Mito</th>
<th width="20%" valign="top">Quem costuma acreditar nisto</th>
<th width="50%" valign="top">Realidade</th>
</tr>
<tr>
<td valign="top">Arquitetura de software produz &#8220;muito papel&#8221;.</td>
<td valign="top">Alguns adeptos de métodos ágeis.</td>
<td valign="top">O processo de software adotado determina quais documentos são realmente necessários. Comunica-se somente o estritamente necessário.</td>
</tr>
<tr>
<td valign="top">Arquitetura de software implica   em <em><a href="http://www.agilemodeling.com/essays/bmuf.htm">big design up front</a></em> (intenção de   criar todos os modelos no início do projeto).</td>
<td valign="top">Alguns agilistas e arquitetos.</td>
<td valign="top">A arquitetura deve respeitar a   natureza do método. Em projetos ágeis, a arquitetura do software deve ser   evolutiva. </td>
</tr>
<tr>
<td valign="top">Requisitos arquiteturais não   podem mudar a partir de um certo momento.</td>
<td valign="top">Alguns arquitetos e engenheiros de processos.</td>
<td valign="top">Métodos ágeis aceitam mudanças a qualquer momento, tendo impacto ou não sobre a arquitetura. O cliente deve sempre estar ciente das consequências de uma mudança de requisito   (arquitetural ou não)</td>
</tr>
<tr>
<td valign="top">Softwares desenvolvidos com   métodos ágeis não tem arquitetura.</td>
<td valign="top">Ignorantes da engenharia de   software.</td>
<td valign="top">Todo software tem uma arquitetura,   independente se alguém a projetou intencionalmente ou não.</td>
</tr>
<tr>
<td valign="top">&#8220;Arquiteto de software é somente   um novo e pomposo título que programadores pedem para ter em seus cartões.&#8221;(*) Projetos ágeis não precisam do arquiteto.</td>
<td valign="top">Alguns adeptos de métodos ágeis.</td>
<td valign="top">Vários métodos ágeis prescidem de   papéis. Mesmo que ninguém na equipe tenha o papel ou cargo de arquiteto de   software, convém planejar a arquitetura.</td>
</tr>
<tr>
<td valign="top">Toda a arquitetura deve ser   modelada no início do projeto.</td>
<td valign="top">Alguns arquitetos de software.</td>
<td valign="top">Novamente: o arquiteto   deve respeitar a natureza do projeto. Se o método prescreve &#8220;prove com código   sempre que possível&#8221;, é interessante realizar a arquitetura em software   executável mesmo que não esteja completamente modelada.</td>
</tr>
</tbody>
</table>
<p>(*) Esta é uma resposta atribuída a Kent Beck em OOPSLA 1992, segundo Philippe Kructhen.</p>
<p>Nossa convicção é que a disciplina de arquitetura de software pode contribuir para a redução de riscos técnicos mesmo em projetos que empreguem métodos ágeis. Para tal, em primeiro lugar, os trabalhos arquiteturais devem respeitar a natureza evolutiva de tais projetos. Em segundo, deve se ater a comunicar modelos arquiteturais apenas na medida exigida pelo método. Por exemplo, se a filosofia de desenvolvimento prega abandonar diagramas após a realização no modelo através do código, o arquiteto assim deve proceder. Outra situação: caso a equipe não faça uso de ferramentas CASE ou de modelagem avançadas, o arquiteto pode considerar a modelagem coletiva usando um quadro ou <em>flip chart</em>. </p>
<p>Algumas referências:</p>
<ul>
<li>Entrevista: <a rel="bookmark" href="http://dearchitectura.wordpress.com/2009/04/12/booch-e-ambler-sobre-arquitetura-em-projetos-ageis/">Booch e Ambler sobre arquitetura em projetos ágeis</a></li>
<li>Entrevista: <a href="http://www.infoq.com/news/2008/11/paulo-merson-architecture">Paulo Merson na Infoq</a></li>
<li><a href="http://www.sei.cmu.edu/architecture/what_architects_do.pdf">What software architects do?</a> - Philippe Kruchten</li>
<li><a href="http://dearchitectura.wordpress.com/2008/12/12/existe-arquitetura-de-software-em-projetos-xp/">Existe Arquitetura de Software em Projetos XP?</a></li>
</ul>
<div></div>
<div></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.arkhi.com.br/2009/04/13/agilidade-versus-arquitetura-de-software/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
