martes, 9 de abril de 2013

Diccionario de datos

Actualmente estoy participando como Arquitecto de solución en unos proyectos y debo realizar el diseño y especificación funcional de los sistemas que se convertirán posteriormente en aplicaciones. 

Cuando se modela un sistema se debe realizar el modelado de la información, lo cual debe ser agnóstico a cualquier tecnología, eso finalmente se decidirá en su implementación, quedando fuera del ambito de la arquitectura de la solución. Retomando temas de la escuela, me puse a re-estudiar lo referente al diccionario de datos... pero no el generado por una herramienta CASE, sino a la representación matemática de los datos. Búsque por internet y a continuación incluyo información que a mi me sirvio para retomar el tema. 

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.

Un diccionario de datos es un conjunto de metadatos que contiene las características lógicas de los datos que se van a utilizar en el sistema que se programa, incluyendo nombre, descripción, alias, contenido y organización. Estos diccionarios se desarrollan durante el análisis de flujo de datos y ayuda a los analistas que participan en la determinación de los requerimientos del sistema, su contenido también se emplea durante el diseño del proyecto. Identifica los procesos donde se emplean los datos y los sitios donde se necesita el acceso inmediato a la información, se desarrolla durante el análisis de flujo de datos y auxilia a los analistas que participan en la determinación de los requerimientos del sistema, su contenido también se emplea durante el diseño. En un diccionario de datos se encuentra la lista de todos los elementos que forman parte del flujo de datos de todo el sistema. Los elementos mas importantes son flujos de datos, almacenes de datos y procesos. El diccionario de datos guarda los detalles y descripción de todos estos elementos.

Estructuras de datos
Las estructuras de datos son descritas por lo general usando notación algebraica. La notación algebraica usa los siguientes símbolos: 1. Un signo de igual (=) significa “está compuesto de”. 2. Un signo de más (+) significa “y”. 3. Las llaves { } indican elementos repetidos, también llamados grupos repetidos o tablas. Puede haber uno o varios elementos repetidos dentro del grupo. El grupo repetido puede tener condiciones, tales como una cantidad fija de repeticiones o límites, superior e inferior para la cantidad de repeticiones. 4. Los corchetes [ ] representan una situación disyuntiva. Puede estar presente un elemento u otro, pero no ambos. Los elementos listados entre corchetes son mutuamente excluyentes, y se separan mediante barras ( | ). 5. Los paréntesis ( ) representan un elemento opcional. Los elementos opcionales pueden ser dejados en blanco en las pantallas de captura, y pueden contener espacios o ceros para los campos numéricos en las estructuras de archivo. 6. La “@” (o una definición subrayada) identifica la llave para un almacén de datos. 7. Una frase entre asteriscos es un comentario (* *). EJEMPLO: Nombre = Título + Primer-nombre + Apellido-paterno + Apellido-materno Título = [ Sr | Sra | Dr | Ing] Primer-nombre = {caracter} Apellido-paterno = {caracter} Apellido-materno = {caracter} caracter = [A-Z|a-z| |’] a DEFINICIONES Una definición de un dato se introduce mediante el símbolo “=”; en este contexto el “=” se lee como “está definido por”, o “está compuesto de”, o “significa”. Para definir un dato completamente, la definición debe incluir: • El significado del dato en el contexto de la aplicación. Esto se documenta en forma de comentario. • La composición del dato, si es que está compuesto de otros elementos significativos. • Los valores que el dato puede tomar, si se trata de un dato elemental que ya no puede ser descompuesto.

Datos elementales
Son aquellos para los cuales no hay una descomposición significativa. Por ejemplo, puede ser que no se requiera descomponer el nombre de una persona en primer-nombre, apellido-materno y apellido-paterno; esto depende del contexto del sistema que se esté modelando. Cuando se han identificado los datos elementales, deben ser introducidos en el DD y proveer una breve descripción que describa el significado del dato. En el caso de que el dato tenga un nombre significativo, se puede omitir la descripción, sin embargo, es importante especificar las unidades de medida que el dato puede tomar. Ejemplo: Peso = * peso del paciente al ingresar al hospital * • unidad: kilo, rango:2–150 * Altura = * unidad: cm, rango: 100–200 * Sexo = * valores : [F|M] * APGR Ingeniería de Software I Análisis Estructurado 24 DATOS OPCIONALES Un dato opcional es aquel que puede o no estar presente como componente de un dato compuesto. Ejemplo: Dirección = calle + número + (ciudad) + (país) + (código-postal) SELECCIÓN Indica que un elemento consiste de exactamente una opción de un conjunto de alternativas. Ejemplos: Sexo = [ Femenino | Masculino ] Tipo-de-cliente = [ Gubernamental | Académico | Industria | Otros ] ITERACIÓN Se usa para indicar ocurrencias repetidas de un componente en un elemento compuesto. Ejemplo: Orden-de compra = nombre-cliente + dirección-de-envío + {artículo} significa que una orden de compra siempre debe contener un nombre de cliente, una dirección de envío y cero o más ocurrencias de un artículo. Ejemplo: Se pueden especificar límites superiores e inferiores a las iteraciones. Orden-de compra = nombre-cliente + dirección-de-envío + 1{artículo}10 significa que una orden de compra siempre debe contener un nombre de cliente, una dirección de envío y de 1 a 10 artículos. APGR Ingeniería de Software I Análisis Estructurado 25 Ejemplos de iteraciones con límites: a = 1{b} a = {b}10 a = 1{b}10 a = {b}