<?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; métodos</title>
	<atom:link href="http://blog.arkhi.com.br/tag/metodos/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>A Primeira Atividade de um Arquiteto de Software em Projetos de TI</title>
		<link>http://blog.arkhi.com.br/2009/01/24/a-primeira-atividade-de-um-arquiteto-de-software-em-projetos-de-ti/</link>
		<comments>http://blog.arkhi.com.br/2009/01/24/a-primeira-atividade-de-um-arquiteto-de-software-em-projetos-de-ti/#comments</comments>
		<pubDate>Sat, 24 Jan 2009 19:30:57 +0000</pubDate>
		<dc:creator>Marco Mendes</dc:creator>
				<category><![CDATA[arquitetura de software]]></category>
		<category><![CDATA[métodos]]></category>

		<guid isPermaLink="false">http://dearchitectura.wordpress.com/?p=431</guid>
		<description><![CDATA[Muitos arquitetos de software imaginam que a primeira atividade de arquitetura em um projeto é montar modelos lógicos e físicos em linguagem como a UML. Outros, mais experientes, imaginam que a primeira atividade é capturar os requisitos arquiteturais, i.e, o conjunto de requisitos prioritários e complexos que têm alto impacto no produto de software sendo [...]]]></description>
			<content:encoded><![CDATA[<p>Muitos arquitetos de software imaginam que a primeira atividade de arquitetura em um projeto é montar modelos lógicos e físicos em linguagem como a UML. Outros, mais experientes, imaginam que a primeira atividade é capturar os requisitos arquiteturais, i.e, o conjunto de requisitos prioritários e complexos que têm alto impacto no produto de software sendo construído.</p>
<p>Nem modelos, nem requisitos. A primeira atividade de um arquiteto é alinhar as expectativas com todos os envolvidos de um projeto, i.e., definir a <strong>Visão Arquitetural</strong>.</p>
<p><strong>Visão Arquitetural &#8211; As Expectativas do Trabalho de Arquitetura em Um Projeto</strong></p>
<p><strong></strong></p>
<div id="attachment_432" class="wp-caption aligncenter" style="width: 310px"><strong><strong><img class="size-full wp-image-432" title="VisÃo Arquitetural" src="http://dearchitectura.files.wordpress.com/2009/01/visao.jpg" alt="VisÃo Arquitetural" width="300" height="225" /></strong></strong><p class="wp-caption-text">Visão Arquitetural</p></div>
<p><strong></strong></p>
<p>A visão arquitetural promove alinhamento. Ela define o norte, o alvo, o objetivo primário para todas as atividades de arquitetura e calibra as expectativas com todos os envolvidos do projeto tais como clientes, patrocinadores, diretores, gerentes e time técnico do projeto.</p>
<p>A visão implementa um dos sete hábitos de uma arquiteto e de equipe altamente eficaz que é: <em>&#8220;Comece com um Objetivo em Mente&#8221;</em>,  do guru Stephen Covey.  Um excelente exemplo para tornar este conceito concreto é imaginar a visão de Steve Jobs na concepção do iPhone, cuja visão é &#8220;trazer para os seus usuários uma experiência única em termos de usabilidade, interatividade  e convergência de mídias em um telefone celular&#8221;.</p>
<div id="attachment_433" class="wp-caption aligncenter" style="width: 290px"><img class="size-full wp-image-433" title="apple_iphone" src="http://dearchitectura.files.wordpress.com/2009/01/apple_iphone.jpg" alt="iPhone" width="280" height="244" /><p class="wp-caption-text">iPhone</p></div>
<p>Um outro exemplo, em um contexto da criação de um portal para uma instituição bancária, é trazer segurança real para os seus usuários em suas transações financeiras realizadas de suas casas.</p>
<p>Considere estes dois exemplos. Suas  visões são o norte para os seus arquitetos. Elas definem a priorização de suas atividades na dúvida entre dois mecanismos ou escolhas dentro de um projeto. No primeiro exemplo, a usabilidade, acessibilidade e aspectos de interatividade norteiam as escolhas primárias dos mecanismos e decisões táticas para o time de arquitetura. No segundo exemplo, aspectos de confidencialidade, integridade, autenticação, autorização, não-repúdio terão importância primária nas decisões, prioridades e atividades de um time de arquitetura.</p>
<p>A visão precede os requisitos, embora os requisitos possam ajudar a expressar parte da visão. A visão pode ser escrita em texto livre ou em algum formato estruturado.  Em termos simples, uma boa forma de coletar a visão junto aos usuários chave é através de três perguntas que modelem o estado desejado (processo de imaginação) para cada usuário chave.</p>
<ul>
<li>O que conseguimos com o produto, agora que a arquitetura está implementada?</li>
<li>Como sabemos que atingimos o objetivo do produto?</li>
<li>Como você se sente, agora que o objetivo do produto foi alcançado?</li>
</ul>
<p>A visão, portanto, é o compromisso do valor esperado pelos usuários e estabelece o princípio das ações do arquiteto e do time de arquitetura.</p>
<p>Vários arquitetos experientes enfatizam o conceito da visão arquitetural. Destacamos abaixo duas referências para os interessados em como criar uma visão arquitetural em projetos:</p>
<ol>
<li><a href="http://www.bredemeyer.com/pdf_files/vision_input.pdf">Criação da Visão Arquitetural</a> &#8211; Dana Bredemeyer (Apresenta um processo de entrevistas com usuários para definir a visão de arquitetura).</li>
<li><a href="http://www.gaudisite.nl/CustomerObjectivesViewPaper.pdf">A Visão dos Objetivos do Cliente</a> &#8211; Gerrit Muller (Apresenta um processo de identificação de &#8220;Condutores Chave&#8221; &#8211; Key Drivers, que expressa a visão a ser alcançada com uma arquitetura de software).</li>
</ol>
<blockquote><p>Pensamento do Dia:  &#8220;Meça duas vezes. Corte uma vez&#8221;, Regra do Carpinteiro.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blog.arkhi.com.br/2009/01/24/a-primeira-atividade-de-um-arquiteto-de-software-em-projetos-de-ti/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Combinando QAW com RUP e XP</title>
		<link>http://blog.arkhi.com.br/2008/11/04/combinando-qaw-com-rup-e-xp/</link>
		<comments>http://blog.arkhi.com.br/2008/11/04/combinando-qaw-com-rup-e-xp/#comments</comments>
		<pubDate>Tue, 04 Nov 2008 00:03:48 +0000</pubDate>
		<dc:creator>Eros Viggiano</dc:creator>
				<category><![CDATA[arquitetura de software]]></category>
		<category><![CDATA[métodos]]></category>
		<category><![CDATA[processos]]></category>
		<category><![CDATA[qaw]]></category>
		<category><![CDATA[rup]]></category>
		<category><![CDATA[SEI]]></category>
		<category><![CDATA[XP]]></category>

		<guid isPermaLink="false">http://dearchitectura.wordpress.com/?p=311</guid>
		<description><![CDATA[Em um post anterior, introduzimos a aplicação do QAW (Quality Attribute Workshop), um dos métodos do SEI centrados em arquitetura. Relembrando rapidamente: QAW se destina a sistematizar a identificação de requisitos de qualidade com o engajamento dos stakeholders.
Na maioria das vezes, não faz muito sentido identificar requisitos fora do contexto de um projeto. Sendo assim, [...]]]></description>
			<content:encoded><![CDATA[<p>Em um <a title="QAW" href="http://dearchitectura.wordpress.com/2008/11/01/qaw/">post anterior, introduzimos a aplicação do QAW</a> (Quality Attribute Workshop), <a href="http://dearchitectura.wordpress.com/2008/10/24/metodos-centrados-em-arquitetura-para-desenvolvimento-de-projetos/">um dos métodos do SEI centrados em arquitetura</a>. Relembrando rapidamente: QAW se destina a sistematizar a identificação de requisitos de qualidade com o engajamento dos <a href="http://epf.eclipse.org/wikis/openuppt/openup_basic/roles/stakeholder,_dTa6gMAYEdqX-s4mWhkyqQ.html">stakeholders</a>.</p>
<p>Na maioria das vezes, não faz muito sentido identificar requisitos fora do contexto de um projeto. Sendo assim, geralmente o QAW é empregado como uma atividade (ou conjunto de atividades) de um processo responsável por todo o ciclo de vida de desenvolvimento do software como o <a title="RUP" href="http://www.ibm.com/developerworks/rational/library/content/RationalEdge/jan01/WhatIstheRationalUnifiedProcessJan01.pdf">RUP</a> (Rational Unified Process) ou o <a title="XP" href="http://www.extremeprogramming.org/">XP</a> (eXtreme Programming). Neste texto, descrevemos uma possível combinação do QAW com esses processos.</p>
<p><strong>QAW e o ciclo de vida do RUP</strong><br />
O QAW deve ser empregado antes de se modelar a arquitetura. A <a href="http://dearchitectura.wordpress.com/2008/10/30/as-atividades-de-arquitetura-do-processo-unificado/">atividade de arquitetura do RUP</a> mais relacionada ao contexto do QAW é &#8220;Desenvolver Especificações Suplementares&#8221; (Develop Supplementary Specifications) que deve ser realizada no início do desenvolvimento, isto é, nas fases de Iniciação (ou Concepção) e Elaboração. Conforme o gabarito do RUP, os requisitos não-funcionais podem ser enquadrados como especificações suplementares nos casos de uso.</p>
<p style="text-align:center;"><span style="color:#0000ee;text-decoration:underline;"><a href="http://dearchitectura.files.wordpress.com/2008/11/humpchart.jpg"></a><a href="http://dearchitectura.files.wordpress.com/2008/11/humpchart.jpg"><img class="size-medium wp-image-303  aligncenter" title="humpchart" src="http://dearchitectura.files.wordpress.com/2008/11/humpchart.jpg?w=300" alt="" width="300" height="203" /></a></span></p>
<p>Algumas tarefas do RUP que também podem ser influenciadas pelo método do QAW são a &#8220;Análise Arquitetural&#8221; (Architectural Analysis) e &#8220;Priorizar Casos de Uso&#8221; (Prioritize Use Cases), respectivamente associadas às disciplinas de &#8220;Análise e Desenho&#8221; e &#8220;Requisitos&#8221;.</p>
<p>Maiores informações podem ser encontradas no relatório técnico <a href="http://www.sei.cmu.edu/publications/documents/04.reports/04tr011.html">&#8220;Integrating Software-Architecture-Centric Methods into the Rational Unified Process&#8221;</a>. <strong>Ponto de atenção</strong>: neste post, adaptei a nomenclatura para ficar coerente com o <strong>RUP 7</strong>.</p>
<p><strong>QAW e o ciclo de vida do XP</strong><br />
Apesar do XP dar muito pouca ênfase à arquitetura de software (por confiar no valor da &#8220;coragem&#8221; para uma possível refatoração arquitetural, se necessário), geralmente a arquitetura é capturada na &#8220;Metáfora do Sistema&#8221; (System Metaphor).</p>
<p style="text-align:center;"><a href="http://dearchitectura.files.wordpress.com/2008/11/project.gif"><img class="size-medium wp-image-304  aligncenter" title="project" src="http://dearchitectura.files.wordpress.com/2008/11/project.gif?w=300" alt="" width="300" height="129" /></a></p>
<p>Ao contrário do RUP, o XP originalmente não contempla um gabarito formal que inclua requisitos suplementares. Mas sugere-se suplementar as &#8220;Estórias de Usuário&#8221; (User Stories) com os requisitos de qualidade (representados com os <a href="http://www.sei.cmu.edu/architecture/products_services/sap_book.html">seis tradicionais atributos</a>). A primeira iteração do projeto é o momento perfeito para o evento de QAW, quando seriam capturados os requisitos de qualidade que devem nortear a metáfora sistêmica. A prática &#8220;Cliente presente&#8221; facilita o acontecimento do evento.</p>
<p>Outra prática que também contribui para o emprego do QAW é &#8220;Jogo de Planejamento&#8221; (Planning Game), pois a priorização dos requisitos de qualidade pode auxiliar na escolha das estórias de cada iteração.</p>
<p>Além disto, a prática &#8220;Desenvolvimento Guiado por Testes&#8221; (Test Driven Development) que potencialmente é favorecida pela identificação dos cenários no evento de QAW. Neste caso, os cenários podem ser usados posteriormente para avaliar o desenho e fornecer insumos para análise dos testes.</p>
<p>Maiores informações podem ser encontradas no relatório técnico <a href="http://www.sei.cmu.edu/publications/documents/04.reports/04tn036.html">&#8220;Integrating Software-Architecture-Centric Methods into Extreme Programming&#8221;</a>.</p>
<p><strong>QAW e outros processos de desenvolvimento de software</strong><br />
Mesmo que você não use diretamente o RUP ou o XP, possivelmente emprega alguma variante do RUP (ex: EUP, EssUP, OpenUP, etc) ou alguma metodologia ágil (ex: SCRUM, FDD, Crystal Clear). Ou ainda uma combinação de ambos como o AUP e a &#8220;dobradinha&#8221; RUP + Scrum. Assim poderá aplicar facilamente os fundamentos aqui expostos em qualquer método.</p>
<p>Outras referências:</p>
<ol>
<li><a class="l" href="http://www.sei.cmu.edu/publications/documents/03.reports/03tr016.html">Quality Attribute Workshops (QAWs), Third Edition</a></li>
<li><a href="http://www.ibm.com/software/awdtools/rup/">IBM Rational Unified Process</a></li>
<li><a href="http://www.sei.cmu.edu/news-at-sei/columns/the_architect/2005/1/architect-2005-1.htm">Integrating Architecture Methods: The Case of Extreme Programming</a></li>
<li><a href="http://www-128.ibm.com/developerworks/rational/library/feb05/krebs/">RUP in the dialogue with Scrum</a></li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://blog.arkhi.com.br/2008/11/04/combinando-qaw-com-rup-e-xp/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
