<?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>JotaDeveloper &#187; desarrollo de software</title>
	<atom:link href="http://blog.jotadeveloper.com/tag/desarrollo-de-software/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.jotadeveloper.com</link>
	<description>Programacion y algo más</description>
	<lastBuildDate>Wed, 20 Jan 2010 09:28:05 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>IntelliJ IDEA se libera como Open Source</title>
		<link>http://blog.jotadeveloper.com/2009/10/20/intellij-idea-se-libera-como-open-source/</link>
		<comments>http://blog.jotadeveloper.com/2009/10/20/intellij-idea-se-libera-como-open-source/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 13:02:49 +0000</pubDate>
		<dc:creator>Jota</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[desarrollo de software]]></category>
		<category><![CDATA[ide]]></category>
		<category><![CDATA[itelliJidea]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://blog.jotadeveloper.com/?p=2958</guid>
		<description><![CDATA[



Los IDE&#8217;s Eclipse y NetBeans reciben un nuevo competidor open source, hace unos dias en el blog de JetBrains el IDE comercial IntelliJ IDEA será dividido en dos productos a partir de su próxima versión 9: una Community Edition, gratis y de código abierto amparado bajo la licencia de Apache 2.0, y una Ultimate Edition, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.jotadeveloper.com/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2Jsb2cuam90YWRldmVsb3Blci5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMDkvMTAvbG9nb19pbnRlbGxpal9pZGVhLmdpZg=="><img class="alignnone size-full wp-image-2959" title="logo_intellij_idea" src="http://blog.jotadeveloper.com/wp-content/uploads/2009/10/logo_intellij_idea.gif" alt="logo_intellij_idea" width="598" height="115" /></a></p>
<div>
<div id="main">
<div id="HOTWordsTxt">
<p><strong>Los IDE&#8217;s Eclipse y NetBeans reciben un nuevo competidor open source</strong>, hace unos dias en el blog de JetBrains el IDE comercial <a href="http://blog.jotadeveloper.com/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5qZXRicmFpbnMuY29tL2lkZWEv">IntelliJ IDEA</a> será dividido en dos productos a partir de su próxima versión 9: una <a href="http://blog.jotadeveloper.com/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5qZXRicmFpbnMub3JnL3BhZ2VzL3ZpZXdwYWdlLmFjdGlvbj9wYWdlSWQ9OTgzMjEx">Community Edition</a>, gratis y de código abierto amparado bajo la licencia de Apache 2.0, y una <strong>Ultimate Edition</strong>, que seguirá siendo cerrada y comercial.</p>
<p><strong>Community Edition:</strong> Libre, Open Source</p>
<ul>
<li>Soporta Java, Groovy, XML, and Regexp</li>
<li>JUnit and TestNG testing</li>
<li>Subversion and Git support</li>
<li>Ant and Maven build integration</li>
</ul>
<p><strong>Ultimate Edition:</strong> Licencia Personal $249, Licencia Comercial $599</p>
<ul>
<li>Supports Ruby, SQL, HTML, PHP, JavaScript, etc.</li>
<li>Task management, Structural search &amp; replace, and JavaScript debugger</li>
<li>Grails, Rails, Servlets 3.0, Hibernate frameworks available</li>
<li>Apache Tomcat, Glassfish v2 and v3 application server support</li>
<li>OSGi backing and PHP support.</li>
</ul>
<p>Para ver en detalle las diferencias entre las dos opciones <a href="http://blog.jotadeveloper.com/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5qZXRicmFpbnMuY29tL2lkZWEvbmV4dHZlcnNpb24vZWRpdGlvbnNfY29tcGFyaXNvbl9tYXRyaXguaHRtbD91dG1fc291cmNlPUlERUFfQkxPRyZhbXA7dXRtX21lZGlhPUFub3VuY2VtZW50JmFtcDt1dG1fY2FtcGFpZ249SURFQTlfQw==" target=\"_blank\">visiten la tabla de comparación</a>.</div>
</div>
</div>
 <img src="http://blog.jotadeveloper.com/wp-content/plugins/feed-statistics.php?view=1&post_id=2958" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.jotadeveloper.com/2009/10/20/intellij-idea-se-libera-como-open-source/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Los mejores trabajos en Estados Unidos</title>
		<link>http://blog.jotadeveloper.com/2009/10/20/los-mejores-trabajos-en-estados-unidos/</link>
		<comments>http://blog.jotadeveloper.com/2009/10/20/los-mejores-trabajos-en-estados-unidos/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 12:51:16 +0000</pubDate>
		<dc:creator>Jota</dc:creator>
				<category><![CDATA[Nicaragua]]></category>
		<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[desarrollo de software]]></category>
		<category><![CDATA[empleo]]></category>
		<category><![CDATA[ingenieria]]></category>
		<category><![CDATA[trabajo]]></category>

		<guid isPermaLink="false">http://blog.jotadeveloper.com/?p=2953</guid>
		<description><![CDATA[
Hoy me llamo mucho la atención esta noticia, donde CNN destaca una encuesta sobre los mejores trabajos en America,  y los trabajos relacionados con las tecnologías de información no han salido tan mal parados, vean.

Information Technology     Systems Engineer     1
Information Technology     Information Technology Project Manager     5
Information Technology     Computer/Network Security Consultant    [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.jotadeveloper.com/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2Jsb2cuam90YWRldmVsb3Blci5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMDkvMTAvQmVzdEpvYjMuSlBH"><img class="alignnone size-full wp-image-2952" title="BestJob3" src="http://blog.jotadeveloper.com/wp-content/uploads/2009/10/BestJob3.JPG" alt="BestJob3" width="480" height="320" /></a></p>
<p>Hoy me llamo mucho la atención esta noticia, donde <strong>CNN</strong> destaca una encuesta sobre <a href="http://blog.jotadeveloper.com/wp-content/plugins/feed-statistics.php?url=aHR0cDovL21vbmV5LmNubi5jb20vbWFnYXppbmVzL21vbmV5bWFnL2Jlc3Rqb2JzLzIwMDkvZnVsbF9saXN0L2luZGV4Lmh0bWw=" target=\"_blank\">los mejores trabajos en America</a>,  y<strong> los trabajos relacionados con las tecnologías de información no han salido tan mal parados</strong>, vean.</p>
<ul>
<li>Information Technology     Systems Engineer     1</li>
<li>Information Technology     Information Technology Project Manager     5</li>
<li>Information Technology     Computer/Network Security Consultant     8</li>
<li>Information Technology     Software Developer     12</li>
<li>Information Technology     Software Product Manager     16</li>
<li>Information Technology     Business Analyst, IT     17</li>
<li>Information Technology     Technical Writer     28</li>
</ul>
<p>La verdad que creo que en <strong>Nicaragua</strong> esta encuesta estaria encabezada por otras carreras, seguramente Derecho o Turismo. Pero las carreras de informática estan demostrando que <strong>si tu te preparas bien podrás tener acceso a muy buenos salarios o incluso trabajar como Freelance por tu cuenta</strong>, como he echo yo en algunas ocasiones.</p>
<p>Respecto <strong>al nivel de vida que ofrecen las carreras, la de desarrollador de sistemas</strong> está en 4º lugar.</p>
<ul>
<li>I1      Education/Training Consultant      35      60.0%</li>
<li>2     Physical Therapist     7     59.5%</li>
<li>3     College Professor     3     59.2%</li>
<li>4     Software Developer     12     59.0%</li>
</ul>
<p>Otro dato interesante es que el<strong> área de desarrollo de sistemas esta dando trabajo</strong></p>
<ul>
<li>1      Telecommunications Network Engineer      30      53%       21,000</li>
<li>2     Systems Engineer     1     45%     88,000</li>
<li>3     Personal Financial Advisor     N.A.     41%     20,000</li>
</ul>
<p>Lamentablemente <strong>no estamos entre los mejores pagados</strong>, estamos en un 8º lugar.</p>
<ul>
<li>1      Anesthesiologist      11      $292,000</li>
<li>2     Physician/Ob-Gyn1     22     $222,000</li>
<li>3     Psychiatrist     24     $177,000</li>
<li>4     Nurse Anesthetist     15     $157,000</li>
<li>5     Sales Director2     10     $140,000</li>
<li>6     Actuary     N.A.     $129,000</li>
<li>7     Finance Director     29     $121,000</li>
<li>8     Software Architect3     N.A.     $117,00</li>
</ul>
<h3><strong>¿Crees que esta lista refleja la condición laboral en Nicaragua para los Programadores?</strong></h3>
 <img src="http://blog.jotadeveloper.com/wp-content/plugins/feed-statistics.php?view=1&post_id=2953" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.jotadeveloper.com/2009/10/20/los-mejores-trabajos-en-estados-unidos/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Modelando Java con UML I : Clases</title>
		<link>http://blog.jotadeveloper.com/2008/10/08/modelando-java-con-uml-i-clases/</link>
		<comments>http://blog.jotadeveloper.com/2008/10/08/modelando-java-con-uml-i-clases/#comments</comments>
		<pubDate>Wed, 08 Oct 2008 04:05:48 +0000</pubDate>
		<dc:creator>Jota</dc:creator>
				<category><![CDATA[Articulos]]></category>
		<category><![CDATA[asociacion]]></category>
		<category><![CDATA[desarrollo de software]]></category>
		<category><![CDATA[fusion]]></category>
		<category><![CDATA[herencia]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[multiplicidad]]></category>
		<category><![CDATA[programadores]]></category>
		<category><![CDATA[reingenieria]]></category>
		<category><![CDATA[UML]]></category>

		<guid isPermaLink="false">http://blog.jotadeveloper.com/?p=621</guid>
		<description><![CDATA[A muchos programadores, sobretodo en Nicaragua, se lanzan al ruedo sin saber analizado tan si quiera lo mas minimo un sistema, web o de escritorio, mi experiencia es en el ambiente web, y como analista y programador, como a muchos les debe de pasar, las empresas nunca tienen tiempo para dedicarle al Análisis, luego vienen [...]]]></description>
			<content:encoded><![CDATA[<p>A muchos <strong>programadores</strong>, sobretodo en Nicaragua, se lanzan al ruedo sin saber analizado tan si quiera lo mas minimo un sistema, web o de escritorio, mi experiencia es en el ambiente web, y como analista y programador, como a muchos les debe de pasar, <strong>las empresas nunca tienen tiempo para dedicarle al Análisis</strong>, luego vienen los clavos, y la culpa, siempre del Programador.</p>
<p>La mejor forma de analizar es con la Metodología, UML es un buen lenguaje para analizar. Yo anteriormente presente una Metodología muy buena, que use en mi Monografia, Fusión.</p>
<ul>
<li><a href="http://blog.jotadeveloper.com/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2Jsb2cuam90YWRldmVsb3Blci5jb20vMjAwOC8wNC8yNC9tZXRvZG9sb2dpYV9kZV9mdXNpb25faV9wYXJ0ZS8=">Fusion Parte I</a></li>
<li><a href="http://blog.jotadeveloper.com/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2Jsb2cuam90YWRldmVsb3Blci5jb20vMjAwOC8wNS8xMi9tZXRvZG9sb2dpYV9kZV9mdXNpb25faWlfcGFydGUv">Fusion Parte II</a></li>
<li><a href="http://blog.jotadeveloper.com/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2Jsb2cuam90YWRldmVsb3Blci5jb20vMjAwOC8wNS8xNi9tZXRvZG9sb2dpYV9kZV9mdXNpb25faWlpX3BhcnRlLw==">Fusion Parte III</a></li>
</ul>
<p>Pero lo dificiles para muchos, sobre todo los que inician programando y luego usan UML como herramienta de documentacion (mala idea), se les hace dificil modelar.</p>
<p>Iniciare con algo sencillo.</p>
<h3>Herencia</h3>
<p>La <strong>herencia</strong>, simplemente se dibuja como una Generalización en UML y se representa en Java como un extends.</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">org.jp.developer.test</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Padre <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Hijo <span style="color: #000000; font-weight: bold;">extends</span> Padre <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></div></div>

<p><a href="http://blog.jotadeveloper.com/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2Jsb2cuam90YWRldmVsb3Blci5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMDgvMTAvaGVyZW5jaWEuanBn"><img class="size-medium wp-image-624 alignnone" title="herencia" src="http://blog.jotadeveloper.com/wp-content/uploads/2008/10/herencia.jpg" alt="" width="147" height="238" /></a></p>
<h3>Asociación</h3>
<p>Las <strong>asociaciones </strong>son instancias de clases dentro de otras clases, pero <strong>sin ninguna relacion directa</strong> o indirecta, solo estan relacionadas.</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">//Asociacion Directa</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Hijo <span style="color: #009900;">&#123;</span>
	Padre padre<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<h5>Asociacion Directa</h5>
<p>En este ejemplo, Padre e Hijo, Padre es el cabeza de familia, pero la Vida del Hijo no depende de la del padre, solo tiene una relacion familiar, por eso la relación directa, se dibuja una flecha de <strong>Hijo-&gt;Padre</strong>, pues Hijo es el que tiene relacion con el Padre. Si en el caso que Padre tuviese una instancia de Hijo la relacion seria Bidireccional y se dibuja como una linea recta.</p>
<p><a href="http://blog.jotadeveloper.com/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2Jsb2cuam90YWRldmVsb3Blci5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMDgvMTAvYXNvY2lhY2lvbi5qcGc="><img class="alignnone size-medium wp-image-630" title="asociacion" src="http://blog.jotadeveloper.com/wp-content/uploads/2008/10/asociacion-300x87.jpg" alt="" width="300" height="87" /></a></p>
<h5><a href="http://blog.jotadeveloper.com/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2Jsb2cuam90YWRldmVsb3Blci5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMDgvMTAvYXNvY2lhY2lvbjIuanBn"><img class="alignnone size-medium wp-image-645" title="asociacion2" src="http://blog.jotadeveloper.com/wp-content/uploads/2008/10/asociacion2-300x102.jpg" alt="" width="300" height="102" /></a></h5>
<h5>Asociaciones con Multiplicidad</h5>
<p>Existe multiplicidad, cuando existen Objetos como Array, List, Vector, Collection, donde representa que se <strong>pueden almacenar uno o muchos objetos</strong>, en este caso Padre.</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">//Asociacion 0 a Muchos</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Hijo <span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #003399;">List</span> ListaPadres<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p><a href="http://blog.jotadeveloper.com/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2Jsb2cuam90YWRldmVsb3Blci5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMDgvMTAvYXNvY2lhY2lvbm11Y2hvcy5qcGc="><img class="alignnone size-medium wp-image-632" title="asociacionmuchos" src="http://blog.jotadeveloper.com/wp-content/uploads/2008/10/asociacionmuchos.jpg" alt="" width="288" height="92" /></a></p>
<h3>Agregación y Composición</h3>
<p>La <strong>agregación </strong>y la <strong>composición </strong>pueden ser un poco confusas, una agregación en Java se representa como una Asociación, pero tiene un enfoque diferente, <strong>la agregacion representa una parte de un todo, pero no necesariamente tiene que existir para que el todo exista</strong>, es el caso de Aplicacion y Base de Datos, una aplicación puede existir sin ella, igualmente una Base de Datos no necesita una Aplicación para existir. En el caso de la <strong>composición</strong>, es diferente, en el ejemplo puse la clase Codigo, que es parte de la composición de <strong>Aplicación, que no puede existir sin Código</strong>, por eso se dibujo como una Composición.</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">org.jp.developer.test</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Aplicacion <span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">private</span> Codigo codigo<span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">private</span> BaseDeDatos bd<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Codigo <span style="color: #009900;">&#123;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> BaseDeDatos <span style="color: #009900;">&#123;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p><a href="http://blog.jotadeveloper.com/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2Jsb2cuam90YWRldmVsb3Blci5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMDgvMTAvY29tcG9zaWNpb25hZ3JlZ2FjaW9uLmpwZw=="><img class="alignnone size-medium wp-image-637" title="composicionagregacion" src="http://blog.jotadeveloper.com/wp-content/uploads/2008/10/composicionagregacion-300x212.jpg" alt="" width="300" height="212" /></a></p>
 <img src="http://blog.jotadeveloper.com/wp-content/plugins/feed-statistics.php?view=1&post_id=621" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.jotadeveloper.com/2008/10/08/modelando-java-con-uml-i-clases/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Metodología de Fusión III Parte Implementación</title>
		<link>http://blog.jotadeveloper.com/2008/05/16/metodologia_de_fusion_iii_parte/</link>
		<comments>http://blog.jotadeveloper.com/2008/05/16/metodologia_de_fusion_iii_parte/#comments</comments>
		<pubDate>Fri, 16 May 2008 11:58:07 +0000</pubDate>
		<dc:creator>Jota</dc:creator>
				<category><![CDATA[Articulos]]></category>
		<category><![CDATA[desarrollo de software]]></category>
		<category><![CDATA[fusion]]></category>
		<category><![CDATA[metodologia]]></category>

		<guid isPermaLink="false">http://noticiastic.blogeame.net/2008/05/16/metodolog</guid>
		<description><![CDATA[Implementación

La etapa final de la metodología de Fusión es la conversión del diseño en una implementación efectiva.  La transición es relativamente sencilla ya que las decisiones más complejas en cuanto al diseño ya han sido tomadas.  La implementación debe ser correcta, debe satisfacer los requerimientos,  al mismo tiempo debe ser económica y no debe [...]]]></description>
			<content:encoded><![CDATA[<h3>Implementación</h3>
<p>
<strong>La etapa final de la metodología de Fusión es la conversión del diseño en una implementación efectiva</strong>.  La transición es relativamente sencilla ya que las decisiones más complejas en cuanto al diseño ya han sido tomadas.  La implementación debe ser correcta, <strong>debe satisfacer los requerimientos</strong>,  al mismo tiempo debe ser económica y no debe hacer uso excesivo de los recursos ni exceder el tiempo y el almacenamiento estipulado.</p>
<p>El resultado de la fase de implementación es el software que satisface los requisitos funcionales y no funcionales.</p>
<p>El proceso de implementación se encuentra dividido en tres partes: codificación, desempeño y revisión.</p>
<ol>
<li> <strong>Codificación</strong>: En esta etapa existen cuatro elementos a traducir: <strong>El ciclo de vida, la descripción de las clases, el contenido de los métodos y el diccionario de datos.</strong></li>
<p><strong><br />
</strong></p>
<li> <strong>Desempeño</strong>: El desempeño de una aplicación debe ser considerado desde el análisis, diseño y proceso de implementación.  No es necesario ser obsesivo con respecto al mismo, si la aplicación carece de velocidad se debe examinar cada componente de forma individual para saber en dónde focalizar los esfuerzos.  La depuración de partes individuales puede beneficiar a la aplicación cuando ésta se ejecute de forme integrada.  Los sistemas pueden ser eficientes más no así perfectos, se puede llegar a una condición ideal en el cual la aplicación sea lo suficientemente rápida que satisfaga la demanda de muchos usuarios en cuánto a velocidad y lo suficientemente robusta para que soporte inserciones masivas y/o procesos complejos.  Todo esto es un proceso de suficientes recursos a nivel de hardware (memoria, espacio y conectividad) y el uso adecuado de los mismo.</li>
<li><strong>Revisión</strong>: Una vez que el código ha sido producido, este debe ser revisado.  Las inspecciones requieren que el código sea leído y entendido por personas distintas a sus autores.  Se revisa el comportamiento actual del sistema o partes del sistema, contra los requerimientos y especificaciones.  El objetivo de esto es detectar errores antes de que éstos entren en producción.</li>
</ol>
<p><strong>En la IV y ultima parte presentare un cuadro resumen sobre la Adaptación de la Metodologia de Fusión y ejemplos.</strong></p>
 <img src="http://blog.jotadeveloper.com/wp-content/plugins/feed-statistics.php?view=1&post_id=134" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.jotadeveloper.com/2008/05/16/metodologia_de_fusion_iii_parte/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Metodología de Fusión II Parte Diseño</title>
		<link>http://blog.jotadeveloper.com/2008/05/12/metodologia_de_fusion_ii_parte/</link>
		<comments>http://blog.jotadeveloper.com/2008/05/12/metodologia_de_fusion_ii_parte/#comments</comments>
		<pubDate>Mon, 12 May 2008 21:43:45 +0000</pubDate>
		<dc:creator>Jota</dc:creator>
				<category><![CDATA[Articulos]]></category>
		<category><![CDATA[desarrollo de software]]></category>
		<category><![CDATA[fusion]]></category>
		<category><![CDATA[metodologia]]></category>

		<guid isPermaLink="false">http://noticiastic.blogeame.net/2008/05/12/metodolog</guid>
		<description><![CDATA[El diseño consiste en desarrollar un modelo abstracto de cómo un sistema lleva a cabo el comportamiento especificado en el análisis.
El diseñador escoge como se va a construir el sistema.  Durante este proceso, los métodos se
unen a las clases.  El diseñador también escoge cómo los objetos se relacionan entre ellos y qué relaciones [...]]]></description>
			<content:encoded><![CDATA[<p style="margin-bottom: 0cm;">El diseño consiste en desarrollar un modelo abstracto de cómo un sistema lleva a cabo el comportamiento especificado en el análisis.</p>
<p style="margin-bottom: 0cm;">El diseñador escoge como se va a construir el sistema.  Durante este proceso, los métodos se<br />
unen a las clases.  El diseñador también escoge cómo los objetos se relacionan entre ellos y qué relaciones de herencia entre estas clases son apropiadas.</p>
<p style="margin-bottom: 0cm;">La fase de diseño de Fusión se basa en las CRC y los métodos de Booch.</p>
<p style="margin-bottom: 0cm;">La salida del diseño es una estructura de software orientado a objeto que contiene la misma información y mantiene las relaciones definidas en el modelo de objetos del sistema.<sup><a class=\"sdfootnoteanc\" name=\"sdfootnote1anc\" href="http://blog.jotadeveloper.com/wp-content/plugins/feed-statistics.php?url=I3NkZm9vdG5vdGUxc3lt"><sup>1</sup></a></sup></p>
<p style="margin-bottom: 0cm;">
<p style="margin-bottom: 0cm;">Durante esta fase se desarrollan los tres modelos siguientes:</p>
<ul>
<li>
<p style="margin-bottom: 0cm;" align="left"><strong>Gráficos de Interacción de Objetos</strong>.  Describen cómo los objetos interactúan en tiempo de ejecución para conseguir la funcionalidad especificada en el modelo de funcionamiento en la fase<br />
de análisis.</li>
<li>
<p style="margin-bottom: 0cm;" align="left"><strong>Descripciones de Clases</strong>.  Proporciona una especificación de la interface de la clase, atributos de referencia a objetos, y signaturas de los métodos para todas las clases en el sistema.</p>
</li>
<li>
<p style="margin-bottom: 0cm;" align="left"><strong>Gráficos de Herencia</strong>.  Describen las estructuras de herencia clases/subclases.</p>
</li>
</ul>
<p style="margin-bottom: 0cm;" align="center">
<div>
<p><img src="http://blog.enicaragua.org.ni/roller/noticiastic/resource/disenio.gif" border="0" alt="" hspace="4" vspace="4" align="bottom" /></p>
<p><strong></strong></p>
<h6><strong>Figura: Metodología de Fusión &#8211; Diseño</strong></h6>
<ol>
<li>
<h4><strong>Gráfico de Interacción de Objetos</strong></h4>
</li>
</ol>
<p>La primera consideración en diseño orientado a objetos es la implementación de cada operación del sistema.  El modelo de funcionamiento especifica la conducta de estas operaciones definiendo el efecto de cada operación en términos de cambios de estado del sistema y eventos de salida.  El propósito de esta fase en diseño es construir las estructuras de mensajes entre objetos definidas en el modelo de funcionamiento.</p>
<p style="margin-bottom: 0cm;">El gráfico de interacción de objetos se construye para cada operación del sistema. Un gráfico de interacción de objetos es una colección de cajas unidas por flechas.  Las cajas representan al objeto, y las flechas que representan el paso del mensaje.  Hay dos tipos de cajas:</p>
<p style="margin-bottom: 0cm;"><strong>Director. </strong>Le llega una flecha que no viene de ninguna otra caja del gráfico; esta flecha se<br />
etiqueta con el nombre de la operación del sistema que implementa ese gráfico de interacción de objetos.</p>
<p style="margin-bottom: 0cm;"><strong>Colaboradores. </strong>El resto de las cajas se llaman colaboradores.  El resto de las flechas, a excepción<br />
de la operación del sistema, van de una caja a otra dentro del gráfico.</p>
<p style="margin-bottom: 0cm;">Las sucesiones de mensajes entre los objetos determinan el comportamiento de los objetos declarados en el<br />
gráfico de interacción de objetos.  Esto define la implementación a alto nivel de la funcionalidad a través<br />
de los objetos para una operación del sistema.  Cada gráfico de interacción de objetos también lleva asociado un texto descriptivo en el diccionario de datos, en lenguaje natural, pseudo-código, o especificación formal, para dar significado a la operación del sistema y los mensajes definidos.</p>
<p style="margin-bottom: 0cm;">
<p style="margin-bottom: 0cm;">A continuación se detalla cada uno de los componentes del gráfico de interacción de<br />
objetos.</p>
<ol type="i">
<li>
<p style="margin-bottom: 0cm;" align="left"><em>Colecciones de<br />
Objetos:</em> Colecciones de objetos de la misma clase.  Las<br />
implementaciones típicas de estas colecciones serán<br />
listas o arreglos.</li>
<li>
<p style="margin-bottom: 0cm;" align="left"><em>Paso de Mensajes:</em><strong><br />
</strong>El paso de mensajes es una comunicación punto a punto, y<br />
se realiza como una llamada a una función o método.<br />
La notación es una flecha directa con etiquetas.  La<br />
dirección de la flecha es del remitente al receptor.  También<br />
se llaman cliente y servidor.</li>
<li>
<p style="margin-bottom: 0cm;" align="left"><em>Paso de mensajes a<br />
Colecciones: </em>Un mensaje puede pasarse a colecciones de objetos.<br />
La notación es una flecha directa a una caja con líneas<br />
discontinuas.</li>
<li>
<p style="margin-bottom: 0cm;" align="left"><em>Secuencia de<br />
Mensajes:</em> Si una secuencia de pasos de mensajes es importante,<br />
se puede mostrar el orden de la secuencia introduciendo etiquetas de<br />
la secuencia entre paréntesis sobre el nombre del mensaje.</li>
<li>
<p style="margin-bottom: 0cm;" align="left"><em>Creación<br />
dinámica de objetos:</em> La palabra clave <em>new</em> indica<br />
que un objeto se crea como parte de la ejecución de un<br />
gráfico de interacción de objetos.</li>
</ol>
<p style="margin-bottom: 0cm; page-break-before: always;">
<ol>
<li>
<p style="margin-bottom: 0cm;"><strong>Descripciones de Clases</strong></p>
</li>
</ol>
<p style="margin-bottom: 0cm;">
<p style="margin-bottom: 0cm;">Después de desarrollar los<br />
gráficos de visibilidad para todas las clases, el siguiente<br />
paso es intercalar información del modelo de objetos del<br />
sistema, de los gráficos de interacción y de los<br />
gráficos de visibilidad en descripciones de clase, una para<br />
cada clase.</p>
<p style="margin-bottom: 0cm;">
<p style="margin-bottom: 0cm;">El proceso para construir descripciones<br />
de clases es como sigue:</p>
<ol type="i">
<li>
<p style="margin-bottom: 0cm;" align="left"><em>Métodos y sus<br />
parámetros:</em> se derivan métodos de los gráficos<br />
de interacción de objetos.</li>
<li>
<p style="margin-bottom: 0cm;" align="left"><em>Atributos de Datos:<br />
</em>La fuente para los atributos de datos es el modelo de sistema y<br />
el diccionario de datos.</li>
<li>
<p style="margin-bottom: 0cm;" align="left"><em>Dependencias de<br />
Herencia: </em>Las dependencias de herencia se documentan después<br />
de definir los gráficos de herencia.</li>
</ol>
<p style="margin-bottom: 0cm;">
<ol>
<li>
<p style="margin-bottom: 0cm;"><strong>Gráficos de Herencia</strong></p>
</li>
</ol>
<p style="margin-bottom: 0cm;">Una consideración importante en<br />
diseño orientado a objetos es la herencia, un mecanismo por<br />
cual una clase puede definirse como una especialización de<br />
otra.  Los gráficos de herencia reflejan las relaciones de<br />
herencia entre las clases.</p>
<p style="margin-bottom: 0cm;">
<p style="margin-bottom: 0cm;">La notación usada para herencia<br />
es igual que la notación del modelo de objetos usado para la<br />
generalización y la especialización. Una caja<br />
representa una clase, con el nombre de clase indicado en la sección<br />
superior de la caja. Se nombran los atributos en la caja debajo de la<br />
línea.</p>
<p style="margin-bottom: 0cm;">
<ol type="i">
<li>
<p style="margin-bottom: 0cm;" align="left"><em>Triángulo<br />
hueco: </em>No se hace ninguna suposición de que las subclases<br />
sean disjuntas o que particionen a la superclase. Esto significa que<br />
pueden existir otras subclases que hereden de la superclase<em>.</em></li>
<li>
<p style="margin-bottom: 0cm;" align="left"><em>Triángulo<br />
Sólido: </em>Esto indica que las clases son disjuntas y que su<br />
unión forma la superclase.  Esto significa que no hay más<br />
subclases que hereden la superclase<em>.</em></li>
</ol>
</div>
 <img src="http://blog.jotadeveloper.com/wp-content/plugins/feed-statistics.php?view=1&post_id=128" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.jotadeveloper.com/2008/05/12/metodologia_de_fusion_ii_parte/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Metodología de Fusión I Parte Análisis</title>
		<link>http://blog.jotadeveloper.com/2008/04/24/metodologia_de_fusion_i_parte/</link>
		<comments>http://blog.jotadeveloper.com/2008/04/24/metodologia_de_fusion_i_parte/#comments</comments>
		<pubDate>Thu, 24 Apr 2008 22:50:37 +0000</pubDate>
		<dc:creator>Jota</dc:creator>
				<category><![CDATA[Articulos]]></category>
		<category><![CDATA[desarrollo de software]]></category>
		<category><![CDATA[fusion]]></category>
		<category><![CDATA[metodologia]]></category>

		<guid isPermaLink="false">http://noticiastic.blogeame.net/2008/04/24/metodologia_de_fusion_i_parte/</guid>
		<description><![CDATA[Quisiera compartir esta metodologia, que use con mis compañeros en la monografia, cuando nos la recomendaron solo articulos en inglés, muy poca información en español y de manera extensa, la ire proporcionando en partes, al ser bastante grande. Espero sirva a los desarrolladores de sistemas, sobre todo a los que necesitan una manera rápida de [...]]]></description>
			<content:encoded><![CDATA[<p>Quisiera compartir esta metodologia, que use con mis compañeros en la monografia, cuando nos la recomendaron solo articulos en inglés, muy poca información en español y de manera extensa, la ire proporcionando en partes, al ser bastante grande. Espero sirva a los desarrolladores de sistemas, sobre todo a los que necesitan una manera rápida de desarrollar Orientado a Objetos.</p>
<h3>a.  Introducción</h3>
<p>Fusión, proporciona un método de desarrollo de software  orientado a objeto, que abarca desde la definición de requisitos a la  implementación en un lenguaje de programación.</p>
<p>Es considerada como una metodología de segunda generación,  porque proviene de:</p>
<ul>
<li> OMT: modelo de objetos.</li>
<li>CRC: interacción de objetos.</li>
<li> BOOCH: visibilidad.</li>
</ul>
<p>Los métodos formales: pre y post condiciones.</p>
<ul>
<li>Proporciona un proceso  de desarrollo, que se divide en: Análisis, Diseño e Implementación.</li>
<li> Ofrece notaciones para  los modelos, que describen varios aspectos del software.</li>
<li>Proporciona  herramientas de gestión.</li>
</ul>
<h3><strong>b.  Análisis</strong></h3>
<p>El análisis se basa más en describir lo que hace un sistema  en lugar de cómo lo hace.  Para esto, hay  que ver el sistema desde la perspectiva del usuario en lugar de desde la  perspectiva de la máquina. El análisis casa con el dominio del problema y se  preocupa por el comportamiento visible externamente.</p>
<p>La meta de la fase de análisis es capturar tantos requisitos  del sistema como sea posible.  Se  producen los siguientes modelos del sistema.</p>
<ul>
<li>Modelo de Objetos</li>
<li> Modelo de la Interfase</li>
<li>Modelo del funcionamiento.</li>
<li>Modelo  del ciclo de vida.</li>
</ul>
<p>Estos modelos describen:</p>
<ol>
<li><strong>Clases</strong> de objetos que existen en el sistema.</li>
<li><strong>Relaciones </strong>entre esas clases.</li>
<li><strong>Operaciones </strong>que puedan realizarse en el sistema.</li>
<li><strong>Secuencias </strong>permitidas de estas operaciones.</li>
</ol>
<p align="center">
<div><img style="width: 391px; height: 353px;" src="http://blog.enicaragua.org.ni/roller/noticiastic/resource/analisis.jpg" border="0" alt="" hspace="4" vspace="4" /></div>
<p align="left"><strong>Figura 2.  Metodología de Fusión &#8211; Análisis</strong></p>
<p>La entrada para la fase de análisis es un documento de  definición de requisitos en lenguaje natural.</p>
<h4>i) Modelo de Objetos</h4>
<p>La finalidad del modelo de objeto en Fusión es:</p>
<ul>
<li>Capturar los conceptos que existen en el dominio del problema y las relaciones entre ellos.</li>
<li>Mostrar clases y sus relaciones, (no mostrar objetos)</li>
<li>El modelo de objeto representa:
<ul>
<li>La estructura estática de la información en el sistema.</li>
<li>Las clases y las relaciones entre ellas.</li>
<li>Atributos de las clases.</li>
<li>Agregación</li>
<li>Especialización/generalización</li>
</ul>
</li>
</ul>
<p><strong>Definiciones</strong></p>
<p>Un <strong>objeto </strong>es cualquier cosa que puede ser identificada. Puede tener una serie de valores nombrados, llamados atributos.</p>
<p>Los objetos se agrupan en conjuntos, llamados <strong>clases</strong>.</p>
<p>Las <strong>relaciones </strong>se usan para modelar la idea de la asociación o correspondencia entre objetos que pertenecen a clases.</p>
<p>Para describir una relación, se consideran los puntos siguientes:</p>
<ul>
<li> <em>Restricciones </em>de Cardinalidad. Cardinalidad es el número de clases que pueden asociarse entre sí en una relación.</li>
<li> <em>Invariantes</em>. Restricciones de que alguna propiedad se debe cumplir.</li>
<li> <em>Roles</em>. Las clases que participan en una relación tienen roles. Los nombres para los roles o papeles en una relación deben ser únicos.</li>
<li><em> Atributos de la relación</em>. Las relaciones, como los objetos, pueden tener atributos.</li>
<li> <em>Relaciones ternarias y más altas</em>. Las relaciones ternarias relacionan tres objetos separados. Las que involucran más de tres objetos se llaman relaciones n-arias.
<ul>
<li>La <strong>agregación </strong>es un mecanismo para estructurar el modelo de objetos. Permite la construcción de una clase agregada a partir de las otras clases componentes. La agregación modela las relaciones todo/parte.</li>
<li>La <strong>generalización </strong>permite a una clase, llamada supertipo, ser formada sacando las propiedades comunes de varias clases, llamadas subtipos. La especialización es el caso inverso en el que un nuevo subtipo se define como una versión más especializada de un supertipo.</li>
<li>La <strong>especialización </strong>múltiple permite definir un nuevo subtipo como una especialización de más de un supertipo inmediato. La subclase hereda los atributos y relaciones de todas las superclases.</li>
</ul>
</li>
</ul>
<p>Un diagrama de modelado de objetos puede ser dividido en subdiagramas.</p>
<h4>ii) Modelo de Objetos del Sistema</h4>
<p>El modelo de objetos del sistema es un subconjunto del modelo de objetos que describe el sistema a ser construido. Se forma excluyendo todas las clases y relaciones que pertenecen al entorno.</p>
<p>Usa la información sobre la interface del sistema para indicar qué clases y qué relaciones pertenecen al estado del sistema, y no a su entorno.</p>
<p>Las clases que quedan fuera del modelo de objetos del sistema no participan en las relaciones dentro del modelo de objetos del sistema. El modelo de objetos del sistema es la base en la que se hace el resto del desarrollo.</p>
<h4>iii) Modelo de la Interface</h4>
<p>El modelo de la interfaz describe el comportamiento de un sistema, por ejemplo, define la comunicación de entrada y salida del sistema. La descripción está en términos de eventos y el cambio de estado que ellos causan.</p>
<p>Un sistema se modela como una entidad activa que interactúa con otras entidades activas llamadas agentes. Los agentes modelan a los usuarios humanos, u otros sistemas hardware o software. Las características importantes de un agente son que es activo y se comunica con el sistema.</p>
<p>Un modelo de la interfaz utiliza dos modelos para diferentes aspectos del comportamiento:</p>
<ul>
<li>Modelo de Funcionamiento</li>
<li>Modelo de Ciclo de Vida</li>
</ul>
<p><strong>1. Modelo del Funcionamiento</strong></p>
<blockquote><p>El modelo de funcionamiento (modelo funcional) especifica el comportamiento de las operaciones del sistema utilizando un Esquema de Modelado de Funcionamiento.<br />
Define efectos del funcionamiento en términos de cambios de estado, eventos que son salida.</p></blockquote>
<blockquote><p>Una operación del sistema es un evento de entrada y su efecto en un sistema. Las operaciones del sistema son invocadas por agentes en el entorno. Una operación del sistema puede:</p>
<ul>
<li>Crear una nueva instancia de una clase</li>
<li>Cambiar el valor de un atributo de un objeto existente</li>
<li>Agregar o anular alguna tupla de objetos de una relación</li>
<li>Enviar un evento a un agente</li>
</ul>
</blockquote>
<p>En este modelado definimos la semántica todas las operaciones del sistema y que fueron utilizadas en el modelo de ciclo de vida usando un esquema de modelo de funcionamiento.</p>
<p><strong>2. Modelo del Ciclo de Vida</strong></p>
<blockquote><p>El modelo del ciclo de vida del sistema describe como el sistema se comunica con su entorno desde su creación hasta su muerte. Consiste en expresiones del ciclo de vida. Una expresión del ciclo de vida define las secuencias aceptables de interacciones en las que un sistema puede participar en su tiempo de vida. Es algo parecido al modo en que una gramática describe las secuencias aceptables de símbolos que son aceptados por un compilador.</p></blockquote>
<h4>iv) Proceso de Análisis</h4>
<p>El análisis no es un proceso anárquico: hay una sucesión definida de pasos que pueden aplicarse iterativamente para producir una especificación completa y consistente que capture los requisitos.</p>
<p>El análisis es una actividad incremental e iterativa que formaliza los requisitos. Puede llevarse a cabo de una manera sistemática.</p>
<p>En Fusión, el proceso de análisis se define como sigue:</p>
<ol>
<li>Desarrolle un modelo de objetos para el dominio del problema.</li>
<li>Determine la interfase del sistema.</li>
<li>Identifique los agentes, operaciones del sistema, y eventos.</li>
<li>Produzca el modelo de objetos del sistema agregando el límite al modelo de objetos.</li>
<li>Desarrolle un modelo de interfase.</li>
<li>Desarrolle un modelo de ciclo de vida.</li>
<li>Desarrolle un modelo de funcionamiento.</li>
<li>Verifique el modelo de análisis.</li>
</ol>
<p><strong>Desarrollo del modelo de objetos</strong></p>
<p>El análisis debe empezarse con un alto nivel de abstracción. Es mejor utilizar los requisitos para una tormenta de ideas de posibles clases y relaciones. Solo después de que su estructura global sea satisfactoria deben añadirse los detalles. Se debe recordar que el modelo de objetos utiliza clases, mientras que un documento de requisitos es expresado principalmente en términos de objetos específicos.</p>
<p>Casi cualquier nombre puede dar lugar a una clase. Sin embargo, para serlo, el nombre debe pertenecer a un concepto que sea importante para la comprensión del dominio. Posibles fuentes de clases candidatas son:</p>
<ul>
<li>Objetos Físicos.</li>
<li>Personas y organizaciones.</li>
<li>Abstracciones.</li>
</ul>
<p>Para definir las relaciones se deben modelar correspondencias entre objetos. Comunicaciones, asociaciones físicas, contenciones, y acciones son todas las posibles fuentes para relaciones candidatas. Una vez que las listas candidatas se han hecho, deben racionalizarse. En este punto deben de usarse las clases y relacionar las mismas considerando aspectos como:</p>
<ul>
<li>Generalización</li>
<li>Agregación</li>
<li>Atributos</li>
<li>Cardinalidades</li>
<li>Invariantes</li>
</ul>
<p><strong>Determinación de la Interface del Sistema</strong></p>
<p>Durante el análisis, un sistema es modelado como una entidad activa que coopera con otras entidades activas, llamadas agentes. El sistema y los agentes se comunican enviando y recibiendo eventos. Cuando los eventos recibidos por el sistema, pued<br />
en causar un cambio de estado y eventos de salida. Un evento de la entrada y su efecto asociado son conocidos como una operación del sistema.<br />
La interfase de un sistema es el conjunto de operaciones del sistema a las que puede responder y los eventos que puede enviar.</p>
<p>Una operación del sistema siempre es invocada por un agente, no por un objeto; la fase del análisis no se preocupa por mensajes internos entre los objetos.</p>
<p>La información obtenida en la determinación de la interfase del sistema es el punto de partida para desarrollar el modelo de la interfase.</p>
<p>El <strong>escenario </strong>es una técnica útil para definir la interfase del sistema.Un escenario es una sucesión de eventos que fluyen entre agentes y el sistema para algún propósito.</p>
<p>Un escenario se representa como un <strong>diagrama de secuencia</strong>, que muestra las órdenes temporales del sistema y los eventos que fluyen a los agentes. Los diagramas de secuencia no pueden mostrar caminos alternativos de comunicación. Por consiguiente, en general pueden necesitarse diagramas múltiples para un solo escenario.</p>
<p>Los diagramas de secuencia de escenario aportan una herramienta para intuir las consecuencias del diseño de la interfase y visualizar cómo se comporta el sistema. Son útiles al validar decisiones de la interfase con clientes porque son simples e intuitivos de entender.</p>
<p><strong>Desarrollo del Modelo de la Interfase</strong></p>
<p>El modelo de la interfase comprende un modelo del ciclo de vida y un modelo del funcionamiento. El orden del desarrollo no es fijo. Sin embargo, es mejor empezar con el modelo del ciclo de vida porque el ciclo de vida puede ser una ayuda al desarrollo del esquema del modelo de funcionamiento.</p>
<p>Para desarrollar el modelo de ciclo de vida se debe entender que éste es una expresión generalizada de los escenarios que se expresan en diagramas de secuencia. Las expresiones del ciclo de vida son más expresivas que el diagrama de secuencia, porque pueden expresar repetición, alternación y opcionalidad, así como el encadenamiento.</p>
<p>Una expresión del ciclo de vida puede definir un conjunto de escenarios, mientras que un diagrama de secuencia puede mostrar sólo un solo escenario.</p>
<p>El proceso para formar el modelo del ciclo de vida es:</p>
<ol>
<li>Generalice los escenarios para formar expresiones del ciclo de vida nombradas.</li>
<li>Combine las expresiones del ciclo de vida para formar el modelo de ciclo de vida.</li>
</ol>
<p>Para definir el modelo de funcionamiento se debe definir la semántica de cada operación del sistema en la interfase del sistema usando un esquema de modelo del funcionamiento.</p>
<p>El proceso para desarrollar un esquema puede resumirse de la siguiente manera:</p>
<ol>
<li>Desarrolle las cláusulas Asume y Resultados.</li>
<li>Extraiga las cláusulas Envía, Lee, y Cambia de Asume y Resultados.</li>
</ol>
<h4>v) Verificando los Modelos del Análisis</h4>
<p>La perfección es inasequible y normalmente no se requiere. Sin embargo, una especificación con errores graves no sirve. Verificar los modelos del análisis es una manera estos errores. Si los chequeos no revelan ningún problema entonces se puede pensar que la fase de análisis está completa.</p>
<p>Existen dos aspectos que deben ser verificados: completitud (integridad) y consistencia.</p>
<p>La <strong>integridad </strong>puede medirse contra los requisitos. Los modelos del análisis deben probarse contra los requisitos, y también el conocimiento y expectativas de los clientes y expertos del dominio.</p>
<p><strong>1) Chequeo de la integridad contra los Requisitos</strong><br />
Hay que verificar que:</p>
<ul>
<li>Todos los posibles escenarios son cubiertos por el ciclo de vida.</li>
<li>Todas las operaciones del sistema son definidas por un esquema.</li>
<li>Toda la información estática es capturada por el modelo de objetos del sistema.</li>
</ul>
<blockquote><p>Un conjunto de modelos es consistente cuando los modelos no se contradicen entre ello, explícitamente o implícitamente. En un modelo debe verificarse su consistencia interna y también para esas áreas donde se solapa con otros modelos.</p></blockquote>
<p><strong>2) Chequeo de la Consistencia Simple</strong></p>
<p>Estos chequeos tratan las áreas de solape entre los modelos del análisis. Verifica que todas las clases, relaciones y atributos mencionados en el modelo del funcionamiento aparecen en el modelo de objetos del sistema.</p>
<p><strong>3) Chequeos de la Consistencia Semántica<br />
</strong><br />
Estos chequeos intentan agrupar que las implicaciones de los modelos son consistentes. Verificando que:</p>
<ul>
<li>La salida de eventos en el modelo de ciclo de vida y el modelo de funcionamiento deben ser consistentes. El esquema para una operación del sistema debe generar los eventos de salida que lo siguen en los escenarios del modelo de ciclo de vida.</li>
<li>El modelo de funcionamiento debe conservar invariantes del modelo de objetos del sistema. Si existe alguna invariante acerca de una relación o clase, entonces cualquier operación que puede cambiarlo debe respetar el invariante en su esquema.</li>
<li>Ejecutar los escenarios y verificar que los resultados son los esperados.</li>
</ul>
 <img src="http://blog.jotadeveloper.com/wp-content/plugins/feed-statistics.php?view=1&post_id=120" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.jotadeveloper.com/2008/04/24/metodologia_de_fusion_i_parte/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Los Frameworks de PHP agilizan tu trabajo</title>
		<link>http://blog.jotadeveloper.com/2007/08/22/crea_tu_radioblog_sin_php/</link>
		<comments>http://blog.jotadeveloper.com/2007/08/22/crea_tu_radioblog_sin_php/#comments</comments>
		<pubDate>Wed, 22 Aug 2007 13:53:45 +0000</pubDate>
		<dc:creator>Jota</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[desarrollo de software]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[programadores]]></category>

		<guid isPermaLink="false">http://php.blogeame.net/2007/08/22/crea_tu_radioblog_sin_php/</guid>
		<description><![CDATA[Los Frameworks ayudan en el desarrollo de software, proporcionan una estructura definida la cual ayuda a crear aplicaciones con mayor rapidez. Ayuda a la hora de realizar el mantenimiento del sitio gracias a la organización durante el desarrollo de la aplicación.
Los Frameworks son desarrollados con el objetivo  de brindarles a los programadores y diseñadores una [...]]]></description>
			<content:encoded><![CDATA[<p><span class="intro">Los Frameworks ayudan en el desarrollo de software, proporcionan una estructura definida la cual ayuda a crear aplicaciones con mayor rapidez. Ayuda a la hora de realizar el mantenimiento del sitio gracias a la organización durante el desarrollo de la aplicación.</span></p>
<p>Los Frameworks son desarrollados con el objetivo  de brindarles a los programadores y diseñadores una mejor organización y estructura a sus proyectos.</p>
<p>Se utiliza la Programación Orientada a Objetos (<a href="http://blog.jotadeveloper.com/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5tYWVzdHJvc2RlbHdlYi5jb20vZWRpdG9yaWFsL3Byb2dyYW1hY2lvbi1vcmllbnRhZGEtYS1vYmpldG9zLWVuLXBocDUv">POO</a>), permitiendo la reutilización de nuestro código. A continuación las características de algunos de los Frameworks para <a href="http://blog.jotadeveloper.com/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5tYWVzdHJvc2RlbHdlYi5jb20vZWRpdG9yaWFsL3BocGludHJvLw==">PHP</a> más usados.</p>
<h3>Zend Frameworks</h3>
<p><a href="http://blog.jotadeveloper.com/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2Jsb2cuam90YWRldmVsb3Blci5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMDgvMTAvemVuZC5qcGc="><img class="alignnone size-medium wp-image-710" title="zend" src="http://blog.jotadeveloper.com/wp-content/uploads/2008/10/zend-300x131.jpg" alt="" width="300" height="131" /></a></p>
<p>El <a href="http://blog.jotadeveloper.com/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2ZyYW1ld29yay56ZW5kLmNvbS8=">Zend Frameworks</a> es simple, no necesita instalación especial, requiere PHP 5 e  incorpora el patrón MVC.</p>
<p>Se debe <a href="http://blog.jotadeveloper.com/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2ZyYW1ld29yay56ZW5kLmNvbS9kb3dubG9hZA==">descargar</a> y<br />
copiarlo hacia nuestro servidor local, veamos a través de un pequeño ejemplo cómo podemos crear un lector de RSS. Los ficheros que creemos podemos copiarlos dentro del directorio <code>library</code>.</p>
<h3>Symfony</h3>
<p><a href="http://blog.jotadeveloper.com/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2Jsb2cuam90YWRldmVsb3Blci5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMDgvMTAvc3ltZm9ueS1sb2dvLnBuZw=="><img class="alignnone size-medium wp-image-711" title="symfony-logo" src="http://blog.jotadeveloper.com/wp-content/uploads/2008/10/symfony-logo.png" alt="" width="271" height="115" /></a></p>
<p>Diseñado con el objetivo de optimizar la creación de las aplicaciones web, con el uso de sus características. Posee una librería de clases que permiten reducir el tiempo de desarrollo.</p>
<p><a href="http://blog.jotadeveloper.com/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5zeW1mb255LXByb2plY3QuY29tLw==">Symfony</a> está desarrollado en PHP5, se puede utilizar en plataformas *nix (Unix, Linux) y Windows. Requiere de una instalación, configuración y líneas de comando, incorpora el patrón MVC, soporta AJAX, plantillas y un gran número de bases de datos.</p>
<p>Luego de <a href="http://blog.jotadeveloper.com/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5zeW1mb255LXByb2plY3QuY29tL2dldC9zZl9zYW5kYm94LnRneg==">descargar</a>, debemos desempaquetar hacia un directorio dentro de nuestro servidor web. Puede configurar el archivo <code>symfony.bat</code> e introducir la ruta completa del archivo <code>php.exe</code> en la línea 34.</p>
<div class="codigo">
<pre>set PHP_COMMAND=c:/xampp/xampp/php/php.exe</pre>
</div>
<p>Si nos encontramos en el directorio <code>sf_sandbox</code> podemos ir a las líneas de comando y conocer la versión del framework: <code>symfony -V. </code> Podemos verificar la creación de nuestro proyecto introduciendo en el navegador, por ejemplo: <code>http://localhost/sf_sandbox/web/frontend_dev.php</code></p>
<p>Si deseamos crear un weblog debemos crear el archivo <code>schema.yml</code> en el directorio <code>sf_sandbox/config/</code>. Después de haberlo creado podemos usar las siguientes líneas de comando dentro del directorio <code>sf_sandbox/</code>:</p>
<ul>
<li>symfony propel-generate-crud frontend post Post : crear y listar Post.</li>
<li>symfony propel-generate-crud frontend comment Comment : crear y listar comentarios.</li>
<li>symfony clear-cache : limpiar la cache.</li>
</ul>
<p>Los modulos serán creados en <code>sf_sandboxappsfrontendmodules</code>. Podemos ver el resultado:</p>
<ul>
<li>http://localhost/sf_sandbox/web/frontend_dev.php/post</li>
<li>http://localhost/sf_sandbox/web/frontend_dev.php/comment</li>
</ul>
<p>Se puede acceder a los archivos y modificar las plantillas a nuestro gusto.</p>
<h3>Seagull</h3>
<p><a href="http://blog.jotadeveloper.com/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2Jsb2cuam90YWRldmVsb3Blci5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMDgvMTAvc2VhZ3VsLmpwZw=="><img class="alignnone size-medium wp-image-712" title="seagul" src="http://blog.jotadeveloper.com/wp-content/uploads/2008/10/seagul.jpg" alt="" width="295" height="63" /></a></p>
<p>El framework <a href="http://blog.jotadeveloper.com/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3NlYWd1bGwucGhwa2l0Y2hlbi5jb20v">Seagull</a>, nos permite realizar una programación modular, posee un Sistema de Gestión de Contenidos (CMS).</p>
<p>Entre sus características de encuentran su compatibilidad con PHP 4 y PHP 5, ORM integrado, incorpora el patrón MVC, uso de templates, soporte para múltiples bases de datos, validación de datos, alto nivel</p>
<p>de configuración, autentificación, integración de librerías PEAR. Debemos descargar el framework, luego descomprimirlo hacia un directorio dentro de nuestro servidor web. Luego introducimos la dirección en nuestro navegador para realizar su instalación. Ejemplo: <code>http://localhost/seagull/www/</code>.</p>
<p>Debemos completar los 6 pasos siguientes:</p>
<ul>
<li>Aceptar la licencia</li>
<li>Autorización</li>
<li>Debemos crear en el directorio el archivo <code>AUTH.txt</code> que contenga el código generado o descargarlo en <code>seagull/</code>. Si se crea correctamente podremos continuar al siguiente paso.</li>
<li>Detección: aquí se detectará los módulos disponibles, así como la configuración y versión de PHP.</li>
<li>Conexión con las bases de datos: debemos configurar los datos<br />
necesarios para realizar la conexión con el servidor de base de datos.</li>
<li>Configuración de la base de datos: introducir el nombre de la base de datos. Se puede utilizar una existente.</li>
<li>Creación del Usuario Administrador: se creará la cuenta de usuario que utilizaremos para administrar a Seagull Framework.</li>
</ul>
<p>Luego de Finalizar su instalación podemos crear contenidos visitando <code>http://localhost/ seagull/www/</code> e introduciendo el usuario y clave de administración.</p>
<h3>Prado</h3>
<p><a href="http://blog.jotadeveloper.com/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2Jsb2cuam90YWRldmVsb3Blci5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMDgvMTAvcHJhZG9waHBmcmFtZXdvcmsuZ2lm"><img class="alignnone size-medium wp-image-713" title="pradophpframework" src="http://blog.jotadeveloper.com/wp-content/uploads/2008/10/pradophpframework-300x112.gif" alt="" width="300" height="112" /></a></p>
<p><a href="http://blog.jotadeveloper.com/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy54aXNjLmNvbS8=">Prado</a> está basado en componentes eventos con el objetivo de acelerar el desarrollo de aplicaciones web usando PHP 5.</p>
<p>El concepto del desarrollo de aplicaciones en Prado es diferente, se utilizan componentes, eventos y propiedades en vez de procedimientos, URL y parámetros.</p>
<p>Este Framework combina especificaciones en un archivo <a href="http://blog.jotadeveloper.com/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5tYWVzdHJvc2RlbHdlYi5jb20vZWRpdG9yaWFsL2ZsYXNoeG1sLw==">XML</a>, plantillas <a href="http://blog.jotadeveloper.com/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5tYWVzdHJvc2RlbHdlYi5jb20vZWRpdG9yaWFsL2h0bWxoaXMv">HTML</a> y una clase PHP. Prado, cuenta con soporte para AJAX, validación, autentificación, plantillas, múltiples bases de datos.</p>
<p>Entre los beneficios que podemos encontrar para el desarrollo de aplicaciones web se encuentran:</p>
<ul>
<li>Reutilización: los códigos y componentes pueden ser reutilizados.</li>
<li>Fácil uso: la creación y uso de componentes es fácil.</li>
<li>Funcionamiento: utiliza una técnica de caché para asegurar el funcionamiento de aplicaciones basadas en el.</li>
<li>Integración: permite la separación del contenido y la presentación.</li>
</ul>
<p>Podemos <a href="http://blog.jotadeveloper.com/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy54aXNjLmNvbS9kb3dubG9hZC8=">descargar</a> y descomprimir Prado en un directorio, luego acceder al siguiente demo.</p>
<p><strong>Hello World:</strong></p>
<p>Esta aplicación cuenta con los archivos <code>index.php</code>, <code>Home.page</code> y <code>Home.php</code>, organizados con la siguiente estructura, la cual puede ser modificada:</p>
<p><img src="http://www.maestrosdelweb.com/images/helloword.jpg" alt="helloword.jpg" /></p>
<ul>
<li>assets : almacena archivos privados publicados.</li>
<li>protected: aquí se almacenarán los archivos que serán usados.</li>
<li>runtime: se almacena la información runtime de la aplicación, así<br />
como su estado, este directorio debe tener acceso de escritura por el<br />
servidor web.</li>
<li>pages: aquí se almacenan todas las páginas de Prado.</li>
</ul>
 <img src="http://blog.jotadeveloper.com/wp-content/plugins/feed-statistics.php?view=1&post_id=278" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.jotadeveloper.com/2007/08/22/crea_tu_radioblog_sin_php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
