Está en la página 1de 6

2.

5 Clasificación del software

Recordemos la definición de Software:


“Es la parte lógica de un sistema informático; todo el conjunto intangible de datos y
programas de la computadora. En sentido estricto es todo programa o aplicación programada
para realizar tareas especificas.”
Clasificar al software en tres
categorías es la forma más común, así
puede ser: software de sistema,
software de aplicación, software de
programación. Sin embargo, esta
distinción es arbitraria y muchas veces
un software puede caer un varias
categorías.
Observe en la figura la
ubicación de los diferentes tipos de
software, a la izquierda se observan las categorías comunes, y a la derecha algunos de los
encargados de la creación del software
Otra forma de clasificar el software es debido a su licencia y/o forma de distribución en:
adware, beerware, careware, crippleware, código binario, donationware, donateware, freware,
grenware, nagware, postcardware, ransonmware, registerware, shareware, software de distribución
libre, software libre, software propietario, triahware (demoware).
Una breve de historia del software:
Todo comenzo en el siglo 17 cuando el matemático e ingeniero Muhammad ibn Musa al-Khwarizmi,
inventó el algoritmo, es decir, la resolución metódica de problemas de álgebra y cálculo numérico mediante
una lista bien definida, ordenada y finita de operaciones a fin de hallar la solución al problema que se
plantea.
Ya para 1801. el francés Joseph Marie Jacquard, utilizó un mecanismo de tarjetas perforadas, mismas que
permitían programar las puntadas del tejido de una máquina de tejer de esa época, el objeto era controlar el
dibujo formado por los hilos de las telas confeccionadas. Esta idea formo la base de muchos aparatos de
informática y lenguajes de programación.
En 1843, Lady Ada Augusta Lovelace sugirió la idea de que las tarjetas perforadas se adaptaran de manera
que causaran que la maquina de Babbage repitiera ciertas operaciones. Escribió varios programas para su
funcionamiento teórico. Y se le considera la primera programadora.
Para 1890, Herman Hollerith desarrolló un sistema de cómputo mediante tarjetas perforadas en las que los
agujeros representaban el sexo, la edad, raza, entre otros datos.
El formalismo comenzo a darse ya en 1931 cuando Kurt Gödel publicó un documento sobre los
lenguajes formales basados en operaciones aritméticas. Lo usó para codificar arbitrariamente sentencias y
pruebas formales, y mostró que los sistemas formales, como las matemáticas tradicionales, son
inconsistentes en un cierto sentido, o que contienen sentencias improbables pero ciertas. Sus resultados son
fundamentales en las ciencias teóricas de la computación.
Sin embargo fue hasta 1956 que Alan Turing describe la máquina de Turing, la cual formaliza el concepto
de algoritmo. Software de sistema
Se llama Software de Sistema o Software de Base al conjunto de programas que sirven para
interactuar con el equipo de computo; en todo caso proporciona control sobre el hardware, permite
dar soporte a otros programas, y en general dar mantenimiento al sistema global; siempre
procurando adecuadas interfaces de alto nivel, tanto para el usuario como para el programador.
Su propósito es evitar lo más posible los detalles complejos de la computación;
desvinculando al usuario, y al programador, de los detalles del sistema informático, aislándolo
especialmente del procesamiento referido a las características internas de: la memoria, los discos,
puertos y dispositivos de comunicaciones, impresoras, pantallas, teclados, etc.
Incluye al gestor de arranque, sistema operativo, controladores de dispositivos, cargadores
de programas, programas utilitarios, herramientas de diagnóstico, herramientas de corrección y
optimización, gestores de ventanas, líneas de comandos, bibliotecas para la aceleración gráfica, y
demás programas que permiten el mantenimiento del sistema.
Existe dentro de esta categoría el llamado firmware, que es un bloque de instrucciones de
máquina que proporciona la funcionalidad básica para operar y controlar el
hardware conectado o integrado en el equipo; ya que establece la lógica de
más bajo nivel para controlar los circuitos electrónicos. Este software de
sistema se almacena en memoria ROM, donde se guarda información
importante de la computadora, especialmente el BIOS (Basic Input/Output
System -sistema básico de entrada y salida) el cual es un tipo de firmware
cuyo propósito es el encendido de la máquina, localizando y preparando los
componentes electrónicos o periféricos, para comunicarlos con algún
sistema operativo que la gobernará.
En términos generales el software de sistemas se divide en: sistema operativo, controladores
de dispositivos, y programas utilitarios.
Gestor de arranque (bootloader) es un programa sencillo que no tiene la totalidad de las
funcionalidades de un sistema operativo, y que está diseñado exclusivamente para preparar
todo lo que necesita el sistema operativo para funcionar. Normalmente se utilizan los
cargadores de arranque multietapas, en los que varios programas pequeños se suman los unos
a los otros, hasta que el último de ellos carga el sistema operativo. Pueden ser implementados
en varias tecnologías cubiertas en tipos generales de: memoria de sólo lectura o ROM, y
memoria de acceso aleatorio o RAM.
Sistema operativo (S.O.). Es el software que controla la computadora y administra los servicios y
sus funciones, como así también la ejecución de otros programas compatibles con éste, en sí
gestiona los recursos de hardware y provee servicios a los programas de aplicación, y corre en
modo privilegiado respecto de los restantes programas. Es el encargado del reparto del tiempo
del procesador; decide qué programas se ejecutan, y cuándo, y qué fuentes (memoria o
dispositivos E/S) se utilizan. También se les conoce bajo el término de plataforma, la
plataforma más difundida a nivel mundial es Windows, pero existen otras de gran popularidad
como UNIX, Linux.
Un Sistema Operativo realiza cinco funciones básicas:
1. Suministro de interfaz al usuario: Permite al usuario comunicarse con la computadora por medio
de interfaces que se basan en comandos, que utilizan menús, e interfaces gráficas de usuario
(GUI).
2. Administración de recursos: Administra los recursos del hardware como la CPU, memoria,
dispositivos de almacenamiento secundario y periféricos de entrada y de salida.
3. Administración de archivos: Controla la creación, borrado, copiado y acceso de archivos de datos
y de programas.
4. Administración de tareas: Administra la información sobre los programas y procesos que se están
ejecutando en la computadora. Puede cambiar la prioridad entre procesos, concluirlos y
comprobar el uso de estos en la CPU, así como terminar programas.
5. Servicios de soporte: Estos dependen de las implementaciones añadidas al S.O., y pueden
consistir en inclusión de utilidades nuevas, actualización de versiones, mejoras de seguridad,
controladores de nuevos periféricos, o corrección de errores de software.
En la actualidad los sistemas operativos puede dar la impresión de que las computadoras
están ejecutando varios programas al mismo tiempo, sin embargo al contar con un solo
procesador, esta ejecución no se realiza de manera simultanea sino concurrente, por lo que a
esto se le conoce como multitarea, y consiste en que la CPU ejecuta instrucciones de un
programa, y tras un breve periodo de tiempo, cambian a un segundo programa y ejecuta
algunas de sus instrucciones. El procesamiento simultáneo de los programas que se están
ejecutando viene con computadoras de más de un CPU, lo que da origen al
multiprocesamiento.
El cargador de programas, es la parte del S.O. (usualmente una parte del núcleo del S.O.)
responsable de cargar programas en memoria desde los ejecutables que se encuentran en el
disco duro. Este programa es cargado al inicial el sistema y permanece en memoria hasta
que el sistema es reiniciado o apagado.
En términos generales, para que los demás programas se ejecuten es requisito indispensable
que exista el soporte (llamese plataforma, programa principal o sistema operativo) que les
brinde un ambiente de ejecución. Los sistemas operativos sirven además, de intermediarios
entre el usuario y la maquina brindando las diferentes interfaces de acceso.
Controladores de Dispositivos. Llamados normalmente controladores (driver), son programas
añadidos al núcleo del S.O., concebidos para gestionar periféricos y dispositivos esenciales.
En general son programas que permiten a otros programa de mayor nivel (S.O.) interactuar
con un dispositivo periférico, haciendo una abstracción del hardware y proporcionando una
interfaz para usarlo. Es como un manual de instrucciones que le indica al S.O. cómo debe
controlar y comunicarse con el dispositivo. Existen tantos tipos de controladores como tipos
de periféricos, y es común encontrar más de un controlador para el mismo dispositivo, cada
uno ofreciendo un nivel distinto de funcionalidades.
Programas Utilitarios. Estos realizan diversas funciones para resolver problemas específicos,
además de realizar tareas en general y de mantenimiento. Algunos se incluyen en el sistema
operativo y otros sin embargo pueden ser instalados como programas independientes. Aqúi es
donde encontramos a algunas herramientas de diagnóstico, herramientas de corrección y
optimización, gestores de ventanas, bibliotecas para la aceleración gráfica, y demás
programas que permiten el mantenimiento del sistema.

Software de aplicación

El Software de Aplicación son los programas diseñados para o por los usuarios para facilitar
la realización de tareas específicas en la computadora, en cualquier campo de actividad susceptible
de ser automatizado o asistido, con especial énfasis en los negocios.
Este software lo instala el usuario y se ejecuta sobre el S.O., suele resultar una solución
informática para la automatización de ciertas tareas complicadas como pueden ser contabilidad, la
redacción de documentos, o la gestión de un almacén. Existen ciertas aplicaciones que son
desarrolladas a medida y suelen ofrecer una gran potencia ya que están exclusivamente diseñadas
para resolver un problema específico. Existen también los llamados paquetes integrados de
software (suite), que ofrecen menos potencia pero a cambio incluyen varias aplicaciones (como un
programa procesador de textos, de hoja de cálculo y de base de datos).
Algunos ejemplos de programas de aplicación pueden ser: programas de comunicación de
datos, multimedia, presentaciones, diseño gráfico (editores gráficos), cálculo, finanzas, correo
electrónico, navegador web, compresión de archivos, presupuestos de obras, gestión de empresas,
editores de música, editores de texto, antivirus, mensajeros, videojuegos, software médico, software
educativo, etc. Existen varias categorías para el software de aplicación, porque hay muchos
programas , por ejemplo: aplicaciones de negocios, aplicaciones de utilerías, aplicaciones
personales, aplicaciones de entretenimiento.
La siguiente es una mención general del software de aplicación, sin entrar en terminos de
clasificación del mismo:
Aplicaciones ofimáticas (Para tareas que se llevan a cabo en una oficina, en general el paquete incluye:
procesador de texto, hoja de cálculo, programa de presentación, sistema de gestión de base de datos. Algunos
ejemplos de paquetes AppleWorks, Microsoft Office, OpenOffice, IBM/Lotus SmartSuite).
Software de gestión empresarial (Dedicados a soportar un segmento de la empresa, casi todas las
funciones de una organización como son, bases de datos de clientes, nómina, contabilidad, terminal de punto
de venta, de trastienda, de gestión central.)
Programas de ingeniería y ciencias (La mayoría se dedican a resolver cálculos matemáticos,
mientras que otros están enfocados a ramas más técnicas. Algunos ejemplos son MATLAB, MAPLE,
SCILA, etc.)
Aplicaciones de control de sistemas y automatización industrial (software de control
numérico (CAM))
Software de diseño y/o arquitectura (software de diseño asistido (CAD))
Software de dibujo y pintura (Estan dedicados a la producción de imágenes de mapas de bytes
artesanales. Algunos ejemplos son Photoshop, paint, CorelDraw, Frenad, Ilustrador, Designery Canvas)
Software de animación y modelado en 3d D (Con este los objetivos se representan con una
perspectiva con aspectos más realistas, se pueden crear escenarios impactantes y moverse por ellos.
Algunos ejemplos son Descreet de Autodesk, ED de Stratavision, Logomotion e Infini-D de Specular,
Wavefront de Alias, Softimage de Avid y Truespace de Daligari)
Software de edición de imagen (Permiten manipular imágenes digitales, para eliminar fallas como
son, la sobreexposición, bajaexposición, falta de contraste, ruido en la imagen, efecto de ojos rojos, entre
otros. Algunos ejemplos son Adobe Photoshop, PhotoScape, Adobe Ilustrator, lnkscape, GIMP, Magic
Photo Editor)
Software de edición de video (permite añadir efector especiales, titulos, mezclar pistas de sonido y
guardar el producto final como un archivo digital. Algunos ejemplos son VideoShop, Media100,
VideoMachine, Premiere, Media Studio, Pinacle)
Software de edición de sonido (audio) (Permite manipular audio digital: cortar, copiar, pegar y
editar segmentos de sonido. Algunos ejemplos son Acoustica, Amadeus Pro, Ardour, Audacity, Audio
Editor Gold, Audition, Creative Wavestudio, Sound Forge)

Software de desarrollo
El software de desarrollo puede llamarse también software de programación o lenguaje de
programación del software.
De forma general podría creerse que el software de desarrollo es cualquier lenguaje artificial
(lenguaje de programación1) que podemos utilizar para definir una secuencia de instrucciones para
su procesamiento por una computadora, sin embargo, los lenguajes de programación se utilizan para
el desarrollo e implementación de aplicaciones y programas, y requieren de ciertos programas
especiales para procesar el código escrito por el programador.
Así que para escribir cualquier programa se suele emplear un lenguaje de programación de
alto nivel, al programa escrito siguiendo las reglas sintacticas del lenguaje de programación se le
llama codigo fuente, y a la traducción a código máquina se le llama código objeto. Este código en
lenguaje máquina es el que puede ser ejecutado por el procesador. Los compiladores e interpretes
son los encargados de traducir un programa escrito por el programador (código fuente), y según el
lenguaje de programación puede compilarse o interpretarse.
Así que como software de programación no solo se trata del lenguaje de programación,
sino que se incluye a toda una serie de herramientas que permiten soportar la creación de los
programas con un lenguaje de programación, es decir, permiten al desarrollador informático crear
programas usando diferentes alternativas de una manera práctica.
Dentro de las herramientas de asistencia al programador que se proveen para el lenguaje de
programación se incluyen principalmente: editores de texto, compiladores, intérpretes,
ensambladores, enlazadores, depuradores (debuggers).
Algunos lenguajes pueden requerir de la escritura en consola de las ordenes para lograr la
traducción a código máquina, sin embargo, por lo general la mayoría de los lenguajes de
programación vienen con un entorno de desarrollo integrado (IDE) el cual permite programar con
mayor facilidad, ya que proveen un marco de trabajo amigable para el programador. Estos IDE han
sido empaquetados como un programa de aplicación, ya que pueden considerarse como
aplicaciones por sí solas, o pueden ser parte de aplicaciones existentes. En el paquete se incluyen las
herramientas mencionadas (editor, compilador, ensamblador, enlazador, depurador), y normalmente
cuentan con una avanzada interfaz gráfica de usuario (GUI), de forma tal que el programador no
necesite introducir múltiples comandos en una consola para poder compilar, interpretar, depurar,
etc., sino que simplemente lo haga con un click sobre un botón.
Algunos IDE pueden dedicarse exclusivamenrte a un lenguaje de programación, sin
embargo hay otros que pueden utilizarse para varios lenguajes.
Editor de texto. Es un programa que permite crear y modificar el código fuente. Se almacena
únicamente texto sin formato (archivos de texto plano). Generalmente incluyen coloreado de
sintaxis y funciones (resaltar las palabras clave) y completado de palabras,
Compilador. Es un programa que permite traducir el código fuente de un programa escrito con un
lenguaje de programación de alto nivel, a un lenguaje inferior que la máquina será capaz de
interpretar, usualmente el lenguaje máquina, es decir traducen el código fuente a código
objeto, sin embargo puede ser traducido también a un código intermedio (bytecode). La
traducción se almacena como un archivo individual, que podrá ser utilizado posteriormente
sin requerir del código fuente. Se crea el programa ejecutable (objeto) o el intermedio, solo
cuando el código fuente ya no tiene errores.
Interprete. Es un programa capaz de analizar y ejecutar otros programas escritos en código
fuente,La traducción la realizan a medida que sea necesario, generalmente instrucción por
instrucción, y no se almacena, por lo que siempre se requiere del interprete para volver a

1
Algunos lenguajes de programación son: Java, C++, Visual Basic, PHP, Python, Lisp, Ada, Perl, Ruby
ejecutar el programa. Los programas interpretados suelen ser mas lentos que los compilados,
debido a que requieren traducir el programa mientras se esta ejecutando, sin embargo, son
más flexibles como entornos de programación y depuración. Internet es un entorno en el que
se usan mucho los intérpretes, debido a la posibilidad de ejecutar los programas
independientemente de la plataforma; la ejecución depende del interprete y no de la máquina,
y por lo general se requiere de una máquina virtual. Por ejemplo programar en Java, produce
un código intermedio llamado bytecode, el cual es movilizado en Internet a la maquina del
usuario, por lo que requiere tener instalada la máquina virtual que finalmente podrá
interpretarlo y mostrar el funcionamiento al usuario.
Depurador. (debugger) Es un programa usado para probar y deputar (eliminar errores) de otros
programas (el programa objeto). El código a ser examinado puede alternativamente estar
corriendo en un simulador de conjunto de instrucciones (ISS), una técnica que permite gran
potencia en su capacidad de detenerse cuando son encontradas condiciones especificas.
Tipicamente los depuradores ofrecen funciones sofisticadas, tales como correr un programa
paso a paso, pausar el programa (breacking) para examinar el estado actual en cierto evento o
instrucción especificada por medio de un breakpoint, y el seguimiento de valores de algunas
variables.
Enlazador. Es un programa que toma los objetos generados 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(s) con lo que
finalmente produce un fichero ejecutable o una biblioteca.
Ensamblador. Se refiere a un tipo de programa informático que se encarga de traducir un fichero
fuente escrito en un lenguaje ensamblador a un fichero objeto que contiene código máquina
ejecutable directamente por la máquina para la que se ha generado. La evolución de los
lenguajes de programación a partir del lenguaje ensamblador originó también la evolución de
este programa ensamblador hacia lo que se conoce como programa compilador en la
actualidad. Es por eso que algunos compiladores en su estructura dan como resultado código
objeto en ensamblador y el ensamblador lo traduce finalmente a código máquina, y otros
compiladores integran la tarea del ensamblador dentro de su estructura y ellos mismos general
el código objeto.

También podría gustarte