Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Unidad 2 Poo
Unidad 2 Poo
Identificación de las necesidades: El analista primero define los problemas y objetivos en el sistema.
Éstos forman la base para determinar qué debe lograr el sistema. Las cuestiones referentes a los
posibles problemas que se podrían presentar son la situación actual y los objetivos planteados son la
situación deseada.
Ejemplos de preguntas que podrían aplicarse para poder identificar las necesidades:
Planteamiento del problema: Contiene los requerimientos, lo que se debe lograr, junto con las
posibles soluciones y las restricciones que limitan el desarrollo del sistema. Los requerimientos
pueden incluir seguridad, capacidad de uso, requerimientos gubernamentales, etc.
Esta es una herramienta que proporciona un panorama como una red de procesos funcionales,
lo cual genera una conexión como una red de datos. El diagrama de flujo de datos tiene los siguientes
sinónimos:
Carta de burbujas
DFD
Diagrama de burbujas
Modelo de Procesos
Diagrama de flujo de trabajo
Modelo de función
Se utilizaron por primera vez en la ingeniería de software para el estudio del diseño de
sistemas. Hasta hoy día los DFD continúan siendo utilizados por los ingenieros de software que
trabajan en la implantación de modelos de los requerimientos del usuario para un futuro desarrollo de
software.
Los DFD no sólo se pueden utilizar para modelar sistemas de proceso de información, sino
también como manera de modelar organizaciones enteras, es decir, se lo puede utilizar también como
herramienta para la planeación estratégica y de negocios.
Los DFD representan a su vez una notación, para modelar sistemas de tiempo real (es decir,
flujos de control y procesos de control). Generalmente no se ocupa sólo de los sistemas dirigidos a
los negocios, sino que también a una variedad de sistemas científicos y de ingeniería.
Estructura de un DFD
Proceso: Sinónimos comunes son burbuja, función o transformación. El proceso muestra una parte
del sistema que transforma los datos de entradas en salidas. Según el gráfico descrito, algunos
analistas prefieren usar óvalo o un rectángulo con esquinas redondeadas, y otros prefieren usar un
rectángulo. Las diferencias entre estas tres formas son básicamente estéticas, aunque es importante
usar la misma forma de manera consistente para representar todos los procesos del sistema.
El proceso se nombra o describe con una sola palabra, frase u oración sencilla. Por medio del
nombre se describe lo que hace. Es importante recalcar que un buen nombre de proceso, generalmente
consiste en una frase verbo-objeto tal como GENERAR ENTRADA u OBTENER IMPUESTO.
En algunas ocasiones describe quién o qué está efectuando.
Flujo: Representado por una flecha, se usa para describir el movimiento o paquete de información
desde una parte del sistema a otra, los mismos representan datos en movimiento.
Estos datos pueden consistir en: bits, caracteres, mensajes y los diversos otros tipos de
información como lo que la computadora puede operar.
Los flujos por lo general se nombran, y el nombre representa el paquete de datos que se mueve
a lo largo del flujo.
Los datos del flujo podrían dirigirse hacia otros componentes, como lo son: a un almacén o a
un terminador y en caso de que el diagrama tratase de un modelado de Sistema en Tiempo real,
entonces el flujo podría estar dirigiéndose hacia otro proceso.
a) Flujo de diálogo o doble cabeza: indica empaquetado de datos de dos extremos (pregunta
y respuesta), haciendo uso de un solo flujo. En el caso de flujo de diálogo, ambos extremos del flujo
deben nombrarse.
b) Flujo Divergente: es cuando un solo flujo puede dividirse en otros varios flujos. El flujo
divergente, significa que se están mandando duplicados de paquetes de datos a diferentes partes del
sistema, o se lo puede utilizar también para representar la división de un conjunto de datos
individuales, donde cada uno de los éstos paquetes se está enviando a diferentes partes del sistema.
c) Flujo convergente: varios paquetes de datos se unen para formar un solo agregado de
datos. Provienen los paquetes de datos de diversos orígenes y se agrupan para ir a un solo destino.
Almacén: Se utiliza para representar una colección de datos en reposo, gráficamente se tiene como
dos líneas paralelas, o una caja con un cuadro demarcado a la izquierda. La forma de escribir el
nombre de los almacenes, es el plural del nombre de los flujos que se utilizan para presentar a los
datos que entran y salen de él, y por lo general se escribe todo en mayúscula.
Según sea el sentido que tenga el flujo hacia o desde el almacén, el mismo podría tener los
siguientes significados:
Un aspecto que se debe de tener en cuenta es que los flujos transportan datos que sólo el
almacén es capaz de guardar, es por esto que un flujo conectado a un almacén CLIENTES, sólo puede
transportar información relacionada a los clientes, y cuyos campos de valores se van a tener en cuenta
en una posible tabla de la base de datos, pues cada almacén representa a una tabla en la BD.
Terminador: Se lo representa con un rectángulo. Son entidades externas con las cuales el sistema se
comunica. Este podría consistir en una persona, grupo de personas, una organización externa, un
determinado departamento de la empresa, también podría ser la representación de un sistema externo
al que se está modelando, y desde donde se querría capturar datos.
En ocasiones, es el propio usuario quien representaría a un terminador, pues tendría la
necesidad de suministrar al sistema determinados datos, de tal modo a que sean transformados en
información, esa información representa un conjunto de datos asociados visibles en el monitor del
computador, o de modo impreso, en papel que se obtiene de la impresora. Cuando el usuario se
considera parte del sistema, ayuda a identificar los terminadores relevantes, es por ello, que el
departamento de contabilidad y el departamento de finanzas son terminadores con los cuales se
comunica el sistema.
Se debe escoger nombres fáciles de recordar y que vayan en relación directa con el sistema,
tanto para los procesos, flujos, almacenes y terminadores.
Se debe enumerar los procesos.
El DFD se debe rehacer las veces que sea conveniente de tal modo a que refleje exactamente
el funcionamiento del sistema que será plasmado en un proyecto de software.
La representación de los datos que se transportan de un lugar a otro por medio de los flujos
deberían de ser consistentes, es por ello que se debería de evitar procesos o flujos sin etiquetar,
burbujas que tienen entradas, pero no salidas (sumideros infinitos), o burbujas que tienen
salidas sin tener entradas (generadores espontáneos).
Diagrama de contexto: También llamado DFD de primer nivel, consta sólo de una burbuja, el cual
representa al sistema como un todo; los flujos de datos representan a la interfaz entre el sistema y los
terminadores externos.
Diagrama cero (o nivel 1): Representa a las funciones de más alto nivel, cada proceso a partir de
éste primer nivel deben estar enumerados para que puedan ser referenciados en la subdivisión de
niveles.
Diagrama por niveles: Representan a la subdivisión de los procesos del diagrama cero, es así que la
burbuja 2 del diagrama 0, se lo podría dividir dependiendo de su complejidad, en 2.1, 2.2, 2.3, y así
sucesivamente.
Cuando surja la necesidad de volver a subdividir el nivel 2, debido a que el sistema es muy
complejo, entonces podríamos tener un tercer nivel: 2.2.1, 2.2.2…
Si un proceso 2.2 tiene un nombre de “CALCULAR IMPUESTO DE VENTA”, entonces al
diagrama que surge de la división del éste proceso, se lo debe llamar como: “Proceso o Figura 2.2:
CALCULAR IMPUESTO DE VENTA”.
Ejemplo de un DFD. Contexto: Sistema de gestión bibliotecario
De
éste diagrama, es preciso descomponer el proceso 2, para poder presentar las operaciones que
implican la gestión de devoluciones, además se crea un nuevo almacén en el proceso. Las flechas
reciben y envían datos a los terminadores.
En el DD se registran:
Símbolo Significado
= Se interpreta / se compone de:
+ Concatena datos
() Representa datos optativos
{} Cantidad, se usa para indicar que un dato requiere de un número o cantidad (ej.
número de artículos)
[] Alternativas de datos, de las cuales debe escogerse una
** Delimita comentarios - *Esto sería un comentario*
@ Identifica un campo clave (key)
| Separa las alternativas (símbolo de OR)
Ejemplo de DD:
nombre cliente = nombre + (segundo nombre) + apellido
peso paciente = nombre paciente + edad + peso
sexo = *valores [M | F]*
domicilio del cliente = [domicilio particular + domicilio laboral] +
(domicilio opcional)
pedido cliente = nombre del cliente + dirección + {articulo}
Con respecto a las alternativas, las opciones que se tengan se encierran entre corchete, y se
separan las alternativas con una barra vertical. Ejemplo:
Otro elemento adicional que se tiene dentro de Diccionario de Datos es el alias, pero no es
muy utilizado, porque cuando se trata de modelar proyectos grandes podría atraer confusión. Es así
que cuando se tiene por ejemplo diversos grupos de usuarios en diferentes dependencias o
ubicaciones, se desea utilizar diferentes nombres para referirse a lo mismo, por tanto podríamos
utilizar el vocablo de comprador para referirnos a cliente, y en el Diccionario de Datos, lo podríamos
representar de la siguiente manera:
El Diccionario de Datos, así como el Diccionario que se conoce, debe estar ordenado
alfabéticamente en la documentación del modelado del sistema.
En ésta presentación del Diccionario de Datos, aparecen los almacenes, como se verá, los
mismos por lo general se escriben en mayúscula y en plural. Sólo en la representación de almacenes
se utiliza el símbolo @ para indicar cuál es el campo clave (key).
Notemos como en el caso de Sanción (la cual no es almacén), no se usa @ en el código de
devolución.
Especificación funcional del proceso
Lenguaje estructurado
Pre/post condiciones
Tablas de decisiones
Diagramas de flujo
Diagrama de Nassi/Shneiderman
La selección de una de las herramientas debe ser siempre y cuando satisfaga los siguientes
requerimientos:
1. La especificación de proceso debe expresarse de una manera que pueda ser interpretada
tanto por el usuario como por el analista de sistema. Si el usuario no llega a comprender lo descrito,
difícilmente podrían llegar a un acuerdo.
2. El proceso debe especificarse de una forma que pueda ser comunicada a un amplio público.
Se entiende que el Analista es quién habitualmente escribe la especificación de proceso. Por lo general
se tiene un público bastante heterogéneo de usuarios, administradores, auditores, entre otros, que se
encargará de leer e interpretar.
Lenguaje estructurado: Generalmente en inglés, pero se puede usar igualmente el lenguaje local
preferico. Se trata de una estructura de pseudocódigo, pero más flexible y fácil de ser interpretada por
un usuario no informático.
También se lo conoce con nombres como PDL (Program Design Languaje) y PSL (Problem
Specification Language).
Tiene como propósito buscar un balance entre la precisión del lenguaje formal de
programación y la informalidad o legibilidad del lenguaje cotidiano.
Los verbos que podrían escogerse de entre un grupo pequeño de verbos, son:
Entre las formas de plantear el Lenguaje Estructurado en español, por ejemplo hay:
total-diario = 0
HACER MIENTRAS haya más pedidos en PEDIDOS con fecha-de-pedido = hoy
LEER el el siguiente PEDIDO en PEDIDOS con fecha-de-pedido = hoy
MOSTRAR a Contabilidad número de pedido, nombre-del-cliente y
cantidad-total, total-diario = total-diario + cantidad total
FIN HACER
o bien
c) Caso (Case)
HACER CASO
CASO edad-cliente < 13
fijar cuota a cuota-menores
CASO edad-cliente >= 13 y edad-cliente < 20
fijar cuota a cuota-adolescentes
CASO edad-cliente >=20 y edad-cliente < 65
fijar cuota a cuota-adultos
OTRO
fijar cuota a cuota-tercera-edad
FIN CASO
Pre/post condiciones: Las pre/post condiciones son una manera práctica de describir la función que
debe realizar cada proceso, utilizando sólo parte de la estructura de un algoritmo o procedimiento.
Precondición 1
Ocurre DATOS-VENTA con TIPO-ITEM que corresponde con CATEGORIA-ITEM en
CATEGORIAS-IMPUESTO
Postcondición 1
IMPUESTO-SOBRE-VENTAse hace igual a MONTO-VENTA * IMPUESTO
Precondición 2
Ocurre DATOS-VENTA con TIPO-ITEM que no concuerda con CATEGORIA-ITEM en
CATEGORIAS-IMPUESTO
Postcondición 2
Se genera MENSAJE-ERROR
Las Pre/Post condiciones constan de dos partes, la primera trata de las condiciones y acciones
que deberían de ejecutarse cuando se cumple la condición que se desea obtener (o sea una operación
o transacción exitosa), y la segunda parte trata de las condiciones y acciones que pudieran arrojar un
determinado error, o se despliega un mensaje de que lo que se busca no está disponible. En la
descripción de la especificación, los flujos se representan con los nombres en minúscula, mientras
que los procesos se representan en mayúscula y en plural. Es la misma forma de identificación que la
del Lenguaje Estructurado.
Tablas de decisión: Existen situaciones donde ni el lenguaje estructurado ni las pre/post condiciones
son adecuadas para escribir especificaciones de proceso. Esto ocurre sobre todo cuando el proceso
debe de producir alguna salida o realizar alguna acción basada en decisiones complejas.
Se utiliza cuando se tenga que analizar varios valores de entrada de manera simultánea, ya
que expresándolo con los dos métodos anteriores se obtendría un material muy extenso y complejo.
1 2 3 4 5 6 7 8
Edad >=20 S S S S N N N N
Sexo M M F F M M F F
Peso >=100 S N S N S N S N
Medicamente 1 X X X
Medicamento 2 X X
Medicamento 3 X X X
Sin medicamento X X
Para éste caso propuesto de especificación de proceso, se requiere evaluar datos booleanos,
que en una tabla es más representativa. En el ejemplo, S y N indican sí o no, siendo valores booleanos
TRUE y FALSE respectivamente.
Cuando el analista entrega la tabla al diseñador/programador, esto genera una libertad en
cuanto a la elección de términos o estrategias de formas de ser implantados. A las tablas de decisiones,
se los conoce también como una herramienta de modelado de sistemas sin especificación de
procedimiento, ya que por medio de la tabla no se específica ningún algoritmo de procedimiento
específico para realizar las acciones que se requieran.
Gráficas y diagramas: Si con las herramientas anteriormente mencionadas no se puede expresar una
especificación de proceso, entonces, se podría utilizar una gráfica o diagrama. Lo más común es que
el usuario mismo ya traiga consigo el gráfico que quisiera que el sistema lo realice. Ejemplos de
gráficos serían reportes mensuales, censos, tablas de encuestas, estadísticas de clientela y productos,
etc.
Lenguaje narrativo: Es la descripción más coloquial posible – sin reglas, restricciones o formatos,
lo que permite ser fácilmente interpretada, pero también extensa. Sin embargo, no es una herramienta
recomendable para escribir especificaciones de proceso, por los siguientes motivos:
El DER resalta las relaciones entre almacenes de datos en el DFD que de otra forma se
hubieran visto sólo en la especificación de proceso. Gráficamente, se lo representa en forma de
rectángulos, el cual corresponde a un almacén de datos en un DFD, y puede verse que hay relaciones
(conexiones) que normalmente no se aprecian en un DFD.
Esto se debe a que el DFD representa a las funciones que el sistema efectúa, no así a los datos
que deben almacenarse.
Se compone de:
Tipos de objetos
Relaciones
Indicadores asociativos de tipo de objeto
Indicadores de supertipo/subtipo
El tipo de objeto está representado por un rectángulo, y tiene un nombre único con el que se
diferencia uno de otro, cada uno de ellos tiene un importante papel dentro del sistema que se
construye.
Los datos que debe almacenar cada tipo de objeto deben ser únicos, si se tiene un tipo de
objeto Cliente, y dentro de él se almacenan dos nombres de clientes iguales que se refieren a la misma
persona, entonces el objeto tipo de cliente, no cumple con su razón de ser, la cual es almacenar datos
sin duplicarse.
Cada tipo de objeto se declara, porque sin su existencia el sistema no podría operar, o no
podría dar los resultados que se está esperando. Cada uno debe de contener uno o más datos referente
al tiempo de dato que se describe, si definimos un tipo de objeto de nombre CLIENTE, entonces
debemos pensar en que debemos de registrar el nombre, domicilio, límite de crédito, número de
teléfono, etc. Los tipos de objetos pueden representar algo tangible como personas, ciudades u
objetos; o algo intangible, tales como horarios, planes, estrategias, etc.
La relación
representa un conjunto de conexiones, es una asociación entre cero o más ocurrencias de un objeto,
y cero o más ocurrencias del otro. Es así que la figura indica que un CLIENTE, puede comprar entre
1, 2, 3... a n artículos. También se puede tener más de una relación entre dos objetos, es así que vemos
las relaciones entre PACIENTE y un MÉDICO, cada vez que el médico trata al paciente, le cobra con
un recibo.
Otra situación que se podría presentar, es que se podría tener múltiples relaciones entre
múltiples objetos.
Tipos de relaciones
Las relaciones entre los tipos de objetos, son multidireccionales, lo cual significa que puede
leerse en cualquier dirección, y por defecto no muestran la cardinalidad, es decir no muestra el número
de objetos que participan en la relación.
Como notación alternativa, se pudiera mostrar tanto la cardinalidad como la ordinalidad, de
los números de elementos que se asocian uno objeto con otro.
En éste tipo de relación, un lado del objeto se relaciona con varios elementos del otro objeto
con el cual interactúa, es así que un cliente puede tener varios artículos, pero un artículo, corresponde
a un solo cliente.
En la relación uno a uno (1 → 1), solamente un elemento de un objeto se asocia con otro
objeto individual. Es así que podríamos tener una relación de uno a uno entre un objeto Ciudadano y
otro objeto de nombre Pasaporte: Un Ciudadano sólo puede tener un Pasaporte, y el Pasaporte sólo
puede corresponder a un Ciudadano. Las formas de representar, se observan en las siguientes figuras:
La tabla intermedia podría ser llamada, concatenando los nombres de las dos tablas que lo
genera o dando un nombre significativo que describa a la relación.
Al conjunto de relaciones entre varias tablas, donde se podría aplicar uno, dos o los tres tipos
de relaciones, es lo que se conoce como Diagrama Entidad Relación, DER.
Diagrama de transición de Estados (DTE)
Luego los estados se unen con flechas, las cuales indican el orden en que se puede cambiar de
estado.
Estos ejemplos demuestran a que el sistema está esperando a que algo ocurra. Cada estado
representa la acción de una determinada tarea y es dependiente del tiempo, por el hecho de que
depende del estado anterior.
La figura muestra que el sistema puede ir del estado 1 al estado 2, también estando en el estado
2, puede ir al estado 3 o regresar al 1, sin embargo de acuerdo con el DTE, el sistema no puede ir
directamente del estado 1 al 3.
El estado inicial por lo general es el que se dibuja en la parte superior del diagrama, aunque
esto no es obligatorio. Asimismo, el estado final suele ser el que se dibuja en la parte inferior, pero
tampoco es obligatorio.
Lo que identifica a un estado como estado final, es la ausencia de una determinada flecha que
salga de él (por lo tanto, la figura del ejemplo no nos muestra un estado final). En el DTE se puede
tener un solo estado inicial; sin embargo, puede tener múltiples estados finales. Los diversos estados
finales son excluyentes, lo cual significa que sólo uno de ellos puede ocurrir durante la ejecución del
sistema.
Los cambios de estados ocurren de manera instantánea, es decir, no se requiere un tiempo
considerable como para que el sistema cambie de un estado a otro, los cambios tardan microsegundos,
se debe asegurar que suceda lo suficientemente rápido como para que el sistema opere.
Condiciones y acciones
Las condiciones son las que causan el cambio de estado, y las acciones son las decisiones que
el sistema toma cuando cambia de estado.
Bibliografía