domingo, 29 de mayo de 2011

Aspectos Legales del Software Libre

¿EXISTE ALGUNA DIFERENCIA ENTRE SOFTWARE LIBRE Y DE CÓDIGO ABIERTO O ES RELATIVAMENTE LO MISMO ?
Muchas veces hemos escuchado el termino de software libre y de código abierto, y tendemos a  confundir ambos conceptos, como si fuera casi lo mismo. Pero realmente no es así.¿Por que?. Porque, ambas se enfocan en aspectos diferentes como el uso,distribución,disponibilidad y responsabilidades que competen al usuario tener. Además la organización Free Software Foundation (FSF) apoya el concepto de software libre y la Open Source Initiative (OSI) apoya el Software de código abierto.

Para que un software pueda catalogarse como software libre o de código abierto debe cumplir con las cuatro libertades del Software libre:
  1. Ejecutar el programa con cualquier propósito.
  2. Estudiar y modificar el programa.
  3. Copiar el programa de manera que se pueda ayudar al vecino o a cualquiera.
  4. Mejorar el programa y publicar las mejoras.

Y los 10 principios de Software de código abierto:
  1. Libre redistribución: el software debe poder ser regalado o vendido libremente.
  2. Código fuente: el código fuente debe estar incluido u obtenerse libremente.
  3. Trabajos derivados: la redistribución de modificaciones debe estar permitida.
  4. Integridad del código fuente del autor: las licencias pueden requerir que las modificaciones sean redistribuidas sólo como parches.
  5. Sin discriminación de personas o grupos: nadie puede dejarse fuera.
  6. Sin discriminación de áreas de iniciativa: los usuarios comerciales no pueden ser excluidos.
  7. Distribución de la licencia: deben aplicarse los mismos derechos a todo el que reciba el programa.
  8. La licencia no debe ser específica de un producto: el programa no puede licenciarse solo como parte de una distribución mayor.
  9. La licencia no debe restringir otro software: la licencia no puede obligar a que algún otro software que sea distribuido con el software abierto deba también ser de código abierto.
  10. La licencia debe ser tecnológicamente neutral: no debe requerirse la aceptación de la licencia por medio de un acceso por clic de ratón o de otra forma específica del medio de soporte del software.
Basándose en los principios anteriores, notamos la principal diferencia radica en el punto nueve del software de código abierto entre las dos ideologías, entonces ¿Cómo se puede mejorar u optimizar algo si después es lucrado por otro u otros?





Aprendiendo a modelar con UML

   En proyectos de ingeniería, y en otras áreas, es conveniente desarrollar modelos antes de iniciar su construcción, dado que esta representación facilita la comunicación entre los entes involucrados en el desarrollo del producto final, permite la validación de especificaciones y sirve de base para la aceptación de dicho producto.

   En Sistemas de Información (SI) se utilizan modelos conceptuales, de funcionamiento y físicos para representar datos, procesos e interacciones entre los elementos del sistema. Se han generado distintos paradigmas de representación, siendo el más usado el llamado Orientado a Objetos (OO), donde un SI está conformado por objetos que poseen una estructura y funcionamiento, y se comunican entre sí a través del intercambio de mensajes.

   Durante las décadas de los 70, 80 y 90, se gestaron varias metodologías de desarrollo de software OO, hasta que en 1994, tres reconocidos investigadores en esta área, responsables de las metodologías más utilizadas del momento, formularon un lenguaje de modelaje unificado al que denominaron UML, que como ya se ha dicho, no pretende ser una metodología de desarrollo de software, sino una notación estándar para el análisis y el diseño de SI OO.


   En UML se incluyen varios tipos de diagramas, vistas y extensiones que facilitan la representación conceptual y física de los distintos objetos de un SI, y se disponen en el mercado de diferentes herramientas de software para la elaboración y mantenimiento de estos diagramas. UML es un lenguaje para especificar y no para describir métodos o procesos. Se utiliza para definir un sistema de software, para detallar los artefactos en el sistema y para documentar y construir. En otras palabras, es el lenguaje en el que está descrito el modelo. Se puede aplicar en una gran variedad de formas para dar soporte a una metodología de desarrollo de software, pero no especifica en sí mismo qué metodología o proceso usar.

Un lenguaje proporciona un vocabulario y unas reglas, las cuales se centran en la representación conceptual y física de un sistema, y así permiten una comunicación. En este caso, este lenguaje se centra en la representación gráfica de un sistema.

sábado, 7 de mayo de 2011

Ingeniería del Software Libre

   La ingeniería del software libre viene a dar aires renovados a una ingeniería del software tradicional que se encuentra estancada debido básicamente a que no ha sabido crear métodos para cuantificar tiempos, costos y calidad del software de forma aceptable y contrastable.


   Uno de los grandes problemas de la ingenería del software ha sido y es que no ha sabido adaptarse consecuentemente a su propia definición. Esto es algo que se puede considerar como una especie de traición a sí misma, a sus propios fundamentos. El enfoque sistemático y cuantificable ha tenido siempre como barreras las propias de las formas en las que el software se ha publicado y distribuido. El formato binario del software, la opacidad en los modelos de negocios, los secretos y barreras comerciales, entre otros aspectos, han imposibilitado que equipos independientes puedan, en demasiadas ocasiones, verificar de manera sistemática los resultados obtenidos. Las "verdades" enunciadas son con frecuencia experiencias puntuales que han sido generalizadas y dadas por válidas ante la falta de alternativas. En definitiva: la propia forma de desarrollar, distribuir y comerciarlizar software ha sido la que ha llevado a la ingeniería del software a la crisis.

Y es aquí donde el software libre puede dar nuevos aires a la ingeniería del software.

Fuente: http://curso-sobre.berlios.de/curso/trab/grex/sobre-trabajo-grex.pdf