Contexto
Cuando pensamos en dispositivos que requieren software, por lo general se nos vienen a la mente dispositivos como las computadoras, ya sea laptops, desktops o mainframes, y se nos olvida que existen otros dispositivos a los que también se les incorporan instrucciones específicas para responder a estímulos externos que no necesariamente provienen de un usuario. Estos dispositivos se encuentran en tu casa, en la escuela, el hospital, las fábricas, parques, por mencionar algunos.
A este software se le llama sistema embebido y se encuentra en una infinidad de instrumentos o aparatos electrónicos. Por ejemplo, en tu casa seguramente tienes un horno de microondas o un reloj digital, en ambos casos contienen componentes a los que se les ha incluido software para funcionar de forma adecuada. Si vas a un hospital, encontrarás una gran cantidad de aparatos que se destinan para el cuidado de las personas a los que se les ha incrustado software para realizar alguna función específica. Si analizas las partes de tu automóvil, verás que contienen componentes que fueron programados para efectuar una acción especial, piensa por ejemplo en el componente que hace activar la bolsa de aire en el momento que de un accidente.
Explicación
10.1 Sistemas embebidos
Muchos de los aparatos electrónicos incluyen porciones de software que controlan directamente el hardware, desde una televisión hasta secciones completas de la línea de producción de una armadora de autos.
“Existen muchos más sistemas de software embebido que de otros tipos (Sommerville, 2011).”
Sommerville (2011) considera que el software se encuentra embebido en el hardware, generalmente en su memoria ROM en espera de responder en tiempo real (en un plazo de tiempo) a eventos del entorno de sistema.
Diferencias entre los sistemas embebidos y otros tipos de sistemas:
Sommerville (2011) muestra en el diagrama un diseño general de software embebido en un sistema que recopila las respuestas de sensores que han sido activados por algún estímulo. Hay un control central que interpreta los mensajes enviados por los sensores y genera una respuesta específica a otros componentes llamados actuadores, los cuales permiten enviar instrucciones específicas para controlar una situación crítica.
Modelo general de un sistema embebido en tiempo real. Tomado de Sommerville, I. (2011). Ingeniería de Software (9ª ed.). México: Pearson. Sólo para fines educativos.
Los estímulos a los que responden los sistemas embebidos son de dos tipos según Sommerville (2011):
10.2. Patrones de sistemas embebidos
Los patrones que describen mejor el diseño de sistemas embebidos están orientados a procesos. En opinión de Sommerville (2011), existen tres patrones arquitectónicos para sistemas en tiempo real:
Haz clic en cada concepto para conocer más detalle.
Este patrón se utiliza para monitorear de manera rutinaria sensores de equipos y comunican su estado a través de una pantalla interna, paneles de instrumentos o en una pantalla remota.
Por ejemplo, el monitoreo de la temperatura de un reactor nuclear. Al acercarse a una temperatura crítica, el sensor envía un mensaje de alarma (visible o sonora), para que el ingeniero de monitoreo pueda realizar los ajustes pertinentes y mantener el control.
Otro ejemplo pueden ser los sensores de movimiento de un sistema de seguridad para un edificio o una casa. Cada sensor se mantiene enviando mensajes al sistema central al detectar objetos en movimiento, sin embargo, este sistema responderá a una alarma al centro de control siempre y cuando haya sido activado, de lo contrario los mensajes de los sensores son desechados.
Nombre |
Observar y reaccionar |
---|---|
Descripción |
Se recopilan y analizan los valores de entrada de un conjunto de sensores de los mismos tipos. Dichos valores se despliegan en alguna forma. Si los valores del sensor indican que surgió alguna condición excepcional, entonces se inician acciones para llamar la atención del operador hacia dicho valor y, en ciertos casos, realizar acciones en respuesta al valor excepcional. |
Estructura | |
Estímulos | Valores de los sensores unidos al sistema. |
Respuestas | Salidas a desplegar, activadores de alarma, señales a sistemas que reaccionan. |
Procesos | Observador, análisis, despliegue, alarma, reactor. |
Usado en | Sistemas de monitorización, sistemas de alarma. |
Tabla e imagen tomadas de Sommerville, I. (2011). Ingeniería de Software (9ª ed.). México: Pearson. Sólo para fines educativos.
Los equipos programados para responder ante estímulos externos utilizan el patrón arquitectónico de control ambiental. A diferencia del patrón observar y reaccionar, estos interpretan los mensajes de los sensores para dar una instrucción específica a un actuador o dispositivo de control.
Ejemplos de este tipo de sistemas pueden ser los sistemas de frenado antibloqueo (frenos ABS), sistemas de estacionado automático de los automóviles, controladores automáticos de temperatura ambiental, sistemas automáticos de riego según humedad y temperatura del terreno de cultivo.
Nombre |
Control ambiental |
---|---|
Descripción |
El sistema analiza información de un conjunto de sensores que recopilan datos del entorno del sistema. También se puede recopilar más información del estado de los actuadores que se conectan al sistema. Con base en datos de los sensores y actuadores, se envían señales de control a los actuadores, que en ese momento provocan cambios al entorno del sistema. Puede desplegarse información de los valores del sensor y el estado de los actuadores. |
Estructura | |
Estímulos | Valores de los sensores unidos al sistema y el estado de los actuadores del sistema. |
Respuestas | Señales de control a actuadores, despliegue de información. |
Procesos | Monitor, de control, de despliegue, controlador de actuador, monitor de actuador. |
Usado en | Sistemas de control. |
Tabla e imagen tomadas de Sommerville, I. (2011). Ingeniería de Software (9ª ed.). México: Pearson. Sólo para fines educativos.
Este tipo de sistemas recopilan información para transformarla en tiempo real. Puede ser información en formato análogo y convertirla a información digital. Por ejemplo, una llamada telefónica que recibas en tu celular requiere que envíe y reciba información que ha sido transformada de análoga (ondas de radio en cierta frecuencia) a digital (pulsos eléctricos). La televisión que recibe programación libre también realiza esta conversión, sólo que lo hace únicamente de entrada y no de salida.
Nombre |
Segmentación de proceso |
---|---|
Descripción |
Una segmentación (pipeline) de procesos se establece con datos que se mueven en secuencia de un extremo de la “tubería” a otro. Con frecuencia, los procesos están vinculados mediante buffers sincronizados para permitir que los procesos productor y consumidor se ejecuten a diferentes velocidades. La culminación de una segmentación puede desplegarse o almacenar los datos, o la “tubería” puede terminar en un actuador. |
Estructura | |
Estímulos | Valores de entrada del entorno o algún otro proceso. |
Respuestas | Valores de salida al entorno o un buffer compartido. |
Procesos | Productor, Buffer, Consumidor. |
Usado en | Sistemas de adquisición de datos, sistemas multimedia. |
Tabla e imagen tomadas de Sommerville, I. (2011). Ingeniería de Software (9ª ed.). México: Pearson. Sólo para fines educativos.
10.3. Patrón multiniveles (Multi-tier)
La mayoría de los sistemas de información ERP’s y CRM’s tienen una arquitectura en la que utilizan grupos de componentes que mantienen funciones similares. Estos niveles (tier en inglés) están relacionados con los ambientes de cómputo en los cuales se montará el software. Por ejemplo, existirá un nivel de aplicaciones del cliente que es muy diferente al nivel donde se encuentra la base de datos.
Es importante aclarar que este patrón es diferente a la arquitectura de capas, aunque el término en inglés tiene un significado parecido (tier layer). La principal diferencia es que el patrón de capas está enfocado a la distribución lógica del sistema, mientras que el patrón multi-tier hace una distribución física del código, indicando en dónde se ejecuta.
Haz clic en cada concepto para conocer más detalle.
Esta arquitectura permite distribuir funciones del sistema en subgrupos ya sea para facilitar la operación de la infraestructura o bien por razones administrativas, en las que ciertos grupo de personas se hacen responsables de los equipos (hardware) que ofrecen un conjunto de servicios al resto de la organización.
Nivel (tier) es una agrupación lógica de componentes que pueden estar ligados a las plataformas de cómputo básicas que forman los elementos del patrón arquitectónico.
A esta arquitectura también se le conoce como N-tier, donde N representa el número de niveles.
Bass, Clements y Kazman (2012) ofrecen el siguiente ejemplo de un sitio web basado en el framework Java EE. La aplicación tiene la función de ofrecer al cliente las actividades que puede realizar durante sus vacaciones. Observa que la arquitectura de software está dividida en componentes: Cliente, Web, EJB (Entreprise Java Beans) y Back end, esto facilita que sean asignados a grupos de desarrollo de software distinto, especializándose en trabajos que están relacionados.
Ejemplo de la arquitectura multi-nivel de una aplicación Java para un sitio web. Tomado del libro de Bass, L., Clements, P. y Kazman, R. (2012). Software Architecture in Practice. EE. UU.: Addison - Wesley Professional.
En sistemas complejos que requieren ofrecer módulos independientes que se pueden ir acoplando según las necesidades del cliente.
Cierre
Los sistemas embebidos son una pieza fundamental de la tecnología actual: cajeros automáticos, decodificadores de señal de televisión, sistemas de radares, componentes satelitales, sensores de movimiento, parquímetros digitales, son parte de una lista enorme de hardware que requiere de una arquitectura de software que proporcionará las instrucciones necesarias para dar respuesta en tiempo real a estímulos externos.
Si bien su arquitectura y las funciones que realizan son sencillas, los sistemas embebidos requieren de programación en lenguaje ensamblador para que pueda operar de forma directa con el hardware, con las limitantes físicas de capacidad y espacio que les imponen.
Dado este amplio espectro de dispositivos electrónicos, existe una demanda cada vez más creciente de compañías que se enfoquen en desarrollar sistemas embebidos, utilizando sus tres patrones arquitectónicos con las que es posible diseñar las funciones generales de cualquier componente.
Por otro lado, el patrón arquitectónico multi-tier, que es uno de los más comunes dentro de la ingeniería de software, permite diseñar sistemas complejos que requieren ser divididos en funciones similares, lo que da oportunidad de ser asignados a diferentes equipos de personas con competencias específicas. Seguramente en tu vida profesional será uno de los patrones con el que trabajarás, ya sea como parte de un equipo desarrollador o como implementador de aplicaciones comerciales de enfoque empresarial.
Checkpoint
Asegúrate de poder:
Glosario
CRM. Customer Relationship Management. Son sistemas que ofrecen las mejores prácticas para administrar la información de los clientes. Entre los CRM más populares aparecen Siebel, Microsoft Dynamics, Salesforce.
ERP. Enterprise Resource Planning. Es un sistema de información que permite administrar los principales procesos del negocio: Planeación de la producción, manufactura, mercadotecmia, inventario, logistica y facturacion. Los actuales ERP’s son modulares, lo que permite a los clientes adquirir las funciones con forme se vayan requiriendo. Ejemplos: SAP, Microsoft Dynamics GP & AX, PeopleSoft.
Frenos ABS. Antibocking Brake Systems, El sistema de frenos ABS permite que las llantas de un automóvil puedan seguir rodando al presionar el freno, evitando que las llantas derrapen y el conductor pierda por completo el control del automóvil.
Referencias