Fundamentos de Software: Licencias, Protecciones y Tipos de Datos en Programación

Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 5,04 KB

Clasificación de Programas por Tipo de Licencia

Podemos clasificar los programas por el tipo de derechos que se adquieren al obtenerlos. Los programas, como producción intelectual, están sujetos al sistema de derechos de autor, lo que implica una serie de consecuencias legales en cuanto a su comercialización y explotación. Sin embargo, la facilidad de reproducción de los soportes informáticos ha propiciado la proliferación de la piratería o prácticas similares.

Tipos de Licencia de Software

  • Programas bajo Licencia

    Constituyen la mayoría de los programas.

  • Freeware

    Programas de uso y distribución gratuitos. Es importante distinguir entre aquellos de los que no se dispone del código fuente y aquellos que sí lo ponen a disposición (con la posibilidad de modificarlo, copiar partes, etc.).

  • Shareware

    Representa una postura intermedia. Son programas de distribución y prueba gratuitas que solo exigen el pago de una licencia en caso de utilización asidua o comercial. Lamentablemente, esta fórmula es poco efectiva en mercados como el español, donde la concienciación sobre el respeto a los costes de producción es baja.

  • Demos

    Programas de distribución gratuita pero incompletos en algún sentido (solo tienen algunos niveles, no permiten guardar resultados, no permiten imprimir, no todas las opciones están accesibles, etc.). Su objetivo principal es la promoción del programa completo, que generalmente se proporciona bajo licencia.

Sistemas de Protección de Software

Existen numerosos modos de proteger los programas contra las copias ilegales. Sin embargo, también hay muchas maneras de eludir estas protecciones, siendo esta la ocupación principal de los denominados crackers.

A continuación, se enumeran algunos de los sistemas de protección más comunes:

  • Sistemas de claves: de acceso, de instalación, numeración del soporte, etc.
  • Número de ejecuciones.
  • Fecha de caducidad: fecha fija o plazo desde la primera ejecución.
  • Sistemas anticopia.
  • Protecciones hardware: comúnmente conocidas como "mochilas".

Variables y Estructuras de Datos en Programación

Para programar, es fundamental comprender que la información (datos) debe almacenarse en variables (espacios de memoria) para que el ordenador pueda procesarla. Los distintos tipos de datos darán, por lo tanto, distintos tipos de variables que debemos conocer y entender para poder manejarlos.

Prácticamente todos los lenguajes de programación exigen una declaración de variables para poder ejecutar un programa. Esta declaración no es más que reservar el espacio en memoria necesario para guardar los datos convenientemente codificados y asignar a esos espacios las etiquetas necesarias para referirnos a ellos con comodidad.

Con frecuencia, no solo es necesaria una declaración de variables, sino que previamente hay que realizar una declaración de tipos, es decir, definir cómo van a ser las variables y luego definir las propias variables.

Variables Sencillas

Existe una serie de variables que denominamos "sencillas" porque no poseen ninguna estructura interna; son simplemente un cierto espacio en memoria que se interpreta según el tipo de variable que sea. La mayoría, si no todas ellas, suelen estar predefinidas en los distintos lenguajes de programación, por lo que solo hay que invocarlas mediante las palabras clave que cada lenguaje les asigna.

Algunas de las más habituales son:

Boolean
Variables que solo admiten dos estados (Sí/No, Verdadero/Falso, etc.). Solo necesitarán un bit de memoria (aunque por lo general se reserva un byte).
Byte
Reserva un byte de memoria, lo que permite almacenar números de 0 a 255.
Carácter
También reserva un byte, pero lo interpreta según el código ASCII.
Entero
Almacena números enteros (positivos o negativos). El rango depende de la cantidad de memoria usada por el compilador. Lo más habitual es reservar dos bytes, lo que admite desde -32767 hasta 32768.
Entero largo
Con la misma estructura que el entero, pero más grande (4 bytes).
Real
Almacena números reales positivos o negativos, generalmente mediante el sistema exponencial (similar a la notación científica). El rango depende del número de bytes reservados para el número y el exponente.
Doble
Similar al real, pero reservando más espacio, lo que aumenta el rango.

Entradas relacionadas: