<?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; SEI</title>
	<atom:link href="http://blog.arkhi.com.br/tag/sei/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>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>
		<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>
		<item>
		<title>Métodos Centrados em Arquitetura para Desenvolvimento de Projetos</title>
		<link>http://blog.arkhi.com.br/2008/10/24/metodos-centrados-em-arquitetura-para-desenvolvimento-de-projetos/</link>
		<comments>http://blog.arkhi.com.br/2008/10/24/metodos-centrados-em-arquitetura-para-desenvolvimento-de-projetos/#comments</comments>
		<pubDate>Fri, 24 Oct 2008 02:18:10 +0000</pubDate>
		<dc:creator>Marco Mendes</dc:creator>
				<category><![CDATA[arquitetura de software]]></category>
		<category><![CDATA[SEI]]></category>

		<guid isPermaLink="false">http://dearchitectura.wordpress.com/?p=151</guid>
		<description><![CDATA[O SEI ém um dos organismos mais pujantes no trabalho de arquitetura de software no mundo. Ao longo dos últimos quinze anos, este instituto desenvolveu modelos ancorados nas experiências de projetos que tem como veio comum o uso de métodos centrados em arquitetura. Descrevo aqui um brevíssimo resumo destas práticas, que podem ser usadas isoladamente [...]]]></description>
			<content:encoded><![CDATA[<p>O SEI ém um dos organismos mais pujantes no trabalho de arquitetura de software no mundo. Ao longo dos últimos quinze anos, este instituto desenvolveu modelos ancorados nas experiências de projetos que tem como veio comum o uso de <a href="http://www.sei.cmu.edu/architecture/index.html">métodos centrados em arquitetura</a>. Descrevo aqui um brevíssimo resumo destas práticas, que podem ser usadas isoladamente ou coletivamente para apoiar a construção de projetos.</p>
<ul>
<li><a href="http://www.sei.cmu.edu/architecture/products_services/qaw.html">QAW (Quality Attribute Workshop)</a>- Método para coleta de requisitos arquiteturais e atributos de qualidade de um sistema. Exemplos de atributos de qualidade incluem desempenho, usabilidade ou segurança.</li>
<li><a href="http://www.sei.cmu.edu/architecture/products_services/add_method.html">ADD (Attribute Driven Design)</a> &#8211; Método para desenho arquitetônico a partir da valoração e priorização dos atributos de qualidade de um sistema no contexto de um projeto.</li>
<li><a href="http://www.sei.cmu.edu/architecture/products_services/atam.html">ATAM (Architecture Tradeoff Analysis Method)</a> &#8211; Método para avaliação de uma arquitetura a partir de seus atributos de qualidade.</li>
<li><a href="http://www.sei.cmu.edu/architecture/products_services/arch_doc_coaching.html">V&amp;B  (Views and Beyond) </a>- Método para documentação de arquiteturas baseado na idéia de múltiplas visões.</li>
<li><a href="http://www.sei.cmu.edu/architecture/products_services/cbam.html">CBAM (Cost Based Analysis Method)</a> &#8211; Método para definição e evolução de uma arquitetura baseado em critérios econômicos e financeiros.</li>
<li><a href="http://www.sei.cmu.edu/architecture/arid.html">ARID (Active Reviews for Intermediate Designs)</a> &#8211; Método para refinamento sucessivo de uma arquitetura ao longo das iterações de um projeto.</li>
</ul>
<p>Para quem conhece o RUP, um <a href="http://www.sei.cmu.edu/pub/documents/04.reports/pdf/04tr011.pdf">excelente relatório técnico</a> do SEI foi publicado para correlacionar o fluxo de arquitetura do RUP e os métodos do SEI.</p>
<p>Uma fonte mais formal de conhecimento são os livros publicados pelo grupo de arquitetura do SEI. Um resumo sobre os principais livros que descrevem estes métodos pode ser encontrado <a href="http://blog.marcomendes.com/2008/09/08/uma-refeicao-de-arquitetura-de-software-livros-para-criar-avaliar-e-documentar-arquiteturas-de-software/">aqui</a>.</p>
<p>Estes &#8220;legos&#8221; podem ser usados por analistas de requisitos (QAW), arquitetos (ATAM, V&amp;B), projetistas (ARID) e até mesmo gerentes técnicos (CBAM) e constituem-se de práticas valiosas para a montagem de sistemas complexos.<br />
<img src="http://www.bestlinux.com.br/images/stories/Imagens_Noticias/lego.jpg" alt="Legos Arquiteturais" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.arkhi.com.br/2008/10/24/metodos-centrados-em-arquitetura-para-desenvolvimento-de-projetos/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
