<?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>GamePlayArt</title>
	<atom:link href="http://www.eliliturgitano.es/blog/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.eliliturgitano.es/blog</link>
	<description>Sitio Oficial de GPA</description>
	<lastBuildDate>Mon, 17 Aug 2009 20:22:30 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Conferencia &#8220;Arquitectura de Software: Una Experiencia Práctica&#8221;</title>
		<link>http://www.eliliturgitano.es/blog/?p=311</link>
		<comments>http://www.eliliturgitano.es/blog/?p=311#comments</comments>
		<pubDate>Thu, 13 Aug 2009 15:50:48 +0000</pubDate>
		<dc:creator>Jos_173</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Arquitectura de Software]]></category>
		<category><![CDATA[conferencia]]></category>
		<category><![CDATA[exposicion]]></category>

		<guid isPermaLink="false">http://www.eliliturgitano.es/blog/?p=311</guid>
		<description><![CDATA[





GameplayArt organiza  el evento  Conferencia: &#8220;Arquitectura de Software: Una Experiencia Práctica&#8221;, que se llevará acabo el dia Sábado 5 de septiembre 2009, a las 9:00 en la Facultad de Tecnología USFX.
Para mas detalles:

MAS DETALLES&#8230;..

REGISTRARSE&#8230;&#8230;
Nuestro objetivo es enseñar lo que hemos aprendido, ¡GamePlayArt alzando vuelo! te esperamos.
]]></description>
			<content:encoded><![CDATA[<p><!-- 		@page { margin: 2cm } 		P { margin-bottom: 0.21cm } 		H2 { margin-bottom: 0.21cm } 		H2.western { font-family: "Arial", sans-serif; font-size: 14pt; font-style: italic } 		H2.cjk { font-size: 14pt; font-style: italic } 		H2.ctl { font-size: 14pt; font-style: italic } --></p>
<h2 class="western" style="text-align: center;"><a href="http://congress.gameplayart.com"><img class="alignnone size-full wp-image-315" title="web12" src="http://www.eliliturgitano.es/blog/wp-content/uploads/2009/08/web12.png" alt="web12" width="331" height="468" /></a></h2>
<h2 class="western" style="text-align: center;"><a href="http://congress.gameplayart.com" target="_blank"><br />
</a></h2>
<p style="margin-top: 0.2cm; margin-bottom: 0.2cm; line-height: 150%;" align="JUSTIFY">
<p style="margin-top: 0.2cm; margin-bottom: 0.2cm; line-height: 150%;" align="JUSTIFY">
<div id="attachment_318" class="wp-caption alignleft" style="width: 310px"><a href="http://www.eliliturgitano.es/blog"><img class="size-medium wp-image-318" title="GamePlayArt" src="http://www.eliliturgitano.es/blog/wp-content/uploads/2009/08/last-300x86.png" alt="GamePlayArt" width="300" height="86" /></a><p class="wp-caption-text">GamePlayArt</p></div>
<p style="margin-top: 0.2cm; margin-bottom: 0.2cm; line-height: 150%; text-align: left;"><strong>GameplayArt</strong> organiza  el evento  Conferencia: <strong>&#8220;Arquitectura de Software: Una Experiencia Práctica&#8221;</strong>, que se llevará acabo el dia Sábado 5 de septiembre 2009, a las 9:00 en la Facultad de Tecnología USFX.</p>
<p style="margin-top: 0.2cm; margin-bottom: 0.2cm; line-height: 150%;" align="JUSTIFY">Para mas detalles:</p>
<p style="margin-top: 0.2cm; margin-bottom: 0.2cm; line-height: 150%;" align="JUSTIFY">
<h2><a href="http://congress.gameplayart.com" target="_blank">MAS DETALLES&#8230;..</a></h2>
<p style="margin-top: 0.2cm; margin-bottom: 0.2cm; line-height: 150%;" align="JUSTIFY">
<h2><a href="http://congress.gameplayart.com/index.php?mod=users&amp;pag=fregistro" target="_blank">REGISTRARSE&#8230;&#8230;</a></h2>
<p style="margin-top: 0.2cm; margin-bottom: 0.2cm; line-height: 150%;" align="JUSTIFY">Nuestro objetivo es enseñar lo que hemos aprendido, ¡GamePlayArt alzando vuelo! te esperamos.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eliliturgitano.es/blog/?feed=rss2&amp;p=311</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>¡Bienvenido a nuestro nuevo portal!</title>
		<link>http://www.eliliturgitano.es/blog/?p=255</link>
		<comments>http://www.eliliturgitano.es/blog/?p=255#comments</comments>
		<pubDate>Tue, 13 Jan 2009 23:45:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[bienvenida]]></category>
		<category><![CDATA[gameplayart]]></category>

		<guid isPermaLink="false">http://www.eliliturgitano.es/blog/?p=255</guid>
		<description><![CDATA[Anuncio del nuevo portal de Gameplay Art]]></description>
			<content:encoded><![CDATA[<p>Desde el 13 de Enero de 2009 Gameplay Art cuenta con un ¡<strong>nuevo portal web</strong>! Este nuevo portal está disponible en dos idiomas: Español e Inglés, y para su puesta en marcha hemos utilizado únicamente tecnología <em>open source</em>.</p>
<p>En nuestro portal podrá encontrar toda la información que necesite sobre nosotros y nuestros juegos. Por ejemplo, si estás interesad@ en saber más de nuestros proyectos, contacta con nosotros (ya seas prensa o editora). En la sección <strong>Quienes somos</strong> encontrarás más información al respecto.</p>
<p>Si tienes talento y quieres dedicarte al mundo de los videojuegos, conoce en todo momento que procesos de selección estamos llevando a cabo revisando regularmente la sección <strong>Trabaja con nosotros</strong>.</p>
<p>Por último, aprovecha y fórmate en las distintas áreas del desarrollo de los videojuegos gracias a los interesantes artículos que nuestros técnicos y artistas están publicando en la sección <strong>Aprende con nosotros</strong>.</p>
<p>Próximamente iremos incorporando más novedades a nuestra web con información muy interesante sobre los juegos en los que estamos trabajando actualmente.</p>
<p>Desde aquí quiero dar las gracias a todo el equipo de Gameplay Art por el esfuerzo que están dedicando, sin ellos esto no sería posible. También recordar a todos nuestros clientes, amigos y colaboradores que están ayudándonos a convertir nuestro sueño en una realidad.</p>
<p><strong>LA DIRECCION</strong></p>
<p>[flv]http://www.eliliturgitano.es/blog/wp-content/uploads/2009/01/game_sonido.flv[/flv]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eliliturgitano.es/blog/?feed=rss2&amp;p=255</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Algoritmos Inteligentes: El Perceptrón Simple</title>
		<link>http://www.eliliturgitano.es/blog/?p=137</link>
		<comments>http://www.eliliturgitano.es/blog/?p=137#comments</comments>
		<pubDate>Fri, 17 Oct 2008 19:00:30 +0000</pubDate>
		<dc:creator>Jos_173</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Algoritmo Perceptron]]></category>
		<category><![CDATA[Algoritmos inteligentes]]></category>
		<category><![CDATA[codigo java]]></category>
		<category><![CDATA[inteligencia artificial]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[umbral]]></category>
		<category><![CDATA[vector]]></category>

		<guid isPermaLink="false">http://www.eliliturgitano.es/blog/?p=137</guid>
		<description><![CDATA[¿Solo los humanos podemos aprender?, descubre como he creado un algoritmo inteligente. Luego de haber estudiado lo que es el campo de la Inteligencia Artificial queremos conocerlo más de esto pero a partir de su código, así que veamos lo que es un Perceptrón. Esto es un tipo de red de aprendizaje supervisado, es decir necesita conocer los valores esperados para cada una de las entradas presentadas.]]></description>
			<content:encoded><![CDATA[<p>Esta vez veremos un poco de lo que vamos aprendiendo. Luego de haber estudiado lo que es el campo de la Inteligencia Artificial queremos conocerlo más de esto pero a partir de su código, así que veamos lo que es un Perceptrón.</p>
<h2>Antecedentes<a href="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/10/neuronaartificial.jpg"><img class="alignright size-medium wp-image-138" src="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/10/neuronaartificial-300x173.jpg" alt="" width="240" height="155" /></a></h2>
<p>La primera red neuronal conocida, fue desarrollada en 1943 por Warren McCulloch y Walter Pitts. La red tipo Perceptrón fue inventada por el sicólogo Frank Rosenblatt en el año 1957 y el primer modelo de Perceptrón fue desarrollado en un ambiente biológico imitando el funcionamiento del ojo humano. El fotoperceptrón: era un dispositivo que respondía a señales ópticas.</p>
<h2>Regla de Aprendizaje</h2>
<p>El Perceptrón es un tipo de red de aprendizaje supervisado, es decir necesita conocer los valores esperados para cada una de las entradas presentadas; su comportamiento está definido por pares de esta forma:</p>
<blockquote><p>Cuando pj es aplicado a la red, la salida de la red es comparada con el valor esperado tj</p></blockquote>
<ul>
<li>Se Suma de las señales de entrada, multiplicadas por unos valores de pesos escogidos aleatoriamente.</li>
<li>La entrada es comparada con un patrón preestablecido para determinar la salida de la red.</li>
<li>Si en la comparación, la suma de las entradas multiplicadas por los pesos es mayor o igual que el patrón preestablecido la salida de la red es uno (1), en caso contrario la salida es cero (0).</li>
</ul>
<h2>Procedimiento general:</h2>
<p>El procedimiento de aprendizaje de la red (ajuste de los pesos) se resume en aplicar cada objeto de la muestra a la red y ajustar los pesos en caso de que la salida de la red no sea correcta, de acuerdo a las fórmulas ya explicadas:</p>
<p>WN = WA + e * p                                               UmbralN = UmbralA + e</p>
<p>Donde<br />
e = t-a<br />
t = valor real del objeto<br />
a = valor calculado por la Red<br />
WN = Peso nuevo<br />
WA = Peso anterior</p>
<p>por ejemplo sea estos datos nuestra bateria de Prueba. Utilizaremos cuatro puntos para el aprendizaje de la RNA<br />
P1 = ( 2,  1)         R1 = 1  (clase A)<br />
P2 = ( 0, -1)        R2 = 1  (clase A)<br />
P3 = (-2,  1)       R3 = -1 (clase B)<br />
P4 = ( 0,  2)        R4 = -1 (clase B)</p>
<p>Partimos de cualquier valor (aleatorios) para los pesos y el umbral:<br />
W = ( -0.7, 0.2 )  umbral = 0.5</p>
<h3>Paso 1.</h3>
<p>Objeto P1 = (2,1)   R1 = 1<br />
W = ( -0.7, 0.2 )     Umbral = 0.5</p>
<p>Aplicamos la Red para P1</p>
<p>a=(P1.Peso)+Umbral = -0.7*2 + 0.2*1 + 0.5 = -0.7<br />
(a &lt;0) ?  Si  a=-1 en otro caso a=1</p>
<p>R1 = 1     es igual a&#8230;    a = -1  (NO)</p>
<p>Por tanto es necesario ajustar los pesos:<br />
e = R1 – a = 1 – (-1) = 2</p>
<p>W = W + e*P1 = (-0.7,0.2) + 2*(2,1)= (3.3, 2.2)<br />
Umbral = Umbral + e = 0.5 + 2 = 2.5</p>
<h3>Paso 2.</h3>
<p>Objeto P2 = (0,-1)   R2 = 1<br />
W = ( 3.3, 2.2 )        Umbral = 2.5</p>
<p>Aplicamos la Red para P2</p>
<p>a=(W.P2)+Umbral = 3.3*0 + 2.2*-1 + 2.5 = 0.3<br />
(a &lt;0) ?  Si  a=-1 en otro caso a=1</p>
<p>R2 = 1  es igual a&#8230;  a = 1  (SI)</p>
<p>Por tanto NO es necesario ajustar los pesos</p>
<h3>Paso 3.</h3>
<p>Objeto P3 = (-2,1)     R3 = -1<br />
W = ( 3.3, 2.2 )    Umbral= 2.5</p>
<p>Aplicamos la Red para P3</p>
<p>a=(W.P3)+Umbral  = 3.3*-2 + 2.2*1 + 2.5 = -1.9<br />
(a &lt;0) ?  Si  a=-1 en otro caso a=1</p>
<p>R3 = -1  es igual a&#8230;  a = -1</p>
<p>Por tanto NO es necesario ajustar los pesos</p>
<h3>Paso 4.</h3>
<p>Objeto P4 = (0,2)   R4 = -1<br />
W = ( 3.3, 2.2 )    Umbral = 2.5</p>
<p>Aplicamos la Red para P4</p>
<p>a=(W.P4)+Umbral = 3.3*0 + 2.2*2 + 2.5 = 6.9<br />
(a &lt;0) ?  Si  a=-1 en otro caso a=1</p>
<p>R4 = -1  es igual a&#8230;  a = 1 (NO)</p>
<p>Por tanto es necesario ajustar los pesos:<br />
e = R4 – a = -1 – (1) = -2</p>
<p>W = W + e*P4 = (3.3,2.2) + -2*(0,2) = (3.3, -1.8)<br />
Umbral = Umbral + e = 2.5 + (-2) = 0.5</p>
<p>Entonces nuestro vector de pesos (W) queda del siguiente modo W=(3.3,-1.8)  y el Umbral=0.5</p>
<p>Cualquier punto que le demos al algoritmo, éste sin necesidad de volver a evaluar nos dará la respuesta que es correcta pues lo que conseguimos con esto es que el algoritmo a base de la bateria de pruebas pueda establecer una línea de separación entre los puntos que introdujimos. Ten en cuenta que este tipo de algoritmo solo resuelve dos estados para un punto dado, esto es: o es de la clase A (1) o es de la clase B (-1).</p>
<h2>Ahora al código</h2>
<p>Para mejor entendimiento descarga el programa que con mucho entusiasmo cree para poder ver el funcionamiento de este algoritmo. Dentro de la clase main modifica los vectores de variablesX y variablesY con los datos que tienes (tu bateria de prueba) recuerda que todas las cordenadas x van en el vector de variablesX y las de y pues en su correspondiente y en la de resultados escribe a que clase pertenece cada dato. Por ejemplo si queremos que nuestra bateria de pruebas sea esta:</p>
<p><a href="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/10/graficopuntosperceptron.jpg"><img class="aligncenter size-medium wp-image-141" src="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/10/graficopuntosperceptron-300x156.jpg" alt="" width="362" height="226" /></a></p>
<p>P1 = ( 2,  1)          R1 =   1   (clase A)<br />
P2 = ( 0, -1)         R2 =   1   (clase A)<br />
P3 = (-2,  1)         R3 = -1   (clase B)<br />
P4 = ( 0,  2)          R4 = -1   (clase B)</p>
<p>Debemos de cambiar los vectores en:</p>
<p>&#8230;.<br />
float[] variableX ={2,0,-2,0};<br />
float[] variableY={1,-1,1,2};<br />
float[] resultado={1,1,-1,-1};<br />
&#8230;.</p>
<p>Ahora dicho esto ejecutalo (F6) y sigue los pasos que te dirá por consol.</p>
<p>Prueba el conocimiento del percetrón inventandote un punto cualquiera para probar la destreza de su conocimiento, por ejemplo yo me invente el punto de prueba PP=(-1,4)  y se sabe por el mapa cartesiano (ultima figura mostrada) que este estará dentro de la clase B porque está junto a los otros.</p>
<p>Como era de esperar el programa te dará el mismo resultado. Bien, ahora te toca divertirte, puedes hacer que el algoritmo cuando se encuentre confundido nos pida añadir a la bateria de pruebas el dato que acabamos de darle, no está dificil, te invito a que lo hagas si te encuentras perdido buscamos que estaremos para orientarte en lo poco que aún conocemos; recuerda la mejor forma de aprender es practicando.</p>
<h2>Conclusiones</h2>
<p>A todo esto añado lo siguiente He aqui alguna de mis curiosidades en respecto a este algoritmo, aunque tenga  función limitada el mismo no está demás darle importancia. Mis inquietudes  son:</p>
<p>1).- Como puedo medir el nivel de aprendizaje que está teniendo mi  algoritmo. ¿Acaso es la variable error (en el programa) de mi ejemplo?<br />
2).- Cuales son las  recomendaciones para que algoritmos de este tipo tengan correcto  desenvolvimiento en su área (RNA) pues sucede que debems de darle valores iniciales de peso y umbral, pero si lo hacemos aleatoriamente&#8230; ¿tendremos iguales resultados?.<br />
3).- En este ejemplo en sí, ¿qué es lo que  el algoritmo aprende?. Pues yo solo veo que éste es capáz de encontrar un Vector  de Pesos y el Umbral solamente.<br />
4).- Como experiencia de este trabajo me  llevo gran sorpresa al saber que un algoritmo de Perceptrón solamente <span style="underline;">es un  algoritmo mecánico</span> como cualquier otro, pero con distinto nombre, espero estar  equivocado y haya algo más en esto que le haga diferenciar al resto de los  algoritmos que hasta ahora he ido construyendo.</p>
<p>En el último punto puedo  decir que vi como el algoritmo fue capaz de encontrar su propio vector de pesos  y así también el Umbral (sesgo), entonces yo concluí que un algoritmo perceptron  demuestra su capacidad de aprendizaje por que es autónomo en encontrar una  recta que permita divividir a los puntos en cuestión que son evaluados según sus  resultados de &#8216;1&#8242; (clase A) contra los de resultado &#8216;-1&#8242; (clase B) (en el ejemplo que adjunto la recta  encontrada es el vector de pesos y su umbral); pero&#8230; para sorpresa mía todo  esto lo hizo de manera mecánica, como cualquier otro algoritmo, es entonces que  me pregunto: ¿he sido capaz de desarrollar un algoritmo inteligente?, ¿existe la  inteligencia artificial?, o la inteligencia artificial solo lo  trae de nombre ya que pareciera que Inteligencia Artificial es un &#8216;charle&#8217;  solamente (en el lenguaje común). Vaya que estoy recontra confundido.</p>
<p>En fin&#8230; el estudio nos liberará de esto, si tienes algún aporte ayúdanos a aprender cada día más. Ahora a practicar se dijo, ah!, casi me olvido aquí teneís el link de descarga <a href="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/10/algoritmointeligentes.zip">Algoritmos Inteligentes: Perceptrón</a> para poder ver todo el código fuente creado en Netbeans 6.0 recuerda darme crédito cuando presentes esto o enseñes a alguién más : ) Hasta la próxima.</p>
<p>José Luis Zelaya           <a href="mailto:joseluiszelaya@gameplayart.com">Escríbele por correo</a></p>
<p><a href="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/09/pensador.jpg"><img class="aligncenter size-medium wp-image-121" src="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/09/pensador.jpg" alt="" width="124" height="128" /></a></p>
<p>Si deseas estudiar la teoría de la que me guié para construir todo esto descargate desde <a href="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/10/sb2_rna_perc.zip">Descargar  Teoría</a></p>
<blockquote>
<h2>&#8220;Crear cuesta mucho&#8230; agradecer no cuesta nada.&#8221;</h2>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.eliliturgitano.es/blog/?feed=rss2&amp;p=137</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Inteligencia Artificial (4/4): Conclusiones &#8211; Bibliografía</title>
		<link>http://www.eliliturgitano.es/blog/?p=111</link>
		<comments>http://www.eliliturgitano.es/blog/?p=111#comments</comments>
		<pubDate>Fri, 26 Sep 2008 04:59:00 +0000</pubDate>
		<dc:creator>Jos_173</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Conclusiones IA]]></category>
		<category><![CDATA[Investigación]]></category>

		<guid isPermaLink="false">http://www.eliliturgitano.es/blog/?p=111</guid>
		<description><![CDATA[Encontrámonos en un punto desde el cuál todos sentamos cabeza sobre el asunto y preguntásemos que es la inteligencia artificial, ¿acaso es jugar a ser Dios?; en todo este estudio de árdua investigación y constante razonamiento antes de presentar cada trabajo, rescatamos lo mejor que existe dentro la internet y es así que concluidos este [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/09/humanovshumanoide.jpg"><img class="alignright size-medium wp-image-119" src="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/09/humanovshumanoide.jpg" alt="" width="307" height="290" /></a>Encontrámonos en un punto desde el cuál todos sentamos cabeza sobre el asunto y preguntásemos que es la inteligencia artificial, ¿acaso es jugar a ser Dios?; en todo este estudio de árdua investigación y constante razonamiento antes de presentar cada trabajo, rescatamos lo mejor que existe dentro la internet y es así que concluidos este estudio con los siguientes aspectos.</p>
<ol>
<li>Después de enterarnos un poco de lo amplio que es la Inteligencia Artificial aun queda la duda de si alguna vez lograremos hacer que los robots aprendan y racionalicen como los humanos o incluso mejor y con memorias fijas; pero en si, ¿qué se lograría haciendo esto?, tal vez sería de una gran ayuda para la humanidad la implantación de ciertas ramas de la inteligencia artificial pero hasta cierto punto.</li>
<li>¿Qué pasaría en el momento que nos superen y que nos consideren inútiles la Inteligencia Artificial?, tal vez estoy siendo un poco dramático, y nuestras conclusiones son muy precipitadas aun así este tipo de tecnología nos beneficiaria demasiado en muchos campos.</li>
<li>Por último, yendo al ejemplo del robot con cerebro de rata, si es posible lograr esta tecnología sería el primer cyborg, es decir una rata que tiene un cuerpo totalmente robótico, y si posterior a esto se podría lograr con un humano se tendría los superhumanos capaz de realizar una infinidad de tareas que hasta el momento para nosotros son complejos, esto es soñar en grande.</li>
</ol>
<p><a href="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/09/jospararse.jpg"><img class="alignright size-medium wp-image-120" src="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/09/jospararse.jpg" alt="" width="178" height="230" /></a>Los seres humanos tienen sobre sus hombres la computadora más perfecta que jamás se haya construido, es infalible y nunca se equivoca. Los psiquiatras, los criminólogos y todos los que estudian la conducta humana ignoran este hecho científico. Como esta afirmación es increíble es conveniente reiterarla para que no queden dudas: <strong>la mente humana es una computadora perfecta</strong>. Si a la computadora se le pide que sume 2 + 2 dará como resultado correctamente 4. Si se le pide que multiplique 7 x 7 dará correctamente 49. ¿Pero qué sucede si se atasca la tecla del 7? Entonces la computadora dirá 7 x 7 = 343. La computadora hizo el cálculo sobre 7 x 7, que era lo que se le pidió, pero como estaba atascado el 7 tuvo que hacer obligadamente la cuenta sobre 7 x 7 x 7= 343. ¿Deja por esto de ser perfecta la computadora? ¡En absoluto! La computadora sigue siendo perfecta, porque computó sobre los datos que tenía, y 7 x 7 x 7 es igual a 343. La computadora es una máquina que computa únicamente con los datos que tiene, sin analizar si son verdaderos o no porque no es su función. Con la mente humana sucede lo mismo: computa sobre los datos que tiene, y nunca se equivoca. Si tiene datos falsos computa perfectamente con los datos falsos, y por eso es infalible. Si el resultado es falso porque se la obligó a computar con datos falsos, eso no le concierne porque no está preparada para evaluar, ya que la mente humana es una máquina y las máquinas no piensan. Así como en la computadora el que piensa es el operador, de la misma forma en el ser humano el que piensa es el espíritu, no la mente y el cuerpo, que son máquinas. De la misma manera, si el programa de la computadora o la mente del hombre tienen datos falsos (sietes atascados), tanto el operador como el espíritu son forzados a computar con esos datos falsos, que ni siquiera saben que existen. Si a una computadora se le introduce el dato de que &#8220;todos los políticos son corruptos&#8221; y luego se le pregunta por el político Pepe, computará correctamente que &#8220;Pepe es corrupto&#8221;. Con la mente humana sucede lo mismo: si tiene el dato falso de que todos los políticos son corruptos, dirá también que Pepe es corrupto. La computadora nunca computará: &#8220;Si bien los políticos por lo general son corruptos, hay excepciones y Pepe es una de ellas&#8221;. Y la mente humana tampoco lo dirá si tiene la idea preconcebida de que todos los políticos son corruptos. Ni la computadora ni la mente humana están preparadas para avisarnos que se ha introducido un dato falso en la computación.</p>
<h1>Grupo JIM</h1>
<p>Autores de esta investigación: <a href="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/09/grupojim1.jpg"></a></p>
<p><em>José Luis Zelaya            <a href="joseluiszelaya@gameplayart.com" target="_blank">joseluiszelaya@gameplayart.com<br />
</a>Inti Padilla Castro         <a href="mailto:inti_net@hotmail.com">inti_net@hotmail.com</a><br />
Mery Nancy Gütierrez   <a href="mailto:mng@gmail.com">mng@gmail.com</a></em></p>
<p><a href="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/09/grupojim11.jpg"><img class="alignnone size-medium wp-image-125" src="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/09/grupojim11.jpg" alt="" width="46" height="51" /></a><a href="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/09/mery.jpg"><img class="alignnone size-thumbnail wp-image-123" src="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/09/mery.jpg" alt="" width="44" height="51" /></a><a href="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/09/grupojim2.jpg"><img class="alignnone size-thumbnail wp-image-124" src="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/09/grupojim2.jpg" alt="" width="43" height="50" /></a></p>
<h1>Bibliografía y Fuentes Consultadas</h1>
<p style="center"><a href="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/09/pensador.jpg"><img class="size-medium wp-image-121 aligncenter" src="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/09/pensador.jpg" alt="" width="93" height="91" /></a></p>
<p><a href="http://www.monografias.com/trabajos16/la-inteligencia-artificial/la-inteligencia-artificial.shtml" target="_blank">Monografías: La Inteligencia artificial</a><br />
<a href="http://ciberconta.unizar.es/LECCION/IA/500.HTM" target="_blank">CiberConta: Universidad de Zaragoza (España)</a><br />
<a href="http://es.wikibooks.org/wiki/Inteligencia_artificial" target="_blank">Facultad de Ciencias: Universidad de Santo Domingo (Bolivia)</a><br />
<a href="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/09/historia-de-los-lenguajes-de-programacion.pdf">historia-de-los-lenguajes-de-programacion</a><br />
<a href="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/09/introduccion-a-la-ai.zip">introduccion-a-la-ai</a><br />
<a href="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/09/lia-tema-1-castellano.zip">Lenguajes de Inteligencia Artificial </a><br />
<a href="http://www.fortunecity.com/skyscraper/chaos/279/index.htm" target="_blank">Inteligencia Artificial: Fortune City</a><br />
<a href="http://web1.cti.unav.es/asignaturas/ia/tsld008.htm">Universidad de Navarra (España)</a><br />
<a href="http://lorien.die.upm.es/~macias/doc/pubs/aircenter99/www.aircenter.net/mc13039910.html" target="_blank">Proyecto IA-HCM por David Navarro</a><br />
<a href="http://www.unitec.edu.co/biblioteca/ia/tm42ia.html" target="_blank">Corporación Universitaria UNITEC (Colombia)</a><br />
<a href="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/09/origen-de-la-inteligencia-artificial.zip">Recolección de Archivos por grupo JIM</a><br />
<a href="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/09/presentacio_intensif_lenguajes_ia.pdf">Lenguajes e Inteligencia Artificial</a></p>
<p><a href="http://www.monografias.com/trabajos16/la-inteligencia-artificial/la-inteligencia-artificial.shtml"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.eliliturgitano.es/blog/?feed=rss2&amp;p=111</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Inteligencia Artificial(3/4): Lo bueno, lo malo y lo feo.</title>
		<link>http://www.eliliturgitano.es/blog/?p=69</link>
		<comments>http://www.eliliturgitano.es/blog/?p=69#comments</comments>
		<pubDate>Tue, 23 Sep 2008 20:24:05 +0000</pubDate>
		<dc:creator>Jos_173</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[bueno]]></category>
		<category><![CDATA[desventajas]]></category>
		<category><![CDATA[feo]]></category>
		<category><![CDATA[IA]]></category>
		<category><![CDATA[Investigación]]></category>
		<category><![CDATA[lenguajes de programacion]]></category>
		<category><![CDATA[malo]]></category>
		<category><![CDATA[objeciones]]></category>
		<category><![CDATA[ventajas]]></category>

		<guid isPermaLink="false">http://www.eliliturgitano.es/blog/?p=69</guid>
		<description><![CDATA[Con la idea de facilitarnos las tareas que debemos de desempeñar los humanos, hemos venido inventado diversas herramientas a lo largo de nuestra historia, aquellas que nos permiten tener una mejor calidad de vida; los ordenadores son uno más de los inventos del hombre, pero esta herramienta por sí sola no es capaz de efectuar ninguna tarea, es [...]]]></description>
			<content:encoded><![CDATA[<p>Con la idea de facilitarnos las tareas que debemos de desempeñar los humanos, hemos venido inventado diversas herramientas a lo largo de nuestra historia, aquellas que nos permiten tener una mejor calidad de vida; los ordenadores son uno más de los inventos del hombre, pero esta herramienta por sí sola no es capaz de efectuar ninguna tarea, es tan sólo un conjunto de cables y circuitos (al igual que un robot) que necesitan recibir instrucción por parte de los humanos para desempeñar alguna tarea. En las siguientes líneas daremos algunas respuestas a ciertas inquietudes tales como: ¿cómo es que se lo hace?, ¿qué dicen las personas al respecto?&#8230; entre otros que van a dar mucho que opinar y comentar. Bienvenido nuevamente a este tema de investigacion acerca de la majestuosa Inteligencia Artificial.</p>
<p><a href="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/09/evolucionlenguajesprogramacion.jpg"><img class="size-medium wp-image-97 alignleft" src="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/09/evolucionlenguajesprogramacion-212x300.jpg" alt="Evolución de los lenguajes imperativos y orientados a Objetos" width="311" height="311" /></a>A partir de los años sesenta, empiezan a surgir diferentes lenguajes de programación, atendiendo a diversos enfoques, características y propósitos, que más adelante describiremos. Por lo pronto, puede decirse, que actualmente existen alrededor de 2000 lenguajes de programación [KINNERSLEY 95] y continuamente, están apareciendo otros más nuevos, que prometen hacer mejor uso de los recursos computacionales y facilitar el trabajo de los programadores. Tratando de resumir un poco, presentaremos los siguientes cuadros evolutivos, donde aparecen los lenguajes que por su uso y comercialización, han resultado ser los más populares a lo largo de este medio siglo.</p>
<div class="mceTemp mceIEcenter">
<div id="attachment_98" class="wp-caption alignright" style="width: 239px"><a href="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/09/evolucionlenguajesdeclarativos.jpg"><img class="size-medium wp-image-98" src="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/09/evolucionlenguajesdeclarativos-184x300.jpg" alt="Evolución de los lenguajes declarativos" width="229" height="323" /></a><p class="wp-caption-text">Evolución de los lenguajes declarativos</p></div>
</div>
<p align="left">Dentro de todos ellos los que son más de uso exclusivo dentro de lo que es IA son los Funcionales o también lenguajes basados en funciones, las cuales se representan mediante expresiones, que nos permiten obtener ciertos resultados a partir de una serie de argumentos. De hecho las expresiones están formadas por un conjunto de términos, que a su vez pueden encapsular otras expresiones, para con la evaluación de todas ellas, llegar a la solución deseada. Éstos a su vez son los:</p>
<p style="30px" align="left"><strong>Lógicos</strong>: Este tipo de lenguajes se basan en el cálculo de predicados, la cual es una teoría matemática que permite entre otras cosas, lograr que un ordenador basándose en un conjunto de hechos y de reglas lógicas, pueda derivar en soluciones inteligentes. [DIMARE 90]. El mismo ejemplo del factorial, se vería de la siguiente manera, escrito en PROLOG.</p>
<blockquote>
<p style="30px" align="left">factorial (0, 1)<br />
factorial (X, Fac) :- Y is X-1, fac(Y, F2), Fac is F2 * X</p>
</blockquote>
<h2>Ventajas y Desventajas de la Inteligencia Artificial</h2>
<blockquote>
<p align="left">&#8220;La Inteligencia Artificial estudiada dentro del culto a la computación (subrayado del autor) no tiene la más remota posibilidad de producir resultados duraderos. Ya es tiempo de canalizar los esfuerzos de los investigadores de la IA -así como de los recursos económicos puestos a su disposición- en otras áreas que no sean los métodos del cómputo&#8221; (SAYRE, 1993:23)</p>
</blockquote>
<blockquote>
<p align="left">&#8220;Luego de cincuenta años de esfuerzos, excepto para unos cuantos empecinados, es para todos evidente que esta empresa por crear inteligencia en general ha fracasado&#8221; (DREYFUS, 1992:386)</p>
</blockquote>
<h3>Ventajas Y Objeciones Para La IA.</h3>
<p align="left">En El Contexto Social Uno de los cuestionamientos filosóficos básicos en la IA es <strong>&#8220;¿Son capaces de pensar las máquinas?&#8221;</strong> No se intentará dar una respuesta a la pregunta anterior, ya que tampoco su definición es clara. Para entender el porqué considérense las siguientes preguntas. <em>¿Son capaces de volar las máquinas? ¿Son capaces de nadar las máquinas?. </em>La mayoría estaría de acuerdo en que la respuesta a la primera de estas preguntas es sí, los aeroplanos pueden volar, en tanto que la segunda es no; barcos y submarinos se desplazan a través del agua, aunque no de manera que conocemos como nadar.</p>
<p align="left">Estas respuestas tienen poca relevancia en el diseño o en las capacidades de los aeroplanos y de los submarinos, y tienen más que ver con la manera como escogemos el empleo de palabras. La palabra &#8220;Nadar&#8221; significa &#8220;Desplazarse a través del agua mediante movimientos de las extremidades o de otras partes del cuerpo, en tanto que el significado de la palabra &#8220;Volar&#8221; no indica restricciones de los medios de locomoción. Para complicar aún más las cosas, las palabras también se utilizan con un sentido metafórico, y cuando decimos que una computadora (o un ingeniero, o la economía) marcha bien, lo que se quiere dar a entender es que funciona correctamente, no que se impulsa a sí misma mediante piernas y de una manera admirable. De manera similar, cuando una persona afirma: &#8220;Mi MODEM no funciona, porque la computadora piensa que está en una línea de 2400 baudios&#8221;, posiblemente la palabra &#8220;Piensa&#8221; se utiliza en sentido metafórico, y sostendrá que eso de que las computadoras piensan no debe interpretarse en sentido literal.</p>
<p align="left"><strong>Algunas de las objeciones</strong> pueden resolverse sin mayor problema. Por ejemplo, Lady Ada Lovelace, en su comentario sobre la Máquina Analítica de Babbage afirma:</p>
<blockquote>
<p align="left">&#8220;No pretende crear nada. Es capaz de hacer todo aquello que sabemos ordenarle que ejecute&#8221; (BABBAGE, 1978:85)</p>
</blockquote>
<p align="left">Esta objeción, de que las computadoras sólo son capaces de hacer lo que se les indica y que, por lo tanto, no son capaces de hacer nada creativo, es algo con lo que todavía nos topamos en la actualidad. Una sencilla refutación es afirmando que una de las cosas que podemos ordenar a una computadora es aprender a partir de su propia experiencia.</p>
<blockquote>
<p align="left">&#8220;Ser amable, polifacético, hermoso, amigable, tener iniciativa, sentido del humor, saber distinguir lo bueno de lo malo, cometer errores, enamorarse, gustar de las fresas con crema, hacer que alguien se enamore de uno, aprender de la experiencia, usar las palabras correctamente, ser objeto de sus propios pensamientos, tener una conducta tan diversa como la del hombre y hacer cosas realmente nuevas&#8221; (TURING, 1984:456).</p>
</blockquote>
<p align="left">Si bien alguna de las habilidades anteriores se refiere a la conciencia de las máquinas y de lo cual se hablará extensamente a continuación, muchas de ellas tienen que ver con características de tipo conductual. Turing comenta que este tipo de escepticismo surge en el caso de la experiencia que se ha tenido con las máquinas en cuanto artefactos que sirven para realizar tareas repetitivas en las que a finales de la década de 1940, a la población le resultaba difícil que las máquinas pudiesen encontrar soluciones numéricas a las ecuaciones o predecir trayectorias balísticas. Aún en nuestros días, son muchos los analfabetizados tecnológicamente que no creen que las máquinas sean capaces de aprender. La inteligencia artificial estudia espacialmente métodos que permiten resolver problemas en los que no existe el conocimiento sistemático para plantear una solución analítica (métodos considerados débiles por realizar procedimientos de búsqueda no informada). Las técnicas de representación que permiten describir los aspectos conocidos del problema se denominan declarativos (declaran el qué). Sus ventajas son su claridad, su predisposición al planteamiento modular y que se pueden añadir nuevos hechos a los ya existentes. Las técnicas de representación que se centran en especificar el proceso que hay que realizar para encontrar los soluciones buscadas se denominan procedimentales (se centran en el cómo), fijan el conocimiento del dominio que no se ajusta a esquemas declarativos y ese mismo conocimiento sirve para guiar las líneas de conocimiento del proceso de búsqueda. Ningún sistema es completamente declarativo o exclusivamente procedimental. En principio son intercambiables (cuando exista el proceso de interpretación adecuado para las declarativas). En general se puede afirmar que el carácter procedimental conlleva un tratamiento algoritmo y el declarativo uno heurístico. El planteamiento general de un problema consiste en encontrar o construir una solución (o varias) de dicho problema. Este problema requiere: &#8211; Un agente (sistema) con una serie de objetivos que se quieren alcanzar &#8211; Un conjunto de acciones que permiten obtener los objetivos o metas &#8211; Un procedimiento de elección entre diferentes formas de llegar a las metas (cada solución constituye una secuencia de acciones). El módulo que construye la solución suele llamarse solucionador.</p>
<div id="attachment_100" class="wp-caption aligncenter" style="width: 569px"><a href="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/09/chicarobot.jpg"><img class="size-medium wp-image-100" src="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/09/chicarobot-300x206.jpg" alt="IA... lo hermoso!!" width="559" height="260" /></a><p class="wp-caption-text">Inteligencia Artificial... lo hermoso!!</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.eliliturgitano.es/blog/?feed=rss2&amp;p=69</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Inteligencia Artificial (2/4): Descripción y Clasificación</title>
		<link>http://www.eliliturgitano.es/blog/?p=67</link>
		<comments>http://www.eliliturgitano.es/blog/?p=67#comments</comments>
		<pubDate>Tue, 23 Sep 2008 03:25:25 +0000</pubDate>
		<dc:creator>Jos_173</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[clasificacion]]></category>
		<category><![CDATA[descripcion]]></category>
		<category><![CDATA[IA]]></category>
		<category><![CDATA[Investigación]]></category>

		<guid isPermaLink="false">http://www.eliliturgitano.es/blog/?p=67</guid>
		<description><![CDATA[En tiempos modernos todavía es insuficiente alcanzar niveles de conocimientos grandes para cubrir todo este majestuoso campo como lo es la Inteligencia Artificial, nuestros estudios e investigaciones están orientados en el aspecto de hacer conocer a cada lector la descripción general y su clasificación de todo lo que viene siendo esta rama.  Luego de saber cómo [...]]]></description>
			<content:encoded><![CDATA[<p>En tiempos modernos todavía es insuficiente alcanzar niveles de conocimientos grandes para cubrir todo este majestuoso campo como lo es la Inteligencia Artificial, nuestros estudios e investigaciones están orientados en el aspecto de hacer conocer a cada lector la descripción general y su clasificación de todo lo que viene siendo esta rama.  Luego de saber cómo se origino esto de la inteligencia artificial nos abocaremos en comprender mas a cómo es que está conformada, así como todo sus detalles. Esperamos siempre que estos estudios les sirvan de guía, mas no como reglas que esta rama es demasiado amplia para exponerla en su plenitud.</p>
<p>[youtube]http://www.youtube.com/watch?v=1QPiF4-iu6g[/youtube]</p>
<h2>Descripción</h2>
<p style="justify;">El término &#8220;inteligencia artificial&#8221; se ha popularizado para designar a una disciplina incluida entre las ciencias de la computación. Tiene que ver con el esfuerzo que decenas de científicos de distintos países, especialmente de los Estados Unidos y de Europa Occidental, han venido realizando durante los últimos treinta años para dotar a las computadoras de inteligencia.</p>
<p style="justify;"><a href="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/09/rhuy-full.jpg"><img class="size-medium wp-image-81 alignleft" src="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/09/rhuy-full-254x300.jpg" alt="Inteligencia Artificial o solo un sueño de la humanidad" width="153" height="201" /></a>La frase &#8220;dotar a las computadoras de inteligencia&#8221; suele producir una reacción de asombro en muchas personas, aunque a veces por motivos diferentes: &#8220;Pero&#8230; ¿es que las computadoras no son inteligentes?&#8221;, comentarán algunos que han visto o leído demasiadas historias de ciencia ficción. Claro que no, habrá que contestarlos, refiriéndonos al hecho de que la computadora ordinariamente programada no es más que un instrumento muy rápido y generalmente confiable de hacer operaciones aritméticas o de manipular fichas de nombres en orden alfabético. Para que una computadora comience a merecer el nombre de inteligente, deberá ser capaz de realizar acciones que, si realizadas por un ser humano, diríamos que requieren inteligencia, como jugar ajedrez o mantener un diálogo con otro ser considerado también inteligente, o resolver algún rompecabezas.</p>
<p style="justify;">Pero para otras personas la fuente del estupor al ver asociadas las palabras &#8220;inteligencia&#8221; y &#8220;artificial&#8221; consistirá en el hecho de que para ellas la inteligencia y las máquinas son conceptos esencialmente incompatibles:</p>
<blockquote><p>&#8220;Las computadoras pueden hacer operaciones aritméticas porque para eso sólo se necesita ser capaz de manipular números en forma mecánica; pero la inteligencia, a diferencia de la <a href="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/09/ia.jpg"><img class="size-medium wp-image-79 alignright" src="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/09/ia-300x300.jpg" alt="" width="76" height="66" /></a>capacidad de manipular números, requiere creatividad, inventiva, iniciativa intelectual, y eso desde luego solo lo pueden tener los seres humanos, de ninguna manera las máquinas. Las computadoras pueden hacer lo que sus programadores les dicen, pero nada más; además, hagan lo que hagan, nunca sabrán lo que están haciendo, nunca serán conscientes de lo que hacen. Y para ser inteligente se requiere ser capaz de elegir conscientemente el propio camino en la solución de problemas&#8221;.</p></blockquote>
<p style="justify;">La contestación que podemos darle a esta segunda clase de personas es más compleja. Por lo tanto podemos decir a grandes rasgos que la <strong>Inteligencia Artificial es una ciencia que intenta la creación de programas para máquinas que imiten el comportamiento y la comprensión humana</strong>, que sea capaz de aprender, reconocer y pensar, aunque esto último está por ver, ya que, realmente, ¿qué significa pensar? y ¿en qué consiste el pensamiento? (<a title="Alan Turing" href="http://es.wikipedia.org/wiki/Alan_Turing" target="_blank">Turing 1912-1954</a>).</p>
<h2>Clasificación</h2>
<ol style="justify;">
<li>
<div style="justify;"><strong>La Inteligencia Artificial como ciencia de lo natural o análisis:</strong> El procedimiento teórico busca una explicación de esa correlación en términos de un conjunto de leyes generales de un nivel superior que permiten predecir lo que ocurriría en otros casos no observados. Realmente lo que hace es buscar un modelo del conocimiento humano, generalmente organizado en varios niveles (estático, dinámico y estratégico) para poder usarlo en predicción. Esta técnica se basa en experimentos para conseguir una teoría del conocimiento computable con capacidad predictiva (como una ley física).</div>
</li>
<li>
<div style="justify;"><strong>Inteligencia Artificial como ciencia de lo artificial:</strong> Aspira a convertirse en una ingeniería en sentido estricto. Ahora se parte de un conjunto de especificaciones funcionales y se busca la síntesis de un sistema (programa más máquina) que las satisfaga. A su vez en ambas ramas cooperan dos paradigmas, que constituyen dos formas de analizar un proceso y dos metodologías de síntesis de una solución: <strong>Computación simbólica &#8211; Computación conexionista</strong> En inteligencia artificial trabajamos con información y conocimiento, y ambos son pura forma, totalmente independiente del sistema físico que las soporta. Las tareas que aborda la inteligencia artificial de síntesis son tareas de alto nivel, y pueden clasificarse en tres grandes grupos ordenados en grado de dificultad creciente:</div>
<ol>
<li>
<div style="justify;"><strong><em>DOMINIOS FORMALES.</em></strong> Las tareas toman la forma genérica de solucionadores de problemas mediante búsquedas en un espacio de estados de conocimiento y pueden ser juegos o problemas lógico-matemáticos.</div>
</li>
<li>
<div style="justify;"><em><strong>DOMINIOS TÉCNICOS.</strong></em> Tienen que ver con el diagnóstico médico, la detección de fallos, la planificación de trayectorias de robots, etc. Lo característica de estas tareas es el carácter limitado del conocimiento que manejan (dominios estrechos) y la posibilidad de formalizar ese conocimiento con las técnicas disponibles.</div>
</li>
<li>
<div style="justify;"><em><strong>FUNCIONES BÁSICAS Y GENUINAS DEL COMPORTAMIENTO HUMANO.</strong></em> Realmente es lo que hacemos a todas horas sin darnos cuenta: ver, oír, caminar, pensar , hablar, etc. Por su importancia se le va a dedicar el siguiente apartado.</div>
</li>
</ol>
</li>
<li>
<div style="justify;"><strong>Idea Inductiva del comportamiento artificial:</strong> Hablar de la inteligencia artificial en ese sentido supone querer comprender y duplicar las funciones del comportamiento humano. Algunas de sus características son:</div>
<ul>
<li>
<div style="justify;">Su simplicidad en el ser humano.</div>
</li>
<li>
<div style="justify;">Lo complejo que son a la hora de sintetizarlos.</div>
</li>
<li>
<div style="justify;">El uso masivo de conocimientos y el hecho que las técnicas son insuficientes para modelar estas tareas (hace falta un lenguaje de representación con la capacidad y robustez del lenguaje natural).</div>
</li>
<li>
<div style="justify;">El estilo peculiar de computación que usa el ser vivo.</div>
</li>
<li>
<div style="justify;">El reconocimiento de que todo conocer depende de la estructura que conoce.</div>
</li>
<li>
<div style="justify;">La hipótesis fuerte de la inteligencia artificial es que también es posible hacer computacional este conocimiento propio de lo vivo.</div>
</li>
</ul>
</li>
</ol>
<p style="justify;">Para la realización de las tareas el agente posee un modelo del medio y un conjunto de propósitos en ese medio y para alcanzar sus metas usa lo que Newell llama principio de racionalidad. El problema es que este principio no es operacional (nos dice qué hacer pero no cómo hacerlo. Por tanto la clave de la inteligencia artificial es conseguir programa traductores intermedios que conecten las primitivas de bajo nivel con las de un lenguaje de representación cada vez más próximo al lenguaje natural.</p>
<p style="justify;">Existen tres paradigmas que los investigadores han utilizado tradicionalmente para la resolución de problemas de IA:</p>
<ol style="justify;">
<li>
<div style="justify;"><strong>Programación Heurística.-</strong> Está basado en el modelo de comportamiento humano y su estilo para resolver problemas complejos. Existen diversos tipos de programas que incluyen algoritmos heurísticos. Varios de ellos son capaces de aprender de su experiencia.</div>
</li>
<li>
<div style="justify;"><strong>Redes Neuronales Artificiales.-</strong> Es una representación abstraída del modelo neuronal del cerebro humano. Las redes están formadas por un gran número de elementos simples y por sus interconexiones. Una red neuronal artificial puede ser simulada o ser real. Al elemento procesador de la red, se lo denomina neurona artificial.</div>
</li>
<li>
<div style="justify;"><strong>Evolución Artificial.-</strong> Su modelo está basado en el proceso genético de evolución natural, propuesto por Charles Darwin. Se utilizan sistemas simulados en computador que evolucionan mediante operaciones de reproducción, mutación y cruce (Algoritmos Genéticos). Cada paradigma comprende una colección de métodos, configuraciones y técnicas desarrolladas para manipular el conocimiento. En general, una técnica de IA está caracterizada por incluir los siguientes componentes:</div>
<ul>
<li>
<div style="justify;"><em><strong>Procesos de Búsqueda.-</strong></em> Proporciona una forma de resolver problemas para los cuales no hay un método más directo, así como también se constituye en un marco de trabajo dentro del cual cualquier técnica directa puede ser incorporada.</div>
</li>
<li>
<div style="justify;"><strong><em>Uso del Conocimiento.-</em></strong> Proporciona una forma de resolver problemas explotando las estructuras de los objetos involucrados.</div>
</li>
<li>
<div style="justify;"><em><strong>Abstracción.-</strong></em> Proporciona una forma de separar rasgos importantes y variaciones, de los tantos que no tienen importancia.</div>
</li>
</ul>
</li>
</ol>
<p style="justify;">Desde el punto de vista de los objetivos, la IA puede considerarse en parte como ingeniería y en parte como ciencia: <strong>Como ingeniería</strong>, el objetivo de la IA es resolver problemas reales, actuando como un conjunto de ideas acerca de cómo representar y utilizar el conocimiento, y de cómo desarrollar sistemas informáticos. <strong>Como ciencia</strong>, el objetivo de la IA es buscar la explicación de diversas clases de inteligencia, a través de la representación del conocimiento y de la aplicación que se da a éste en los sistemas informáticos desarrollados.</p>
<blockquote>
<p style="justify;">Para usar la IA se requiere una comprensión básica de la forma en que se puede representar el conocimiento y de los métodos que pueden utilizar o manipular ese conocimiento.</p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.eliliturgitano.es/blog/?feed=rss2&amp;p=67</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Inteligencia Artificial (1/4) : Primeros Pasos</title>
		<link>http://www.eliliturgitano.es/blog/?p=56</link>
		<comments>http://www.eliliturgitano.es/blog/?p=56#comments</comments>
		<pubDate>Mon, 22 Sep 2008 01:10:32 +0000</pubDate>
		<dc:creator>Jos_173</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[historia]]></category>
		<category><![CDATA[inteligencia artificial]]></category>
		<category><![CDATA[Investigación]]></category>
		<category><![CDATA[nacimiento]]></category>
		<category><![CDATA[primeros pasos]]></category>

		<guid isPermaLink="false">http://www.eliliturgitano.es/blog/?p=56</guid>
		<description><![CDATA[Dice la Biblia que Dios creó al hombre, a su imagen y semejanza, después de crear el mundo. Lo que no se esperaba es que el hombre saliera con tantas ganas de inventar y construir como Él&#8230;
La curiosidad humana ha conseguido que, a inicios del siglo XXI, existan robots capaces de piropear a sus dueños, [...]]]></description>
			<content:encoded><![CDATA[<p style="justify;">Dice la Biblia que Dios creó al hombre, a su imagen y semejanza, después de crear el mundo. Lo que no se esperaba es que el hombre saliera con tantas ganas de inventar y construir como Él&#8230;</p>
<p style="justify;">La curiosidad humana ha conseguido que, a inicios del siglo XXI, existan robots capaces de piropear a sus dueños, que el hombre pueda cartografiar la superficie de Marte y que conectar con un amigo del otro lado del mundo sea tan fácil como encender un ordenador. En relación con los autómatas, siempre se ha relacionado la inteligencia con los aparatos mecánicos complejos. Los hombres, intuitivamente, han comparado la complejidad del funcionamiento de una máquina con su propia vida mental. Pero el camino ha sido largo y lleno de pequeñas victorias, en las que la humanidad ha ido ganando terreno a los impedimentos de la naturaleza.</p>
<p style="justify;">No hemos querido ser ajenos a esta realidad y es que en esta ocasión te presentamos un resúmen de todo lo que vivió la muy reconocida Inteligencia Artificial y los diferentes lenguajes que lo gobiernan. Bienvenido a esta entrada y esperamos que el esfuerzo puesta en esta sea en un tiempo de valiosa ayuda para cada lector.</p>
<h2>Historia-Antecedentes.</h2>
<p style="justify;">La Inteligencia Artificial &#8220;nació&#8221; en 1943 cuando Warren McCulloch y Walter Pitts propusieron un modelo de neurona del cerebro humano y animal. Estas neuronas nerviosas abstractas proporcionaron una representación simbólica de la actividad cerebral. Más adelante, Norbert Wiener elaboró estas ideas junto con otras, dentro del mismo campo, que se llamó &#8221; cibernética&#8221;, de aquí nacería , <strong>sobre los años 50</strong>, la Inteligencia Artificial. Los primeros investigadores de esta innovadora ciencia, tomaron como base la neurona formalizada de McCulloch y postulaban que:</p>
<blockquote>
<p style="justify;">&#8220;El cerebro es un solucionador inteligente de problemas, de modo que imitemos al cerebro&#8221;.</p>
</blockquote>
<p style="justify;">Pero si consideramos la enorme complejidad del mismo esto es ya practicamente imposible, ni que mencionar que el hardware de la época ni el software estaban a la altura para ralizar semejantes proyectos. Se comenzó a considerar el pensamiento humano como una coordinación de tareas simples relacionadas entre sí mediante símbolos. Se llegaría a la realización de lo que ellos consideraban como los fundamentos de la solución inteligente de problemas, pero lo difícil estaba todavía sin empezar, unir entre sí estas actividades simples.</p>
<p style="justify;">Por lo tanto podemos decir a grandes rasgos que la Inteligencia Artificial es una <strong>ciencia que intenta la creación de programas para máquinas que imiten el comportamiento y la comprensión humana</strong>, que sea capaz de aprender, reconocer y pensar, aunque esto último está por ver, ya que, realmente, ¿qué significa pensar? y ¿en qué consiste el pensamiento?.</p>
<h3>Prehistoria de la Inteligencia Artificial.</h3>
<p style="justify;">Así como de alguna forma los soportes mecánicos para la automatización de cálculos aritméticos se sitúan en la prehistoria de los computadores, la prehistoria de la inteligencia artificial abarca desde los primeros tiempos de nuestra civilización hasta mediados del siglo XX. En este período se producen hechos que podemos agrupar en dos líneas:</p>
<ul style="justify;">
<li>
<div>Una de ellas, directamente relacionada con al construcción de autómatas que simulaban desde el punto de vista externo el comportamiento humano o animal, y que solían funcionar en ayuda de su amo.</div>
</li>
<li>
<div>La otra línea, referente a la información y automatización del razonamiento lógico y matemático. En relación con los autómatas, siempre se ha relacionado la inteligencia con los aparatos mecánicos complejos.</div>
</li>
</ul>
<p style="justify;">Al llegar el relacionista siglo XVIII, el siglo de los autómatas por antonomasia, las cosas fueron muy diferentes. Como es sabido, Descartes había defendido la tesis del &#8220;animal-máquina&#8221;: los seres vivos, salvo el hombre, son meros mecanismos y el escritor Capek difunde en 1920 una palabra destinada a tener gran éxito: &#8220;robot&#8221;, en su obra &#8220;RUR&#8221; aparecen unos seres creados para realizar las tareas que el hombre no quiere hacer, que acaban siendo más poderosos que el mismo hombre llegando a poner en peligro la existencia del mismo.</p>
<p style="justify;">Hasta la llegada de los ordenadores electrónicos no dispusieron los científicos y técnicos de una herramienta que permitiera la ejecución de tareas más complejas por parte de dispositivos mecánicos; que hiciera posible, por así decir, la construcción de robots. Al llegar al siglo XIX, los matemáticos sienten por su parte la necesidad de abandonar la institución como fundamento de su ciencia y buscar para su razonamiento más sólidas bases. Las teorías de la computabilidad y de los autómatas proporcionaron el vínculo entre la formalización del razonamiento y las máquinas que estaban a punto de surgir tras la Segunda Guerra Mundial. En este ambiente, no es extraño que la aparición de las primeras máquinas electrónicas de computo fuera seguida inmediatamente por los intentos de aplicarlas a la que hoy llamamos IA. Un último elemento importante es la cibernética, ésta influyó en muchos campos debido a su naturaleza fundamentalmente interdisciplinaria, ligado entre sí la fisiología neuronal; las ideas de los creadores de la cibernética llegaron a ser parte del espíritu del tiempo e influyeron fuertemente en los primeros investigadores de la IA.</p>
<h3>El nacimiento de la Inteligencia Artificial (IA).</h3>
<p style="justify;">El fracaso de la mayoría de los problemas que intentaban resolver eran demasiado complicados, tanto teórica como tecnológicamente. La lógica teórica fue considerada como el primer programa de IA y usada para resolver problemas de búsqueda heurística. Durante el decenio de 1950 se celebraron congresos, proliferaron los grupos de investigación y en 1954 uno de ellos afirmó haber creado un programa que traducía del ruso al inglés. La verdad es que los resultados prácticos fueron descorazonadoramente escasos. De todas formas, el resultado más espectacular de este período fue el programa de Samuel para Jugar a las damas, que se presentó en 1961 y era capaz de aprender de su experiencia, es decir, tener en cuenta sus errores y éxitos pasados, para determinar sus jugadas en la partida posterior.</p>
<h3>Los años difíciles.</h3>
<p style="justify;">Tales habían sido las expectativas levantadas por la IA, y tantos sus fracasos, que el desánimo sucedió al optimismo inicial. El mundo exterior se desentendió de los trabajos de investigación, y la financiación de muchos proyectos se volvió problemática, tanto en América como en Europa. No obstante, la IA se fue consolidando y, aprendiendo de sus fracasos, buscó nuevos enfoques para los viejos problemas. En el año 1964 se publicó una tesis doctoral sobre el sistema STUDENT, que es un programa de lenguaje natural que comprende y resuelve problemas elevados de álgebra. Es en 1966 cuando se publica, en Comunicaciones de la Asociación para Máquinas Calculadoras, un programa de ordenador para el estudio de comunicación hombre-máquina mediante lenguaje natural interactivo, ELIZA, que fue creado como un programa de psicología que simula respuestas de un terapista en dialogo interactivo con un paciente. Las personas que dialogaban con ELIZA creían que hablaban con un psicólogo auténtico. A partir de 1970, el énfasis se trasladó de las reglas y procedimientos generales de deducción a la acumulación de conocimientos concretos de un campo bien delimitado en la realidad. El célebre programa SHRDLU era una parte de un proyecto de comprensión del lenguaje natural capaz de comprender y ejecutar correctamente órdenes dadas en inglés acerca de un &#8220;mundo de bloques&#8221;. Ello era posible porque el programa tenía todos los conocimientos necesarios de su limitado y simplificado mundo. Los sistemas expertos alcanzaron una sorprendente efectividad a la hora de responder a complicadas cuestiones de diagnóstico médico o prospección minera. Esto se conseguía limitando el razonamiento a un ámbito restringido del mundo real, acumulando en el programa una gran cantidad de conocimientos. En esta época, una de las principales actividades fue el diseño de sistemas expertos. La llamada Ingeniería del conocimiento fue acumulando técnicas y herramientas para la representación, recolección y empleo de conocimiento experto en un campo dado. Los trabajos hasta 1973, tuvieron como herramientas básicas de trabajo los conceptos de tiempo compartido en ordenadores y procesamiento de palabra. La investigación más normal incluye: visón con ordenador, todas las áreas de la robótica, sistemas expertos, lenguaje natural y arquitectura de ordenadores. La investigación en visión artificial a través del Programa de Comprensión de Imagen, incluye un desarrollo de la teoría de la visión y del hardware para procesado de imágenes. Se lanzaron ataques contra la IA basándose en la introspección, afirmó que ciertos aspectos del pensamiento humano son esencialmente inimitables por parte de los ordenadores, dando varias razones de apoyo a esta tesis: de una parte, los ordenadores son máquinas discretas, mientras que el pensamiento aparece en nuestra introspección como continuo; además, los ordenadores carecen de &#8220;corporeidad&#8221;, por lo que no pueden relacionarse como nosotros con el espacio físico; por último, los ordenadores no comparten nuestras experiencias, nuestro contexto humano, por lo que no pueden ser como los seres humanos. En cualquier caso, las controversias no desanimaron a los investigadores, que empezaban a alcanzar resultados tangibles. En esto les ayudaba grandemente el acelerado progreso del soporte material, con la aparición de los circuitos y el aumento consiguiente de capacidad y potencia de cálculo. También el soporte lógico empezaba a adaptarse a las necesidades de la IA. <strong>La aparición de lenguajes declarativos fue un paso importante para la IA</strong>.</p>
<p style="justify;">
]]></content:encoded>
			<wfw:commentRss>http://www.eliliturgitano.es/blog/?feed=rss2&amp;p=56</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Los Proyectos y su gestión</title>
		<link>http://www.eliliturgitano.es/blog/?p=36</link>
		<comments>http://www.eliliturgitano.es/blog/?p=36#comments</comments>
		<pubDate>Tue, 02 Sep 2008 04:09:49 +0000</pubDate>
		<dc:creator>Jos_173</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Cocomo]]></category>
		<category><![CDATA[Costos]]></category>
		<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Gerencia]]></category>
		<category><![CDATA[Gestión de Proyectos]]></category>
		<category><![CDATA[Investigación]]></category>

		<guid isPermaLink="false">http://www.eliliturgitano.es/blog/?p=36</guid>
		<description><![CDATA[El solo hecho de planificar o producir un programa calendario en el cual los recursos, siempre limitados, se asignen a cada una de las actividades en forma económicamente óptima no es suficiente, a la hora de emprender el proyecto requerimos tener mucho más que eso para empezar.
Pueden existir algunas limitaciones al planear un proyecto ya sean internas, [...]]]></description>
			<content:encoded><![CDATA[<p>El solo hecho de planificar o producir un <strong>programa calendario</strong> en el cual los <strong>recursos</strong>, siempre<strong> </strong>limitados, se asignen a cada una de las <strong>actividades</strong> en forma económicamente óptima no es suficiente, a la hora de emprender el proyecto requerimos tener mucho más que eso para empezar.</p>
<p>Pueden existir algunas limitaciones al planear un proyecto ya sean <strong>internas</strong>, por ejemplo: computadoras disponibles, capacidad del personal, disposiciones presupuestarias, o bien <strong>externas,</strong> como ser: fechas de entrega de cualquier tipo de recursos, factores climáticos, aprobaciones de organismos oficiales. Es lo que estábamos diciendo la anterior vez al momento de crear un proyecto, pero ahora exploraremos algo más que crear un proyecto, ahora veremos con es que se debe de gestionar un proyecto. Bienvenido nuevamente a los estudios de investigación que he preparado para que te puedan ser de utlidad a la hora de gestionar tu proyecto.</p>
<h2>Algunas consideraciones que debe de saber</h2>
<h3>1. Defina el alcance y los objetivos del proyecto.</h3>
<p><em>El alcance o área de competencia define los límites del proyecto.</em> Decidir que es lo que está dentro o fuera de los límites del proyecto determinará la cantidad de trabajo que se necesitará realizar.</p>
<h3>2. Defina las tareas</h3>
<p>Debe definir que tareas se esperan del proyecto. Si por ejemplo su proyecto es una campaña publicitaria para una nueva barra de chocolate, entonces una tarea sería producir el trabajo de arte para la publicidad. Por eso defina que cosas tangibles deben ser producidas y documéntelas con suficiente detalle para que cualquiera de los involucrados pueda llevarla a cabo correcta y eficientemente.</p>
<h3>3. Planifique el proyecto</h3>
<p>Planificar requiere que el gerente de proyecto decida qué gente, recursos y presupuestos se requieren para completar el mismo. Debe definir que actividades se requieren para producir los productos, utilizando técnicas tales como <strong>Estructura Analítica de Proyectos</strong> (<a href="http://en.wikipedia.org/wiki/Work_breakdown_structure">Work Breakdown Structures -WBS</a>; en el gerenciamiento de proyectos el WBS es una técnica que consiste en la descomposición del proyecto en partes manejables). Además debe estimar los tiempos y los esfuerzos requeridos para cada actividad, las dependencias entre actividades y luego decidir un programa realista para completarlas. Involucre al equipo de proyecto en la estimación de la duración de las actividades. Establezca hitos que indiquen fechas críticas durante el desarrollo del proyecto. Escríbalas en su planificación.</p>
<h3>4. Comunicación</h3>
<p>La planificación del proyecto resulta inútil si no es comunicada efectivamente al equipo del proyecto. Cada miembro del equipo necesita conocer sus responsabilidades. Lee esta historia:</p>
<blockquote><p>&#8220;Una vez trabajé en un proyecto en donde el project manager (director del proyecto) se quedó sentado en su escritorio rodeado de un enorme cronograma. El problema fue que nadie en ese equipo sabía cuales eran las tareas y las fechas tope, pues nadie había compartido la planificación. El proyecto sufrió todo tipo de problemas porque la gente hacía actividades que pensaban que eran importantes en vez de hacer las que el director de proyecto les había asignado.&#8221;</p></blockquote>
<h3>5. Seguimiento y reporte de avance del proyecto</h3>
<p>Una vez que el proyecto esté en ejecución debe ser monitoreado y comparado el progreso actual con el proyectado. Necesitará reportes de avance de proyecto que deberán producir los miembros del equipo. Deberá registrar las variaciones entre lo real y lo proyectado, tanto en lo referente a costos como a cronograma y al alcance. Deberá reportar las variaciones a su superior y a los accionistas claves para poder tomar acciones correctivas antes de que esos desfasajes sean demasiado grandes.</p>
<p>Puede ajustar el plan de muchas maneras para volver a poner la planificación en el camino trazado pero siempre terminará equilibrando <strong>costos, cronograma de tareas y alcances</strong>. Si el director de proyecto cambia una de estas, entonces uno o los dos elementos restantes deberán inevitablemente ajustarse de forma acorde. Es justamente el balance de estos tres elementos -conocidos como el triángulo del proyecto- lo que típicamente causa los mayores dolores de cabeza al director de proyecto.</p>
<h3>6. Gestión del cambio</h3>
<p>Los accionistas o clientes a menudo cambian de parecer en lo que respecta a las áreas de cada proyecto. A veces cambia el entorno de negocio en medio del desarrollo, y los supuestos que se hicieron al comenzar no siempre siguen siendo válidos. Esto a veces implica que el cronograma o las tareas deban ser cambiados. Si el director del proyecto acepta todos los cambios, muy probablemente el proyecto se saldrá de presupuesto, se atrasará y hasta podría no terminarse.</p>
<p>Administrando los cambios, el líder de proyecto puede tomar decisiones sobre si incorporar o no los cambios inmediatamente o en el futuro, o directamente rechazarlos. Esto aumenta las posibilidades de que el proyecto sea exitoso porque el director del proyecto controla la forma en que esos cambios son incorporados, puede disponer nuevos recursos acordes al cambio y puede planificar cuando y como se harán los mismos. Una de las razones por lo que a veces fracasan los proyectos es por la imposibilidad de gestionar los cambios eficientemente.</p>
<h3>7. Gestión del riesgo</h3>
<p>Los riesgos son eventos que pueden afectar negativamente su proyecto. Alguno dijo por ahi:</p>
<blockquote><p>&#8220;He trabajado en proyectos en lo que los riegos incluyeron: un plantel laboral que no tenía las habilidades técnicas requeridas para realizar el trabajo, la falta de entrega a tiempo de hardware u otros equipos, una sala de control con riesgo de inundación y muchos otros.&#8221;</p></blockquote>
<p>Los riesgos varían con cada proyecto pero se debe identificar lo antes posible los riesgos del proyecto en particular. Se debe planificar para evitar los riesgos o, si los riesgos no pueden ser evitados, para mitigar su impacto en el proyecto en caso de que efectivamente ocurra. Esto se conoce como gestión del riego (risk management).  No controlas todos los riesgos, lo sé, porque estos pueden ser muchos y no todos tienen el mismo impacto. Entonces, identifique todos los riesgos, estime las probabilidades de que ocurran cada uno de la siguiente manera:</p>
<ul>
<li>1= no probable;</li>
<li>2= posible;</li>
<li>3= muy probable.</li>
</ul>
<p>Luego estime su impacto en el proyecto</p>
<ul>
<li>1= bajo;</li>
<li>2= medio;</li>
<li>3= alto.</li>
</ul>
<p>Luego multiplique ambos números para tener un factor de riesgo. Los factores de riego alto indican los riesgos más severos y, por lo tanto, las situaciones más problemáticas. Gestione las 10 estimaciones con los mayores factores de riesgo. Revise constantemente los riesgos y esté alerta por nuevos que pudieran surgir pues tienen la manía de aparecer cuando menos los esperamos.</p>
<p><strong>No gestionar los riesgos eficientemente es otra de las causas frecuentes de fracaso en los proyectos</strong>.</p>
<h1>Gerencia de Proyectos</h1>
<p><span style="Verdana, Arial, Helvetica, sans-serif;">Podemos definir la gerencia de proyectos como <em>el arte de dirigir y coordinar recursos humanos y materiales durante la vida de un proyecto mediante el uso de técnicas modernas de administración y para alcanzar objetivos predeterminados de cubrimiento, costo, tiempo,  calidad y satisfacción de todos los participantes</em> (PMI). Es, por tanto, la aplicación del conocimiento, herramientas y técnicas a las actividades del proyecto para satisfacer o exceder las necesidades y expectativas de los participantes. </span></p>
<p><span style="Verdana, Arial, Helvetica, sans-serif;">La gerencia de proyectos es un conjunto de actividades pertenecientes a un proceso administrativo, cuyos componentes principales son los siguientes. </span></p>
<h3>Planeación: Qué vamos a hacer y por qué?</h3>
<p>En el hecho de respondernos esta pregunta ya estaremos dándo solución a la m<span style="Verdana, Arial, Helvetica, sans-serif;">isión, los objetivos, las metas y estrategias del proyecto. </span></p>
<h3>Organización: Qué elementos están involucrados y por qué?<a name="organizacion"></a></h3>
<p>Debemos de definir:</p>
<ul>
<li><span style="Verdana, Arial, Helvetica, sans-serif;">Estructura organizacional del equipo del proyecto </span></li>
<li><span style="Verdana, Arial, Helvetica, sans-serif;">Identificar y asignar las funciones a cada miembro del equipo </span></li>
<li><span style="Verdana, Arial, Helvetica, sans-serif;">Definir políticas, procedimientos y técnicas de la gerencia </span></li>
<li>Establecer normas de autoridad, responsabilidad y auditoría del proyecto</li>
</ul>
<h3>Motivación: Qué motiva a las persona para ejecutar su trabajo lo mejor posible?.</h3>
<p><span style="Verdana, Arial, Helvetica, sans-serif;">Un aspecto importante a tomar en cuenta en el desenvolvimiento y desarrollo de un proyecto es la motivación de las personas, para esto es importante tomar los siguientes aspectos:</span></p>
<ul>
<li><span style="Verdana, Arial, Helvetica, sans-serif;">Determinar necesidades del equipo del proyecto </span></li>
<li><span style="Verdana, Arial, Helvetica, sans-serif;">Adquirir elementos de motivación </span></li>
<li><span style="Verdana, Arial, Helvetica, sans-serif;">Proveer de asesoramiento a los miembros del equipo según se requiera </span></li>
<li><span style="Verdana, Arial, Helvetica, sans-serif;">Establecer los programas de incentivos a los miembros </span></li>
<li>Hacer estudio inicial del impacto y la motivación en la productividad</li>
</ul>
<h3>Dirección: Quién decide qué y cuándo?.</h3>
<p><span style="Verdana, Arial, Helvetica, sans-serif;">Un barco sin timón navega a la deriva en el mar y es llevado por las olas a su gusto y gana; en un proyecto siempre es vital que haya un director, algún encargado de coordinar actividades y controlar el progreso de las mismas, debe ser una persona con cualidades idóneas no necesariamente con grandes conocimientos, sino apta para expresarse y dar a entender en dialecto humano lo que se quiere hacer y cuándo se lo debe de hacer. Algunas de las tareas de un director son:</span></p>
<ul>
<li><span style="Verdana, Arial, Helvetica, sans-serif;">Establecer límites de autoridad en la toma de decisiones sobre asignación de recursos </span></li>
<li><span style="Verdana, Arial, Helvetica, sans-serif;">Desarrollar estilos de liderazgo </span></li>
<li><span style="Verdana, Arial, Helvetica, sans-serif;">Mejorar habilidades interpersonales </span></li>
<li><span style="Verdana, Arial, Helvetica, sans-serif;">Planear técnicas de participación administrativa </span></li>
<li>Implantar técnicas de toma de decisiones mediante consenso.</li>
</ul>
<h3>Control: Quién juzga los resultados y mediante cuáles estándares?.</h3>
<p><span style="Verdana, Arial, Helvetica, sans-serif;">Algunas veces poner juicio a tareas que se vienen desenvolviendo suele ser dificil de decirlas por temor a hacer sentir menospreciado a quién lo hizo; pero sucede que esto suele ser fácil de controlarlo si se cumple con lo siguiente:</span></p>
<ul>
<li><span style="Verdana, Arial, Helvetica, sans-serif;">Establecer estándares de costo, programación y técnicos </span></li>
<li><span style="Verdana, Arial, Helvetica, sans-serif;">Planear los medios para evaluar el progreso del proyecto </span></li>
<li><span style="Verdana, Arial, Helvetica, sans-serif;">Definir un sistema de información para el proyecto </span></li>
<li><span style="Verdana, Arial, Helvetica, sans-serif;">Preparar las estrategias para revisión del proyecto </span></li>
<li><span style="Verdana, Arial, Helvetica, sans-serif;">Evaluar el progreso del proyecto </span></li>
</ul>
<p><span style="Verdana, Arial, Helvetica, sans-serif;">El ciclo de vida del proyecto se define por una serie de fases que componen la conceptualización, diseño, desarrollo y puesta en funcionamiento de los resultados del proyecto. Los pasos a seguir en la organización y planeación que lleven a tener un primer plan definido se describen enseguida (sigue leendo). </span></p>
<h2>Definir las metas del proyecto.</h2>
<p><span style="Verdana, Arial, Helvetica, sans-serif;">Para definir las metas, respóndase:<strong> qué planea ejecutar?.</strong> Tenga en cuenta el tamaño y tipo del proyecto y establezca metas globales reales. Investigue presupuestos y requisitos de tiempo y dinero y determine claramente el nivel de calidad requerido. Es necesario determinar la prioridad entre dinero y calidad como concepto &#8220;manejador&#8221; del proyecto. </span></p>
<p><span style="Verdana, Arial, Helvetica, sans-serif;">Establezca metas que puedan ser cuantificadas. Es muy difícil asegurar el rendimiento de un proyecto cuyas metas son vagas o no medibles. Y cuando estén definidas sus metas y prioridades, obtenga la aprobación del <em>staff </em>administrativo, si es necesario, e involúcrelo con el proyecto lo más temprano posible para que pueda proceder con seguridad, sabiendo que su trabajo está soportando objetivos ya acordados. </span></p>
<h2>Desarrollar la estrategia de administración.</h2>
<p><span style="Verdana, Arial, Helvetica, sans-serif;">Defina qué tipo de estrategia es la aplicable; por ejemplo, un pequeño proyecto puede ser manejado por una sola persona o un proyecto grande puede involucrar numerosos administradores, cada uno con una responsabilidad diferente definida para cada área o departamento.</span></p>
<p><span style="Verdana, Arial, Helvetica, sans-serif;">Como administrador general de un proyecto grande, su estrategia debe garantizar que los administradores individuales entienden y aceptan sus propias responsabilidades. </span></p>
<h2>Crear el plan del proyecto.</h2>
<p><span style="Verdana, Arial, Helvetica, sans-serif;">Con metas definidas y estrategia creada, está listo para definir el plan del proyecto. Prepare un <strong>esbozo general</strong> como primer paso en la organización del proyecto. Rompa el proyecto en varios niveles de detalle para proveer una buena estructura de desagregación del trabajo, con información detallada y resumida. </span></p>
<p><span style="Verdana, Arial, Helvetica, sans-serif;">Existen  varias formas de ejecutar un esbozo. Generalmente el tamaño y tipo del proyecto definirán el método apropiado. Si el proyecto es grande o único, puede usar el método <strong><em>&#8220;top-down&#8221;</em></strong> que comienza en tópicos generales y pasa paulatinamente a niveles de detalle. Si el proyecto es pequeño o parecido a alguno ya ejecutado con anterioridad, posiblemente se sienta más cómodo con el método <strong>detallado</strong>, que comienza con tareas a nivel de detalle y luego las une en conjuntos más grandes. </span></p>
<h2>Establecer la secuencia de tareas.</h2>
<p><span style="Verdana, Arial, Helvetica, sans-serif;">Tenga en cuenta la duración planeada para cada tarea y la secuencia en que debe realizarse, pues existen tareas que no pueden comenzar antes de que otras terminen. La especificación correcta de las duraciones y dependencias conforma la programación inicial del plan. </span></p>
<h2>Definir hitos o “milestones”.</h2>
<p><span style="Verdana, Arial, Helvetica, sans-serif;">Los<em> </em>“hitos”  -en inglés <em>milestones</em>-  son puntos de verificación del proyecto, fechas que no pueden ser movidas o puntos que deben cumplirse antes de continuar. Llegar a uno de ellos significa que todas las actividades anteriores a él se han cumplido y estamos listos para comenzar una nueva serie de actividades. Coloque <em>&#8220;hitos&#8221;</em> reales y con intervalos cortos, que son mas fáciles de alcanzar y motivan a los participantes en el proyecto. </span></p>
<h2>Asignar recursos.</h2>
<p><span style="Verdana, Arial, Helvetica, sans-serif;">Son recursos las personas, el equipo y, en general, cualquier elemento necesario para terminar el trabajo y cuya disponibilidad es limitada. Los elementos que no son limitados y que el proyecto consume se denominan insumos y hacen parte de su costo pero no tienen influencia en la duración del mismo. </span></p>
<p><span style="x-small;"><strong>LOS</strong> <strong>RECURSOS</strong> son los <strong>elementos</strong> utilizados para poder realizar la ejecución de cada una de las tareas; como por ejemplo: hardware, programas de base (sistemas operativos), programas de aplicación, discos de almacenamiento, energía, servicios, inversiones de capital, personal, información, dinero y tiempo.</span></p>
<p><span style="Verdana, Arial, Helvetica, sans-serif;">Asigne recursos a las tareas individualmente. Determine la disponibilidad actual de personal y el tiempo que cada uno puede<strong> </strong>dedicar a su proyecto. Evite en lo posible asignar actividades a personas que deben ejecutar otras simultáneamente; trate de asignar el tiempo de cada persona a una actividad específica. </span></p>
<p><span style="Verdana, Arial, Helvetica, sans-serif;">Haga los ajustes necesarios si encuentra que ha sobreasignado a personas o equipos. </span></p>
<h2>Estimar Costos.</h2>
<p><span style="Verdana, Arial, Helvetica, sans-serif;">El siguiente paso consiste en el cálculo de costos del proyecto, a partir de los costos de cada actividad. Cuando se planifica un proyecto se tienen que obtener estimaciones del esfuerzo humano requerido, de la duración cronológica del proyecto y del costo. Algunos métodos que pueden ayudarte en este punto son:</span></p>
<h3><span style="Verdana, Arial, Helvetica, sans-serif;">Líneas de Código y Puntos de Función. </span></h3>
<p><span style="Verdana, Arial, Helvetica, sans-serif;">Los datos de líneas de código (LDC) y los puntos de función (PF) se emplean de dos formas durante la estimación del proyecto de software: </span></p>
<ul>
<li><span style="Verdana, Arial, Helvetica, sans-serif;">Variables de estimación, utilizadas para calibrar cada elemento del software.</span></li>
<li><span style="Verdana, Arial, Helvetica, sans-serif;">Métricas de base, recogidas de anteriores proyectos utilizadas junto con las variables de estimación para desarrollar proyecciones de costo y esfuerzo. </span></li>
</ul>
<p><span style="Verdana, Arial, Helvetica, sans-serif;">Estas técnicas son diferentes pero tienen características comunes. El planificador del proyecto comienza con una declaración restringida del ámbito del software y, a partir de esa declaración, intenta descomponer el software en pequeñas subfunciones que pueden ser estimadas individualmente. Entonces, estima las LDC o PF (la variable de estimación) para cada subfunción. Luego, aplica las métricas básicas de productividad a la variable de estimación apropiada y deriva el costo y el esfuerzo para la subfunción. Combinando las estimaciones de las subfunciones se produce la estimación total para el proyecto entero. Difieren en el nivel de detalle que requiere la descomposición. </span></p>
<h3><span style="Verdana, Arial, Helvetica, sans-serif;">Técnicas Delfi. </span></h3>
<p><span style="Verdana, Arial, Helvetica, sans-serif;">Las técnicas delfi fueron desarrolladas en la corporación Rand en el año de 1948, con el fin de obtener el consenso de un grupo de expertos sin contar con los efectos negativos de las reuniones de grupos. La técnica puede adaptarse a la estimación de costos de la siguiente manera: </span></p>
<ul>
<li><span style="Verdana, Arial, Helvetica, sans-serif;">Un coordinador proporciona a cada experto la documentación con la definición del sistema y una papeleta para que escriba su estimación.</span></li>
<li><span style="Verdana, Arial, Helvetica, sans-serif;">Cada experto estudia la definición y determina su estimación en forma anónima; los expertos pueden consultar con el coordinador, pero no entre ellos. </span></li>
<li><span style="Verdana, Arial, Helvetica, sans-serif;">El coordinador prepara y distribuye un resumen de las estimaciones efectuadas, incluyendo cualquier razonamiento extraño efectuado por alguno de los expertos.</span></li>
<li><span style="Verdana, Arial, Helvetica, sans-serif;">Los expertos realizan una segunda ronda de estimaciones, otra vez anónimamente, utilizando los resultados de la estimación anterior. En los casos que una estimación difiera mucho de las demás, se podrá solicitar que también en forma anónima el experto justifique su estimación.</span></li>
<li><span style="Verdana, Arial, Helvetica, sans-serif;">El proceso se repite varias veces como se juzgue necesario, impidiendo una discusión grupal durante el proceso. El siguiente enfoque es una variación de la técnica Delfi tradicional que aumenta la comunicación conservando el anonimato.</span></li>
<li><span style="Verdana, Arial, Helvetica, sans-serif;">El coordinador proporciona a cada experto la documentación con la definición del sistema y una papeleta para que escriba su estimación.</span></li>
<li><span style="Verdana, Arial, Helvetica, sans-serif;">Cada experto estudia su definición, y el coordinador llama a una reunión del grupo con el fin de que los expertos puedan analizar los aspectos de la estimación con él y entre ellos.</span></li>
<li><span style="Verdana, Arial, Helvetica, sans-serif;">Los expertos terminan su estimación en forma anónima.</span></li>
<li><span style="Verdana, Arial, Helvetica, sans-serif;">El coordinador prepara un resumen de las estimaciones efectuadas sin incluir los razonamientos realizados por algunos de los expertos.</span></li>
<li><span style="Verdana, Arial, Helvetica, sans-serif;">El coordinador solicita una reunión del grupo para discutir los puntos donde las estimaciones varíen más.</span></li>
<li><span style="Verdana, Arial, Helvetica, sans-serif;">Los expertos efectúan una segunda ronda de estimaciones, otra vez en forma anónima. El proceso se repite tantas veces como se juzgue necesario. </span></li>
</ul>
<h3><span style="Verdana, Arial, Helvetica, sans-serif;">COCOMO. </span></h3>
<p><span style="Verdana, Arial, Helvetica, sans-serif;">El Modelo Constructivo de Costos (COnstructive COst MOdel) es una jerarquía de modelos de estimación para el software. Esta jerarquía está constituida por los siguientes modelos: </span></p>
<ul>
<li><span style="Verdana, Arial, Helvetica, sans-serif;">El modelo COCOMO básico es un modelo univariable estático que calcula el esfuerzo (y el costo) del desarrollo de software en función del tamaño del programa expresando en líneas de código (LDC) estimadas. </span></li>
<li><span style="Verdana, Arial, Helvetica, sans-serif;">El modelo COCOMO intermedio calcula el esfuerzo del desarrollo de software en función del tamaño del programa y de un conjunto de “conductores de costo”, que incluyen la evaluación subjetiva del producto, del hardware, del personal y de los atributos del proyecto.</span></li>
<li><span style="Verdana, Arial, Helvetica, sans-serif;">El modelo COCOMO avanzado incorpora todas las características de la versión intermedia y lleva a cabo una evaluación de impacto de los conductores de costo en cada fase (análisis, diseño, etc.) del proceso de ingeniería de software. </span></li>
</ul>
<p><span style="Verdana, Arial, Helvetica, sans-serif;">Los modelos COCOMO están definidos para tres tipos de proyecto de software.<strong> Modelo Orgánico: </strong>Proyectos de software relativamente pequeños y sencillos en los que trabajan pequeños equipos, con buena experiencia en la aplicación, sobre el conjunto de requisitos poco rígidos (por ejemplo, un programa de análisis termal desarrollado para un grupo calórico). <strong>Modelo Semiacoplado:</strong> Proyectos de software intermedios (en tamaño y complejidad) en los que los equipos, con variados niveles de experiencia, deben satisfacer requisitos poco o medio rígidos (por ejemplo, un sistema de procesamiento de transacciones con requisitos fijos para un hardware de terminal o un software de gestión de base de datos). <strong>Modelo Empotrado:</strong> Proyectos de software que deben ser desarrollados en un conjunto de hardware, software y restricciones operativas muy restringidas (por ejemplo, software de control de navegación para un avión). </span></p>
<p><span style="Verdana, Arial, Helvetica, sans-serif;">Las ecuaciones del modelo COCOMO básico tienen la siguiente forma: E = ab (KLDC) exp (bb) D = cb (E) exp (db) donde E es el esfuerzo aplicado en personas-mes, D es el tiempo de desarrollo en meses cronológicos y KLDC es el número estimado de Líneas de Código distribuídas (en miles) para el proyecto. </span></p>
<p><span style="Verdana, Arial, Helvetica, sans-serif;">Las ecuaciones del modelo COCOMO intermedio toma la forma: E = ai (KLDC) exp (bi) x FAE donde E es el esfuerzo aplicado en personas-mes, KLDC es el número estimado de Líneas de Código distribuídas para el proyecto.</span></p>
<p><span style="Verdana, Arial, Helvetica, sans-serif;">Se han desarrollado varias técnicas de estimación para el desarrollo de software como establecer de antemano el ámbito del proyecto, usar las métricas del software (mediciones del pasado) como base para la realización de estimaciones y desglosar el proyecto en partes mas pequeñas que se estiman individualmente. Esto ayuda al programador, ya que le permite dedicar más tiempo a otras partes del proyecto.  En resumen el director del Proyecto de Software tiene que estimar tres cosas antes de que comience el proyecto: <strong>cuanto durara, cuanto esfuerzo requerirá y cuanta gente estará implicada</strong>. Además el director debe predecir los recursos de hardware y software que va a requerir y el riesgo implicado. La estimación del proyecto de software nunca será una ciencia exacta, pero la combinación de buenos datos históricos y técnicas puede mejorar la precisión de la estimación. </span></p>
<h2><span style="Arial, Helvetica, sans-serif;">Revisar el plan</span></h2>
<p><span style="Verdana, Arial, Helvetica, sans-serif;">El paso final consiste en revisar el plan, buscando puntos débiles y áreas con posibles problemas y determinando las actividades críticas, que al final son las que controlarán el desarrollo del proyecto.</span></p>
<p><span style="Verdana, Arial, Helvetica, sans-serif;">Para estos procesos vamos a utilizar herramientas de software que se encargarán del trabajo manual y dejarán al gerente su valioso tiempo disponible para la toma de decisiones soportadas en información confiable. </span></p>
<h1>En conclusión</h1>
<p>El seguimiento de estas mejores prácticas no puede garantizarle el éxito de su proyecto pero le dará una mejor chance de éxito. En cambio, el descuido de estas prácticas muy probablemente llevará su proyecto al fracaso.</p>
<p><span style="x-small;">Creo importante traer el pensamiento de Deming, quien señala y remarca muy claramente, al presentar su teoría de Calidad Total, </span></p>
<blockquote><p><span style="x-small;">que el administrador de un proyecto al planificar las actividades, debe tener presente que los mejores esfuerzos constituyen un elemento esencial; pero desgraciadamente, si estos esfuerzos se toman aisladamente sin una debida orientación basada en principios administrativos, éstos esfuerzos pueden causar profundos daños.</span></p></blockquote>
<p><span style="x-small;">La necesidad de la consistencia en los esfuerzos supone que si cada uno sabe lo que tiene que hacer y, que si cada uno hiciese lo mejor que puede, el resultado sería la dispersión del conocimiento y de los esfuerzos; por lo tanto, no hay nada que substituya al trabajo en equipo y a los buenos líderes, para alcanzar una consistencia entre los esfuerzos y el conocimiento necesario.</span></p>
<p><span style="x-small;">Algo importante a tener siempre presente es que: si el administrador realiza un buen trabajo en la gestión del proyecto, su éxito podrá ser visto y verificado por los demás; en caso contrario, naturalmente, el fracaso también estará a la vista de todo el mundo. La responsabilidad es muy alta: alcanzar el objetivo o no pero la oportunidad de &#8220;demostrar la capacidad profesional&#8221;, es de las que no pueden dejarse pasar por alto.</span></p>
<p><span style="x-small;">Los administradores <strong>eficaces</strong> de proyectos, son los que logran que el trabajo se ejecute a <strong>tiempo</strong>, dentro del <strong>presupuesto</strong>, y conforme a las <strong>normas de calidad</strong> especificadas.</span></p>
<h1><span style="x-small;">Bibliografía Consultada</span></h1>
<p><span style="x-small;"><a href="http://www.liderdeproyecto.com/manual/estimacion_de_esfuerzo_del_proyecto.html" target="_blank">Manual de Administración de Proyectos</a><br />
</span><span style="x-small;"><a href="http://www.mujeresdeempresa.com/management/060501-gestion-de-proyectos-mejores-practicas.shtml" target="_blank">Gestión de Proyectos: las 7 mejores prácticas</a><br />
<span style="x-small;"><a href="http://www.alipso.com/impresion/impresion.php?ruta=http://www.alipso.com/monografias/estimacosto/" target="_blank">Monografía: Técnicas de estimación de costos y esfuerzos</a></span><br />
<a href="http://alarcos.inf-cr.uclm.es/doc/pfc/planep/tecnica.htm" target="_blank">Escuela Superior de Informática Universidad de Castilla-La Mancha</a></span><span style="x-small;"><br />
<a href="http://www.getec.etsit.upm.es/articulos/gproyectos/art4.htm" target="_blank">Planificación de Proyectos de Software</a> Autor: Pedro Concepción<br />
<a href="http://www.inf.udec.cl/~mvaras/papers/arica/arica.htm" target="_blank">Estimación del Esfuerzo de Desarrollo</a> </span><span style="x-small;">Autor: Marcela P. Varas C. (Depto. Ing. Informática y Cs. de la Computación Universidad de Concepción)</span></p>
<p class="MsoNormal" style="justify;">
]]></content:encoded>
			<wfw:commentRss>http://www.eliliturgitano.es/blog/?feed=rss2&amp;p=36</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Los Proyectos: ¿Qué son?</title>
		<link>http://www.eliliturgitano.es/blog/?p=24</link>
		<comments>http://www.eliliturgitano.es/blog/?p=24#comments</comments>
		<pubDate>Mon, 01 Sep 2008 05:54:41 +0000</pubDate>
		<dc:creator>Jos_173</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[como hacer]]></category>
		<category><![CDATA[etapas]]></category>
		<category><![CDATA[Investigación]]></category>
		<category><![CDATA[Proyectos]]></category>

		<guid isPermaLink="false">http://www.eliliturgitano.es/blog/?p=24</guid>
		<description><![CDATA[En un principio podemos decir que un proyecto es una tarea muy dificil a la hora de querer realizarlo; es más, en el sólo hecho de pensar gestionar un proyecto ya nos encontramos con pesadas tareas que requerimos para poder cumplirlo. Talvez pienses que este será el primer proyecto que verás gestionar pero estás equivocado [...]]]></description>
			<content:encoded><![CDATA[<p>En un principio podemos decir que un proyecto es una tarea muy dificil a la hora de querer realizarlo; es más, en el sólo hecho de pensar gestionar un proyecto ya nos encontramos con pesadas tareas que requerimos para poder cumplirlo. Talvez pienses que este será el primer proyecto que verás gestionar pero estás equivocado y te lo demostraremos con ejemplos pués como objetivo tenemos emprender un proyecto sencillo y mostrarte la sencillez de esto sea cual sea tu proyecto.</p>
<p>El hecho de gestionar proyectos es una labor que cada humano lo viene desarrollando casi de manera constante y cotidiana, en un modo talvez no metódico pero un proyecto no solo es crear aplicaciones, emprender un negocio, iniciar una empresa, hacer realidad una idea grande o algo magnifico que querramos hacer; por lo tanto los proyectos venimos creándolo cada día de nuestra existencia pues un proyecto aunque no lo imagines es incluso ordenar tu habitación. En esta entrega mostraremos un trabajo de árdua investigación acerca de lo que es un proyecto, la manera en que se debe de realizarlo y también; las reglas, leyes y alguna que otra lista metódica de los pasos a seguir para documentar un proyecto, conoceremos ciertos software&#8217;s creados con la finalidad de ayudar en la labor de gestión de proyectos y en un trabajo final documentaremos el proyecto de la calculadora (escrito en la sección programación de este blog) a manera de aplicar todo lo aprendido, prepárate que este es solo nuestro inicio. Sé bienvenido a esta presentación y que todo este estudio te sea de ayuda a la hora de crear tu propio proyecto.</p>
<h2>¿Qué es un proyecto?</h2>
<p>En la web podremos encontrar infinidad de definiciones según cada autor, leamos algunos solamente de aquellos que nos dicen lo que es un proyecto:</p>
<ul>
<li>“Un proyecto es una empresa planificada que consiste en un conjunto de actividades que se encuentran interrelacionadas y coordinadas; la razón de un proyecto es alcanzar objetivos específicos dentro de los límites que imponen un presupuesto y un lapso de tiempo previamente definidos.” (Wikipedia)</li>
<li>“Un proyecto es esencialmente un conjunto de actividades interrelacionadas, con un inicio y una finalización definida, que utiliza recursos limitados para lograr un objetivo deseado.”</li>
<li>“Es un esfuerzo temporal para crear un producto o servicio único”. (PMBOK)</li>
<li>“Proyecto es la combinación de recursos humanos y no humanos reunidos en una organización temporal para conseguir un propósito determinado”. (David I. Cleland y William R. King).</li>
<li>&#8220;Un proyecto es esencialmente un conjunto de actividades interrelacionadas, con un inicio y una finalización definida, que utiliza recursos limitados para lograr un objetivo deseado.&#8221;</li>
<li>“Es&#8230;&#8230; materializar ideas para satisfacer necesidades”.</li>
</ul>
<p>Interesantes definiciones, ¿verdad?, siempre dije que “la web es un mundo de ideas y que solo nos toca tomar la mejor”; pués todas estas definiciones son aplicables a diferentes tipos de proyectos, como ser de tipo: construcción, empresarial, comercial, etc, etc. Pero ahora: <em>¿cómo definir que es un proyecto desde el punto de vista informático?</em>. En una definición personal (claro que respeto la suya) decimos que <strong>un proyecto no es más que una actividad organizada para hacer realidad una idea cualquiera fuera esta cuidando siempre en utilizar recursos adecuadamente</strong>.</p>
<h2>¿Cómo hacer un proyecto?</h2>
<p>En esta parte pondremos algunas sugerencias de como es que se debe de crear un proyecto, además debo decirte que no hay reglas a cumplir para que tu proyecto sea todo un éxito. El éxito de tu proyecto está en función del esfuerzo que le pongas y el tiempo que le dediques. Nunca hagas algo similar, siempre sé original pues ningún proyecto será igual o parecido a otro, &#8220;cada proyecto es un mundo diferente&#8221; (JOS).</p>
<p>Un aspecto fundamental en todo proyecto es el orden en el cual se realizan las actividades. Y para determinar la secuencia lógica de las actividades se debe establecer el método, el tiempo y el costo de cada operación. La realización de todas las actividades y tareas identificadas es, a la vez, requisito necesario y suficiente para lograr el resultado final que el proyecto persigue. Una de las primeras y más importantes misiones del jefe de proyecto es la identificación y descripción de las actividades que es necesario acometer y desarrollar para llegar al resultado adecuado.</p>
<p>Lo primero es tener una idea fundamentada de que es lo que se quiere hacer; sin importar el como, el requisito único es que todos los miembros de la organización que participarán en el proyecto (ya sean diseñadores, programadores, sonidistas, artistas, etc) todos deben de captar el enfoque global de que es lo que se quiere hacer. Una idea consiste en establecer la necesidad u oportunidad a partir de la cual es posible iniciar el diseño del proyecto, la idea de proyecto puede iniciarse debido a alguna de las siguientes razones:</p>
<ul>
<li>Porque existen necesidades insatisfechas actuales o se prevée que existirán en el futuro si no se toma medidas al respecto.</li>
<li>Porque existen potencialidades o recursos subaprovechados que pueden optimizarse y mejorar las condiciones actuales.</li>
<li>Porque es necesario complementar o reforzar otras actividades o proyectos que se producen en el mismo lugar y con los mismos involucrados.</li>
</ul>
<p>Generalmente dentro de un proyecto podemos encontrar diferentes características:</p>
<ul>
<li>Los proyectos están asociados a esfuerzos de cambio.</li>
<li>Proyecto = “proceso” para obtener un resultado.</li>
<li>Los proyectos están compuestos de actividades.</li>
<li>Involucran múltiples recursos.</li>
<li>En general son únicos, no repetitivos.</li>
<li>Involucran incertidumbre y riesgo</li>
<li>Ciclo de vida definido, donde el plazo es casi siempre una meta fundamental.</li>
<li>Interactúan con otras actividades de la empresa y el entorno.</li>
<li>Son de diferentes tamaños -&gt; diferentes enfoques y esfuerzos.</li>
<li>Pueden representar un desafío tecnológico</li>
</ul>
<h2>Etapas de un Proyecto</h2>
<p><strong>Fase de planificación.</strong> Se trata de establecer cómo el equipo de trabajo deberá satisfacer las restricciones de prestaciones, planificación temporal y coste. Una planificación detallada da consistencia al proyecto y evita sorpresas que nunca son bien recibidas.</p>
<p><strong>Fase de ejecución.</strong> Representa el conjunto de tareas y actividades que suponen la realización propiamente dicha del proyecto, la ejecución de la obra de que se trate. Responde, ante todo, a las características técnicas específicas de cada tipo de proyecto y supone poner en juego y gestionar los recursos en la forma adecuada para desarrollar la obra en cuestión. Cada tipo de proyecto responde en este punto a su tecnología propia, que es generalmente bien conocida por los técnicos en la materia.</p>
<p><strong>Fase de entrega o puesta en marcha.</strong> Como ya se ha dicho, todo proyecto está destinado a finalizarse en un plazo predeterminado, culminando en la entrega de la obra al cliente o la puesta en marcha del sistema desarrollado, comprobando que funciona adecuadamente y responde a las especificaciones en su momento aprobadas. Esta fase es también muy importante no sólo por representar la culminación de la operación sino por las dificultades que suele presentar en la práctica, alargándose excesivamente y provocando retrasos y costes imprevistos.</p>
<p>A estas tres grandes etapas es conveniente añadir otras dos que, si bien pueden incluirse en las ya mencionadas, es preferible nombrarlas de forma independiente ya que definen un conjunto de actividades que resultan básicas para el desarrollo del proyecto:</p>
<p><strong>Fase de iniciación. </strong>Definición de los objetivos del proyecto y de los recursos necesarios para su ejecución. Las características del proyecto implican la necesidad de una fase o etapa previa destinada a la preparación del mismo, fase que tiene una gran trascendencia para la buena marcha del proyecto y que deberá ser especialmente cuidada. Una gran parte del éxito o el fracaso del mismo se fragua principalmente en estas fases preparatorias que, junto con una buena etapa de planificación, algunas personas tienden a menospreciar, deseosas por querer ver resultados excesivamente pronto.</p>
<p><strong>Fase de control.</strong> Monitorización del trabajo realizado analizando cómo el progreso difiere de lo planificado e iniciando las acciones correctivas que sean necesarias. Incluye también el liderazgo, proporcionando directrices a los recursos humanos, subordinados (incluso subcontratados) para que hagan su trabajo de forma efectiva y a tiempo.</p>
<h2>Planeación de un proyecto <span style="x-small;">(SLRT)</span></h2>
<p><span style="x-small;">Según Rusell Ackoff, la esencia de la sabiduría es la preocupación por el futuro; pero no es, la misma preocupación que tiene el adivino por el futuro, pues él solamente intenta preverlo; el sabio intenta controlarlo.</span></p>
<p><span style="x-small;">La planificación consiste en diseñar un futuro deseable y seleccionar o crear formas de lograrlo, hasta donde sea posible. </span><span style="x-small;">Por lo tanto, al planificar se construye la <strong>secuencia</strong> de tareas con la <strong>lógica</strong> necesaria, y la asignación de <strong>recursos</strong> necesarios para alcanzar el objetivo del proyecto en un <strong>tiempo</strong> óptimo (SRLT). </span></p>
<p><span style="x-small;">La disponibilidad de recursos, hace que la secuencia de tareas pueda variar en el tiempo; dependiendo de los recursos con que se dispongan. Por lo tanto, al momento de planificar, hay que considerar, las tareas y los recursos; con el mismo grado de importancia.</span></p>
<h3>Métodos de planificación temporal de tareas</h3>
<p><span style="x-small;">La planificación temporal de un proyecto de software, no difiere mucho de la de cualquier otro esfuerzo de desarrollo multitarea. Además, se pueden utilizar las técnicas y herramientas generales de planificación temporal de proyectos para el desarrollo de software, con pequeñas modificaciones; entre ellas podemos citar a la técnica de Evaluación y Revisión de Programas, el método del Camino Crítico y al diagrama de Gantt.</span></p>
<p><span style="x-small;">La <strong>Técnica de Evaluación y Revisión de Programas </strong>(Program Evaluation and Review Technique-<strong>PERT</strong>) y el método del <strong>Camino Crítico</strong> (Critical Path Method-<strong>CPM</strong>) son dos </span>métodos de planificación temporal<span style="x-small;"> de proyectos que pueden aplicarse al desarrollo de proyectos informático. Ambas técnicas desarrollan una <strong>descripción de la red de tareas </strong>del proyecto, es decir, una representación </span>gráfica<span style="x-small;"><strong> <span style="x-small;"><span style="x-small;"><strong></strong><strong></strong></span></span></strong></span>o<span style="x-small;"><strong> </strong></span>tabular<span style="x-small;"> de las tareas que deben realizarse desde el principio hasta el final del proyecto.</span></p>
<p><span style="x-small;">En el método PERT/CPM se coordinan todos los elementos de un proyecto en un plan maestro, mediante la creación de un modelo lógico, para lograr el mejor tiempo y con el mínimo costo. </span><span style="x-small;">La red se define desarrollando una lista de todas las tareas asociadas con el proyecto específico, y una lista de secuenciamietos, que indica en qué orden deben realizarse las tareas.</span></p>
<p><span style="x-small;">Se estiman luego los tiempos correspondientes; y para ello se debe:</span></p>
<p><span style="x-small;">1.- establecer con la aplicación de modelos estadísticos las estimaciones de tiempo mas probables para cada una de las tareas;</span></p>
<p><span style="x-small;">2.- luego se calculan los límites de tiempo que definen una amplitud temporal para cada tarea (teniendo en cuenta los recursos disponibles), y por último;</span></p>
<p><span style="x-small;">3.-se halla el camino crítico, o sea el conjunto de actividades, que determina la duración total del proyecto y que sus atrasos o adelantos originarán atrasos o adelantos de iguales unidades de tiempo en la duración total del proyecto.</span></p>
<p><span style="x-small;">Una vez establecido el camino crítico, se lo utiliza para: considerar alternativas, elaborar la lógica del plan y precisar las estimaciones de tiempo de las actividades críticas, así como la influencia de limitaciones y las posibles soluciones de situaciones conflictivas</span></p>
<div id="attachment_41" class="wp-caption alignnone" style="width: 403px"><a href="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/09/image362.gif"><img class="size-medium wp-image-41" src="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/09/image362-300x206.gif" alt="Plan Estratégico Informático" width="393" height="252" /></a><p class="wp-caption-text">Fuente: Plan Estratégico Informático</p></div>
<p><span style="x-small;">Otra herramienta de diseño es el <strong>Diagrama de Gantt;</strong> ésta es una representación gráfica cronológica, de las etapas componentes de un proyecto. Este gráfico se sustenta en una estructura de barras horizontales, en las cuales la longitud es directamente proporcional al tiempo requerido para su ejecución. El objetivo de este gráfico es el de planear un proyecto y verificar el cumplimiento.</span></p>
<p><span style="x-small;">A los efectos de su confección, se requiere determinar.</span></p>
<blockquote><p><span style="x-small;">a) Las tareas a desarrollar<br />
</span><span style="x-small;">b) La relación o dependencia entre las tareas<br />
</span><span style="x-small;">c) El tiempo Planeado para la ejecución de cada tarea</span></p></blockquote>
<div class="mceTemp">
<dl id="attachment_42" class="wp-caption alignnone" style="width: 473px;">
<dt class="wp-caption-dt"> </dt>
<h3><a href="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/09/diagramadegantt.gif"><img class="size-medium wp-image-42" src="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/09/diagramadegantt-300x204.gif" alt="Plan Estratégico Informático" width="463" height="297" /></a></h3>
<dd class="wp-caption-dd">Fuente: Plan Estratégico Informático</dd>
</dl>
</div>
<h3>Método para la planificación de Recursos</h3>
<p><span style="x-small;">La planificación de recursos pretende determinar qué recursos serán necesarios, cuándo, cómo y dónde se obtendrán los que no están disponibles y en qué forma serán generados o adquiridos.</span></p>
<p><span style="x-small;">Se debe tener en cuenta cinco tipos de recursos:</span></p>
<blockquote><p><span style="medium;">1. </span><span style="x-small;">Los insumos (materiales, piezas, energía y servicios);<br />
2.</span><span style="medium;"> </span><span style="x-small;">Las instalaciones y equipo (inversiones de capital);<br />
3. </span><span style="x-small;">El personal;<br />
4. </span><span style="x-small;">La información;<br />
5. </span><span style="x-small;">El dinero.</span></p></blockquote>
<p><span style="x-small;">La herramienta principal para la planificación de recursos es el presupuesto; y éste se compone de la asignación de responsabilidades para generar y utilizar el dinero y del calendario para hacerlo.</span></p>
<h3>Planificación Financiera</h3>
<p><span style="x-small;">Vimos que un proyecto involucra tareas y recursos; por lo tanto, en la planificación son tan importantes las tareas como los recursos disponibles. </span><span style="x-small;">Al momento de asignar los recursos, debe tener en cuenta algunas consideraciones como: la simultaneidad de tareas para un mismo recurso, la importancia de cada tarea, si es una actividad crítica o no. </span><span style="x-small;">Lo importante es que una vez que fueron identificados los recursos para cada tarea, se deben realizar los siguientes <strong>análisis</strong>:</span></p>
<blockquote>
<ul>
<li><span style="x-small;"><strong>De Costo;</strong></span></li>
<li><span style="x-small;"><strong>De Beneficio;</strong></span></li>
<li><span style="x-small;"><strong>De Riesgo;</strong></span></li>
<li><span style="x-small;"><strong>De Sensibilidad</strong>.</span></li>
</ul>
</blockquote>
<p><span style="x-small;">Es importante considerar que la utilidad de los modelos financieros, aumenta cuando se los computariza. Esto facilitará una exploración financiera rápida, y de una gran cantidad de medios alternativos y/o supuestos sobre el ambiente. A través de los análisis de riesgo y sensibilidad. dichas exploraciones alcanzarán un gran valor en el proceso de planificación</span></p>
<p><span style="x-small;">Entre tantas condiciones comerciales, en la que se puede estimar la sensibilidad, podemos citar:</span></p>
<ul>
<li><span style="x-small;">La tasa de interés bancaria;</span></li>
<li><span style="x-small;">El costo del dinero accionario;</span></li>
<li><span style="x-small;">El índice de inflación.</span></li>
</ul>
<h2><span style="Arial;">Consideraciones en un Plan Estratégico Informático</span></h2>
<p><span style="x-small;">Bien, nuevamente concentrando nuestra atención en los proyectos informáticos. Tenemos que en el proceso de planeamiento, de un sistema de información, se debe determinar: </span></p>
<blockquote>
<ul>
<li><span style="x-small;">La situación actual </span></li>
<li><span style="x-small;">La situación deseada </span><span style="x-small;"> </span></li>
<li><span style="x-small;">Las distintas alternativas </span><span style="x-small;"> </span></li>
</ul>
</blockquote>
<p><span style="x-small;">También se deben considerar, los <strong>recursos</strong> necesarios específicos de la <strong>Tecnología de la Información:</strong></span></p>
<ul>
<li><span style="x-small;"><strong>Físicos</strong></span>
<ul>
<li><span style="x-small;">Sistema Central (Microprocesador, Memoria principal)</span></li>
<li><span style="x-small;">Periféricos (Unidades de entrada, Unidades de salida; Unidades de entrada/salida)</span></li>
<li><span style="x-small;">Comunicaciones (Modem, Repetidores, Hub)</span></li>
</ul>
</li>
<li><span style="x-small;"><strong>lógicos</strong></span>
<ul>
<li><span style="x-small;">Estructuras de almacenamiento (Base de datos relacional, orientada a objetos)</span></li>
<li><span style="x-small;">Monitores de comunicaciones</span></li>
<li><span style="x-small;">Lenguajes ( Pascal, Cobol, C++, SQL)</span></li>
<li><span style="x-small;">Métodos de desarrollo ( Ciclo de Vida, Prototipo, Espiral)</span></li>
<li><span style="x-small;">Control de seguridad y calidad</span></li>
</ul>
</li>
<li><span style="x-small;"><strong>humanos</strong></span>
<ul>
<li><span style="x-small;">Selección</span></li>
<li><span style="x-small;">Formación</span></li>
<li><span style="x-small;">Incentivos</span></li>
</ul>
</li>
</ul>
<h1>Conclusión:</h1>
<p><span style="x-small;">El fin primario de desarrollar un proyecto debe ser producir un <strong>programa calendario</strong> en el cual los <strong>recursos</strong>, siempre<strong> </strong>limitados, se asignen a cada una de las <strong>actividades</strong> en forma económicamente óptima. </span></p>
<p><span style="x-small;">Pueden existir algunas limitaciones al planear un proyecto ya sean <strong>internas</strong>, por ejemplo: computadoras disponibles, capacidad del personal, disposiciones presupuestarias, o bien <strong>externas,</strong> como ser: fechas de entrega de cualquier tipo de recursos, factores climáticos, aprobaciones de organismos oficiales. En ambos casos las limitaciones deben tenerse particularmente en cuenta al estimar los tiempos de cada actividad.</span></p>
<p><span style="x-small;">En cuanto al objetivo del proyecto, este puede ser sencillo y no demandar ni muchas tareas ni demasiados recursos; o por el contrario, puede ser complejo y exigir múltiples actividades y una gran cantidad de recursos para poder alcanzarlo.</span></p>
<p><span style="x-small;">Pero independientemente de su complejidad, característicamente todo proyecto reúne la mayoría de los siguientes criterios<strong>:</strong></span></p>
<ol>
<li><span style="x-small;">Tener un principio y un fin</span></li>
<li><span style="x-small;">Tener un calendario definido de ejecución</span></li>
<li><span style="x-small;">Plantearse de una sola vez</span></li>
<li><span style="x-small;">Constar de una sucesión de actividades o de fases</span></li>
<li><span style="x-small;">Agrupar personas en función de las necesidades específicas de cada actividad</span></li>
<li><span style="x-small;">Contar con los recursos necesarios para desenvolver las actividades</span></li>
</ol>
<p>Existen ciertos software&#8217;s que nos ayudan a crear y gestionar un proyecto, en entradas posteriores hablaremos acerca de ellos que por el momento al considerar un tanto extensa este trabajo lo dejamos para la siguiente presentación. Lo que hoy aprendimos es muy importante, recuerda no olvidarlo.</p>
<h1>Bibliografía y fuentes consultadas</h1>
<p><a href="http://es.wikipedia.org/wiki/PERT" target="_blank">Técnicas de revisión y evaluación de programas</a><br />
<a href="http://es.wikipedia.org/wiki/Diagrama_de_Gantt">Diagrama de Gantt</a><br />
<a href="http://www.getec.etsit.upm.es/docencia/gproyectos/planificacion/etapas.htm">Etapas de un proyecto</a><br />
<a href="http://www.getec.etsit.upm.es/docencia/gproyectos/planificacion/actividades.htm" target="_blank">Identificación de actividades</a><br />
<a href="http://es.wikipedia.org/wiki/Proyecto" target="_blank">Proyecto</a> (Biblioteca Wikipedia)<br />
<a href="http://www.cyta.com.ar/biblioteca/bddoc/bdlibros/proyectoinformatico/libro/c1/c1.htm" target="_blank">Proyecto Informático una Metodología Simplificada </a> Autor Périssé, Marcelo Claudio<br />
<a href="http://fing.uncu.edu.ar/catedras/archivos/admproyope/tema1_06.pdf" target="_blank">Administración de Proyectos y Operaciones</a> Universidad Nacional de Cuyo (Argentina)<br />
<a href="http://sistemas.itlp.edu.mx/tutoriales/analisis/index.htm" target="_blank">Análisis y Diseño de Sistemas</a> Instituto Tecnológico de La Paz (Bolivia)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eliliturgitano.es/blog/?feed=rss2&amp;p=24</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Calculadora para tu Móvil</title>
		<link>http://www.eliliturgitano.es/blog/?p=6</link>
		<comments>http://www.eliliturgitano.es/blog/?p=6#comments</comments>
		<pubDate>Sat, 23 Aug 2008 18:50:55 +0000</pubDate>
		<dc:creator>Jos_173</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[calculadora]]></category>
		<category><![CDATA[J2ME]]></category>
		<category><![CDATA[móvil]]></category>
		<category><![CDATA[programa]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://www.eliliturgitano.es/blog/?p=6</guid>
		<description><![CDATA[Iniciamos esta primera vez no sin antes saludarte y decirte que si lo que buscas es aprender junto a nosotros un poco acerca de lo que es la programación de aplicaciones para MOVIL, estás en el lugar indicado.
Antes de seguir revisa bién si tienes estos requisitos que son fundamentales y en cierto modo necesarios para [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/08/proj1.jpg"></a><a href="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/08/midletmedio3.jpg"></a><a href="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/08/midletfinal.jpg"></a>Iniciamos esta primera vez no sin antes saludarte y decirte que si lo que buscas es aprender junto a nosotros un poco acerca de lo que es la programación de aplicaciones para MOVIL, estás en el lugar indicado.</p>
<p>Antes de seguir revisa bién si tienes estos requisitos que son fundamentales y en cierto modo necesarios para que podamos continuar:</p>
<ul>
<li>Conocimiento aunque sea básica en la programación orientada a objetos (POO).</li>
<li>Contar con el entorno de desarrollo de netbeans de preferencia la versión 6.0 (<a href="http://www.netbeans.org">www.netbeans.org</a>) correctamente instalado.</li>
<li>Y lo que creo más importante&#8230; muchas ganas y deseos de aprender.</li>
</ul>
<p>Empecemos entonces; siempre dije que los programadores nos encargamos de hacer algunas tareas se vuelvan más sencillas para el humano o lo que es igual <strong><em> motivar a la humanidad a ser más floja</em></strong>, ahora me lo confirmo pues estos &#8220;señores&#8221;, los de netbeans, crearon ya en su entorno de desarrollo buenas utilidades para solucionar nuestro tedioso problema de escribir miles y miles de líneas de codigo (exagerando un poquito).  Y ahora nosotros haremos una calculadora que podrá ser implementada en tu movil: comodidad o tecnología, entiéndase como mejor se convenga.</p>
<p>Inicia netbeans y mientras carga vamos repasando algo de teoría que creo es útil lo sepas antes de seguir. Si esta es tu primera vez que crearás una aplicación para tu movil (una calculadora) te diré que lo que estás a punto de hacer es algo parecido a un applet pero de nombre MIDLET mira como lo describe el señor Alberto García Serrano (<a href="http://www.agserrano.com">www.agserrano.com</a>), él nos dice: &#8221;Si estas familiarizado con la programación de applets, conoces las diferencias que tiene con respecto a una aplicación Java normal. La primera es que un applet se ejecuta sobre un navegador web. Otra importante es que, a diferencia de un programa Java estándar, un applet no tiene un método main(), además, un applet tiene que ser una subclase de la clase Applet, e implementar unos métodos concretos (init, start, stop, destroy). En este sentido, un <strong>MIDlet es más parecido a un applet</strong> que a una aplicación Java estándar. Un MIDlet tiene que ejecutarse en un entorno muy concreto (un dispositivo con soporte J2ME), y tampoco cuenta con un método main(). Un MIDlet tiene que heredar de la clase MIDlet e implementar una serie de métodos de dicha clase.&#8221;</p>
<p>Te preguntarás ¿qué es J2ME?, natural, en mi momento también lo hice; ésto no es mas que las iniciales de Java 2 Micro Edition  (Java 2 edición micro); si eres de los que les gusta leer <a title="¿Qué es J2ME?" href="http://www.java.com/es/download/faq/whatis_j2me.xml" target="_blank">aqui te pongo un link</a> donde te empararás mas acerca de esto. Pero en resumidas palabras la plataforma J2ME es una familia de especificaciones que definen varias versiones minimizadas de la plataforma Java 2; estas versiones minimizadas pueden ser usadas para programar en dispositivos electrónicos; desde teléfonos móvil, en PDAs, hasta en tarjetas inteligentes, etc. Estos dispositivos presentan en común que no disponen de abundante memoria ni mucha potencia en el procesamiento, ni tampoco necesitan de todo el soporte que brinda el J2SE, (la plataforma estándar de Java usada en sistemas de escritorio y servidor) .  ¿Aún quieres conocer un poco de historia?, mirá que nos dicen en la ciberaula de java (dale <a title="Introducción al J2ME" href="http://java.ciberaula.com/articulo/introduccion_j2me/" target="_blank">click aqui</a>).</p>
<p><a href="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/08/proj1.jpg"><img class="size-medium wp-image-9 alignleft" src="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/08/proj1-300x206.jpg" alt="" width="222" height="129" /></a>Por el momento creo que esto es suficiente, vamos a crear ahora nuestra calculadora que por cierto en esta vez sólo hará operaciones básicas de suma, resta, multiplicación y división; en entradas posteriores te hablaré de algo más que esto. Vuelve a netbeans y crea un proyecto: File-&gt; New Project; desplázate hasta llegar a Mobility y al seleccionar esto verás al lado derecho MIDP Aplication, seleccionado y dale siguiente. Pon el nombre que desees al proyecto, yo lo llame &#8220;CalculadoraBasica&#8221; es opcional que deshabilites el &#8216;Create Hello Midlet&#8217; si no deseas que NetBeans cree automáticamente ya un midlet por nosotros, finaliza con esto la creación de un proyecto.</p>
<p>Empecemos a añadir un midlet, esto es, file-&gt;new file; ahi al vemos una ventana similar a la anterior (ver imagen arriba) y elejimos en la izquierda &#8217;MIDP&#8217; y a su derecha &#8216;Visual Midlet&#8217; presiona siguiente y dale un nombre al nuevo midlet que estamos creando, ten en cuenta que este nombre es el que verás en el equipo móvil antes de  ejecutar. En mi caso le puse &#8220;CalculadorSimple&#8221;, presiona finish y apreciarás una ventana similar a la que te muestro.</p>
<p><a href="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/08/midletinicio.jpg"><img class="alignright size-medium wp-image-11" src="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/08/midletinicio-300x180.jpg" alt="" width="300" height="206" /></a></p>
<p>A partir de eso podemos decir que en el lado derecho del IDE vemos varios componentes en la paleta: Displayables, Commands, Elements, Items, entre otros. En J2ME, un objeto Displayable contiene la información que va a ser visualizada, y son controlados por un objeto Display quien gestiona qué objeto Displayable se mostrará al usuario. En MIDP existen tres categorías de Displayable: <strong>Screen con estructura predefinida</strong>: Alert, List y TextBox, que encapsulan componentes de interfaz complejos y que las aplicaciones no pueden enriquecer con nuevos componentes. <strong>Screen genérica</strong>: Form, las aplicaciones pueden llenar este tipo de pantalla con texto, imágenes u otros componentes de interfaz de usuario. <strong>Canvas</strong>, las aplicaciones tienen control total sobre la aparición de componentes en el display y puede acceder directamente a eventos de bajo nivel. Por otro lado la clase Display proporciona los métodos que nos permiten controlar la visualización de los objetos Displayable y obtener propiedades del display (si soporta color o no, número de colores,&#8230;).</p>
<p>Agreguemos un &#8216;Displayable&#8217; en nuestro midlet para esto arrastra un form desde la paleta al midlet o bien dentro del midlet dale clic derecho dentro de new/add elije form.</p>
<p>En la parte superior del midlet veremos tres fichas: <strong>Source, Screen, Flow y Analizer</strong>; nos interesa las tres primeras ya que al habilitar Source estaremos viendo todo el código que va generando el IDE, dentro de Screen vemos el displayable en su totalidad; y pues Flow es el estado en que vemos en la imagen y no es nada mas que como una visualización &#8220;resumida&#8221; de los diferentes displayables que estamos haciendo uso, en nuestro caso es solo uno pues el primero que viste solo es el midlet propiamente dicho.</p>
<p><a href="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/08/midletmedio.jpg"><img class="size-medium wp-image-12 aligncenter" src="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/08/midletmedio-300x169.jpg" alt="" width="419" height="231" /></a></p>
<p>Ok, ahora que ya tenemos un form dentro nuestro primer midlet solo debemos arrastar con el mouse desde el midlet el comando Started hasta nuestro form, con esta acción estamos diciendo que en cuanto arranque el midlet debe de ir directamente al form. Dirígete al form agregado y añade un Comand ( clic derecho sobre form new/add -&gt; exitCommand) y realizamos la misma acción que inicimos con Started pero esta vez en sentido contrario, le diremos al form que cuando el usuario diga salir vaya directamente al inicio del midlet.  Por esta vez omitiré cuales son los estados en los que se encuentra un midlet pues al inicio dijimos que son como los applet&#8217;s pero no indicamos a detalles cuales son éstos pero ya vamos conociendo a dos estados (Started, Resumed).</p>
<p>Selecciona el form y habilita la pestaña Screen o simplemente dale doble clic a nuestro displayable form, te encontrarás con una pantalla similar a la que te muestro en la siguiente imagen.</p>
<p><a href="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/08/midletmedio2.jpg"><img class="alignleft size-medium wp-image-13" src="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/08/midletmedio2-300x209.jpg" alt="" width="300" height="209" /></a></p>
<p>Es aqui donde el usuario final vera y operará para poder realizar la tarea por la que iniciamos esta entrada.</p>
<p>A mi se me ocurre que el usuario solo tendrá dos operandos que nos dará como dato y nosotros le devolvemos en otro lado de la misma ventana el resultado de la operación, siempre y cuando no haya sucedido ningún error. Es asi que arrastraré tres componentes de la paleta que se llaman textField de la opción Items.</p>
<p>Ahora en la parte inferior de la paleta podemos ver las propiedades de cada componente según hayamos seleccionado, por ejemplo, cambiaré el título del form que el usuario verá; para esto me voy a su propiedad title y ahora procedo a cambiar algunas propiedades de los textfield como ser: label (titulo) y su propiedad Input Constraint pues le diremos que solo acepte números decimales y así controlamos posibles errores que como siempre el usuario aunque sea intencionalmente los comete (esto es: sumar dos letras, introducir nombres como dato, etc); hacemos todos los cambios a decimal de todos los textField excepto para el textField del resultado que lo dejaremos en su propiedad por defecto, ANY (ANY permite escribir cualquier dato sea número o letra). Ahora le pongamos opciones para que pueda hacer las 4 operaciones básicas pero de una en una, así que añádele 4 okCommand&#8217;s a nuestro form y cambiemosle a cada uno de ellos su propiedad label e Instance Name por Suma y sumaComando respectivamente; hazlo para cada comando que añadiste.</p>
<p>Si hiciste todo correctamente verás algo similar a la imagen que te muestro.</p>
<p><a href="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/08/midletmedio3.jpg"><img class="alignnone size-medium wp-image-14" src="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/08/midletmedio3-300x149.jpg" alt="" width="300" height="149" /></a></p>
<p>Hasta ahora lo único que hicimos fue arrastrar y soltar casi ni tocamos el teclado solo para algunas pequeñas cositas pero te preguntarás a que hora escribimos el código, pues veamos todo lo que ya hizo por nosotros el entorno de desarrollo. Habilita la ficha Source y revisa de arriba hacia abajo, ¿te parece mucho?.</p>
<p>Bien, ahora vámonos a escribir código nosotros mismos y programemos esos comandos que añadimos arriba. ¿Estas en Source verdad?, verás a tu izquierda todos los métodos implementados hasta el momento los que por su puesto los escribió NetBeans; existen ciertas líneas de código que no se nos permite modificar así que busquemos el método &#8216;<strong>commandAction(Command command, Displayable displayable)</strong>&#8216; dale doble click y te llevará directo al método que modificaremos para nuestra calculadora. Te muestro una imagen.</p>
<p><a href="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/08/midletmedio4.jpg"><img class="alignleft size-medium wp-image-15" src="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/08/midletmedio4-300x81.jpg" alt="" width="300" height="81" /></a></p>
<p>Antes que nada necesitamos dos variables en las cuales almacenar los operandos que nos de el usuario. Luego según sea el comando hacemos la operacion de suma, resta, multiplicación o división; no olvides programar también para cuando haya una división de controlar las excepciones pues puede que el usuario intente dividir entre cero (como generalmente sucede). Te muestro como quedo el mío:</p>
<p><em>double valor1= Double.parseDouble(this.textField.getString());<br />
double valor2= Double.parseDouble(this.textField1.getString());<br />
if (displayable == form) {</em></p>
<p><em>if (command == divideComando) {try { this.textField2.setString(String.valueOf(valor1/valor2)); }<br />
catch (Exception io){ this.textField2.setString(io.getMessage());}}<br />
else if (command == exitCommand) {exitMIDlet();}<br />
else if (command == multiplicaComando) {textField2.setString(String.valueOf(valor1*valor2));}<br />
else if (command == restaComando) {textField2.setString(String.valueOf(valor1-valor2));}<br />
else if (command == sumaComando) {textField2.setString(String.valueOf(valor1+valor2));}<br />
}</em></p>
<p><a href="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/08/midletfinal.jpg"><img class="size-medium wp-image-18 alignleft" src="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/08/midletfinal-132x300.jpg" alt="" width="238" height="416" /></a>Esto fué todo compila el código (F9) si hay errores corrígelo luego ejecuta (F6) que ya todo está listo!! xD. Verifica todos los eventos que escribiste, esto lo lograrás intentando escribir letras por ejemplo, o caracteres especiales u otros como dato; verás que esto está controlado, así como también la división entre cero.</p>
<p>Ya finalizando esta entrada resumidos los siguiente (para mal o para bien):</p>
<p>1.  NetBeans y su IDE nos facilita muchas tareas a la hora de hacer aplicaciones para celular.<br />
2. La programación sigue siendo un arte.<br />
3. Los programadores hacemos floja a la humanidad.</p>
<p>Espero haber sido lo más claro posible en esta primera entrada, cualquier consulta acerca del contenido del mismo remítela a <a href="mailto:joseluiszelaya@gameplayart.com">joseluiszelaya@gameplayart.com</a> o déjame tu comentario en este post, te espero en la próxima!.</p>
<p>Aqui tienes el proyecto completito pero mejor si lo haces vos mismo. Descargar proyecto desde aqui <a href="http://www.eliliturgitano.es/blog/wp-content/uploads/2008/08/calculadorabasica.zip">calculadorabasica</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.eliliturgitano.es/blog/?feed=rss2&amp;p=6</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
