LA NATURALEZA DEL SOFTWARE
En la actualidad, el software tiene un papel dual. Es un producto y al mismo tiempo es el vehículo para entregar un producto. En su forma de producto, brinda el potencial de cómputo incorporado en el hardware de cómputo o, con más amplitud, en una red de computadoras a las que se accede por medio de un hardware local. Ya sea que resida en un teléfono móvil u opere en el interior de una computadora central, el software es un transformador de información —produce, administra, adquiere, modifica, despliega o transmite información que puede ser tan simple como un solo bit o tan compleja como una presentación con multimedios generada a partir de datos obtenidos de decenas de fuentes independientes—. Como vehículo utilizado para distribuir el producto, el software actúa como la base para el control de la computadora (sistemas operativos), para la comunicación de información (redes) y para la creación y control de otros programas (herramientas y ambientes de software).
Definición de software
El software es:
1) Instrucciones (programas de cómputo) que cuando se ejecutan proporcionan las características, función y desempeño buscados.
2) Estructuras de datos que permiten que los programas manipulen en forma adecuada la información.
3) Información descriptiva tanto en papel como en formas virtuales que describen la operación y uso de los programas.
Actualmente, hay siete grandes categorías de software de computadora que plantean retos
continuos a los ingenieros de software:
Software de sistemas:
Conjunto de programas escritos para dar servicio a otros programas. Determinado software de sistemas (por ejemplo, compiladores, editores y herramientas para administrar archivos) procesa estructuras de información complejas pero deterministas.4 Otras aplicaciones de sistemas (por ejemplo, componentes de sistemas operativos,
manejadores, software de redes, procesadores de telecomunicaciones) procesan sobre todo
datos indeterminados. En cualquier caso, el área de software de sistemas se caracteriza
por: gran interacción con el hardware de la computadora, uso intensivo por parte de usuarios múltiples, operación concurrente que requiere la secuenciación, recursos compartidos
y administración de un proceso sofisticado, estructuras complejas de datos e interfaces externas múltiples.
Software de aplicación:
Programas aislados que resuelven una necesidad específica de
negocios. Las aplicaciones en esta área procesan datos comerciales o técnicos en una
forma que facilita las operaciones de negocios o la toma de decisiones administrativas o
técnicas. Además de las aplicaciones convencionales de procesamiento de datos, el software de aplicación se usa para controlar funciones de negocios en tiempo real (por ejemplo, procesamiento de transacciones en punto de venta, control de procesos de manufactura en tiempo real).
Software de ingeniería y ciencias:
Se ha caracterizado por algoritmos “devoradores de
números”. Las aplicaciones van de la astronomía a la vulcanología, del análisis de tensiones en automóviles a la dinámica orbital del transbordador espacial, y de la biología molecular a la manufactura automatizada. Sin embargo, las aplicaciones modernas dentro del
área de la ingeniería y las ciencias están abandonando los algoritmos numéricos convencionales. El diseño asistido por computadora, la simulación de sistemas y otras aplicaciones interactivas, han comenzado a hacerse en tiempo real e incluso han tomado características del software de sistemas.
Software incrustado:
Reside dentro de un producto o sistema y se usa para implementar y
controlar características y funciones para el usuario final y para el sistema en sí. El software
incrustado ejecuta funciones limitadas y particulares (por ejemplo, control del tablero de un
horno de microondas) o provee una capacidad significativa de funcionamiento y control (funciones digitales en un automóvil, como el control del combustible, del tablero de control y de los sistemas de frenado).
Software de línea de productos:
Es diseñado para proporcionar una capacidad específica para uso de muchos consumidores diferentes. El software de línea de productos se
centra en algún mercado limitado y particular (por ejemplo, control del inventario de productos) o se dirige a mercados masivos de consumidores (procesamiento de textos, hojas
de cálculo, gráficas por computadora, multimedios, entretenimiento, administración de
base de datos y aplicaciones para finanzas personales o de negocios).
Aplicaciones web:
Llamadas “webapps”, esta categoría de software centrado en redes
agrupa una amplia gama de aplicaciones. En su forma más sencilla, las webapps son poco
más que un conjunto de archivos de hipertexto vinculados que presentan información con
uso de texto y gráficas limitadas. Sin embargo, desde que surgió Web 2.0, las webapps están evolucionando hacia ambientes de cómputo sofisticados que no sólo proveen características aisladas, funciones de cómputo y contenido para el usuario final, sino que también
están integradas con bases de datos corporativas y aplicaciones de negocios.
Software de inteligencia artificial:
Hace uso de algoritmos no numéricos para resolver
problemas complejos que no son fáciles de tratar computacionalmente o con el análisis directo. Las aplicaciones en esta área incluyen robótica, sistemas expertos, reconocimiento
de patrones (imagen y voz), redes neurales artificiales, demostración de teoremas y juegos.
MITOS DEL SOFTWARE