34
Capítulo 6 Herramientas del Análisis y Diseño Orientado a Objetos 6.1 Análisis de la estructura de objetos (AEO) De…ne las categorías de los objetos que percibimos y las formas en que las asociamos. En esta etapa identi…camos: ² Que son los tipos de objetos y como se asocian ? Se representan mediante esquemas de objetos. Sirve para guiar en la de…nición de clases y estructuras de datos. ² Como se organizan los tipos de objetos en subtipos y supertipos ? Se organizan en diagrama e indican las direcciones de herencia. ² Cual es la composición de los objetos complejos ? Se elaboran diagrama de jerarquía y quien en la de…nición de mecanismos que controlen adecuadamente a los objetos dentro de otro objetos. 6.1.1 Asociaciones de Objetos También es importante modelar la forma como los objetos se asocian entre si.- En el análisis, es útil nombrar alguna forma a las asociaciones e indicar la cantidad de objetos de un tipo dado que se debe asociar con los objetos de otro tipo, puesto que esto le da signi…cado y aumenta la comprensión de la asociación. Aunque en la …gura 6-01 ilustra las asociaciones entre dos tipos de objetos , no se indica el signi…cado de la asociación. Además del signi…cado, tampoco se indica la cantidad de objetos con los que un objeto dado puede y debe asociarse. En el análisis, es útil nombrar de alguna forma las asociaciones e indicar la cantidad de objetos de un tipo dado que se deben asociar con los objetos de otro tipo puesto que esto le da signi…cado y aumenta la comprensión de la asociación, véase la …gura 06-02. 176

Herramientas del Análisis y Diseño Orientado a Objetosexa.unne.edu.ar/informatica/anasistem1/public_html/... · Cuando varias personas trabajan en un sistema o en un programa, los

  • Upload
    vannhan

  • View
    215

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Herramientas del Análisis y Diseño Orientado a Objetosexa.unne.edu.ar/informatica/anasistem1/public_html/... · Cuando varias personas trabajan en un sistema o en un programa, los

Capítulo 6

Herramientas del Análisis yDiseño Orientado a Objetos

6.1 Análisis de la estructura de objetos (AEO)

De…ne las categorías de los objetos que percibimos y las formas en que las asociamos. Enesta etapa identi…camos:

² Que son los tipos de objetos y como se asocian ?

Se representan mediante esquemas de objetos. Sirve para guiar en la de…nición declases y estructuras de datos.

² Como se organizan los tipos de objetos en subtipos y supertipos ?

Se organizan en diagrama e indican las direcciones de herencia.

² Cual es la composición de los objetos complejos ?

Se elaboran diagrama de jerarquía y quien en la de…nición de mecanismos que controlenadecuadamente a los objetos dentro de otro objetos.

6.1.1 Asociaciones de Objetos

También es importante modelar la forma como los objetos se asocian entre si.-En el análisis, es útil nombrar alguna forma a las asociaciones e indicar la cantidad de

objetos de un tipo dado que se debe asociar con los objetos de otro tipo, puesto que estole da signi…cado y aumenta la comprensión de la asociación.

Aunque en la …gura 6-01 ilustra las asociaciones entre dos tipos de objetos , no se indicael signi…cado de la asociación. Además del signi…cado, tampoco se indica la cantidad deobjetos con los que un objeto dado puede y debe asociarse. En el análisis, es útil nombrarde alguna forma las asociaciones e indicar la cantidad de objetos de un tipo dado que sedeben asociar con los objetos de otro tipo puesto que esto le da signi…cado y aumenta lacomprensión de la asociación, véase la …gura 06-02.

176

Page 2: Herramientas del Análisis y Diseño Orientado a Objetosexa.unne.edu.ar/informatica/anasistem1/public_html/... · Cuando varias personas trabajan en un sistema o en un programa, los

CAPÍTULO6. HERRAMIENTAS DEL ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS177

IBM

OIT

NEC

omar

aide

julia

Organizacion Personas

Representa tipos de Objetos

Represetna una asociaciónAsociación entre un objeto organización llamado OIT y un

objeto persona llamado Aide

Figura~6.1: Los objetos de un tipo se asocian con los objetos de otros tipos.

PEDIDO

ELEMENTOS

DEL RENGLON

PRODUCTO

CLIENTE

ORDENA

ORDENADO POR

CONTIENE

UN PEDIDO ES ORDENADO POR UN SOLO CLIENTE

Un cliente ordena desde cero hasta muchos

pedidos

Un pedido contiene desde uno hasta varios

artículos de línea

Figura~6.2: Asocición con objetos determinados y restricciones

6.1.2 Estándares recomendados de diagramación

Los diagramas deben aparecer en las herramientas CASE OO, estas herramientas debenrecoger la información su…ciente para impulsar a un generador de códigos a producir uncódigo libre de errores de sintaxis. Por lo tanto, los diagramas deben tener una precisióndel tipo de la ingeniería.

Los diagramas convencionales se utilizan ampliamente en as herramientas CASE. En lamedida de lo posible, los diagramas para las técnicas OO deben incorporar los empleadosen las técnicas convencionales.

Los diagramas que utilizamos para los procesos complejos son una forma de lenguaje.Con las computadoras, creamos procesos más complejos que los que llevamos a cabo enforma manual. Los diagramas adecuados nos ayudan a visualizar e idear esos procesos.

Si solo una persona desarrolla el diseño de un sistema o de un programa, los diagramas

Page 3: Herramientas del Análisis y Diseño Orientado a Objetosexa.unne.edu.ar/informatica/anasistem1/public_html/... · Cuando varias personas trabajan en un sistema o en un programa, los

CAPÍTULO6. HERRAMIENTAS DEL ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS178

que utiliza le ayudan a aclarar su pensamiento. Una mala elección en las técnicas dediagramación llega a inhibir el pensamiento; en cambio, una buena elección puede acelerarel trabajo y mejorar los resultados.

Cuando varias personas trabajan en un sistema o en un programa, los diagramasson herramienta esencial para la comunicación. Además, al modi…carse los sistemas, losdiagramas claros pueden facilitar el mantenimiento.

Un reto vital para los sistemas de información de la actualidad es mejorar la comunica-ción entre profesionales de los sistemas y los empresarios. Los profesionales de los sistemasdeben comprender la empresa e idear la forma en que debe cambiar. Los empresarios debenpensar en forma más clara acerca de los sistemas y la automatización.

Los diagramas y su manejo mediante computadora son una forma de proceso del pen-samiento. El analista, el diseñador, el programador, el usuario y el ejecutivo necesitanuna familia de tipos de diagramas que les ayuden a pensar con claridad, estos diagramasdeben ser claros y sencillos, y deben ser lo bastante completos y rigurosos como paraservir de base a la generación de código, así como para la conversión automática de untipo de diagrama en otro. Los diagramas son la documentación de los sistemas (junto conlos depósitos, que almacenan el signi…cado de los diagramas y la información adicionalrecolectada cuando fueron trazados).

Los diagrama para el diseño de sistemas son un lenguaje de comunicación. Las buenasherramientas CASE obligan a la precisión de este lenguaje. Como en los otros lengua-jes, se deben aplicar estándares de modo que se puedan comunicar las diversas partes.Los diseñadores deben evitar idear sus propias formas de diagramación. Los investiga-dores deben utilizar las técnicas de diagramación existentes cuando sean aplicables. Ladiagramación incompatible es una barrera para la comunicación.

Se cuenta con una gran cantidad de símbolos de uso común en los diagramas conherramientas CASE que utilizan técnicas convencionales, como también símbolos que seutilizan para el análisis y diseño orientado a objetos y que amplían el conjunto de símbolos.

Normalmente los nodos que representan datos se dibujan como rectángulos con esqui-nas rectangulares (c(campos, tipo de ente, etc.) y los cuadros que representan actividades,se dibujan con cuadros con esquinas redondeadas (procedimientos, procesos, módulos deprogramas, etc.).

Del mismo modo se recomienda que las clases y los tipos de objetos se representen concuadros de esquinas rectangulares y las actividades con cuadros de esquinas redondeadas.

FACTURA Lanzar Misil

Figura~6.3: a) Clase, objeto o dato b) Proceso u operación

Para representar la realidad en si en los diagramas, por ejemplo para representarobjetos físicos que se trasladan de un proceso a otro se utilizan cuadros tridimensionalesu otras …guras que representen el objeto.

Los objetos y las operaciones externas al sistema, pero que afectan al mismo, se dibujancomo cuadros sombreados.

Page 4: Herramientas del Análisis y Diseño Orientado a Objetosexa.unne.edu.ar/informatica/anasistem1/public_html/... · Cuando varias personas trabajan en un sistema o en un programa, los

CAPÍTULO6. HERRAMIENTAS DEL ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS179

PRODUCTO

Figura~6.4: Representan la realidad (Objetos físicos)

CLIENTEEl Cliente paga el

pedido

Figura~6.5: Operaciones externas

Las líneas que unen los nodos representan conceptos como asociaciones, descomposi-ción, ‡ujo, dependencia del tiempo y reglas de activación.

A veces indican la dirección del procesamiento. Por ejemplo en un evento puede indicarque una operación debe ocurrir antes que otra, o en un diagrama de activación indica quela ocurrencia de un evento es anterior a una operación y causa el llamado de una operación.En un caso es precedencia, en el otro indica causalidad.

Cuando un nodo queda asociado con uno y solo un grupo de nodos se denominaexclusividad mutua y se representa mediante una línea de rami…cación con un círculorelleno en esa rami…cación.

La exclusividad mutua también puede ser representado como una caja con divisiones.Esta forma de representación de la exclusividad mutua se capitaliza para la represen-

tación de la generalización, desde el punto de vista OO.Por ejemplo, si colocamos bienes y servicios en una partición, indicamos con ello que

estos tienen atributos y operaciones comunes. Por ejemplo, todos los productos tienen unclave única (identi…cación del producto) y participan en las operaciones de procesamientode pedidos. Si no identi…ca un supertipo común, el analista corre el riesgo de de…niratributos y operaciones redundante..

El termino restricciones de cardinalidad se re…ere a la restricción de la cantidad deelementos que se pueden asociar con otro.

Uno a Muchos. La pata de gallo indica que una o mas instancias de B se puedenasociar con una instancias de A.

Uno a uno. Uno instancia de B se asocia con uno instancia de A.

Figura~6.6:

Page 5: Herramientas del Análisis y Diseño Orientado a Objetosexa.unne.edu.ar/informatica/anasistem1/public_html/... · Cuando varias personas trabajan en un sistema o en un programa, los

CAPÍTULO6. HERRAMIENTAS DEL ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS180

Prepararmaterial

Proceso A

Proceso B

Proceso CEl circulo, como una "o", indica quesigue una y solo una de las tresoperaciones

Figura~6.7: Exclusividad mutua

Cardinalidad nula. Un cero como parte del símbolo de restricción de cardinalidadindica que una instancia de un tipo de objeto no queda asociado con una instancia deotro tipo. En otras palabras, un objeto de un tipo puede tener asociaciones nulas con losobjetos de otro tipo.

Cardinalidad máxima y mínima. El máximo se coloca siempre junto a la caja (rectán-gulo) a la que se re…ere. Cuando el máximo y el mínimo son iguales a 1, se colocan dosbarras ! en la línea, estas indican uno y solo uno.

La …gura siguiente muestra objetos y sus asociaciones con cardinalidad

A

A

A

A

A

A

A

A

A

A

Minimo Maximo 0 1

1 1

0 Más de 0

1 Más de 1

Más de 1 Más de 1

Figura~6.8: Casos de cardinalidad

El etiquetado de líneas. En algunos diagramas las líneas tienen una etiqueta. Laslíneas entre los tipos de eventos y las operaciones son unidireccionales. Por otro lado, laslíneas entre las cajas de los tipos de objetos son por lo general bidireccionales.

La línea se puede leer en cualquier dirección. Solo se necesita etiquetar las líneas en

Page 6: Herramientas del Análisis y Diseño Orientado a Objetosexa.unne.edu.ar/informatica/anasistem1/public_html/... · Cuando varias personas trabajan en un sistema o en un programa, los

CAPÍTULO6. HERRAMIENTAS DEL ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS181

una dirección, aunque se recomienda etiquetar todas las asociaciones entre los tipos deobjetos.

Una etiqueta sobre una línea horizontal es el nombre de la asociación, cuando se leede izquierda a derecha. Una etiqueta debajo de una línea horizontal es el nombre de laasociación, cuando se lee de derecha a izquierda.

Jaula Animal

contiene

vive en

Una celda contiene cero o mas preso

Un preso vive en una celda

Figura~6.9: Forma de lectura de las asociaciones

Cuando los diagramas se tornas complejos se utiliza el anidamiento de los mismos.Varios bloques o líneas adyacentes pueden comprimirse en un bloque o línea.

También se pueden utilizar ventanas para cuando se utilizan distintos tipos de ideaso representaciones. Es decir combinar diagramas de eventos con diagramas de objetos oviceversa.

6.1.3 Jerarquía de generalización

Una de las vías de sentido común por lo que el hombre organiza su volumen de conocimientoes el de las jerarquías, de lo mas general a lo mas especi…co.

Un tipo de objeto puede tener subtipos, sub-subtipos, etc. Normalmente cada tipo notiene mas de un

supertipo (ver …gura 06-11), sin embargo también podemos encontrar que un tipo tengavarios supertipo, lo que implica que la jerarquía de generalización no necesariamente debeser una jerarquía de árbol.

Las jerarquías de generalización son importantes para el desarrollador OO por dosrazones. La primera es que el uso de supertipos y subtipos proporciona una herramientaútil para describir el mundo del sistema de aplicación. La segunda es que indica lasdirecciones de herencia entre las clases en los lenguajes de programación.

Page 7: Herramientas del Análisis y Diseño Orientado a Objetosexa.unne.edu.ar/informatica/anasistem1/public_html/... · Cuando varias personas trabajan en un sistema o en un programa, los

CAPÍTULO6. HERRAMIENTAS DEL ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS182

Persona

Empleado Estudiante

Licenciatura Ingenieria

Fig. 06-11: Jerarquia de generalización

Figura~6.10: Jerarquia de Generalización

6.1.4 Subtipos y Supertipos

Como ya se ha dicho, los tipos de objetos pueden tener tipos más particulares, llamadossubtipos y tipos más generales, llamados supertipos.

Una partición de subtipos puede ser una partición completa si contiene todos los sub-tipos posibles; o bien, una partición incompleta si hay más subtipos. Un área vacía en laparte inferior de la caja de partición indica una partición incompleta.

A

B

Esta cajarepresenta subtiposmutuamenteexclusivos

La barra en la parteinferior indica queno esta completa

Figura~6.11: Supertipo/Subtipo

Un tipo de objeto puede tener muchos subtipos diferentes.

6.1.5 Diagramas de Rami…cación

La generalización se representa, como ya hemos visto, por lo común, mediante un diagramade rami…cación, como en la …gura 06-14. Este diagrama avanza de izquierda a derechay, por lo general no tienen ‡echas. Puesto que la herencia se basa en la generalización,los diagramas son útiles, ya que indican la dirección de la herencia. Sin embargo, nomuestran lo que se hereda ni como funcionará el mecanismo de herencia dentro de un

Page 8: Herramientas del Análisis y Diseño Orientado a Objetosexa.unne.edu.ar/informatica/anasistem1/public_html/... · Cuando varias personas trabajan en un sistema o en un programa, los

CAPÍTULO6. HERRAMIENTAS DEL ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS183

lenguaje de programación OO dado. Por lo tanto, los diagramas que muestran la jerarquíade tipo/subtipo se llaman jerarquías de generalización en vez de jerarquías de herencia.

Algunas veces un diagrama de rami…cación muestra instancias de objetos. La instan-cias se unen a su tipo de objeto mediante líneas punteadas.

Persona

Militar Civil

SubOficial Oficial

Figura~6.12: Diagramas de Rami…cación

6.1.6 Jerarquía Compuestas

Algunos tipos de objetos se consideran complejos, por que queremos indicar que determi-nados objetos están formados por otros.

En el análisis OO, la composición de un objeto nos ayuda a describir el echo de que losdibujos están formados por determinada con…guración de símbolos, los trabajos lo estánpor tareas especi…cas, las organizaciones por otras organizaciones, y así sucesivamente.En los sistemas de tecnología avanzada, el analista describe la forma en que un pedidono solo puede constar de elementos en cada renglón, sino contener también instruccionesverbales del cliente o un diagrama hecho a mano, los pedidos de este tipo se llaman objetoscomplejos.

Cada pedido se puede controlar como un objeto único que conste de otros, los cuales,a su vez, se pueden controlar de forma independiente, en caso necesario.

Las estructuras de árbol y de red pueden mostrar más que generalización y la herencia.También se llegan a utilizar para indicar que un objeto está compuesto por otros. El dia-grama de composición de los objetos se debe dibujar de modo que se distinga de inmediatode un diagrama de generalización. Esto se logra al colocar ‡echas huecas (per…ladas) enel diagrama de composición y ‡echas sólidas (llenas), en el diagrama de generalización.

La expresión de las restricciones de cardinalidad en las asociaciones por composición esimportante, puesto que un objeto compuesto puede estar formado por cero, uno o muchosobjetos de distintos tipos.

Los símbolos de restricción de cardinalidad no se muestran en los diagramas de gene-ralización.

En ciertos casos, la generalización y la composición se muestran en el mismo diagrama.Esto puede llegar a confundir a principiantes en el análisis OO.

Page 9: Herramientas del Análisis y Diseño Orientado a Objetosexa.unne.edu.ar/informatica/anasistem1/public_html/... · Cuando varias personas trabajan en un sistema o en un programa, los

CAPÍTULO6. HERRAMIENTAS DEL ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS184

6.1.7 Tipos de objetos derivados

Las instancias de un tipo de objeto suelen quedar determinadas si alguien hace una a…r-mación, sin embargo, el conjunto de instancias de muchos tipos de objetos pueden serderivado. Por ejemplo el conjunto de todas las personas adultas se deriva del conjunto depersonas que han llegado a la edad de 18 años. Para simbolizar que se trata de instanciasderivadas de otra se simboliza con un barra en la caja.

Persona Adulta

Figura~6.13: Objeto derivado

6.1.8 Diagramas de relación entre objetos

Un diagrama de relación entre objetos es esencialmente igual a un diagrama de relaciónentre entidades.

Cada cuadro puede ser un tipo de objeto en el análisis de la estructura de objetos.Normalmente se presenta el diagrama de jerarquía y el diagrama compuesto, todo junto

en un mismo diagrama que recibe el nombre de esquema de objetos.

6.2 Análisis de comportamiento de objetos (ACO)

Aquí realizamos esquemas de eventos que muestran eventos, la secuencia en que ocurreny como los eventos cambian el estado de los objetos. Por lo tanto, una herramienta CASEpara el análisis orientado a objetos debe permitir construir esquemas de objetos y deeventos y mantener la relación entre ellos.

6.2.1 Estado de un objeto

Un objeto puede existir en varios estados.

Ejemplo 6.1 Objeto: reservación aérea puede ser una instancia de los siguientes tiposde objetos;

Ejemplo 6.2 reservación solicitada, reservación con…rmada, reservación cancelada, re-servación satisfecha, reservación archivada, etc.

En el análisis del comportamiento de objetos identi…camos la siguiente información:

² En que estado puede estar un objeto ?

² Que transiciones de estado se puede dar ?

Page 10: Herramientas del Análisis y Diseño Orientado a Objetosexa.unne.edu.ar/informatica/anasistem1/public_html/... · Cuando varias personas trabajan en un sistema o en un programa, los

CAPÍTULO6. HERRAMIENTAS DEL ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS185

² Que eventos ocurren ?

² Que operaciones se llevan a cabo ?

² Que interacciones ocurren entre objetos ?

² Cuales son las reglas de activación que se utilizan para reaccionar ante el evento ?

² Como se representan las operaciones en los métodos ?

Un objeto puede ser al mismo tiempo una instancia de varios tipos de objetos.

Ejemplo 6.3 Reservación totalmente pagada, este objeto, al mismo tiempo podría ser unainstancia : reservación de cierta compañía.

El estado de un objeto es la colección de los tipos de objeto que se aplican a él.Al implementarlo en un lenguaje de programación OO, el estado se registra en los

datos almacenados con relación al objeto. Se determina mediante las clases y valores delos campos de los estados asociados con el objeto. Así, en general, los programadores OOutilizan otra de…nición de estados.

El estado de un objeto es la colección de asociaciones que tiene un objeto.

6.2.2 Eventos

Nuestro mundo esta lleno de eventos (un elefante tiene elefantitos). Un evento es uncambio en el estado de un objeto.

Es necesario saber de los cambios de estado, notar que ocurren, para ello los eventossirven como indicadores de los instantes en que ocurren los cambios. En un mundo sineventos, podríamos construir base de datos sin preocuparnos por actualizarlas, sin embar-go, en la mayoría de las aplicaciones, si debe cambiar el contenido de las bases, y nosotrosdeseamos saber de esos cambios y reaccionar en forma adecuada ante ellos, para lo cualdebemos entender y modelar dichos eventos.

El analista no necesita conocer cada evento que ocurra, tan solo los tipos de eventos yde las instancias de tipos de eventos.

6.2.3 Tipos de Eventos

Los tipos de eventos indican los cambios sencillos en el estado de un objeto.- Los tipos deeventos describen las siguientes formas de cambio de estado:

² Un objeto se crea

² Un objeto se termina

² Un objeto se clasi…ca como instancia de un tipo de objeto

² Un objeto se descali…ca como una instancia de un tipo de objeto

² Un objeto cambia de clasi…cación

² El atributo de un objeto se cambia

Page 11: Herramientas del Análisis y Diseño Orientado a Objetosexa.unne.edu.ar/informatica/anasistem1/public_html/... · Cuando varias personas trabajan en un sistema o en un programa, los

CAPÍTULO6. HERRAMIENTAS DEL ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS186

Dos conjuntos de objetos

de distintos tipos

Evento en el que el objeto 23Q324 cambia

de ser una instancia de reservación en lista

de espera a una reservación confirmada

objeto 23Q324

Reservación en lista deespera Reservación confirmada

Figura~6.14: Evento

Los objetos pueden asociar un objeto con otro.

Ejemplo 6.4 En la mayoría de las organizaciones, cuando un objeto se clasi…ca comoempleado, debe estar asociado con un departamento. Un evento clasi…cara al objeto co-mo empleado. Otro evento creará una asociación entre el objeto empleado, y un objetoDepartamento.

Algunos eventos requieren que antes ocurran otros eventos. Otras veces un eventopuede provocar la creación en cadena de otros eventos.

Una operación hace que los eventos ocurran. Dibujamos la operación como un cuadrocon esquinas redondeadas, puesto que los eventos indican los puestos en el tiempo en que seda el cambio de estado de un objeto. Los tipos de eventos se representan como triángulosnegros llenos, generalmente unidos a las cajas de operación.

Almacenar parte en anaquel

Aumenta el contenido delanaquel

Parte almacenada en

anaquel

Proceso de almacenamientoen inventario terminado

Tres tipos de

eventos

Figura~6.15: Más de un evento

Page 12: Herramientas del Análisis y Diseño Orientado a Objetosexa.unne.edu.ar/informatica/anasistem1/public_html/... · Cuando varias personas trabajan en un sistema o en un programa, los

CAPÍTULO6. HERRAMIENTAS DEL ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS187

Según el área que se modele, puede ocurrir más de un evento al terminar una operación,y cada uno de éstos puede activar operaciones independientes.

6.2.4 Ciclo vital de un objeto

La mayoría de los objetos tienen un ciclo vital en el que una sucesión de eventos puedenocurrirle y cada uno de estos modi…ca su estado.

Al crear por primera vez el objeto reservación aérea, puede pasar por los estados re-servación solicitada, reservación en lista de espera, reservación con…rmada, reservacióncumplida y reservación archivada. Otros eventos puede hacer que se convierta en reserva-ción denegada o reservación cancelada.

En el análisis orientado a objeto, dibujamos un diagrama que muestra el ciclo vitalde un objeto. Además de mostrar los estados posibles de los objetos, el diagrama tam-bién muestra los cambios de estado permisibles, a este tipo de diagramas denominamosdiagramas de estados.

Nula

Solicitada

En lista de espera

Denegada

Confirmada

Modificazda

Cumplida

Cancelada

Archivada

+

Figura~6.16: Diagrama de Estados

Las transiciones se representan mediante líneas verticales, los cuales unen a los estados.Podemos colocar un signo ”+” en algún estado que se quiera descomponer en su-

bestados. También podemos registrar en los cambios estados que ocurren bajo ciertascondiciones, esto lo simbolizamos con un circulo al vacío al inicio de cada cambio deestado.

También podemos re‡ejar cardinalidad en los cambios de estados.Un objeto puede tener muchos estados permisibles. Si los subestados de un estado en

particular no se muestran en un diagrama, aparecen puntos suspensivos () o un símbolo”+” al lado del estado.

Un evento es un cambio en el estado de un objeto, de tal forma que podemos interactuarcon los diagramas de transición de estados a partir de eventos, como también podemoshacerlo desde un cambio de estado de un diagrama de estado asociarlo con un esquemade eventos.

También podríamos re‡ejar los cambios de estados en los esquemas de eventos con unalínea al costado de una regla de activación entre un evento y una operación.

Page 13: Herramientas del Análisis y Diseño Orientado a Objetosexa.unne.edu.ar/informatica/anasistem1/public_html/... · Cuando varias personas trabajan en un sistema o en un programa, los

CAPÍTULO6. HERRAMIENTAS DEL ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS188

6.2.5 Interacciones entre tipos de objetos

Los diagramas de transiciones de estado son útiles para expresar el ciclo vital de un objetoparticular. Sin embargo, la mayoría de los procesos requieren la interacción de variosobjetos.

Empleado

Pagar Salario

...

Pagar salario de este

empleado

Impuesto

Calcular Impuesto

...

Cheque

Generar cheque de

nómina

...

Tipos

de

objetos

Operaciones

Generar un cheque de nóminacon la información de esteempleado

Calcular la deducción deimpuestos con este salario y

sus exenciones

Figura~6.17: Diagrama de Red

El diagrama de red muestra como los distintos tipos de objetos cambian de estado ypueden solicitar a otros objetos que cambien su estado en el proceso.

Los tipos de objetos se implantan como clases y las operaciones se convierten en ope-raciones del programa OO. Si, durante el análisis, el usuario puede expresar los requisitosde procesamiento de esta forma, se facilita el trabajo del diseñador de LPOO (lenguaje deprogramación orientada a objetos).

Sin embargo, muchos usuarios no piensan en el procesamiento de aplicación en términosde tipos de objetos, saturados de operaciones que hacen distintos tipos de solicitudes. Espreferible un formato guión cuando se dan eventos que activan operaciones, las cuales,a su vez, producen eventos que activan otras operaciones, etc. En otras palabras, esteformato de guión (llamado esquema de eventos) representa los cambios en el ciclo vital deun objeto particular, el cal activa cambios en el ciclo vital de otro objeto.

6.2.6 Operaciones

En el análisis OO, el termino operación se re…ere a una unidad de procesamiento quepuede ser solicitada. El procedimiento se implanta mediante un método. El método es laespeci…cación de como llevar a cabo la operación. Es el guión de la operación. A nivelprograma, el método es el código que implanta la operación.

Las operaciones se invocan. Una operación invocada es una instancia de una operación.Una operación puede o no cambiar el estado de un objeto. Si lo cambiara, ocurrirá unevento.

Page 14: Herramientas del Análisis y Diseño Orientado a Objetosexa.unne.edu.ar/informatica/anasistem1/public_html/... · Cuando varias personas trabajan en un sistema o en un programa, los

CAPÍTULO6. HERRAMIENTAS DEL ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS189

Operación

Tipo de evento

Figura~6.18: Grá…ca de Operación

Las operaciones se representa mediante cuadros con esquinas redondeadas. Los tiposde eventos se representan mediante triángulos sólidos negros conectados en la caja.

Fuentes externas de eventos: los eventos son cambios de estado a los que un sistemadebe conocer, y reaccionar ante de ellos de algún modo. Muchas de las operaciones queproducen estos eventos suelen ser externas al sistema. En estos casos, el símbolo deoperación se dibuja como una caja sombreada con esquinas redondeadas.

El cliente transmite

el pedido

Tipo de evento externo

Operación externa

Pedido solicitado

Tipo de evento del

reloj externo

Principio deltrimestre

Figura~6.19: Fuentes externas de eventos

Un reloj externo es una forma particular de fuente externa. Indica que un procesoexterno emitirá señales d reloj con cierta frecuencia determinada con anterioridad: al …nalde cada día, al principio de cada mes, etc.

6.2.7 Reglas de activación

Cuando ocurre un evento, lo usual es que el cambio de estado active el llamado a una omas operaciones.

Ejemplo 6.5 Si se retiran bienes de un almacén y la cantidad conservada en éste baja decierto nivel, ello puede activar una operación para volver a realizar un pedido.

Así, las reglas de activación de…nen la relación entre la causa y el efecto. Siempre queocurran un evento de cierto tipo, la regla de activación invoca a una operación ya de…nida.

Page 15: Herramientas del Análisis y Diseño Orientado a Objetosexa.unne.edu.ar/informatica/anasistem1/public_html/... · Cuando varias personas trabajan en un sistema o en un programa, los

CAPÍTULO6. HERRAMIENTAS DEL ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS190

Un tipo de evento puede tener varias reglas de activación, cada una de las cuales invocaa su operación en paralelo. Las operaciones paralelas pueden producir diferentes cambiosde estado en forma simultánea..-

Además, una operación puede ser invocada por varias reglas de activación.

Cheque solicitado

Fin de mes

solicitar

cheque

generar

cheque

Chequegenerado

Figura~6.20: Reglas de Activación

Una línea con una ‡echa dirigida hacia una caja de operación indica que la operación esactivada por la ocurrencia de un evento anterior. La línea de la regla de activación indicala asociación de un tipo de evento con la operación llamada. Además, puede indicar laruta mediante la que se proporcionan los objetos necesarios para la operación. De estaforma, la regla de activación de…ne una relación de causa entre el evento y la operación,así como una forma de ‡ujo de datos

Así, las líneas de activación indican dos cosas. La primera es que ligan la causa (evento)con el efecto (operación). En otras palabras, al ocurrir un evento, una activación llama auna operación. La segunda es que determina los objetos necesarios como argumentos dela operación que llama la forma de activación.

Por lo tanto, estas líneas de…nen las reglas para activar una operación cuando se daun tipo particular de evento. Por eso, se les llama reglas de activación.

6.2.8 Condiciones de control

Una operación puede ser invocada por una o varias reglas de activación, sin embargo,antes de invocar, se veri…ca se puede veri…car su condición de control. Si los resultados deevaluación de la condición son verdaderos, se invoca a su operación. Si son falsos, no seinvoca a la operación.

Siempre que haya que veri…car una condición de control antes de invocar a una opera-ción, esta se representa mediante un símbolo de forma de rombo antes de la operación.

Las condiciones de control garantizan que un conjunto de eventos esta completo antesde proceder con una operación.

Las condiciones de control no necesariamente son condiciones y. Pueden ser condicioneselaboradas con y y o.

Siempre se espera que las operaciones, una vez activadas, completen un evento. Cuandose determinan las condiciones de control, la operación podría no ser llamada hasta que sus

Page 16: Herramientas del Análisis y Diseño Orientado a Objetosexa.unne.edu.ar/informatica/anasistem1/public_html/... · Cuando varias personas trabajan en un sistema o en un programa, los

CAPÍTULO6. HERRAMIENTAS DEL ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS191

Operación

Tipo de evento

Figura~6.21: Condiciones de Control

condiciones de control sean verdaderas.En ciertas ocasiones una línea dirigida hacia una caja de operación indica que la

operación no se puede llevar a cabo hasta que se presente determinado evento. En estecaso se puede colocar el símbolo internacional NO HACERLO o PROHIBIDO en la línea.Esto se conoce como guardia.

Organizar

pedidoAceptar pedido

Figura~6.22: Guardias

Las líneas conectadas con una caja de operación pueden incluir formas de activacióny guardias.

6.2.9 Subtipos y supertipos de eventos

Los tipos ajenos se expresan en este libro mediante particiones de tipo. Por ejemplo, enun ventana independiente, como lo muestra la …gura 06-23, indica que estos dos tipos deeventos son mutuamente excluyente, puesto que tarea aceptada y tarea rechazada estáncontenidos dentro de la misma caja de partición.

La palabra partición implica que algo se divide en subconjuntos ajenos. En las técnicasOO, ese algo se llama supertipo.

Así, tarea revisada es un supertipo de evento divido en dos tipos de eventos ajenos.Por lo tanto, el método de…nido en revisar tarea tiene como objetivo que se revise unatarea. Además, para lograr este objetivo, se requiere alcanzar alguno de los subobjetivos,aceptar o rechazar la tarea en revisión. En otras palabras, las particiones de eventosno son operaciones independientes que coordinan las condiciones de bifurcación para las

Page 17: Herramientas del Análisis y Diseño Orientado a Objetosexa.unne.edu.ar/informatica/anasistem1/public_html/... · Cuando varias personas trabajan en un sistema o en un programa, los

CAPÍTULO6. HERRAMIENTAS DEL ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS192

Revisar tarea

Tareaaceptada

Tarearechazada

Figura~6.23: Subtipo/Supertipo de eventos

formas de activación ajenas, sino que indican los objetivos y distintos sub-objetivos de lasoperaciones a las que están asociadas.

La operación que hace que ocurra un evento puede ser compleja. La acción de poner enmarcha un automotor, pareciera sencillo, pero desde el punto de vista interno, el encendidode un automotor requiere de todo un conjunto de operaciones y eventos.

Con lo que representarlo podría ser complejo. Para ello podemos utilizar una descom-posición jerárquica de los esquemas de eventos. Se pueden colocar fronteras en torno aun esquema complejo de eventos y considerarlo como una operación de alto nivel. Así,el esquema de eventos de bajo nivel se convierte en el método para la operación que sedescompone.

6.2.10 Aislamiento de la causa y el efecto

Cada operación lleva a cabo su tarea sin importar lo que ocurre en otra parte. Unaoperación es invocada por varios mecanismos de activación, ejecuta su método y se esperaque este modi…que el estado de un objeto. La operación no sabe que evento lo activo ni porque. Además, no sabe se activaran otras operaciones a parir de su evento. En resumen, noreconoce su causa o efecto, solo sabe que es invocada para producir un cambio de estadoen un objeto dado. Este aislamiento de las consideraciones de causa y efecto es necesariopara que la operación pueda volver a utilizarse en muchas otras aplicaciones.

Un esquema de objetos expresa el tipo de objetos y sus asociaciones en un sistemadado. Un esquema de eventos expresa un guión de procesamiento que cambia los estadosde los objetos.

Por lo tanto, una herramientas CASE para el análisis orientado a objetos debe permitira sus usuarios construir esquemas de objetos y esquemas de eventos, además de mantenerla estrecha relación que hay entre estos tipos de representación.

6.2.11 Diagramas de ‡ujo de objetos

Los esquemas de eventos son adecuados para descripción de procesos en términos de even-tos, de reglas de activación, de condiciones y de operaciones. Sin embargo, podría no seradecuado expresar así procesos grandes y complejos.

En situaciones como ésta es cuando es útil un diagrama de ‡ujo de objetos.

Page 18: Herramientas del Análisis y Diseño Orientado a Objetosexa.unne.edu.ar/informatica/anasistem1/public_html/... · Cuando varias personas trabajan en un sistema o en un programa, los

CAPÍTULO6. HERRAMIENTAS DEL ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS193

Los diagramas de ‡ujo de objetos (DFO) son parecidos a los diagramas de datos (DFD),puesto que muestran actividades que interactúan con otras. En los DFD, una interfacetrans…ere datos. En las técnicas OO, no se limita a la transferencia de datos, sino queel diagrama debe representar cualquier tipo de cosa que se trans…era de una actividad aotra, ya sean pedidos, partes, artículos, diseños, servicios, hardware, software, o datos. Enresumen, el DFO indica los objetos que se producen y las actividades que los producen eintercambian.

Las actividades se representan con cajas con esquinas redondeadas, las cajas sombrea-das son agentes externos. En lugar del símbolo de almacenamiento de datos (dos líneasparalelas), se utiliza una caja tridimensional, esto indica que dl DFO representa el hechode que los objetos de la vida real ‡uyen entre las actividades.

Adquirirmateriales deproducción

Producirtarjetas decircuitosimpresos

Producirdiseños

Materialesdeproducción

Tarjetas decircuitosimpresos

Diseños dehardware

Ensamblarcomputadoras

Computador ensablado

Clientes

Figura~6.24: Diagrama de Flujo de Objetos Típico

Los DFO describen los objetos y como se producen y se consumen.El producto es el resultado …nal que satisface el propósito de la actividad. Las activi-

dades se pueden descomponer en DFO. Sin embargo, en un nivel mas detallado del análisisdel comportamiento, también es correcto expresar los aspectos dinámicos de los esquemasde eventos. Una actividad se puede expresar en términos de un DFO, un esquema deeventos, o ambos.

Para expresar un proceso de manera mas rigurosa y poder generar un código, lo ade-cuado es un esquema de eventos. Un diagrama de ‡ujo de objetos es útil para representarlas estructuras básicas de control y el ‡ujo del procesamiento, cuando no se entiendatotalmente la dinámica de los eventos y las claves de activación.

En resumen, el análisis del comportamiento de objetos puede utilizar una gran variedadde puntos de vista de diagramación.

Page 19: Herramientas del Análisis y Diseño Orientado a Objetosexa.unne.edu.ar/informatica/anasistem1/public_html/... · Cuando varias personas trabajan en un sistema o en un programa, los

CAPÍTULO6. HERRAMIENTAS DEL ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS194

Producirtarjetas decircuitosimpresos

Producirdiseños

Tarjetas decircuitosimpresos

Actividad Producto Actividad

Producción Consumo

Figura~6.25: Componentes de un DFO

6.3 Diseño de la estructura y comportamiento de un objeto

También en el diseño realizamos la misma división que del análisis: el diseño de la estruc-tura de objetos (DEO) y el diseño del comportamiento de objetos (DCO). Los lenguajesde programación OO tienen estructuras de datos y métodos, ambos sujetos a herencia ycombinados en unidades llamadas clases. Por esto, el DEO y el DCO están entrelazados,y se describirán en forma conjunta.

En el diseño de la estructura y comportamiento de objetos se identi…can los compo-nentes siguientes:

² ¿ Que clases se implantaran ?

² ¿ Que estructuras de datos utilizara cada clase ?

² ¿ Que operaciones ofrecerá cada clase y cuales serán sus métodos ?

² ¿ Como se implantara la herencia de clases y como afectará ésta las especi…cacionesde los datos y las operaciones ?

² ¿ Cuales son las variantes de las clases ?

6.3.1 Clase

En el análisis de estructura de objetos, identi…camos los tipos de objetos; en el diseño deestructura de objetos nos centramos en la implantación de esos tipos de objetos.

Clase es la implantación de un tipo de objeto. Especi…ca la estructura de datos y losmétodos operativos permitidos que se aplican a cada uno de sus objetos.

La clase especi…ca la estructura de datos de cada uno de sus objetos y las operacionesque se utilizan para tener acceso a los objetos. La especi…cación de como se llevan a cabolas funciones de una clase se llama método. Los objetos se pueden utilizar exclusivamentecon métodos especí…cos.

Los datos del objeto se almacenan dentro de él y se tiene acceso a ellos y se lesmodi…ca solo mediante las operaciones permisibles. Esta restricción al acceso se debe alencapsulado. El encapsulado protege los datos del uso arbitrario o no pretendido. El

Page 20: Herramientas del Análisis y Diseño Orientado a Objetosexa.unne.edu.ar/informatica/anasistem1/public_html/... · Cuando varias personas trabajan en un sistema o en un programa, los

CAPÍTULO6. HERRAMIENTAS DEL ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS195

a + b = z . 2,34cfx

23@ç= "2.34"

A. cos B x sen C

Clase

Especificación de

la estructura de

datos para cada

instancia de la

clase

Operaciones

permisibles que

dan acceso a la

modificación de

la estructura de

datos

Figura~6.26: Implementación de una Clase

acceso o la actualización directa de los datos de un objeto por parte del usuario violaríael encapsulado.

Los usuarios observan el comportamiento del objeto en términos de las operacionesque se pueden aplicar a los objetos, así como los resultados de tales operaciones. Estasoperaciones forman la interface del objeto con sus usuarios.

Cual es la diferencia ente operación y método ?Las operaciones son procesos que se pueden solicitar como unidades.Los métodos son especi…caciones del procedimiento de una operación dentro de una

clase. Es decir, operación es el tipo de servicio solicitado, y el método es su código deprogramación.

Una operación es un proceso que se puede solicitar como unidad.Un método es la especi…cación de una operación.Los métodos de una clase controlan solamente a los objetos de esa clase. No pueden

tener acceso directo a las estructuras de datos de un objeto en una clase distinta. Parautilizar las estructuras de datos en una clase diferente, deben enviar una solicitud a eseobjeto.

6.3.2 Herencia de clase

La herencia de clase (que solo se conoce como herencia) es una implantación de la gene-ralización. La generalización establece que las propiedades de un tipo se aplican a sussubtipos. La herencia de clase hace que la estructura de datos y operaciones sean dispo-nibles para su reutilización por parte de sus subclases. La herencia de las operaciones deuna superclase permite que las clases compartan el código (en lugar de volverlo a de…nir).La herencia de estructura de datos permite la reutilización de la estructura.

En la herencia múltiple, una clase puede heredar estructuras de datos y operacionesde mas de una superclase.

Page 21: Herramientas del Análisis y Diseño Orientado a Objetosexa.unne.edu.ar/informatica/anasistem1/public_html/... · Cuando varias personas trabajan en un sistema o en un programa, los

CAPÍTULO6. HERRAMIENTAS DEL ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS196

La herencia de clase implanta la jerarquía de generalización, y permite así que unaclase comparta la estructura de datos y operaciones de otra clase.

La herencia simple es aquella en la que una clase puede heredar la estructura de datosy operaciones de una superclase.

La herencia múltiple se da cuando una clase puede heredar la estructura de datos yoperaciones de mas de una superclase.

6.3.3 Selección del método

Cuando se envía una solicitud a un objeto, el software selecciona los métodos por utilizar.Ya hemos comentado que el método no se almacena en el objeto, puesto que esto causaríareplica múltiple. En vez de esto, el método se asocia con la clase. El método no puedeestar en la clase de la que el objeto es una instancia, sino en una superclase.

Así, la herencia permite que una clase reutilice las características de sus superclases.De esta forma, los usuarios solo deben especi…car lo que se debe hacer, dejando que sea elmecanismo de selección el que determine la forma de localizar la operación y la ejecute.El mecanismo de selección deja en manos de la aplicación OO el problema de localizar laoperación correcta a partir de la fuente de la solicitud.

6.3.4 Polimor…smo

Uno de los objetivos principales de las técnicas OO es utilizar otra vez el código. Sinembargo, algunas de las operaciones requieren adaptación para resolver necesidades par-ticulares.

De…nition 1 En una clase Empleado se de…ne una operación de retiro. En las implanta-ciones OO todas las subclases empleado heredan esta operación en forma automática. Sinembargo, las organizaciones pueden tener distintos métodos para retirar a un ejecutivo y aun empleado (subclases). Aunque los métodos sean distintos, llevan a cabo el mismo pro-pósito operativo. Este fenómeno se conoce como Polimor…smo. La palabra Polimor…smose aplica a una operación que adopta varias formas de implantación, tanto si el objeto esun empleado o un ejecutivo.

Una de las ventajas del Polimor…smo es que se puede hacer una solicitud de unaoperación sin conocer el método que debe ser llamado. Estos detalles de la implantaciónquedan ocultos para el usuario; la responsabilidad descansa en el mecanismo de selecciónde la implantación OO.

Igual que, excepto... La reutilización practica requiere en su mayoría que el implantadormodi…que el componente reutilizables.

Las técnicas orientadas a objetos deben permitir la adaptación de las clases. Ud. debepoder tomar una clase de un deposito y adaptarla a sus necesidades.

Las clases se vuelven muy complejas. Por lo tanto, hay que diseñar las clases de modoque se pueda adaptar con facilidad en una pantalla de herramientas CASE. Las buenasherramientas CASE, que permiten el uso del diseño OO a partir de un depósito, permitentambién adaptar estos diseños.

Los diseñadores deben prever los aspectos de un diseño que los usuarios desearán mo-di…car, así como los medios sencillos para la adaptación. Este es un aspecto fundamental

Page 22: Herramientas del Análisis y Diseño Orientado a Objetosexa.unne.edu.ar/informatica/anasistem1/public_html/... · Cuando varias personas trabajan en un sistema o en un programa, los

CAPÍTULO6. HERRAMIENTAS DEL ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS197

de las herramientas CASE OO. El hecho de lograr una máxima reutilización también esparte esencial de las metodología para el desarrollo de sistemas que se basan en técnicasOO.

El analista o el diseñador que genere una clase debe preguntarse: ¿ Como se utilizaráesta clase en el futuro ?. Debe crear la clase de forma que se pueda adaptar con facilidada las necesidades futuras. En un ambiente OO bien administrado, todo se construye apartir de clases ya existentes o se crean nuevas clases que serán utilizadas de nuevo en elfuturo. Todo se relaciona con el rehusó en el pasado o en el futuro.

6.4 Metodología OMT

6.4.1 Modelo de Objetos

El modelado de objetos captura la estructura estática del sistema, mostrando los objetosdel sistema, las relaciones entre ellos, y los atributos que caracterizan a cada clase. Elmodelo de objetos es el mas importante en esta metodología.

Objetos y Clases

Un objeto es, sencillamente, algo que tiene sentido en el contexto de la aplicación.Se de…nirá un objeto como un concepto, abstracción o cosa con limites bien de…nidos

y con signi…cado a efectos del problema que se tenga entre manos. Los objetos tienen dospropósitos: promover la comprensión del mundo real y proporcionar una base prácticapara la implementación por computadora.

La descomposición de un problema en objetos depende del juicio y de la naturalezadel problema, es decir no existe una única representación correcta.

Todos los objetos poseen su propia identidad y se pueden distinguir entre si. Dosmanzanas del mismo color y la misma forma siguen siendo manzanas individuales. Eltermino identidad signi…ca que los objetos se distinguen por su existencia inherente y nopor la propiedades descriptivas que puedan tener.

En algunas ocasiones, objeto signi…ca una sola cosa, en otras se re…ere a un grupo decosas similares. Cuando se desea ser preciso y aludir a una cosa exactamente se utiliza lafrase instancia de objeto y la expresión clase de objetos para aludir a un grupo de cosassimilares.

Clases

Una clase de objetos describe a un grupo de objetos con propiedades (atributos) similares,con relaciones comunes con otros y con una semántica común.

Ejemplo 6.6 Organización, Proceso, Persona y Animal.

Los objetos y sus clases suelen aparecer como sustantivos en la descripción de losproblemas.

Los objetos de una clase tienen los mismos atributos y los mismos patrones de compor-tamiento. Los objetos de una clase comparten un propósito de semántica común, más alláde que los requisitos de comunidad de atributos y de comportamiento. La interpretaciónde la semántica depende del proceso de cada aplicación y de nuestro propio juicio.

Page 23: Herramientas del Análisis y Diseño Orientado a Objetosexa.unne.edu.ar/informatica/anasistem1/public_html/... · Cuando varias personas trabajan en un sistema o en un programa, los

CAPÍTULO6. HERRAMIENTAS DEL ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS198

Ejemplo 6.7 Si consideramos un automóvil y un departamento tan solo como propiedadde un individuo, podrían pertenecer a una misma clase. Si consideramos que el automóviles un medio de transporte y el departamento un lugar para habitar entonces tendrán queser modelados en clases diferentes.

Es necesario preocuparnos por el concepto de clases, mas allá de que lo que estamosmodelando son objetos, por la noción de abstracción. Al agrupar a los objetos en clasesse abstrae el problema. La abstracción da al modelado su potencia y capacidad parageneralizar, partiendo de unos pocos casos especí…cos, hasta llegar a una multitud decasos similares.

Las de…niciones de nombres de atributos y nombres de clases se almacén una sola vezcon la clase. Las operaciones se pueden escribir una sola vez para cada de tal manera que,todos los objetos de la clase se bene…cien de la reutilización del código.

Diagramas de objetos

Como ya hemos visto, los diagramas de objetos proporcionan una notación grá…ca formalpara el modelado de objetos, clases y sus relaciones entre si, son útiles, tanto para elmodelado abstracto como, para diseñar programas reales. Son concisos, fáciles de entendery funcionan bien en la práctica.

La metodología propone dos diagramas de objetos: diagramas de clases y diagramasde instancias.

Diagramas de clases

Es un esquema, patrón o plantilla para describir muchas instancias de datos posibles. Losdiagramas de clases describen clases de objetos. En la metodología es un cuadro con elnombre de la clase.

Diagrama de Instancias

Un diagrama de instancias describe la forma en que cierto conjunto de objetos se relacionaentre si. Un diagrama de instancias describe instancias de objetos. Son útiles para docu-mentar casos prácticos y para describir ejemplos. Un diagrama de clase se corresponde conun conjunto in…nito de diagramas de instancias. Son cuadros con esquinas redondeadasdonde se escribe el nombre de la clase en la parte superior y los nombres de los objetos.

Persona

(Persona)

Juan

Gomez

(Persona)

Laura

Romero

(Persona)

ObjetosClase

Figura~6.27: Diagrama de Clases

Los diagramas de clases se utilizan para modelar el sistema, los diagramas de instanciaspara casos de ejemplos. La diferencia entre ambos es arti…cial.

Page 24: Herramientas del Análisis y Diseño Orientado a Objetosexa.unne.edu.ar/informatica/anasistem1/public_html/... · Cuando varias personas trabajan en un sistema o en un programa, los

CAPÍTULO6. HERRAMIENTAS DEL ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS199

Atributos

Un atributo es un valor de un dato que se esta almacenando en los objetos de una clase.Cada atributo tiene un valor para cada instancia del objeto.

Ejemplo 6.8 El atributo salario mensual tiene el valor de $ 1.200,00 en el objeto Liqui-dación de Mauricio Vallejos.

Las instancias distintas de un cierto objeto pueden tener el mismo valor o valoresdistintos para un atributo dado. El nombre del atributo es único dentro de la clase.

Ejemplo 6.9 Las clase Organización y Institución Educativa puede tener ambas un atri-buto llamado e-mail.

Los atributos deberán ser valores puros de datos y no objetos.

Ejemplo 6.10 Todas las apariciones de la cadena de caracteres Argentina. El país Ar-gentina es un objeto cuyo atributo nombre tiene el valor Argentina (cadena de caracteres).La capital de Argentina es un objeto del tipo ciudad y no debería modelarse como atribu-to, sino más bien como una asociación entre un objeto del tipo país y un objeto del tipociudad.

Los atributos se enumeran en la segunda parte del cuadro de clase. El nombre puede irseguido por detalles opcionales (tipo, valor, etc.). También se pueden omitir los atributosen el diagrama de clases, todo depende del grado de detalle que se desee. Los cuadros declases tienen una línea entre el nombre de la clase y los atributos. Los cuadros de objetosno tienen esta línea.

nombre: cadenaedad: entero

Persona

Figura~6.28: Especi…cación de atributos en una clase

No es necesario y no se deberían enumerar explícitamente los identi…cadores, estosson un artefacto de la computadora y no tienen un signi…cado intrínseco más allá de laidenti…cación de un objeto. Los identi…cadores son una comodidad de implementación yno tienen signi…cado en el dominio del problema.

Operaciones y métodos

Una operación es una función o transformación que se puede aplicar o que puede seraplicada por los objetos de una clase.

Ejemplo 6.11 Ocultar, mostrar, Abrir, Calcular, etc.

Page 25: Herramientas del Análisis y Diseño Orientado a Objetosexa.unne.edu.ar/informatica/anasistem1/public_html/... · Cuando varias personas trabajan en un sistema o en un programa, los

CAPÍTULO6. HERRAMIENTAS DEL ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS200

Todos los objetos de una clase comparten las mismas operaciones.Cada operación tiene un objeto blanco como argumento implícito. El comportamiento

de la operación depende de la clase de su blanco. Todo objeto conoce su clase y, por tanto,la implementación correcta de la operación.

Una misma operación puede aplicarse a muchas clases distintas. Tal operación serápolimór…ca; esto es, una misma operación adopta distintas formas en distintas clases. Unmétodo es la implementación de una operación para una clase.

Una operación puede poseer argumentos además del objeto destino blanco. Talesargumentos parametrizan la operación pero no afectan a la elección del método. Losmétodos solamente dependen de la clase del objeto blanco.

Cuando una operación posee métodos aplicables a distintas clases es importante quetodos los métodos tengan la misma signatura: este número, los tipos de los argumentos yel tipo del valor del resultado.

Las operaciones se enumeran en el tercio inferior del cuadro de clase. El nombre decada operación puede ir seguido por detalles opcionales, tales como la lista de argumentos yel tipo de resultado. Una lista de argumentos se escribirá entre paréntesis a continuacióndel nombre; los argumentos irán separados por comas. El nombre y el tipo de cadaargumento pueden indicarse también. El tipo y el resultado viene precedido por dospuntos y no debería omitirse porque es importante distinguir aquellas operaciones queproporcionan valores de las que no. Una lista de argumentos vacía entre paréntesis muestraexplícitamente que no hay argumentos. Las operaciones se pueden omitir en los diagramasde alto nivel.

nombredireccióntelefono

hacer un pedido

confirmar un pedido

Cliente

Figura~6.29: Descripción de Operaciones en una Clase

Durante el modelado resulta útil distinguir aquellas operaciones que tengan efectoslaterales de las que únicamente calculan un valor funcional sin modi…car ningún objeto.Este último tipo de operación se denomina consulta. La consultas sin argumentos, salvoel objeto destino, se pueden considerar atributos derivados. Un atributo derivado es comoun atributo en tanto en cuanto es una propiedad del objeto en si y calcularlo no va acambiar el estado del objeto.

El modelo de objetos debería distinguir, generalmente, los atributos base independien-tes de los atributos derivados dependientes.

Page 26: Herramientas del Análisis y Diseño Orientado a Objetosexa.unne.edu.ar/informatica/anasistem1/public_html/... · Cuando varias personas trabajan en un sistema o en un programa, los

CAPÍTULO6. HERRAMIENTAS DEL ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS201

Nombre

País

Nombre

Ciudad

tiene-como-capital

Figura~6.30: Asociaciones

Enlaces y asociaciones

Los enlaces y asociaciones son los medios para establecer relaciones entre objetos y clases.Un enlace es una conexión física o conceptual entre instancias de objetos. Un enlace

es una instancia de una asociación.Una asociación describe un grupo de enlaces con estructura y semántica comunes.

Todos los enlaces de cada asociación conectan objetos procedentes de las mismas clases.Las asociaciones y los enlaces suelen aparecer como verbos en la de…nición del problema.Las asociaciones describen un conjunto de enlaces potenciales del mismo modo que lasclases describen un conjunto de objetos potenciales.

Las asociaciones son inherentemente bidireccionales. El nombre de una asociaciónbinaria suele leerse en un cierto sentido, pero la asociación binaria se puede recorrer enambas direcciones. La dirección implicada por el nombre es la dirección hacia delante; ladirección opuesta es la dirección hacia atrás.

Las asociaciones suelen implementarse en los lenguajes de programación como punterosque van desde un objeto hasta otro.

La implementación de asociaciones en forma de punteros es perfectamente admisible,pero las asociaciones no deberían modelarse de esta manera.

Aun cuando las asociaciones se modelan como si fueran bidireccionales, no es necesarioimplementarlas en ambos sentidos.

Los nombres de las asociaciones se ponen en cursiva. El nombre de la asociación sepuede omitir si una pareja de clase tiene única asociación cuyo signi…cado sea obvio.

Las asociaciones pueden ser binarias, ternarias o de orden superior. En la practica, lainmensa mayoría van a ser binarias o cali…cadas.

La …gura siguiente muestra una asociación ternaria.

Proyecto Lenguaje

Programador

Figura~6.31: Asociación Ternaria

Page 27: Herramientas del Análisis y Diseño Orientado a Objetosexa.unne.edu.ar/informatica/anasistem1/public_html/... · Cuando varias personas trabajan en un sistema o en un programa, los

CAPÍTULO6. HERRAMIENTAS DEL ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS202

Usuario Servidor

Figura~6.32: Multiplicidad

Ejemplo 6.12 Los programadores utilizan lenguajes de computación aplicados a proyec-tos.

El símbolo de OMT para asociaciones generales ternarias y n-arias es un rombo conlíneas que lo conectan con las clases relacionadas. El nombre de la asociación es escribeal lado del rombo.

Los nombres de la asociaciones son opcionales y es una cuestión de juicio personal enel momento del modelado. Las asociaciones suelen dejarse sin nombre cuando es posibleidenti…carlas fácilmente por sus clases. Esta convención no funciona si existen múltiplesasociaciones entre las mismas clases.

Multiplicidad

La multiplicidad especi…ca el número de instancias de una clase que pueden estar relacio-nadas con una única instancia de una clase asociada. La multiplicidad limita el númerode objetos relacionados.

Existen terminadores de línea que indican ciertos valores frecuentes de multiplicidad.Un circulo negro es el símbolo OMT de denota muchos, lo cual quiere decir cero o más.Un circulo blanco indica opcional, lo cual quiere decir cero o uno. Una línea sin símbolosde multiplicidad denota una asociación uno a uno.

La multiplicidad depende de suposiciones y de la forma en que se de…nan los límitesdel problema. No hay que preocuparse por la multiplicidad en la fase inicial del desarrollode sistemas.

Atributos de los enlaces

Un atributo de enlace es una propiedad de los enlaces de una asociación. En la …gurasiguiente, permiso de acceso es un atributo de Puede Acceder. Todo atributo de enlacetiene un valor para cada enlace según se ilustra mediante los datos dados como ejemploen la parte inferior de la …gura.

La notación OMT para un atributo de enlace es un cuadro ligado a la asociaciónmediante un lazo; puede aparecer uno o más atributo de enlace en la segunda región delcuadro.

Modelado de una asociación en forma de clase: Clase asociación

En algunos ocasiones resulta útil modelar las asociaciones como clases. Cada enlace pasaa ser una instancia de la clase (similar al objeto asociativo en el AS/DS).

Resulta útil modelar las asociaciones como clases cuando los enlaces pueden participaren asociaciones con otros objetos o cuando están sometidos a operaciones.

Page 28: Herramientas del Análisis y Diseño Orientado a Objetosexa.unne.edu.ar/informatica/anasistem1/public_html/... · Cuando varias personas trabajan en un sistema o en un programa, los

CAPÍTULO6. HERRAMIENTAS DEL ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS203

Archivo Usuario

permiso de acceso

/organización/temporario (lectura) Juan Gomez/organización/archivos (lectura-escritura) Carlos Peer

Association

Figura~6.33: Descripción de atributos de Enlaces

Nombre de rol

Un rol es un extremo de una asociación. Una asociación binaria posee dos roles, cadauno de los cuales puede poseer un nombre de rol. Un nombre de rol es un nombre queidenti…ca de forma única un extremo de una asociación. Los roles proporcionan una formade visualizar las asociaciones binarias como un recorrido desde un objeto hasta un conjuntode objetos asociados.

El nombre del rol es un atributo derivado cuyo valor es un conjunto de objetos rela-cionados. Los roles suelen aparecer como sustantivo en las descripciones de problemas.

Los nombres de rol son necesarios para las asociaciones entre dos objetos de la mismaclase.

Dado que los nombres de rol sirven para distinguir entre los objetos que están direc-tamente conectados con un objeto dado, todos los nombres de rol extremo …nal de lasasociaciones asociadas a una clase deben ser únicos. Aun cuando el nombre del rol seescribe junto al objeto de destino de una asociación, se trata en realidad de un atributoderivado de la clase fuente y debe ser único dentro de ella. Por la misma razón ningúnnombre de rol debería ser igual a un nombre de atributo de la clase origen.

Clasi…cación

Normalmente, los objetos del lado muchos de una asociación no tienen orden explícito yse pueden considerar como un conjunto. Sin embargo, en algunas ocasiones los objetosestán ordenados explícitamente.

Un conjunto ordenado de objetos en el extremo muchos de la asociación se indicaescribiendo {ordenado} al lado del símbolo de multiplicidad correspondiente al rol.

La clasi…cación es una clase especial de restricción.

Page 29: Herramientas del Análisis y Diseño Orientado a Objetosexa.unne.edu.ar/informatica/anasistem1/public_html/... · Cuando varias personas trabajan en un sistema o en un programa, los

CAPÍTULO6. HERRAMIENTAS DEL ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS204

UsuarioEstación de

trabajo

está autorizado en

prioridadprivilegios

comenzar sesión

Autorización

Directorio

directorio origen

Figura~6.34: Asociación en forma de Clase

Persona Compañiatrabaja para

empleado empresario

empleadoOscar VallejosLuciano VallejosLaura Vallejos

empresarioSimpleSimpleSimple

Figura~6.35: Ejemplo de nombre de Rol

Cuali…cación

Una asociación cuali…cada o cali…cada relaciona dos clases de objetos y un cuali…cador. Elcuali…cador es un atributo especial que reduce la multiplicidad efectiva de una asociación.Las asociaciones uno a muchos y muchos a muchos pueden ser cuali…cadas. El cuali…ca-dor distingue entre el conjunto de objetos que se encuentra en el extremo muchos de laasociación. Una asociación cuali…cada también se puede considerar como una forma deasociación ternaria.

Un cuali…cador se dibuja en la forma de un cuadro pequeño en el extremo de la línea

Ventana Pantallavisible en

{ordenado}

Figura~6.36:

Page 30: Herramientas del Análisis y Diseño Orientado a Objetosexa.unne.edu.ar/informatica/anasistem1/public_html/... · Cuando varias personas trabajan en un sistema o en un programa, los

CAPÍTULO6. HERRAMIENTAS DEL ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS205

Directorio Archivonombre de archivo

Figura~6.37: Uso de Cuali…cadores

de asociación que se encuentra más próximo a la clase a la cual cali…ca.

Agregación

Una agregación es la relación parte-todo o una-parte-de en la cual los objetos que re-presentan los componentes de algo se asocian a un objeto que representa el ensamblajecompleto.

Ordenador

Caja del

SistemaMonitor Ratón Teclado

1+

UPCChasis RAM Ventilador

Figura~6.38: Grá…ca de agregación

La agregación es una forma fuertemente acoplada de asociación, con una cierta cantidadde semántica adicional.

Las propiedades más signi…cativa son:

² Transitividad, esto es, A es parte de B y B es parte de C, entonces A es parte de C.

² Antisimétrica, esto es, si A es parte de B, entonces B no es parte de A.

Las agregaciones se dibujan igual que las asociaciones, salvo por un pequeño romboque indica el extremo de ensamblaje de la relación.

La agregación puede poseer un número arbitrario de niveles.

Generalización y Herencia

La generalización y la herencia son potentes abstracciones para compartir similitudes entreclases al mismo tiempo que se mantienen sus diferencias.

Page 31: Herramientas del Análisis y Diseño Orientado a Objetosexa.unne.edu.ar/informatica/anasistem1/public_html/... · Cuando varias personas trabajan en un sistema o en un programa, los

CAPÍTULO6. HERRAMIENTAS DEL ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS206

La generalización es la relación entre una clase y una o más versiones re…nadas de esamisma clase. La que se esta re…nado se denomina la superclase y cada versión re…nada sedenomina subclase.

Los atributos y operaciones comunes a un grupo de subclase se asocian a la super-clase y son compartidos por todas las subclases. Se dice que cada subclase hereda lascaracterísticas de su superclase.

La generalización y la herencia son transitivas a través de un número arbitrario deniveles. Los términos ascendente y descendente hacen alusión a la generalización de clasesa través de niveles múltiples. Una instancia de una subclase es simultáneamente unainstancia de todas sus clases antecesoras.

Toda operación aplicable a una clase antecesora podrá ser aplicada a una instanciasuya. Toda subclase hereda, no solamente todas las características de sus antecesoras sinoque además añade sus propios atributos y operaciones especí…cos.

colorposicion cnetrogrosor plumatipo pluma

moverseleccionarrotarvisualizar

Figura

Dimensión 0

escalado

Dimensión 1

escaladollenado

Dimensión 2

visualizar

Punto

visualizar

Línea

visualizar

Arco

visualizar

Esplín

visualizar

Polígono

visualizarrotar

Círculo

Dimensión

Figura~6.39: Uso de Generalización y Herencia

La notación para la generalización es un triángulo que conecta una superclase con sussubclases. La superclase se conecta mediante una línea a la parte superior del triángulo.Las subclases se conectan mediante líneas a una barra horizontal asociada a la base dltriángulo. Por comodidad, se puede invertir el triángulo y se pueden conectar las subclasestanto a la parte superior de la barra como a la parte inferior pero, si es posible, la superclasedebería dibujarse en la parte superior y las subclases en la parte inferior.

Los puntos suspensivos de clase dependientes (tres puntos) indica que existen subclaseadicionales que no se muestran en el diagrama, quizá porque no haya sitio en el folio y semuestran en otro lugar o a lo mejor, porque la enumeración de subclases todavía no estacompleta.

Las palabras que se escriben al lado de los triángulos en un diagrama son discriminado-res. Un discriminador es un atributo de enumeración de tipo que indica que propiedad delobjeto esta siendo abstraída por una relación de generalización en particular. Solamentese debe discriminar una propiedad de cada vez.

Page 32: Herramientas del Análisis y Diseño Orientado a Objetosexa.unne.edu.ar/informatica/anasistem1/public_html/... · Cuando varias personas trabajan en un sistema o en un programa, los

CAPÍTULO6. HERRAMIENTAS DEL ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS207

El discriminador es, simplemente, un nombre para la base de la generalización. Losvalores del discriminador están inherentemente en correspondencia uno a uno con la sub-clases de la generalización. El discriminador, es una parte opcional de la relación degeneralización; si se incluye un discriminador, deberá ser dibujado al lado del triángulo degeneralización.

No se deben anidar las subclases con demasiada profundidad. Las subclases muyanidadas pueden ser difíciles de entender, al igual que los bloques de código profundamenteanidados de un lenguaje basado en procedimientos.

En la práctica, el que una subclase esté o no demasiado anidada depende del juicio yde los detalles particulares del problema considerado.

Los términos herencia, generalización y especialización se re…eren a aspectos de la mis-ma idea y suele ser posible utilizarlos de forma intercambiable. Se utilizará generalizaciónpara hacer alusión a la relación entre clases, mientras que herencia aludirá al mecanismoempleado para compartir atributos y operaciones empleando la relación de herencia. Lageneralización y la especialización son dos puntos de vista distintos de la misma relaciónvista desde la superclase o desde las subclases. La palabra generalización proviene delhecho consistente en que la superclase generaliza a las subclases. La especialización hacealusión al hecho consistente en que las subclases re…nan o especializan a la superclase.

Page 33: Herramientas del Análisis y Diseño Orientado a Objetosexa.unne.edu.ar/informatica/anasistem1/public_html/... · Cuando varias personas trabajan en un sistema o en un programa, los

CAPÍTULO6. HERRAMIENTAS DEL ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS208

6.5 Preguntas y Ejercicios de Revisión

1. Que de…nimos en el AEO.

2. Describa el concepto de Exclusividad Mutua.

3. Explique cada caso de cardinalidad.

4. Que entiende por Jerarquía de Generalización.

5. Que son los supertipo y subtipo.

6. Que son los diagramas de rami…cación. Cuando debemos usarlos.

7. Explique el concepto de Jerarquía Compuesta.

8. Que son los objetos derivados.

9. Que de…nimos en el ACO.

10. Que son los estados. Ejemplos.

11. Que son los eventos. Ejemplos.

12. Como gra…camos un ciclo vital de un objeto. Explique.

13. Con que herramienta gra…camos la iteración de los objetos.

14. Que son las Operaciones y los Métodos..

15. De ejemplos de Reglas de activación..

16. De ejemplos de Condiciones de Control. Inclusive con guardias.

17. Describa los DFO. Componentes..

18. Que es una clase. Selección de método.. Polimor…smo.

19. Que entiende por diagrama de clase.

20. Que entiende por diagrama de instancias.

21. De…na. De ejemplos y gra…que: Atributos, Enlaces, Asociaciones..

22. De un ejemplo de asociación utilizando cuali…cadores.

Page 34: Herramientas del Análisis y Diseño Orientado a Objetosexa.unne.edu.ar/informatica/anasistem1/public_html/... · Cuando varias personas trabajan en un sistema o en un programa, los

CAPÍTULO6. HERRAMIENTAS DEL ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS209

Referencia Bibliográ…cas[3] Grady Booch. Analisis y Diseño Orientado a Objetos. Prentice Hall, 1998.[12] James Rumbaugh. Modelado y diseño orientado a Objetos. Prentice Hall, 1998.[14] James Martin y James Odell. Analisis y Diseño Orientado a Objetos. Prentice

Hall, 1994.