<?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; processos</title>
	<atom:link href="http://blog.arkhi.com.br/tag/processos/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>As Atividades de Arquitetura do Processo Unificado da Rational (RUP)</title>
		<link>http://blog.arkhi.com.br/2008/10/30/as-atividades-de-arquitetura-do-processo-unificado/</link>
		<comments>http://blog.arkhi.com.br/2008/10/30/as-atividades-de-arquitetura-do-processo-unificado/#comments</comments>
		<pubDate>Thu, 30 Oct 2008 01:40:19 +0000</pubDate>
		<dc:creator>Marco Mendes</dc:creator>
				<category><![CDATA[arquitetura de software]]></category>
		<category><![CDATA[processos]]></category>
		<category><![CDATA[rup]]></category>

		<guid isPermaLink="false">http://dearchitectura.wordpress.com/?p=250</guid>
		<description><![CDATA[O processo unificado e suas derivações (RUP, EUP, AUP e o Open-UP) são dirigidos por arquitetura, i.e., enfatizam fortemente as atividades arquiteturais ao longo de um projeto de TI. Resumo aqui as principais tarefas arquiteturais que devem ser realizadas dentro de um projeto.

Coletar Requisitos Suplementares. O RUP enfatiza através de um método chamado FURPS+ criado [...]]]></description>
			<content:encoded><![CDATA[<p>O processo unificado e suas derivações (RUP, EUP, AUP e o Open-UP) são dirigidos por arquitetura, i.e., enfatizam fortemente as atividades arquiteturais ao longo de um projeto de TI. Resumo aqui as principais tarefas arquiteturais que devem ser realizadas dentro de um projeto.</p>
<ol>
<li>Coletar Requisitos Suplementares. O RUP enfatiza através de um método chamado FURPS+ criado por Robert Grady e disponibilizado no livro <em>Practical Software Metrics for Project Management and Process Improvement</em>. Prentice-Hall, 1992. Este método enfatiza a captura de requisitos como usabilidade, confiabilidade, desempenho, suportabilidade, entre diversos outros. Um artigo chave para o entendimento do método FURPS+ é o artigo <a href="http://www.ibm.com/developerworks/rational/library/4706.html#footnotes" target="_blank">Capturing Architectural Requirements</a>, de Peter Eeles. Um versão em formato de questionário pode ser encontrado <a href="http://blog.marcomendes.com/2006/06/19/como-e-por-que-criar-uma-arquitetura-executavel-em-sistemas-de-informacao/" target="_blank">aqui</a>.</li>
<li>Identificar os casos de uso significativos para análise arquitetural. Em um sistema, apenas um sub-conjunto dos casos de uso são críticos para o negócio e complexos tecnicamente. Este sub-conjunto deve ser exercitado e provado através de uma arquitetura.</li>
<li>Realizar a análise arquitetural. A análise arquitetural visa produzir uma arquitetura candidata e refiná-la sucessivamente ao longo do projeto. Esta é uma atividades claramente iterativa e incremental e compreende as definições dos mecanismos (Soluções) que irão realizar os requisitos do projeto.  Um aspecto endereçado aqui é a <a href="http://dearchitectura.wordpress.com/2008/10/26/desmistificando-a-decomposicao-em-camadas/" target="_blank">decomposição em camadas</a>.  A série de artigos referenciados ao final deste blog fornece, também, mais informações sobre este processo.</li>
<li>Construir Provas de Conceito Arquiteturais. Durante o processo da análise arquitetural, aspectos de risco do projeto podem merecer uma investigação mais detalhada. Uma prova de conceito no processo unificado pode tomar as seguintes formas: <em>Modelagem conceitual; Protótipo &#8216;Rápido; Simulação; Conversão automática de especificações em código; Especificações &#8216;executáveis&#8217;ou a Construção de  &#8216;picos invertidos&#8217; como protótipos &#8211; fatias verticais através de camadas</em>.</li>
<li> Avaliar Viabilidade das Provas de Conceito Arquiteturais. Toda prova de conceito deve ser avaliada contra os objetivos e requisitos que ela pretende realizar de forma que os riscos associados sejam mitigados.</li>
<li>Identificar os mecanismos de design. Esta tarefa lida com o processo de seleção e escolha das tecnologias que irão realizar uma arquitetura.</li>
<li>Identificar e incorporar elementos de design. Dado que uma tecnologia esteja escolhida, é necessário refinar os elementos da arquitetura em elementos de design e também melhorá-lo através de soluções como <em>design patterns</em>.</li>
<li>Estrutura o modelo de implementação. Esta tarefa estabelece a estrutura dos elementos de implementação baseados nas responsabilidades designadas para subsistemas de implementação e seu conteúdo.</li>
</ol>
<p>Os principais artefatos produzidos pelo time de arquitetura (arquiteto de software, analistas de sistemas,  analista de requisitos e projetistas) são:</p>
<ul>
<li>Requisitos Suplementares</li>
<li>Documento de Arquitetura de Software</li>
<li>Provas de Conceito</li>
<li>Modelo de Design</li>
<li>Modelo de Implementação</li>
</ul>
<p>Um outro aspecto importante no RUP é o momento temporal onde estas tarefas se concentram &#8211; até 3/10 do tempo do projeto. Por exemplo, se tivéssemos executando um projeto de 4 meses (18 semanas), teríamos o seguinte padrão:</p>
<ul>
<li>Até duas semanas (1/10 do tempo) para identificar os requisitos suplementares.</li>
<li>Até duas semanas para gerar uma primeira proposta de arquitetura candidata e mais quatro semanas (+ 2/10 do tempo) para refinamentos desta arquitetura.</li>
<li>Até seis semanas (3/10 do tempo) para a execução de provas de conceito e verificação da viabilidade destas provas de conceito.</li>
<li> Até seis semanas (3/10 do tempo) para o detalhamento de uma arquitetura com os elementos de desenho instalados e um modelo de implementação definido.</li>
</ul>
<p>Temporalmente do RUP, portanto, o alvo a ser atingido até o 3/10 do tempo de um projeto  com as tarefas acima é produzir um artefato chave chamado <strong>arquitetura executável. </strong>Esta arquitetura executável acomoda entre 5 e 20% dos casos de uso de um sistema (que foram implementados em paralelo as atividades acima por um pequeno time de projetistas e desenvolvedores) e cria a fundação para acomodar o restante dos casos de uso. É o fim da fase de elaboração no RUP!</p>
<p>Para mais informações a respeito, coloco abaixo algumas referências interessantes sobre atividades de arquitetura no RUP</p>
<ul>
<li><a href="http://www.ibm.com/developerworks/wireless/library/wi-arch13.html" target="_blank">Architectural Manifesto &#8211; The Benefits of The Software Architecture</a></li>
<li><a href="http://www.ibm.com/developerworks/rational/library/05/0816_Louis/" target="_blank">Developing a J2EE Architecture with Rational Software Architect Using the Rational Unified Process</a></li>
<li><a href="http://www.ibm.com/developerworks/wireless/library/wi-arch12/" target="_blank">Architectural manifesto: Evaluating architectures</a></li>
<li>Designing Software Architectures &#8211; <a href="http://www.ibm.com/developerworks/wireless/library/wi-arch7/" target="_blank">Parte 1</a></li>
<li>Designing Software Architectures &#8211; <a href="http://www.ibm.com/developerworks/wireless/library/wi-arch8.html" target="_blank">Parte 2</a></li>
<li>Designing Software Architectures &#8211; <a href="http://www.ibm.com/developerworks/wireless/library/wi-arch9/" target="_blank">Parte 3</a></li>
<li>Designing Software Architectures &#8211; <a href="http://www.ibm.com/developerworks/wireless/library/wi-arch10.html" target="_blank">Parte 4 </a></li>
<li>Designing Software Architectures &#8211; <a href="http://www.ibm.com/developerworks/wireless/library/wi-arch11/" target="_blank">Parte 5</a></li>
<li><a href="http://www.ibm.com/developerworks/rational/library/5335.html" target="_blank">Planejamento de Iterações no RUP</a> (Descreve o fluxo de arquitetura do RUP e principais artefatos associados).</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.arkhi.com.br/2008/10/30/as-atividades-de-arquitetura-do-processo-unificado/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
	</channel>
</rss>
