Herramientas de Modelado Las herramientas de modelado de sistemas informáticos, son herramientas que se emplean para la creación de modelos de sistemas que ya existen o que se desarrollarán. Las herramientas de modelado, permiten crear un "simulacro" del sistema, a bajo costo y riesgo mínimo. A bajo costo porque, al fin y al cabo, es un conjunto de gráficos y textos que representan el sistema, pero no son el sistema físico real (el cual es más costoso). Además minimizan los riesgos, porque los cambios que se deban realizar (por errores o cambios en los requerimientos), se pueden realizar más fácil y rápidamente sobre el modelo que sobre el sistema ya implementado. Las herramientas de modelado, permiten concentrarse en ciertas características importantes del sistema, prestando menos atención a otras. Los modelos resultados, son una buena forma de determinar si están representados todos los requerimientos del sistema, como también saber si el analista comprendió qué hará el sistema. Un sistema informático puede requerir diferentes herramientas de modelado, que resultarán en diferentes tipos de modelos. Las herramientas de modelado utilizadas dependen del analista, del tipo de sistema, de los requerimientos, etc. Algunas herramientas de modelado * Diagrama de flujo de datos. * Diagrama de entidad relación. * Diagrama de transición de estados. * Diccionario de datos. * Especificación de procesos. * Diagramas HIPO e IPO. * Diagrama de clases. Características esperables de una herramienta de modelado Las buenas herramientas de modelado cumplen con determinadas características: * Permiten una visión descendente del sistema. * Permiten particionar el sistema. * Poseen componentes gráficos con algo de apoyo textual. * El modelo resultado debe ser transparente (fácil de comprender). * Poseen mínima redundancia (el aumento de redundancia, disminuye la transparencia del modelo y aumenta las tareas de mantenimiento). Balanceo Un sistema puede modelarse empleando múltiples herramientas de modelado. Cada herramienta resulta en uno o más diagramas (o esquemas) que representan el sistema completo o parte del sistema. Cada diagrama "ayuda" al otro, permitiendo una mejor comprensión de la parte del sistema que modela. El balanceo entre diagramas es la tarea de comprobar la consistencia entre los distintos diagramas del sistema. Esta tarea puede ser manual o automática. Cuando está comprobada, se dice que los diagramas están balanceados. El balanceo de diagramas permite descubrir y corregir errores, inconsistencias o faltantes. (DFD). Los diagramas de flujo de datos son un tipo de herramienta de modelado, permiten modelar todo tipo de sistemas, concentrándose en las funciones que realiza, y los datos de entrada y salida de esas funciones. Componentes de los DFD * PROCESOS (burbujas): representan la parte del sistema que transforma ciertas entradas en ciertas salidas. * FLUJOS: representan los datos en movimiento. Pueden ser flujos de entrada o flujos de salida. Los flujos conectan procesos entre sí y también almacenes con procesos. * ALMACENES: representan datos almacenados. Pueden ser una base de datos, un archivo físico, etc. * TERMINADORES: representan entidades externas que se comunican con el sistema. Esas entidades pueden ser personas, organizaciones u otros sistemas, pero no pertenecen al sistema que se está modelando. Existen procesos y flujos especiales llamados procesos de control y flujos de control. Se emplean para modelar sistemas en tiempo real. Los flujos de control son señales o interrupciones, en tanto los procesos de control son burbujas que coordinan y sincronizan otros procesos. Los procesos de control sólo se conectan con flujos de control. Los flujos de control de salida "despiertan" otras burbujas, en tanto los flujos de control de entrada, especifican que una tarea terminó o se presentó un evento extraordinario. Representación de un sistema en DFD Un sistema puede representarse empleando varios diagramas de flujos de datos, cada flujo de datos puede representar una parte "más pequeña" del sistema. Los DFD permiten una partición por niveles del sistema. El nivel más general se representa con un DFD global llamado diagrama de contexto. El diagrama de contexto DFD representa a todo el sistema con una simple burbuja o proceso, las entradas y salidas de todo el sistema, y las interacciones con los terminadores. Complementos del DFD Los DFD suelen servir para comprender fácilmente el funcionamiento de un sistema. De todas maneras, no es la única herramienta para diagramar sistemas, es más, se debe complementar con otras herramientas para agregar comprensión y exactitud al DFD. Otras herramientas que se complementan con los DFD son los diccionarios de datos, las especificaciones de procesos, los diagramas de entidad relación, los diagramas de transición de estados, etc. (DER). Un DER es una herramienta de modelado de sistemas, que se concentra en los datos almacenados en el sistema y las relaciones entre éstos. Un diagrama de entidad-relación o DER es un modelo de red que describe la distribución de los datos almacenados en un sistema de forma abstracta. Algunas bibliografías diferencian entre el diagrama entidad-relación y el modelo entidadrelación, donde el modelo entidad-relación vendría a ser el "lenguaje" utilizado para crear diagramas de entidad-relación. Más información en modelo de entidad-relación. Componentes de un DER * TIPOS DE OBJETOS o ENTIDADES. * RELACIONES: conectan los objetos o entidades. Desarrollo de sistemas informáticos Los DER se emplean para modelar bases de datos que pertenecen a un sistema informático. (DD). El diccionario de datos es un listado organizado de todos los datos que pertenecen a un sistema. El objetivo de un diccionario de datos es dar precisión sobre los datos que se manejan en un sistema, evitando así malas interpretaciones o ambigüedades. Define con precisión los datos de entrada, salida, componentes de almacenes, flujos, detalles de las relaciones entre almacenes, etc. Los diccionarios de datos son buenos complementos a los diagramas de flujo de datos, los diagramas de entidad-relación, etc. La especificación de procesos, es una herramienta de modelado de sistemas, que permite definir qué sucede en los procesos o funciones de un sistema. El objetivo es definir qué debe hacerse para transformar ciertas entradas en ciertas salidas. No hay una única forma de realizar la especificación de procesos; existen múltiples herramientas que facilitan esta tarea, aunque debería emplearse aquellas que permitan fácil comprensión. Desarrollo de una especificación de procesos Algunas herramientas utilizadas para generar especificaciones de procesos son: * Lenguaje estructurado: se emplea un lenguaje natural limitado en palabras y construcciones, dándole más precisión y claridad, evitando ambigüedades (el lenguaje natural humano carece de precisión y es muy ambiguo). Definen un algoritmo. * Uso de pre-condiciones y post-condiciones: describen la función del proceso, sin detallar un algoritmo específico. * Otras: tablas de decisiones, lenguaje narrativo, diagramas de flujos, diagrama NassiShneiderman, gráficas, etc.