Documente Academic
Documente Profesional
Documente Cultură
DFD’s
• Muestran en forma visual sólo el flujo de
datos entre los distintos procesos, entidades
externas y almacenes que conforman un
sistema.
• Cuando los analistas de sistemas indagan
sobre los requerimientos de información de
los usuarios, deben ser capaces de concebir
la manera en que los datos fluyen a través del
sistema u organización, los procesos que
sufren estos datos y sus tipos de salidas.
1
Elementos de un Diagrama
Flujo Datos (DFD)
Entidad
Persona, grupo de personas o unidad
ALUMNOS
Externa de negocio que entrega yo recibe
información.
Conjunto de actividades de negocio
1
que explican que se hace y como se
MATRICULA Proceso llevan a cabo.
+ Señala el flujo de datos de una entidad
externa a un proceso y viceversa, de
Flujo un proceso a otro, y de un proceso a
Datos
un almacén de datos y viceversa.
Almacén Lugar físico donde se almacenan los
ALUMNOS
Datos datos procesados o desde donde se
recuperan para apoyar un proceso.
Análisis y Diseño Sistemas
Entidad Externa
Proceso
Almacén de Datos
Flujo Datos
Análisis y Diseño Sistemas
2
Entidad Externa
• Representa personas, organizaciones, o sistemas que
no pertenecen al sistema.
• En el caso de que las entidades externas se
comunicasen entre sí, esto no se contemplaría en el
diagrama, por estar fuera del ámbito de nuestro sistema
• Puede aparecer en los distintos niveles de DFD para
mejorar su comprensión, aunque normalmente sólo
aparecerá en el diagrama de contexto.
• Pueden aparecer varias veces en un mismo diagrama,
para evitar entrecruzamientos de líneas.
• Suministra información acerca de la conexión del
sistema con el mundo exterior.
Procesos
• Cuando un flujo de datos entra en un proceso
sufre una transformación. Un proceso no es
origen ni final de los datos, sólo lugar de
transformación de ellos.
• Un proceso puede trasformar un dato en
varios.
• Es necesario un proceso entre una Entidad
Externa y un Almacén de datos.
• Un proceso puede representarse señalando
una localización. La localización expresa la
unidad o área dentro de la organización
donde se realiza el proceso.
Análisis y Diseño Sistemas
3
Almacén de Datos
• Representa la información en reposo
• No puede crear, destruir ni transformar datos
• No puede estar comunicado directamente con otro
almacén o Entidad externa
• El flujo de datos (Entrada y Salida) no lleva nombre
cuando incide sobre su contenido completo
• No debe estar referido al entorno físico, y por tanto,
no se diferencian los ficheros convencionales de las
bases de datos
• No se representa la clave de acceso a este almacén
sino sólo la operación que se realiza (lectura,
escritura, actualización)
Flujo de Datos
• El concepto de flujo de datos es similar al concepto de
tubería a través del cual fluye información de
estructura conocida.
• Los datos no pueden ser creados ni destruidos por un
flujo de datos.
• Sirve para conectar el resto de los componentes de un
DFD.
• No es un activador de procesos.
• Cuando un proceso almacena datos, la flecha de flujo
de datos se indica en la dirección del almacén de
datos y a la inversa si es el proceso el que lee datos
en el almacén.
4
DFD : Descomposición por Niveles
• El sistema deberá contener:
- Un Diagrama de contexto (primer nivel)
- Varios DFD en niveles intermedios
- Varios DFD en el último nivel de detalle
• En cualquier momento nos puede aparecer
un proceso que no necesite descomposición
y es lo que denominaremos Proceso
Primitivo (PP). En ellos, se detallará la
entrada y salida que tenga, además de la
descripción asociada que explique lo que
realiza.
DFD : Construcción
• Representar el diagrama de contexto.
• Representar el DFD de primer nivel, indicando los
distintos subsistemas funcionales en que se
descompone nuestro sistema.
• Descomponer cada uno de los procesos que
aparecen en el DFD de primer nivel, hasta llegar a un
nivel suficiente de detalle.
• Se recomienda el utilizar cuatro niveles de
descomposición de diagramas.
Nivel 0: Diagrama de contexto
Nivel 1: Subsistemas
Nivel 2: Funciones de cada subsistema
Nivel 3: Subfunciones asociadas
Nivel 4: Procesos necesarios para el tratamiento de cada subfunción
5
DIAGRAMA DE CONTEXTO
Diagrama elaborado
PROCESO MATRICULA con Process Analyst
(Nivel 0) de PowerDesigner 6.0
Identificación
Estadísticas Matricula
Requerimiento Matricula
ALUMNOS 1
Horarios COMISION
MATRICULA MATRICULA
Documentos Matricula
+
Alumnos Matriculados
Constancia Matricula
OERA
2 ALUMNOS
[Identificación] VERIFICAR
ALUMNOS
IDENTIFICACION Datos Identificación
Datos Alumno
[Requerimiento Matricula]
[Constancia Matricula]
Datos Matricula 3 Datos Cursos
REGISTRO
5 Datos Matricula CURSOS
EMITIR SECCION
CONSTANCIA + CURSOS
MATRICULA CURSOS
MATRICULADOS
Datos Estadística
Datos Programación Datos Cursos Sección
Datos Matricula
[Estadísticas Matricula]
6
[Datos Alumno]
3.1 VERIFICAR IDENTIFICACION
ALUMNOS REGISTRAR
[Requerimiento Matricula] CURSOS
SECCION
[Datos Cursos]
[Datos Estadística]
3.2
VERIFICAR HORARIOS
CRUCES
[Datos Matricula]
[Datos Programación]
CURSOS [Datos Matricula]
MATRICULADOS
USED AT: AUTHOR: Luis Zuloaga Rotta DATE: 16/06/2001 WORKING READER DATE CONTEXT:
.
PROJECT: SISTEMA CADEMICO REV: 16/06/2001 DRAFT
CURSO A&DS
RECOMMENDED
TOP
NOTES: 1 2 3 4 5 6 7 8 9 10 PUBLICATION
Identificación
Documentos
Matricula
1
ALUMNO
Requerimiento $0 0
Matricula
Alumnos
3
Matriculados
Constancia
Matricula MATRICULA OERA
Estadisticas
Matricula
2
COMISION Horarios
MATRICULA
Diagrama Contexto
elaborado con
BPWin 2.5 de Platinum
NODE: TITLE: NUMBER:
A-0 MATRICULA
1
7
USED AT: AUTHOR: Luis Zuloaga Rotta DATE: 16/06/2001 WORKING READER DATE CONTEXT:
. PROJECT: SISTEMA CADEMICO REV: 16/06/2001 DRAFT
Curso A&DS
RECOMMENDED
NOTES: 1 2 3 4 5 6 7 8 9 10 PUBLICATION A-0
1
Documentos Matricula
ALUMNO
1 DOCUMENTOS
Documentos
$0 1 Verificados
VERIFICAR 2 ALUMNOS
DOCUMENTOS Datos
Identificación
Datos Matricula
6 CURSOS
$0 2 MATRICULADOS
Identificación VERIFICAR
IDENTIFICACIÓN
3
Datos Alumno Datos Cursos
5 CURSOS OERA
Constancia $0 4 Datos
Matricula EMITIR Matricula
CONSTANCIA
MATRICULA Datos Curso
$0 3
Requerimiento Sección
REGISTRO
Matricula
CURSOS
SECCIÓN
Datos Alumnos
$0 5
Programación Matriculados
ELABORAR
2 Datos ESTADISTICAS
COMISION $0 6 Estadística
Horarios
MATRICULA CARGAR 3 HORARIOS
HORARIOS
Estadisticas
Matricula
A0 MATRICULA
2
USED AT: AUTHOR: Luis Zuloaga Rotta DATE: 16/06/2001 WORKING READER DATE CONTEXT:
.
PROJECT: SISTEMA CADEMICO REV: 16/06/2001 DRAFT
Curso A&DS
RECOMMENDED
NOTES: 1 2 3 4 5 6 7 8 9 10 PUBLICATION A0
1
ALUMNO
Requerimiento Datos
Matricula Cursos
$0 31 5 CURSOS
Datos
REGISTRAR
Alumno CURSO
SECCION Datos
Datos Cursos Curso
Cruce Sección
Datos Datos
Cursos Estadística
Registrados 3 HORARIOS
$0 32 Datos
Datos Programación
Matricula VERIFICAR
CRUCES
Datos
Matricula CURSOS
6
MATRICULADOS
8
USED AT: AUTHOR: Luis Zuloaga Rotta DATE: 16/06/2001 WORKING READER DATE CONTEXT:
.
PROJECT: SISTEMA CADEMICO REV: 16/06/2001 DRAFT
Curso A&DS
RECOMMENDED
NOTES: 1 2 3 4 5 6 7 8 9 10 PUBLICATION A3
Datos $0 323
Matricula
PROCESAR
MATRICULA
Datos Datos
Matricula Estadística
CURSOS
6
MATRICULADOS
3 HORARIOS
Datos Datos Datos
Cursos $0 322 Cursos Cursos
Cruce Cruce Registrados
MOSTRAR
CRUCES
Datos
$0 321
Cursos
Registrados
COMPARAR
HORARIOS Datos
Programación
9
Símbolos usados en la notaci
notació
ón del DD
Asigne un nombre significativo a cada item de datos
básico o compuesto.
= significa ‘es definido como', o ‘esta hecho de'
+ significa ‘ y '
{} significa cero o mas de cualquier cosa que este
dentro de las llaves, i.e. repetición
n{ }m significa entre n y m (inclusive)
[||] significa que uno de los atributos entre las barras
esta presente.
() significa que el item entre parentesis es opcional
"" incluye literales (valor a utilizar)
** incluye comentarios – define el significado de
datos, informalmente.
Análisis y Diseño Sistemas
10
Un nuevo Ejemplo : PlanCurso
• PlanCurso = FechaDePlan + NroVersion + Titulo
+ {DetalleSemanal}
• DetalleSemanal = NroSemana + FechaInicio
+ [SemanaInstruccion|SemanaNoInstruccion]
• SemanaNoInstruccion = [“administrativa"| "introduccion"|
“aprendizaje centrado estudiante"| ...]
• SemanaInstruccion = 2{DetalleExposicion}2
+ (ListaSeminarios) + (TrabajoPractico)
• DetalleExposicion = *Descripcion del contenido Exposicion*
• FechaInicio = Fecha
FechaDePlan = Fecha
Fecha = *fecha en formato "dd-mmm-yy"*
• etc, etc.
ESPECIFICACIÓN DE
PROCESOS
11
Métodos utilizados para
Especificar Procesos
• Todos los procesos en un DFD deben ser
descritos.
• Los métodos usados para describir procesos
de alto nivel, difieren de aquellos utilizados
para describir procesos detallados.
• Los primeros son descritos usualmente
utilizando lenguaje natural, y los otros
utilizando un lenguaje estructurado.
12
Técnicas del Análisis
Estructurado
• Inglés Estructurado
• Inglés Extendido
• Tablas de Decisión
• Árbol de Decisión
13
Inglés Estructurado
Inglés Extendido
IF nivel de crédito excedido
THEN (limite crédito excedido)
IF cliente tiene mala historia de pago
THEN rechazar crédito
ELSE (cliente tiene buena historia de pago)
IF compra es mayor a 200 $
THEN rechazar crédito
ELSE (compra es menor a 200 $)
pasar a administrador
ELSE (nivel de crédito no excedido)
permitir crédito
14
TABLA DE DECISIÓN
Acciones Condiciones
Permitir crédito X X X X
Rechazar crédito X X X
Pasar a administrador X
Rechazar
Árbol de Decisión crédito
Compra
arriba 200$ Pasar
Buena
administrador
historia
pago
Compra
Limite
abajo 200$
Crédito
Excedido Mala Rechazar
historia crédito
pago
Limite
Crédito no Permitir
Excedido crédito
15
Inglés Estructurado
• Sentencias imperativas: usualmente consiste
de un verbo imperativo seguido por el
contenido de uno o mas almacenamiento s de
datos sobre los cuales el verbo opera.
• Por ejemplo :
ADD Salario_Persona to Total_Salario
• Pueden utilizarse operadores Booleanos y
aritméticos, en las sentencias imperativas.
Operadores Aritméticos y
Booleanos
• Multiply . Divide
• Add . Subtract
• Exponential
• Or . Not
• Greater than . Less than
• Less than or equal to . Greater than or equal to
• Equals . Not equal to
Análisis y Diseño Sistemas
16
Lógica del Inglés Estructurado
• BEGIN ……. END
• CASE
• REPEAT……. UNTIL
• WHILE ………DO
• IF ……. ..........THEN ……….ELSE
• DO
• FOR
Orden
Preliminar
= Nro_Orden
+ {Nro_Parte
+ Cantidad }
Orden
Finalizada
Finalizar
Precio_Parte Orden
= Nro_Orden
= Nro_Parte
+ {Nro_Parte
+ Precio_Unitario
+ Cantidad
+ Precio_Unitario
+ Valor_Parte}
Descripción del Proceso : + Valor_Orden
Finalizar Orden
Análisis y Diseño Sistemas
17
Descripción del proceso :
Registro de Ventas
BEGIN
Receive ‘ REPORTE VENTA ’
Get VENTAS record for Nro PARTE in ‘REPORTE VENTA’
CANT_TOTAL = CANT_TOTAL+ CANT_VENDIDA
VALOR_VTA = CANT_VENDIDA * PRECIO_UNIT
VALOR_TOT = VALOR_TOT + VALOR_VTA
Write VENTAS record.
Send ‘ Resumen Ventas ’
END.
18
Descripción de proceso :
Sumando Descuentos
Emisión de Autorización de Descuentos = CLIENTE
Descuentos + IMPORTE DEL DESCUENTO
VENTAS
= Nro_Parte
+ Cantidad_Total
+ Valor_Total
Análisis y Diseño Sistemas
Envío de
Recepción Cuentas de Correo Cuentas
= Cliente = Cliente
+ Valor_Venta + Valor_de_Venta
Emisión VENTAS
Datos de la Factura
de = Nro_Parte
= Cliente
Facturas + Cantidad_Total
+ Nro_Parte
+ Importe_de_Factura + Valor_Total
Análisis y Diseño Sistemas
19
BEGIN
Receive ‘ REPORTE VENTA ’
Get VENTAS record for NRO_PARTE in ‘REPORTE VENTA’
CANT_TOTAL = CANT_TOTAL + CANT_VENDIDA
VALOR_VENTA = CANT_VENDIDA * PRECIO_UNIT
VALOR_TOTAL = VALOR_TOTAL + VALOR_VENTA
Write VENTAS record.
Send ‘RESUMEN VENTAS ’
IF VALOR_VENTA > 500.00
THEN
BEGIN
CANT_DESCUENTO = SALE-VALUE * 0.02
Send ‘DESCUENTO AUTORIZADO’
END
END.
Análisis y Diseño Sistemas
Estructura de Decisión
a) Selección de dos maneras
Condición
Grupo A Grupo B
sentencias sentencias
IF condition
THEN
BEGIN
Group A sentences
END
ELSE
BEGIN
Group B sentences
END
Análisis y Diseño Sistemas
20
b) Selección Múltiple
Valor
Test
Case (name) of
A : BEGIN
Group A sentences
END Aqui ’name’ es una variable
y ‘A...Z’ son valores que
Z : BEGIN
pueden ser tomados por ‘name’.
Group Z sentences
END
Análisis y Diseño Sistemas
BEGIN
Receive ‘Reporte Ventas ’
Get Ventas record for Nro_Parte in ‘ Reporte Ventas ’
Cant_Total = Cant_Total + Cant_Vendida
Cant_Vendida = Cant_Vendida * Precio_Unit
Valor_TOTAL = Valor_TOTAL + Valor_Venta.
Write Ventas record.
Send ‘ Resumen Ventas ’
CASE TYPE OF
‘Cuenta ’:
BEGIN
Send ‘ Cuenta Correo ’
IF Valor_Venta = 500.00
THEN
BEGIN
Cant_Descuento = Valor_Vta* 0.02
send ‘ Descuento Autorizado ’
END.
END
21
‘Contado’.’Cheque’:
BEGIN
Send ‘Recibir’.
END
‘Credito’:
BEGIN
Send ‘Recibir’.
END
‘Credito’:
BEGIN
Cant_Factura = Valor_Vta + Valor_Vta* 0.01
send ‘Datos Factura’
END
END
END.
Estructuras de Repetición
a) Usando WHILE
Condición
Grupo A
sentencias
WHILE condition DO
BEGIN
GROUP A sentences
END
22
b) Usando REPEAT
GRUPO A
sentencias
Condición
REPEAT
BEGIN
GROUP A sentences
END
UNTIL condition
23
Descripción del proceso :
Completando Ordenes
+ PRECIO
= Nro PARTE
PRECIOS
24
Get ‘Orden Preliminar’
Valor_Orden = 0.
REPEAT
BEGIN
Get next ‘Linea Orden’
Get Precio record for Nro_Parte in ‘Linea Orden’
Valor_Parte = Cant_Neces * Precio
Valor_Orden = Valor_Orden + Valor_Parte
IF Valor_Orden < Limite_Orden
THEN create Linea Orden in ‘Orden Finalizada’
END
UNTIL (Valor_Orden > Limite_Orden) or
(there are no more Lineas Orden)
Send ‘ Orden Finalizada ’
Descripción de proceso:
Completar Ordenes Limitadas
= Nro PARTE
+ PRECIO
25