Explorando el Mundo del Software: Desarrollo, Tipos y Licencias

Software

Conjunto de los programas de cómputo, procedimientos, reglas, documentación y datos asociados que forman parte de las operaciones de un sistema de computación.

Características

  • Es lógico, no físico.
  • Se desarrolla, no se fabrica.
  • No se estropea.
  • Se puede construir a medida.

Etapas del ciclo de vida

  • Definición de objetivos: Definir el resultado del proyecto y su papel en la estrategia global.
  • Análisis de requisitos y su viabilidad: Recopilar las necesidades del cliente y examinar las restricciones.
  • Diseño general: Examinar los requisitos de la arquitectura de la aplicación.
  • Diseño en detalle: Dar una definición de cada subconjunto de la aplicación.
  • Programación: Implementación en un lenguaje de programación.
  • Prueba de unidad: Prueba individual de cada una de las partes del programa.
  • Integración: Acople de cada uno de los módulos de la aplicación.
  • Prueba beta o de validación: Garantizar que el software cumple con las especificaciones originales.
  • Documentación: Información para desarrollos y modificaciones futuras.
  • Implantación: Instalación del software en el entorno real del cliente.
  • Mantenimiento: Mantenimiento correctivo y evolutivo.

Tipos de Software

  • Software de sistema: Herramientas para uso y mantenimiento de Sistemas Operativos.
  • Software de aplicación: Programas para que usuarios realicen tareas.
  • Software de programación: Lenguajes y entornos como C, C++, Java.

Funciones de los Sistemas Operativos

  • Control de recursos.
  • Control y manejo de los dispositivos de E/S.
  • Ejecución y secuenciación de tareas.
  • Ofrecer una base o soporte estándar y estable donde ejecutarse los programas.
  • Ofrecer un sistema de archivos de disco.
  • Permitir la interacción mediante una interfaz gráfica.
  • Detectar e informar a los usuarios de errores.

Componentes de un Sistema Operativo

  • Gestión de procesos.
  • Gestión de la Memoria Principal.
  • Gestión del almacenamiento secundario.
  • Gestión de la E/S.
  • Gestión de archivos.
  • Mecanismos de protección.
  • Gestión de las comunicaciones.
  • Utilidades de sistema.

La virtualización de plataforma

La virtualización de plataforma (sistemas operativos) se lleva a cabo en una plataforma hardware mediante un software anfitrión que es un programa de control que simula un entorno computacional (máquina virtual) para su software invitado.

Software de aplicación

  • Aplicaciones de productividad empresarial: Gestión de proyectos, ofimática, etc.
  • Aplicaciones de ámbito doméstico: Multimedia, juegos, etc.
  • Aplicaciones profesionales horizontales: Contabilidad, diseño web, etc.
  • Aplicaciones verticales: Funciones concretas en un sector determinado.
  • Aplicaciones utilitarias: Compresores, antivirus.

Licencias de Software

Una licencia de software es un contrato en donde se especifican todas las normas que rigen el uso de un determinado programa.

Tipos básicos de licencias

  • Licencia propietaria: Uso en una o varias máquinas por el pago de un precio.
  • Shareware: Uso limitado en tiempo o capacidades. Después hay que pagar.
  • Freeware: Uso y copia ilimitada con precio cero.
  • Software libre: Permite el uso, copia, modificación y distribución libre con acceso al código fuente.

Clasificación de las licencias de Software

Código abierto con permisos

Crear una aplicación derivada sin que ella requiera protección: PHP, Apache, etc.

Código abierto robustas con restricciones

  • Restricciones fuertes, Copyleft fuerte, Licencias GPL: Cláusula que obliga que las obras derivadas tengan los mismos términos. Open SSL, GNU, etc.
  • Restricciones débiles, Copyleft débil, Licencias LGPL: Cláusula que obliga que las obras derivadas tengan los mismos términos, pero las modificaciones posteriores bajo otros (Lesser GPL). Mozilla, Open Source, etc.

Código cerrado (software privativo)

Los propietarios establecen cualquier consideración que estimen oportuna (uso, distribución, modificación, cesión, etc.).

Software de dominio público (sin licencia)

Permite el uso, copia, modificación y distribución con o sin ánimo de lucro. Licencia BSD.

Aplicaciones: Formas de instalación

Instalación por copia directa (Mac OS)

  • Fácil e intuitivo.
  • Programas usan librerías comunes.
  • Directorio Aplicaciones.

Instalación mediante instalador (Windows)

  • Emplean un archivo ejecutable.
  • CD, DVD, Internet, etc.
  • Instalación deja constancia en”Agregar o quitar programa”.
  • El instalador reparte ficheros por diferentes subdirectorios, etc.

Instalación usando un gestor de paquetes (GNU-Linux)

  • Software específico del Sistema Operativo para instalar paquetes.
  • Herramientas para automatizar el proceso de instalación y actualización.

Pasos de una instalación

Se resumen en 8 pasos:

  1. Comprobar si se cumplen los requisitos básicos de instalación.
  2. Verificación de que el software es original o auténtico.
  3. Creación de los directorios.
  4. Creación de usuarios y permisos necesarios.
  5. Copia, desempaquetado y descompresión.
  6. Compilación y enlace con las bibliotecas.
  7. Configuración de la aplicación.
  8. Registro de la instalación en caso necesario.

Aplicaciones: Prueba o testing

Fallos del software: Causas

  • Poca o falta de comunicación entre los usuarios que intervienen en su desarrollo.
  • Complejidad del software.
  • Errores de programación.
  • Cambios continuos durante su desarrollo.
  • Presiones de tiempo.
  • Pobre documentación del código.

Verificación y Validación

  • Verificación: ¿Está el producto correctamente construido?
  • Validación: ¿El producto construido es correcto?

Tipos de pruebas

  • Prueba de caja negra o caja blanca.
  • Prueba de integración.
  • Prueba funcional.