SG #03 https://sg.com.mx/ en El componente X. Generación de código con templates. https://sg.com.mx/articulos/el-componente-x-generacion-de-codigo-con-templates <span class="field field--name-title field--type-string field--label-hidden">El componente X. Generación de código con templates.</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" typeof="schema:Person" property="schema:name" datatype="">Anonymous</span></span> <span class="field field--name-created field--type-created field--label-hidden">Thu, 11/15/2007 - 11:19</span> <div class="field field--name-field-numrevista field--type-entity-reference field--label-inline field--entity-reference-target-type-taxonomy-term clearfix"> <h3 class="field__label inline">Publicado en</h3> <ul class='links field__items'> <li><a href="/revista/03" hreflang="und">SG #03</a></li> </ul> </div> <div class="field field--name-field-seccion field--type-entity-reference field--label-hidden field--entity-reference-target-type-taxonomy-term clearfix"> <ul class='links field__items'> <li><a href="/revista/secciones/programacion" hreflang="und">Programación</a></li> </ul> </div> <div class="field field--name-field-autor field--type-entity-reference field--label-inline field--entity-reference-target-type-taxonomy-term clearfix"> <h3 class="field__label inline">Autor</h3> <ul class='links field__items'> <li><a href="/buzz/autores/victor-quijano" hreflang="und">Víctor Quijano</a></li> </ul> </div> <div class="text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>El siguiente trabajo es una introducción a la generación de código basado en la transformación de documentos XML con templates. Vamos a construir un generador de código de componentes para PHP como ejemplo. Se utilizan herramientas de código libre y pocos recursos de cómputo. Además se invita al lector a conocer un poco más sobre este tema, que ha cobrado actualidad aplicando nuevas técnicas de ingeniería de software.</p> <p>“Un generador de código es una técnica para escribir programas que escriben código fuente”. ¿Le recuerda algo lex y yacc?; éstos son ejemplos de generadores de código, pero antes que deje de leer por malos recuerdos (sí nunca terminó su compilador); le adelanto que ésta técnica difiere de la teória de compiladores, ya que no se requiere obtener código objeto, menos ensamblado.</p> <p>Un generador de código NO es un asistente de un editor de código tipo IDE; menos una solución mágica, no genera código listo para entregar al cliente. La idea es identificar qué parte del código es posible compartir (componentes), implementar una solución a problemas recurrentes (léase patrones de diseño), modelos de datos, interfases gráficas de usuario (GUI) y su comportamiento, entre otros ejemplos.</p> <p>Vamos a desarrollar un ejemplo sencillo, paso a paso, utilizando XML y transformación por templates.</p> <h3><span class="subtitulo2">XML y Familia</span></h3> <p>XML (eXtensible Markup Language) es un metalenguaje (un lenguaje para describir lenguajes) para definir tus propios elementos o partes de un documento. Ej. &lt;lenguaje = "natural"&gt;<lenguaje> </lenguaje></p> <p>XML fue creado por el World Wide Web Consortium (W3C) en 1998 para suplir deficiencias de HTML. En XML los elementos son definidos por el usuario con una especificación DTD (Document Type Definition). Actualmente XML es una familia de lenguajes y especificaciones adoptadas por la industria del software como un estándar abierto . Ver Fig. 1.</p> <p><img alt="" src="http://www.sg.com.mx/images/stories/200503/practicas_procesos_1.jpg" /><br /> <span class="pie_foto">Fig 1. Familia XML</span></p> <h3><span class="subtitulo2">Componentes y Lenguajes Script</span></h3> <p>Empezamos por definir un documento DTD. Éste contiene un conjunto de reglas para organizar los datos, en nuestro caso le llamaremos componentX, que tiene una estructura jerárquica. Ver Fig. 2</p> <p><img alt="" src="http://www.sg.com.mx/images/stories/200503/practicas_procesos_2.jpg" /> <span class="subtitulo2">Fig.2 ComponenteX</span></p> <p>Un DTD se escribe con sintaxis de XML y está compuesto por tags, elementos, atributos y texto. Todo documento XML tiene un elemento raíz (componentx en el ejemplo).</p> <p><code>&lt;!ELEMENT componentx (registration, implements, script)&gt;</code></p> <p>Cada ComponentX, a su vez, está formado por tres elementos: registration, implements y script.</p> <p><code>&lt;!ELEMENT registration (description, progid, version)&gt;</code></p> <p>El elemento registration tiene una descripción, un id de programa y una versión del componente.</p> </div> <section class="field field--name-comment field--type-comment field--label-above comment-wrapper"> </section> Thu, 15 Nov 2007 17:19:43 +0000 Anonymous 456 at https://sg.com.mx https://sg.com.mx/articulos/el-componente-x-generacion-de-codigo-con-templates#comments Software Libre: Más Allá del Software https://sg.com.mx/revista/46/software-libre-mas-alla-del-software <span class="field field--name-title field--type-string field--label-hidden">Software Libre: Más Allá del Software</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" typeof="schema:Person" property="schema:name" datatype="">Anonymous</span></span> <span class="field field--name-created field--type-created field--label-hidden">Thu, 11/15/2007 - 10:41</span> <div class="field field--name-field-numrevista field--type-entity-reference field--label-inline field--entity-reference-target-type-taxonomy-term clearfix"> <h3 class="field__label inline">Publicado en</h3> <ul class='links field__items'> <li><a href="/revista/03" hreflang="und">SG #03</a></li> </ul> </div> <div class="field field--name-field-seccion field--type-entity-reference field--label-hidden field--entity-reference-target-type-taxonomy-term clearfix"> <ul class='links field__items'> <li><a href="/secci%C3%B3n-revista/portada" hreflang="und">Temas especiales</a></li> </ul> </div> <div class="field field--name-field-autor field--type-entity-reference field--label-inline field--entity-reference-target-type-taxonomy-term clearfix"> <h3 class="field__label inline">Autor</h3> <ul class='links field__items'> <li><a href="/autores-sg/artemio-mendoza" hreflang="und">Artemio Mendoza</a></li> </ul> </div> <div class="text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>Cuando se habla de open source, normalmente viene a la mente una palabra que engloba y conceptualiza casi todo lo que se ha dicho en los últimos años al respecto: Linux. Posteriormente, es probable que se sigan acaloradas discusiones acerca de si es maravilloso por un lado, o poco conveniente por el otro. Estas discusiones han circulado por todas las empresas que utilizan de alguna manera las TI (¿qué empresa no lo hace hoy día?) y, hasta donde yo se, aún no ha habido conciliación alguna entre ambos puntos de vista.</p><!--break--><p>Sin embargo, mientras estas discusiones se llevan, y seguirán llevándose a cabo, en diferentes ámbitos el modelo open source está rindiendo frutos, probando ser una alternativa en campos tan lejanos del software como la política, los negocios, el arte y la ciencia, por mencionar sólo algunas disciplinas, como se ilustra en el siguiente caso:</p><p style="padding-left: 30px;"><em>Timothy Pestero, un voluntario de los Cuerpos de Paz, se propuso encontrar solución a un problema que estaba matando gente innecesariamente: el cólera. Esta enfermedad es simple de curar utilizando una solución salina intravenosa que permite la rehidratación del paciente. En los países subdesarrollados el costo de un dosificador computarizado —alrededor de $2,000 dólares—, puede ser prohibitivo de utilizar en brotes masivos, dando como resultado que la gente muera aun cuando exista la cura. Fue entonces que Timothy solicitó ayuda a ThinkCycle, un proyecto industrial con un modelo muy cercano al del open source, ya que la colaboración es abierta, y el código fuente es libremente compartido. En poco tiempo se encontró una solución, rediseñando el sistema de dosificación de tal forma que fuera intuitivo y muy fácil de utilizar incluso para personal no entrenado, con un costo de fabricación de sólo $1.25 dólares.</em></p><p style="padding-left: 30px; text-align: right;">Open Source Everywhere – Thomas Goetz</p><p>Tal ha sido el impacto del open source como método de producción, que ya ha puesto a varios economistas a repensar los modelos económicos que motivan a las personas a producir bienes y servicios en una economía capitalista, reevaluando el impulso que hace girar el mundo en que vivimos.</p><h3><span class="subtitulo2">Orígenes del Open Source</span></h3><p>Antes de analizar las posibles motivaciones que subyacen en este modo de producción, definamos las características principales de un proyecto open source. Hay quienes dicen que funciona como una colonia de hormigas, en donde la inteligencia colectiva de la red supera a cualquier contribución individual. Un proyecto open source típicamente involucra un gran número de colaboradores, generalmente voluntarios, cuyas contribuciones enriquecen las aportaciones anteriores. Además, tan importante como lo anterior, el producto resultante está libremente disponible para todos aquellos que quieran accederlo. Aunque existen varios proyectos que son colaborativos y otros que son de libre acceso, sólo aquellos que cumplan ambos requisitos en un alto grado podrían ser catalogados como open source.</p><p>De lo anterior es fácil ver que el open source no es algo nuevo, y en la historia han existido muchos otros fenómenos que funcionan de la misma manera: desde finales de 1600, Isaac Newton ya había expresado sus ideales de compartir los métodos científicos y los resultados, así como “construir sobre lo que ya ha sido creado”. De igual manera, este comportamiento se observa en las comunidades Amish, en donde la colectividad se reúne para completar tareas que los individuos por sí solos no podrían realizar. El ejemplo más impresionante es el de la creación del diccionario de Oxford en el siglo XIX, proyecto a través del cual una red mundial de etimologistas creó el diccionario más grande del mundo, y fue realizado por correo.</p><p>Incluso un año antes de que Linus Torvalds comenzara con el desarrollo de Linux, el proyecto del Genoma Humano estuvo basado en el mapeo distribuido de los genes humanos, siguiendo un modelo muy parecido al open source.</p><p>Un ejemplo de cómo el open source puede ser una alternativa para resolver problemas legítimos es la Open Library of Science (PLoS), fundada por tres científicos que se preguntaban por qué si la ciencia es la búsqueda de las leyes universales de la naturaleza, las revistas científicas tienen el copyright de los artículos que publican y pueden llegar a cobrar tanto como $20,000 dólares por una suscripción anual.</p><p>En el 2003 publicaron la primera revista científica abierta: PLoS Biology. El concepto clave es su disponibilidad. PLoS emite nuevas investigaciones en línea, haciéndolas disponibles a todo el mundo, desde estudiantes de secundaria hasta científicos alrededor del mundo. Los autores están de acuerdo en dejar a cualquiera hacer anotaciones, ligas, resúmenes y cualquier otra cosa que agregue valor sin costo alguno. Las fundaciones y las agencias de gobierno cubren el costo de publicación completamente.</p><h3><span class="subtitulo2"> La economía detrás del fenómeno</span></h3><p>Adam Smith, en su libro La Riqueza de las Naciones, plantea que todos los hombres persiguen su bien personal y, en el afán de lograrlo, la comunidad se beneficia, pues se logra un bien común. De manera simplista, lo que se ha entendido es que todas las personas buscan obtener un beneficio económico y ello es lo que los motiva a llevar a cabo las actividades que realizan, tratando de maximizar dicho beneficio.</p><p>Con la premisa anterior no resulta muy lógico esperar que una tarea por la que no se recibe remuneración alguna, como típicamente sucede en el open source, pueda ser la base para llevar a cabo cualquier actividad que implique un esfuerzo grande y de larga duración. Tal vez aquí radique la desconfianza en estos desarrollos, pues es difícil imaginar que un grupo de personas que no recibirán compensación económica puedan producir algo de igual calidad (ya no se diga superior), que quienes sí reciben pago. Simplemente está fuera de toda consideración. Y sin embargo, sucede.</p><p>Linux, Apache y Perl son una prueba de que esto puede ocurrir, y es precisamente lo que ha movido a los economistas actuales a analizar las motivaciones personales que llevan a los desarrolladores, en el caso del software, o científicos, o cualquier persona que colaboran con su valioso tiempo, a participar en este tipo de proyectos. Erick S. Raymond da una explicación a este fenómeno en su libro “La Catedral y el Bazar”. Raymond plantea que nuestra sociedad es principalmente una economía de intercambio, donde la asignación de bienes escasos se lleva a cabo de manera descentralizada a través del intercambio y cooperación voluntaria. En este tipo de economía basada en bienes escasos, el status se alcanza a través del control de los bienes. Sin embargo, este tipo de economía pierde sentido cuando hay abundancia de bienes, y entonces lo que predomina es una “cultura de dar”, donde el status se determina no por lo que controlas, sino por lo que regalas. Para Raymond, la sociedad de programadores open source es una cultura de este tipo. La abundancia de recursos como espacio en disco, ancho de banda y poder de procesamiento, además de las disponibilidad del software, hace que la única forma de medir el éxito, sea en base a la reputación entre colegas (ver “Cómo Convertirse en Hacker”, pag. 48).</p><p>Sin embargo, hay algunos economistas que consideran este punto de vista como simplista. Lo que ellos indican es que las reglas del juego están cambiando, debido principalmente a que la economía actual se basa en el conocimiento. Éste a diferencia de los bienes materiales, no se destruye cuando se utiliza. Por el contrario, con el uso se crea más y mejor conocimiento, aumentando el bien original al compartirlo.</p><h3><span class="subtitulo2">¿Quién dijo que no hay dinero en el open source? </span></h3><p>Es muy común que se piense en las personas que trabajan desarrollando proyectos open source como gente altruista que no busca ni desea bienes materiales, o se vean como rebeldes radicales con el único fin de atacar a sus “enemigos” comerciales y cuya mayor satisfacción sería ver a Bill Gates en la ruina sin importar que para lograrlo les lleve toda una vida sin tener mayores ingresos que los necesarios para comprar una computadora y mantener el cuerpo a rígidas dietas que permitan apenas sobrevivir para llevar a cabo su propósito.</p><p>Sin embargo, basta observar el BMW Z3 de Linus Torvalds, padre de Linux, para darse cuenta que algo anda mal con tal percepción. Este auto, su mansión de varios millones de dólares, así como el resto de su fortuna, las adquirió gracias al IPO de VA Linux (Red Hat) en agosto de 1999. En su libro Just For Fun, menciona lo siguiente:</p><p>“El open source se trata de permitirles jugar a todos. ¿Por qué los negocios, que nutren muchos de los avances tecnológicos de la sociedad, habrían de excluirse?”.</p><p>Sin embargo, a pesar del éxito comercial, a Linus Torvalds le gusta ver su creación, Linux, no sólo como un producto, sino como su contribución al mundo:</p><p>“...Y algún día, dentro de veinte años, alguien vendrá y dirá que ya es suficiente (de Linux), y comenzará un nuevo sistema operativo llamado Fredix o Diannix, sin todo el equipaje histórico. Y así es como debe ser. Pero lo que me hace increíblemente orgulloso es que, incluso cuando esto suceda, las cosas ya no serán las mismas. Lo que Linux ha hecho, por lo menos, es permitirle a la gente darse cuenta de una nueva manera de hacer las cosas, de cómo el open source realmente habilita a las personas a construir sobre el trabajo que otros han realizado. El open source ha estado ahí por largo tiempo, pero lo que Linux hizo fue ponerlo en la conciencia general. Así, cuando Fredix llegue, no tendrá que comenzar desde cero. Y así, de esta forma, el mundo se ha convertido, por poquito, en un mejor lugar.”</p></div> <div class="text-formatted field field--name-field-autor-bio field--type-text-long field--label-above"> <div class="field__label">Bio</div> <div class="field__item"><p>Artemio Mendoza es Director de Operaciones de Towa Software, empresa de Consultoría en TI, de la cual es socio fundador. Durante más de once años se ha desempeñado como consultor, gerente y director en empresas de tecnología en México y Estados Unidos para clientes como GE Plastics, McKinsey &amp; Company, Bancomer y Alestra. Artemio tiene el grado de Maestría en Administración de TI, otorgado por el Tec de Monterrey.</p> </div> </div> <section class="field field--name-comment field--type-comment field--label-above comment-wrapper"> </section> Thu, 15 Nov 2007 16:41:09 +0000 Anonymous 453 at https://sg.com.mx https://sg.com.mx/revista/46/software-libre-mas-alla-del-software#comments Software Libre: Licenciamiento e implicaciones https://sg.com.mx/revista/46/software-libre-licenciamiento-e-implicaciones <span class="field field--name-title field--type-string field--label-hidden">Software Libre: Licenciamiento e implicaciones</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" typeof="schema:Person" property="schema:name" datatype="">Anonymous</span></span> <span class="field field--name-created field--type-created field--label-hidden">Thu, 11/15/2007 - 10:19</span> <div class="field field--name-field-numrevista field--type-entity-reference field--label-inline field--entity-reference-target-type-taxonomy-term clearfix"> <h3 class="field__label inline">Publicado en</h3> <ul class='links field__items'> <li><a href="/revista/03" hreflang="und">SG #03</a></li> </ul> </div> <div class="field field--name-field-seccion field--type-entity-reference field--label-hidden field--entity-reference-target-type-taxonomy-term clearfix"> <ul class='links field__items'> <li><a href="/secci%C3%B3n-revista/portada" hreflang="und">Temas especiales</a></li> </ul> </div> <div class="field field--name-field-autor field--type-entity-reference field--label-inline field--entity-reference-target-type-taxonomy-term clearfix"> <h3 class="field__label inline">Autor</h3> <ul class='links field__items'> <li><a href="/autores-sg/alfredo-pinto" hreflang="und">Alfredo Pinto</a></li> </ul> </div> <div class="text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>¡Wow! Open Source, la moda, lo último en desarrollo de software, compartir tu código fuente y recibir sin costo código fuente para tus aplicaciones.No siempre es tan sencillo.Es muy importante revisar con cuidado la licencia que rige el código que va a utilizar, para evitar una sorpresa posterior.</p><!--break--><h3><span class="subtitulo2">Licenciamiento Open Source</span></h3><p>Aunque parezca extraño, todas las aplicaciones open source requieren que el usuario tenga una licencia para su uso, que si bien es cierto que en la mayoría de las veces ésta no tiene algún cargo monetario, no excluye de que se tenga que licenciar. ¿Tiene idea de cuántos tipos de licenciamiento open source existen? Al momento de la creación de este artículo, la Open Source Initiative lista más de cincuenta licencias, y siguen aumentando.</p><p>La principal diferencia entre la mayoría de las licencias radica en dos factores: el primero es si se permite que una obra derivada de open source pueda regresar a ser propietaria, y la segunda es si se permite integración con otro tipo de licencias.</p><p>La GPL (GNU Public License) es una de las más conocidas, por su asociación con el sistema operativo Linux. Una característica importante es que cualquier trabajo derivado, o que contenga algo de GPL, también se debe distribuir bajo GPL, o sea que GPL es “viral”. Esto llevó a la creación de la Library GPL (LGPL). Bajo esta licencia, es posible que software bajo otra licencia pueda utilizar software LGPL como librerías.</p><p>Por otro lado está la licencia BSD (Berkeley Software Distribution). Esta sugiere —pero no requiere—, que las modificaciones a código fuente se regresen a la comunidad, y permite que los productos derivados usen otras licencias, incluyendo propietarias. La versión original de BSD requería que los autores originales fueran listados dentro de cualquier propaganda, aunque la versión revisada ya no requiere esto. El software bajo esta licencia también puede contener o puede ser contenido por software con otras licencias.</p><p>La mayoría de las licencias restantes caen en algún lugar entre la GPL y BSD, como es el caso de la MPL (Mozilla Public License) que tiene más restricciones que BSD pero menos que GPL. También existe el caso en que las empresas crean licencias personalizadas para liberar algún software, como sucedió con Sun, que creó la Common Development and Distribution License (CDDL) para la edición “abierta” de Solaris.</p><h3><span class="subtitulo2">Implicaciones</span></h3><p>Como vemos, casi todas las licencias caen en algo que afecta a los desarrolladores de aplicaciones. Esto puede implicar que el software generado también tenga que ser open source, hacer mención de la librería en el programa, conservar archivos de copyright, etc., de lo contrario se infringiría la licencia y los propietarios del código fuente abierto lo pueden demandar. ¿Los propietarios del código fuente abierto? Sí, así es, no por el hecho de que el software sea open source quiere decir que esté a completa merced de uno. Por lo tanto tiene que seguir las reglas de los dueños del código fuente.</p><p>Yo personalmente, busco código fuente en sitios como planet source code (www.planet-source-code.com) y code project (www.codeproject.com). Me imagino que ustedes también se apoyan en sitios similares. Sin embargo, ¿prestamos atención a las licencias de uso? Esto es particularmente de mayor interés cuando somos empleados de alguna compañía y ésta no tiene alguna regulación especial en cuanto al uso de código fuente abierto.</p><p>Por ejemplo, algunas empresas tienen desarrolladores de software para crear aplicaciones de uso interno. Normalmente este software no tiene leyendas de copyright, no tiene marca, no tiene una caja de diálogo que comúnmente conocemos como “About” o “Acerca de...”, donde se ponen todos los créditos, marcas y copyrights. Si utilizamos código abierto para desarrollar este tipo de aplicaciones, ¿se da cuenta en el problema en que puede estar metido si llegara una auditoria? ¿Y qué pasaría si utilizara código fuente abierto en una aplicación comercial sin las debidas precauciones? Por ejemplo, veamos el caso de MySQL: esta empresa permite que su software sea utilizado sin costo alguno y sin restricción por cualquiera que descargue el código fuente desde su sitio, pero si la aplicación que usted desarrolla utiliza MySQL como motor de base de datos y usted lo integra al instalador de su aplicación sin pagar ciertos derechos, será acreedor a una sanción.</p><h3><span class="subtitulo2">Conclusión</span></h3><p>Si bien el open source brinda más libertades que las aplicaciones propietarias y puede no tener costos monetarios, también está regido por licencias, tiene dueños y condiciones de uso. Por favor examine bien todo esto al utilizarlo para que no se lleve una desagradable sorpresa. Le recomiendo que realice una política sobre el uso de las licencias, ya sea en su empresa o en su persona.</p><p><span class="subtitulo2"> Referencias:</span></p><ul><li><a href="http://www.highbeam.com/doc/1P2-7880489.html">Weisman, Robert, “Code sleuths” </a></li><li><a href="http://www.opensource.org/licenses/">Open Source Initiative - Licenses </a></li></ul><p>&nbsp;</p></div> <div class="text-formatted field field--name-field-autor-bio field--type-text-long field--label-above"> <div class="field__label">Bio</div> <div class="field__item"><p>Alfredo Pinto se desempeña actualmente como arquitecto de aplicaciones y especialista de desarrollo de software de TELvista. Es coordinador en la comunidad de desarrollo Tijuana .NET (<a href="http://www.tjnet.org">www.tjnet.org</a>) y tiene seis años de experiencia en el desarrollo de software.</p> </div> </div> <section class="field field--name-comment field--type-comment field--label-above comment-wrapper"> </section> Thu, 15 Nov 2007 16:19:34 +0000 Anonymous 452 at https://sg.com.mx https://sg.com.mx/revista/46/software-libre-licenciamiento-e-implicaciones#comments La Revolución del Open Source. https://sg.com.mx/revista/43/la-revolucion-del-open-source <span class="field field--name-title field--type-string field--label-hidden">La Revolución del Open Source.</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" typeof="schema:Person" property="schema:name" datatype="">Anonymous</span></span> <span class="field field--name-created field--type-created field--label-hidden">Thu, 11/15/2007 - 09:24</span> <div class="field field--name-field-numrevista field--type-entity-reference field--label-inline field--entity-reference-target-type-taxonomy-term clearfix"> <h3 class="field__label inline">Publicado en</h3> <ul class='links field__items'> <li><a href="/revista/03" hreflang="und">SG #03</a></li> </ul> </div> <div class="field field--name-field-seccion field--type-entity-reference field--label-hidden field--entity-reference-target-type-taxonomy-term clearfix"> <ul class='links field__items'> <li><a href="/secci%C3%B3n-revista/portada" hreflang="und">Temas especiales</a></li> </ul> </div> <div class="field field--name-field-autor field--type-entity-reference field--label-inline field--entity-reference-target-type-taxonomy-term clearfix"> <h3 class="field__label inline">Autor</h3> <ul class='links field__items'> <li><a href="/autores-sg/arturo-martinez" hreflang="und">Arturo Martínez</a></li> </ul> </div> <div class="text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>El mundo que hoy conocemos es resultado de un proceso histórico en el que han participado innumerables agentes de muy diversa índole. Muchas de las condiciones sociales, económicas, políticas y culturales que vivimos hoy día, tomaron su lugar a través de radicales procesos de cambio en los que las masas fueron siempre la principal fuerza de empuje, es decir, a través de revoluciones.</p><p>La aparición de las computadoras representa, sin duda alguna, un parte aguas en la historia tecnológica de la humanidad. El nacimiento de Internet trajo consigo el desarrollo del correo electrónico, la World Wide Web y otros medios que se convirtieron en el hábitat de una nueva forma de comunidades, las comunidades digitales. La red de redes hizo posible la convergencia en tiempo y espacio de personas de todo el mundo alrededor de un interés común. No es difícil imaginar que fueron justamente las comunidades interesadas en las computadoras las primeras que florecieron con mayor ímpetu. Sus miembros descubrieron rápidamente que podían compartir sus experiencias, encontrar retroalimentación y solución a sus problemas. Ese fue el inicio de lo que hoy es uno de los movimientos colaborativos más trascendentes de la historia, el desarrollo de software open source.</p><p>Este modelo de desarrollo distribuye aplicaciones bajo un esquema altamente revolucionario; permite a todo mundo tener acceso al código fuente, modificarlo y redistribuirlo. No es necesario pagar una licencia por usarlo, corre en las más amplia variedad de hardware, incluso en el que resulta inservible para muchas aplicaciones propietarias. Es sorprendente la cantidad de cosas que pueden hacer con Linux y una vieja PC 486, por ejemplo.</p><p>La idea central del open source es: “aprende, genera conocimiento, y comparte”. Esta filosofía es el motor de una revolución que ha generado auténticos ejércitos de voluntarios con diferentes habilidades técnicas, dispuestos a aportar su experiencia con el único fin de realizar una proeza tecnológica destinada a resolver problemas comunes. Estos esfuerzos han resultado en miles de aplicaciones de fuente abierta, decenas de ellas extraordinariamente exitosas, como el servidor web Apache, el servidor de correo Sendmail, el sistema operativo Linux, el ambiente gráfico GNOME, el navegador Mozilla, la suite de productividad Openoffice, y una numerosa lista de herramientas de desarrollo, editores, compiladores, y lenguajes de programación, por mencionar sólo algunas.</p><p>La comunidad se compone de gente con una increíble diversidad de perfiles: jóvenes entusiastas, estudiantes, profesores, especialistas en las distintas áreas de las ciencias de la computación, investigadores, etc. Cientos de personas talentosas pueden leer, modificar y redistribuir el código de una aplicación, lo cual se convierte en un proceso evolutivo que provee una invaluable fuente de innovación.</p><p>El crecimiento de la comunidad mundial que desarrolla software de fuente abierta ha sido verdaderamente sorprendente en los últimos años. La cantidad de conocimiento que se ha generado es abrumadora, de hecho, son algunas de estas comunidades las que han provocado radicales cambios en las herramientas y metodologías que actualmente se usan en la industria de TI. El impacto del trabajo de estas comunidades es visible en casos como la World Wide Web, tecnología que impulsaron intensamente en todas sus aspectos. Apoyaron el desarrollo del protocolo sobre el que funciona, desarrollaron el servidor web más popular del mundo —de acuerdo a una encuesta publicada por Netcraft, casi 70% de los sitios web utilizan Apache—, y participaron activamente en el desarrollo de navegadores web desde sus más remotos días, hasta el navegador más seguro, eficiente y funcional hoy día, Mozilla Firefox.</p><h3><span class="subtitulo2">Linux, la Estrella</span></h3><p>Linux es un sistema operativo open source que ha tenido un gran éxito, de hecho, es el sistema operativo con mayor crecimiento en los últimos años. Una de las primeras áreas de penetración de Linux fue el segmento de servidores. En el pasado, los sistemas Unix corrían en hardware muy especializado y en consecuencia muy costoso, a lo que había que sumar el costo de las licencias, resultando en precios extremadamente elevados. En cambio, Linux brinda la confiabilidad y capacidad de Unix sobre la popular y accesible arquitectura Intel. Ted Schadler, de Forrester Research, publicó en 2003 un estudio titulado “The Linux Tipping Point”, en el que afirma: “Linux sobre arquitecturas Intel es más que suficiente para la carga de trabajo de la mayoría de las empresas hoy en día”.</p><p>Sin embargo, Linux no se ha limitado al segmento de servidores, sino que ha sacudido todos los sectores del mundo tecnológico, desde los grandes mainframes hasta los teléfonos celulares. La principal ventaja que visualizan las empresas que lo utilizan no es necesariamente la disminución de costos o lo robusto de la plataforma, sino la facilidad y rapidez con que los desarrolladores pueden adaptar las aplicaciones a las necesidades de los consumidores.</p><p>Las compañías más grandes de TI están adoptando Linux como plataforma tecnológica para ofrecer sus productos. IBM actualmente corre Linux en toda su línea de mainframes y tiene un extenso catálogo de soluciones que corren sobre este sistema operativo, de esta manera pueden concentrarse más en innovar y ofrecer soluciones especializadas que en proveer la base tecnológica. Novell adquirió hace algunos meses dos de las compañías más emblemáticas del open source como parte de su acelerada adopción de Linux para base de su oferta.,</p><p>Un caso muy interesante en el que aún estamos por ver el climax, es el de dispositivos electrónicos de uso diario. La empresa “Empower Technologies Corporation”, con sede en British Columbia, Canadá, ofrece soluciones para desarrollo de software a este mercado. Actualmente la mayoría de estos dispositivos pueden ser manufacturados en grandes volúmenes a precios increíblemente bajos, sin embargo, el software que les da vida no es necesariamente barato, además de tener una oferta bastante acotada. Linux y las aplicaciones de fuente abierta ofrecen soluciones mucho más flexibles, con costos significativamente menores y una oferta más rica en términos de diversidad.</p><p>Actualmente son incontables los ambientes de producción que usan solamente software de fuente abierta. Existen soluciones que proveen las aplicaciones básicas para una institución o empresa, sistemas operativos, servidor de correo, manejadores de contenido web, servidor de red, ambientes de escritorio, aplicaciones de productividad, etc. En cada uno de estos rubros existe más de una alternativa de estabilidad probada. Además, no sólo están disponibles las aplicaciones, sino igual de importante es el espíritu de cooperación y el modus operandi de estas comunidades (canales de chat, foros, listas de correo, FAQs) que le dan un importantísimo plus a esta tecnología, ya que siempre será posible encontrar ayuda y una numerosa cantidad de experiencias en las que con seguridad podemos hallar respuesta a casi cualquier escenario en el que podamos vernos envueltos al trabajar con software de fuente abierta. A manera de ejemplo, pensemos en un servidor de impresión y archivos para un ambiente heterogéneo compuesto por máquinas con diferentes sistemas operativos. Hay toneladas de información en Internet, canales de chat y listas de correo donde le ayudarán a implementar un servidor muy robusto y resolver los problemas que pueda encontrar en el camino.</p><p>Esto resulta especialmente útil para las pequeñas empresas que requieren soluciones confiables, escalables y de bajo costo que puedan proveerlas de las herramientas tecnológicas que les permitan ser más competitivas.</p><p><img src="http://www.sg.com.mx/images/stories/200503/principal_1_1.jpg" alt="" /></p><h3><span class="subtitulo2">Gobiernos</span></h3><p>Uno de los nichos de adopción del open source más interesantes son las instituciones de gobierno. Este nicho llama la atención primero por su volumen y segundo por el impacto en las comunidades gobernadas. El software de fuente abierta pertenece a la comunidad, no hay una compañía que imponga sus estándares comerciales y tecnológicos, y el ahorro solamente en licencias es del orden de millones de dólares, sin mencionar el ahorro en hardware.</p><p>El enfoque y nivel de adopción es diferente, pero las historias de gobiernos usando software de fuente abierta son abundantes en todo el mundo, desde Alaska hasta la Patagonia y desde la península ibérica hasta el continente asiático. El estado de Nebraska, en los Estados Unidos, que emplea cerca de 18,000 personas en su división de servicios de información, decidió adoptar Linux con objeto de mejorar los servicios de e-government y reducir costos. IBM provee soluciones basadas en Linux a gran escala, entre sus clientes más destacados figuran agencias de gobierno en México, Estados Unidos, España, Francia y Reino Unido.</p><h3><span class="subtitulo2">Open Source en el Mundo Corporativo </span></h3><p>Quizás la aportación más trascendente del open source es el papel en el que está metiendo a las aplicaciones básicas que corren en una computadora, al ponerlas a disposición de todo mundo, está convirtiendo al software en un bien de uso colectivo, como lo son las carreteras, al agua potable, los minerales, etc., algo que los países angloparlantes llaman commodity.</p><p>No es coincidencia que las empresas más grandes de tecnología del mundo (IBM, HP, Dell, Novell, Oracle, SAP, etc.) estén adoptando Linux y soluciones de fuente abierta. En realidad significa que han reconocido la viabilidad y el potencial de un modelo donde las aplicaciones básicas son desarrolladas y mantenidas por la comunidad del open source y ellos proveen soluciones específicas sobre esta plataforma. Un ejemplo es la penetración de los sistemas Linux en las máquinas de escritorio. Existen ya varios ambientes de escritorio creados especialmente para el mundo empresarial que ofrecen una atractiva apariencia profesional, herramientas de comunicación y productividad con el poder, flexibilidad y seguridad de los sistemas Unix, respaldados por una sólida oferta de soporte empresarial. Ha sido tal este fenómeno, que incluso Steve Ballmer, Presidente Ejecutivo de Microsoft, ha advertido públicamente el reto competitivo que Linux y el open source representan para Microsoft.</p><p>Esta incursión del open source en el mundo empresarial abre nuevas oportunidades de negocios en diferentes escalas y sin límites geográficos. En muchos países ya existe una fuerte demanda de servicios de consultoría, soporte y capacitación para soluciones de fuente abierta. Ésta seguirá creciendo en la medida que más empresas e instituciones descubran el potencial del open source.</p><p>Como lo hemos atestiguado, las tecnologías de la información evolucionan a un ritmo vertiginoso. En los próximos años veremos maravillosos avances, lo mismo en hardware que en software; estos cambios abrirán nuevas posibilidades y necesidades. Seguirá existiendo una gran diversidad de aplicaciones, seguiremos viendo nichos muy especializados, pero el open source seguirá tomando fuerza y entrando en casi todas la áreas donde se utilice una computadora. Seguirá innovando y mantendrá esta base de conocimiento abierta para contribuir a la alfabetización tecnológica del mundo.</p><p><span class="subtitulo2"> Referencias </span></p><ul><li><a href="http://www.fsf.org">NetCraft</a></li><li><a href="http://www.fsf.org">Free Software Foundation</a></li><li><a href="http://www.osdl.org">Open Source Development Labs </a></li></ul><p><em>&nbsp;</em></p></div> <div class="text-formatted field field--name-field-autor-bio field--type-text-long field--label-above"> <div class="field__label">Bio</div> <div class="field__item"><p>Arturo Martínez es Ingeniero en Computación egresado de la UNAM. Inició su experiencia en software libre con una beca para la conferencia The USENIX Annual Technical Conference 2001 en Boston, Massachusetts. En 2002 empezó a trabajar como consultor para Ximian Inc., hasta que Novell la compró en 2003 y donde ahora hace control de calidad para un prestigiado producto de administración de software en sistemas Linux. Arturo actualmente trabaja en SuSe Linux AG, en Alemania.</p></div> </div> <section class="field field--name-comment field--type-comment field--label-above comment-wrapper"> </section> Thu, 15 Nov 2007 15:24:44 +0000 Anonymous 451 at https://sg.com.mx https://sg.com.mx/revista/43/la-revolucion-del-open-source#comments Entrevista con Miguel de Icaza https://sg.com.mx/revista/3/entrevista-miguel-icaza <span class="field field--name-title field--type-string field--label-hidden">Entrevista con Miguel de Icaza</span> <div class="images-container clearfix"> <div class="image-preview clearfix"> <div class="image-wrapper clearfix"> <div class="field field--name-field-image field--type-image field--label-hidden field__item"> <img src="/sites/default/files/images/migueldeicaza2005.png" width="712" height="502" alt="" loading="lazy" typeof="foaf:Image" /> </div> </div> </div> </div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" typeof="schema:Person" property="schema:name" datatype="">Anonymous</span></span> <span class="field field--name-created field--type-created field--label-hidden">Tue, 09/25/2007 - 12:23</span> <div class="field field--name-field-numrevista field--type-entity-reference field--label-inline field--entity-reference-target-type-taxonomy-term clearfix"> <h3 class="field__label inline">Publicado en</h3> <ul class='links field__items'> <li><a href="/revista/03" hreflang="und">SG #03</a></li> </ul> </div> <div class="field field--name-field-seccion field--type-entity-reference field--label-hidden field--entity-reference-target-type-taxonomy-term clearfix"> <ul class='links field__items'> <li><a href="/revista/secciones/personas" hreflang="und">Personas</a></li> </ul> </div> <div class="text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>Hace siete años, Miguel de Icaza trabajaba como administrador de sistemas en el Instituto de Ciencias Nucleares de la UNAM, desde donde desarrollaba software libre. Hoy, es una de las principales figuras de la industria a nivel mundial, y ha recibido distinciones de organizaciones tan prestigiadas como el MIT Technology Review y la revista Time, quien lo describe como una especie muy rara: mitad software hippie, mitad empresario digital. En este número, Miguel nos habla sobre sus proyectos, y su opinión sobre la industria.</p><!--break--><p><strong><span class="subtitulo2">Software Guru: Cuéntanos un poco sobre ti y de donde vienes</span></strong><br /> Miguel de Icaza: Soy hijo de científicos: un Físico y una Bióloga. El gusto por la lectura se lo debo a mi padre. A la fecha todavía me sorprende lo poco que la gente lee en México, y me sigue sorprendiendo lo que la gente lee. Tuve el privilegio de empezar la carrera de Matemáticas en la Facultad de Ciencias de la UNAM, aunque nunca la terminé. Aún así, la mayoría de mis amigos hoy en día son ex-alumnos de la UNAM o profesores de la UNAM. Todos ellos gente brillante. Trabajo para Novell, una compañía de software que compró mi compañía hace un par de años.</p><p><strong><span class="subtitulo2">¿Qué te motiva a hacer software libre?</span></strong><br /> Es una evolución de ideas. Originalmente la idea del software libre es interesante: software gratuito que puedo modificar a mi antojo. Con el paso del tiempo te das cuenta que el software libre está construido sobre un principio de igualdad y la creación de bienes para todos, sin distinción. De cierta manera son los mismos principios de los revolucionarios franceses: igualdad, libertad y fraternidad.</p><p>El software libre ha demostrado que esos principios abstractos tienen efectos prácticos muy concretos. La colaboración sin barreras, el acto de regalar al mundo parte de tu trabajo para el beneficio de todos y el deseo de ser tecnológicamente independientes han creado este gigantesco movimiento ciudadano. Pero lo más interesante es que una vez que asimilas estos principios empiezas a re-evaluar todo lo que te rodea en estos términos.</p><p><strong><span class="subtitulo2">¿Qué característica personal consideras más importante en un desarrollador de software?</span></strong><br /> Para una posición de desarrollador, busco a un buen programador. Lo demás fluye naturalmente.</p><p><strong><span class="subtitulo2">Eres uno de los campeones del software libre, pero también eres empresario y buscas una operación rentable. ¿A qué se debe?</span></strong><br /> La operación rentable es meramente un mecanismo para continuar desarrollando software libre. Un balance continuo. Ambos son temas apasionantes y lo mejor de todo es poder hacer ambos a la vez.</p><p><strong><span class="subtitulo2">¿Ves viable una unificación de las diferentes distribuciones de Linux?</span></strong><br /> Es posible que haya una consolidación de algunas distribuciones, pero las tres grandes (Red Hat, Debian, SUSE) tienen demasiado bagaje histórico para que una consolidación suceda. Ahora bien, la mayoría de las distribuciones de Linux son distribuciones a la medida: usualmente basada en alguna distribución de referencia y modificada para cierto mercado, éstas no son un mayor problema porque prácticamente todos los componentes son los mismos y los APIs no cambian.</p><p><strong><span class="subtitulo2">Has comentado que la conjunción de Avalon/XAML es un gran riesgo para el desktop de Linux. ¿Qué se está haciendo para mitigarlo?</span></strong><br /> Todavía hay mucho debate alrededor de esto. Si llegara a ser un verdadero problema, crear un Avalon/XAML para Linux usando Mono sería la solución. No es muy difícil. Nadie ha empezado a hacer esto porque no queda claro que Microsoft vaya a tener éxito desarrollando y promoviendo XAML y Avalon por varias razones.</p><p>Por un lado, al web se le ha inyectado una nueva vida: la gente no sólo ha aprendido a usar CSS en los últimos años, sino que JavaScript ha regresado con más fuerza. Google Mail, Suggest y Maps han mostrado el camino para cientos de programadores, mientras que Firefox y su ambiente Venkman son posiblemente lo que ha re-popularizado el uso de JavaScript. Por otro lado, tecnologías como Laszlo y Flex son similares, más sencillas, funcionan en todas las plataformas y tienen mejores herramientas de desarrollo que XAML/Avalon. Así que por el momento estamos esperando.</p><p><strong><span class="subtitulo2">¿Qué tan satisfecho estás con Mono?</span></strong><br /> Muy contento. Por un lado, Mono está madurando, es decir: mucho del trabajo reciente se centra alrededor de la estabilidad, la velocidad y el consumo de memoria para ser un sistema viable para nuestros usuarios. En particular en aplicaciones gráficas, Mono consume menos memoria que los equivalentes en Python y Perl (no hace falta comentar sobre Java, que aún hoy en día sigue siendo el Porky de los lenguajes de programación).</p><p>Hay tres grandes grupos de usuarios que están usando Mono, prácticamente todos independientes de los otros:</p><ul><li>Escritorio Linux. Estos en su mayoría son desarrolladores que están escribiendo nuevas aplicaciones para Linux y Gnome. En este espacio hay muchas ideas novedosas que se están poniendo en práctica.</li><li>Desarrolladores corporativos. Usuarios que están migrando aplicaciones de servidores Windows a Linux (por cuestión de costo, o de seguridad). Otro grupo de usuarios corporativos son aquellos que tenían un staff de desarrollo usando Windows que de la noche a la mañana puede escribir software para lo que consideran “el mainframe” (s390, Solaris e incluso Linux).</li><li>Vendedores de Software (ISVs). Estos usuarios desarrollan aplicaciones y componentes comerciales y ahora tenemos un plan que les permite vender estas mismas aplicaciones a usuarios de MacOS X, Linux y Solaris.</li></ul><p><strong><span class="subtitulo2">¿Consideras que Mono fue un proyecto incomprendido?</span></strong><br /> Al principio hubo mucho debate, el mayor problema es que la gente no sabía qué era .NET. Esto desapareció con el tiempo. Por otro lado, hay quienes genuinamente odian Microsoft y todo lo que Microsoft crea y, por extensión, a Mono.</p><p><strong><span class="subtitulo2">¿Cuáles son los riesgos que enfrenta Mono?</span></strong><br /> Mono ha pasado el umbral de los riesgos de la mayoría del software: ha liberado su versión 1.0, tiene una base de usuarios grande y creciendo, y ha creado una comunidad activa que le da mantenimiento.</p><p><strong><span class="subtitulo2">¿A qué se deben los nombres relacionados con simios (Ximian, Mono, etc)?</span></strong><br /> Es un secreto.</p><p><strong><span class="subtitulo2">¿Estás enterado de ProSoft? ¿Qué opinas sobre él? </span></strong><br /> Estoy enterado de ProSoft, pero siento que tiene problemas fundamentales. ProSoft es meramente un enfoque táctico a los problemas del país. El país debería de tomar un enfoque estratégico. ProSoft es un ejemplo de “ve el árbol pero no ve el bosque”. ProSoft meramente es un mecanismo para organizar y financiar a una industria nacional de software. Esto no es una mala idea, pero esto ignora el problema principal del país: no tenemos personal capacitado para crear esta industria.</p><p>Para resolver este problema tenemos que hacer lo mismo que la India hizo hace varias décadas: invertir fuertemente en la educación pública desde la primaria hasta la educación superior y el fomento a la investigación y desarrollo. El repunte que vemos hoy en la India está ligado íntimamente a la educación superior. Lo mismo sucede con todas las otras potencias de las industrias tecnológicas. Eso sería el primer paso estratégico: financiar a las universidades federales y estatales.</p><p>El gobierno es el comprador más fuerte de todo el país y puede usar esto a su favor para crear una demanda artificial en el mercado laboral: podrían triplicar el financiamiento a la educación pública, requerir más profesores, más instalaciones, mejorar los salarios que tiene el efecto de activar la economía.</p><p>Es interesante ver los efectos colaterales de los “segundos pisos” del Periférico. Tuvieron como efecto la reactivación de la economía de la ciudad, y la distribución de salarios a miles de trabajadores y a sus familias, y todos los puntos de contacto con ellos. Algo similar se puede esperar de la Universidad de la Ciudad de México. Esto me lleva al segundo punto: México todavía puede tomar la decisión estratégica de adoptar el software libre como el software para el gobierno. Al nivel estratégico porque crearía una industria nacional dedicada al soporte del software libre y la creación de aplicaciones para el gobierno que funcionen sobre Linux. A otro nivel es meramente una buena política financiera: después de todo, cada Windows en la administración no solamente es un derroche de dinero, sino que se derrocha fuera del país. El dinero que se ahorrarían en licencias se podría invertir en una industria nacional que creara las aplicaciones necesarias para la operación del gobierno con un software que nos pertenece a todos (aquí me refiero a la humanidad).</p><p>El mayor problema que enfrenta el gobierno, al igual que los gobiernos de todo el mundo, es que las decisiones que benefician a la población no necesariamente benefician a los más poderosos. ProSoft va a ser un vehículo para impulsar los intereses de compañías existentes.</p><p><strong><span class="subtitulo2">¿Crees que México debería especializarse en algún ramo de la industria de software? </span></strong><br /> Mientras no tengamos un plan concreto para proveer educación gratuita, no tiene caso discutir esto.</p><p><strong><span class="subtitulo2">¿Es posible que empresas mexicanas sean consideradas como viables para realizar trabajo para Ximian y/o Novell?</span></strong><br /> Por supuesto.</p><p><strong><span class="subtitulo2">¿Qué es lo que más y lo que menos extrañas de México?</span></strong><br /> Lo que más extraño: mis amigos, la comida, el idioma, el humor, los chistes nacionales. Lo que menos extraño: el clasismo en la Ciudad de México sigue siendo órdenes de magnitud más marcado que cualquier otro país que yo conozca.</p><p>&nbsp;</p></div> <section class="field field--name-comment field--type-comment field--label-above comment-wrapper"> </section> Tue, 25 Sep 2007 17:23:53 +0000 Anonymous 395 at https://sg.com.mx https://sg.com.mx/revista/3/entrevista-miguel-icaza#comments El contexto de la prueba de Software https://sg.com.mx/revista/03/el-contexto-la-prueba-software <span class="field field--name-title field--type-string field--label-hidden">El contexto de la prueba de Software</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" typeof="schema:Person" property="schema:name" datatype="">Anonymous</span></span> <span class="field field--name-created field--type-created field--label-hidden">Tue, 09/25/2007 - 11:39</span> <div class="field field--name-field-numrevista field--type-entity-reference field--label-inline field--entity-reference-target-type-taxonomy-term clearfix"> <h3 class="field__label inline">Publicado en</h3> <ul class='links field__items'> <li><a href="/revista/03" hreflang="und">SG #03</a></li> </ul> </div> <div class="field field--name-field-seccion field--type-entity-reference field--label-hidden field--entity-reference-target-type-taxonomy-term clearfix"> <ul class='links field__items'> <li><a href="/secci%C3%B3n-revista/prueba-software" hreflang="und">Prueba de Software</a></li> </ul> </div> <div class="field field--name-field-autor field--type-entity-reference field--label-inline field--entity-reference-target-type-taxonomy-term clearfix"> <h3 class="field__label inline">Autor</h3> <ul class='links field__items'> <li><a href="/buzz/autores/luis-vinicio-leon-carrillo" hreflang="und">Luis Vinicio León Carrillo</a></li> </ul> </div> <div class="text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>En países desarrollados encontramos toda una industria de prueba de software, constituida entre otras cosas por una buena cantidad de profesionales especializados, proveedores de herramientas, congresos, publicaciones periódicas, y múltiples alternativas de capacitación y certificación. La industria de software de esos países consume esa especialización, así como la objetividad e independencia con que ésta puede venir acompañada. Considero que en México la prueba no ha mostrado aún su potencial como catalizador en el incremento de la calidad de productos de software, así como en la disminución de los costos de desarrollo; esto en buena medida porque no se había ofrecido ese servicio de manera integral, especializada e independiente. En éste y los subsiguientes tres números, haré un recorrido por la disciplina de la prueba de software, brindando una perspectiva amplia de la misma.</p><!--break--><h3>El Contexto de la Prueba de Software</h3><p>Inicialmente, la prueba fue confundida con el debugging, y se llevaba a cabo para ganar confianza en que el sistema sí “corría bien”. Los trabajos de G. Myers en los 70’s vienen a constituir un parteaguas: desde su punto de vista, la labor del tester es demostrar que el sistema “no satisface los requerimientos”.</p><p>Estos son algunos de los principios que Myers enunció al respecto:</p><ul><li>La organización desarrolladora debiera evitar probar sus propios sistemas (hay una barrera mental que dificulta que encontremos defectos en aquello que construimos con esmero y dedicación).</li><li>No debe planearse un esfuerzo de prueba bajo el supuesto de que no se encontrarán defectos.</li><li>Probar es una tarea creativa e intelectualmente demandante.</li></ul><p>La prueba de software debiera verse como un proceso paralelo al de desarrollo de software, y que se realiza por el convencimiento de que todo sistema debe ser revisado con el objetivo de establecer si el nivel de calidad requerido es alcanzado. Esto aceptando limitantes prácticas que implican la imposibilidad de revisarlo de manera exhaustiva, pero aplicando técnicas ingenieriles para subsanar estas limitantes.</p><p>En ocasiones la prueba se ve como una parte integrante del Aseguramiento de la Calidad (QA). La actividad de ésta última gira alrededor de los procesos, bajo la hipótesis (heredada del área de la manufactura) de que la calidad del producto está determinada en buena medida por la calidad del proceso. Esa suposición es ampliamente debatida y, de hecho, el comentario de Hanna Oktaba en su columna del número anterior: “la evidencia de que [los procesos] realmente sirven es todavía débil”, resume acertadamente la contra-hipótesis. He visto que es más útil considerar la prueba de software como una parte complementaria a QA que nos da información concreta acerca de la calidad del producto de software.</p><h3>Problemática y Soluciones Propuestas</h3><p>Es posible observar la siguiente problemática en la industria del software:</p><ul><li>Incremento en la demanda, originado no solamente por la necesidad de desarrollo de software “convencional” para una cantidad creciente de áreas de aplicación, sino por la asociada a los legacy systems y al embedded software.</li><li>Incremento en la complejidad, debido a que los sistemas son cada vez más grandes, e involucran cada vez más la integración de software, firmware y hardware.</li><li>Exigencia por la calidad, acentuada en buena medida por la globalización y el incremento en la “cultura informática”, pero también por la necesidad creciente de los denominados sistemas de misión crítica.</li></ul><p>Estos son algunos enfoques que se han planteado para abatir cada uno de estos problemas:</p><ul><li>Incremento en la demanda: proveer herramientas y capacitación para desarrolladores y no-desarrolladores; facilitar el reuso de componentes, que permita construir software a partir de constituyentes maduros.</li><li>Incremento en la complejidad: proveer ambientes de desarrollo que brinden mayor nivel de abstracción; desarrollar metodologías que faciliten la descomposición de problemas.</li><li>Exigencia en la calidad: marcos como el Total Quality Management for Software, con fuerte énfasis en el incremento de la calidad por medio de la planeación estratégica, y el control estadístico de procesos; modelos de calidad para software (CMMI, MoProSoft, etc.), centrados en la definición y mejora de procesos en áreas clave del desarrollo de software; métodos formales, que por construcción, permitan desarrollar sistemas libres de defectos; prueba de software, que permita detectar anomalías en un producto de software.</li></ul><p>La prueba de software es una actividad ingenieril que exige un perfil y una formación muy particular, en la que se utilizan técnicas y herramientas para detectar niveles inadecuados de calidad, aplicando una cantidad de recursos limitados (en especial tiempo y dinero) de forma tal que genere un valor agregado en el proceso de desarrollo de software. En los siguientes tres números abundaré en el tema.</p><p><strong>Referencias</strong></p><ol><li>Myers, G. “The Art of Software Testing”. John Wiley &amp; Sons; 1979</li><li>“Conceptos de Prueba de Software”. http://www.e-quallity.net/def.php<br /><em>&nbsp;</em></li></ol></div> <div class="text-formatted field field--name-field-autor-bio field--type-text-long field--label-above"> <div class="field__label">Bio</div> <div class="field__item"><p><em>El Profesor Doctorando Luis Vinicio León Carrillo es profesor investigador del Departamento de Electrónica, Sistemas e Informática del ITESO. Es Presidente y socio fundador de e-Quallity, empresa especializada en prueba de software. Es cofundador del Capítulo Guadalajara de la AMCIS, así como su Secretario actual. </em></p></div> </div> <section class="field field--name-comment field--type-comment field--label-above comment-wrapper"> </section> Tue, 25 Sep 2007 16:39:27 +0000 Anonymous 392 at https://sg.com.mx https://sg.com.mx/revista/03/el-contexto-la-prueba-software#comments