# Modelo de comportamiento (informática)

Los modelos de comportamiento se utilizan para describir el comportamiento del sistema en su totalidad. Entre los modelos de comportamiento existentes se distinguen dos de estos: modelos de flujo de datos, que modelan el procesamiento de los datos en el sistema, y modelos de máquinas de estado, que modelan como el sistema reacciona a los eventos. Estos modelos pueden usarse de forma separada o conjuntamente, dependiendo del tipo de sistema que se esté desarrollando.
La mayoría de los sistemas de negocio están fundamentalmente dirigidos por los datos. Están controlados por las entradas de datos al sistema con relativamente poco procesamiento de eventos externos.
Un modelo de flujo de datos puede ser todo lo que se necesite para representar el comportamiento de estos sistemas. Por el contrario, los sistemas de tiempo real a menudo están dirigidos por eventos con un mínimo procesamiento de datos. Un modelo de máquina de estados es la forma más efectiva de representar su comportamiento. Otras clases de sistemas pueden estar dirigidas tanto por datos como por eventos. En estos casos se puede desarrollar ambos tipos de modelos.

## Modelos de flujo de datos

Los modelos de flujo de datos son una forma intuitiva de mostrar como los datos son procesados por un sistema. A nivel de análisis, deberían usarse para modelar la forma en la que los datos son procesados en el sistema existente. El uso de modelos de flujo de datos para análisis comenzó a usarse ampliamente después de la publicación del libro de DeMarco (DeMarco, 1978) sobre análisis de sistemas estructurados. Estos modelos son una parte intrínseca de los métodos estructurados. La notación usada en ellos representa el procesamiento funcional (rectángulos redondeados), los almacenes de datos (rectángulos) y el flujo de datos entre funciones (flechas etiquetadas).
Los modelos de flujo de datos son valiosos debido a que realizan un seguimiento y documentan como los datos asociados con un proceso particular fluyen a través del sistema, y esto ayuda a los analistas a comprender el proceso. Los diagramas de flujo de datos tienen la ventaja de que, a diferencia de otras notaciones de modelado, son sencillos e intuitivos. Normalmente es posible explicarlos a los usuarios potenciales del sistema, quienes pueden entonces participar en la validación del análisis.
Los modelos de flujo de datos muestran una perspectiva funcional en donde cada transformación representa un único proceso o función. Son particularmente útiles durante el análisis de requerimientos ya que pueden usarse para mostrar el procesamiento desde el principio hasta el final en un sistema. Es decir, muestra la secuencia completa de acciones que tienen lugar a partir de una entrada que se está procesando hasta la correspondiente salida que constituye la respuesta del sistema.

## Modelos de máquina de estados

Un modelo de máquinas de estados describe como responde un sistema a eventos internos o externos. El modelo de máquina de estados muestra los estados del sistema y los eventos que provocan las transiciones de un estado a otro. No muestra el flujo de datos dentro del sistema. Este tipo de modelos se utiliza a menudo para modelar sistemas de tiempo real debido a que estos sistemas suelen estar dirigidos por estímulos procedentes del entorno del sistema.
Los modelos de máquina de estados son una parte integral de los métodos de diseño de tiempo real tales como los propuestos por Ward y Mellor (Ward and Mellor, 1985), y Harel (Harel, 1987). El método de Harel usa una notación denominada diagramas de estado que fue la base para la notación del modelado de máquina de estados en UML.
Un modelo de máquina de estados de un sistema supone que, en cualquier momento, el sistema está en uno de varios estados posibles. Cuando se recibe un estímulo, este puede disparar una transición a un estado diferente.
La notación UML utilizada para describir los modelos de máquina de estados está diseñada para modelar el comportamiento de los objetos. Sin embargo, es una notación de propósito general que se puede utilizar para cualquier tipo de modelado de máquina de estados. Los rectángulos redondeados en un modelo representan los estados del sistema. Incluyen una breve descripción de las acciones realizadas en ese estado. Las flechas etiquetadas representan estímulos que fuerzan transiciones de un estado a otro.
El problema con la aproximación de la máquina de estados es que el número de posibles estados crece rápidamente. Por lo tanto, para los modelos de sistemas grandes, es necesaria una cierta estructuración de estos modelos de estados. Una forma de hacer esto es mediante la noción de un superestado que encierra a varios estados separados. Este superestado se asemeja a un único estado de un modelo de alto nivel.