'DWD)ORZ 3URFHVV (QWLW\ 'DWD)ORZ )LOH 'DWD6WRUH 'DWD(OHPHQW 'RPDLQ 'RPDLQ 6RXUFH6LQN ([WHUQDO(QWLW\ 'DWD6WUXFWXUH 0LVFHOODQHRXV (QWLW\5HODWLRQVKLS 0RGXOH )XQFWLRQ $VVRFLDWLYH(QWLW\ $WWULEXWLYH(QWLW\ 5HODWLRQVKLS 'DWD(OHPHQW &RQWURO&RXSOH &OXVWHU (OPRGHORGH5HG 6WUXFWXUH&KDUW )XQFWLRQDO 'HFRPSRVLWLRQ /LEUDU\0RGXOH 3URFHVV 0DFUR /LEUDU\0DFUR 'DWD2QO\0RGXOH 'DWD&RXSOH *HQHULF&RXSOH ,QIRUPDWLRQ&OXVWHU 'DWD,QWHUIDFH7DEOH5RZ &RQWURO,QWHUIDFH7DEOH5RZ *HQHULF,QWHUIDFH7DEOH5RZ 3URJUDP 6HWUDWDGHXQPRGHORGHHQWLGDGUHODFLyQGRQGHWRGDVODVUHODFLRQHVVRQHVWULFWDPHQWHELQDULDVUHODFLRQHVGHO WLSRPXFKRVDXQR (QHVWHPRGHORVHGHILQHQWLSRVGHUHJLVWURVOyJLFRV HQOXJDUGHFRQMXQWRVGHHQWLGDGHV\IRUPDWRVGHUHJLVWUR HQOXJDUGHHVTXHPDGHUHODFLRQHV/RVQRPEUHVGHFRPSRQHQWHVHQHOUHJLVWURVHGHQRPLQDQFDPSRV (QOXJDUGH³UHODFLRQHVELQDULDVPXFKRVDXQR´KDEODPRVGHOLQNV HQHOPRGHORGHUHG 5HSUHVHQWDFLyQGH'LDJUDPDVGH(QWLGDG5HODFLyQHQHO0RGHORGH5HG (QFDVRGHTXHXQDHQWLGDGHVWpGHWHUPLQDGDXQtYRFDPHQWHVRORDWUDYpVGHXQDUHODFLyQFRQRWUDHQWLGDG GHEHPRVDJUHJDURWURFDPSRFRUUHVSRQGLHQWHDXQQ~PHURGHVHULHGHOFRQMXQWRGHHQWLGDGHVTXHLGHQWLILFD XQtYRFDPHQWHDFDGDHQWLGDGHQODLPSOHPHQWDFLyQSRGUtDVHUODORFDOL]DFLyQItVLFDGHOUHJLVWURTXH UHSUHVHQWHDODHQWLGDG &,&/26'(/352<(&72<RXUGRQSDJ JUiILFRV (QFXHVWD $QiOLVLVGHVLVWHPDV 'LVHxR ,PSODQWDFLyQ *HQHUDFLyQGHSUXHEDV *DUDQWtDGHFD OLGDG 'HVFULSFLyQGHOSURFHGLPLHQWR &RQYHUVLyQGHEDVHVGHGDWRV ,QVWDODFLyQ &,&/26'(/352<(&72*DQH ')' /LVWDGRGHHOHPHQWRVGHGDWRVTXHVHDOPDFHQDUiQHQHOVLVWHPD 0RGHOROyJLFR 'HILQLUODEDVHGHGDWRV\KDFHUODVORPiVVLPSOHVFRPRVHDSRVLEOHQ RUPDOL]DFLyQ 3DUWLFLRQDUHOPRGHORGHSURFHVRVHQXQLGDGHVGHSURFHGLPLHQWR +(55$0,(17$6'(02'(/$'2 'LDJUDPDVGHIOXMRGHGDWRV5HSUHVHQWDODVIXQFLRQHVGHOVLVWHPD(VIiFLOPHQWH FRPSUHQVLEOHSRUHOXVXDULR &RPSRQHQWHVSDJ 3URFHVRWUDQVIRUP D(HQ6 )OXMRPRYLPLHQWRFRQGLUHFFLyQGHLQIRUPDFLyQ\PDWHULDOHVItVLFRV $OPDFpQ\WHUPLQDGRU 'LFFLRQDULRGHGDWRV (VSHFLILFDFLyQGHSURFHVR 'LDJUDPDGHHQWLGDG UHODFLyQ 'LDJUDPDVGHWUDQVLFLyQGHHVWDGRV %DODQFHRGHPRGHORV ',6(f2'((6758&7 85$3DJH 'LVHxRWRSGRZQ3HUPLWHGHVFRPSRQHUXQVLVWHPDFRPSOHMRHQYDULRVVXEVLVWHPDVPiV SHTXHxRV (MHPSOR Pago Salarios Reg. empleado Fin de Reg. empleado Reg. Pago x hora Pago Neto x hora empleado Calcular Pago x hora Leer registro Emp Calcular Haberes x hora Calcular Pago Mensual Calcular Descue. Imprimir Cheque Calcular Haberes mensual 02'8/2 &DMDQHJUDTXHKDFHSHURQRFRPRORKDFH&ROHFFLyQGHVHQWHQFLDVGHSURJUDPDVF RQ FXDWURDWULEXWRVEiVLFRV ,QSXWRXWSXW )XQFLyQ 0HFDQLVPR 'DWRLQWHUQR Nombre del módulo Calcular Descue. 02'8/22587,1$ 02'8/235('(),1,'2 \DH[LVWHHQHOVLVWHPDR ELEOLRWHFDGHODDSOLFDFLyQ &21(;,21(6(175( 02'8/26 Las flechas que aparecen entre módulos representan llamadas a subrutinas, indicando mediante la su dirección cuál módulo llama a cuál. COMUNICACIÓN ENTRE MODULOS Get customer details Customer Name Customer Account Number Account Number OK Find customer name Flag (señal para indicar que la operación se ejecutó satisfactoriamente) data couple (envio/retorno de dato) Finalmente, el diagrama de estructura debe ser acompañado por una descripción de todo lo que aparece en él, de manera de que el programador encardado de desarrollar el código cuente con toda la documentación necesaria. $&23/$0,(172 3DJH Una de las maneras de medir la calidad del diseño, usando el diagrama de estructura, es acoplamiento, el grado de interdependencia entre dos módulos. Nuestro objetivo es minimizar el acoplamiento, es decir hacer que los módulos sena tan independientes como sea posible. Bajo acoplamiento entre módulos significa que el sistema está bien particionado. PRINCIPIOS DEL ACOPLAMIENTO: (extraído de Yourdon y Constantine) Crear conexiones: 1. estrechas (narrow). Que entre dos módulos que se comunican, la información se transmita en ambos sentidos una sola vez. 2. Directas. Utilizar nombres de conexiones que sean comprensibles directamente por el observador. Por ejemplo CUST-DETAILS, requiere consultar primero su definición. 3. Locales. Adjuntar a la conexión toda la información requerida para su comprensión, por ejemplo mediante listas de parámetros. Evitar especificaciones globales de información. 4. Claras, obvias. Utilizar criterios intuitivos que faciliten tareas de mantenimiento posteriores, evitando definiciones intrincadas (Ej. Nº telefónico con el cod. de área al final). 5. Flexibles. Evitar conexiones rígidas que dificulten tareas de mantenimiento que generalmente requieren cambios en los enlaces entre módulos y en la información que se transmite de uno a otro. CLASES DE ACOPLAMIENTO 1. Acoplamiento normal: Dos módulos, A y B, tiene acoplamiento normal si x x x A llama a B B retorna a A La información se transmite mediante: x parámetros incluidos en la llamada (acoplamiento de datos), x estructuras (stamp coupling) x controles. Un módulo controla la lógica interna de otro módulo mediante controles (flags) Fuera del rango de buena modularidad figuran: 2. Acoplamiento común (o global). Ambos módulos refieren al mismo área de datos 3. Acoplamiento de contenido: Cuando un módulo se ramifica hacia otro, refiere o cambia datos dentro de otro, o bien altera sentencias en otro módulo. &2+(6,213DJH Cohesión es el medida de la fuerza de relación funcional de elementos dentro del módulo. (Revisar apunte) Elemento significa una instrucción , un grupo de instrucciones, una definición de datos o bien otro módulo. Se trata de aumentar el nivel de cohesión de módulos. Por otro lado los elementos de un módulo no deben ser fuertemente cohesivos con los de otros módulos. Tipos de cohesión: 1. Cohesión funcional 2. Cohesión secuencial 3. Cohesión comunicacional Los que hay que evitar: 4. Cohesión procedural 5. Cohesión temporal 6. Cohesión lógica 7. Cohesión coincidental Mejor cohesión determina mejor (menor) acoplamiento, que determina mejores sistemas (fáciles de mantener). )$&725,=$&,21 Factorización es la separación de funciones que se incluyen en la codificación de un módulo en un nuevo módulo. Debe llevarse a cabo por alguna de las siguientes razones: 1. Reducir el tamaño del módulo 2. Aprovechar las ventajas del diseño top-down, facilitando la comprensión y modificación del sistema . 3. Evitar que la misma función la cumplan más de un módulo 4. Separar funciones de cálculos y edición de aquellas de decisión y bifurcación. 5. Aumentar la usabilidad de módulos. 6. Simplificar la implantación. ',9,6,21'('(&,6,21 Una decisión tiene dos partes: la identificación de que acción hacer y la ejecución de la acción. Ej If customer account number is not known Then reject whole customer record Endif Evite la división de decisiones. La parte de ejecución de la decisión debe mantenerse tan cercana como sea posible a la parte de reconocimiento, de manera tal que la información de reconocimiento (ej account number) no tenga que navegar un trecho largo. )250$6'(6,67(0$6 Para determinar la forma que tiene un sistema es necesario identificar los tipos de módulos, dependiente a la dirección del flujo de datos. Estos tipos son: x Afferent: el módulo envía información desde abajo hacia su superior x Efferent: el módulo envía inforamción desde arriba hacia su subordinado x transform: el módulo toma información de su superior, y la transforma en información que retorna al superior x coordinate: el módulo coordina la comunicación de sus subordinados Afferent Efferent Transform Coordinate (67$%/(&(5/26/,0,7(6'(68%6,67(0$63DJH Hay cuatro tipos de implementaciones de sistemas: 1. Implementación manual Tiene 3 ventajas: x No requiere difinición precisa de antemano x Puede responder a estímulos no previstos x Es culturalmente más aceptable. x Desventaja: agotador, sobrecarga de trabajo 2. Implementación Batch vs On-Line Resulta más conveniente contar con un sistema on-line, ya que es interactivo, discreto, no programado (unscheduled), concurrente e inmediato. Los sistemas modernos deben ser enteramente on-line, y solo en casos puntuales se deben programar procesos batch, por ejemplo resúmenes estadísticos que no cambian en días o semanas. 3. Implementación On-line vs Tiempo Real. Los sistemas de tiempo real se diferencian de los sistemas en línea, principalmente en el estímulo que reciben y en la respuesta que generan. En los sistemas de tiempo real, el tiempo de arribo del estímulo al sistema es en sí información. Por otro lado, la respuesta es una función crítica en el tiempo. Ej de aplicaciones de sistemas de tiempo real son: misiles de defensa, monitoreo de radioactividad, ordenamiento del tráfico. 4. Trazar los límites de la implementación. Utilización de paquetes ya existentes Conociendo las estadísticas del sistema, tipos de subsistemas y el hardware sobre el cual se va ha instalar, se puede comenzar a buscar paquetes comerciales que cubran los requisitos del modelo esencial. El paquete debe: x Ser capaz de ejecutarse sobre hardware suficientemente grande y poderoso x Tener suficiente poder y tamaño intrínseco (tablas y archivos) x Ser capaz de soportar el modelo esencial x Tener facilidades de adaptabilidad para compensar la omisión de datos y funciones x Tener facilidades adicionales Las ventajas de contar con un paquete son: x Resulta más económico que un desarrollo propio x Conlleva menos riegos que un desarrollo propio x Puede estar disponible más rápidamente que un desarrollo propio Sin embargo: x Ningún paquete cubre las necesidades exactas del modelo esencial del sistema x El mejor paquete puede no correr en el software/hardware actual x No puede ser modificado como un software propio RESUMEN AUTOR 1) Yourdon/DeMarco 2) Gane&Sarson 3) Yourdon/Constantine Structure Analysis Structure Desing Yourdon El Diccionario de Datos es un listado organizado de todos los datos pertinentes al sistema, con definiciones precisas y rigurosas para que tanto el usuario como el analista tengan un entendimiento común de todas las entradas, salidas, componentes de almacenes y cálculos intermedios. El DICCIONARIO DE DATOS: x describe el significado de los flujos y almacenes que se muestran en los DFD x describe la composición de agregrados de paquetes de datos que se mueven a lo largo de los flujos (Ej. domicilio está formado por: ciudad, estado y c.p.) x los valores que puede tomar un dato, y si es elemental o puede descomponerse más. x Describe los detalles de las relaciones entre almacenes del E-R x Notación del DICCIONARIO DE DATOS: =,+,( ),[ ], { }, @,| (página 214) (ejemplo escaneado de Yourdon). E-R DIAGRAM. RAPID SYSTEM DEVELOPMENT GANE: 77 Recomienda analizar el E-R luego del DFD Qué datos / entidades son relevantes para el sistema? Que relaciones se reconocen entre las entidades? (1:1, 1:Many, Many:Many) Algunos analistas difieren en la identificación de entidades y relaciones. Gane sostiene que es entidad todo aquello que se almacenará en una o más tablas. Por lo tanto SALE es una entidad y no una relación entre CUSTOMER y PRODUCTOS. Cuando se detecta una relación uno a uno, la pregunta es: son ambas entidades realmente distintas o pueden mezclarse?. Si tienen el mismo identificador (clave), como en el caso de PRODUCTOS e INVENTARIO, hay una fuerte tendencia a fundirlas en una sola. Conviene asegurarse de que toda relación1:1 se mantenga así en el futuro, caso contrario se puede incurrir en errores, por ej. Jefe de División, puede darse el caso de que una persona esté a cargo de 2 divisiones en forma temporaria. Supplier K Supplier-ID NAME ADDRESS Product ? K Supplier-ID K Product-ID PRICE DELIVERY-TIME K Product-ID NAME WEIGHT Supplier-ProductOffering Is assigned to Employee Project Is staffed by Puede no haber relación Siempre hay un elemento de la relación ‘‘Un proyecto siempre debe tener como mínimo un empleado’’ Conviene fijar convenciones o criterios para la asignación de nombre a los Data element. Dominios de los data element: ej temperatura: -273° to 5000° Domain name: Data type: Discrete or continuous Hight limit Low limit Other PERSON WEIGHT INTEGER LENGHT:3 CONTINUOUS 500 80 … Claves Simplificación de tablas mediante la normalización (simplificación) (pag 110) Codd Î teoría de conjuntos de matemáticas 1) Un solo valor por celda, o intersección fila/columna Dada una relación R, el atributo Y de R es funcionalmente dependiente del atributo X de R, si y solo si cada valor de X en R tiene asociado un único valor de Y en R. N° Part Destino Stock Tel. Dest. T232 Corriente 467 312-222-9876 s T232 Chaco 319 313-675-9786 T232 Bs As. 147 305-745-0945 H995 Chaco 254 313-675-9786 H995 Corriente 784 312-222-9876 s 2) Nos preguntamos x Cuál es la clave de esta relación? x Si es una llave concatenada, debemos determinar si : x Existe algun otra columna que no es clave que dependa de solo una parte de la clave? x En el ejemplo de 1) tenemos claves concatenadas: N°Part. + Destino x Para determinar el stock, necesitamos conocer N° Part. + Destino x Para determinar el teléfono, necesitamos conocer solo Destino x Decimos que laa tabla no cumple con la segunda forma normal Un atributo Y de R depende funcionalmente en forma completa de un conjunto de atributos X de R, si y solo sí, Y no depende funcionalmente de ningún subconjunto propio de X. A first normal form table is also in second normal form if every non-key column depends on the whole of the key. Para evitar esto hay que dividir la tabla en 2 tablas: Part #, Depot, Stock Depot, Phone 3) A second normal form table is also in third normal form if no non-key column depends on any other non-key column. Por ej. si tenemos otra columna de N° de cajas, esta sería función del stock. Mucho depende de la interpretación que se tenga de los datos. Por ej. Departamento/Edificio puede o no estar en la 3 forma normal, ya que si se muda el departamento a otro edificio está todo bien. La simplificación de datos requiere conocer el negocio o reglas del negocio y los posibles cambios que puedan darse. 4) Un problema con las tablas 3° normal form, aparece cuando una columna que no es key puede tener múltiples valores para un valor de clave dado. (En el ej. siguiente, resulta difícil actualizar, si Pepe toma 3 nuevos cursos). Faculty member Course-taught Degree Pepe Biologia AB Pepe Estadísticas BS Pepe Estadísticas MA Pepe Estadísticas PhD Juan Estadísticas AB Juan Poetry Juan Relativity Î tengo que dividir en 2 - Faculy-member Course-taught - Faculty-member Degree A third normal form table is also in fourth normal form if it does not contain more than one multivalued fact about the entity described by the table. th th 5) A 4 normal form relation is in 5 normal form when its information content cannot be contructed from several smaller relations, not having the same key. FALTA: JAPON: tablas de desición, DFD, sistema actual, etapas del analisis, importancia de cada etapa (corrección de fallas a tiempo) De APUNTES: modelo conceptual canonico, etc MODELO FISICO DE DATOS 02'(/2'((17,'$' 5(/$&,21<285'21&DS Componentes 1) tipos de objetos 2) relaciones 3) indicadores asociativos de tipo de objeto 4) indicadores de supertipo/subtipo Tipos de objeto: es la representación en el sistema de algo material del mundo real (clientes, artículos, empleados). Objeto: es algo material del mundo real, pero también podría ser algo no material: horarios, planes, estandares, mapas. Como descubrir que son los objetos y las relaciones: 1) compresión de la aplicación del usuario 2) entrevista con el usuario 3) cualquier otro tipo de investigación y recolección de información que pueda usar A partir del DFD, del Diccionario de Datos, de alguna lista fruto del relevamiento efectuado se procede a la asignación de datos a tipos de objetos. Durante este proceso pueden surgir nuevas instancias de objetos, relaciones, subtipos y supertipos, etc. El proceso de eliminar objetos incluídos en otros (datos del hijo y datos del padre) es parte de una actividad de refinamiento llamada normalización. NORMALIZACION: producir tipos de objetos, en los que cada instancia consisten en un valor llave primario que identifica a alguna entidad, junto con un conjunto de valores de atributo independientes que describen a la entidad de alguna manera. Eliminar tipos de objetos. Situaciones comunes 1) Tipos de objetos que consisten solo en un identificador 2) Tipos de objetos para los cuales existe una sola instancia 3) Tipos asociativos de objetos flotantes (Por ejemplo: paciente que recibe tratamiento donde el medicamento es igual para todos los pacientes) 4) Relaciones derivadas Extensiones al Diccionario de Datos para los Diagramas E-R Los objetos del DER corresponden con almacenes del DFD Ej CLIENTES = {CLIENTE} CLIENTE = @nombre-del-cliente+domicilio+numero-de-telefono Compras = la asociacion de un cliente y uno o mas articulos @identidad-del-cliente+1{@identidad-del-articulo+cantidad-comprada} El analista rara vez dibuja un DFD perfecto al primer intento; después de pensar sobre el sistema y luego de entrevistas de seguimiento con el usuario, es inevitable que se encuentren errores en el DFD que se está examinando VENTAJAS DE LAS HERRAMIENTAS CASE (PAGE pad. 343) x Facilitar la edición y modificación de modelos graficos de sistemas x Preservar la consistencia de modelos x Imponer estandares x Monitoreo fácil de proyectos x Mejorar tareas de dirección x Facilitar el control x Soporte de prototipos DESVENTAJAS x Las herramientas son costosas x Favorece al trabajo sobre la computadora alejando al analista del trabajo de campo, interactuando con el usuario mediante lapiz y papel x Mal interpretar la herramienta como solución a todos los problemas ESTADISTICAS (PAGE) 1) Determinar el número promedio de registros por cada almacén de datos 2) Por cada ejecución simple de cada proceso: x Determinar el número de lecturas, actualizaciones, inserciones y eliminaciones por cada clave 3) Determinar la cantidad de ejecuciones de cada proceso por período 4) A partir de los valores obtenidos en 2) y 3) calcular la tasa de lecturas, actualizaciones, inserciones y eliminaciones por cada clave El diseñador de base de datos utilizará estas estadísticas para decidir sobre la clave primaria, conveniencia de mantener el ordenamiento de los datos, introducir datos redundantes para reducir la velocidad de acceso, determinar requerimientos de almacenamiento y necesidades de reorganización de datos. 1409.924 +0.1 16/07 1418.942 22/07/98 1419.853 +0.287 23/07/98