<?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; UP</title>
	<atom:link href="http://blog.arkhi.com.br/tag/up/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>Diretrizes do RUP para Arquitetura de Software</title>
		<link>http://blog.arkhi.com.br/2008/11/11/diretrizes-do-rup-para-arquitetura-de-software-2/</link>
		<comments>http://blog.arkhi.com.br/2008/11/11/diretrizes-do-rup-para-arquitetura-de-software-2/#comments</comments>
		<pubDate>Tue, 11 Nov 2008 10:00:34 +0000</pubDate>
		<dc:creator>Eros Viggiano</dc:creator>
				<category><![CDATA[arquitetura de software]]></category>
		<category><![CDATA[diretrizes]]></category>
		<category><![CDATA[processo]]></category>
		<category><![CDATA[rup]]></category>
		<category><![CDATA[UP]]></category>

		<guid isPermaLink="false">http://dearchitectura.wordpress.com/?p=348</guid>
		<description><![CDATA[
O RUP oferece uma fonte razoável de informações voltadas para a arquitetura de software como fluxo de trabalho (incluindo atividades e tarefas), conceitos, diretrizes, etc. Ao definir o ciclo de vida de desenvolvimento do software, constitui guia fundamental para arquitetos de software. Neste texto, citaremos algumas dessas diretrizes.

Descoberta, Análise e Controle Arquitetural: descreve como realizar descoberta, análise [...]]]></description>
			<content:encoded><![CDATA[<div>
<p>O RUP oferece uma fonte razoável de informações voltadas para a arquitetura de software como fluxo de trabalho (incluindo <a title="As Atividades de Arquitetura do Processo Unificado da Rational (RUP)" href="http://dearchitectura.wordpress.com/2008/10/30/as-atividades-de-arquitetura-do-processo-unificado/">atividades</a> e tarefas), conceitos, diretrizes, etc. Ao definir o ciclo de vida de desenvolvimento do software, constitui guia fundamental para arquitetos de software. Neste texto, citaremos algumas dessas diretrizes.</p>
<ul>
<li><strong>Descoberta, Análise e Controle Arquitetural</strong>: descreve como realizar descoberta, análise e controle arquitetural com o <a title="RSA" href="http://www.ibm.com/software/awdtools/architect/swarchitect/">Rational Software Architect (RSA)</a>. </li>
<li><strong>Integrando os Aplicativos Legados às Arquiteturas Modernas:</strong> orienta sobre a modernização de sistemas legados e sua integração com novos sistemas.  </li>
<li><strong>Dependência de Manifestação: </strong>orienta como realizar o mapeamento entre elementos de desenho e os  artefatos fisicos de implementacão (DLLs, executáveis e códigos).</li>
<li><strong>Dependência de Importação na Implementação: </strong>orienta a organização das dependências do modelo de implementação.</li>
<li><strong>Diagrama de Componentes: </strong>aponta utilidades de aplicação de um diagrama de componentes na descrição do modelo de implementação.</li>
<li><strong>Análise Arquitetural para os Aplicativos J2EE: </strong>fornece uma noção geral dos mecanimos de design e tecnologias de J2EE.</li>
</ul>
</div>
<p>As seguintes diretrizes indicam técnicas para modelar sistemas J2EE. Relacionam mecanismos de desenho com as tecnologias, bem como seu melhor uso.</p>
<div>
<ul>
<li>Aplicativo J2EE</li>
<li>Projetando o Estado para Aplicativos J2EE</li>
<li>Descrevendo a Distribuição para Aplicativos J2EE</li>
<li>Descrevendo a Arquitetura de Tempo de Execução para Aplicativos J2EE</li>
<li>JMS (Java Messaging Service)</li>
</ul>
<div class="moz-text-html" lang="x-western">A maior parte das diretrizes se refere a J2EE (infelizmente o RUP ainda não contempla informações especializadas para .NET). Apesar da quantidade modesta de diretrizes e estas não apresentarem uma abordagem muito profunda, podem ser um válido ponto de partida para o assunto pesquisado. As diretrizes do RUP para arquitetura de software não são tão abrangentes e úteis quanto para seu fluxo de trabalho.  </p>
<p>Observe que apontamos somente diretrizes diretamente relacionadas com atividades nas quais o arquiteto é o principal responsável.</p>
<p>Para mais informações:</p>
<ul>
<li><a href="http://erosviggiano.com/2008/11/02/diretrizes-do-rup-para-arquitetura-de-software/">Versão mais completa do artigo</a> (nível avançado)</li>
<li><a href="http://www.ibm.com/developerworks/edu/i-dw-r-rsacodereview.html">Exposing design flaws in your code, Part 1: Code review</a></li>
<li><a href="http://www.ibm.com/developerworks/edu/i-dw-r-archdiscover.html">Exposing design flaws in your code: Part 2, Architectural discovery </a></li>
<li><a href="http://www.ibm.com/developerworks/rational/library/dec04/bell/">UML basics: The component diagram</a></li>
</ul>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.arkhi.com.br/2008/11/11/diretrizes-do-rup-para-arquitetura-de-software-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OpenUP &#8211; Agilidade, Controle de Riscos e Disciplina Arquitetural</title>
		<link>http://blog.arkhi.com.br/2008/11/09/openup-agilidade-controle-de-riscos-e-disciplina-arquitetural/</link>
		<comments>http://blog.arkhi.com.br/2008/11/09/openup-agilidade-controle-de-riscos-e-disciplina-arquitetural/#comments</comments>
		<pubDate>Sun, 09 Nov 2008 10:42:14 +0000</pubDate>
		<dc:creator>Marco Mendes</dc:creator>
				<category><![CDATA[arquitetura de software]]></category>
		<category><![CDATA[atividades]]></category>
		<category><![CDATA[metodologias ágeis]]></category>
		<category><![CDATA[OpenUP]]></category>
		<category><![CDATA[rup]]></category>
		<category><![CDATA[UP]]></category>

		<guid isPermaLink="false">http://dearchitectura.wordpress.com/?p=329</guid>
		<description><![CDATA[Métodos ágeis são, sem dúvida, excelentes paradigmas para o desenvolvimento de software. Eles possuem excelentes premissas tais como: foco na comunicação, geração de valor para os clientes e desenho orientado à mudanças; entre outros. Por outro lado, métodos mais robustos como o RUP trazem uma forte orientação por riscos através da decomposição do processo em [...]]]></description>
			<content:encoded><![CDATA[<p>Métodos ágeis são, sem dúvida, excelentes paradigmas para o desenvolvimento de software. Eles possuem excelentes premissas tais como: foco na comunicação, geração de valor para os clientes e desenho orientado à mudanças; entre outros. Por outro lado, métodos mais robustos como o RUP trazem uma forte orientação por riscos através da decomposição do processo em fases temporais, onde os requisitos mais prioritários e complexos são identificados, detalhados e implementados nas fases iniciais (concepção e elaboração).</p>
<p>O Open-UP, que detalhamos <a title="OpenUP" href="http://dearchitectura.wordpress.com/2008/11/09/as-atividades-de-arquitetura-do-openup/" target="_blank">em um artigo anterior</a>, é um processo de domínio público e aberto para extensões que mescla a escola de agilidade de métodos ágeis como o <a href="http://www.extremeprogramming.org/" target="_self">XP </a>com o rigor do ataque aos riscos do <a title="RUP" href="http://dearchitectura.wordpress.com/2008/10/30/as-atividades-de-arquitetura-do-processo-unificado/" target="_blank">RUP</a>.</p>
<p>O OpenUP é baseado em quatro princípios básicos:</p>
<ul>
<li>Balanço: Balanceamento entre as prioridades conflitantes do projeto (custo, tempo, qualidade, escopo) de forma a maximizar o valor para os clientes.</li>
<li>Colaboração: Colaboração para alinhar os interesses e fomentar o entendimento comum da missão e prioridades do projeto.</li>
<li>Foco: Desde o início, foco na arquitetura para mitigar riscos e organizar o desenvolvimento de software.</li>
<li>Evolução: Evoluir através de feedbacks contínuos dos stakeholders e através da demonstração de valor agregado regularmente.</li>
</ul>
<p>O gráfico abaixo com a espinha dorsal do Open-UP mostra o rigor do ataque a riscos neste processo ágil.</p>
<div id="attachment_330" class="wp-caption aligncenter" style="width: 514px"><a href="http://dearchitectura.files.wordpress.com/2008/11/riscosopenup.png"><img class="size-full wp-image-330" title="riscosopenup" src="http://dearchitectura.files.wordpress.com/2008/11/riscosopenup.png" alt="Perfil de Riscos do OpenUP" width="504" height="159" /></a><p class="wp-caption-text">Perfil de Riscos do OpenUP</p></div>
<p style="text-align:center;"><em>Fonte: </em><a href="http://epf.eclipse.org/wikis/openup/"><em>OpenUP</em></a><em> &#8211; Licença </em><a href="http://www.eclipse.org/legal/epl-v10.html"><em>EPL</em></a></p>
<p>A fase de elaboração é normalmente finalizada por volta do 3/10 temporal de um projeto e deve apresentar um perfil de riscos muito baixos para que seja dada como encerrada. Para que os riscos estejam mitigados, é fundamental um foco permanente em atividades arquiteturais.</p>
<p>No OpenUP, diferentemente do RUP, a arquitetura é enfatizada como um produto coletivo e não como um produto do arquiteto. A arquitetura não deve ser arremessada para a equipe pelo <a href="http://www.agilemodeling.com/essays/agileArchitecture.htm" target="_blank">arquiteto da torre de marfim</a>. Além disso, a arquitetura é considerada evolutiva, embora ela tenha suas linhas de base salvas dentro do ciclo de vida do projeto (prática da Arquitetura Evolutiva).</p>
<p>O OpenUP produz apenas um único e ligeiro documento para a &#8220;disciplina&#8221; de arquitetura, chamado de Caderno Arquitetural (Architectural Notebook). Este documento compila as decisões realizadas pelo time, liderado pelo arquiteto de software, e formaliza as decisões técnicas tomadas para facilitar comunicações futuras.</p>
<p>A disciplina arquitetural do OpenUP pode ser observada também na lista de verificação do Caderno Arquitetural, colocada abaixo, e também na lista de atividades que documentamos <a href="http://dearchitectura.wordpress.com/2008/11/09/as-atividades-de-arquitetura-do-openup/" target="_blank">anteriormente</a>.</p>
<p><strong>Lista de Verificação de Arquitetura do OpenUP</strong></p>
<ul>
<li>A arquitetura está totalmente compreensível para todos os envolvidos do projeto?</li>
<li>Os objetivos da arquitetura, restrições de desenho e implementação e os requisitos foram descritos e endereçados?</li>
<li>Os mecanismos arquiteturais foram identificados e descritos?</li>
<li>As <a href="http://dearchitectura.wordpress.com/2008/10/26/desmistificando-a-decomposicao-em-camadas/" target="_blank">partições do sistema</a> foram suficientes definidas?</li>
<li>Os elementos chave da arquitetura foram definidos adequadamente?</li>
<li>As interfaces com sistemas externos foram representadas?</li>
<li>Os pontos de reuso foram identificados?</li>
<li>A arquitetura foi feita para evoluir?</li>
<li>A arquitetura conseguirá ser entregue pelo time nas restrições de tempo e custo do projeto?</li>
<li>O software foi mapeado adequadamente para o hardware?</li>
</ul>
<div style="display:none;">
<div class="stepContent">
<table class="stepTable" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr valign="top">
<td>
<ul>
<li> Is it clear when each <a class="elementLink" href="http://epf.eclipse.org/wikis/openup/core.tech.common.extend_supp/guidances/concepts/arch_mechanism_2932DFB6.html">Architectural Mechanisms</a> should be applied?</li>
<li> Is there a clearly defined design pattern in place to support each mechanism?</li>
<li> Does each mechanism adequately address the requirements it is intended to meet?</li>
</ul>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div style="display:none;">
<div class="stepContent">
<table class="stepTable" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr valign="top">
<td>
<ul class="noindent">
<li> Is partitioning approach clearly described and applied consistently?</li>
<li> Does the partitioning approach reduce complexity and improve understanding?</li>
<li> Have the partitions been defined to be highly cohesive within the partition, while the partitions themselves are         loosely coupled?</li>
</ul>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div style="display:none;">
<div class="stepContent">
<table class="stepTable" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr valign="top">
<td>
<ul>
<li> Have the <a class="elementLink" href="http://epf.eclipse.org/wikis/openup/core.tech.common.extend_supp/guidances/concepts/key_abstractions_1474DBF2.html">Key Abstractions</a> adequately defined?</li>
<li> Have the the key design elements (i.e., <a class="elementLink" href="http://epf.eclipse.org/wikis/openup/core.tech.common.extend_supp/guidances/concepts/component_CB167D48.html">Component</a>s) adequately defined?</li>
<li>
<ul>
<li> Do the components have well-defined interfaces?</li>
<li> Have the system’s responsibilities been allocated to the components?</li>
<li> Are the number and types of components reasonable?</li>
</ul>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div style="display:none;">
<div class="stepContent">
<table class="stepTable" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr valign="top">
<td>See <a class="elementLinkWithType" href="http://epf.eclipse.org/wikis/openup/core.tech.common.extend_supp/guidances/guidelines/repres_interfaces_to_ext_systems_51A34F6E.html">Guideline: Representing Interfaces to External Systems</a></td>
</tr>
</tbody>
</table>
</div>
</div>
<p>O OpenUP foi originalmente desenhado para times pequenos (&lt; 10 pessoas), embora acreditemos na sua escala até mesmo para projetos maiores. De toda forma, por ser um processo público, ágil e com forte ênfase em controle de riscos através de atividades arquiteturais, este processo é sem dúvida uma excelente escolha para desenvolvimento de software na realidade brasileira.</p>
<p>Um artigo bem interessante sobre o OpenUP, inspirou o método de trabalho usado para criar o Eclipse, pode ser encontrado <a href="http://www.ibm.com/developerworks/rational/library/edge/08/jul08/vanVelzen/index.html" target="_blank">na Rational Edge</a>.<em><br />
</em></p>
<p><em>Curiosidade do Dia: O criador do OpenUP é o <a href="http://www.eclipsecon.org/2006/Presenters.do?id=all#289" target="_blank">Ricardo Balduíno</a>, um brasileiro que trabalha como Engenheiro de Software Sênior pela IBM Rational.</em></p>
<p><em><br />
</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.arkhi.com.br/2008/11/09/openup-agilidade-controle-de-riscos-e-disciplina-arquitetural/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>As Atividades de Arquitetura do OpenUP</title>
		<link>http://blog.arkhi.com.br/2008/11/09/as-atividades-de-arquitetura-do-openup/</link>
		<comments>http://blog.arkhi.com.br/2008/11/09/as-atividades-de-arquitetura-do-openup/#comments</comments>
		<pubDate>Sun, 09 Nov 2008 00:44:41 +0000</pubDate>
		<dc:creator>Eros Viggiano</dc:creator>
				<category><![CDATA[arquitetura de software]]></category>
		<category><![CDATA[atividades]]></category>
		<category><![CDATA[metodologias ágeis]]></category>
		<category><![CDATA[OpenUP]]></category>
		<category><![CDATA[rup]]></category>
		<category><![CDATA[UP]]></category>

		<guid isPermaLink="false">http://dearchitectura.wordpress.com/?p=324</guid>
		<description><![CDATA[Conforme abordamos anteriormente, o OpenUP é uma derivação do Processo Unificado e, assim como este, é centrado na arquitetura de software. Ao mesmo tempo que aplica os princípios do ciclo de vida do RUP, o OpenUP adota uma &#8220;filosofia pragmática e ágil que foca no colaboração natural&#8221; para o desenvolvimento do software.
Diferentemente das outras abordagens [...]]]></description>
			<content:encoded><![CDATA[<p>Conforme abordamos <a href="http://dearchitectura.wordpress.com/2008/10/30/as-atividades-de-arquitetura-do-processo-unificado/">anteriormente</a>, o <a href="http://epf.eclipse.org/wikis/openup/">OpenUP</a> é uma derivação do Processo Unificado e, assim como este, é centrado na arquitetura de software. Ao mesmo tempo que aplica os princípios do ciclo de vida do RUP, o OpenUP adota uma &#8220;filosofia pragmática e ágil que foca no colaboração natural&#8221; para o desenvolvimento do software.</p>
<p>Diferentemente das outras <a href="http://agilemanifesto.org/">abordagens ágeis</a>, como o <a href="http://www.extremeprogramming.org/">XP</a>, a forte orientação à mitigação de riscos do OpenUP (premissa do UP, claro) enfatiza o trabalho arquitetural no início do ciclo de desenvolvimento. Ao balancear o ataque aos riscos técnicos com as práticas ágeis, o OpenUP adota a Arquitetura Evolucionária (Evolutionary Architecture), uma influência da Arquitetura Ágil (<a href="http://www.agilemodeling.com/essays/agileArchitecture.htm">Agile Architecture</a>) de Ambler. A Arquitetura Evolucionária se baseia em: realizar o trabalho arquitetural &#8220;just in time&#8221;, isto é, na medida que é necessário; documentar principais premissas arquiteturais; implementar e testar capacidades-chave através de protótipos.</p>
<p>As tarefas cujo principalmente responsável é do arquiteto são &#8220;Esboçar a Arquitetura&#8221; (Outline the Architecture) e &#8220;Refinar a Arquitetura&#8221; (Refine the Architecture). Basicamente, a tarefa de &#8220;Refinar a Arquitetura&#8221; complementa com maiores detalhes as informações identificadas em &#8220;Esboçar a Arquitetura&#8221;.</p>
<div id="attachment_325" class="wp-caption aligncenter" style="width: 399px"><a href="http://dearchitectura.files.wordpress.com/2008/11/architect_performs.jpg"><img class="size-full wp-image-325" title="architect_performs" src="http://dearchitectura.files.wordpress.com/2008/11/architect_performs.jpg" alt="Relacionamentos do Arquiteto de Software (OpenUP)" width="389" height="159" /></a><p class="wp-caption-text">Relacionamentos do Arquiteto de Software (OpenUP)</p></div>
<p style="text-align:center;"><em>Fonte: </em><a href="http://epf.eclipse.org/wikis/openup/"><em>OpenUP</em></a><em> &#8211; Licença </em><a href="http://www.eclipse.org/legal/epl-v10.htm"><em>EPL</em></a></p>
<p style="text-align:left;">Abaixo apresentamos uma correlação entre os passos das tarefas arquiteturais:<br />
<strong><br />
</strong></p>
<table border="1" cellspacing="2" cellpadding="2" width="100%">
<tbody>
<tr>
<td valign="top"><strong>Passos de &#8220;Esboçar Arquitetura&#8221;<br />
</strong></td>
<td valign="top"><strong>Passos de &#8220;Refinar Arquitetura&#8221;</strong></td>
</tr>
<tr>
<td valign="top">Identificar objetivos arquiteturais.</td>
<td rowspan="2" valign="top">Refinar os objetivos arquiteturais e os requisitos arquiteturalmente significativos.</td>
</tr>
<tr>
<td valign="top">Identificar requisitos arquiteturalmente significativos.</td>
</tr>
<tr>
<td valign="top">Identificar restrições sobre a arquitetura.</td>
<td rowspan="4" valign="top">Identificar elementos de design arquiteturalmente significativos.</td>
</tr>
<tr>
<td valign="top">Identificar mecanismos arquiteturais.</td>
</tr>
<tr>
<td valign="top">Identificar interfaces com sistemas externos.</td>
</tr>
<tr>
<td valign="top">Identificar abstrações-chave.</td>
</tr>
<tr>
<td valign="top">Identificar oportunidades de reuso.</td>
<td valign="top">Identificar oportunidades adicionais de reuso.</td>
</tr>
<tr>
<td valign="top">Definir abordagem para particionamento do sistema.</td>
<td rowspan="2" valign="top">Mapear o software ao hardware.</td>
</tr>
<tr>
<td valign="top">Definir abordagem para implantação do sistema.</td>
</tr>
<tr>
<td valign="top">Verificar a consistência arquitetural.</td>
<td valign="top">Validar a arquitetura.</td>
</tr>
<tr>
<td valign="top">Capturar e comunicar decisões arquiteturais.</td>
<td valign="top">Comunicar decisões.</td>
</tr>
<tr>
<td valign="top">N.A.</td>
<td valign="top">Definir arquitetura de desenvolvimento e arquitetura de testes.</td>
</tr>
</tbody>
</table>
<p>Apesar de ser um processo minimalista, as tarefas arquiteturais indicadas pelo OpenUP são suficientes para suprir as necessidades de modelagem da arquitetura de grande parte dos projetos de software. Ambas tarefas fornecem insumos para o preenchimento do &#8220;Caderno de Arquitetura&#8221; (&#8220;Architecture Notebook&#8221;, também traduzido por &#8220;Descrição Arquitetural&#8221; no OpenUP 0.9 em português). O Caderno de Arquitetura, único artefato da disciplina, registra todos os apontamentos relevantes do time de arquitetura. Não é pretensão do OpenUP documentar toda a atividade de arquitetura &#8211; para isto, conta com o valor ágil de &#8220;Comunicação&#8221;.</p>
<p>Para maiores informações aos interessados, seguem referências.</p>
<ol>
<li><a href="http://dearchitectura.wordpress.com/2008/10/30/as-atividades-de-arquitetura-do-processo-unificado/">As Atividades de Arquitetura do Processo Unificado</a> </li>
<li><a href="http://epf.eclipse.org/wikis/openup/">OpenUP</a></li>
<li><a href="http://agilemanifesto.org/">Agile Manifesto</a></li>
<li><a href="http://www.agilemodeling.com/essays/agileArchitecture.htm">Agile Architecture: Strategies for Scaling Agile Development</a></li>
<li><a href="http://www.agilemodeling.com/essays/initialArchitectureModeling.htm">Architecture Envisioning: An Agile Best Practice</a></li>
<li><a href="http://www.agiledata.org/essays/enterpriseArchitecture.html">Agile Enterprise Architecture</a></li>
<li><a href="http://www.sei.cmu.edu/architecture/essays.html#paradox">Architecture Paradox</a></li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://blog.arkhi.com.br/2008/11/09/as-atividades-de-arquitetura-do-openup/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
