<?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étodo</title>
	<atom:link href="http://blog.arkhi.com.br/tag/metodo/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>Arquitetura Ágil com o AUP</title>
		<link>http://blog.arkhi.com.br/2008/11/20/arquitetura-agil-com-o-aup/</link>
		<comments>http://blog.arkhi.com.br/2008/11/20/arquitetura-agil-com-o-aup/#comments</comments>
		<pubDate>Thu, 20 Nov 2008 10:59:06 +0000</pubDate>
		<dc:creator>Eros Viggiano</dc:creator>
				<category><![CDATA[arquitetura de software]]></category>
		<category><![CDATA[ágil]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[agilidade]]></category>
		<category><![CDATA[AMDD]]></category>
		<category><![CDATA[AUP]]></category>
		<category><![CDATA[método]]></category>
		<category><![CDATA[processo]]></category>
		<category><![CDATA[software architecture]]></category>
		<category><![CDATA[TDD]]></category>

		<guid isPermaLink="false">http://dearchitectura.wordpress.com/?p=369</guid>
		<description><![CDATA[O AUP (Agile Unified Process) é uma &#8220;versão simplificada&#8221; do RUP idealizada por Scott Ambler que incorpora princípios ágeis. Assim como o OpenUP, o AUP procura balancear agilidade e controle de riscos.
As práticas do AUP se baseiam em técnicas ágeis como, como exemplo, Test Driven Development (TDD), Agile Model Driven Development (AMDD), Agile Change Management, [...]]]></description>
			<content:encoded><![CDATA[<p>O <a href="http://www.ambysoft.com/unifiedprocess/agileUP.html">AUP (Agile Unified Process)</a> é uma &#8220;versão simplificada&#8221; do <a href="http://dearchitectura.wordpress.com/2008/10/30/as-atividades-de-arquitetura-do-processo-unificado/">RUP</a> idealizada por Scott Ambler que incorpora princípios ágeis. Assim como o <a title="OpenUP" href="http://dearchitectura.wordpress.com/2008/11/09/as-atividades-de-arquitetura-do-openup/">OpenUP</a>, o AUP procura balancear <a title="OpenUP - Agilidade, Controle de Riscos e Disciplina Arquitetural" href="http://dearchitectura.wordpress.com/2008/11/09/openup-agilidade-controle-de-riscos-e-disciplina-arquitetural/">agilidade e controle de riscos</a>.</p>
<p>As práticas do AUP se baseiam em técnicas ágeis como, como exemplo, <a href="http://www.agiledata.org/essays/tdd.html">Test Driven Development (TDD)</a>, <a href="http://www.agilemodeling.com/essays/amdd.htm">Agile Model Driven Development (AMDD)</a>, <a href="http://www.agilemodeling.com/essays/changeManagement.htm">Agile Change Management</a>, <a href="http://www.agiledata.org/essays/databaseRefactoring.html">Database Refactoring</a> e <a href="http://www.agilemodeling.com/essays/agileArchitecture.htm">Agile Architecture</a>. Além disso, a filosofia do AUP parte dos seguintes princípios:</p>
<ol>
<li>A equipe sabe o que está fazendo.</li>
<li>Simplicidade.</li>
<li>Agilidade.</li>
<li>Foco em atividades de alto valor.</li>
<li>O processo será personalizável conforme as necessidades de quem o usa.</li>
</ol>
<p>O AUP concentra as atividades de análise, desenho e requisitos em uma única disciplina conhecida por Modelagem. Exatamente por interessar ao tema de Arquitetura de Software, nos concentraremos nessa disciplina. Afinal, como o AUP orienta o trabalho de arquitetura?</p>
<p>Arquitetura Ágil é o conceito que permeia o trabalho arquitetural. Para Ambler, a arquitetura é um dos fatores que, assim como no <a href="http://www.enterpriseunifiedprocess.com/">EUP</a>, permitem escalar o desenvolvimento de software sem perder o caráter ágil. De uma forma geral, a proposta da Arquitetura Ágil, assim como várias outras práticas propostas por Ambler, é dirigida pelo conceito de <em>bom o suficiente </em>(nossa tradução contextualizada para <em><a title="Just Barely Good Enough" href="http://www.agilemodeling.com/essays/barelyGoodEnough.html">Just Barely Good Enough</a> </em>ou JBGE). Nenhum excesso é cometido e procura-se sempre obter a melhor relação valor/tempo. Não significa que os modelos devam ser ruins ou o trabalho negligenciado &#8211; apenas destaca-se que uma atividade não precisa ser executada até a perfeição do produto e, sim, apenas o suficiente para a otimização do esforço.</p>
<p>Da mesma forma que o RUP e o EUP, o AUP propõe a evolução da arquitetura ao longo de duas fases. Na Iniciação, obtém-se uma arquitetura de alto nível, levando em consideração os requisitos técnicos. O objetivo é identificar uma estratégia arquitetural viável capaz de oferecer insumos ao planejamento do projeto e ao cálculo de esforços (lembre-se, o UP é dirigido pela arquitetura). Nesse momento, o diagrama recomendado mais importante é o esboço do modelo de implantação.</p>
<p>Já na Elaboração, o objetivo é refinar a arquitetura até atingir sua estabilidade. A modelagem da arquitetura é dirigida aos maiores riscos técnicos identificados. Tipicamente, protótipos são construídos para provar alguns aspectos da arquitetura. O principal objetivo dessa fase é a arquitetura estável, comprovada através da implementação dos requisitos estruturalmente críticos.</p>
<p>Historicamente, o AUP foi derivado da compreensão e refinamento dos princípios e valores expostos no livro <a href="http://www.ambysoft.com/books/agileModeling.html">Modelagem Ágil (Agile Modeling)</a>, quando Scott Ambler demonstra a possível aplicação da Modelagem Ágil através do RUP. O AUP, influenciado por métodos populares como o XP, RUP e EUP, foi um dos primeiros processos a tentar convergir conceitos do UP e técnicas ágeis Por sua vez, o AUP influenciou fortemente outros processos mais recentes como o notável OpenUP.</p>
<p>Para mais informações:</p>
<ul>
<li><a href="http://www.ambysoft.com/unifiedprocess/agileUP.html">The Agile Unified Process (AUP)</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/agileModelingRUP.htm">Agile Modeling and the Rational Unified Process (RUP)</a></li>
<li><a href="http://www.enterpriseunifiedprocess.com/essays/enterpriseArchitecture.html">The Enterprise Architecture Discipline: Scaling Agile Software Development</a></li>
<li><a href="http://www.agilealliance.org/show/1135">Making RUP Agile, por Michael Hirsch</a> </li>
<li><a href="http://www.ambysoft.com/books/agileModeling.html">Modelagem Ágil (Agil Modeling), de Scott Ambler</a> </li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.arkhi.com.br/2008/11/20/arquitetura-agil-com-o-aup/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>QAW: Um Método para Descobrir Requisitos de Qualidade</title>
		<link>http://blog.arkhi.com.br/2008/11/01/qaw/</link>
		<comments>http://blog.arkhi.com.br/2008/11/01/qaw/#comments</comments>
		<pubDate>Sat, 01 Nov 2008 22:16:20 +0000</pubDate>
		<dc:creator>Eros Viggiano</dc:creator>
				<category><![CDATA[arquitetura de software]]></category>
		<category><![CDATA[método]]></category>
		<category><![CDATA[não-funcionais]]></category>
		<category><![CDATA[qaw]]></category>
		<category><![CDATA[qualidade]]></category>
		<category><![CDATA[requisitos]]></category>
		<category><![CDATA[SEI]]></category>

		<guid isPermaLink="false">http://dearchitectura.wordpress.com/?p=269</guid>
		<description><![CDATA[QAW (Quality Attribute Workshop) é um dos métodos centrados em arquitetura desenvolvido pelo SEI. Seu propósito é engajar os stakeholders em revelar requisitos não-funcionais relacionados a uma sistema antes da arquitetura ser desenhada. O QAW pode ser usado em aderência a outros métodos como ao complementar o ATAM ou integrar com o ADD.
Em geral, sem [...]]]></description>
			<content:encoded><![CDATA[<p><a title="QAW" href="http://www.sei.cmu.edu/architecture/products_services/qaw.html">QAW </a>(Quality Attribute Workshop) é um dos <a title="Métodos Centrados em Arquitetura" href="http://dearchitectura.wordpress.com/2008/10/24/metodos-centrados-em-arquitetura-para-desenvolvimento-de-projetos/">métodos centrados em arquitetura</a> desenvolvido pelo <a href="http://www.sei.cmu.edu/">SEI</a>. Seu propósito é engajar os <a href="http://pt.wikipedia.org/wiki/Stakeholder">stakeholders</a> em revelar requisitos não-funcionais relacionados a uma sistema antes da arquitetura ser desenhada. O QAW pode ser usado em aderência a outros métodos como ao complementar o <a title="ATAM" href="http://www.sei.cmu.edu/architecture/ata_method.html">ATAM</a> ou integrar com o <a title="ADD" href="http://www.sei.cmu.edu/productlines/add_method.html">ADD</a>.</p>
<p>Em geral, sem o uso de um método para captura dos requisitos de qualidade, há uma lacuna entre a exposição das necessidades de negócio e a identificação dos requisitos arquiteturais.</p>
<p style="text-align:center;"><a href="http://dearchitectura.files.wordpress.com/2008/11/miracle-without-qaw1.png"><img class="alignnone size-full wp-image-272" title="miracle-without-qaw1" src="http://dearchitectura.files.wordpress.com/2008/11/miracle-without-qaw1.png" alt="" width="429" height="279" /></a></p>
<p style="text-align:center;"><a href="http://dearchitectura.files.wordpress.com/2008/11/miracle-without-qaw1.png"></a><em>Fonte: <a href="http://www.sei.cmu.edu/publications/documents/03.reports/03tr016.html">Quality Attribute Workshops (QAWs), Third Edition &#8211; Barbacci et al</a></em></p>
<p>De fato, muitos sistemas funcionam bem e tiveram boas arquiteturas desenhadas sem ajuda do QAW. Isso, muitas vezes, é proporcionado pela experiência de arquitetos e analistas (um tanto acostumados em tentar adivinhar as necessidades do usuário) que identificam os requisitos de qualidade artesanalmente ou com base em experiências místicas. Entretanto, sistemas muito complexos necessitam de maior precisão na obtenção de tais atributos de qualidade. O QAW pode facilitar a vida até mesmo de arquitetos experientes. </p>
<p>Além de endereçar uma precisão do requisitos, o QAW também facilita sua priorização. Muitos requisitos de qualidade conflitam entre si e tentam se equilibrar como que numa complexa balança. Por exemplo: confiabilidade pode implicar em menor performance; segurança pode afetar a usabilidade; etc.</p>
<p>A idéia é envolver os stakeholders em um evento de um dia objetivando identificar um conjunto de cenários com os atributos de qualidade categorizados, priorizados e refinados. Recomenda-se um número entre 5 e 30 stakeholders para contribuir na oficina de requisitos de qualidade e as discussões devem ser limitadas a um dia.</p>
<p>O QAW envolve os seguintes passos:</p>
<ol>
<li><strong>Apresentação do método QAW</strong> pelo moderador acrescida das devidas introduções.</li>
<li><strong>Apresentação das diretrizes de negócio/missão</strong>, mostrando os interesses envolvidos, contexto do sistema, requisitos funcionais de alto-nível, restrições, etc.</li>
<li><strong>Apresentação de um plano arquitetural</strong>. Embora a arquitetura em si ainda não exista,  é possível demonstrar uma estrutura candidata para solução do problema, diagramas de contexto, restrições chave (ex: SGBD, SO, middleware, padrões), etc.</li>
<li><strong>Identificação das diretrizes arquiteturais</strong>. Aproveitando um intervalo de 15 minutos entre os passos 3 e 4, os facilitadores consolidam suas notas sobre capturam os requisitos e objetivos identificados nos passos anteriores. </li>
<li><strong>Brainstorming de cenários</strong>. Seguindo uma cerimônia no estilo round-robin, procura-se identificar com os stakeholders os cenários relevantes. O facilitador deve ajudar o stakeholder a obter cenários bem formados, isto é, com estímulo, ambiente e resposta. Exemplo de cenário: &#8220;um usuário remoto submete um formulário via web durante o período de pico e recebe uma resposta em até seis segundos&#8221;.</li>
<li><strong>Consolidação de cenários</strong>, fundindo cenários parecidos. Além de reduzir as informações a serem tratadas, a consolidação evita a dispersão de votos do passo 7.</li>
<li><strong>Priorização de cenários</strong>, usando um esquema baseado em votação.</li>
<li>Refinamento dos cenários mais prioritários, garantindo que cada cenário prioritário seja descrito, entre outras coisas, pelos seis elementos (vide figura) e apresente atributos de qualidade associados a ele.</li>
</ol>
<p style="text-align:center;"> </p>
<p style="text-align:center;"><a href="http://dearchitectura.files.wordpress.com/2008/11/scenario.png"><img class="size-full wp-image-271 aligncenter" title="scenario" src="http://dearchitectura.files.wordpress.com/2008/11/scenario.png" alt="" width="438" height="183" /></a></p>
<p style="text-align:center;"><em>Fonte: <a href="http://www.sei.cmu.edu/architecture/products_services/sap_book.html">Software Architecture in Practice, 2n Edition &#8211; Bass, Clements, Kazman</a></em></p>
<p>Os resultado de uma sessão de QAW incluem:</p>
<ul>
<li>lista de diretrizes arquiteturais;</li>
<li>cenários &#8220;crus&#8221;</li>
<li>lista priorizada de cenários</li>
<li>cenários mais importantes refinados</li>
</ul>
<p>Com requisitos de qualidade mais refinados e devidamente balanceados por vários stakeholder, a equipe de arquitetura terá como insumo uma fonte extremamente valiosa. Em seu próximo projeto de software, sugiro que avalie a possibilidade de usar o QAW. Possivelmente, os riscos envolvidos serão bem menores.</p>
<p>Mais informações: <a href="http://www.sei.cmu.edu/publications/documents/03.reports/03tr016.html">Relatório Técnico sobre o QAW, 3a Edição</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.arkhi.com.br/2008/11/01/qaw/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

