Software

Se denomina software,
programática, equipamiento lógico o soporte lógico
a todos los componentes intangibles de una computadora, es decir, al
conjunto de programas y procedimientos necesarios para hacer posible
la realización de una tarea específica, en
contraposición a los componentes físicos del sistema
(hardware). Esto incluye aplicaciones informáticas tales como
un procesador de textos, que permite al usuario realizar una tarea, y
software de sistema como un sistema operativo, que permite al resto
de programas funcionar adecuadamente, facilitando la interacción
con los componentes físicos y el resto de aplicaciones.


El término
«software» fue usado por primera vez en este sentido por
John W. Tukey en 1957. En las ciencias de la computación y la
ingeniería de software, el software es toda la información
procesada por los sistemas informáticos: programas y datos. El
concepto de leer diferentes secuencias de instrucciones de la memoria
de un dispositivo para controlar cálculos fue inventado por
Charles Babbage como parte de su máquina diferencial.

Tipología

Si
bien esta distinción es, en cierto modo, arbitraria, y, a
veces, difusa y confusa, se puede distinguir al software de la
siguiente forma:

1.- Software de
sistema
,es la parte que permite funcionar al hardware. Su
objetivo es aislar tanto como sea posible al programador de
aplicaciones de los detalles del computador particular que se use,
especialmente de las características físicas de la
memoria, dispositivos de comunicaciones, impresoras, pantallas,
teclados, etcétera. Incluye entre otros:

1.1.- Sistemas
operativos: es un conjunto de programas (importante: si no es un
conjunto, no es un sistema operativo) destinados a permitir la
comunicación del usuario con un computador y gestionar sus
recursos de una forma eficaz. Comienza a trabajar cuando se enciende
el computador, y gestiona el hardware de la máquina desde los
niveles más básicos.

1.2.- Controladores de
dispositivo: (llamado normalmente controlador, o, en inglés,
driver) es un programa informático que permite al sistema
operativo interactuar con un periférico, haciendo una
abstracción del hardware y proporcionando una interfaz
-posiblemente estandarizada- para usarlo. Se puede esquematizar como
un manual de instrucciones que le indica cómo debe controlar y
comunicarse con un dispositivo en particular. Por tanto, es una pieza
esencial, sin la cual no se podría usar el hardware.

1.3.- Herramientas de
diagnóstico.

1.4.- Servidores: Un
servidor en informática o computación es una aplicación
informática o programa que realiza algunas tareas en beneficio
de otras aplicaciones llamadas clientes. Algunos servicios habituales
son los servicios de archivos, que permiten a los usuarios almacenar
y acceder a los archivos de un ordenador y los servicios de
aplicaciones, que realizan tareas en beneficio directo del usuario
final. Este es el significado original del término. Es posible
que un ordenador cumpla simultáneamente las funciones de
cliente y de servidor.

1.5.- Sistemas de
ventanas.

1.6.- Utilidades: En
informática, las aplicaciones son los programas con los cuales
el usuario final interactúa a través de una interfaz y
que realizan tareas útiles para éste.

2.- Software de
programación,
que proporciona herramientas para ayudar al
programador a escribir programas informáticos y a usar
diferentes lenguajes de programación de forma práctica.
Incluye entre otros:

2.1.- Editores de texto:
Un "editor de texto" es un programa que permite escribir y
modificar archivos digitales compuestos únicamente por texto
sin formato, conocidos comúnmente como archivos de texto.

Se distinguen de los
procesadores de textos en que se usan para escribir sólo
texto, sin formato y sin imágenes.

2.2.- Compiladores: es
un programa que, a su vez, traduce un programa escrito en un lenguaje
de programación a otro lenguaje de programación,
generando un programa equivalente. Usualmente el segundo lenguaje es
código máquina, pero también puede ser
simplemente texto. Este proceso de traducción se conoce como
compilación.

2.3.- Intérpretes:
es un programa capaz de analizar y ejecutar otros programas, escritos
en un lenguaje de alto nivel. Los intérpretes suelen
contraponerse a los compiladores, ya que mientras que los segundos se
encargan de traducir un programa desde su descripción en un
lenguaje de programación al código máquina del
sistema destino, los primeros sólo realizan la traducción
a medida que sea necesario y normalmente, no guardan el resultado de
dicha traducción.

2.4.- Enlazadores: es un
programa que toma los ficheros de código objeto generado en
los primeros pasos del proceso de compilación, la información
de todos los recursos necesarios (biblioteca), quita aquellos
recursos que no necesita, y enlaza el código objeto con
su(s)biblioteca con lo que finalmente produce un fichero ejecutable o
una biblioteca.. En el caso de los programas enlazados dinámicamente,
el enlace entre el programa ejecutable y las bibliotecas se realiza
en tiempo de carga o ejecución del programa.

2.5.- Depuradores: es
un programa que permite depurar o limpiar de errores otro programa
informático.

Los entornos integrados
de desarrollo (IDE) agrupan estas herramientas de forma que el
programador no necesite introducir múltiples comandos para
compilar, interpretar, depurar, etcétera, gracias a que
habitualmente cuentan con una interfaz gráfica de usuario
(GUI) avanzada.

3.- Software de
aplicación,
que permite a los usuarios llevar a cabo una o
varias tareas más específicas, en cualquier campo de
actividad susceptible de ser automatizado o asistido, con especial
énfasis en los negocios. Incluye entre otros:

3.1.- Aplicaciones de
automatización industrial.

3.2.- Aplicaciones
ofimáticas.

3.3.- Software
educativo.

3.4.- Software médico.

3.5.- Bases de datos.

3.6.- Videojuegos.

Formas

El software adopta
varias formas en distintos momentos de su ciclo de vida:

Código fuente:
escrito por programadores. Contiene el conjunto de instrucciones
destinadas a la computadora.

Código objeto:
resultado del uso de un compilador sobre el código fuente.
Consiste en una traducción de éste último. El
código objeto no es directamente inteligible por el ser
humano, pero tampoco es directamente entendible por la computadora.
Se trata de una representación intermedia del código
fuente.

Código
ejecutable: resultado de enlazar uno o varios fragmentos de código
objeto. Constituye un archivo binario con un formato tal que el
sistema operativo es capaz de cargarlo en la memoria de una
computadora, y proceder a su ejecución. El código
ejecutable es directamente inteligible por la computadora.

SOFTWARE
COLABORATIVO

Programa informático
colaborativo o Groupware (voz inglesa) se refiere a los programas
informáticos que integran el trabajo en un sólo
proyecto con muchos usuarios concurrentes que se encuentran en
diversas estaciones de trabajo, conectadas a través de una red
(internet o intranet).

En su forma moderna, el
concepto ha sido propuesto por el programa informático de
Lotus (Lotus Software) con la aplicación popular "Lotus
notas" (Lotus Notes) relacionado con un servidor Lotus Domino
(Lotus Domino Server); algunas revisiones históricas
argumentan que el concepto fue anticipado antes por sistemas
monolíticos como el NLS. El programa informático que
utiliza Wikipedia es un ejemplo de un programa informático
colaborativo que además es Software libre por lo que ha sido
diseñado sin las limitaciones de los programas informáticos
propietarios en cuanto a tratos o sin las limitaciones de
jerarquización social.

TIPOS:


El Groupware se puede dividir en tres categorías:
herramientas de colaboración-comunicación, herramientas
de conferencia y herramientas de gestión colaborativa o en
grupo.


Herramientas de comunicación electrónica
que envían mensajes, archivos, datos o documentos entre
personas y facilitan la compartición de información
(colaboración asíncrona), como por ejemplo:

  • correo electrónico.

  • correo de voz.

  • publicación en web.

  • Herramientas de conferencia que facilitan la
    compartición de información, de forma interactiva
    (colaboración síncrona), como por ejemplo:

  • conferencia de datos - PC en red que comparten un
    espacio de presentación compartido que cada usuario puede
    modificar.

  • conferencias de voz - teléfonos que permiten
    interactuar a los participantes.

  • conferencias de video (o audio conferencia) - PC en red
    que comparten señales de audio o video.

  • salas de chat o mensajería instantánea -
    una plataforma de discusión que facilita el intercambio
    inmediato de mensajes.

  • sistemas para facilitar reuniones - un sistema de
    conferencias integrado en una sala. Estas salas suelen disponer de
    un avanzado sistema de sonido y presentación que permite una
    mejor interacción entre participantes en una misma sala o
    entre salas separadas. Ejemplos de ello son los Sistemas de soporte
    a decisiones.

  • Herramientas de gestión colaborativa que
    facilitan las actividades del grupo, como por ejemplo:

  • calendarios electrónicos - para acordar fechas
    de eventos y automáticamente y enviar notificaciones y
    recordatorios a los participantes.

  • sistemas de gestión de proyectos - para
    organizar y hacer seguimiento de las acciones en un proyecto hasta
    que se finaliza.

  • sistemas de control de flujo de actividad - para
    gestionar tareas y documentos en un proceso organizado de forma
    estructurada (burocracia).

  • sistemas de gestión del conocimiento - para
    recoger, organizar, gestionar y compartir varios tipos de
    información.

  • sistemas de soporte a redes sociales - para organizar
    las relaciones de colectivos.


SOFTWARE
LIBRE


Software libre (en inglés free software) es el
software que, una vez obtenido, puede ser usado, copiado, estudiado,
modificado y redistribuido libremente. El software libre suele estar
disponible gratuitamente, pero no hay que asociar software libre a
software gratuito, o a precio del coste de la distribución a
través de otros medios; sin embargo no es obligatorio que sea
así y, aunque conserve su carácter de libre, puede ser
vendido comercialmente.


Análogamente, el software gratis o gratuito
(denominado usualmente freeware) incluye en algunas ocasiones el
código fuente; sin embargo, este tipo de software no es libre
en el mismo sentido que el software libre, al menos que se garanticen
los derechos de modificación y redistribución de dichas
versiones modificadas del programa.



No debe confundirse "software libre" con
software de dominio público. Éste último es
aquél por el que no es necesario solicitar ninguna licencia y
cuyos derechos de explotación son para toda la humanidad,
porque pertenece a todos por igual. Cualquiera puede hacer uso de él,
siempre con fines legales y consignando su autoría original.
Este software sería aquél cuyo autor lo dona a la
humanidad o cuyos derechos de autor han expirado. Si un autor
condiciona su uso bajo una licencia, por muy débil que sea, ya
no es dominio público. En resumen, el software de dominio
público es la pura definición de la libertad de
usufructo de una propiedad intelectual que tiene la humanidad porque
así lo ha decidido su autor o la ley tras un plazo contado
desde la muerte de éste, habitualmente 70 años.