La escuelita del Sr. Spock
Tipos de software
Extraído de: Ingeniería del software , un enfoque practico 7a edición . Pressman
1.1.2 Dominios de aplicación del software
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.
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
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.