OOAD - Modelado funcional
El modelado funcional brinda la perspectiva del proceso del modelo de análisis orientado a objetos y una descripción general de lo que se supone que debe hacer el sistema. Define la función de los procesos internos en el sistema con la ayuda de Diagramas de flujo de datos (DFD). Representa la derivación funcional de los valores de los datos sin indicar cómo se derivan cuando se calculan o por qué deben calcularse.
Diagramas de flujo de datos
El modelado funcional se representa a través de una jerarquía de DFD. El DFD es una representación gráfica de un sistema que muestra las entradas al sistema, el procesamiento de las entradas, las salidas del sistema, así como los almacenes de datos internos. Los DFD ilustran la serie de transformaciones o cálculos realizados en los objetos o el sistema, y los controles y objetos externos que afectan la transformación.
Rumbaugh y col. han definido DFD como, "Un diagrama de flujo de datos es un gráfico que muestra el flujo de valores de datos desde sus fuentes en objetos a través de procesos que los transforman a sus destinos en otros objetos".
Las cuatro partes principales de un DFD son:
- Processes,
- Flujos de datos,
- Actores y
- Almacenes de datos.
Las otras partes de un DFD son:
- Restricciones y
- Flujos de control.
Características de un DFD
Procesos
Los procesos son las actividades computacionales que transforman los valores de los datos. Todo un sistema se puede visualizar como un proceso de alto nivel. Un proceso se puede dividir en componentes más pequeños. El proceso de nivel más bajo puede ser una función simple.
Representation in DFD - Un proceso se representa como una elipse con su nombre escrito en su interior y contiene un número fijo de valores de datos de entrada y salida.
Example - La siguiente figura muestra un proceso Compute_HCF_LCM que acepta dos enteros como entradas y genera su HCF (factor común más alto) y LCM (mínimo común múltiplo).
Flujos de datos
El flujo de datos representa el flujo de datos entre dos procesos. Podría ser entre un actor y un proceso, o entre un almacén de datos y un proceso. Un flujo de datos denota el valor de un elemento de datos en algún punto del cálculo. El flujo de datos no modifica este valor.
Representation in DFD - Un flujo de datos está representado por un arco dirigido o una flecha, etiquetado con el nombre del elemento de datos que lleva.
En la figura anterior, Integer_a y Integer_b representan los flujos de datos de entrada al proceso, mientras que LCM y HCF son los flujos de datos de salida.
Un flujo de datos puede bifurcarse en los siguientes casos:
El valor de salida se envía a varios lugares como se muestra en la siguiente figura. Aquí, las flechas de salida no están etiquetadas ya que denotan el mismo valor.
El flujo de datos contiene un valor agregado y cada uno de los componentes se envía a diferentes lugares como se muestra en la siguiente figura. Aquí, cada uno de los componentes bifurcados está etiquetado.
Actores
Los actores son los objetos activos que interactúan con el sistema ya sea produciendo datos e ingresándolos al sistema, o consumiendo datos producidos por el sistema. En otras palabras, los actores sirven como fuentes y sumideros de datos.
Representation in DFD- Un actor está representado por un rectángulo. Los actores están conectados a las entradas y salidas y se encuentran en el límite del DFD.
Example - La siguiente figura muestra los actores, a saber, Cliente y Sales_Clerk en un sistema de venta de mostrador.
Almacenes de datos
Los almacenes de datos son los objetos pasivos que actúan como repositorios de datos. A diferencia de los actores, no pueden realizar ninguna operación. Se utilizan para almacenar datos y recuperar los datos almacenados. Representan una estructura de datos, un archivo de disco o una tabla en una base de datos.
Representation in DFD- Un almacén de datos está representado por dos líneas paralelas que contienen el nombre del almacén de datos. Cada almacén de datos está conectado a al menos un proceso. Las flechas de entrada contienen información para modificar el contenido del almacén de datos, mientras que las flechas de salida contienen información recuperada del almacén de datos. Cuando se va a recuperar una parte de la información, se etiqueta la flecha de salida. Una flecha sin etiqueta denota la recuperación completa de datos. Una flecha de dos direcciones implica tanto la recuperación como la actualización.
Example- La siguiente figura muestra un almacén de datos, Sales_Record, que almacena los detalles de todas las ventas. La entrada al almacén de datos comprende detalles de ventas como artículo, monto de facturación, fecha, etc. Para encontrar las ventas promedio, el proceso recupera los registros de ventas y calcula el promedio.
Restricciones
Las restricciones especifican las condiciones o restricciones que deben cumplirse con el tiempo. Permiten agregar nuevas reglas o modificar las existentes. Las restricciones pueden aparecer en los tres modelos de análisis orientado a objetos.
En Modelado de objetos, las restricciones definen la relación entre los objetos. También pueden definir la relación entre los diferentes valores que un objeto puede tomar en diferentes momentos.
En el modelado dinámico, las restricciones definen la relación entre los estados y eventos de diferentes objetos.
En el modelado funcional, las restricciones definen las restricciones sobre las transformaciones y los cálculos.
Representation - Una restricción se representa como una cadena entre llaves.
Example- La siguiente figura muestra una parte del DFD para calcular el salario de los empleados de una empresa que ha decidido dar incentivos a todos los empleados del departamento de ventas e incrementar el salario de todos los empleados del departamento de RRHH. Se puede ver que la restricción {Dept: Sales} hace que el incentivo se calcule solo si el departamento es ventas y la restricción {Dept: HR} hace que el incremento se calcule solo si el departamento es HR.
Flujos de control
Un proceso puede estar asociado con un cierto valor booleano y se evalúa solo si el valor es verdadero, aunque no es una entrada directa al proceso. Estos valores booleanos se denominan flujos de control.
Representation in DFD - Los flujos de control están representados por un arco de puntos desde el proceso que produce el valor booleano hasta el proceso controlado por ellos.
Example- La siguiente figura representa un DFD para la división aritmética. El Divisor se prueba para valores distintos de cero. Si no es cero, el flujo de control OK tiene un valor Verdadero y, posteriormente, el proceso de división calcula el cociente y el resto.
Desarrollo del modelo DFD de un sistema
Para desarrollar el modelo DFD de un sistema, se construye una jerarquía de DFD. El DFD de nivel superior consta de un solo proceso y los actores que interactúan con él.
En cada nivel sucesivo inferior, se incluyen gradualmente más detalles. Un proceso se descompone en subprocesos, se identifican los flujos de datos entre los subprocesos, se determinan los flujos de control y se definen los almacenes de datos. Al descomponer un proceso, el flujo de datos dentro o fuera del proceso debe coincidir con el flujo de datos en el siguiente nivel de DFD.
Example- Consideremos un sistema de software, Wholesaler Software, que automatiza las transacciones de una tienda mayorista. La tienda vende a granel y tiene una clientela compuesta por comerciantes y propietarios de tiendas minoristas. A cada cliente se le pide que se registre con sus datos personales y se le da un código de cliente único, C_Code. Una vez que se realiza una venta, la tienda registra sus datos y envía la mercancía para su envío. Cada año, la tienda distribuye regalos de Navidad a sus clientes, que comprenden una moneda de plata o una moneda de oro, dependiendo de las ventas totales y la decisión del propietario.
El modelo funcional para el software mayorista se muestra a continuación. La siguiente figura muestra el DFD de nivel superior. Muestra el software como un proceso único y los actores que interactúan con él.
Los actores del sistema son:
- Customers
- Salesperson
- Proprietor
En el DFD de siguiente nivel, como se muestra en la siguiente figura, se identifican los principales procesos del sistema, se definen los almacenes de datos y se establece la interacción de los procesos con los actores, y se establecen los almacenes de datos.
En el sistema, se pueden identificar tres procesos, que son:
- Registrar clientes
- Ventas de proceso
- Determinar regalos
Los almacenes de datos que serán necesarios son:
- Detalles del cliente
- Detalles de ventas
- Detalles del regalo
La siguiente figura muestra los detalles del proceso Registrar cliente. Hay tres procesos en él, Verificar detalles, Generar C_Code y Actualizar detalles del cliente. Cuando se ingresan los datos del cliente, se verifican. Si los datos son correctos, se genera C_Code y se actualiza el almacén de datos Detalles del cliente.
La siguiente figura muestra la expansión del proceso Determinar regalos. Tiene dos procesos, Buscar ventas totales y Decidir el tipo de moneda de regalo. El proceso Find Total Sales calcula las ventas totales anuales correspondientes a cada cliente y registra los datos. Tomando este registro y la decisión del propietario como entradas, las monedas de regalo se asignan a través del proceso Decidir el tipo de moneda de regalo.
Ventajas y desventajas de DFD
Ventajas | Desventajas |
---|---|
Los DFD representan los límites de un sistema y, por lo tanto, son útiles para representar la relación entre los objetos externos y los procesos dentro del sistema. | Los DFD tardan mucho en crearse, lo que puede no ser factible a efectos prácticos. |
Ayudan a los usuarios a conocer el sistema. | Los DFD no proporcionan ninguna información sobre el comportamiento dependiente del tiempo, es decir, no especifican cuándo se realizan las transformaciones. |
La representación gráfica sirve como modelo para que los programadores desarrollen un sistema. | No arrojan luz sobre la frecuencia de los cálculos o las razones de los cálculos. |
Los DFD proporcionan información detallada sobre los procesos del sistema. | La preparación de DFD es un proceso complejo que requiere una experiencia considerable. Además, es difícil de entender para una persona sin conocimientos técnicos. |
Se utilizan como parte de la documentación del sistema. | El método de preparación es subjetivo y deja un amplio margen para ser impreciso. |
Relación entre modelos de objetos, dinámicos y funcionales
El modelo de objetos, el modelo dinámico y el modelo funcional se complementan entre sí para un análisis completo orientado a objetos.
El modelado de objetos desarrolla la estructura estática del sistema de software en términos de objetos. Por lo tanto, muestra a los "hacedores" de un sistema.
El modelado dinámico desarrolla el comportamiento temporal de los objetos en respuesta a eventos externos. Muestra las secuencias de operaciones realizadas sobre los objetos.
El modelo funcional ofrece una descripción general de lo que debería hacer el sistema.
Modelo funcional y modelo de objetos
Las cuatro partes principales de un modelo funcional en términos de modelo de objeto son:
Process - Los procesos implican los métodos de los objetos que deben implementarse.
Actors - Los actores son los objetos del modelo de objetos.
Data Stores - Estos son objetos en el modelo de objetos o atributos de objetos.
Data Flows- Los flujos de datos hacia o desde actores representan operaciones en o por objetos. Los flujos de datos hacia o desde los almacenes de datos representan consultas o actualizaciones.
Modelo funcional y modelo dinámico
El modelo dinámico indica cuándo se realizan las operaciones, mientras que el modelo funcional indica cómo se realizan y qué argumentos se necesitan. Como los actores son objetos activos, el modelo dinámico debe especificar cuándo actúa. Los almacenes de datos son objetos pasivos y solo responden a actualizaciones y consultas; por lo tanto, el modelo dinámico no necesita especificar cuándo actúan.
Modelo de objetos y modelo dinámico
El modelo dinámico muestra el estado de los objetos y las operaciones realizadas sobre la ocurrencia de eventos y los posteriores cambios de estado. El estado del objeto como resultado de los cambios se muestra en el modelo de objeto.