sábado, 28 de mayo de 2011

Propiedad Intelectual, propiedad industrial y lincenciamiento en Software Libre

LICENCIA PUBLICA GENERAL - GENERAL PUBLIC LICENSE.

Los principios que inspiran al software libre y que se garantizan a través del Copyleft, se logran gracias a la adopción del sistema de Licencia Pública General (LPG) o en ingles Public General License (PGL). El proyecto GNU (No es Unix) y las condiciones de distribución y redistribución del software libre, se encuentran claramente definidas en cuanto a sus términos y alcances en la Licencia Pública General (LPG). La licencia respectiva es incluida en cada paquete y hace parte de cada una de las distribuciones que se hace del código fuente de los programas GNU.

Así por ejemplo existe una Licencia Pública General para Bibliotecas (Library General Public License - LGPL), la cual ha sido rediseñada luego de que la misma se presto para usos incorrectos por parte de algunos de su usuario. La GPL lo que busca en ultimas es crear unos parámetros o standard generales en el licenciamiento del software libre, haciéndolos compatibles entre si.

Actualmente la versión oficial de la GPL aprobada por la Fundación de Software Libre se encuentra en idioma ingles, y no se han aprobado traducciones oficiales de la misma a otras lenguas para evitar tergiversaciones o interpretaciones erróneas. Sin embargo, existen una serie de traducciones no oficiales a varios idiomas (Alemán, Francés, Croata, Español, Italiano, Koreano, japonés, Ruso, Eslovaco, Portugués, Finlandés, Rumano, Gallego, Tailandés, Chino e Indonesio), que servirán de parámetro para entender en alguna medida de mejor manera la GNU - GPL. Estas traducciones al igual que el texto oficial en ingles y mucha otra información sobre el software libre y la Licencia Publica General pueden ser consultadas en www.gnu.org

COPYLEFT.

Una de las ventajas que reporta el uso de software libre, es el hecho de permitir que se realicen mejoras, estudios, modificaciones, actualizaciones y en general cualquier distribución y redistribución de las mismas, para que sean aprovechadas por los demás miembros de la comunidad. Sin embargo, puede suceder que alguien tome un software libre, lo modifique, mejore, transforme, actualice y luego lo quiera convertir en software propietario, convirtiendo en privado lo que en principio era público. Por ello y en premeditada contraposición al término COPYRIGHT, surge la expresión COPYLEFT, como palabra que significa todo lo contrario a las prerrogativas que reporta el Copyright. En palabras de Richard Stalllman ´´ En lugar de poner el software libre GNU en el dominio público, nosotros lo protegemos con Copyleft ``

Utilizando un juego de palabras; podemos decir que el Copyleft es una restricción a las restricciones. Así como el Copyright le permite a su titular imponer condiciones, restricciones y limitantes; el Copyleft, le impide a quien realice mejoras, actualizaciones, estudios o cualquier uso sobre un software libre, que al distribuirlas o redistribuirlas, imponga restricción alguna que afecte la naturaleza de libre que tenía el software al inicio del proceso y por lo tanto se conservarán y respetarán las mismas libertades que le fueron otorgadas.


PROGRAMAS COMERCIALES

Son los adquiridos ordinariamente en puntos de distribución autorizados por el productor con su respectiva licencia, y que presentan las siguientes características:

  • Hay reserva de derechos (C)
  • Back up o copia de seguridad solo en caso de falla o destrucción
  • No se permiten modificaciones
  • No se permiten nuevos trabajos hechos con base en el paquete (obras derivadas)

SHAREWARE
 
El productor o creador realiza la distribución de manera directa, ordinariamente a través de la red (on line), autorizando al usuario para descargar (Donwload) o probar el programa por algún tiempo. Si se desea continuar usándolo, se debe pagar la remuneración respectiva.

FREEWARE

Se autoriza de manera gratuita a cualquier persona para usarlo, copiarlo, distribuirlo, comercializarlo y modificarlo.
El titular de los derechos no se desprende de ellos, pues aún cuando fija unas condiciones de uso bastante amplias, el programa sigue bajo su control.

DOMINIO PÚBLICO
 
En general una obra protegida por el Derecho de Autor, y en el caso del software, este puede salir del dominio privado (deja de ser software propietario), y entrar en el dominio público en los siguientes eventos:
  •  Cuando el titular de los derechos patrimoniales renuncia a ellos de manera expresa y por escrito.
  • Cuando se agota el término de  protección
  • Cuando opera la expropiación de los derechos

jueves, 26 de mayo de 2011

Como se hace Software

Comparto este segmento de charla impartida por Raydelto Hernández en la extensión de la UASD en Nagua, Curna. República Dominicana.

miércoles, 18 de mayo de 2011

Proyecto de anàlisis orientado a objetos.

Interesante video de un proyecto de anàlisis con orientaciòn a objetos acerca de la reparaciòn de un vehìculo con diferentes tipos de averìas en un taller mecànico.


domingo, 8 de mayo de 2011

Diseño de Software orientado a objeto con UML

UML es una especificación de notación orientada a objetos. Se basa en las anteriores especificaciones BOOCH, RUMBAUGH y COAD-YOURDON. Divide cada proyecto en un número de diagramas que representan las diferentes vistas del proyecto. Estos diagramas juntos son los que representa la arquitectura del proyecto.
Con UML nos debemos olvidar del protagonismo excesivo que se le da al diagrama de clases, este representa una parte importante del sistema, pero solo representa una vista estática, es decir muestra al sistema parado. Sabemos su estructura pero no sabemos que le sucede a sus diferentes partes cuando el sistema empieza a funcionar. UML introduce nuevos diagramas que representa una visión dinámica del sistema. Es decir, gracias al diseño de la parte dinámica del sistema podemos darnos cuenta en la fase de diseño de problemas de la estructura al propagar errores o de las partes que necesitan ser sincronizadas, así como del estado de cada una de las instancias en cada momento. El diagrama de clases continua siendo muy importante, pero se debe tener en cuenta que su representación es limitada, y que ayuda a diseñar un sistema robusto con partes reutilizables, pero no a solucionar problemas de propagación de mensajes ni de sincronización o recuperación ante estados de error. En resumen, un sistema debe estar bien diseñado, pero también debe funcionar bien.
UML también intenta solucionar el problema de propiedad de código que se da con los desarrolladores, al implementar un lenguaje de modelado común para todos los desarrollos se crea una documentación también común, que cualquier desarrollador con conocimientos de UML será capaz de entender, independientemente del lenguaje utilizado para el desarrollo.
UML es ahora un estándar, no existe otra especificación de diseño orientado a objetos, ya que es el resultado de las tres opciones existentes en el mercado. Su utilización es independiente del lenguaje de programación y de las características de los proyectos, ya que UML ha sido diseñado para modelar cualquier tipo de proyectos, tanto informáticos como de arquitectura, o de cualquier otro ramo.
UML permite la modificación de todos sus miembros mediante estereotipos y restricciones. Un estereotipo nos permite indicar especificaciones del lenguaje al que se refiere el diagrama de UML. Una restricción identifica un comportamiento forzado de una clase o relación, es decir mediante la restricción estamos forzando el comportamiento que debe tener el objeto al que se le aplica.