Está en la página 1de 9

Ingeniería en

Tiempo Real y
Diseño Centrado en
el Usuario

Ingeniería de
Software

1
Ingeniería en tiempo real
En este punto, veremos, con diferentes ejemplos, el concepto de lo que es
un sistema en tiempo real y nos enfocaremos en los artefactos de diseño
que pueden emplearse para este tipo de sistemas.

Las actividades en el proceso de diseño varían dependiendo del tipo de


sistema por desarrollar.

Para cualquier sistema, Sommerville (2011) expone cuatro actividades que


podrían formar parte del proceso de diseño para sistemas de información:

1. Diseño arquitectónico: donde se determina la estructura global del


sistema, los principales componentes y sus relaciones.

2. Diseño de interfaz: donde se definen las interfaces entre los


componentes de sistemas. Una vez realizadas las especificaciones de
interfaz, los componentes se diseñan y se desarrollan de manera
concurrente.

3. Diseño de componentes: donde por cada componente del sistema y se


diseña cómo funcionará. donde por cada componente del sistema y se
diseña cómo funcionará. Esto puede ser un simple dato de la
funcionalidad que se espera implementar, mientras que al programador
se le deja el diseño específico.

4. Diseño de base de datos: donde se diseñan las estructuras del sistema


de datos y cómo se representarán en una base de datos.

Para los sistemas de tiempo real esto cambia, pues precisan del diseño de
temporización, pero sin incluir una base de datos, por lo que no hay que
integrar un diseño de base de datos.

Los sistemas en tiempo real demandan mucho análisis antes de la


implementación, ya que cuentan con requerimientos de temporización
compleja. Por ello, necesitan un diseño bastante detallado para realizar
este análisis. Según Sommerville (2011), en tales circunstancias, quizá sea
mejor un enfoque basado en un plan.

2
En cuanto a artefactos de diseño, se tienen, entre otros, los modelos de
comportamiento como modelos dinámicos del sistema en la medida en
que se ejecutan. Muestran lo que sucede o lo que se supone que pasa
cuando un sistema responde ante un estímulo de su entorno. Dichos
modelos pueden ser de dos tipos: 1) datos y 2) eventos. Esto da a lugar al
modelado dirigido por datos y al modelado dirigido por un evento,
respectivamente.

La mayoría de los sistemas empresariales son sistemas de procesamiento


de datos que se activan principalmente por datos. El procesamiento incluye
una secuencia de acciones sobre dichos datos y la generación de una
salida. Como ejemplo para ver esto, Sommerville (2011) nos propone el
siguiente: un sistema de facturación telefónica aceptará información de las
llamadas hechas por un cliente, calculará los costos de dichas llamadas y
generará una factura para enviársela a dicho cliente.

Por otro lado, los sistemas de tiempo real muchas veces están dirigidos por
un evento con procesamiento mínimo de datos. Como ejemplo de sistemas
en tiempo real, podemos dar un sistema de conmutación telefónico
terrestre que responde a eventos como receptor ocupado al generar un
tono de dial (Sommerville, 2011).

Acá está la diferencia: el modelado dirigido por un evento muestra cómo


responde un sistema a eventos externos e internos. Parte de la idea de que
un sistema tiene un número finito de estados y que los eventos (estímulos)
pueden causar una transición de un estado a otro. Como ejemplo, se tiene
un sistema que controla una válvula que puede moverse de un estado de
válvula abierta a un estado de válvula cerrada, cuando recibe un comando
operador, que precisamente es el estímulo. Nuevamente, acá nos
referimos a un sistema en tiempo real.

Para los sistemas en tiempo real, se introdujo el modelado basado en


eventos.

Entonces, según Sommerville (2011), podemos asegurar que UML soporta


el modelado basado en eventos usando diagramas de estado que muestran
estados y eventos del sistema que causan transiciones de un estado a otro.
En este tipo de diagramas, el foco está en los estados y sus transiciones, no
se expone el flujo de datos dentro del sistema, aunque, a modo de

3
especificar el diseño, puede incluir información adicional acerca de los
cálculos realizados en cada estado.

Tomaremos el ejemplo de un software de control para un horno de


microondas muy sencillo para ilustrar el modelado dirigido por un evento.
Consideraremos que este microondas tiene un interruptor para seleccionar
potencia completa o media, un teclado numérico para ingresar el tiempo
de cocción, un botón de iniciar y detener y una pantalla alfanumérica.
Como secuencia de acciones, al usar el horno de microondas se tiene que
hacer lo siguiente:

1. seleccionar el nivel de potencia;


2. ingresar el tiempo de cocción con el teclado numérico;
3. presionar Iniciar para que la comida se cocine durante el tiempo
determinado.

Como aclaraciones, tenemos que, por razones de seguridad, el horno no


opera con la puerta abierta y que, cuando se termina la cocción, sonará un
timbre.

En un diagrama de estado, los rectángulos redondeados representan


estados del sistema y las flechas etiquetadas representan estímulos que
causan la transición de un estado a otro. Los estados podrían incluir las
acciones que se tomarán en dicho estado, tal como un diagrama de
actividad puede indicar los estados inicial y final usando círculos rellenos.

4
Figura 1: Diagrama de estado de un horno microondas

Fuente: Sommerville, 2011

Como puede apreciarse en la Figura 1, el sistema comienza en un estado de


espera y responde al botón de tipo de potencia (completa o media). Puede
cambiarse de media a completa o de completa a media. Se establece el
tiempo y, si la puerta está cerrada, se habilita el botón Iniciar para
comenzar la operación del horno. Cuando llega el final del ciclo de cocción,
el sistema regresa al estado de espera. Este tipo de diagrama permite
indicar la actividad que ocurre en un estado, pero esto no es suficiente,
pues se requiere de una especificación más detallada del sistema que dé
detalles tanto de los estímulos como de los estados del sistema.

Cuando el número de posibles estados es muy grande, el diagrama de


estados se convierte en un problema, por lo que se sugiere aplicar la
noción de un superestado que encapsule algunos estados separados.

5
Diseño centrado en el usuario
Dos conceptos deben ser diferenciados según los autores Díaz, Harari y
Amadeo (2013). Uno es la interacción hombre-computadora como
intercambio observable de información, datos y acciones entre un humano
y la computadora, y viceversa; otro es la interfaz del usuario como el medio
por el cual la interacción hombre-máquina es establecida, manejada y
controlada.

Desde el punto de vista de la computación, una variedad de tecnologías ha


sido desarrollada para soportar la interacción con humanos, como los
dispositivos de entrada y salida. Existen numerosas técnicas para organizar
el diálogo y generarlo, las cuales sirven para implementar cuestiones más
específicas de este. Y de eso nos tenemos que ocupar.

Componentes de la interfaz del usuario


Pensando en un modelo en términos de componentes de interfaz del
usuario, se puede pensar tal como lo muestra la Figura 2.

Figura 2: Componentes de la interfaz del usuario

Componentes Modelo
Control de
Usuario de interfaz Aplicación
diálogo
presentación aplicación

Fuente: Díaz, Harari y Amadeo, 2013

Tal como nos indican los autores Díaz et al. (2013), los componentes de
presentación especifican las pantallas que se presentarán al usuario y el
estilo de interacción, a partir de lo cual se definen: colores, ubicaciones de
la pantalla, figuras y menús con conceptos relacionados con este
componente.

En definitiva, es el look de la interfaz. El control de diálogo está a cargo del


manejo de la secuencia de eventos y del control de la interfaz. Se refiere a

6
la parte dinámica y establece el feel de la interfaz. Entre los elementos
presentes, está la secuenciación y lógica del diálogo, donde se definen
aspectos de navegación e interacción entre las diferentes ventanas o
páginas que conformen el sistema. El modelo de interfaz-aplicación es la
representación de la aplicación desde el punto de vista de la interfaz.
Contiene tanto una visión de la aplicación desde la interfaz como una visión
de la interfaz desde la aplicación, es decir, en las dos direcciones.

Por un lado, especifica fundamentalmente el diálogo interno entre la


interfaz y la aplicación y permite la abstracción de la forma en que el
usuario consulta y provee información a la aplicación y, por otro lado,
independiza las acciones de la aplicación de las implementaciones
particulares de las entradas y salidas del sistema.

Principios de Nielsen
Cuando hablamos de interfaz, no podemos dejar de nombrar a Jakob
Nielsen como referente de IU. Nielsen (1994) define un conjunto de
principios para diseñar el diálogo provisto en una interfaz del usuario
considerando aspectos de usabilidad. Estos son:

1) diálogo simple y natural;


2) emplear el lenguaje del usuario;
3) minimizar el uso de la memoria del usuario;
4) consistencia;
5) feedback;
6) salidas evidentes;
7) mensajes de error;
8) prevención de errores;
9) atajos;
10) ayudas.

Ciclo de vida de la interfaz del usuario


Tal como dicen Díaz et al. (2013), no es correcto pensar que la construcción
de la interfaz pertenece a la etapa de implementación, sino que existen
descripciones, detalles, consideraciones presentes en la interfaz que

7
intervienen y afectan a todo el proceso de ingeniería del sistema, por lo
que deben ser consideradas desde el principio.

En el diseño centrado en el usuario, es este quien juega un rol


preponderante en todas las etapas de desarrollo, desde la etapa inicial
donde se lo modela, hasta en la participación de evaluaciones del
producto, o bien en la sugerencia de aspectos de diseño. Por ello, se debe
pensar en el ciclo de vida de la interfaz, asociado a un proceso iterativo de
refinamientos, donde las etapas se solapan, se adelantan y se regeneran.

Características de la interfaz del usuario visual


Una interfaz del usuario visual debe soportar algunas de las siguientes
características:

1) La visualización: se refiere al uso de representaciones visuales


para ilustrar los datos y entidades que intervienen en los
programas, como así también las entradas y salidas del sistema.
2) La interacción visual, esto es, cuando el usuario puede
expresarse seleccionando, señalando, arrastrando o moviendo
objetos presentes en la pantalla.
3) Programación visual: se refiere al uso de expresiones visuales
en donde intervienen íconos o gestos durante el proceso de la
programación (Díaz et al., 2013).

8
Referencias
Díaz, J., Harari, I. y Amadeo, A. P. (2013). Guía de recomendaciones para
diseño de software centrado en el usuario (1.a ed.). La Plata, AR:
Universidad Nacional.
Nielsen, J. (1994). Usability Engineering
Sommerville, I. (2011). Ingeniería de software (9.a ed.). Distrito Federal,
MX: Pearson Educación.

También podría gustarte