<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Karlsauter's Weblog</title>
	<atom:link href="http://karlsauter.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://karlsauter.wordpress.com</link>
	<description>Just another WordPress.com weblog</description>
	<lastBuildDate>Wed, 05 Jan 2011 17:25:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='karlsauter.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Karlsauter's Weblog</title>
		<link>http://karlsauter.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://karlsauter.wordpress.com/osd.xml" title="Karlsauter&#039;s Weblog" />
	<atom:link rel='hub' href='http://karlsauter.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Codigo autodocumentado (Self-documenting Code)</title>
		<link>http://karlsauter.wordpress.com/2007/10/06/codigo-autodocumentado-self-documenting-code/</link>
		<comments>http://karlsauter.wordpress.com/2007/10/06/codigo-autodocumentado-self-documenting-code/#comments</comments>
		<pubDate>Sat, 06 Oct 2007 17:02:01 +0000</pubDate>
		<dc:creator>karlsauter</dc:creator>
				<category><![CDATA[Programación I]]></category>

		<guid isPermaLink="false">http://karlsauter.wordpress.com/2007/10/06/codigo-autodocumentado-self-documenting-code/</guid>
		<description><![CDATA[Términos generales Documentación Palabras clave Comentarios, técnicas para comentar, documentación interna. INTRODUCCION El siguiente documento contiene una descripción de varias técnicas para realizar comentarios. En cada una de ellas se mencionan sus ventajas y desventajas. El objetivo es dar al lector una perspectiva de qué son buenos comentarios y porque son necesarios. COMENTAR O NO [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlsauter.wordpress.com&amp;blog=1722223&amp;post=44&amp;subd=karlsauter&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p class="western"><font size="3"><strong>Términos generales</strong></font></p>
<p class="western" style="margin-bottom:0.08in;"><font size="3">Documentación</font></p>
<p class="western" style="margin-top:0.08in;"><font size="3"><strong>Palabras clave</strong></font></p>
<p class="western" style="margin-bottom:0.08in;"><font size="3">Comentarios, técnicas para comentar, documentación interna.</font></p>
<ol>
<li>
<h1 class="western"><strong>INTRODUCCION</strong></h1>
</li>
<p style="margin-bottom:0.08in;"><font size="3">El siguiente documento contiene una descripción de varias técnicas para realizar comentarios. En cada una de ellas se mencionan sus ventajas y desventajas. El objetivo es dar al lector una perspectiva de qué son buenos comentarios y porque son necesarios.</font></p>
<li>
<h1 class="western" align="left"> 	<font face="Times New Roman, serif"><font size="3"><span><strong>COMENTAR O NO</strong></span></font></font></h1>
<p style="margin-bottom:0.08in;"><font size="3">Esta pregunta ha traído muchas discusiones entre programadores, ya que los malos comentarios dificultan el trabajo. Pero la verdad es que buenos comentarios pueden prestar mucha ayuda a la hora de depurar el código y a la hora de hacerlo (ya verá por qué).</font></p>
<h2 class="western">Características de un buen comentario</h2>
<ul>
<li>
<p class="list-1-western" style="text-indent:0;widows:2;orphans:2;" align="justify"> 	<font size="1">NO REPITE <font color="#000000"><font face="Times New Roman, serif"><span>EL</span></font></font> 	CODIGO!!!!!</font></p>
</li>
<li>
<p class="list-1-western" style="text-indent:0;widows:2;orphans:2;" align="justify"> 	<font color="#000000"><font face="Times New Roman, serif"><font size="1">Explica 	la INTENCION del código.</font></font></font></p>
</li>
<li>
<p class="list-1-western" style="text-indent:0;widows:2;orphans:2;" align="justify"> 	<font color="#000000"><font face="Times New Roman, serif"><font size="1">No 	es exageradamente largo, ni le falta información.</font></font></font></p>
</li>
<li>
<p class="list-1-western" style="text-indent:0;widows:2;orphans:2;" align="justify"> 	<font size="1">Tiene un estilo <font color="#000000"><font face="Times New Roman, serif"><span>fácil</span></font></font> 	de modificar.</font></p>
</li>
</ul>
<p class="western"><font size="1">Algunos autores dan recomendaciones como éstas:</font></p>
<ul>
<li>
<p class="list-1-western" style="text-indent:0;widows:2;orphans:2;" align="justify"> 	“<font size="1"><span>No llene 	su </span><font color="#000000"><font face="Times New Roman, serif"><span>código</span></font></font><span> 	con comentarios de bajo nivel línea por línea.”</span><sup><span>[2]</span></sup></font></p>
</li>
<li>
<p class="list-1-western" style="text-indent:0;widows:2;orphans:2;" align="justify"> 	“<font size="1"><span>Los 	</span><font color="#000000"><font face="Times New Roman, serif"><span>comentarios</span></font></font><span> 	son necesarios como párrafos explicativos.”</span><sup><span>[3]</span></sup></font></p>
</li>
</ul>
<h3 class="western"><font size="2">Mal comentario:</font></h3>
<pre style="text-align:left;"><font size="1">// set product to "base"</font>

<font size="1">product = base;</font><font size="1">// loop from 2 to "num"</font>

<font size="1">for ( int i = 2; i &lt;= num; i++ ) {</font>

   <font size="1">// multiply "base" by "product"</font>

   <font size="1">product = product * base;</font>

<font size="1">}</font>

<font size="2"><span>System.out.println("Product = " + product);</span></font></pre>
<h3 class="western"> <font size="2">Buen comentario:</font></h3>
<pre style="text-align:left;"><font size="1">// compute the square root of Num using the Newton-Raphson approximation</font>

<font size="1">r = num / 2;</font>

<font size="1">while ( abs( r - (num/r) ) &gt; TOLERANCE ) {</font>

   <font size="1">r = 0.5 * ( r + (num/r) );</font>

<font size="1">}</font>

<font size="2"><span>System.out.println( "r = " + r );</span></font></pre>
</li>
<li>
<h1 class="western"><strong>TECNICAS PARA COMENTAR</strong></h1>
<ul>
<li>
<p class="list-1-western" style="text-indent:0;widows:2;orphans:2;" align="justify"> 	<font color="#000000"><font face="Times New Roman, serif"><font size="1">Enfóquese 	en el por qué más que en el cómo.</font></font></font></p>
</li>
<li>
<p class="list-1-western" style="text-indent:0;widows:2;orphans:2;" align="justify"> 	<font color="#000000"><font face="Times New Roman, serif"><font size="1">Prepare 	al lector para lo que sigue.</font></font></font></p>
</li>
<li>
<p class="list-1-western" style="text-indent:0;widows:2;orphans:2;" align="justify"> 	<font color="#000000"><font face="Times New Roman, serif"><font size="1">Haga 	que cada comentario valga la pena.</font></font></font></p>
</li>
<li>
<p class="list-1-western" style="text-indent:0;widows:2;orphans:2;" align="justify"> 	<font color="#000000"><font face="Times New Roman, serif"><font size="1">Documente 	sorpresas.</font></font></font></p>
</li>
<li>
<p class="list-1-western" style="text-indent:0;widows:2;orphans:2;" align="justify"> 	<font color="#000000"><font face="Times New Roman, serif"><font size="1">Eluda 	abrviaciones.</font></font></font></p>
</li>
<li>
<p class="list-1-western" style="text-indent:0;widows:2;orphans:2;" align="justify"> 	<font color="#000000"><font face="Times New Roman, serif"><font size="1">Diferencie 	entre comentarios mayores y menores.</font></font></font></p>
</li>
<li>
<p class="list-1-western" style="text-indent:0;widows:2;orphans:2;" align="justify"> 	<font color="#000000"><font face="Times New Roman, serif"><font size="1">Comentar 	cualquier error o usos indocumentados en un lenguaje o ambiente de 	desarrollo.</font></font></font></p>
</li>
<li>
<p class="list-1-western" style="text-indent:0;widows:2;orphans:2;" align="justify"> 	<font color="#000000"><font face="Times New Roman, serif"><font size="1">Justifique 	las violaciones de un estilo de programación adecuado.</font></font></font></p>
</li>
<li>
<p class="list-1-western" style="text-indent:0;widows:2;orphans:2;" align="justify"> 	<font color="#000000"><font face="Times New Roman, serif"><font size="1">No 	comente código malo, reescríbalo.</font></font></font></p>
</li>
</ul>
</li>
<h2 class="western">Comentarios de lineas individuales</h2>
<p class="western"><font size="3">Normalmente no se debe usar ya que es difícil decir algo útil sobre una sola línea de código. Las únicas razones válidas para usarlos es que el código de una línea sea muy complicado y no se pueda hacer más entendible o que la línea antes haya tenido un error y se quiera hacer un record del mismo (para lo cual es mejor tener un registro de errores a parte de todas formas).</font></p>
<h2 class="western">Comentarios de final de línea</h2>
<p class="western"><font size="3">A veces son útiles, pero usualmente presentan problemas. A menos que se alineen a la derecha del código con tabs hacen ver el código desordenado y no son fáciles de identificar. Alinearlos a la derecha del código es problemático y hace que sea necesario modificarlos si una línea que tenga uno es modificada.</font></p>
<p class="western"><font size="3">Estos comentarios no se deben usar para notas de mantenimiento, ni para múltiples líneas de código. Sólo deben ser usados para líneas individuales en el caso de que se quiera documentar declaraciones o marcar el final de bloques de código.</font></p>
<p class="western"><font size="3">Ejemplo de uso correcto:</font></p>
<pre style="text-align:left;"><font size="1">int boundary = 0;         // upper index of sorted part of array</font><font size="1">String insertVal = BLANK; // data elmt to insert in sorted part of array</font>

<span><font size="1">int insertPos = 0;        // position to insert elmt in sorted part of array</font></span></pre>
<h2 class="western"> Comentarios de bloques</h2>
<p class="western"><font size="3">Estos comentario siempre deben explicar la intención o el propósito del párrafo del bloque de código que le sigue. Deben decir cosas que el código mismo no puede. A pesar de que estos comentarios dan muchas explicaciones es mejor mantenerlos cortos haciendo un mayor esfuerzo en que el código mismo se documente y no en los comentarios.</font></p>
<p class="western"><font size="3">Algunas pautas a tener en cuenta:</font></p>
<h2 class="western">Comentarios de declaraciones de datos</h2>
<p class="western"><font size="3">En las declaraciones debeme documentar las unidades y el rango de datos numéricos, los números en nombres de variables que representan un código que no se entiende sin comentar, limitaciones de entradas de usuario, variables con significado en cada bit y variables globales.</font></p>
<h2 class="western">Comentarios de estructuras de control</h2>
<p class="western"><font size="3">Las estructuras de control deben documentarse para indicar su propósito y el motivo de su elección. Cada estructura debe tener una explicación de su función precediéndola y un comentario al final indicando su terminación.</font></p>
<p class="western"><font size="3">Ejemplo de comentarios de marca de terminación:</font></p>
<pre><font size="1">for ( tableIndex = 0; tableIndex &lt; tableCount; tableIndex++ ) {</font>

   <font size="1">while ( recordIndex &lt; recordCount ) {</font>

      <font size="1">if ( !IllegalRecordNumber( recordIndex ) ) {</font>

         <font size="1">...</font>

      <font size="1">} // if</font>

   <font size="1">} // while</font>

<font size="1">} // for</font></pre>
<h2 class="western"> Comentarios de rutinas</h2>
<p class="western"><font size="3">Las rutinas se deben comentar siempre. No se deben hacer grandes headers con mucha información, los que a veces son más largos que el mismo código. Un buen comentario de rutinas contiene los elementos mencionados en la sección 6 en template para módulos. No es necesario usar siempre todos los campos, sólo se usan si son necesarios.</font></p>
<h2 class="western">Comentarios de files, classes y programas</h2>
<p class="western"><font size="3">Las clases, los files y los programas se caracterizan por tener múltiples rutinas. Siempre, las rutinas agrupadas, deben tener una relación estrecha. Esto es lo que se debe documentar, un resumen del contenido de las rutinas. Una forma fácil para hacerlo es pensar en el motivo por el que se pusieron juntas. Para buenos comentarios siga la guía de los templates en la sección 6.</font></p>
<li>
<h1 class="western" align="left"><font face="Times New Roman, serif"><font size="3"><span><strong>CODIGO AUTODOCUMENTADO</strong></span></font></font></h1>
</li>
<p class="western">“<font size="3"><span>Se ha propuesto que la mejor solución al problema de documentación es usar lenguajes autodocumentados.”</span><sup><span>[2]</span></sup><span> Desde la aparición de los lenguajes de alto nivel es posible escribir nombres de rutinas, datos, estructuras, clases y archivos entendibles para seres humanos. Usar nombres sencillos y descriptivos hace la lectura del código mucho más fácil.</span></font></p>
<p class="western"><font size="3">Los comentarios deben ser sólo una herramienta para decir lo que no se puede decir en el código. Los lenguajes de programación son eso mismo, lenguajes, expresan instrucciones a seguir. Si alguien conoce el lenguaje, debe ser capaz de entender lo que dice, por lo tanto no es necesario decírselo en otro lenguaje. Debemos decirle en otro lenguaje, solamente lo que no puede entender si lee sólo el código. En el libro hemos aprendido como escribir nuestro código para que otros lo entiendan, ésta es la mejor solución para que otros disfruten la lectura de nuestros programas.</font></p>
<p class="western"><font size="3">Ejemplo:</font></p>
<h3 class="western">Código mal escrito:</h3>
<pre><font size="1">for ( i = 2; i &lt;= num; i++ ) {</font>

<font size="1">meetsCriteria[ i ] = true;</font>

<font size="1">}</font>

<font size="1">for ( i = 2; i &lt;= num / 2; i++ ) {</font>

<font size="1">j = i + i;</font>

<font size="1">while ( j &lt;= num ) {</font>

<font size="1">meetsCriteria[ j ] = false;</font>

<font size="1">j = j + i;</font>

<font size="1">}</font>

<font size="1">}</font>

<font size="1">for ( i = 1; i &lt;= num; i++ ) {</font>

<font size="1">if ( meetsCriteria[ i ] ) {</font>

<font size="1">System.out.println ( i + " meets criteria." );</font>

<font size="1">}</font>

}</pre>
<h3 class="western"> Código bien escrito:</h3>
<pre style="text-align:left;"><font size="1">for ( primeCandidate = 2; primeCandidate &lt;= num; primeCandidate++ ) {</font>

   <font size="1">isPrime[ primeCandidate ] = true;</font>

<font size="1">}</font><font size="1">for ( int factor = 2; factor &lt; ( num / 2 ); factor++ ) {</font>

    <font size="1">int factorableNumber = factor + factor;</font>

    <font size="1">while ( factorableNumber &lt;= num ) {</font>

        <font size="1">isPrime[ factorableNumber ] = false;</font>

        <font size="1">factorableNumber = factorableNumber + factor;</font>

    <font size="1">}</font>

<font size="1">}</font>

<font size="1">for ( primeCandidate = 1; primeCandidate &lt;= num; primeCandidate++ ) {</font>

   <font size="1">if ( isPrime[ primeCandidate ] ) {</font>

      <font size="1">System.out.println( primeCandidate + " is prime." );</font>

   <font size="1">}</font>

<font size="1">}</font></pre>
<li>
<h1 class="western"><strong>USO DE PSEUDOCODIGO</strong></h1>
</li>
<p><font size="3">El pseudocódigo trae muchas ventajas a la hora de programar. Primero que todo, es una herramienta útil para diseñar rutinas y clases. Escribir el pseudocódigo hace que el programador piense bien lo que quiere lograr y permite que cada línea de código que se escriba tenga un propósito específico y conocido, uno que el programador tiene bien claro; tanto que es capaz de escribirlo en su idioma. Además de esto, a la hora de terminar el código, los comentarios ya están ahí. Tenga en cuenta que la parte del pseudocódigo que dice exactamente lo que hace el código es reemplazada por éste, no se deja, ya que no agregaría nada útil al mismo.</font></p>
<li>
<h1 class="western"><strong>USO DE TEMPLATES</strong></h1>
<p class="western"><font size="3">Para documentar rutinas, clases y archivos es posible utilizar guías para saber qué es lo que debemos escribir. A continuación hay varios ejemplos de templates para documentación:</font></p>
<p class="western"><font size="3">Template para módulos:</font></p>
<ul>
<li>
<p class="list-1-western" style="text-indent:0;widows:2;orphans:2;" align="justify"> 	<font color="#000000"><font face="Times New Roman, serif">Propósito 	del módulo (una o dos oraciones).</font></font></p>
</li>
<li>
<p class="list-1-western" style="text-indent:0;widows:2;orphans:2;" align="justify"> 	<font color="#000000"><font face="Times New Roman, serif">Fecha de 	revisión.</font></font></p>
</li>
<li>
<p class="list-1-western" style="text-indent:0;widows:2;orphans:2;" align="justify"> 	<font color="#000000"><font face="Times New Roman, serif">Limitaciones 	y restricciones del algoritmo usado.</font></font></p>
</li>
<li>
<p class="list-1-western" style="text-indent:0;widows:2;orphans:2;" align="justify"> 	<font color="#000000"><font face="Times New Roman, serif">Descripción 	de datos de entrada y salida.</font></font></p>
</li>
<li>
<p class="list-1-western" style="text-indent:0;widows:2;orphans:2;" align="justify"> 	<font color="#000000"><font face="Times New Roman, serif">Suposiciones 	que deben ser tomadas en cuenta.</font></font></p>
</li>
<li>
<p class="list-1-western" style="text-indent:0;widows:2;orphans:2;" align="justify"> 	<font color="#000000"><font face="Times New Roman, serif">Tipos de 	errores y procedimientos de recuperación.</font></font></p>
</li>
<li>
<p class="list-1-western" style="text-indent:0;widows:2;orphans:2;" align="justify"> 	<font color="#000000"><font face="Times New Roman, serif">Efectos 	globales de la rutina.</font></font></p>
</li>
</ul>
<p class="list-1-western" style="margin-left:0;text-indent:0;widows:2;orphans:2;" align="justify"> <font color="#000000"><font face="Times New Roman, serif">Template para clases:</font></font></p>
<ul>
<li>
<p class="list-1-western" style="text-indent:0;widows:2;orphans:2;" align="justify"> 	<font color="#000000"><font face="Times New Roman, serif">Descripción 	del diseño utilizado.</font></font></p>
</li>
<li>
<p class="list-1-western" style="text-indent:0;widows:2;orphans:2;" align="justify"> 	<font color="#000000"><font face="Times New Roman, serif">Limitaciones 	y suposiciones.</font></font></p>
</li>
<li>
<p class="list-1-western" style="text-indent:0;widows:2;orphans:2;" align="justify"> 	<font color="#000000"><font face="Times New Roman, serif">Descripción 	de la interface para el usuario.</font></font></p>
</li>
</ul>
<p class="list-1-western" style="margin-left:0;text-indent:0;widows:2;orphans:2;" align="justify"> <font color="#000000"><font face="Times New Roman, serif">Template para files:</font></font></p>
<ul>
<li>
<p class="list-1-western" style="text-indent:0;widows:2;orphans:2;" align="justify"> 	<font color="#000000"><font face="Times New Roman, serif">Propósito 	y contenido del file.</font></font></p>
</li>
<li>
<p class="list-1-western" style="text-indent:0;widows:2;orphans:2;" align="justify"> 	<font color="#000000"><font face="Times New Roman, serif">Nombre, 	email y teléfono del autor.</font></font></p>
</li>
<li>
<p class="list-1-western" style="text-indent:0;widows:2;orphans:2;" align="justify"> 	<font color="#000000"><font face="Times New Roman, serif">Control de 	versiones.</font></font></p>
</li>
<li>
<p class="list-1-western" style="text-indent:0;widows:2;orphans:2;" align="justify"> 	<font color="#000000"><font face="Times New Roman, serif">Noticias 	legales y políticas de uso.</font></font></p>
</li>
</ul>
</li>
<p class="list-1-western" style="margin-left:0;text-indent:0;widows:2;orphans:2;" align="justify"> <font color="#000000"><font face="Times New Roman, serif">Nota: cada elemento del template se debe usar sólo si es necesario para la rutina. Por ejemplo, no debe describir errores, si no hay errores en esa rutina.</font></font></p>
<li>
<h1 class="western"><strong>REFERENCIAS</strong></h1>
</li>
</ol>
<ol>
<li>
<p align="left"><font size="3">McConnell, S. <em>Code Complete</em><span style="font-style:normal;">, 	Microsoft Press, 2004.</span></font></p>
</li>
<li>
<p align="left"><font size="3">Martin, J., McClure, C. <em>Software 	Maintenance: The Problem and its Solutions</em><span style="font-style:normal;">, 	Prentice-Hall, 1983.</span></font></p>
</li>
<li>
<p align="left"><font size="3">Marca, D., <em>Applying Software 	Engineering Principles</em><span style="font-style:normal;">, Little 	Brown and Company, 1984.</span></font></p>
</li>
<li>
<p align="left"><font size="3">King, D. <em>Current Practices in 	Software Development</em><span style="font-style:normal;">, Yourdon 	Press, 1984.</span></font></p>
</li>
<li>
<p align="left"><font size="3">Aron, J. D. <em>The Program 	Development Process</em><span style="font-style:normal;">, 	Addison-Wesley, 1974.</span></font></p>
</li>
</ol>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/karlsauter.wordpress.com/44/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/karlsauter.wordpress.com/44/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karlsauter.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karlsauter.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karlsauter.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karlsauter.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/karlsauter.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/karlsauter.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/karlsauter.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/karlsauter.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karlsauter.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karlsauter.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karlsauter.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karlsauter.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karlsauter.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karlsauter.wordpress.com/44/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlsauter.wordpress.com&amp;blog=1722223&amp;post=44&amp;subd=karlsauter&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://karlsauter.wordpress.com/2007/10/06/codigo-autodocumentado-self-documenting-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">karlsauter</media:title>
		</media:content>
	</item>
		<item>
		<title>Tamaños de los diferentes tipos de identificadores (variables) en C y C++</title>
		<link>http://karlsauter.wordpress.com/2007/09/20/tamanos-de-los-diferentes-tipos-de-identificadores-variables-en-c-y-c/</link>
		<comments>http://karlsauter.wordpress.com/2007/09/20/tamanos-de-los-diferentes-tipos-de-identificadores-variables-en-c-y-c/#comments</comments>
		<pubDate>Thu, 20 Sep 2007 20:41:04 +0000</pubDate>
		<dc:creator>karlsauter</dc:creator>
				<category><![CDATA[Programación I]]></category>

		<guid isPermaLink="false">http://karlsauter.wordpress.com/2007/09/20/tamanos-de-los-diferentes-tipos-de-identificadores-variables-en-c-y-c/</guid>
		<description><![CDATA[Los tamaños de cada tipo en C y C++ no son siempre iguales. Estos tamaños, no sólo dependen de la arquitectura de la computadora en la que se esté compilando, sino del compilador usado y a veces hasta del sistema operativo en el que se está compilando. &#160; Esto es algo que afecta la portabilidad [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlsauter.wordpress.com&amp;blog=1722223&amp;post=43&amp;subd=karlsauter&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="margin-bottom:0;">Los tamaños de cada tipo en C y C++ no son siempre iguales. Estos tamaños, no sólo dependen de la arquitectura de la computadora en la que se esté compilando, sino del compilador usado y a veces hasta del sistema operativo en el que se está compilando.</p>
<p style="margin-bottom:0;">&nbsp;</p>
<p style="margin-bottom:0;">Esto es algo que afecta la portabilidad del lenguaje ya que puede producir errores en el código cuando se compila en diferentes entornos. A pesar de esto si hay un mínimo en el tamaño de cada tipo, que, sin importar el entorno, siempre va a ser igual. Estos son:</p>
<p style="margin-bottom:0;">&nbsp;</p>
<p style="margin-bottom:0;">char&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-8 bits</p>
<p style="margin-bottom:0;">short int&#8212;&#8212;&#8212;&#8212;&#8211;16 bits</p>
<p style="margin-bottom:0;">int&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;16 bits</p>
<p style="margin-bottom:0;">long int&#8212;&#8212;&#8212;&#8212;&#8212;32 bits</p>
<p style="margin-bottom:0;">float&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-32 bits</p>
<p style="margin-bottom:0;">double&#8212;&#8212;&#8212;&#8212;&#8212;-64 bits</p>
<p style="margin-bottom:0;">long double&#8212;&#8212;&#8212;-64 bits</p>
<p style="margin-bottom:0;">&nbsp;</p>
<p style="margin-bottom:0;">Estos tamaños son el mínimo aceptado para cada tipo, pero pueden variar con el compilador, el sistema operativo y la arquitectura. Algunas herramientas que ayudan al manejo de tipos son el include &lt;stdint.c&gt; que permite especificar el tamaño de int que se quiere usar y el &#8216;AC_CHECK_SIZEOF&#8217; macro por GNU, que permite especificar los tamaños por medio de typedef.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/karlsauter.wordpress.com/43/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/karlsauter.wordpress.com/43/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karlsauter.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karlsauter.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karlsauter.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karlsauter.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/karlsauter.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/karlsauter.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/karlsauter.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/karlsauter.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karlsauter.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karlsauter.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karlsauter.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karlsauter.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karlsauter.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karlsauter.wordpress.com/43/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlsauter.wordpress.com&amp;blog=1722223&amp;post=43&amp;subd=karlsauter&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://karlsauter.wordpress.com/2007/09/20/tamanos-de-los-diferentes-tipos-de-identificadores-variables-en-c-y-c/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">karlsauter</media:title>
		</media:content>
	</item>
		<item>
		<title>Permutaciones</title>
		<link>http://karlsauter.wordpress.com/2007/09/20/permutaciones/</link>
		<comments>http://karlsauter.wordpress.com/2007/09/20/permutaciones/#comments</comments>
		<pubDate>Thu, 20 Sep 2007 17:03:53 +0000</pubDate>
		<dc:creator>karlsauter</dc:creator>
				<category><![CDATA[Programación I]]></category>

		<guid isPermaLink="false">http://karlsauter.wordpress.com/2007/09/20/permutaciones/</guid>
		<description><![CDATA[INTRODUCTION Una permutación es un arreglo (lista) de objetos en un orden específico. Un arreglo de n elementos puede tener diversas permutaciones, cada permutación se distingue de otra por el lugar que ocupan los elementos en esta. Por ejemplo en el arreglo [n] = {1, 2, 3, &#8230;, n}, el 1 ocupa el primer lugar, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlsauter.wordpress.com&amp;blog=1722223&amp;post=42&amp;subd=karlsauter&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<ol>
<li>
<h1 class="western"><font size="3"><strong>INTRODUCTION</strong></font></h1>
</li>
<p>Una permutación es un arreglo (lista) de objetos en un orden específico. Un arreglo de n elementos puede tener diversas permutaciones, cada permutación se distingue de otra por el lugar que ocupan los elementos en esta. Por ejemplo en el arreglo      [n] = {1, 2, 3, &#8230;, n}, el 1 ocupa el primer lugar, el 2 el segundo y así sucesivamente hasta llegar a n. En cambio la siguiente es una permutación distinta que la anterior ya que el 2 ocupa la primera posición y el 1 la segunda [n] = {2, 1, 3, &#8230;, n}.</p>
<li>
<h1 class="western" align="left"> 	<font size="3"><strong>FACTORIAL Y PERMUTACIONES</strong></font></h1>
</li>
<h2 class="western"><font size="3"><strong>Factorial</strong></font></h2>
<p>El factorial es una operación matemática denotada por n!. Donde n! = n(n-1)(n-2)&#8230;(2)(1). Eso signifca que 3! = 3(2)(1) = 6. La única permutación que no se puede definir así es la de 0 que es   0! = 1.</p>
<h2 class="western" align="left"><font size="3"><strong>Cantidad de permutaciones diferentes</strong></font></h2>
<p>La cantidad de permutaciones de un número n de elementos es igual a n!. Eso significa que la cantidad de permutaciones diferentes de un arreglo de 4 elementos es igual a 4! = 24.</p>
<li>
<h1 class="western" align="left"> 	<font size="3"><strong>NOTACION</strong></font></h1>
</li>
<p>Hay diferentes formas de notación para expresar permutaciones indicando los cambios que se realizan a un primer arreglo de elementos. Sólo presento tres, esto no implica que no haya mas.</p>
<h2 class="western" align="left"><font size="3"><strong>Lista de Inversiones</strong></font></h2>
<p>En una lista de inversiones (a<sub>1</sub>, &#8230;, a<sub>n)</sub> a<sub>i </sub>representa el número de elementos mayores que i que están a la izquierda de i. Por ejemplo la siguiente lista de inversiones (2 3 6 4 0 2 2 1 0) construye la permutacón de (5 9 1 8 2 6 4 7 3) de la siguiente manera:  Empezamos con el 9. Luego como a8 dice 1 escribimos 9 8. El siguiente dice 2 por lo tanto es 9 8 7. El elemento a6 dice 2, por lo que el 6 sólo tiene 2 elementos a su izquierda, entonces 9 8 6 7. Y así sucesivamente hasta llegar a (5 9 1 8 2 6 4 7 3).</p>
<h2 class="western" align="left"><font size="3"><strong>Ciclos</strong></font></h2>
<p>Los ciclos representan los números que cambian unos con otros, formando al final ciclos de cambios. Como ejemplo representaremos una permutación del siguiente arreglo (1 2 3 4). Si el ciclo es (2 3 4) (1) eso implica que el uno no cambia con nadie, el dos cambia con el tres, el tres con el cuatro y el cuatro con el dos. Des esta manera nuestro arreglo queda ( 1 4 2 3).</p>
<h2 class="western" align="left"><font size="3"><strong>Matriz</strong></font></h2>
<p>La matriz simplemente representa en una matriz de 2 x n los arreglos en su orden antiguo y nuevo.<br />
Ej:
<dl>
<dd>
<table border="1" cellpadding="4" cellspacing="0" rules="none" width="52">
<tr>
<td valign="top" width="100%">1 2 3</td>
</tr>
<tr>
<td valign="top" width="100%">2 1 3</td>
</tr>
</table>
</dd>
</dl>
<li>
<h1 class="western" align="left"> 	<font size="3"><strong>ORDEN</strong></font></h1>
</li>
<h2 class="western" align="left"><font size="3"><strong>Lexicográfico</strong></font></h2>
<p>El orden lexicográfico es el orden en el que más fácil pensamos cuando vemos permutaciones y queremos organizarlas. En este orden los número cambian de posiciones de dos en dos cada vez. Todas las combinaciones con el primer valor aparecen primero, luego el segundo valor, luego el tercero, el cuarto y asi sucesivamente hasta n. Igual pasa con las permutaciones dentro de ella. Los elementos en una posición menor siempre se quedan ahí hasta que se realizan todas las permutaciones con los elementos en una posición mayor que ellos.  Ej: (1 2 3), (1 3 2), (2 1 3), (2 3 1), (3 1 2), ( 3 2 1)</p>
<h2 class="western" align="left"><font size="3"><strong>De transposición</strong></font></h2>
<p>Es un orden en el que cada permutación siguiente difiere de la anterior por la transposición de dos elementos adyacentes. Hay diferentes formas de lograr este orden. Por eso un mismo arreglo puede tener diferentes ordenes de transposición.  Por ejemplo: 123, 132, 312, 321, 231, 213</p>
<li>
<h1 class="western" align="left"> 	<font size="3"><strong>REFERENCIAS</strong></font></h1>
</li>
</ol>
<ol>
<li>
<p style="margin-bottom:0;" align="left">ACM, <em>Collected 	Algorithms from ACM</em><span style="font-style:normal;">, 71, 86, 	102, 202</span></p>
</li>
<li>
<p style="margin-bottom:0;" align="left">Knuth, Donald, 	<em>Fundamental Algorithms</em></p>
</li>
<li>
<p style="margin-bottom:0;" align="left">Skiena, Steve S., <em>The 	algorithm Design Manual</em></p>
</li>
<li>
<p style="margin-bottom:0;font-style:normal;" align="left">Oosterwal, 	Erik, <em>All Permutations Routine</em><span style="font-style:normal;">, 	http://www.geocities.com/oosterwal/computer/combinations.html</span></p>
</li>
<li>
<p style="margin-bottom:0;font-style:normal;" align="left"><em>Recombining 	Permutations</em><span style="font-style:normal;">,</span></p>
<p style="margin-bottom:0;font-style:normal;" align="left">http://www.cut-the-knot.org/Curriculum/Combinatorics/PermOnCircle.shtml</p>
</li>
<li>
<p style="margin-bottom:0;font-style:normal;" align="left"><em>Permutation</em>, 	http://mathworld.wolfram.com</p>
</li>
<li>
<p style="margin-bottom:0;font-style:normal;" align="left"><em>Finite-Geometry 	Models</em>,</p>
<p style="margin-bottom:0.06in;font-style:normal;" align="left">http://www.cut-the-knot.org/do_you_know/permutation.shtml#permutation</p>
</li>
</ol>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/karlsauter.wordpress.com/42/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/karlsauter.wordpress.com/42/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karlsauter.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karlsauter.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karlsauter.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karlsauter.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/karlsauter.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/karlsauter.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/karlsauter.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/karlsauter.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karlsauter.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karlsauter.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karlsauter.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karlsauter.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karlsauter.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karlsauter.wordpress.com/42/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlsauter.wordpress.com&amp;blog=1722223&amp;post=42&amp;subd=karlsauter&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://karlsauter.wordpress.com/2007/09/20/permutaciones/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">karlsauter</media:title>
		</media:content>
	</item>
		<item>
		<title>Análisis y Diseño</title>
		<link>http://karlsauter.wordpress.com/2007/05/19/analisis-y-diseno/</link>
		<comments>http://karlsauter.wordpress.com/2007/05/19/analisis-y-diseno/#comments</comments>
		<pubDate>Sun, 20 May 2007 03:45:00 +0000</pubDate>
		<dc:creator>karlsauter</dc:creator>
				<category><![CDATA[Análisis y Diseño I]]></category>

		<guid isPermaLink="false">http://karlsauter.wordpress.com/2007/05/19/analisis-y-diseno/</guid>
		<description><![CDATA[Esta es una de las fases del ciclo de vida de un software. Según la Política del Ciclo de Vida del Desarrollo de Sistemas del U.S. House of Representatives, esta fase es “[...] un paso complejo y crítico para determinar cual diseño de sistema, basado en ingeniería de sistemas y análisis tecnológico, cumple con los [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlsauter.wordpress.com&amp;blog=1722223&amp;post=41&amp;subd=karlsauter&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="margin-bottom:0;"><font size="2">Esta es una de las fases del ciclo de vida de un software. Según la Política del Ciclo de Vida del Desarrollo de Sistemas del U.S. House of Representatives, esta fase es “[...] un paso complejo y crítico para determinar cual diseño de sistema, basado en ingeniería de sistemas y análisis tecnológico, cumple con los requerimientos del usuario y el sistema” [4]. </font></p>
<p style="margin-bottom:0;"><font size="2">El análisis es uno de los pasos más importantes ya que consiste en obtener los requerimientos y necesidades del usuario, sin los cuales no se puede presentar un sistema que sea útil para aquel que lo solicita. Wikipedia dice que los usuarios usualmente saben lo que quieren, pero no lo que el software debe hacer. Durante el análisis se estudia el sistema dividiéndolo en partes (funciones, componentes u objetos) para entender como se relacionan, y luego entender el sistema como un todo.</font></p>
<p style="margin-bottom:0;"><font size="2">La IEEE define el diseño como “1) [...] el proceso de definir la arquitectura, componentes, interfaces, y otras características de un sistema o componente 2) Las características de un sistema o software que son seleccionadas por un desarrollador para cumplir con los requerimientos” [2] obtenidos en el análisis.</font></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/karlsauter.wordpress.com/41/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/karlsauter.wordpress.com/41/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karlsauter.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karlsauter.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karlsauter.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karlsauter.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/karlsauter.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/karlsauter.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/karlsauter.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/karlsauter.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karlsauter.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karlsauter.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karlsauter.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karlsauter.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karlsauter.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karlsauter.wordpress.com/41/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlsauter.wordpress.com&amp;blog=1722223&amp;post=41&amp;subd=karlsauter&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://karlsauter.wordpress.com/2007/05/19/analisis-y-diseno/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">karlsauter</media:title>
		</media:content>
	</item>
		<item>
		<title>Modelo de Datos</title>
		<link>http://karlsauter.wordpress.com/2007/05/19/modelo-de-datos/</link>
		<comments>http://karlsauter.wordpress.com/2007/05/19/modelo-de-datos/#comments</comments>
		<pubDate>Sun, 20 May 2007 03:44:00 +0000</pubDate>
		<dc:creator>karlsauter</dc:creator>
				<category><![CDATA[Análisis y Diseño I]]></category>

		<guid isPermaLink="false">http://karlsauter.wordpress.com/2007/05/19/modelo-de-datos/</guid>
		<description><![CDATA[La IEEE lo define como “[...] una abstracción del mundo real que incorpora solo aquellas propiedades del entorno a modelar que son relevantes para la aplicación que se desea desarrollar. Normalmente define un grupo de entidades, sus atributos y las relaciones entre ellos. Es independiente de un sistema de computadora y de sus estructuras de [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlsauter.wordpress.com&amp;blog=1722223&amp;post=40&amp;subd=karlsauter&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="margin-bottom:0;"><font size="2">La IEEE lo define como “[...] una abstracción del mundo real que incorpora solo aquellas propiedades del entorno a modelar que son relevantes para la aplicación que se desea desarrollar. Normalmente define un grupo de entidades, sus atributos y las relaciones entre ellos. Es independiente de un sistema de computadora y de sus estructuras de datos asociadas” [2]. El modelo de datos toma un problema o una situación de la realidad para la cual se desea desarrollar una aplicación y la representa por medio de un modelo para entender de mejor forma los elementos que la componen, las características de estos que son relevantes para el desarrollo y operación de la aplicación y las relaciones entre ellos.</font></p>
<p style="margin-bottom:0;"><font size="2">Existen esencialmente dos estilos de modelo de datos: lógicos y físicos. Los lógicos describen a través de símbolos las entidades, sus atributos y las relaciones entre ellos; mientras que los físicos se usan para diseñar el esquema interno de una base de datos, usando tablas, las columnas que éstas van a tener y las relaciones entre las tablas.</font></p>
<p style="margin-bottom:0;"><font size="2">Los pasos para modelar una realidad son:</font></p>
<ul>
<li>
<p style="margin-bottom:0;"><font size="2">Identificar  entidades.</font></p>
</li>
<li>
<p style="margin-bottom:0;"><font size="2">Identificar  atributos.</font></p>
</li>
</ul>
<ul>
<li>
<p style="margin-bottom:0;"><font size="2">Identificar  relaciones.</font></p>
</li>
<li>
<p style="margin-bottom:0;"><font size="2">Aplicar  patrones de modelos de datos.</font></p>
</li>
<li>
<p style="margin-bottom:0;"><font size="2">Asignar  llaves.</font></p>
</li>
<li>
<p style="margin-bottom:0;"><font size="2">Normalizar  para reducir redundancia de datos.</font></p>
</li>
<li>
<p style="margin-bottom:0;"><font size="2">Denormalizar  para mejorar el desempeño.</font></p>
</li>
</ul>
<p style="margin-bottom:0;"><font size="2">El modelo más usado es el relacional que asume que todos los datos son representados por medio de relaciones matemáticas. Esto permite que las relaciones sean expresadas mediante tablas y relaciones entre ellas. Otro modelo es el entidad relación o ER. Por medio de éste los datos se representan haciendo uso de entidades y sus características. Normalmente se comienza con este sistema u otro y luego se pasa al relacional para poder implementar la base de datos en una computadora.</font></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/karlsauter.wordpress.com/40/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/karlsauter.wordpress.com/40/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karlsauter.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karlsauter.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karlsauter.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karlsauter.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/karlsauter.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/karlsauter.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/karlsauter.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/karlsauter.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karlsauter.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karlsauter.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karlsauter.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karlsauter.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karlsauter.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karlsauter.wordpress.com/40/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlsauter.wordpress.com&amp;blog=1722223&amp;post=40&amp;subd=karlsauter&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://karlsauter.wordpress.com/2007/05/19/modelo-de-datos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">karlsauter</media:title>
		</media:content>
	</item>
		<item>
		<title>Ciclo de vida de un software</title>
		<link>http://karlsauter.wordpress.com/2007/05/19/ciclo-de-vida-de-un-software/</link>
		<comments>http://karlsauter.wordpress.com/2007/05/19/ciclo-de-vida-de-un-software/#comments</comments>
		<pubDate>Sun, 20 May 2007 03:43:00 +0000</pubDate>
		<dc:creator>karlsauter</dc:creator>
				<category><![CDATA[Análisis y Diseño I]]></category>

		<guid isPermaLink="false">http://karlsauter.wordpress.com/2007/05/19/ciclo-de-vida-de-un-software/</guid>
		<description><![CDATA[El ciclo de vida es un proceso de varias etapas que comienza con la necesidad de un usuario o cliente, produce un software que satisface esa necesidad y termina con el desecho de la aplicación. El proceso se lleva a cabo mediante varias etapas. Usualmente estas etapas son: Planificación: Análisis: Diseño. Implementación. Prueba. Instalación. Mantenimiento. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlsauter.wordpress.com&amp;blog=1722223&amp;post=39&amp;subd=karlsauter&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="margin-bottom:0;"><font size="2">El ciclo de vida es un proceso de varias etapas que comienza con la necesidad de un usuario o cliente, produce un software que satisface esa necesidad y termina con el desecho de la aplicación. El proceso se lleva a cabo mediante varias etapas. Usualmente estas etapas son:</font></p>
<ul>
<li>
<p style="margin-bottom:0;"><font size="2">Planificación:  </font></p>
</li>
<li>
<p style="margin-bottom:0;"><font size="2">Análisis:  </font></p>
</li>
<li>
<p style="margin-bottom:0;"><font size="2">Diseño.</font></p>
</li>
<li>
<p style="margin-bottom:0;"><font size="2">Implementación.</font></p>
</li>
<li>
<p style="margin-bottom:0;"><font size="2">Prueba.</font></p>
</li>
<li>
<p style="margin-bottom:0;"><font size="2">Instalación.</font></p>
</li>
<li>
<p style="margin-bottom:0;"><font size="2">Mantenimiento.</font></p>
</li>
</ul>
<p style="margin-bottom:0;"><font size="2">Algunos autores presentan más y otros menos, otros usan nombres diferentes, pero todos siguen la misma línea. Estas etapas se pueden llevar a cabo de diferentes maneras. Pueden ser llevadas a cabo de diferentes maneras. Depende del problema que se esté enfrentando podemos elegir uno de los siguientes modelos para trabajar:</font></p>
<ul>
<li>
<p style="margin-bottom:0;"><font size="2">Cascada.</font></p>
</li>
<li>
<p style="margin-bottom:0;"><font size="2">Espiral.</font></p>
</li>
<li>
<p style="margin-bottom:0;"><font size="2">Evolutivo.</font></p>
</li>
<li>
<p style="margin-bottom:0;"><font size="2">Formal.</font></p>
</li>
<li>
<p style="margin-bottom:0;"><font size="2">Iterativo.</font></p>
</li>
</ul>
<p style="margin-bottom:0;"><font size="2">El modelo de cascada es, en mi opinión, el más limitante al momento de trabajar. Requiere mucho tiempo y hace que el proyecto se detenga en momentos de falta de información o de ideas, pero permite la mayor calidad. El modelo consiste en no comenzar ninguna etapa hasta que la anterior no sea completada totalmente. Con este método de trabajo es difícil comenzar a trabajar, ya que las ideas tienen que estar totalmente claras, las necesidades del cliente tienen que estar descritas con mucha exactitud y el programador o el equipo debe estar seguro de como va a trabajar y exactamente qué y cómo lo va a hacer. A pesar de que esto requiere mucho tiempo, asegura que no habrá que regresar en las etapas a re diseñar ideas que no estaban claras ya que, desde el principio estará claro y seguro lo que hay que hacer.</font></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/karlsauter.wordpress.com/39/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/karlsauter.wordpress.com/39/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karlsauter.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karlsauter.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karlsauter.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karlsauter.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/karlsauter.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/karlsauter.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/karlsauter.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/karlsauter.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karlsauter.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karlsauter.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karlsauter.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karlsauter.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karlsauter.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karlsauter.wordpress.com/39/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlsauter.wordpress.com&amp;blog=1722223&amp;post=39&amp;subd=karlsauter&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://karlsauter.wordpress.com/2007/05/19/ciclo-de-vida-de-un-software/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">karlsauter</media:title>
		</media:content>
	</item>
		<item>
		<title>Ingeniería de Software</title>
		<link>http://karlsauter.wordpress.com/2007/05/18/ingenieria-de-software/</link>
		<comments>http://karlsauter.wordpress.com/2007/05/18/ingenieria-de-software/#comments</comments>
		<pubDate>Fri, 18 May 2007 17:13:00 +0000</pubDate>
		<dc:creator>karlsauter</dc:creator>
				<category><![CDATA[Análisis y Diseño I]]></category>

		<guid isPermaLink="false">http://karlsauter.wordpress.com/2007/05/18/ingenieria-de-software/</guid>
		<description><![CDATA[Para empezar es bueno discutir que “no es” la ingeniería de software. No es una disciplina dedicada a la creación de programas. Tampoco trabaja solo con la parte teórica ni solo con sistematización. No es una ciencia y por lo tanto no es capaz de producir resultados ni predicciones exactas y sin errores. Es posible [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlsauter.wordpress.com&amp;blog=1722223&amp;post=38&amp;subd=karlsauter&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="margin-bottom:0;"><span style="font-size:85%;">Para empezar es bueno discutir que “no es” la ingeniería de software. No es una disciplina dedicada a la creación de programas. Tampoco trabaja solo con la parte teórica ni solo con sistematización. No es una ciencia y por lo tanto no es capaz de producir resultados ni predicciones exactas y sin errores. Es posible diseñar aplicaciones sin la necesidad de ser un ingeniero y se puede ser muy bueno en análisis de problemas y creación de algoritmos y soluciones computarizadas sin aplicar la ingeniería.</span></p>
<p style="margin-bottom:0;"><span style="font-size:85%;">Para definir la ingeniería de software es bueno comenzar definiendo cada término por separado. Según el diccionario de Wikipedia, una ingeniería es la aplicación de la ciencia a las necesidades humanas. El diccionario Vox dice que es la aplicación de la ciencia al comercio o la industria. Por otro lado el Software son los programas escritas en código que le dicen a una computadora que debe hacer con los datos que son suministrados y su documentación respectiva. Así, la ingeniería de software es la aplicación de la ciencia al desarrollo de programas para computadoras.</span></p>
<p style="margin-bottom:0;"><span style="font-size:85%;">La definición oficial de la IEEE dice lo siguiente: “la ingeniería de software es la aplicación de un abordaje sistemático, disciplinado y cuantificable al desarrollo, operación y mantenimiento de software” [2]. Como podemos ver, es simplemente una aproximación distinta al software, no solo para crearlo, sino para operarlo y mantenerlo. Esto quiere decir que es la aplicación de procesos científicos, estudiados y documentados para la creación, manipulación o modificación de un software durante su tiempo de vida.</span></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/karlsauter.wordpress.com/38/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/karlsauter.wordpress.com/38/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karlsauter.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karlsauter.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karlsauter.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karlsauter.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/karlsauter.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/karlsauter.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/karlsauter.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/karlsauter.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karlsauter.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karlsauter.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karlsauter.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karlsauter.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karlsauter.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karlsauter.wordpress.com/38/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlsauter.wordpress.com&amp;blog=1722223&amp;post=38&amp;subd=karlsauter&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://karlsauter.wordpress.com/2007/05/18/ingenieria-de-software/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">karlsauter</media:title>
		</media:content>
	</item>
		<item>
		<title>Examen ejercicio 2</title>
		<link>http://karlsauter.wordpress.com/2006/03/14/examen-ejercicio-2/</link>
		<comments>http://karlsauter.wordpress.com/2006/03/14/examen-ejercicio-2/#comments</comments>
		<pubDate>Tue, 14 Mar 2006 22:31:00 +0000</pubDate>
		<dc:creator>karlsauter</dc:creator>
				<category><![CDATA[Sistemas Operativos]]></category>

		<guid isPermaLink="false">http://karlsauter.wordpress.com/2006/03/14/examen-ejercicio-2/</guid>
		<description><![CDATA[Resuelva los siguientes algoritmos de Manejo de Procesos y muestre el tiempo promedio en cada caso: (Nota: El cambio de contexto de RR es de 1 milisegundo) a. FCFS Tiempo de espera promedio: 57.4 Tiempo de retorno promedio: 82.8 b. SJN Tiempo de espera promedio: 39 Tiempo de retorno promedio: 64.4 c. SRT Tiempo de [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlsauter.wordpress.com&amp;blog=1722223&amp;post=18&amp;subd=karlsauter&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Resuelva los siguientes algoritmos de Manejo de Procesos y muestre el tiempo promedio en cada caso: (Nota: El cambio de contexto de RR es de 1 milisegundo)</p>
<p>a. FCFS<br />
<a href="http://photos1.blogger.com/blogger/7747/2128/1600/a.0.jpg"><img src="http://photos1.blogger.com/blogger/7747/2128/400/a.0.jpg" style="float:left;margin:0 10px 10px 0;" border="0" /></a></p>
<p>Tiempo de espera promedio: 57.4<br />
Tiempo de retorno promedio: 82.8</p>
<p>b. SJN<br />
<a href="http://photos1.blogger.com/blogger/7747/2128/1600/b.jpg"><img src="http://photos1.blogger.com/blogger/7747/2128/400/b.jpg" style="float:left;margin:0 10px 10px 0;" border="0" /></a></p>
<p>Tiempo de espera promedio: 39<br />
Tiempo de retorno promedio: 64.4</p>
<p>c. SRT<br />
<a href="http://photos1.blogger.com/blogger/7747/2128/1600/c.jpg"><img src="http://photos1.blogger.com/blogger/7747/2128/400/c.jpg" style="float:left;margin:0 10px 10px 0;" border="0" /></a></p>
<p>Tiempo de espera promedio: 40<br />
Tiempo de retorno promedio: 65.4</p>
<p>d. Round Robin<br />
<a href="http://photos1.blogger.com/blogger/7747/2128/1600/d1.jpg"><img src="http://photos1.blogger.com/blogger/7747/2128/400/d1.jpg" style="float:left;margin:0 10px 10px 0;" border="0" /></a></p>
<p><a href="http://photos1.blogger.com/blogger/7747/2128/1600/d2.jpg"><img src="http://photos1.blogger.com/blogger/7747/2128/400/d2.jpg" style="float:left;margin:0 10px 10px 0;" border="0" /></a></p>
<p><a href="http://photos1.blogger.com/blogger/7747/2128/1600/d3.jpg"><img src="http://photos1.blogger.com/blogger/7747/2128/400/d3.jpg" style="float:left;width:401px;height:53px;margin:0 10px 10px 0;" border="0" height="37" width="287" /></a></p>
<p>Tiempo de espera promedio: 68.6<br />
Tiempo de retorno promedio: 102.8</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/karlsauter.wordpress.com/18/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/karlsauter.wordpress.com/18/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karlsauter.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karlsauter.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karlsauter.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karlsauter.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/karlsauter.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/karlsauter.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/karlsauter.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/karlsauter.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karlsauter.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karlsauter.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karlsauter.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karlsauter.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karlsauter.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karlsauter.wordpress.com/18/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlsauter.wordpress.com&amp;blog=1722223&amp;post=18&amp;subd=karlsauter&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://karlsauter.wordpress.com/2006/03/14/examen-ejercicio-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">karlsauter</media:title>
		</media:content>

		<media:content url="http://photos1.blogger.com/blogger/7747/2128/400/a.0.jpg" medium="image" />

		<media:content url="http://photos1.blogger.com/blogger/7747/2128/400/b.jpg" medium="image" />

		<media:content url="http://photos1.blogger.com/blogger/7747/2128/400/c.jpg" medium="image" />

		<media:content url="http://photos1.blogger.com/blogger/7747/2128/400/d1.jpg" medium="image" />

		<media:content url="http://photos1.blogger.com/blogger/7747/2128/400/d2.jpg" medium="image" />

		<media:content url="http://photos1.blogger.com/blogger/7747/2128/400/d3.jpg" medium="image" />
	</item>
		<item>
		<title>Examen ejercicio 1</title>
		<link>http://karlsauter.wordpress.com/2006/03/14/examen-ejercicio-1/</link>
		<comments>http://karlsauter.wordpress.com/2006/03/14/examen-ejercicio-1/#comments</comments>
		<pubDate>Tue, 14 Mar 2006 22:05:00 +0000</pubDate>
		<dc:creator>karlsauter</dc:creator>
				<category><![CDATA[Sistemas Operativos]]></category>

		<guid isPermaLink="false">http://karlsauter.wordpress.com/2006/03/14/examen-ejercicio-1/</guid>
		<description><![CDATA[Dada la siguiente tabla de páginas en memoria resuelva y calcule los fallos de página para satisfacer la demanda requerida asumiendo un Frame de 2 páginas: ABDEAEDACDEACBDE a. FIFO Fallos: 13/16 = 81.25% Exitos: 3/16 = 18.75% a. LRU Fallos: 12/16 = 75% Exitos: 4/16 = 25% b. MRU Fallos: 13/16 = 81.25% Exitos: 3/16 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlsauter.wordpress.com&amp;blog=1722223&amp;post=17&amp;subd=karlsauter&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Dada la siguiente tabla de páginas en memoria resuelva y calcule los fallos de página para satisfacer la demanda requerida asumiendo un Frame de 2 páginas:<br />
<a href="http://photos1.blogger.com/blogger/7747/2128/1600/punto1.jpg"><img src="http://photos1.blogger.com/blogger/7747/2128/400/punto1.jpg" style="float:left;margin:0 10px 10px 0;" border="0" /></a></p>
<p>ABDEAEDACDEACBDE</p>
<p>a. FIFO<br />
<a href="http://photos1.blogger.com/blogger/7747/2128/1600/EXAMEN.0.jpg"><img src="http://photos1.blogger.com/blogger/7747/2128/400/EXAMEN.jpg" style="float:left;margin:0 10px 10px 0;" border="0" /></a></p>
<p>Fallos: 13/16 = 81.25%<br />
Exitos: 3/16 = 18.75%</p>
<p>a. LRU<br />
<a href="http://photos1.blogger.com/blogger/7747/2128/1600/examen1.jpg"><img src="http://photos1.blogger.com/blogger/7747/2128/400/examen1.jpg" style="float:left;margin:0 10px 10px 0;" border="0" /></a></p>
<p>Fallos: 12/16 = 75%<br />
Exitos: 4/16 = 25%</p>
<p>b. MRU<br />
<a href="http://photos1.blogger.com/blogger/7747/2128/1600/examen2.jpg"><img src="http://photos1.blogger.com/blogger/7747/2128/400/examen2.jpg" style="float:left;margin:0 10px 10px 0;" border="0" /></a></p>
<p>Fallos: 13/16 = 81.25%<br />
Exitos: 3/16 = 18.75%</p>
<p>c. LFU<br />
<a href="http://photos1.blogger.com/blogger/7747/2128/1600/examen3.jpg"><img src="http://photos1.blogger.com/blogger/7747/2128/400/examen3.jpg" style="float:left;margin:0 10px 10px 0;" border="0" /></a></p>
<p>Fallos: 15/16 = 93.75%<br />
Exitos: 1/16 = 6.25%</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/karlsauter.wordpress.com/17/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/karlsauter.wordpress.com/17/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karlsauter.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karlsauter.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karlsauter.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karlsauter.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/karlsauter.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/karlsauter.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/karlsauter.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/karlsauter.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karlsauter.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karlsauter.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karlsauter.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karlsauter.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karlsauter.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karlsauter.wordpress.com/17/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlsauter.wordpress.com&amp;blog=1722223&amp;post=17&amp;subd=karlsauter&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://karlsauter.wordpress.com/2006/03/14/examen-ejercicio-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">karlsauter</media:title>
		</media:content>

		<media:content url="http://photos1.blogger.com/blogger/7747/2128/400/punto1.jpg" medium="image" />

		<media:content url="http://photos1.blogger.com/blogger/7747/2128/400/EXAMEN.jpg" medium="image" />

		<media:content url="http://photos1.blogger.com/blogger/7747/2128/400/examen1.jpg" medium="image" />

		<media:content url="http://photos1.blogger.com/blogger/7747/2128/400/examen2.jpg" medium="image" />

		<media:content url="http://photos1.blogger.com/blogger/7747/2128/400/examen3.jpg" medium="image" />
	</item>
		<item>
		<title>Ejercicios capitulo 4</title>
		<link>http://karlsauter.wordpress.com/2006/02/20/ejercicios-capitulo-4/</link>
		<comments>http://karlsauter.wordpress.com/2006/02/20/ejercicios-capitulo-4/#comments</comments>
		<pubDate>Mon, 20 Feb 2006 05:49:00 +0000</pubDate>
		<dc:creator>karlsauter</dc:creator>
				<category><![CDATA[Sistemas Operativos]]></category>

		<guid isPermaLink="false">http://karlsauter.wordpress.com/2006/02/20/ejercicios-capitulo-4/</guid>
		<description><![CDATA[5. El diagrama que sigue (adaptado de Madnick &#38; Donovan, 1974) es un modelo de procesos simplificado de usted, en el cual solamente hay dos estados: durmiendo y despierto. Usted efectúa la transición de despierto a durmiendo cuando está cansado, y de durmiendo a despierto cuando suena el despertador. a) Agregue tres estados adicionales al [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlsauter.wordpress.com&amp;blog=1722223&amp;post=16&amp;subd=karlsauter&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>5. El diagrama que sigue (adaptado de Madnick &amp; Donovan, 1974) es un modelo de procesos simplificado de usted, en el cual solamente hay dos estados: durmiendo y despierto.<br />
<a href="http://photos1.blogger.com/blogger/7747/2128/1600/Picture17.gif"><img src="http://photos1.blogger.com/blogger/7747/2128/320/Picture17.gif" style="float:left;margin:0 10px 10px 0;" border="0" /></a></p>
<p>Usted efectúa la transición de despierto a durmiendo cuando está cansado, y de durmiendo a despierto cuando suena el despertador.<br />
a) Agregue tres estados adicionales al diagrama (por ejemplo, uno podría ser comer).<br />
Comiendo<br />
Haciendo tareas<br />
Jugando<br />
b) Enuncie todas las transiciones posibles entre los cinco estados.<br />
De durmiendo a: despierto.<br />
De comiendo a: haciendo tareas, durmiendo y jugando.<br />
De haciendo tareas a: comiendo, durmiendo y jugando.<br />
De jugando a: comiendo, haciendo tareas y durmiendo.<br />
De despierto a: durmiendo.</p>
<p>6. ¿Cuál es la relación entre el tiempo de retomo, tiempo de ciclo CPU y tiempo de espera? Escriba, si es posible, una ecuación para expresar esta relación.<br />
El tiempo de retorno es igual a la suma del tiempo de ciclo CPU y el tiempo de espera.<br />
Tiempo de retorno = tiempo de ciclo CPU + tiempo de espera</p>
<p>7. Dada la información siguiente:<br />
<a href="http://photos1.blogger.com/blogger/7747/2128/1600/Picture15.gif"><img src="http://photos1.blogger.com/blogger/7747/2128/400/Picture15.gif" style="float:left;margin:0 10px 10px 0;" border="0" /></a></p>
<p>Dibuje una línea de tiempo para cada uno de los siguientes algoritmos de planificación (pudiera resultar útil calcular primero un tiempo de inicio y de terminación para cada tarea)<br />
a) FCFS<br />
<a href="http://photos1.blogger.com/blogger/7747/2128/1600/Untitled-1%20copy.1.gif"><img src="http://photos1.blogger.com/blogger/7747/2128/400/Untitled-1%20copy.1.jpg" style="float:left;margin:0 10px 10px 0;" border="0" /></a></p>
<p>b) SJN<br />
<a href="http://photos1.blogger.com/blogger/7747/2128/1600/Untitled-2%20copy.1.gif"><img src="http://photos1.blogger.com/blogger/7747/2128/400/Untitled-2%20copy.1.jpg" style="float:left;margin:0 10px 10px 0;" border="0" /></a></p>
<p>c) SRT<br />
<a href="http://photos1.blogger.com/blogger/7747/2128/1600/Untitled-3%20copy.0.gif"><img src="http://photos1.blogger.com/blogger/7747/2128/400/Untitled-3%20copy.0.jpg" style="float:left;margin:0 10px 10px 0;" border="0" /></a></p>
<p>d) Round robin (con un quantum de tiempo de 2, ignore el cambio por contexto y las esperas<br />
naturales)<br />
<a href="http://photos1.blogger.com/blogger/7747/2128/1600/Untitled-4%20copy.0.gif"><img src="http://photos1.blogger.com/blogger/7747/2128/400/Untitled-4%20copy.0.jpg" style="float:left;margin:0 10px 10px 0;" border="0" /></a></p>
<p>8. Con la información del ejercicio 3, complete el diagrama calculando el tiempo de espera y el tiempo de retomo para cada uno de los trabajos de los siguientes algo­ritmos de programación (ignore la carga general por cambio por contexto)<br />
a) FCFS<br />
b) SJN<br />
c) SRT<br />
d) Round robin (con un tiempo de quantum de 2)<br />
<a href="http://photos1.blogger.com/blogger/7747/2128/1600/Picture16.gif"><img src="http://photos1.blogger.com/blogger/7747/2128/400/Picture16.jpg" style="float:left;margin:0 10px 10px 0;" border="0" /></a></p>
<p>9. Use la información del ejercicio 3 a fin de calcular el tiempo de espera promedio y el tiempo de retomo promedio para cada uno de los algoritmos de programación que siguen e indique cuál da los mejores resultados.<br />
a) FCFS<br />
Tiempo de espera promedio = (0 + 10 + 12 + 15 + 16) / 5 = 10.6<br />
Tiempo de retorno promedio = (10 + 12 + 15 + 16 + 21) / 5 = 14.8<br />
b) SJN<br />
Tiempo de espera promedio = (11 + 1 + 3 + 0 + 6) / 5 = 4.2<br />
Tiempo de retorno promedio = (21 + 3 + 6 + 1 + 11) / 5 = 8.4<br />
c) SRT<br />
Tiempo de espera promedio = (11 + 1 + 4 + 4 + 7) / 5 = 5.4<br />
Tiempo de retorno promedio = (21 + 3 + 7 + 5 + 12) / 5 = 9.6<br />
d) Round robin (con un quantum de tiempo de 2)<br />
Tiempo de espera promedio = (11 + 2 + 9 + 6 + 10) / 5 = 7.6<br />
Tiempo de retorno promedio = (221+4+12+7+15) /5 = 11.8<br />
El mejor resultado lo obtuvo el algoritmo SJN (Shortest Job Now) con un tiempo de espera promedio de 4.2 y un tiempo de retorno promedio de 8.4; ambos los más bajos.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/karlsauter.wordpress.com/16/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/karlsauter.wordpress.com/16/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karlsauter.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karlsauter.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karlsauter.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karlsauter.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/karlsauter.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/karlsauter.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/karlsauter.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/karlsauter.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karlsauter.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karlsauter.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karlsauter.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karlsauter.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karlsauter.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karlsauter.wordpress.com/16/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlsauter.wordpress.com&amp;blog=1722223&amp;post=16&amp;subd=karlsauter&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://karlsauter.wordpress.com/2006/02/20/ejercicios-capitulo-4/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">karlsauter</media:title>
		</media:content>

		<media:content url="http://photos1.blogger.com/blogger/7747/2128/320/Picture17.gif" medium="image" />

		<media:content url="http://photos1.blogger.com/blogger/7747/2128/400/Picture15.gif" medium="image" />

		<media:content url="http://photos1.blogger.com/blogger/7747/2128/400/Untitled-1%20copy.1.jpg" medium="image" />

		<media:content url="http://photos1.blogger.com/blogger/7747/2128/400/Untitled-2%20copy.1.jpg" medium="image" />

		<media:content url="http://photos1.blogger.com/blogger/7747/2128/400/Untitled-3%20copy.0.jpg" medium="image" />

		<media:content url="http://photos1.blogger.com/blogger/7747/2128/400/Untitled-4%20copy.0.jpg" medium="image" />

		<media:content url="http://photos1.blogger.com/blogger/7747/2128/400/Picture16.jpg" medium="image" />
	</item>
	</channel>
</rss>
