Te damos la bienvenida a Introducción a la Ciencia Abierta: Código Abierto
Este módulo se centra en la práctica y aplicación del Código Abierto como parte del flujo de trabajo de Ciencia Abierta. Proporciona un 'cómo se procede' que sigue el ciclo de vida del desarrollo de código y las premisas "Usar, Crear, Compartir". Algunos de los temas clave discutidos incluyen: beneficios y limitaciones del Código Abierto, cómo descubrir y evaluar el código, consideraciones y métodos para programar siguiendo principios abiertos, y finalmente cuándo y cómo compartir tu código.
Después de completar este módulo deberías poder:
- Explicar lo que significa el software de Código Abierto, incluyendo el ciclo de desarrollo de software, los beneficios, algunas limitaciones comunes y cómo se abordan estas limitaciones.
- Evaluar el software de Código Abierto para su reuso mediante el análisis de la documentación proporcionada, incluyendo archivos README y detalles de licencia, y poder, además, citar el software apropiadamente.
- Crear un plan de gestión para el software de Código Abierto que incluya la estrategia para seleccionar dependencias de código y repositorios abiertos, así como la incorporación de elementos como metadatos, archivos README y control de versiones, para garantizar la reusabilidad y la accesibilidad del software.
- Evaluar si tu software de Código Abierto puede ser compartido y cuáles son las mejores opciones para hacerlo y aumentar su visibilidad.
- Enumerar las responsabilidades que tiene quien desarrolla el software una vez que el software de Código Abierto es compartido, incluyendo tanto la gestión de los requisitos legales, como el mantenimiento del software.
Estos términos clave son tópicos importantes para este módulo. Selecciona el término para ver la descripción.
Código fuente – Conjunto de sentencias legible por humanos escrito en un lenguaje de programación que juntos componen software. Quienes programan escriben software en código fuente, a menudo guardado como un archivo de texto en un ordenador. Los términos código y código fuente se utilizan a menudo de forma intercambiable.
Software – Este término general se utiliza para programas de computadora y aplicaciones que proporcionan a las personas usuarias un cierto grado de utilidad o producen un resultado o servicio. El software se puede distribuir en forma ejecutable, como código fuente o como un servicio a través de Internet.
Licencia de software – Un documento que establece los derechos de la persona que desarrolló el sofware y de las personas que lo usan.
Licencia de Código Abierto – Licencia de software, aprobada por la Iniciativa de Código Abierto (OSI) como compatible con la definición de Código Abierto, otorgando permisos a cualquiera para inspeccionar, usar, modificar y distribuir el código fuente del software para cualquier propósito. Estándares similares pueden ser promulgados por otras organizaciones.
Software de Código Abierto – Software cuyo código fuente está bajo una licencia de Código Abierto, por el cual el titular de los derechos de autor concede a cualquier persona el derecho de inspeccionar, modificar y distribuir el código fuente. Sinónimo de Código Abierto.
Software de código cerrado – Software propietario con código fuente que no está disponible públicamente. Sólo las personas autoras originales, no las usuarias, tienen derechos para copiar, modificar, actualizar y editar el código fuente. Las personas usuarias no tienen acceso al código.
Obra derivada – Una obra creativa que se deriva o se basa en una obra preexistente que es traducida, alterada, organizada o transformada de una manera que requiere permiso de la persona titular de los derechos de autor de la obra original o proviene de obras de dominio público.
Control de versiones – Un sistema para gestionar automáticamente las diferentes versiones de un archivo de computadora que sufre cambios, en especial uno que contiene código fuente. En el desarrollo de software, el control de versiones preserva un historial completo de los cambios en el código fuente y permite a un desarrollador retroceder a una versión anterior si es necesario.
Repositorio de código – Una ubicación central de almacenamiento para el código fuente. Los repositorios de código pueden contener código fuente en uno o más lenguajes de programación. Los repositorios pueden ofrecer herramientas para fusionar entradas de las personas que desarrollan, pruebas automatizadas para verificar el correcto funcionamiento del código fuente, control de versiones para rastrear cambios con el tiempo y funcionalidades de gestión de proyectos. Estos sitios pueden no prometer conservación a largo plazo.
Repositorio de software – Colecciones de aplicaciones independientes o paquetes de software disponibles en línea. Los repositorios normalmente controlan el acceso y rastrean las implementaciones/descargas de paquetes. Estos pueden incluir código fuente o ejecutables.
Repositorio a largo plazo – un servicio para la conservación a largo plazo y referencia de software histórico y contemporáneo. Los repositorios facilitan que las citas de código sean sostenibles.
Crédito de estas definiciones: National Academies of Sciences, Engineering, and Medicine. Open-source Software Policy Options for NASA Earth and Space Sciences. Washington, DC: The National Academies Press. https://doi.org/10.17226/25217 y otros recursos.
- Historias de éxito
- Definiciones y consideraciones del Código Abierto
- Principios, beneficios y desafíos
- Cuándo no compartir
- Plan de Gestión de Software (PGS)
- Lección 1: Resumen
- Lección 1: Evaluación
- Descubrir Código y Software Abiertos
- Evaluar Código y Software Abiertos
- Reusar Código Abierto
- Citar y reconocer el uso de Código Abierto
- Lección 2: Resumen
- Lección 2: Evaluación
- ¿Cómo planificar para crear código?
- Importancia del control de versiones
- Describir nuestro código para otras personas
- ¿Qué licencia deberíamos elegir para nuestro código?
- Buenas prácticas de programación
- Lección 3: Resumen
- Lección 3: Evaluación
- Planificar para compartir tu código
- Cuestiones legales y de seguridad
- Cuándo: El cronograma para archivar y compartir código
- Dónde: Dónde compartir Código Abierto
- Cómo: Cómo habilitar la reusabilidad del código
- Quién: Roles y responsabilidades de las personas del equipo en la implementación del PGS
- Lección 4: Resumen
- Lección 4: Evaluación