FACULTAD DE
A NÁL I SI SIS S Y DISEÑO DISEÑO DE SI SISTEMA STEMA S Sesión 7 – An ális is d e Sis tem as: DSD, LS , DD Ing . A les s io Sib il le Vill ao rd u ñ a 1
ANÁLISIS ESTRUCTURADO - herramientas a utilizar Diagrama
de Flujo de Datos (DFD)
Diagrama
de Estructura de Datos
(DSD) Especificaciones Diccionario
Lógicas (LS)
de Datos (DD) 2
ANÁLISIS ESTRUCTURADO - herramientas a utilizar Diagrama
de Flujo de Datos (DFD)
Diagrama
de Estructura de Datos
(DSD) Especificaciones Diccionario
Lógicas (LS)
de Datos (DD) 2
B ib li o g r af ía SENN, James A. Análisis y Diseño de Sistemas de Información. Segunda edición. México. Editorial McGraw-Hill Interamericana. Interamericana. (T 58.6 S39 1992) - cap. 4
1.
KENDALL, Julie E. y Kenneth E. KENDALL. Análisis y Diseño de Sistemas. Sexta Edición. (T 58.6 K41 2005) - cap. 9 y 18 2.
KENDALL, Julie E. y Kenneth E. KENDALL. Análisis y Diseño de Sistemas. Tercera Edición. (T 58.6 K41 1997) - cap. 9 y 18
3.
CISNEROS Arata, Víctor. Víctor. Sistemas e Información. Volumen 1, Material para Estudio - Uso Interno PUCP (T 58.6 C55) – cap. 3
4.
DE MARCO, MARC O, Tom. Tom. Structured Analysis and System Specification. Editorial Prentice-Hall, Inc. (T 57.6 D54) – cap. 2 al 8 5.
WEINBERG, Victor. Structured Analysis. Editorial Prentice-Hall, Inc. (QA 76.6 W42) – cap. 2 al 5 6.
GANE, Chris y Trish SARSON. Análisis Estructurado de Sistemas. Buenos Bueno s Aires. Ateneo. (QA 3 76.6 G22) 7.
“Si cometes una equivocación, no es
culpa de tus padres ni de tus profesores, así que no llores por tus errores y aprende de ellos” Bill Gates
4
Diagrama
de Flujo de Datos (DFD)
Diagrama
de Estructura de Datos (DSD)
Especificaciones Diccionario
Lógicas (LS)
de Datos (DD) 5
Diagr ama d e Estr uc tur a de Dato s (DSD) •
Las estructuras de datos dependen de la complejidad y de las interrelaciones existentes en los datos almacenados. Si tenemos poca información, podremos ordenarla de manera tal que, para ubicar algún elemento, lo busquemos secuencialmente (uno por uno). Esto es cuando tenemos archivos simples.
•
Si la información que almacenamos es muy grande, entonces debemos crear una especie de índice para poder ubicar los elementos. Por ejemplo, una biblioteca ordenará sus libros por título, por autor y por materia, para efectos de búsquedas. El equivalente computacional son los archivos indexados. 6
Diagr ama d e Estr uc tur a de Dato s (DSD) •
Cada vez más, vamos a tener necesidad de realizar las búsquedas de maneras más complejas o por diferentes criterios de búsqueda (diferentes índices)... Esto puede ocasionar que la información sea redundante y ocupe mayor espacio. Inclusive, el costo de mantener y acceder a esa información se puede elevar sensiblemente en función al volumen de información que manejemos, y convertirse en un factor crítico para el éxito de la organización.
•
Para solucionar estos inconvenientes, surge el concepto de la Base de Datos (computacional) , concepto que ha evolucionado desde los años setenta, cuando aparece como una alternativa de solución a los problemas de administración de grandes cantidades de información.
7
Diagr ama d e Estr uc tur a de Dato s (DSD) El concepto de Base de Datos está orientado fundamentalmente al aspecto computacional de una solución, ya que se basa en procesos automatizados. • Podemos identificar las siguientes ventajas al utilizar una Base de Datos: • Nos da la posibilidad de buscar la información de diferentes formas • Minimiza la redundancia o duplicación de los datos • Minimiza el costo de tener la información repetida •
8
Diagr ama d e Estr uc tur a de Dato s (DSD) •
y... ¿qué es una base de datos?
•
Podemos definir base de datos como “reservorio de información que provee a los usuarios de los datos que necesitan para realizar su trabajo diario y para tomar decisiones”. También podemos definirla como “colección de datos usados por muchas aplicaciones dentro de una organización y que cuenta con redundancia controlada”.
•
Como se aprecia, no existe una única definición acerca del término Base de Datos, podemos encontrar muchas definiciones en función del uso o del nivel tecnológico que utilicemos. 9
Diagr ama d e Estr uc tur a de Dato s (DSD) ¿Y cual es la relación entre la estructura de una base de datos y las necesidades de información de la empresa?... La relación es que las necesidades de información de la empresa definen la estructura de la base de datos , ya que esta última debe de servir para cubrir precisamente dichas necesidades de información. • Gane & Sarson mencionan: “Los flujos de datos (DFD) muestran las estructuras de datos en movimimiento, mientras que los almacenamientos de información (DSD) muestran las •
mismas estructuras en reposo”.
•
Nuevamente, el analista juega aquí un papel muy importante para definir en forma apropiada los requerimientos de información que serán estructurados luego en el diseño de la base de datos. 10
Diagr ama d e Estr uc tur a de Dato s (DSD) •
¿Y entonces, qué es un DSD?
•
El DSD es una herramienta gráfica, usada por el analista para definir y describir los requerimientos de estructura de datos lógica del usuario . Esta es la herramienta que se utilizará tanto para hacer establecer los requerimientos de información junto al usuario, como para comunicárselos al diseñador de la base de datos física.
11
Diagr ama d e Estr uc tur a de Dato s (DSD) •
El análisis estructurado nos permite los siguientes elementos para realizar los diagramas de estructura de datos:
•
ENTIDAD: clase general acerca de la cual está almacenada la información. Ejemplo: “Alumnos” es una entidad que almacena
la información referente a los alumnos de la universidad. •
REGISTRO: Es un conjunto específico de elementos de una clase general. Por ejemplo, la información asociada a determinado alumno.
•
ATRIBUTO: es una propiedad del registro o de la entidad. Por ejemplo, la fecha de nacimiento del alumno. 12
Diagr ama d e Estr uc tur a de Dato s (DSD) •
Los atributos pueden ser, además, de dos tipos especiales:
•
ATRIBUTO LLAVE: es un atributo usado para realizar la búsqueda de un registro específico dentro de una entidad. En el caso de “Alumnos”, el atributo llave es el código del alumno.
•
ATRIBUTO PUNTERO: es un atributo que se usa para ubicar información en un registro específico de otra entidad. Un atributo puntero en una entidad debe ser un atributo llave en la otra entidad.
13
Diagr ama d e Estr uc tur a de Dato s (DSD) •
Ejemplo de DSD:
ALUMNOS CODIGO-ALUMNO NOMBRE-ALUMNO UNIDAD-ACADEM-ALUMNO ESPECIALIDAD-ALUMNO ESCALA-PAGOS-ALUMNO CLAVE-CURSO(s)
CURSOS CLAVE-CURSO NOMBRE-CURSO CREDITOS-CURSO
14
Diagr ama d e Estr uc tur a de Dato s (DSD) •
Supongamos que luego de reuniones adicionales con los usuarios se ha determinado la necesidad de acceder al detalle de la unidad académica a la cual pertenece el alumno: ALUMNOS CURSOS
CODIGO-ALUMNO NOMBRE-ALUMNO
CLAVE-CURSO
ESPECIALIDAD-ALUMNO ESCALA-PAGOS-ALUMNO
NOMBRE-CURSO CREDITOS-CURSO
CLAVE-CURSO(s) COD-UD-ACADEM-ALUMNO
UNIDAD ACADEMICA COD-UD-ACADEM-ALUMNO NOMBRE-UNIDAD-ACADEM 15
Gu ía p ara l a c r eac ión d e u n DSD •
•
• • •
Reunirse con los usuarios a fin de recoger información acerca de sus requerimientos de información y sus objetivos (a partir del DFD). Desarrollar un DSD preliminar en base a la información recogida de los usuarios Preparar una lista de preguntas que el sistema debe responder en base al DSD propuesto (consultas). Discutir el cuestionario con los usuarios para asignar pesos a las consultas a realizar el sistema. Analizar y consolidar los resultados de la discusión con los usuarios.
16
Gu ía p ara l a c r eac ión d e u n DSD •
•
• •
Revisar y, de ser necesario, modificar el DSD inicialmente propuesto a la luz de la información obtenida de las discusiones con los usuarios. Validar con los usuarios que el DSD modificado cumpla con los requerimientos que ellos definieron. Estimar tiempos, espacio y costo relacionado con la implantación de la base de datos física. Elaborar la especificación de la base de datos lógica para los implantadores de la base de datos física. Debe incluir: lista de consultas que el sistema debe ser capaz de absolver, el DSD desarrollado, definición lógica de los datos que deben poder absolver las consultas, requerimientos de volúmenes de información, requerimientos de seguridad y prioridad, y las restricciones de recursos físicos y tiempo. 17
Normalización •
•
•
Se refiere a la propiedad de una entidad referida al agrupamiento de los elementos de datos en los registros de la estructura. Se dice que una estructura es poco normalizada cuando los registros tienen muchos atributos repetidos, mientras que se dice que una estructura es normalizada (en cierto grado) cuando no existe duplicación de datos en la estructura. De acuerdo a su grado de normalización, una estructura de datos puede cumplir con la primera forma normal (eliminación de grupos de atributos repetidos), con la segunda forma normal (los atributos no llave deben depender de la llave primaria), o con la tercera forma normal (eliminar atributos no llave que son dependientes de otros atributos no llave). 18
Diagrama
de Flujo de Datos (DFD)
Diagrama
de Estructura de Datos
(DSD) Especificaciones
Diccionario
Lógicas (LS)
de Datos (DD) 19
Especifica cion es Lógicas (LS o EL ) Con el DFD, especificamos el flujo de datos del sistema en estudio, también definimos cuáles son las distintas funciones que conforman dicho sistema, pero no precisamos qué es lo que hay dentro de cada función que reconocemos como primitiva. • Es importante que dentro de las especificaciones de nuestro sistema, incluyamos el detalle de TODAS las especificaciones lógicas, que expresen cómo se realizan las funciones primitivas. • Sin embargo, para funciones primitivas que no necesiten mayor •
interpretación como “verificar fecha”, se puede omitir el incluir
un detalle a nivel de especificación lógica. A pesar de esto, es recomendable no abusar de estas excepciones. 20
Especifica cion es Lógicas (LS o EL ) Muchas veces, los requerimientos detallados de cada función son escritos en forma de narrativa, con lo cual podemos tener problemas. Por ejemplo, malas interpretaciones, detalles incompletos, y sobre todo, dificultad en el mantenimiento. • El análisis estructurado nos ofrece tres herramientas alternativas para realizar las especificaciones lógicas de manera ordenada: •
Inglés (o idioma) estructurado Tablas de decisión Árboles de Decisión
21
Esp ecificacio nes L ógic as (LS o EL): Idio m a estructurado También conocido como seudocódigo o lenguaje para diseño de programas. Originalmente se usó solamente inglés, pero actualmente puede trabajarse en cualquier idioma. • Se basa en tres estructuras lógicas: la declaración imperativa, la decisión y la repetición. • Declaración imperativa: procesos que se ejecutan siempre sin mediar condición alguna. Deben tener como características : •
Declaraciones concisas, evitando declaraciones largas y vagas Deben contener un verbo que describa la función El objeto de la declaración debe establecerse claramente Todos los nombres deben documentarse en el DD Minimizar el uso de adjetivos, verbos o adverbios que expresen relatividad 22
Esp ecificacio nes L ógic as (LS o EL): Idio m a estructurado •
Ejemplo de EL con declaraciones imperativas: GRABAR_LOG mover CURRENT_DATE a FECHA_LOG mover USER_ID a USUARIO_LOG mover RECORD_AUX a REG_OLD_LOG mover RECORD_MASTER a REG_LOG grabar REGISTRO_LOG FIN_GRABAR_LOG
23
Esp ecificacio nes L ógic as (LS o EL): Idio m a estructurado •
Decisión: al igual que la programación estructurada, se usan construcciones del tipo IF-THEN-ELSE (SI-ENTONCES-EN CASO CONTRARIO) y CASE (EN CASO). Dependiendo de la complejidad de la decisión a tomar, usaremos una u otra construcción. Ejemplo: RESULTADO_CURSO If 11=< NOTA_CURSO <= 20 then RESULTADO = “APROBADO”
else RESULTADO = “DESAPROBADO”
END_RESULTADO 24
Esp ecificacio nes L ógic as (LS o EL): Idio m a estructurado •
Ejemplo de Decisión usando CASE: CALCULA_CUOTA_SEGURO case EDAD-ASEGURADO <= 20 CUOTA = 15 case EDAD-ASEGURADO > 20 y EDAD-ASEGURADO <= 40 CUOTA = 35 case EDAD-ASEGURADO > 40 y EDAD-ASEGURADO <= 60 CUOTA = 68 case EDAD-ASEGURADO > 60 CUOTA = 120 END_ CALCULA_CUOTA_SEGURO 25
Esp ecificacio nes L ógic as (LS o EL): Idio m a estructurado Repeticiones: especifican las condiciones por las cuales un grupo de instrucciones se repetirán, y las condiciones por las cuales finalizarán las repeticiones. Se usan las estructuras DO-WHILE (hacer mientras) y REPEAT-UNTIL (repetir hasta). • La diferencia radica en el momento en el cual se verifica la condición de finalización: en DO-WHILE, la verificación se hace antes de ejecutar el conjunto de instrucciones, mientras que en REPEATUNTIL la verificación se hace después de ejecutar el conjunto de instrucciones. •
26
Esp ecificacio nes L ógic as (LS o EL): Idio m a estructurado •
Ejemplo de Repeticiones: CONT = 1 DO-WHILE CONT <=10 escribir ‘LINEA’ , CONT
CONT = CONT + 1 END DO-WHILE CONT = 1 REPEAT escribir ‘LINEA’ , CONT
CONT = CONT + 1 UNTIL CONT <= 10 27
Esp ecificacio nes Lógicas (LS o EL): Tablas de Decisión Las Tablas de Decisión son herramientas en las cuales se identifican las diversas condiciones a considerar en un problema y las acciones resultantes para la combinación de dichas condiciones. • Estas tablas son muy útiles cuando estamos tratando con muchas condiciones y posibles acciones. • En particular, la tabla de decisión es una herramienta alternativa al seudocódigo o idioma estructurado, de mucha utilidad cuando en el seudocódigo tenemos muchos niveles de IF anidados o CASE. •
28
Esp ecificacio nes Lógicas (LS o EL): Tablas de Decisión •
Ejemplo de Tablas de Decisión: Pago por consumo
29
Esp ecificacio nes L ógic as (LS o EL): Árb oles d e Decisión El Árbol de Decisión es una herramienta que representa simbólicamente los caminos de decisión de una Tabla de Decisión, con la ventaja de que su naturaleza gráfica ofrece un mayor grado de entendimiento. • El árbol de decisión grafica las condiciones en formas de ramas y nodos, mientras que las acciones resultantes vienen a ser el extremo final de las ramas de último nivel. •
30
Esp ecificacio nes L ógic as (LS o EL): Árb oles d e Decisión 20%
Directivo
Tipo
Empleado
Menos de 5 años
Tiempo
Obrero
Tipo
Empleado Obrero
Mas de 10 años
Directivo
Tipo
10% 30%
Directivo
Entre 5 y 10 años
15%
25% 20% 40%
Empleado Obrero
35% 30% 31
32
Diagrama
de Flujo de Datos (DFD)
Diagrama
de Estructura de Datos
(DSD) Especificaciones
Diccionario
Lógicas (LS)
de Datos (DD) 33
Dicc ion ario de Datos (DD) •
El DD es la herramienta en la cual se guarda la información acerca de los elementos del sistema. También podemos conceptualizarlo como un conjunto de procedimientos utilizados para construir y mantener un “almacén de datos”.
El DD provee el detalle y significado de los términos usados en el sistema, sin los cuales la especificación no está completa. Es el punto culminante para poder hablar sobre una especificación bien hecha. • El DD referencia información acerca de cuatro elementos: Datos elementales del flujo de datos Flujo de datos Archivos Procesos •
34
Dicc ion ario de Datos (DD) El DD debe tener una correlación estrecha con el DFD: debe existir una ficha (o entrada, o definición) en el DD por cada Flujo de datos, por cada Archivo y por cada Proceso (o función primitiva) que aparece en el DFD. • Los DD deben observar las siguientes características: Definiciones ordenadas por nombre No deben existir redundancias Deben ser de simple actualización Se debe mantener una misma convención para la escritura de las definiciones. •
35
Diccion ario de Da tos (DD): o pe rado re s relacionales •
Notación de los operadores relacionales:
· · · · · · ·
= está compuesto de, o es equivalente a + y () opcional (puede estar presente o ausente) {} iteración o colección de [] seleccionar una de varias alternativas ** comentario @ identificador (atributo llave) para un almacén (también se identifica el atributo llave subrayándolo) | separa opciones alternativas en la construcción 36
Diccion ario de Da tos (DD): o pe rado re s relacionales •
Ejemplos de los operadores relacionales: nombre = título de cortesía + nombre + (segundo nombre) + apellido título de cortesía = [Sr. | Srta. | Sra. | Dr. | Prof.] nombre = {carácter válido} segundo nombre = {carácter válido} apellido = {carácter válido} carácter válido = [ A-Z | a- z | ‘ | | - ] Archivo_cursos = {clave_curso + nombre_curso + num_cred} 37
Diccion ario de Da tos (DD): o pe rado re s relacionales •
Ejemplos de los operadores relacionales: domicilio del cliente = domicilio de envío + (domicilio de facturación)
solicitud = nombre del cliente + domicilio de envío + 1{artículo}10 sexo = [Femenino | Masculino]
tipo de cliente = [Gobierno | Industria | Universidad | Otro]
38