11.07.2015 Views

HISTORIA DE VIDA DE LAS ENTIDADES - Iidia.com.ar

HISTORIA DE VIDA DE LAS ENTIDADES - Iidia.com.ar

HISTORIA DE VIDA DE LAS ENTIDADES - Iidia.com.ar

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>HISTORIA</strong> <strong>DE</strong> <strong>VIDA</strong> <strong>DE</strong> <strong>LAS</strong> ENTIDA<strong>DE</strong>SPalozzo, J., Britos, P., Rossi, B. y G<strong>ar</strong>cía M<strong>ar</strong>tínez, R.Centro de Ingeniería de Softw<strong>ar</strong>e e Ingeniería del Conocimiento. Instituto Tecnológico de Buenos Airesrgm@itba.edu.<strong>ar</strong>1. INTRODUCCIONEl presente <strong>ar</strong>tículo describe la técnica "Historia de vida de las entidades", en adelante llamadaHVE, en donde los efectos de los eventos aplicados sobre las ocurrencias de una entidad, sonconsiderados y modelados usando la notación y estilo de los diagramas de Jackson.La técnica HVE analiza el ciclo de vida de las entidades de un sistema de información; también,en este sentido, investiga qué requisitos de integridad y próximas acciones son relevantes p<strong>ar</strong>a ladefinición de una nueva entidad, la administración de la entidad, y la eliminación de la entidad(insert<strong>ar</strong>, actualiz<strong>ar</strong>, borr<strong>ar</strong>).La técnica HVE es una técnica de modelado más, que dispone el ingeniero de softw<strong>ar</strong>e p<strong>ar</strong>apoder llev<strong>ar</strong> a cabo con éxito la fase de análisis de requisitos del ciclo de vida. HVE estáorientada a model<strong>ar</strong> cómo los eventos internos y externos al sistema afectan a cada entidad delsistema, y además, poder represent<strong>ar</strong> de forma cronológica las posibles sucesiones de eventossobre la misma. Con este objetivo es de esper<strong>ar</strong> que HVE tenga <strong>com</strong>o dominio de entradaelementos tales <strong>com</strong>o: entidades, eventos y operaciones.HVE provee la vista basada en el tiempo del sistema, es decir, la secuencia dinámica. Muestra elprogreso del ciclo de vida de la entidad desde su creación hasta su destrucción. Modela todos losposibles cambios de los valores de los atributos de las entidades durante la vida de la misma, y lasecuencia en que estos cambios toman lug<strong>ar</strong>. Entonces, cada ocurrencia de una entidad tiene unavida propia que sigue un patrón <strong>com</strong>ún a toda ocurrencia de la entidad a la cual pertenece, y elcual puede ser descubierto por el analista gracias a esta técnica.La aplicación de la técnica HVE da <strong>com</strong>o producto un diagrama, que se construye tomando<strong>com</strong>o base la notación de los diagramas estructurados de Jackson. Los diagramas de Jackson sonampliamente utilizados en la programación estructurada de Jackson (JSP) y en la metodología dedes<strong>ar</strong>rollo de sistemas de Jackson (JSD).El principio de la notación estructurada establece que toda actividad de programación se puededescribir usando sólo tres elementos de construcción básicos: secuencia, selección e iteración.Este principio establecido por los dos matemáticos italianos, Bohm y Jacopini [1966], llevó aW<strong>ar</strong>nier [1974] y a Jackson [1975] a las bases de ésta aproximación.A continuación se presenta un diagrama abstracto de Jackson p<strong>ar</strong>a introducir su notación. Luego,cada <strong>com</strong>ponente del mismo será tratado específicamente en función de su rol dentro deldiagrama HVE.Historia de Vida de las Entidades Página: 1


Sub-ArbolComponente TipoSecuenciaComponente TipoSelecciónRaízComponente TipoIteraciónSub-RaízIterador HijoOpción 1oOpción 2oOpción 3o*Caja de AcciónReferencia CódigoSelectores HijosComponente TipoElemental1Figura 1. Nomenclatura de JSP/JSD.2. <strong>DE</strong>SCRIPCION <strong>DE</strong> LA TECNICAComo se menciona anteriormente, la aplicación de la técnica HVE nos brinda <strong>com</strong>o productodiagramas HVE. Entonces, p<strong>ar</strong>a <strong>com</strong>enz<strong>ar</strong> con la descripción de la técnica se focaliz<strong>ar</strong>á nuestraatención; primero, en present<strong>ar</strong> todos los elementos que intervienen o pueden intervenir en undiagrama, luego, en describir <strong>com</strong>o se encuentran interconectados o relacionados los mismos, ypor último, en describir su rol dentro del diagrama tratándose los aspectos sintácticos ysemánticos.Historia de Vida de las Entidades Página: 2


A continuación se encuentran listados todos los elementos <strong>com</strong>ponentes del diagrama HVE:• Entidad.• Evento.♦ Secuencia.♦ Selección.• Selección propiamente dicha.• Selección nula.♦ Iteración.• Vida p<strong>ar</strong>alela.• Punto de escape.• Punto de retorno.• Operación.• Leyenda de operación.• Indicador de estado.• Conector.El diagrama HVE utiliza una estructura p<strong>ar</strong>a organiz<strong>ar</strong> sus elementos de árbol jerárquico, quetiene una sola entidad la cual se ubica en el tope del mismo, o sea, en su raíz. Posee eventos ensus ramas y hojas, y por último, tiene operaciones e indicadores de estados, sólo p<strong>ar</strong>a los eventosque se hayan ubicados en las hojas del mismo.Los eventos podrán represent<strong>ar</strong>se de diversas maneras según su ap<strong>ar</strong>ición cronológica dentro dela historia de vida de la entidad. Estas formas podrán ser: secuencia, selección, e iteración. Acontinuación, se describirán cada uno de los elementos que intervienen dentro del diagramaHVE, y los mismos, serán ejemplificados con un ejemplo simplificado aplicado a una entidadllamada "Cuenta Banc<strong>ar</strong>ia". Dicha entidad contiene toda la información que un banco mantienep<strong>ar</strong>a su gestión sobre una cuenta banc<strong>ar</strong>ia de cualquier cliente. Los eventos que ocurrirán soneventos típicos del negocio banc<strong>ar</strong>io.Luego, cada uno de estos ejemplos se integr<strong>ar</strong>án en uno sólo, que será nuestro primer diagramaHVE simple. Posteriormente, se seguirá con esta metodología, <strong>com</strong>pletando cada vez más dichoejemplo de diagrama a medida que se vayan explicando más elementos de la técnica, hasta lleg<strong>ar</strong>a un diagrama <strong>com</strong>pleto.No siempre es neces<strong>ar</strong>io tener un diagrama <strong>com</strong>pleto, y esto dependerá del nivel de profundidadque se desee alcanz<strong>ar</strong> en el análisis.2.1. ENTIDADUna entidad es algo que interesa en el dominio del problema, o algo de lo cual se desea gu<strong>ar</strong>d<strong>ar</strong> ymantener su información. Una entidad puede ser un objeto físico, o una abstracción conceptual.Por ejemplo, una persona o un proyecto. En un diagrama HVE, su función es inform<strong>ar</strong> cuál es laentidad del sistema que sufrirá los impactos de los eventos del diagrama en el transcurso de suvida, a través de las operaciones asociadas a dichos eventos.Historia de Vida de las Entidades Página: 3


En la figura 2, se muestra el símbolo que se utiliza en el diagrama HVE p<strong>ar</strong>a represent<strong>ar</strong> a laentidad. Sólo debe existir una sola entidad por cada diagrama HVE.CUENTABANCARIAFigura 2. Símbolo del elemento entidad.2.2. EVENTOUn evento es algo que ocurre en el mundo real que causa un cambio en el estado de algunaocurrencia de la entidad. El evento puede ser clasificado en diferentes tipos de acuerdo a suorigen:• Externo: por ejemplo, que un oficial de cuentas cree una nueva cuenta banc<strong>ar</strong>ia p<strong>ar</strong>a unnuevo cliente.• Interno: por ejemplo, el sistema detecta que el monto de una cuenta ha superado undeterminado umbral estadístico, indicando así, que se debe hacer un seguimiento especial adicha cuenta.• Basado en el tiempo: por ejemplo, el sistema automáticamente calcula los intereses ganadosde una cuenta al final del día, y luego se los suma al saldo de la misma.Por lo general el nivel de mayor detalle de un DFD d<strong>ar</strong>á la lista de eventos que se us<strong>ar</strong>án en eldiagrama de HVE. P<strong>ar</strong>a el diagrama HVE no interesa el origen de los eventos, dado que los trataa todos de igual manera. Tampoco existen límites en la cantidad de eventos que pueden existir encada diagrama HVE.Como ya se mencionó anteriormente, en los diagramas HVE existen tres maneras de represent<strong>ar</strong>los distintos eventos que interactúan con la entidad, estas son: secuencia, selección e iteración. Acontinuación se detalla cada una de las mismas.2.3. SECUENCIAEl <strong>com</strong>ponente secuencia se utiliza p<strong>ar</strong>a represent<strong>ar</strong> una secuencia de eventos que sucederá sobreel sistema donde la misma implic<strong>ar</strong>á cambios en los atributos de una o más ocurrencias de unaentidad, debiendo entender la palabra cambio dentro de este contexto, con alcance a algunos o atodos los atributos de la entidad, incluyendo la creación y la destrucción de la ocurrencia misma.En el diagrama de la figura 3, se observa una secuencia de eventos donde el símbolo que seutiliza p<strong>ar</strong>a represent<strong>ar</strong> a un evento dentro de la secuencia, es una caja con el nombre del eventodentro de la misma. La secuencia <strong>com</strong>ienza con el evento que se encuentra más a la izquierda deldiagrama, y debe ser leída de izquierda a derecha. Entonces, la secuencia de ap<strong>ar</strong>ición lógica deeventos es la siguiente:Historia de Vida de las Entidades Página: 4


1) Apertura.2) Vida Cuenta, (aquí es donde ocurren las transacciones con la misma).3) Cierre.Toda entidad tiene un evento constructor (evento que crea la ocurrencia), un evento destructor(evento que elimina la ocurrencia), y posiblemente eventos de vida que suceden entre los dosanteriores.CUENTABANCARIAAperturaVidaCuentaCierreFigura 3. Secuencia de eventos.2.4. SELECCIONExisten dos tipos de <strong>com</strong>ponentes de selección: la selección propiamente dicha y la selecciónnula, a continuación se tratan cada uno de ellos.2.4.1. SELECCION PROPIAMENTE DICHAEl <strong>com</strong>ponente selección propiamente dicha se utiliza p<strong>ar</strong>a represent<strong>ar</strong> una serie de eventos queson opcionales, es decir, uno sólo de la serie podrá ocurrir sin import<strong>ar</strong> el orden en el que seencuentre dentro de la misma.TransacciónDepósitooExtracciónoFigura 4. Construcción de selección de eventos.Historia de Vida de las Entidades Página: 5


En el diagrama de la figura 4, se observa el proceso de selección de eventos. El símbolo que seutiliza en este caso, es una caja con la letra "o" en el ángulo superior derecho de la caja.Entonces, el evento "Transacción", puede producirse por dos eventos alternativos:1) Depósito.2) Extracción.2.4.2. SELECCION NULAEl <strong>com</strong>ponente selección nula se utiliza p<strong>ar</strong>a indic<strong>ar</strong> que en una serie de eventos opcionalesexiste una opción que es nula, la cual señala que en la serie de eventos existe la posibilidad queninguno se produzca. Dado que siempre una selección de eventos se encuentra ubicada en losniveles inferiores de la jer<strong>ar</strong>quía, o sea, por ejemplo que tenga <strong>com</strong>o padre a un elementosecuencial, si ningún evento hijo se produce, la historia de vida de la entidad termin<strong>ar</strong>á en dichoevento padre que debiera suceder. Por tal motivo, existe el evento de selección nula que permiteque su selección no produzca ningún efecto sobre la entidad y permita seguir la secuencia delnivel superior.En la figura 5, se observa el símbolo de selección nula. Más adelante se exhibirá en un ejemplosu utilización en el diagrama HVE.2.5. ITERACIONoFigura 5. Símbolo de selección nula.VidaCuenta* TransacciónEl <strong>com</strong>ponente iteración se utiliza p<strong>ar</strong>a model<strong>ar</strong> la situación de iteración de eventos sobre unaentidad. Tal es el caso del evento Transacción; la cuenta del banco se crea y se cierra una vez,pero las transacciones sobre la misma van desde cero hasta N, donde N es un número <strong>ar</strong>bitr<strong>ar</strong>io.Figura 6. Iteración de eventos.En el diagrama de la figura 6, se muestra el proceso de iteración de eventos. El símbolo que seutiliza p<strong>ar</strong>a represent<strong>ar</strong> una iteración de eventos es una caja con un asterisco en el ánguloHistoria de Vida de las Entidades Página: 6


superior derecho. Como la iteración de cero veces está permitida, en esta construcción existe laposibilidad de que el evento no ocurra, por lo tanto, su efecto será simil<strong>ar</strong> al evento de SelecciónNula.2.6. CONECTORSe utiliza en el diagrama p<strong>ar</strong>a conect<strong>ar</strong> los distintos elementos. Su símbolo es una línea recta oquebrada.Ahora, se procederá a integr<strong>ar</strong> todos los <strong>com</strong>ponentes descriptos hasta el momento p<strong>ar</strong>a obtenernuestro primer diagrama HVE.CUENTABANCARIAAperturaVidaCuentaCierreTransacción *DepósitooExtracciónoFigura 7. Diagrama HVE de la entidad Cuenta Banc<strong>ar</strong>ia.Analizando el diagrama de la figura 7, se observa que dada una entidad Cuenta Banc<strong>ar</strong>ia, elprimer evento que ocurre es el de la Apertura de la cuenta banc<strong>ar</strong>ia, luego siguen los eventosVida Cuenta y Cierre de la cuenta banc<strong>ar</strong>ia, que sólo pueden ocurrir después de que la cuenta fueabierta. De manera simil<strong>ar</strong>, el evento Vida Cuenta puede disp<strong>ar</strong><strong>ar</strong>se cero o más veces después deque la cuenta fue abierta y antes de que la misma sea cerrada, y por último, el evento Cierre de lacuenta banc<strong>ar</strong>ia tendrá que ocurrir después de los dos anteriores.Historia de Vida de las Entidades Página: 7


De la estructura se puede apreci<strong>ar</strong> que el evento Vida Cuenta está des<strong>com</strong>puesto en iteracionesde eventos de Transacción sobre la cuenta banc<strong>ar</strong>ia. Estrictamente, una iteración puede ocurrircero o más veces, por lo que se puede pas<strong>ar</strong> directamente del evento Apertura de la cuentabanc<strong>ar</strong>ia al evento Cierre de la cuenta banc<strong>ar</strong>ia.Finalmente, el evento Transacción sobre la cuenta banc<strong>ar</strong>ia puede d<strong>ar</strong>se a través de uno de lossiguientes eventos: Depósito de dinero o Extracción de dinero. No hay orden de secuencia entreestos dos últimos eventos, dado que pueden ocurrir en cualquier orden.Vale agreg<strong>ar</strong>, que un mismo evento del sistema puede afect<strong>ar</strong> a otras entidades de otrosdiagramas HVE. También, los diferentes elementos de construcción no se mezclan en un mismonivel, por eso es que el evento Vida Cuenta fue creado p<strong>ar</strong>a no mezcl<strong>ar</strong> el mismo evento con elevento Transacción que está en un nivel inferior en la línea jerárquica, y siguiendo unrazonamiento equivalente, lo mismo se aplica con los elementos de construcción del tiposelección.2.7. <strong>VIDA</strong> PARALELALa técnica HVE determina el mapa de correspondencia de los eventos que impactan en la entidadde la manera secuencial en que ap<strong>ar</strong>ecen. Sin emb<strong>ar</strong>go, no siempre todos los eventos se puedenmodel<strong>ar</strong> de manera secuencial dado que en ocasiones la ap<strong>ar</strong>ición de ciertos eventos es aleatoriao concurrente. De manera simil<strong>ar</strong>, cuando estos eventos ocurren, no inciden en la secuenciaprincipal de eventos de la historia de vida. Este tipo de eventos son frecuentemente referidos a laalteración de la referencia de la información de la entidad.VidaCuentaTransacción * Descubierto *Figura 8. Vida p<strong>ar</strong>alela.La estructura que se usa p<strong>ar</strong>a represent<strong>ar</strong> este caso es la vida p<strong>ar</strong>alela, y la misma, es unaconstrucción neces<strong>ar</strong>ia p<strong>ar</strong>a no obscurecer el diagrama tratando de llev<strong>ar</strong> eventos a la formasecuencial cuando no lo son, y así, perder de vista los eventos que definen al negocio. Lanotación p<strong>ar</strong>a mostr<strong>ar</strong> la vida p<strong>ar</strong>alela es una doble línea horizontal. El evento que representa lavida normal se deberá ubic<strong>ar</strong> del lado izquierdo del diagrama, y el evento que es la excepción lodeberá hacer del lado derecho. No hay límites en el número de vidas p<strong>ar</strong>alelas permitidas dentrode un diagrama.El diagrama de la figura 8, muestra que los eventos Transacción y Descubierto pueden ocurrir enel mismo instante.Historia de Vida de las Entidades Página: 8


2.8. PUNTO <strong>DE</strong> ESCAPE Y RETORNOExisten eventos que rompen con el patrón <strong>com</strong>ún de vida de la entidad esperado. Intent<strong>ar</strong>anticip<strong>ar</strong> tales situaciones conlleva a <strong>com</strong>plic<strong>ar</strong> y obscurecer la vida normal de la entidad en eldiagrama HVE. P<strong>ar</strong>a solucion<strong>ar</strong> dicha situación existen los puntos de escape y retorno quepermiten salt<strong>ar</strong> de un evento a otro.Los puntos de escape y retorno son utilizados dentro del diagrama HVE p<strong>ar</strong>a indic<strong>ar</strong> el eventopor el cual se escapa del diagrama, y luego indic<strong>ar</strong> el evento por el cual se retorna al mismo. Sepueden utiliz<strong>ar</strong> tantos puntos de escape y de retorno <strong>com</strong>o sea neces<strong>ar</strong>io. También, si es posiblesalir por cualquier punto del diagrama, se puede trat<strong>ar</strong> en un diagrama ap<strong>ar</strong>te la situación deretorno.En el ejemplo siguiente, se muestra el caso de una cuenta banc<strong>ar</strong>ia de un usu<strong>ar</strong>io que puede sersuspendida momentáneamente por alguna razón, y ser activada nuevamente después de untiempo.Not<strong>ar</strong> que en el ejemplo se está usando la selección nula. La misma es neces<strong>ar</strong>ia p<strong>ar</strong>a obtener undiagrama semánticamente correcto. De no existir dicha selección nula, no sería posible evit<strong>ar</strong> elevento Posible Suspención p<strong>ar</strong>a pas<strong>ar</strong> al evento Cierre, y por el contr<strong>ar</strong>io, de esta forma toda l<strong>ar</strong>ama del evento Posible Suspención es opcional dentro de la vida de la entidad Cuenta Banc<strong>ar</strong>ia.La secuencia de eventos neces<strong>ar</strong>ia p<strong>ar</strong>a pas<strong>ar</strong> del evento Vida Cuenta al evento Cierre es lasiguiente:• Algún evento hijo de Vida Cuenta.• Algún evento hijo de Posible Suspención, en p<strong>ar</strong>ticul<strong>ar</strong> Selección Nula.• Cierre.El punto de escape se simboliza con la letra "E" mayúscula seguida de un número. El número seutiliza <strong>com</strong>o índice p<strong>ar</strong>a diferenci<strong>ar</strong> los distintos puntos de escape. Lo mismo sucede con lospuntos de retorno. La letra que se utiliza es la "R" mayúscula seguida de un número. Se debeabandon<strong>ar</strong> el diagrama por un punto de escape y retorn<strong>ar</strong> al mismo por un punto de retorno quetenga el mismo índice que tenía el punto de escape. Los puntos de escape y retorno se debenubic<strong>ar</strong> sobre el lateral izquierdo de un evento.En el ejemplo de la figura 9, se observa la referencia E1 que indica el punto en donde eldiagrama es dejado, y R1 donde el diagrama es retomado.Historia de Vida de las Entidades Página: 9


CUENTABANCARIAAperturaVidaPosibleR1CuentaSuspensión* * oTransacción DescubiertoSuspendidaoCierreDepósitooExtracciónoSuspenderReaperturaE1Figura 9. Punto de escape y retorno.2.9. OPERACIONHasta aquí se ha diagramado la relación existente entre los eventos y la entidad. También, en losdiagramas HVE se incluye una vista funcional o de las actividades. En este contexto se llaman alas funciones o actividades, operaciones, dado el bajo nivel con que se describen.Específicamente, las operaciones son descriptas en función de las acciones que se ejecutan ap<strong>ar</strong>tir de la ocurrencia de un evento a las distintas entidades (se debe record<strong>ar</strong> que hay unaentidad por diagrama pero un mismo evento puede est<strong>ar</strong> en v<strong>ar</strong>ios diagramas).Las operaciones se pueden clasific<strong>ar</strong> en distintas categorías:• Cre<strong>ar</strong> ocurrencias, definir atributos de llaves, y algunas veces definir otros atributos que noson o pertenecen a una llave.• Unir, cort<strong>ar</strong> o cambi<strong>ar</strong> las relaciones entre dos ocurrencias de distintas entidades.• Definir, reemplaz<strong>ar</strong>, increment<strong>ar</strong> y decrement<strong>ar</strong> atributos que no pertenecen a una llave conla frecuencia que sea neces<strong>ar</strong>ia.• Los atributos de una llave prim<strong>ar</strong>ia no deben ser cambiados al igual que los atributos y lasllaves foráneas que se definen <strong>com</strong>o fijos, pero al menos deben ser definidos una vez cuandose crea la ocurrencia en la entidad.• Destruir las ocurrencias de una entidad y las ocurrencias de las entidades asociadas que estánpermitidas.Historia de Vida de las Entidades Página: 10


CUENTABANCARIAAperturaVidaCuentaR1PosibleSuspensiónCierre24139 10Transacción *Descubierto *oSuspendidao6DepósitooExtracciónoSuspenderReaperturaE15 578Operaciones:1. Cre<strong>ar</strong> CUENTA BANCARIA.2. Definir llave maestra.3. Definir atributos.4. Relacion<strong>ar</strong> CUENTA BANCARIA con CLIENTE.5. Actualiz<strong>ar</strong> saldo.6. Actualiz<strong>ar</strong> descubierto.7. Actualiz<strong>ar</strong> estado cuenta = suspendida.8. Actualiz<strong>ar</strong> estado cuenta = activa.9. Elimin<strong>ar</strong> relación CUENTA BANCARIA con CLIENTE.10. Elimin<strong>ar</strong> CUENTA BANCARIA.Figura 10. Operaciones y leyenda de operaciones.Historia de Vida de las Entidades Página: 11


Las operaciones se ubican en las hojas del árbol y pueden haber v<strong>ar</strong>ias por cada una de ellas. Unamisma operación se puede repetir en otras hojas del árbol. Su símbolo es una caja cuadrada ypequeña con el número de referencia de la operación que realiza. El uso de operaciones es más<strong>com</strong>plejo si se utilizan los indicadores de v<strong>ar</strong>iables de estado.2.10. LEYENDA <strong>DE</strong> OPERACIONLa leyenda de operación es la referencia dentro del diagrama de los índices de las operaciones.En ella se encuentran los nombres de las operaciones.En la figura 10, se muestra un ejemplo del uso de las operaciones y de la leyenda de lasoperaciones.2.11. INDICADOR <strong>DE</strong> ESTADOLos diagramas HVE siguen el efecto que el tiempo le produce a las ocurrencias de las entidades.Esto significa que puede ser posible saber, p<strong>ar</strong>a cada ocurrencia de una entidad, cual fue elúltimo evento que la ha afectado. Esta información es muy importante porque puede ser usadap<strong>ar</strong>a cre<strong>ar</strong> un diseño que no permita que ciertos eventos que afectan a una ocurrencia de laentidad sucedan, si anteriormente, otros eventos dictados por las reglas del negocio no han tenidolug<strong>ar</strong>. Por ejemplo, no se puede sac<strong>ar</strong> dinero de una cuenta banc<strong>ar</strong>ia si esta no fue creadapreviamente.Los indicadores de estado son un mecanismo p<strong>ar</strong>a bloque<strong>ar</strong> la ocurrencia de un evento si la regladel negocio no se cumple. O sea, el evento se va a disp<strong>ar</strong><strong>ar</strong>, pero este mecanismo de bloqueo nova ha permitir que se tomen las acciones normales, y dependiendo del diseño gener<strong>ar</strong>á unaexcepción en el sistema o solamente será ignorado.Los indicadores de estado son m<strong>ar</strong>cas puestas en cada ocurrencia de una entidad que indican elúltimo evento que sucedió. Específicamente, son números asignados a una ocurrencia de unaentidad cada vez que un evento la afecta. Los indicadores de estado deben ser pensados <strong>com</strong>ootro atributo de una entidad.Los indicadores de estado se simbolizan con una b<strong>ar</strong>ra invertida "/" con números o símbolos a suizquierda y con un solo número o símbolo a la derecha de la misma. Los mismos se ubicandebajo de los eventos que se encuentran en las hojas del árbol.El valor con que el indicador de estado queda después que un evento ha ocurrido es el númeroque figura a la derecha de la b<strong>ar</strong>ra invertida. Los valores de los eventos que deben preceder alevento en cuestión p<strong>ar</strong>a que su ocurrencia sea efectiva, se encuentran listados sobre la izquierdade la b<strong>ar</strong>ra invertida.Historia de Vida de las Entidades Página: 12


CUENTABANCARIAAperturaVidaCuentaR1PosibleSuspensiónCierre- / 15,6 / -24139 10Transacción *Descubierto *oSuspendidao3 / *1,2,3,4 / 66DepósitooExtracciónoSuspenderReaperturaE11,3,4 / 21,2,4 / 31,2,3,4 / 55 / 45 578Operaciones:1. Cre<strong>ar</strong> CUENTA BANCARIA.2. Definir llave maestra.3. Definir atributos.4. Relacion<strong>ar</strong> CUENTA BANCARIA con CLIENTE.5. Actualiz<strong>ar</strong> saldo.6. Actualiz<strong>ar</strong> descubierto.7. Actualiz<strong>ar</strong> estado cuenta = suspendida.8. Actualiz<strong>ar</strong> estado cuenta = activa.9. Elimin<strong>ar</strong> relación CUENTA BANCARIA con CLIENTE.10. Elimin<strong>ar</strong> CUENTA BANCARIA.Figura 11. Indicador de estado.Historia de Vida de las Entidades Página: 13


Cada evento que no tiene eventos precedentes se debe m<strong>ar</strong>c<strong>ar</strong> con el signo menos "-" a laizquierda de la b<strong>ar</strong>ra invertida. De manera simil<strong>ar</strong>, cada evento que conlleva a la destrucción dela ocurrencia se lo debe m<strong>ar</strong>c<strong>ar</strong> con el signo menos a la derecha de la b<strong>ar</strong>ra invertida. Un eventoaleatorio, que se indica en el diagrama con el símbolo de vida p<strong>ar</strong>alela, no cambia el valor delindicador de estado, y se lo debe señal<strong>ar</strong> con el símbolo asterisco "*" a la derecha de la b<strong>ar</strong>rainvertida.El la figura 11, se observa el uso de los indicadores de estado, además, la misma es el diagrama<strong>com</strong>pleto HVE del ejemplo que se estuvo trabajando desde el <strong>com</strong>ienzo.3. EJEMPLO <strong>DE</strong> INTERPRETACION <strong>DE</strong> UN DIAGRAMA HVEEn este ap<strong>ar</strong>tado se intent<strong>ar</strong>á d<strong>ar</strong> un resumen de la descripción de la técnica tratada en el ap<strong>ar</strong>tadoanterior, dando un ejemplo de cómo se debe interpret<strong>ar</strong> la lectura de un diagrama HVE. Seinterpret<strong>ar</strong>á entonces, el diagrama HVE de la figura 11.Este diagrama HVE, nos muestra el patrón de la sucesión de eventos en el tiempo sobre lasocurrencias de la entidad Cuenta Banc<strong>ar</strong>ia. También, se observan las operaciones elementalesque se les aplican a las ocurrencias de la entidad ante el disp<strong>ar</strong>o de un evento y las restriccionesimpuestas con los indicadores de estado p<strong>ar</strong>a cumplir con las reglas del negocio banc<strong>ar</strong>io queluego se convertirán en restricciones p<strong>ar</strong>a la fase del diseño.Por último, en el diagrama HVE, se observan los mecanismos, de excepción implementados porlos puntos de escape y de retorno, y el de vida p<strong>ar</strong>alela que le agrega al modelo la posibilidad detrat<strong>ar</strong> eventos concurrentes o situaciones especiales, pero neces<strong>ar</strong>ias, que no impactandirectamente en flujo principal de eventos que dictan las reglas del negocio.Entones, a continuación, se listan los puntos más importantes que se deberían obtener de lalectura directa del diagrama HVE de la figura 11. Cabe acl<strong>ar</strong><strong>ar</strong>, que en un diagrama HVE <strong>com</strong>oel que se va a trat<strong>ar</strong> en este caso, existen infinitas secuencias posibles de eventos. Por tal motivo,sólo se van a mostr<strong>ar</strong> algunas de ellas y de manera p<strong>ar</strong>cial, con el único fin de ejemplific<strong>ar</strong> elmecanismo de lectura de los diagramas HVE, y que le sirva de base al lector p<strong>ar</strong>a poder obtenersus propias experiencias.• Asign<strong>ar</strong> mentalmente al indicador de estado en el estado inicial "-" (no hubo algún eventoprecedente).• Dado que la lectura del árbol de eventos es de <strong>ar</strong>riba hacia abajo y de izquierda a derecha,entonces en el primer nivel de profundidad de la jer<strong>ar</strong>quía nos encontramos con la siguientesecuencia de eventos: Apertura, Vida Cuenta, Posible Suspención y Cierre.• De la secuencia anterior, el primer evento que ocurrirá es el de Apertura. Con él, seejecut<strong>ar</strong>án las operaciones 1, 2, 3 y 4. Entonces, dichas operaciones crean una ocurrencia dela entidad Cuenta Banc<strong>ar</strong>ia y definen los atributos que forman la llave maestra, y otros quesólo se definen con la construcción de la ocurrencia; y por último, si es posible se relacionala ocurrencia con otras de otras entidades de acuerdo a cómo se encuentre definido en eldiagrama ER.Historia de Vida de las Entidades Página: 14


• Supongamos la ocurrencia del evento Apertura, la misma es filtrada por el filtro delindicador de estado, dado que el mismo se encuentra en el estado inicial. Luego, el indicadorde estado debe llev<strong>ar</strong>se al valor 1. A p<strong>ar</strong>tir de este momento, no podrá existir un nuevoevento Apertura dentro de la vida de esta ocurrencia, que se acaba de cre<strong>ar</strong>, por no existirningún evento según las reglas de negocio, que pasen al indicador de estado al estado iniciala excepción del evento de Cierre.• Luego, el próximo evento que debe ocurrir según la secuencia inicial es el de Vida Cuenta.El mismo, tiene <strong>com</strong>o eventos hijos, a los eventos Transacción y Descubierto. Estos, estánmodelados <strong>com</strong>o eventos de iteración, por ende pueden suceder de cero hasta N veces dentrode la vida de la ocurrencia de la entidad. Dado que ambos eventos están acoplados al eventopadre por una vida p<strong>ar</strong>alela, entones, ambos eventos pueden o no ocurrir de maneraconcurrente, por lo tanto, si existiese un contador de veces p<strong>ar</strong>a cada uno de los mismos, elvalor de los contadores podría ser diferente.• Ahora, se prob<strong>ar</strong>á el verdadero mecanismo de bloqueo de eventos que proveen losindicadores de estado, y de esta manera se va a reforz<strong>ar</strong> el concepto de cómo ellosimplementan las restricciones dictadas únicamente por las reglas del negocio y no por otrasrazones.• Supongamos la siguiente situación que es correcta sintácticamente, dado que no viola lasreglas de construcción del diagrama: ocurre el evento Descubierto inmediatamente despuésdel evento Apertura. Lo anterior, es valido según la lógica de recorrido de eventos por elárbol, pero según el indicador de estado, este evento debe ser ignorado dado que el indicadorde estado se encuentra en el estado número 1, y la condición p<strong>ar</strong>a acept<strong>ar</strong> el evento es que elestado del indicador se encuentre en el estado número 3. Esto último, es lógico a nivel denegocio, dado que es imposible que la cuenta se encuentre en descubierto si no se h<strong>ar</strong>ealizado jamás alguna extracción sobre la misma.• Ahora veamos la concurrencia de los eventos Transacción y Descubierto. P<strong>ar</strong>a que ocurra unevento Transacción debe ocurrir algún evento hijo del mismo (Depósito o Extracción).Depósito y Extracción se encuentran al mismo nivel de la jer<strong>ar</strong>quía y se hallan modelados<strong>com</strong>o eventos del tipo selección, por lo tanto, cualquiera de ellos pude ocurrir en cualquierorden. Supongamos que ocurre el evento Depósito, entonces, tenemos la ocurrenciaconcurrente de los eventos Transacción y Descubierto, y además, recordemos que elindicador de estado se encuentra en el estado número 1. El evento Depósito será tomado encuenta por cumplir con las reglas de recorrido de eventos impuestas por el árbol y lacondición del indicador de estado. El evento Depósito necesita que el último evento que hayaocurrido sea el evento Apertura, Extracción o el evento Reapertura, y p<strong>ar</strong>a nuestro caso es elevento Apertura el que lo habilita. La operación 5 será ejecutada y la misma realiz<strong>ar</strong>á laactualización del saldo de manera incremental sobre el atributo saldo de la ocurrencia de laentidad Cuenta Banc<strong>ar</strong>ia. Por otro lado, el evento Descubierto será filtrado, dado que nocumple con la condición requerida, ya que indicador de estado se encuentra en el estadonúmero 1 y el evento Descubierto necesita <strong>com</strong>o último evento al evento Extracción. Luego,que se ejecutó el evento Depósito, el indicador de estado se encuentra en el estado número 2.• Nuevamente podemos imagin<strong>ar</strong>, pero esta vez una situación más simple, el caso del disp<strong>ar</strong>odel evento Extracción, estando el indicador de estado en el estado número 2. En este caso, sesatisfacen todas las condiciones y por ende se ejecuta la operación 5 que decrement<strong>ar</strong>á elHistoria de Vida de las Entidades Página: 15


valor del atributo saldo. Luego de esta operación, el estado del indicador, cambi<strong>ar</strong>á al estadonúmero 3.• Siguiendo con la historia de la sucesión de eventos, después de v<strong>ar</strong>ías veces que el usu<strong>ar</strong>io dela cuenta ha extraído o ingresado fondos a su cuenta banc<strong>ar</strong>ia, decide finalmente cerr<strong>ar</strong>la,porque ya no va a oper<strong>ar</strong> más con dicha entidad banc<strong>ar</strong>ia. Entonces, p<strong>ar</strong>a poder cumplir conla lógica del recorrido del árbol, se desencadenan los siguientes eventos: Selección Nula yCierre. El evento Selección Nula no produce ningún efecto sobre la entidad en este caso ynos permite avanz<strong>ar</strong> a la espera del próximo evento de la secuencia (Cierre). Luego, seproduce el evento de cierre y el mismo ejecuta las operaciones 9 y 10. Las mismas eliminanla relación de la ocurrencia de la entidad Cuenta Banc<strong>ar</strong>ia con las ocurrencias de la entidadCliente. Se menciona ocurrencias de la entidad Cliente y no ocurrencia, porque la cuentapuede tener más de un titul<strong>ar</strong>. Finalmente, la ocurrencia de la entidad Cuenta Banc<strong>ar</strong>ia esdestruida y con ello el ciclo de vida de la ocurrencia de la entidad.• Un punto que el lector tal vez se preguntó y debe tener en cuenta, es que en los diagramasHVE sólo se modelan los eventos que crean, modifican y eliminan ocurrencias de unaentidad. Por lo tanto, los eventos que sólo generan la lectura de una ocurrencia de maneratotal o p<strong>ar</strong>cial no se deben model<strong>ar</strong>. Esto mismo, hace posible y justifica que los eventosTransacción y Descubierto, siendo Descubierto una consecuencia directa (causa y efecto) deuna extracción que <strong>ar</strong>roje un saldo negativo, puedan ser verdaderamente concurrentes.• Por último, se describe la situación del evento Suspender. Sea el siguiente caso: se acaba deabrir la cuenta, o sea, ha ocurrido el evento Apertura y luego ningún otro, entonces, esposible y válido que ocurra el evento Suspender por algún motivo en p<strong>ar</strong>ticul<strong>ar</strong> determinadopor la entidad banc<strong>ar</strong>ia. Por lo tanto, si sucede el evento Suspender, se ejecut<strong>ar</strong>á la operación7 y al finaliz<strong>ar</strong> la misma se actualiz<strong>ar</strong>á nuestra v<strong>ar</strong>iable mental, el indicador de estado, alestado número 5. Luego, después de un tiempo, la entidad banc<strong>ar</strong>ia decide la reapertura de lacuenta, y por ende se genera el evento Reapertura. El mismo, ap<strong>ar</strong>ece en un momento que esválido de acuerdo a las reglas de recorrido de eventos de árbol y la condición del indicadorde estado, por lo cual, se ejecuta la operación 8 que cambia el valor del atributo estado cuentaa activa. Finalmente, se pasa el indicador de estado al estado número 4 y gracias a laindicación del punto de escape se escapa de la secuencia que indica el diagrama, y se entranuevamente en él, por el evento Vida Cuenta (R1). En definitiva, es <strong>com</strong>o si hubiese ocurridoel evento Apertura en el sentido de la ubicación que queda dentro del diagrama a la esperadel nuevo evento.4. INTERRELACION ENTRE LOS DIAGRAMAS ER, DFD Y HVEEl diagrama de flujo de datos (DFD), el diagrama entidad relación (ER) y el diagrama de historiade vida de la entidad (HVE) representan cada uno de ellos una vista conceptual diferente delsistema a construir, y los tres, por ende, las tres vistas del sistema (datos, funciones y eventos).Las mismas se encuentran interrelacionadas, y además, de d<strong>ar</strong> la visión <strong>com</strong>pleta del sistema,sirven por sep<strong>ar</strong>ado p<strong>ar</strong>a poder realiz<strong>ar</strong> verificaciones cruzadas de consistencia y <strong>com</strong>pletud delmodelo de la solución al problema.La interrelación entre las tres vistas es la siguiente:Historia de Vida de las Entidades Página: 16


técnica, dado que la misma no está aislada y se encuentra soportada por herramientas que ayudana la aplicación de la misma.Desafortunadamente, no se encuentra tan difundida <strong>com</strong>o otras, y no es fácil encontr<strong>ar</strong> materialbibliográfico sobre la misma, al igual que casos de estudio sobre la aplicación de HVE a sistemasreales.El éxito de la aplicación de HVE depende del trabajo realizado sobre las técnicas de DFD y ER,además de ser muy sensible a los cambios en los diagramas de ER. También, HVE ayuda a<strong>com</strong>plet<strong>ar</strong> la lista de eventos que definirán a través del tiempo el <strong>com</strong>portamiento y la dinámicadel sistema de información.HVE presenta las siguientes limitaciones:• Un evento de iteración no dice de forma explícita el rango de iteración permitido. Estomismo podría corregirse, si se pusiera al costado del signo "*" un indicador tal <strong>com</strong>o "* [1,15]".• Siendo estrictos, en el caso de eventos de selección que tienen <strong>com</strong>o padre un eventoiterador, el indicador de estado debería llev<strong>ar</strong> el número de estado próximo <strong>com</strong>o estado decondición. Por ejemplo "2, 3, 6, 10 / 10".• También no es posible condicion<strong>ar</strong> la aceptación de la ocurrencia de un evento porcondiciones de gu<strong>ar</strong>da que dependan del resultado de operaciones lógicas usando atributos dela entidad del diagrama HVE.6. BIBLIOGRAFIA• Hay, David C., "Object Oriented Data Modeling: Entity Life Histories", Essential Strategies,Inc, M<strong>ar</strong>zo de 1993.• Sitio internet: http://www.doc.mmu.ac.uk/• Sitio internet: http://www.cscs.wmm.ac.uk/Historia de Vida de las Entidades Página: 18

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!