El Software y sus campos de aplicación

 

El software se define como programas de computadoras, las instrucciones responsables de que el hardware (la máquina) realice su tarea, incluyendo por tanto las estructuras de datos y la documentación implícita en el programa. Como concepto general, el software puede dividirse en varias categorías basadas en el tipo de trabajo realizado. Las dos categorías primarias de software son los sistemas operativos (software del sistema), que controlan los trabajos del ordenador o computadora, y el software de aplicación, que dirige las distintas tareas para las que se utilizan las computadoras. Por lo tanto, el software del sistema procesa tareas tan esenciales, aunque a menudo invisibles, como el mantenimiento de los archivos del disco y la administración de la pantalla, mientras que el software de aplicación lleva a cabo tareas de tratamiento de textos, gestión de bases de datos y similares. Constituyen dos categorías separadas el software de red, que permite comunicarse a grupos de usuarios, y el software de lenguaje utilizado para escribir programas.

Además de estas categorías basadas en tareas, varios tipos de software se describen basándose en su método de distribución. Entre estos se encuentran los así llamados programas enlatados, el software desarrollado por compañías y vendido principalmente por distribuidores, el freeware y software de dominio público, que se ofrece sin costo alguno, el shareware, que es similar al freeware, pero suele conllevar una pequeña tasa a pagar por los usuarios que lo utilicen profesionalmente y, por último, el infame vapourware, que es software que no llega a presentarse o que aparece mucho después de lo prometido.

En cualquier caso, es difícil establecer categorías genéricas significativas para las aplicaciones del software. Conforme aumenta la complejidad del mismo se hace más complicado establecer compartimentos nítidamente separados. No obstante se acepta tradicionalmente la siguiente clasificación:

 

Clasificación del Software según los campos de aplicación :

 

- Deben responder a eventos externos, asegurando un tiempo máximo de respuesta determinado.
- La secuencia de ejecución no sólo está determinada por decisiones del sistema, sino también por eventos que ocurren en el mundo real.
- Habitualmente requieren interfaces con una gran cantidad de sensores y actuadores.
- Deben ser muy confiables. Su respuesta debe ser controlada, incluso en condiciones de sobrecarga.
- No pueden “volver atrás” y reiniciar desde un contexto preexistente.
- Los requerimientos del medio ambiente por lo general son en paralelo, provocando problemas de planificación y prioridades.eralmente son complejos.
- Las restricciones de tiempo hacen que la demostración de correctitud funcional no alcance para garantizar su desempeño en condiciones reales.
- Son de “tiempo infinito”, por lo que deben poder recuperarse automáticamente de condiciones de excepción.

- Clasificación: .Según las restricciones temporales:
• Sistemas de tiempo real duro (hard real-time)
- Los límites de tiempo son estrictos.
- El no cumplimiento puede tener consecuencias más o menos graves.
- En algunos casos puede ser preferible un trabajo imperfecto pero terminado a tiempo.
- Ej.: control de un reactor nuclear.
• Sistemas de tiempo real blando (soft real-time)
- Los límites de tiempo son flexibles.
- Ej.: sistema de reserva de pasajes. Software de Tiempo Real.
• Sistemas de tiempo real firme (firm real-time)
Sistemas de tiempo real duro que pueden tolerar pérdidas, si la probabilidad de ocurrencia de las mismas es baja.

- Clasificación:.Según las escalas de tiempo
• Basados en reloj
El pasaje del tiempo.
P. ej.: sistemas periódicos.
• Basados en eventos
P. ej.: las acciones se inician a partir del cierre de una llave, o la lectura de un sensor.
• Interactivos
P. ej.: un operador ingresando datos. (vago)

Los sistemas tiempo real suelen estar integrados en un sistema de ingeniería más general, en el que realizan funciones de control y/o monitorización:

 

Se integran con un hardware pasando a formar parte del nuevo entorno. Algunas propiedades:

Eficiencia
Gran parte de los sistemas de control deben responder con gran rapidez a los cambios en el sistema controlado.
Interacción con dispositivos físicos.
Los sistemas empotrados interaccionan con su entorno mediante diversos tipos de dispositivos que normalmente no son convencionales (teclados, impresoras, ...): convertidores A/D y D/A, pwm, entradas y salidas digitales paralelo y serie, ... (interfases con sensores, actuadores, periféricos especiales, ...)
Los componentes del software que controlan el funcionamiento de estos dispositivos (manejadores, "drivers") son, en general, dependientes del sistema concreto.
Robustez
Embarcados en sistemas con movimiento o que pueden ser transportados, sujetos a vibraciones e incluso impactos (coches, robots, instrumentación portátil, ...)
No siempre trabajan en condiciones óptimas de temperatura, humedad, limpieza.
Factor de protección IP: IP65
Primer dígito: protección ante entrada de sólidos (polvo).
Segundo dígito: protección ante la entrada de líquidos.
Bajo consumo
Muchos de estos sistemas están alimentados con baterías o pilas. Menor consumo => mayor autonomía.
En muchos casos necesidades de bajo voltaje (3V)
Bajo peso
Característica de agradecer en sistemas portátiles.
No depende únicamente del computador embarcado y su periferia sino también de la alimentación (baterías) o de los sensores y actuadores.
Bajo precio
Aplicable a electrónica de consumo y otros dispositivos con mercados muy competitivos (p.e. telefonía móvil)
Pequeñas dimensiones
Las dimensiones de un sistema empotrado no dependen sólo de sí mismo sino también del espacio disponible en el sistema que controla y/o monitoriza.
Característica a tener muy en cuenta por los problemas que acarrea.

 

El procesamiento de la información de gestión constituye, casi desde los inicios de la informática la mayor de las áreas de aplicación de los ordenadores. Estos programas utilizan grandes cantidades de información almacenadas en bases de datos con objeto de facilitar las transacciones comerciales o la toma de decisiones. Además de las tareas convencionales de procesamiento de datos, en las que el tiempo de procesamiento no es crítico y los errores pueden ser corregidos a posteriori, incluyen programas interactivos que sirven de soporte a transacciones comerciales.

Estos sistemas se caracterizan por el volumen de datos que controlan, el procesamiento sencillo distinto al de la ingeniería científica e implementado con software de alto nivel a diferencia del de sistemas y la interactividad con el usuario.

Algunos ejemplos de este tipo de software:

Aquellos programas destinados a la gestión y facturación empresarial o administración y relaciones laborales, pasando por aplicaciones de bases de datos e intercambio de la información. Los servicios públicos de telecomunicación son un desarrollo relativamente reciente de las telecomunicaciones. Destacamos:

Un servicio público de redes alquila tiempo en una red de área amplia y de ese modo proporciona terminales en otras ciudades con acceso a una computadora principal. Algunos ejemplos de estos servicios son Telenet, Tymnet, Uninet y Datapac. Estos servicios venden las prestaciones de la computadora principal a usuarios que no pueden o no quieren comprar dicho equipo.
Recuperación de información
Un servicio de recuperación de información alquila horas de servicio en una computadora principal a usuarios que utilizan sus terminales para recuperar información del principal. Un ejemplo de este servicio es CompuServe, a cuya computadora principal se accede a través de los servicios telefónicos públicos. Este servicio, entre otros, ofrece información general sobre noticias, metereología, deportes, finanzas y compras.
Otros servicios de recuperación de información son más especializados. Por ejemplo, los servicios de recuperación del Índice Dow-Jones ofrecen información general sobre noticias financieras y de cotización, estimaciones de beneficios de compañías, publicaciones de empresas, actualizaciones semanales de investigación económica y las noticias de mayor interés del Wall Street Journal.
Correo electrónico
En este tipo de servicio, los terminales transmiten documentos, como por ejemplo cartas, informes y télex a otras computadoras o terminales. Para acceder a este servicio la mayor parte de los terminales utilizan la red pública. Source Mail (accesible a través de The Source) y E Mail (accesible a través de CompuServe) permiten a los terminales enviar documentos a un ordenador o computadora central y, desde allí podrán recuperarlos otros terminales.
Anuncios
Los servicios de anuncios permiten a los terminales realizar intercambios y otras transacciones, y no hay que pagarlos. Los usuarios de estos servicios pueden intercambiar información sobre aficiones, compras y ventas de bienes y servicios y programas informáticos.

 

Otro de los campos clásicos de aplicación de la informática. Se encarga de realizar complejos cálculos sobre datos numéricos de todo tipo. En este caso la corrección y exactitud de las operaciones que realizan es uno de los requisitos básicos que deben cumplir.

El campo del software científico y de ingeniería, también llamado number cranching (ordenador de números) se ha visto ampliado últimamente con el desarrollo de los sistemas de diseño, ingeniería y fabricación asistida por ordenador (CAD, CAE y CAM), los simuladores gráficos y otras aplicaciones interactivas que lo acercan más al software de tiempo real e incluso al software de sistemas.

Estos sistemas se suelen enfocar hacia los análisis estadísticos o cálculo de estructuras generando una aplicación típica de diseño asistido por ordenador (CAD- Computer Aided Design). No suelen ser interactivos, por lo que tampoco disfrutan de una interfaz amigable.
Los
sistemas de Diseño Asistido por Ordenador (CAD, acrónimo de Computer Aided Design) pueden utilizarse para generar modelos con muchas, si no todas, de las características de un determinado producto. Estas características podrían ser el tamaño, el contorno y la forma de cada componente, almacenados como dibujos bi y tridimensionales. Una vez que estos datos dimensionales han sido introducidos y almacenados en el sistema informático, el diseñador puede manipularlos o modificar las ideas del diseño con mayor facilidad para avanzar en el desarrollo del producto. Además, pueden compartirse e integrarse las ideas combinadas de varios diseñadores, ya que es posible mover los datos dentro de redes informáticas, con lo que los diseñadores e ingenieros situados en lugares distantes entre sí pueden trabajar como un equipo. Los sistemas CAD también permiten simular el funcionamiento de un producto. Hacen posible verificar si un circuito electrónico propuesto funcionará tal y como está previsto, si un puente será capaz de soportar las cargas pronosticadas sin peligros e incluso si una salsa de tomate fluirá adecuadamente desde un envase de nuevo diseño.

Podemos mencionar como ejemplo los programas orientados al tratamiento de números o estadísticas (Mathematica, Statgraphic), diseño de planos o estructuras (AutoCad) o tan sofisticados como los encargados de las predicciones meteorológicas.

 

El software basado en lenguajes procedimentales es útil para realizar de forma rápida y fiable operaciones que para el ser humano son tediosas e incluso inabordables. Sin embargo, es difícilmente aplicable a problemas que requieran la aplicación de funciones intelectuales más elevadas, por triviales que nos puedan parecer. El software de inteligencia artificial trata de dar respuesta a estas deficiencias, basándose en el uso de lenguajes declarativos, sistemas expertos y redes neuronales.

Como vemos, el software permite aplicaciones muy diversas, pero en todas ellas podemos encontrar algo en común: el objetivo es que el software desempeñe una determinada función, y además, debe hacerlo cumpliendo una serie de requisitos. Esos pueden ser muy variados: corrección, fiabilidad, respuesta en un tiempo determinado, facilidad de uso, bajo coste, etc, pero siempre existen y no podemos olvidarnos de ellos a la hora de desarrollar el software.

El término IA se ha aplicado a sistemas y programas informáticos capaces de realizar tareas complejas, simulando el funcionamiento del pensamiento humano, aunque todavía muy lejos de éste. En esta esfera los campos de investigación más importantes son el procesamiento de la información, el reconocimiento de modelos, los juegos y las áreas aplicadas como el diagnóstico médico. Algunas áreas de la investigación actual del procesamiento de la información están centradas en programas que permiten a un ordenador o computadora comprender la información escrita o hablada, y generar resúmenes, responder a preguntas específicas o redistribuir datos a los usuarios interesados en determinados sectores de esta información. En esos programas es esencial la capacidad del sistema de generar frases gramaticalmente correctas y de establecer vínculos entre palabras e ideas. La investigación ha demostrado que mientras que la lógica de la estructura del lenguaje, su sintaxis, está relacionada con la programación, el problema del significado, o semántica, es mucho más profundo, y va en la dirección de una auténtica inteligencia artificial.
Actualmente existen dos tendencias en cuanto al desarrollo de sistemas de IA: los
sistemas expertos y las redes neuronales. Los sistemas expertos intentan reproducir el razonamiento humano de forma simbólica. Las redes neuronales lo hacen desde una perspectiva más biológica (recrean la estructura de un cerebro humano mediante algoritmos genéticos). A pesar de la complejidad de ambos sistemas los resultados distan mucho de un auténtico pensamiento inteligente.
Muchos científicos se muestran escépticos acerca de la posibilidad de que alguna vez pueda desarrollarse una verdadera IA. El funcionamiento de la mente humana todavía no ha llegado a conocerse en profundidad y, en consecuencia, el diseño informático seguirá siendo esencialmente incapaz de reproducir esos procesos desconocidos y complejos.

 

El uso de ordenadores personales y de uso doméstico se ha generalizado a lo largo de la pasada década. Han surgido productos de amplia difusión orientados a usuarios no profesionales, por lo que entre sus requisitos se encuentran la facilidad de uso y el bajo coste. Se pueden citar muchísimos programas.

Aplicaciones típicas:

Procesadores de textos (Word, Wordperfect, Kwrite, AmiPro)
Hojas de cálculo ( Excel, Lotus 123)
Bases de datos (Access, Developer)
Juegos (aventuras gráficas, estrategia, rol, simuladores)
Aplicaciones de diseño y tratamiento de imágenes (Corel Draw, Photoshop)
Compresores (Winzip, Winace)
Reproductores de sonido (Winamp, Real Player)
Reproductores de video (Windows Media Player, GDivX)
Programas de grabación (Nero, CloneCd)
Gestores de descarga(Getright, Gozilla)
Correo (outlook express, Eudora)
Chat (Irc, Messenger)
Antivirus (Panda, Norton)
Firewall (BlackIce, Conseal)
Traductores e intérpretes(Babylon)