<?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>Blog Nucleosis</title>
	<atom:link href="http://blog.nucleosis.com.br/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.nucleosis.com.br</link>
	<description>dicas, artigos e soluções em tecnologia da informação...</description>
	<lastBuildDate>Tue, 12 Oct 2010 00:07:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Criação de rotas usando Zend Framework</title>
		<link>http://blog.nucleosis.com.br/2010/10/criacao-de-rotas-usando-zend-framework/</link>
		<comments>http://blog.nucleosis.com.br/2010/10/criacao-de-rotas-usando-zend-framework/#comments</comments>
		<pubDate>Tue, 12 Oct 2010 00:04:03 +0000</pubDate>
		<dc:creator>Eduardo J Gomes</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[router]]></category>
		<category><![CDATA[zend framework]]></category>

		<guid isPermaLink="false">http://blog.nucleosis.com.br/?p=51</guid>
		<description><![CDATA[Para que servem as rotas? Uma rota leva a um caminho diferente do informado na URL, às vezes omitindo o controlador e/ou action como também uma valor que seria passado via GET através de &#8216;query string&#8217; (..?param1=value1&#38;param2=value2) ou parâmetros (../param1/value1/param2/value2). Por que utilizar rotas? Rotas são um recurso importante e valioso no desenvolvimento web, pois [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Para que servem as rotas?</strong><br />
Uma rota leva a um caminho diferente do informado na URL, às vezes omitindo o controlador e/ou action como também uma valor que seria passado via GET através de &#8216;query string&#8217; (..?param1=value1&amp;param2=value2) ou parâmetros (../param1/value1/param2/value2).</p>
<p><strong>Por que utilizar rotas?</strong><br />
Rotas são um recurso importante e valioso no desenvolvimento web, pois seu uso poderá poupar tempo no desenvolvimento além de deixar a url mais &#8216;amigável&#8217; ao usuário.</p>
<p><strong>Exemplo:</strong><br />
Vamos considerar um catálogo de produtos onde a url de acesso a informações de um determinado produto seja:</p>
<p>http://www.dominio.com.br/produtos/busca/idproduto/1234</p>
<p>Onde temos:<br />
controlador: produtos<br />
método/action: busca<br />
parâmetro: idproduto = 1234</p>
<p>Seria mais interessante se utilizássemos a url abaixo para acessar as mesmas informações:</p>
<p>http://www.dominio.com.br/produto/1234</p>
<p>Vou mostrar a rota que atenda a configuração mencionada.<br />
O código abaixo deve ser inserido no seu arquivo de <em>bootstrap</em> antes do método dispatch() da instância de Zend_Controller_Front:</p>
<p><a href="http://blog.nucleosis.com.br/wp-content/uploads/2010/10/code_zf1.png"><img class="alignleft size-full wp-image-58" title="code_zf" src="http://blog.nucleosis.com.br/wp-content/uploads/2010/10/code_zf1.png" alt="" width="484" height="284" /></a></p>
<p>Toda vez que for informado &#8220;../produto/valorvariavel&#8221;, será invocado o método/action busca do controlador produtos passando o valor da variável.</p>
<p>Captura-se o variável com o código abaixo:</p>
<p><a href="http://blog.nucleosis.com.br/wp-content/uploads/2010/10/code_zf2.png"><img class="alignleft size-full wp-image-59" title="code_zf2" src="http://blog.nucleosis.com.br/wp-content/uploads/2010/10/code_zf2.png" alt="" width="300" height="20" /></a></p>
<p>Bom é isso&#8230; Até a próxima!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nucleosis.com.br/2010/10/criacao-de-rotas-usando-zend-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Banco de Dados: Normalização</title>
		<link>http://blog.nucleosis.com.br/2009/10/banco-de-dados-normalizacao/</link>
		<comments>http://blog.nucleosis.com.br/2009/10/banco-de-dados-normalizacao/#comments</comments>
		<pubDate>Tue, 27 Oct 2009 07:16:14 +0000</pubDate>
		<dc:creator>Eduardo J Gomes</dc:creator>
				<category><![CDATA[Banco de Dados]]></category>
		<category><![CDATA[Normalização]]></category>
		<category><![CDATA[Projeto]]></category>

		<guid isPermaLink="false">http://blog.nucleosis.com.br/?p=43</guid>
		<description><![CDATA[Olá! Já faz um tempinho que publiquei meu último post. Hoje vou dar uma pincelada sobre normalização de dados, mais especificamente sobre a 1ª, 2ª e 3ª formas normais e qual a sua importância. Hoje, grande parte das empresas, seja ela micro, média ou grande possui um banco de dados e este em muitas vezes [...]]]></description>
			<content:encoded><![CDATA[<p>Olá! Já faz um tempinho que publiquei meu último post. Hoje vou dar uma pincelada sobre <strong>normalização de dados</strong>, mais especificamente sobre a 1ª, 2ª e 3ª formas normais e qual a sua importância.</p>
<p>Hoje, grande parte das empresas, seja ela micro, média ou grande possui um banco de dados e este em muitas vezes auxilia os gestores na tomada de decisões. Para que as informações desses bancos de dados sejam geradas com qualidade é necessário que o banco seja projetado afim de evitar redundâncias e garantir a consistência. É aí que entra a normalização de dados, já que é sua característica garantir a consistência e &#8216;eliminar&#8217; redundâncias.</p>
<p>Para normalizarmos um banco, precisamos aplicar algumas regras que são conhecidas como formas normais, definidas originalmente por <strong>Edgar F. Codd</strong> &#8211; 1FN, 2FN e 3FN. Muitos especialistas afirmam que um banco de dados que utilize a definição de Codd estará livre de inconsistências e redundâncias. Abaixo descrevo cada uma das formas normais:</p>
<p><strong>1ª forma normal: </strong>uma tabela se encontra na 1FN quando todos os seus atributos possuem apenas valores atômicos, ou seja, indivisíveis. Por exemplo um atributo <em>Endereço</em> com valor &#8216;Rua Principal, 5 &#8211; Capital &#8211; São Paulo&#8217; não está normalizado, pois há várias informações em um mesmo campo. A normalização aqui se dá criando novos atributos, como por exemplo: logradouro, número, bairro, cidade, uf.</p>
<p><strong>2ª forma normal:</strong> uma tabela se encontra na 2FN quando a mesma está na 1FN e todos os atributos que não dependam integralmente da <strong>chave primária</strong> sejam colocados em uma nova tabela. Exemplificando, uma tabela de Cliente(<span style="text-decoration: underline;">cod_cliente,</span> nome, sobrenome, logradouro, numero, bairro) não está na 2FN, porque <em>logradouro</em>, <em>numero </em>e <em>bairro</em> não dependem da PK <em>cod_cliente</em>. Para que esta esteja na 2FN é necessária a criação de um nova tabela, denominada Endereço(<span style="text-decoration: underline;">cod_endereco</span>, logradouro, numero, bairro) e que a PK <em>cod_endereco</em> desta tabela seja chave estrangeira na tabela Cliente &#8211; <strong>relacionamento</strong>.</p>
<p><strong>3ª forma normal:</strong> uma tabela está na 3FN se estiver na 2FN e que não tenha nenhum atributo que dependa de outro atributo que não seja a chave primária. Por exemplo uma tabela Aluno(<span style="text-decoration: underline;">cod_aluno</span>, nome, cod_curso, nome_curso) não está na 3FN porque <em>nome_curso</em> não depende da PK e sim do atributo <em>cod_curso</em>. Aqui temos que criar uma nova tabela, Curso(<span style="text-decoration: underline;">cod_curso</span>, nome_curso) e relacionar esta com a tabela Aluno.</p>
<p>Existem outras formas de normalização além destas formas normais definidas por Codd.</p>
<p>Bom, como escrevi no começo, foi apenas uma pincelada. Fiquem à vontade para comentar. Até a próxima!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nucleosis.com.br/2009/10/banco-de-dados-normalizacao/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ferramentas CASE</title>
		<link>http://blog.nucleosis.com.br/2009/10/ferramentas-case/</link>
		<comments>http://blog.nucleosis.com.br/2009/10/ferramentas-case/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 18:22:26 +0000</pubDate>
		<dc:creator>Eduardo J Gomes</dc:creator>
				<category><![CDATA[Engenharia de Software]]></category>
		<category><![CDATA[CASE]]></category>
		<category><![CDATA[Desenvolvimento]]></category>

		<guid isPermaLink="false">http://blog.nucleosis.com.br/?p=38</guid>
		<description><![CDATA[Olá! Hoje vou publicar os resultados de uma pesquisa para um trabalho acadêmico. Trata-se das ferramentas CASE(Computer-Aided Software Engineering). O que é CASE? Ferramentas CASE assistem gerentes e profissionais em toda a atividade associada com o processo de software, automatizam as atividades de gestão de projetos, gerenciam todos os produtos de trabalho produzidos ao longo [...]]]></description>
			<content:encoded><![CDATA[<p>Olá! Hoje vou publicar os resultados de uma pesquisa para um trabalho acadêmico. Trata-se das ferramentas CASE(Computer-Aided Software Engineering).</p>
<p><!-- 		@page { margin: 2cm } 		P { margin-bottom: 0.21cm } --></p>
<p style="margin-bottom: 0cm;" align="justify">O que é CASE?</p>
<p style="margin-bottom: 0cm;" align="justify">Ferramentas CASE assistem gerentes e profissionais em toda a atividade associada com o processo de software, automatizam as atividades de gestão de projetos, gerenciam todos os produtos de trabalho produzidos ao longo do processo e assistem os engenheiros  de software em seu trabalho de análise.</p>
<p style="margin-bottom: 0cm;" align="justify">Características:</p>
<p style="margin-bottom: 0cm;" align="justify">- coleção de ferramentas úteis que ajudarão em cada passo da construção de um produto;</p>
<p>- uma disposição organizada, permitindo que as ferramentas sejam encontradas rapidamente e usadas eficientemente;</p>
<p style="margin-bottom: 0cm;" align="justify">- hábil artesão que saiba usar as ferramentas de um modo efetivo.</p>
<p>Ferramentas CASE para soluções pontuais podem fornecer um substancial benefício individual, mas uma equipe de software precisa de ferramentas que se comuniquem umas com as outras. As ferramentas integradas ajudam a equipe a desenvolver, organizar e controlar produtos de trabalho.</p>
<p>Para melhor apreciar onde ferramentas CASE podem ser aplicadas no processo de engenharia de software, é necessário criar uma taxonomia das ferramentas.</p>
<p><strong>Ferramentas de engenharia de processo de negócio</strong> – Modela os requisitos de informação estratégica de uma organização, fornecem um ‘metamodelo’ onde sistemas específicos são derivados. O objetivo principal é representar os objetos de dados de negócio, seus relacionamentos e como esses objetos de dados fluem entre diferentes áreas de negócio.</p>
<p><strong>Ferramentas de modelagem e gestão de processo</strong> – Usadas para representar os elementos principais de um processo, de modo que possa ser melhor entendido. Elas fornecem ligações para outras ferramentas que suportam as atividades de processo definidas.</p>
<p><strong>Ferramentas de planejamento de projeto</strong> – Focaliza estimativa de custo e esforço de projetos de software, e realização de cronogramas de projetos.</p>
<p><strong>Ferramentas de análise de risco</strong> – Sua função é identificar riscos em potencial e desenvolver um plano para amenizá-los, monitorá-los e geri-los. Permite ao gerente de projeto construir uma tabela de risco, fornecendo diretrizes detalhadas na identificação e análise de riscos.</p>
<p><strong>Ferramentas de gestão de projeto</strong> – São extensões de ferramentas de planejamento de projetos. Monitora cronograma e plano do projeto.</p>
<p><strong>Ferramentas de rastreamento de requisitos </strong>– Combina a avaliação humano-interativa de texto com um sistema de gestão de base de dados que armazena e categoriza cada requisito do sistema.</p>
<p><strong>Ferramentas de métricas e gestão</strong> – Focalizam as características do processo e do produto.</p>
<p><strong>Ferramentas de documentação</strong> – Procuram melhorar a produtividade, uma vez que o desenvolvimento de software gasta de 20 a 30% de todo o esforço em documentação.</p>
<p><strong>Ferramentas de software básico</strong> – O objetivo destas ferramentas é acomodar um software de sistema de redes de alta qualidade, serviços de gestão de objetos, suporte de componentes distribuídos, email, quadros de boletins e outras possibilidades de comunicação.</p>
<p><strong>Ferramentas de gestão de base de dados</strong> – Serve como fundação para o estabelecimento de uma base de dados CASE(repositório).</p>
<p><strong>Ferramentas de gestão de configuração de software</strong> – Assistem nas cinco principais tarefas de SCM – identificação, controle de versão, controle de modificação, auditoria e listagem de categorias.</p>
<p><strong>Ferramentas de análise e projeto</strong> – Permite ao engenheiro de software criar modelos do sistema a ser construído.</p>
<p><strong>Ferramentas PRO/SIM</strong> – São ferramentas de prototipação e simulação e fornecem ao engenheiro de software a capacidade de prever o comportamento de um sistema em tempo real.</p>
<p><strong>Ferramentas de projetos e de desenvolvimento de interfaces</strong> – ‘Estojo’ de ferramentas de componentes de software.</p>
<p><strong>Ferramentas de prototipação</strong> – Ferramentas utilizadas na quarta geração.</p>
<p><strong>Ferramentas de programação</strong> – Compiladores, editores, depuradores, IDE.</p>
<p><strong>Ferramentas de desenvolvimento da web</strong> – Ferramentas que assistem a geração de texto, gráficos, formulários, scripts, applets e outros elementos de uma página web.</p>
<p><strong>Ferramentas de integração e teste</strong> – Aquisição de dados: adquire dados usados durante o teste. Medição estática: analisa o código-fonte. Medição estática: analisa o código-fonte durante a execução. Simulação: simula funções do hardware e componentes externos. Gestão de testes: assiste no planejamento, desenvolvimento e controle. Cruzamento funcional: cruza fronteiras das categorias precedentes.</p>
<p><strong>Ferramentas de teste cliente/servidor</strong> – Exercita a interface gráfica com o usuário e os requisitos de comunicação na rede para cliente/servidor.</p>
<p><strong>Ferramentas de reengenharia</strong> – Conjunto de atividades de manutenção que absorve um significativa porcentagem de todo o esforço relacionado à software.</p>
<p>Bom, por hoje é isso. O próximo artigo será sobre Ambientes CASE, onde temos o I-CASE. Embora seja mais uma referência, fiquem à vontade para comentar e caso encontrem algum erro, peço por gentileza me informar.</p>
<p>Até mais.</p>
<p><strong>Referência Bibliográfica</strong></p>
<p>PRESSMAN,  Roger S. <em>Engenharia de Software. </em>Rio de Janeiro. McGraw-Hill, 2002</p>
<p><strong><br />
</strong></p>
<p><!-- 		@page { margin: 2cm } 		P { margin-bottom: 0.21cm } --></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nucleosis.com.br/2009/10/ferramentas-case/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Orientação a Objetos</title>
		<link>http://blog.nucleosis.com.br/2009/09/orientacao-a-objetos/</link>
		<comments>http://blog.nucleosis.com.br/2009/09/orientacao-a-objetos/#comments</comments>
		<pubDate>Wed, 16 Sep 2009 05:24:21 +0000</pubDate>
		<dc:creator>Eduardo J Gomes</dc:creator>
				<category><![CDATA[Orientação à Objetos]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Orientação a Objetos]]></category>

		<guid isPermaLink="false">http://blog.nucleosis.com.br/?p=26</guid>
		<description><![CDATA[Este é o primeiro artigo do Blog Nucleosis e vou apresentar aqui o paradigma da Orientação a Objetos. Este não é uma novidade e na web é possível encontrar um bom conteúdo sobre o assunto, porém muitas pessoas, inclusive profissionais da área(programadores) ainda confundem e se sentem 'incomodados'.]]></description>
			<content:encoded><![CDATA[<p>Este é o primeiro artigo do <a href="http://blog.nucleosis.com.br/">Blog Nucleosis</a> e vou apresentar aqui o paradigma da Orientação a Objetos. Este não é uma novidade e na web é possível encontrar um bom conteúdo sobre o assunto, porém muitas pessoas, inclusive profissionais da área(programadores) ainda confundem e se sentem &#8216;incomodados&#8217;.</p>
<p>Bom, mas o que é Orientação a objetos?</p>
<blockquote><p><em>&#8220;Orientação a Objetos é um termo geral que inclui qualquer estilo de desenvolvimento que seja baseado no conceito de &#8216;objeto&#8217; &#8211; uma entidade que exibe características e comportamentos. Visão do mundo em &#8216;objetos&#8217;.&#8221;</em></p></blockquote>
<p>Ela é a abstração, por meio do software, de objetos do mundo real. O foco da POO não é executar uma sequência de procedimentos. Aqui os objetos interagem entre si(passagem de mensagem/chamada de método) orientando o fluxo do programa.</p>
<p>Para uma melhor compreensão, vamos entender alguns conceitos básicos:</p>
<p><strong>Classe</strong> é a definição da estrutura de um objeto. Nela são definidos os atributos(variáveis internas do objeto) e os métodos(comportamento do objeto). É a partir das classes que os objetos são criados. Um exemplo prático é o projeto de um carro, onde não temos o carro propriamente dito, e sim a definição das características(cor, modelo, peso) e comportamentos(aceleração, velocidade).</p>
<p><strong>Objeto </strong>é uma instância de classe. Pegando o exemplo da classe, cada carro fabricado seria um objeto.</p>
<blockquote><p><em>&#8220;Um objeto é uma construção de software que encapsula estado e comportamento. Os objetos permitem que você modele seu software em termos reais e abstrações.&#8221;</em></p></blockquote>
<p><strong>Herança </strong>é o mecanismo de uma classe(subclasse) estender a definição de uma outra classe(superclasse). Por exemplo, a subclasse homem <em>herda </em>da superclasse mamífero.</p>
<p><strong>Polimorfismo </strong>é a capacidade de um método(comportamento) ser implementado de diversas maneiras nas subclasses. Por exemplo, imagine o método <em>locomoção</em> da superclasse mamífero: a implementação para a subclasse homem é diferente da subclasse morcego.</p>
<p><strong>Encapsulamento </strong>consiste na proteção dos atributos de um objeto, ou seja, não permite que um atributo seja acessado diretamente. Quanto maior o encapsulamento, menor é o acoplamento entre as classes. Isso garante a <strong>reusabilidade</strong> , recurso importante para orientação à objetos e desenvolvimento de software.</p>
<p><strong>Atributos </strong>são variáveis internas do objeto e seus valores definem o estado do mesmo.</p>
<p><strong>Método </strong>é o comportamento que o objeto tem. Quando encapsulados, os atributos são alterados através dos métodos. Temos os <strong>métodos construtores</strong> que são chamados durante a instanciação do objeto; <strong>métodos acessadores</strong>(em Java são os <em>getters</em>) usados para retornar o valor dos atributos e o<strong> métodos mutantes</strong>(em Java são os <em>setters</em>) usados para alterar o valor dos atributos.</p>
<p>Bom, é isso. Aqui dei apenas um pontapé inicial sobre Orientação a Objetos. Fiquem à vontade  para comentar, sugerir e criticar, pois, acredito que é dessa maneira que conseguimos ampliar o nosso conhecimento. Qualquer dúvida me mande um e-mail que responderei com grande prazer.</p>
<p>Até a próxima&#8230;</p>
<p><strong>Referência Bibliografica</strong></p>
<p>Sintes, Anthony. <em>Aprenda Programação Orientada a Objetos em 21 Dias. </em>São Paulo. Pearson Education do Brasil, 2002.<span class="zem-script more-related more-info pretty-attribution paragraph-reblog"><script src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script></span></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nucleosis.com.br/2009/09/orientacao-a-objetos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bem vindos!</title>
		<link>http://blog.nucleosis.com.br/2009/08/bem-vindos/</link>
		<comments>http://blog.nucleosis.com.br/2009/08/bem-vindos/#comments</comments>
		<pubDate>Sun, 30 Aug 2009 18:27:42 +0000</pubDate>
		<dc:creator>Eduardo J Gomes</dc:creator>
				<category><![CDATA[Geral]]></category>
		<category><![CDATA[bem vindo]]></category>
		<category><![CDATA[novidade]]></category>
		<category><![CDATA[nucleosis]]></category>

		<guid isPermaLink="false">http://blog.nucleosis.com.br/?p=1</guid>
		<description><![CDATA[Seja bem vindo ao blog da Nucleosis. Neste espaço iremos escrever sobre tecnologia, tendências, produtos e serviços. Queremos também, com uma abordagem simples e prática, mostrar como é possível otimizar recursos e gerenciar a informação, de forma que esta possa auxiliar na tomada de decisões, através do uso de sistemas de informações gerenciais.]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">Seja bem vindo ao blog da <a title="Nucleosis" href="http://www.nucleosis.com.br" target="_self">Nucleosis</a>. Neste espaço iremos escrever sobre tecnologia, tendências, produtos e serviços.</p>
<p style="text-align: left;">Queremos também, com uma abordagem simples e prática, mostrar como é possível otimizar recursos e gerenciar a informação, de forma que esta possa auxiliar na tomada de decisões, através do uso de sistemas de informações gerenciais.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nucleosis.com.br/2009/08/bem-vindos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

