miércoles, 27 de agosto de 2014

Licencia Pública General



 Licencia Pública General

El software que se publica debería ser software libre. Para que sea libre tiene que publicarlo con una licencia de software libre. Generalmente utilizamos la Licencia Pública General de GNU (GNU GPL), pero eventualmente también utilizamos otras licencias de software libre. Para el software GNU únicamente usamos otras licencias si son compatibles con la GNU GPL.
La documentación del software libre debería ser documentación libre, para que se pueda redistribuir y mejorar al igual que el software al cual describe. Para que sea documentación libre tiene que publicarla con una licencia de documentación libre
La Licencia Pública General de GNU o más conocida por su nombre en inglés GNU General Public License (o simplemente sus siglas del inglés GNU GPL) es la licencia más ampliamente usada en el mundo del software y garantiza a los usuarios finales (personas, organizaciones, compañías) la libertad de usar, estudiar, compartir (copiar) y modificar el software. Su propósito es declarar que el software cubierto por esta licencia es software libre y protegerlo de intentos de apropiación que restrinjan esas libertades a los usuarios. Esta licencia fue creada originalmente por Richard Stallman fundador de la Free Software Foundation (FSF) para el proyecto GNU (GNU project).
La licencia GPL puede ser usada por cualquiera, su finalidad es proteger los derechos de los usuarios finales (usar, compartir, estudiar, modificar). Esta es la primera licencia copyleft para uso general. Copyleft significa que los trabajos derivados sólo pueden ser distribuidos bajo los términos de la misma licencia. Bajo esta filosofía, la licencia GPL garantiza a los destinatarios de un programa de ordenador los derechos-libertades reunidos en definición de software libre (free software definition) y usa copyleft para asegurar que el software está protegido cada vez que el trabajo es distribuido, modificado o ampliado. En la forma de distribución (sólo pueden ser distribuidos bajo los términos de la misma licencia) se diferencian las licencias GPL de las licencias de software libre permisivas (permissive free software licenses), de las cuales los ejemplos más conocidos son las licencias BSD (BSD licenses).

El software bajo licencia GPL puede ser aplicado bajo todos los propósitos (incluidos los propósitos comerciales e incluso como herramienta de creación de software propietario (proprietary software)). En uso puramente privativo (ó interno) - sin ventas ni distribuciones implicadas - el software puede ser modificado sin liberar el código fuente (por contra, si hay implicadas ventas o distribuciones, el código fuente y cualquier cambio realizado en él debe estar disponible para los usuarios, ya que en este caso los derechos del usuario están protegidos por copyleft). De esta forma, las aplicaciones instaladas en sistemas operativos bajo licencia GPL como Linux, no es necesario que estén licenciadas bajo GPL o que estén distribuidas con su código fuente disponible ya que las licencias no dependen de la plataforma. Por ejemplo, si un programa está formado completamente por código original, o si está combinado con software que no se cumple los requisitos de copyleft no es necesario que se licencie bajo GPL o que se distribuya con su código fuente disponible. Sólo si un programa utiliza fragmentos de código GPL (y el programa es distribuido) el código fuente en su totalidad debe estar disponible (bajo la misma licencia). La licencia LGPL (GNU Lesser General Public license) fue creada para tener derechos menos restrictivos que GPL, en este caso en un programa que utiliza fragmentos de código LGPL, no es necesario liberar el código original.

Los usuarios o compañías que distribuyen sus trabajos bajo licencias GPL, pueden cobrar o distribuirlas gratuitamente. Esto distingue las licencias GPL de las licencias software que prohíben su distribución comercial. La FSF argumenta que no se debe restringir la distribución comercial del software (incluyendo la redistribución), la GPL establece explícitamente que las obras GPL se puede vender a cualquier precio.

Aspectos Legales SL


Licencias Software Libre

GPL: La Licencia Pública General GNU (GNU General Public License GPL) es la licencia que acompaña los paquetes distribuidos por el Proyecto GNU, más una gran variedad de software que incluye el núcleo del sistema operativo Linux.
Copyleft: La mayoría de las licencias usadas en la publicación de software libre permite que los programas sean modificados y redistribuidos. Estas prácticas están generalmente prohibidas por la legislación internacional de copyright, que intenta impedir que alteraciones y copias sean efectuadas sin la autorización del o los autores. Las licencias que acompañan al software libre hacen uso de la legislación de copyright para impedir la utilización no autorizada, pero estas licencias definen clara y explícitamente las condiciones bajo las cuales pueden realizarse copias, modificaciones y redistribuciones, con el fin de garantizar las libertades de modificar y redistribuir el software registrado. A esta versión de copyright, se le da el nombre de copyleft.

Debian: La licencia Debian es parte del contrato realizado entre Debian y la comunidad de usuarios de software libre, y se denomina Debian Free Software Guidelines (DFSG). En esencia, esta licencia contiene criterios para la distribución que incluyen, además de la exigencia de publicación del código fuente: (a) la redistribución libre ; (b) el código fuente debe ser incluido y debe poder ser redistribuido; (c) todo trabajo derivado debe poder ser redistribuido bajo la misma licencia del original; (d) puede haber restricciones en cuanto a la redistribución del código fuente, si el original fue modificado; (e) la licencia no puede discriminar a ninguna persona o grupo de personas, así como tampoco ninguna forma de utilización del software; (f) los derechos otorgados no dependen del sitio en el que el software se encuentra; y (g) la licencia no puede 'contaminar' a otro software.
Software Semi-libre. El Software semi-libre es un software que no es libre pero permite que otros individuos lo usen, lo copien, lo distribuyan y hasta lo modifiquen. Ejemplos de software semi-libre son las primeras versiones de Internet Explorer de Microsoft, o algunas versiones de browsers de Netscape, y StarOffice.

Freeware: El término freeware no posee una definición ampliamente aceptada, pero es utilizada para programas que permiten la redistribución pero no la modificación, y que incluyen su código fuente. Estos programas no son software libre.

Software con Dominio Público. El Software con dominio público es software sin copyright. Algunos tipos de copia o versiones modificadas pueden no ser libres si el autor impone restricciones adicionales en la redistribución del original o de trabajos derivados.


Shareware: Shareware es el software disponible con el permiso para que sea redistribuido, pero su utilización implica el pago. Generalmente, el código fuente no se encuentra disponible, y por lo tanto es imposible realizar modificaciones.

Software Propietario: El Software propietario es aquel cuya copia, redistribución o modificación están, en alguna medida, prohibidos por su propietario. Para usar, copiar o redistribuir, se debe solicitar permiso al propietario o pagar.

Software Comercial: El Software comercial es el software desarrollado por una empresa con el objetivo de lucrar con su utilización. Nótese que "comercial" y "propietario" no son lo mismo. La mayor parte del software comercial es propietario, pero existe software libre que es comercial, y existe software no-libre que no es comercial.

sábado, 23 de agosto de 2014

DIAGRAMAS UML





UML

UML:
        El Unified Modeling Language (UML) define un lenguaje de modelado orientado a objetos común para visualizar, especificar, construir y documentar los componentes de un sistema software OO.

        El UML no es una metodología, sino una notación que trata de posibilitar el intercambio de modelos de software.
Un modelo es una simplificación de la realidad creada para comprender mejor un sistema.
       UML se compone de muchos elementos de esquematización que representan las diferentes partes de un sistema de software. Los elementos UML se utilizan para crear diagramas, que representa alguna parte o punto de vista del sistema. En UML existen cinco vistas que permiten, visualizar, especificar, construir y documentar la arquitectura del software. UML permite representar cada vista mediante un conjunto de diagramas.

         UML es un lenguaje de modelado visual, utiliza diagramas, para la representación de los sistemas.
Fases en que se descompone el proceso de desarrollo OO:

1. Planificación y Especificación de Requisitos: Planificación, definición de requisitos, conocer los procesos del dominio, etc.
2. Construcción: La construcción del sistema. Se subdivide en las siguientes:
  • Análisis: Se analiza el problema a resolver desde la perspectiva de los usuarios y de las entidades externas que van a solicitar servicios al sistema.
  • Diseño: El sistema se especifica en detalle, describiendo cómo va a funcionar internamente para satisfacer lo especificado en el análisis.
  • Implementación: Se lleva lo especificado en el diseño a un lenguaje de programación.
  • Pruebas: Se llevan a cabo una serie de pruebas para corroborar que el software funciona correctamente y que satisface lo especificado en la etapa de Planificación y Especificación de Requisitos.
3. Instalación: La puesta en marcha del sistema en el entorno previsto de uso.
  • Diagramas para modelar el Comportamiento del Sistema:
  • Diagrama de Casos de Uso: Muestra un conjunto de casos de uso y actores y sus relaciones.
  • Diagrama de Secuencia: Diagrama de interacción con la relación temporal de los mensajes y los objetos.
  • Diagrama de Colaboración: Diagrama de interacción que resalta la organización estructural de los objetos que envían y reciben mensajes.
  • Diagrama de Estados: Muestra una máquina de estados, que consta de estados, transiciones, eventos y actividades. Vista dinámica del sistema.
  • Diagrama de Actividades: Muestra el flujo de actividades dentro de un sistema.
  • Diagramas para modelar la Estructura del Sistema:
  • Diagrama de Clases: Muestra un conjunto de clases, interfaces y colaboraciones, así como sus relaciones.
  • Diagrama de Objetos: Muestra un conjunto de objetos y sus relaciones.
  • Diagrama de Componentes: Muestra la organización y las dependencias entre un conjunto de componentes.
  • Diagrama de Despliegue: Representa la infraestructura de un sistema en tiempo de ejecución. 


Todo desarrollo de software exige:
Necesidad de una BUENA DOCUMENTACIÓN:
  • externa (usuarios) → facilidad de uso
  •  interna (desarrolladores) → extensibilidad
  •  interfaz del módulo → extensibilidad y reutilización
La complejidad inherente al software:
  • Difícil interacción entre los usuarios de un sistema y sus desarrolladores.
  • Diferentes perspectivas sobre la naturaleza del problema.
  • Los requisitos de un sistema informático cambian durante su desarrollo.
  • La dificultad de gestionar el proceso de desarrollo, exige:
  • La construcción de un SI requiere la escritura de grandes cantidades de nuevo software y la reutilización de software existente.
  • Construcción de módulos independientes.
  • Comunicación entre los miembros del equipo de desarrollo.
  • Organización en diferentes fases o etapas

Solución: POO
       Los SOO ofrecen rendimiento, flexibilidad y funcionalidad para implementaciones prácticas.
       Mediante POO se expanden las posibilidades de desarrollo de SI debido a la falta de restricciones en los tipos de datos. Estructuras de datos heterogéneas.
       La POO permite la reutilización de componentes software.

PRUEBAS DE SOFTWARE

En relación con las pruebas de Software:
       El único instrumento adecuado para determinar el status de la calidad de un producto software es el proceso de pruebas. En este proceso se ejecutan pruebas dirigidas a componentes del software o al sistema de software en su totalidad, con el objetivo de medir el grado en que el software cumple con los requerimientos. En las pruebas se usan casos de prueba, especificados de forma estructurada mediante Técnicas de prueba. El proceso de pruebas, sus objetivos y los métodos y técnicas usados se describen en el plan de prueba.



¿Quién se encarga de las pruebas de software?
     Se distinguen pruebas técnicas y pruebas funcionales. Las pruebas técnicas son la responsabilidad de los ingenieros de software que han desarrollado el producto, pero estos ingenieros nunca deben hacerse cargo de las pruebas funcionales, por varias razones. El responsable para las pruebas funcionales es el técnico de pruebas, que dispone de los conocimientos y aptitudes necesarios para esta tarea tan importante y específica.

      En proyectos a gran escala las pruebas funcionales son la responsabilidad de un equipo de pruebas, que consiste de uno o varios técnicos, un coordinador de pruebas y un gestor de pruebas o de calidad.

CALIDAD

Definición de calidad:
      Propiedad o conjunto de propiedades inherentes a una cosa, que permiten apreciarla como igual, mejor o peor que las restantes de su especie. (Diccionario de la Real Academia Española).

La consecución de la calidad puede tener tres orígenes:
–Calidad realizada: la que es capaz de obtener la persona que realiza el trabajo.
–Calidad programada: La calidad que se ha pretendido obtener.
–Calidad necesaria: La calidad que el cliente exige con mayor o menor grado de concreción



Calidad de Software:
     Concordancia del software producido con los requisitos funcionales y de rendimiento explícitamente establecidos, con los estándares de desarrollo explícitamente documentados y con las características implícitas que se espera de todo software desarrollado profesionalmente [Pressman, 1998].

Los requisitos establecidos explícitamente se reflejan en el documento de especificación de requisitos del sistema (ERS):
–    Requisitos funcionales: funciones a realizar por el software.
–    Requisitos no funcionales o extendidos: requisitos de seguridad, rendimiento, interfaz.
      La organización internacional de estándares, ISO, ha producido una serie de estándares para la Gestión y aseguramiento de la calidad conocidos colectivamente como ISO 9000.
Se pueden dividir en dos grupos:
–    Normas para el aseguramiento externo de la calidad.
      - ISO 9001: Aseguramiento de la calidad en organizaciones cuyo proceso abarca desde el diseño hasta el servicio posventa.
    - ISO 9002: Aseguramiento de la calidad en organizaciones cuya actividad se basa en las fases de producción y de instalación.
      - ISO 9003: Aseguramiento de la calidad en organizaciones cuya actividad consiste en inspecciones y ensayos finales.
– Normas para la gestión interna de la calidad.
      - ISO 9004: Elementos de un sistema de calidad

miércoles, 13 de agosto de 2014

Mapa Mental Ingeniería de Software Libre

Mapa Mental Ingeniería de Software Libre



Ingeniería de Software Libre

 Ingeniería de Software Libre


       La ingeniería de software ha proporcionado al mundo de desarrollo de software, un modelo a seguir para obtener de forma disciplinada productos de software de calidad.
           La necesidad de que existiese esta disciplina se presento porque el mundo de desarrollo de software creció rápidamente y los proyectos fracasaban, consumiendo mucho más tiempo y recurso del que se estimaba originalmente, rebasaban los presupuestos, al terminar no resolvían la situación o los requerimientos reales, entre otras cosas; al surgir la ingeniería de software nace  con ella diversos paradigmas o metodologías que de alguna manera proponen un orden en el proceso, para garantizar de una forma menos empírica el desarrollo y aumentar así las probabilidades de éxito.
En el camino nace la necesidad de proyectos de software libre lo que presenta un reto mayor, se requiere de mucha más disciplina, de que todo este mucho más claro y engranado para asegurar el éxito de los proyectos, ya que el equipo de desarrollo trabaja distribuido alrededor del mundo y el trabajo es netamente colaborativo, nadie debe invertir mucho tiempo en comprender como es que deben funcionar las cosas, sino que por el contrario ese tiempo se dedique a producir y colaborar, por lo que se requiere entonces de mecanismos dinámicos fáciles de aplicar y de entender. El SL se distingue por la creación, desempeño y evolución de los equipos de trabajo que se conforman alrededor de las comunidades, así como la forma cómo manejan el liderazgo, la motivación y el reconocimiento.
La ingeniería del software permite crear un orden dentro de un desarrollo de software libre, permite definir una metodología, herramientas y técnicas que se ajusten al proyecto. Va a lograr que se mida la calidad del desarrollo de forma ordenada, logra que las personas que colaboren dentro del proyecto puedan comprender cuál es su rol y como alcanzar el objetivo final.

       Desarrollar un software de calidad depende de muchas etapas y actividades, donde juega un papel fundamental para el éxito del producto, elegir la metodología que mejor se adapte a las particularidades del proyecto y del equipo que lo llevara a cabo. El rol fundamental de las metodologías es dar un patrón que permita guiar las etapas y actividades necesarias para encaminar de forma correcta cualquier proyecto de este tipo minimizando de alguna manera los factores que pueden llevar al fracaso los proyectos y por consecuencia los productos.

          Existen dos grandes enfoques en lo que respecta a las metodologías de desarrollo, el tradicional y el ágil, el primero pensado en una serie de pasos y etapas que generan el uso exhaustivo de documentación durante todo el ciclo del proyecto mientras que el segundo ponen vital importancia en la capacidad de respuesta a los cambios, la confianza en las habilidades del equipo y al mantener una buena relación con el cliente.
          
             Entre las principales metodologías tradicionales se tienen las conocidas RUP (RATIONAL UNIFIED PROCESS), MSF (MICROSOFT SOLUTION FRAMEWORK), como conocemos metodologias en cascada, en estrella entre otras, que centran su atención en llevar una documentación exhaustiva de todo el proyecto y en cumplir con un plan de proyecto, definido todo esto, en la fase inicial del desarrollo del proyecto. Una de las características importantes dentro de este enfoque es el alto costo de implementar un cambio y la de no ofrecer una buena solución para proyectos donde el  entorno es volátil. El enfoque ágil, nace como respuesta a los problemas que presenta el enfoque tradicional, basándose en dos aspectos puntuales, el retrasar las decisiones y la planificación adaptativa; permitiendo potenciar aún  más el desarrollo de software a gran escala.

     Metodologías de Desarrollo Ágiles Vs. Metodologías Tradicionales

       Para el desarrollo de software, se requiere de diversos elementos que agrupados hacen que el desarrollo de software sea o no exitoso.

       Para esto existen las metodologías tradicionales que se modificaron para poder aplicarlas  al desarrollo de software, aunque durante mucho tiempo fueron la única solución al desarrollo, hizo estas metodologías poco flexibles y muy cuadriculadas. Estas consistían en una serie fundamentos y conceptos aplicados al desarrollo de software, documentación, planificación y procesos. (Plantillas, técnicas de administración, revisiones, etc.)

         Ante las dificultades de las metodologías tradicionales referentes al tiempo y flexibilidad, aparecen las metodologías ágiles como una respuesta metodológica, especialmente porque están orientadas a proyectos pequeños, constituyen una solución a la medida del entorno, simplificando las prácticas y asegurando la calidad del producto.


        El término ágil, nace en febrero de 2001 en una reunión en Utah (EEUU), aplicado al desarrollo de software, su objetivo era idear los valores y principios que permitirían a los equipos de desarrollo crear software rápidamente, respondiendo a los cambios surgidos a lo largo del proyecto, ofreciendo una alternativa a los procesos tradicionales. En dicha reunión se creó The Agile Alliance, organización, sin ánimo de lucro, que promueve los conceptos relacionados con el desarrollo ágil de software, apoyando las organizaciones para que adopten dichos conceptos.
 

Según el Manifiesto ágil, se valora al individuo y las interacciones del equipo de desarrollo sobre el proceso y las herramientas, desarrollar software que funciona (más que conseguir una buena documentación),  la colaboración con el cliente (más que la negociación mediante contrato),  respuesta a los cambios (más que seguir rigurosamente algún plan).

Entre ellas podemos Mencionar:

La metodología ágil XP:

      Una de las metodologías que más esta difundiéndose en la actualidad, es la Programación Extrema (XP, Extreme Programming). Esta metodología ágil está enfocada a fortalecer las relaciones interpersonales como clave para el éxito en desarrollo de software, promoviendo el trabajo en equipo, un buen clima laboral y preocupándose por el aprendizaje de los desarrolladores. Kent Beck, es el padre de XP (1999), esta metodología se basa en la retroalimentación continua entre el equipo de desarrollo y el cliente, simplificando las soluciones implementadas y disposición para los cambios; Adecuada para proyectos con requisitos imprecisos, cambiantes y con alto riesgo técnico.

SCRUM: es un modelo de referencia que define un conjunto de prácticas y roles, y que puede tomarse como punto de partida para definir el proceso de desarrollo que se ejecutará durante un proyecto. Los roles principales en Scrum son el ScrumMaster, que mantiene los procesos y trabaja de forma similar al director de proyecto, el ProductOwner, que representa a los stakeholders (interesados externos o internos), y el Team que incluye a los desarrolladores. 

       Como hemos mencionado desarrollar un software de calidad depende de muchas etapas y actividades, donde juega un papel fundamental para el éxito del producto, elegir la metodología que mejor se adapte así como el empleo de las mejores herramientas para el diseño e implementación de la metodología, es donde entran las llamadas herramientas CASE (Computer Aided Software Engineering), Ingeniería de Software Asistida por Computadora, son diversas aplicaciones informáticas destinadas a aumentar la productividad en el desarrollo de software reduciendo el costo de las mismas en términos de tiempo y de dinero. Estas herramientas pueden ayudar en todos los aspectos del ciclo de vida de desarrollo del software en tareas como el proceso de realizar un diseño del proyecto, cálculo de costos, implementación de parte del código automáticamente con el diseño dado, compilación automática, documentación o detección de errores entre otras.

        Como nuestro tema es software libre mencionemos algunas de las herramientas que mejor se adaptan al desarrollo en SL:         Los dearrolladores Web o Web Masters necesitan contar con ciertas herramientas, para su análisis, diseño o simplemente para documentación de sus diagramas UML, contamos con 3 herramientas de Software Libre para UML.

       
Umbrello: Sencilla e intuitiva, se pueden crear diferentes tipos de diagramas UML, pero no todos los tipos, los mas escenciales.

Dia: Es un editor de diagramas, no solo UML, también cuenta con una extensa variedad de tipos de diagramas. Con un manejo de ventanas para las herramientas de trabajo y el espacio de trabajo muy similar a Gimp al utilizar ventanas independientes.
Cuenta con un gran número de extensiones par aexportar los diagramas, desde extensiones de imágenes hasta extensiones xml.

ArgoUML: Herramienta hecha en Java, de estas 3 herramientas cuenta con una mejor interfaz, más atractiva al usuario, sin embargo, su debilidad son las limitantes de guardar con extenciones .zargo .uml .xmi solamente.
ArgoUML contiene funciones avanzadas en las etapas de diseño y modelación de software. Como características fundamentales:
 - Es modular y extensible.
 - Soporta todas las especificaciones UML.
 - Integrado con la WEB.
 - Brinda una excelente ayuda.

Mapa mental Software Libre


 Mapa mental Software Libre


Retos y Oportunidades del Software Libre en Venezuela

Retos y Oportunidades del Software Libre en Venezuela


         SL libre en Venezuela a través del SO Canaima, y considero de acuerdo al artículo compartido por los compañeros “El Software libre tiene mayores desafíos, en parte por el desconocimiento que existe, y en parte, porque es un programa que se halla en constante avance; asimismo, se han formulado algunas críticas, pero ello no debe impedir su desarrollo e implementación, especialmente en países donde el desarrollo tecnológico es menor y la tecnología cuesta demasiado”, y considero que en aquellos países que han realizado un gran esfuerzo por implementarlo no deberían dejar a un lado el acompañamiento de la herramienta en el tiempo, por lo que de esta forma se vería perdido todo el esfuerzo dedicado hasta el momento, como todos sabemos siempre existe resistencia al cambio lo que genera un gran desafío, y una vez que hemos concientizado no se debe dejar a los usuarios solos, se debe seguir de un fuerte esfuerzo de acompañamiento, adiestramiento, corrección a fallos, de tal manera que nutramos cada día más los conocimientos y de esta manera podríamos estar formando nuevos facilitadores activos y desarrolladores en comunidades de software libre, que es una de las principales fallas evidenciadas.

        En la sociedad de hoy, una de las principales herramientas para el desarrollo económico es la utilización adecuada de la tecnología, que entre otras ventajas, facilita la rápida generación, transferencia e intercambio de información, factor primordial en la dinámica de la sociedad del conocimiento de la que hoy formamos parte, una sociedad global y altamente competitiva. Frente a estas premisas y el entorno que nos rodea hay un elemento importante en todo ese engranaje de la sociedad del conocimiento del que es necesario profundizar, se trata del Software Libre.

          El movimiento del Software Libre está impactando muchos ámbitos en nuestro país, en los que las oportunidades y los desafíos representan aspectos de indiscutible importancia, entre los cuales tenemos: ámbito académico, a todo nivel desde primaria con la incorporación de las herramientas computacionales como lo es el "proyecto canaima" hasta las universidades, a nivel técnico, estratégico, legal, social, un movimiento que esta abarcando todas las actividades de nuestra vida, marcando gran impacto en aquellas personas que han sabido hacer uso correcto de estas herramientas y sacar de ellas el mejor provecho.


Herramientas de Software Libre

Hola compañeros hoy quiero contribuir aportando respuesta a la pregunta de los compañeros Rodrigo y Chong en cuanto a ¿Cuáles aplicaciones de Software libre venezolanas han conocido? ¿Qué les parece?, las aplicaciones de software libre desarrollada en Venezuela con talento humano que conozco es el Sistema operativo “Canaima” GNU/Linux es un proyecto abierto, construido centrado en el desarrollo de herramientas y modelos productivos basados en las Tecnologías de Información (TI) Libres de software y sistemas operativos, basada en Debían proyecto que surge como consecuencia del Decreto Presidencial 3.390 sobre el uso de tecnologías libres en la Administración Pública Nacional (APN), como otras distribuciones, Canaima GNU/Linux posee aplicaciones diversas para llevar a cabo tareas de ofimática, entretenimiento, desarrollo y configuración de todo el sistema. Su interfaz predeterminada es GNOME. Existen otras versiones extraoficiales mantenidas por la comunidad, con diferentes escritorios, como XFCE.

    En mi opinión es una excelente herramienta desarrolla por talento humano venezolano, pero considero que en la actualidad aun presenta falla en cuanto a la masificación de información y adiestramiento al personal institucional y a la creación de mas comunidades de software libre que puedan llevar a los Organismos conocimiento en cuanto a las actualizaciones y mejoras de la herramienta.
Saludos A todos..

lunes, 4 de agosto de 2014

SOFTWARE LIBRE


SOFTWARE LIBRE

SOFTWARE LIBRE




         Para definir el Software Libre, tomaremos el concepto legal que ha asumido el Estado Venezolano, a través del Artículo 2 del Decreto 3390, el cual define al Software Libre como “Programa de computación cuya licencia garantiza al usuario acceso al código fuente del programa y lo autoriza a ejecutarlo con cualquier propósito, modificarlo y redistribuir tanto el programa original como sus modificaciones en las mismas condiciones de licenciamiento acordadas al programa original, sin tener que pagar regalías a los desarrolladores previos”.
            El termino de software libre se puede definir como: el derecho que se nos otorga al hacer desarrollo en esta herramienta como lo es: poder copiar, modificar reutilizar, estudiar y redistribuir un producto. El planteamiento conceptual de la corriente del software libre lo que pretende es impedir la explotación permanente y desmesurada en cuanto al uso y al conocimiento que se obtiene con el desarrollo de aplicaciones, sobre todo los beneficios que son concebidos con el desarrollo de sistemas de información orientados a servicios.

         A través del desarrollo de aplicaciones en software libre se busca garantizar que el conocimiento sea compartido y que el mismo sea libre para que terceros puedan utilizar, mejorar, reutilizar, cambiar, e incrementar las potencias y transformar todo en algo valioso que es el conocimiento lo que considero la mayor ventaja en la implementación de este tipo de desarrollo, los beneficios que se obtienen son muy numerosos ejemplo en el caso de las organizaciones o empresas donde tienen desarrollos libres, les brinda la libertad a los usuarios que adquieren el producto de poder usar, copiar, modificar, estudiar, reutilizar, modificar y distribuir libremente.


         Algo que debemos tener todos presente o tomar en cuenta cuando hablamos de desarrollo en software libre, es que no podemos confundir el termino de libre con “gratis”, ya que en muchas oportunidades cuando el producto se adquiere no se incluye costo alguno, pero no se nos otorgan los derechos de modificación en el código fuente lo que significa que el usuario queda atado a pagar licencia por modificación y mantenimiento de la aplicación, y en otras oportunidades es lo contrario cobran el código pero nos dan derechos abierto para modificar, mejorar, reutilizar e incluso redistribuir la aplicación.

Entre algunas de las ventajas que presenta el desarrollo en software libre puedo mencionar las siguientes:

1)    Libertad  de uso y redistribución
2)    Independencia tecnológica
3)    Fomento de la libre competencia al basarse en servicio y no en licencia

         Aunque bien es cierto que para poder hablar de independencia tecnológica necesitamos incrementar la conformación y fortalecimiento de comunidades de software libre en nuestro país y en nuestras organizaciones.