<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.3.1" -->
<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:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
	xmlns:media="http://search.yahoo.com/mrss/"
>

<channel>
	<title></title>
	<link>http://www.gabatait.com/alessandro</link>
	<description>Everything about software development</description>
	<pubDate>Tue, 25 Dec 2007 21:02:09 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.1</generator>
	<language>en</language>
		<!-- podcast_generator="podPress/8.8" -->
		<copyright>&#xA9; </copyright>
		<managingEditor>alessandro@gabatait.com ()</managingEditor>
		<webMaster>alessandro@gabatait.com()</webMaster>
		<category></category>
		<itunes:keywords></itunes:keywords>
		<itunes:subtitle></itunes:subtitle>
		<itunes:summary>Everything about software development</itunes:summary>
		<itunes:author></itunes:author>
		<itunes:category text="Society &amp; Culture"/>
		<itunes:owner>
			<itunes:name></itunes:name>
			<itunes:email>alessandro@gabatait.com</itunes:email>
		</itunes:owner>
		<itunes:block>No</itunes:block>
		<itunes:explicit>no</itunes:explicit>
		<itunes:image href="http://www.gabatait.com/alessandro/wp-content/plugins/podpress/images/powered_by_podpress_large.jpg" />
		<image>
			<url>http://www.gabatait.com/alessandro/wp-content/plugins/podpress/images/powered_by_podpress.jpg</url>
			<title></title>
			<link>http://www.gabatait.com/alessandro</link>
			<width>144</width>
			<height>144</height>
		</image>
		<item>
		<title>Abstração e o desenvolvimento de software</title>
		<link>http://www.gabatait.com/alessandro/archives/3</link>
		<comments>http://www.gabatait.com/alessandro/archives/3#comments</comments>
		<pubDate>Tue, 25 Dec 2007 21:02:09 +0000</pubDate>
		<dc:creator>Alessandro</dc:creator>
		
		<category><![CDATA[Software Engineering]]></category>

		<category><![CDATA[abstração]]></category>

		<category><![CDATA[orientação a objetos]]></category>

		<guid isPermaLink="false">http://www.gabatait.com/alessandro/archives/3</guid>
		<description><![CDATA[Normalmente, quando a Orientação a Objetos (OO) é explicada aos que estão iniciando os estudos sobre o assunto, os termos que são depreendidos mais tempo para explicação são: (i) Herança, (ii) Encapsulamento, (iii) Polimorfismo e (iv) Abstração. Além desses conceitos faz parte das maiorias das explicações os benefícios advindo dela, como: reúso e a modularização [...]]]></description>
			<content:encoded><![CDATA[<p align="justify"><img src="http://www.gabatait.com/alessandro/wp-content/uploads/2007/12/infinilabstraction.jpg" alt="Abstract" align="left" height="220" width="280" />Normalmente, quando a Orientação a Objetos (OO) é explicada aos que estão iniciando os estudos sobre o assunto, os termos que são depreendidos mais tempo para explicação são: (i) Herança, (ii) Encapsulamento, (iii) Polimorfismo e (iv) Abstração. Além desses conceitos faz parte das maiorias das explicações os benefícios advindo dela, como: reúso e a modularização de software.<br />
No entanto, apesar da abstração ser um dos termos que faz parte das explicações, no meu entendimento, ela errôneamente não é o foco das discussões que recaem sobre sobre os conceitos: polimorfismo, encapsulamento e herança, já que esses conceitos são mais fáceis de serem demonstrados através da escrita do código fonte, talvez seja por isso, que o ensino da O.O  esteja na sua grande maioria atrelada a uma linguagem de programação.<br />
Além disso, o que observo é que muitas pessoas pensam que a abstração é algo inerente apenas a Orientação a Objetos, o que está longe de ser verdade. A abstração também está presente nos demais paradigmas de programação.  Aliás, nós, serem humanos, possuímos uma incrível capacidade em abstrair as coisas, o que caracteriza-a como um conceito multidisciplinar.<br />
Conceitualmente, podemos definir a abstração como a simplificação de uma realidade qualquer, de modo que as partes não relevantes sejam suprimidas, sem que haja perda de entendimento.
</p>
<p align="justify">Na <a href="http://pt.wikipedia.org/wiki/Abstra%C3%A7%C3%A3o" title="Abstração" target="_blank">Wikipédia</a>, a abstração está definida como:</p>
<p><em>&#8220;<a href="http://pt.wikipedia.org/wiki/Processo" title="Processo">processo</a> mental em que as <a href="http://pt.wikipedia.org/wiki/Id%C3%A9ia" title="Idéia">idéias</a> estão distanciadas dos <a href="http://pt.wikipedia.org/wiki/Objeto" title="Objeto">objetos</a>, operação intelectual onde existe o <a href="http://pt.wikipedia.org/wiki/M%C3%A9todo" title="Método">método</a> que isola os generalismos teóricos dos problemas concretos por forma a resolver os últimos, trata-se de um mecanismo essencial em disciplinas <a href="http://pt.wikipedia.org/wiki/Filosofia" title="Filosofia">filosóficas</a> e <a href="http://pt.wikipedia.org/wiki/Ci%C3%AAncia" title="Ciência">científicas</a>&#8220;.</em></p>
<p align="justify">Um bom desenvolvedor, ao fornecer aos seus clientes/usuários um <em>feedback</em> sobre os requisitos, ele utiliza de uma linguagem de mais alto nível, independente de computador, ou seja, a linguagem de negócio do usuário, para explanar o seu entendimento acerca do requisito ou para solicitar maiores esclarecimentos. Com isso, ele evita de inserir ruído na comunicação ou de utilizar um código (linguagem) que não é de entendimento do usuário.<br />
Desse modo, as explicações a cerca de:  polimorfismo, herança e encapsulamento devem ser fundamentadas no conceito de abstração. Não há encapsulamento sem abstração, assim como ocorre com a herança e o polimorfismo. O encapsulamento possibilita que um programa chame uma operação de outro programa sem preocupar com o modo como ela foi implementada, assim como, a operação chamada não necessita conhecer nada sobre quem invocou-a.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gabatait.com/alessandro/archives/3/feed</wfw:commentRss>
		</item>
	</channel>
</rss>

