1.5 La naturaleza del software
En la actualidad el software juega un papel muy importante en los dispositivos digitales. Es un producto y al mismo tiempo es una forma de entregar un producto. Brinda el potencial de computo incorporado al hardware que hace de forma individual o en red.
Dominios de aplicación del software
Actualmente hay 7 grandes categorías del software que plantea retos para los ingenieros en software; esto serian:
- Software de sistemas: es un conjunto de programas escritos para dar servicio a otros programas. Por ejemplo, compiladores, editores y herramientas para administrar archivos.
- Software de aplicación: son programas aislados que resuelven una necesidad especifica 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.
- Software de ingeniería y ciencias: se han caracterizado por ser algoritmos que transforman números. Las aplicaciones van desde la astrología, análisis de tensiones en automóviles hasta la biología molecular que permita la automatización de procesos.
- Software incrustado: reside dentro de un producto o sistema y se utiliza para implementar y controlar características y funciones para el usuario final. El software incrustado ejecuta funciones limitadas y particulares. Por ejemplo, el control de un tablero de un horno de microondas.
- Software de líneas de productos: es proporcionar para realizar una actividad en específico para uso de muchos consumidores. El software de línea de productos se centra en un mercado limitado y particular. Por ejemplo, el control de inventarios de una empresa u organización.
- Software de aplicación web: esta categoría de software centrado en redes agrupa una amplia gama de aplicaciones. Las webs son más que un conjunto de archivos de hipertexto. Sin embargo, desde que surgió la web 2.0 estas han evolucionado hacia ambientes de computo sofisticados que no solo provee características aisladas, funciones de cómputo y contenido para el usuario final, sino que también se encuentra integradas en 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 en términos de computación. Las aplicaciones en esta área incluyen robótica, sistemas expertos, reconocimiento de patrones y voz, redes neuronales artificiales, demostración de teoremas y juegos.
Computación en un mundo abierto
El rápido crecimiento de las redes inalámbricas nos lleva a la computación ubicua y distribuida. El reto pata los ingenieros en software será desarrollar software de sistemas y aplicación que permita a dispositivos móviles, computadoras personales y sistemas empresariales, comunicarse a redes a gran escala.
Construcción de redes
La red mundial (www) se está convirtiendo tanto en un motor de la computación como en un proveedor de contenidos. El reto para los ingenieros de software es diseñar arquitecturas sencillas. Por ejemplo, planeaciones financieras personales y aplicaciones que proporcionen un beneficio en los mercados en los que el usuario se vincule en la adquisición de productos y servicios.
Fuente abierta
Tendencia creciente que da como resultado la distribución de código fuente para aplicaciones de sistemas. Por ejemplo, sistemas operativos, bases de datos y ambientes de desarrollo de tal forma que la gente pueda contribuir en el desarrollo. Esto permitirá a los desarrolladores de software, desarrollar técnicas que permitan saber cuáles son los cambios hechos y como se visualizan dentro de un software.