Вы находитесь на странице: 1из 112

HERRAMIENTAS CASE PARA MODELAMIENTO DE DATOS ORIENTADO A OBJETOS

PABLO SANCHEZ

PowerDesigner y los OOM


PowerDesigner OOM es una poderosa herramienta de

diseo para modelamiento orientado a objetos


Brinda todas las ventajas de implementacin de una herramienta grfica para diseo por objetos Con PowerDesigner, se puede:
Construir un OOM siguiendo la notacin de diagramas UML Generar archivos fuentes de clases en Java (.java) Generar objetos PowerBuilder Hacer re-ingeniera de archivos Java (.class, .java o .jar) Hacer re-ingeniera de objetos PowerBuilder Generar y/o reversar a/de otros lenguajes

Facilidades con PowerDesigner


OOM es uno de los tres tipos de modelos que

maneja PowerDesigner

En PowerDesigner, se puede:

Los otros modelos son: modelo conceptual y modelo fsico Importar un modelo conceptual (CDM) Importar un modelo fsico (PDM) Generar un CDM o PDM Ajustar un OOM a las condiciones fsicas y consideraciones de rendimiento Ajustar e imprimir modelos

Interfase de PowerDesigner
La ventana inicial de PowerDesigner permite escoger el

modelo a trabajar
La ventana principal est subdividida en pneles que se

usan para ver diferentes aspectos relacionados con el rea de trabajo (workspace)
Los pneles se pueden manipular para colocarlos en un determinado sitio en un determinado tamao

Por omisin, la ventana principal muestra tres pneles:


Explorador de objetos rea de edicin rea de estado
(contina)

Interfase de PowerDesigner

Explorador de objetos
El explorador permite manipular

simultneamente mltiples modelos en el rea de trabajo


El navegador se puede usar para

aadir o quitar modelos del rea de trabajo

rea de edicin
El rea de edicin

es el rea donde se edita el modelo actual La paleta se puede usar para aadir objetos al modelo y dibujar relaciones

Ventanas de salida y lista de resultados


Las ventanas de salida y lista de resultados sirven para dar una

realimentacin de los procesos que se llevan a cabo, por ejemplo, cuando se chequea un modelo o se genera cdigo
Esas ventanas se pueden dejar flotantes o en determinado lugar

como pneles

Barra de herramientas
Con la barra de

herramientas se puede manipular el rea de trabajo, modelos en el rea de trabajo y reportes Se puede fijar y ajustar la barra a las necesidades del usuarios

Manipulando modelos
Para crear modelos,

seleccionar File New del men, o usar la barra estndar de herramientas Los modelos se pueden abrir desde el explorador, desde el men File o utilizando la barra estndar de herramientas Se presentan opciones para grabar, cerrar o desligar modelos del rea de trabajo

Uso de la paleta
La paleta aparece despus de

crear o abrir un modelo


la paleta se usa para ejecutar

tareas comunes, tales como aadir clases, asociaciones o generalizaciones


Cada tipo de modelo tienen

una paleta especfica


La paleta puede ser flotante o

anclada en un determinado sitio

Fijar las propiedades del modelo


Para fijar las propiedades

del modelo se debe usar la ventana Model Properties


Para editar la ventana de

propiedades seleccionar Model Model Properties del men o dar clic derecho en el diagrama y seleccionar Properties

Fijar las opciones generales del espacio de trabajo


Se pueden fijar las

opciones generales
Aplican a todos los modelos en el rea de trabajo

Seleccionar

Tools General del men

Fases del anlisis y diseo OO


La fase de anlisis tpicamente enfocada al qu:
Proceso en el cual se pueden identificar clases que juegan un rol para alcanzar los requerimientos y objetivos del sistema Usualmente no se necesita tomar decisiones acerca de los lenguajes que se van a utilizar en la implementacin
Los resultados del anlisis se elaboran y preparan para aproximarse a una implementacin particular para un marco dado Se identifican y definen objetos adicionales que se necesitan para soportar la implementacin Tpicamente durante el diseo se necesitan decisiones acerca de los lenguajes para implementacin y ambientes de desarrollo

La fase de diseo tpicamente enfocada al cmo:

UML y OOM en PowerDesigner


PowerDesigner maneja los siguientes tipos de

diagramas UML:
Diagrama de clases Diagrama de casos de uso Diagramas de secuencia

Adicionalmente maneja:
Diagrama de actividades Diagrama de componentes

Diagrama de clases
Una clase es una categora o grupo de cosas que

tienen atributos similares (propiedades) y un comportamiento comn (operaciones)


Un objeto es una instancia de una clase
Una cosa en particular que tiene valores especficos de los atributos

El diagrama de clases describe los tipos de objetos

en el sistema y las relaciones que existen entre ellos

Smbolos en los diagramas de clases


Rectngulo dividido en tres secciones:
Nombre Atributos Operaciones

Lneas que conectan rectngulos para mostrar relaciones

Casos de uso
Los casos de uso registran el comportamiento del

sistema deste el punto de vista de un usuario externo Ivar Jacobsen, es el padre de los casos de uso Un caso de uso es una secuencia de acciones que un actor ejecuta en un sistema para conseguir un objetivo particular No se presumen especificaciones de diseo o de implementacin Indica qu requerimientos se estn haciendo

Actores
Rol que un usuario juega en el sistema Los actores llevan a cabo los casos de uso Los actores no necesitan ser personas
Puede ser un sistema externo que necesita informacin del sistema
Ejemplo: Un sistema genera un archivo que es usado por el sistema contable cada noche. En este caso el sistema contable es el actor que necesita de ese archivo

Un actor puede ejecutar muchos casos de uso o un

caso de uso puede ser ejecutado por muchos actores

Diagramas de casos de uso


Ilustra actores y su

interaccin con los casos de uso Los casos de uso aparecen como valos Los actores se representan por un mueco Las lneas de asociacin conectan un actor a un caso de uso y representan la comunicacin entre ellos

Diagramas de casos de uso


Tambin muestran relaciones

entre casos de uso Se pueden usar para mostrar dependencias entre roles de actores Los actores que inician estn a la izquierda de los casos de uso Los actores receptores estn a la derecha El rectngulo representa los lmites del sistema
Encierra los casos de uso, los actores deben estar fuera del sistema

Documentacin de los casos de uso


La documentacin de un caso de uso consiste de:
Una breve descripcin Identificacin del actor que inicia el caso de uso Precondiciones para el caso de uso Flujo detallado de eventos Detalle del manejo de excepciones y errores Post-condiciones cuando se ha terminado el caso de uso Actor que se beneficia del caso de uso Tambin se puede listar los requisitos particulares para un determinado escenario o camino del caso de uso

Debe utilizar los trminos del dominio se pueden usar

nombres de clases como nombres en los textos de los casos de uso

Documentacin de los casos de uso


El flujo de los eventos debe describir:
Cmo y cundo inician y terminan los casos de uso Cundo los casos de uso interactan con actores Qu informacin se intercambia entre el actor y el caso de uso

Relaciones de los casos de uso


Inclusin utiliza un paso de un caso de uso en otro

caso de uso
Ejemplo: El caso de uso Cancelar una Orden incluye el caso de uso Localizar una Orden

Relaciones de los casos de uso


Extensin crea un nuevo caso de uso aadindole

pasos al caso de uso existente. Es una alternativa para el flujo de eventos


Representada por una lnea de dependencia con el estereotipo <<extend>> Ejemplo: El caso de uso Colocar una Orden puede incluir las etapas del caso de uso Descuento para Cliente Frecuente

Diagramas de secuencia
Un sistema en funcionamiento tiene objetos que interactan

entre s a travs del tiempo


Los diagramas de secuencia muestran la interaccin dinmica

entre objetos a travs del tiempo

Aproximacin general al anlisis y diseo OO


Desarrollar un modelo de clases basado en un

problema propuesto y/o entrevistas con clientes Una vez conocida la terminologa, comenzar a hablar con los usuarios para identificar actores y casos de uso Escribir una descripcin bsica de los casos de uso para describir los requerimientos funcionales en trminos generales Para cada caso de uso:
Identificar los objetos que participan en el escenario establecido Actualizar el diagrama de clases
(contina)

Aproximacin general al anlisis y diseo OO


Hacer entrevistar adicionales para detallar el curso bsico de

la accin
Describir el camino comn ms frecuente, el menos transitado y los caminos alternos en casos de condiciones de error

Continuar la actualizacin de los diagramas de clases, con

los atributos y operaciones que se vayan encontrando


Dibujar un diagrama de secuencia para mostrar las

iteraciones basadas en tiempo entre objetos y el intercambio de mensajes entre ellos


Finalizar el modelo esttico aadiendole informacin

detallada de diseo

Crear un modelo para anlisis a nivel de clases


Primero pensar acerca del qu
El cmo vendr ms tarde

Etapas para preparar el modelo de objetos a nivel de anlisis


1. Identificar objetos en el dominio del problema 2. Identificar clases y grupos de objetos en ellos 3. Describir relaciones entre las clases

Los pasos 1 y 2 de este proceso no son totalmente distintos


A medida que explore el dominio del problema:
Cualquier cosa que encuentre es un objeto Los grupos de cosas son clases

Paso 1: Identificar objetos


El trmino objeto se utiliz formalmente en el lenguaje Simula en los aos 60 para simular algunos aspectos de la realidad

Qu es un objeto?
Un objeto es cualquier cosa, real o abstracta, del cual podemos almacenar datos y mtodos que manipulen esos datos

Un objeto es una entidad


Tiene propiedades (tiene atributos) Hace cosas (da servicios o tiene mtodos)

En un sistema orientado a objetos, cualquier cosa es un objeto


Ejemplos: Usuarios, ventanas, registros, archivos, clientes, formas, facturas

Atributos de los objetos


Los atributos describen un objeto en una forma que es relevante en el dominio del problema Los atributos pueden ser objetos anidados o ser simplemente tipos de datos Atributos tpicos para un empleado:

Nombre Apellidos Direccin Salario

Operaciones de los objetos


Una operacin es algo que el objeto puede hacer o que uno le puede hacer al objeto Operaciones tpicas de un empleado:

Consultar el nmero del Seguro Social Consultar el nombre Colocar el nombre Consultar la direccin Calcular el salario

Rol de las clases: agrupar objetos


El rol de una clase es definir los atributos y mtodos (estado y comportamiento) de sus instancias Una instancia de una clase es un objeto La clase Empleado, por ejemplo, debe definir la propiedad Direccin
Cada empleado (objeto) tendr sus propios valores para esta propiedad, como Cra 30 # 45-05

Clasificacin de objetos
La clasificacin inteligente es un trabajo intelectual duro y generalmente viene a travs de un proceso incremental e iterativo (Booch) Martin y Odell han observado que en el anlisis y diseo orientado a objetos, de hecho, un objeto puede ser categorizado de ms de una manera

No hay un caso tal que podamos decir ese es el nico conjunto correcto de clases

Apariencias en la clasificacin

Estudiante

Empleado

Paciente

Cliente

Paso 2: Identificar clases


La identificacin de clases es iterativo e incremental Pueden ocurrir mltiples iteraciones entre el desarrollo del modelo y la identificacin y anlisis de los casos de uso El modelo esttico se refina incrementalmente en iteraciones sucesivas a travs del modelo dinmico Para identificar clases se necesitan varias aproximaciones a travs del tiempo

Tcnica del sujeto-verbo-complemento_directo (tambin llamada el sustantivo de una frase) Aproximacin a categoras comunes de clases (estereotipos) Casos de uso

Aproximacin al sustantivo de una frase


Tcnica de la inspeccin gramatical Mirar los sustantivos en las frases de los documentos, entrevistas y en las especificaciones requeridas Tpicamente: Sustantivos y frases con sustantivos tienen objetos y atributos Verbos y frases con verbos tienen operaciones y asociaciones Los posesivos de una frase indican los atributos del sustantivo mas que los objetos Una forma til de comenzar a trabajar en el dominio de un modelo No hay que demorarse mucho usando esta tcnica porque generalmente se detiene el anlisis-

Uso del sustantivo de una frase


1. Comenzar resaltando todos los sustantivos y sustantivos que se encuentren en las frases 2. Hacer una lista de las palabras resaltadas 3. Eliminar duplicados 4. Dejar todos los sustantivos en singular 5. Eliminar las clases irrelevantes Clases que no son pertinentes al dominio del problema 6. Eliminar las clases que son confusas (a las que en una frase no se les encuentra un propsito) Clases que son difciles de definir y que no tienen un propsito claro 7. Seleccionar las clases relevantes y las confusas para las cuales se puede identificar un propsito Si es necesario, identificar mltiples atributos

Nombres de las clases


Los nombres de las clases deben ser sustantivos en singular Usar nombres que acepten los usuarios

Evitar sinnimos y nombres ambiguos


Asegurar que el nombre de la clase refleja su naturaleza intrnseca Por convencin, el nombre de la clase debe comenzar en mayscula En palabras compuestas, usar mayscula al comienzo de cada palabra

Ejemplo: VentanaDelCliente

Refinando las clases


Identificar clases redundantes: No guarde dos clases que tengan la misma informacin o signifiquen lo mismo en diferente contexto Identificar adjetivos para las clases: Un objeto representado por un nombre se comporta de manera diferente cuando se le aplica un adjetivo? Si el uso de un adjetivo hace que el comportamiento del objeto sea diferente, entonces crear una nueva clase Ejemplo, si Empleado y Vendedor se comportan de manera diferente, entonces se deben clasificar en clases diferentes

(contina )

Refinando clases
Tener cuidado con las clases que tienen atributos pero no identifican operaciones
Atributos de clases son objetos tentativos que solo se usan como valores Redefinir esas clases como atributos y no como clases

Ejemplo: las estadsticas asociadas con un afiliado, no son clases, sino atributos de la clase Afiliado

Identificando clases: Estereotipos


Los estereotipos representan un mecanismo extendido del UML Las extensiones UML definidas por los usuarios se capacitan a travs del uso de estereotipos Los estereotipos comunes, incluyen: Dominio del problema (a menudo llamado Entidad) Interfase de usuario (a menudo llamado Lmite) Administracin del sistema (a menudo llamado Utilidad) Dedicarse al anlisis de un estereotipo a la vez, puede causar confusin en las clases del estereotipo

Ejemplos de interfases de usuario


Ejemplos de interfase de

estereotipo:
Contenedor Vista Control

Ventana MDI Ventana principal Botn de accin, men

Ejemplos de dominios de problemas


Ejemplos de Entidad

estereotipo
Camin Sistema de nmina Juego de football Programador Matrimonio

Autorizacin de crdito Especificacin de un programa Departamento contable Vehculo

Ejemplos de un sistema administrador


Utilidad estereotipo
Administracin de datos Administracin de tareas Manejo de excepciones Communicaciones Seguridad y autorizacin Agente/coordinador

Ejemplo
Bodega de datos Ordenador de tareas Error Mensaje Seguridad Transaccin

Paso 3: Describir las relaciones entre clases


Durante el anlisis, iniciar el en dominio del problema

Despus de identificar las clases y objetos en el

dominio del problema, pasar a definir las relaciones entre ellos


Las relaciones pueden ser de tres tipos principales:
Asociacin Agregacin/composicin Generalizacin (herencia)

Detalles ms adelante

Crear un diagrama de clases en PowerDesigner


Para crear un nuevo

diagrama de clases, dar clic derecho en el nodo de modelo del explorador de objetos y seleccionar New Class Diagram

Crear clases en PowerDesigner


Seleccionar

Model Classes o usar la paleta de herramientas

Modificar clases en PowerDesigner


Dar doble clic en la

clase sobre el diagrama o dar clic derecho y seleccionar una opcin

Propiedades de las clases en PowerDesigner


Nombre Cdigo Comentarios Estereotipo Tipo Visibilidad Cardinalidad Persistencia Abstracta Final Generar

Desarrollar los casos de uso


Despus de desarrollar el diagrama inicial de clases

representando el dominio del problema, comenzar a hablar con los usuarios


Hablar con los usuarios tpicos y saber qu quieren ellos que haga el sistema Tomar cada cosa discreta que el usuario quiere que haga, darle un nombre y escribir una corta descripcin Lo ms fcil es comenzar elaborando una lista de actores y las salidas de los casos de uso por cada actor Una buena fuente para identificar los casos de uso son los eventos externos Identificar los eventos ante los cuales necesita reaccionar

Ideas:

Desarrollar los casos de uso


El resultado de las entrevistas iniciales deben ser los

actores y los casos de uso de ms alto nivel que describen los requerimientos funcionales en trminos generales
Esta informacin fija los lmites y el alcance del sistema

Las entrevistas posteriores con los usuarios se harn para

desarrollar en detalle esos requerimientos


Deben resultar nuevos casos de uso que satisfagan relaciones de inclusin y extensin

Crear diagramas de casos de uso en PowerDesigner


Dar clic derecho en el

nodo modelo del explorador de objetos y seleccionar New Use Case Diagram

Paleta del diagrama de casos de uso


Actores Casos de uso Generalizacin Asociacin Dependencia

Propiedades del objeto casos de uso


Nombre

Cdigo
Comentario Estereotipo

Documentar casos de uso


Pestaa de

especificaciones
Pasos de accin Puntos de extensin Excepciones Pre-condiciones Post condiciones

Editar con opciones del men

Implementar clases de casos de uso


Las clases e interfases se usan para implementar

casos de uso
Propiedades de las clases Crear una nueva clase

Documentar otros casos de uso


Diagramas relacionados
Encadenan clases, actores, casos de uso, a diferentes diagramas
Herramienta para abrir diagramas Propiedades del diagrama

Dependencias
Muestra dependencias de casos de uso:
Generalizaciones y asociaciones

Propiedades de los actores

Propiedades de la generalizacin
Una generalizacin es una

relacin entre el caso de uso ms general (el padre) y un caso de uso ms especfico (el hijo)
Visibilidad privado,

protegido, pblico

Propiedades de las asociaciones


Una asociacin es una

relacin unidireccional que describe el encadenamiento entre objetos Muy similar a las asociaciones en un diagrama de clases
La orientacin se da de
No especifica roles, cardinalidad o navegabilidad

acuerdo a si el actor da o recibe resultados

Propiedades de las dependencias


Una dependencia es una

relacin entre dos elementos del modelo, en los cuales un cambio en un elemento del modelo (elemento influyente) afecta a otro elemento del modelo (elemento dependiente)

Atributos
Un atributo es una informacin acerca de un objeto

Una definicin de datos para una instancia de una clase


Un atributo normalmente no tiene comportamiento (por

ejemplo, nmero)

Pero si el atributo es tambin un objeto, l tendr comportamiento Ejemplo:


Producto es una clase y tambin debe ser un atributo de la clase OrdenItem

Los nombres de los atributos deben ser significativos Los nombres de atributos y cdigos dentro de una clase

Cada atributo necesita una definicin clara y concisa

deben ser nicos

Ejemplos de atributos
Ejemplo de atributos para una clase Empleado:
PrimerNombre SegundoNombre PrimerApellido

Ejemplo de un atributo no recomendado para la clase

Empleado:
Administrador
Esto es una relacin entre instancias de la clase empleado y no un atributo

Valores de los atributos


Un valor de un atributo es el valor del atributo para

una instancia particular de la clase


No se deben definir valores de un atributo durante el

modelamiento de objetos
Cada instancia tendr un valor para cada atributo de

la clase, a menos que contenga un valor nulo o no aplique

Dominio del problema y perspectiva del sistema


Los atributos de una clase dependen del dominio del problema
Ejemplo, un sistema de nmina de una compaa y un registro

de pacientes de un mdico deben tener la clase Persona


Algunos atributos de esta clase deben tener la misma perspectiva, otros pueden diferir :
Sistema de Nmina Nombre Direccion FechaNacimiento CodigoEmpleado CodigoTrabajo Salario Sistema Informacin de pacientes Nombre Direccion FechaNacimiento TipoDeSangre CiaAseguradora FechaUltimaVisita

Descubrir atributos durante el anlisis


Se descubren atributos durante la fase de anlisis de

un OOAD
Durante el anlisis, sustantivos, descripcin de sustantivos y adjetivos en las especificaciones y en la documentacin de casos de uso, se definen los atributos de una clase Durante el anlisis no es crtico identificar los tipos de datos para los atributos

Durante el diseo, se refinan las definiciones de los

atributos y tal vez algunos atributos se muevan a una clase ms relevante dentro de una jerarqua de clases

Definir atributos en PowerDesigner


Para aadir atributos a una

clase ir a la ventana Class Properties de una clase, seleccionar la pestaa Attibutes


Crear el nuevo atributo Reutilizar un atributo existente

Para ver la lista de todos los

atributos definidos en el modelos, seleccionar en el men principal Model Attributes


En esta lista no se pueden aadir atributos

Atributos necesitan atributos


Los atributos en PowerDesigner tienen un conjunto

completo de propiedades:

En la pgina General:
Parent Name Code Comment Stereotype Data Type Multiplicity Visibility Static Derived

En la pgina Detail:
Initial Value Changeability Domain Primary Identifier Indicator Migrated from Persistent
Code Data Type Length Precision Class Generation

Identificador
Un identificador es un atributo o una combinacin de

atributos que identifican de manera inequvoca cada instancia de una clase


Este trmino en OOM es equivalente en un CDM, en un PDM, o a llave primaria o alterna en un DDL Ejemplo: Codigo de la clase Estudiante

Cada clase debe tener al menos un identificador

Se pueden tener atributos y reglas del negocio para un

Si una clase tiene solamente uno, ese identificador por default es el identificador primario de la clase

identificador

Crear identificadores en PowerDesigner


1. Dar doble clic en la clase de un modelo 2. Seleccionar la pestaa Identifiers 3. Dar un clic en la lnea en blanco de la lista o Dar clic en Add a Row 4. Escribir el nombre y cdigo del identificador 5. Clic en OK

Aadir atributos a un identificador


Para aadir atributos a un

identificador:

1. En la ventana Identifier Properties, dar clic en la pestaa Attributes 2. Dar clic en Add Attributes 3. Colocar una marca en las cajas de seleccin para uno o ms atributos de la clase que se quieran escoger como un identificador 4. Clic en OK

Operaciones de una clase

Operaciones
Una operacin es lo que algunas veces puede hacer una clase

Cada clase tiene un conjunto de responsabilidades que definen

el comportamiento de la clase
Las responsabilidades de una clase son llevadas a cabo por sus

operaciones
Ejemplo, una responsabilidad de la clase Producto es dar el precio La operacin para cumplir esta responsabilidad puede ser:
Ver la informacin en la base de datos, o Calcular el precio

Una operacin debe ejecutar una funcin simple y cohesiva Una operacin se puede invocar para afectar el comportamiento

de una clase

Identificar operaciones
Durante la fase de anlisis, encontrar verbos y frases con verbos en la

documentacin de los requerimientos Las operaciones que necesitan las clases dependen del dominio del problema Ejemplo, para la clase Persona:
Sistema de Nmina TomarFechaNacimiento EnviarInforme ProducirCheque AsignarAdministrador Sistema Informacin de pacientes TomarFechaNacimiento RecibirPago ProducirFrmula AsignarCita

Identificar operaciones
Las operaciones por lo general corresponden a consultas

sobre los atributos de los objetos (a veces a las asociaciones)


Las operaciones son responsables del manejo de los

valores de los atributos tanto para consultas, actualizacin, lectura y escritura de instancias
Ejemplo: preguntas acerca de la clase Producto:
Qu servicios provee la clase Producto? y Qu informacin de la clase Producto se debe almacenar? (de un dominio conocido)

Nombres de las operaciones


Las operaciones deben tener un nombre que indique

su resultado, no pasos dentro de la operacin


Ejemplo de nombre poco aconsejable:
CalcularTotal( )
Indica que se debe calcular el total esto es una decisin de implementacin/optimizacin

Ejemplo de un nombre aceptable:


TomarTotal( )
Solamente indica la salida

(contina)

Nombres de las operaciones


Los nombres de las operaciones se deben tomar

desde la perspectiva del proveedor no del consumidor


Ejemplo, en una aplicacin el ingreso de una orden

es recibida desde un cliente


Para el cliente una operacin tiene esta responsabilidad cmo se debe llamar?
Aconsejable FijarOrden( ), DarOrden( ) No aconsejable TomarOrden( )
El cliente da la orden, el no toma la orden Usar la notacin con punto (Cliente.FijarOrden( )) para clarificar su uso

Aadir operaciones en PowerDesigner


Para aadir operaciones a

una clase:
Clic derecho y seleccionar Operations o Doble clic en clases para abrir la ventana de propiedades

Para ver una lista de todas

las operaciones, seleccionar Model Operations

Propiedades de las operaciones en PowerDesigne


Las operaciones tienen las siguientes propiedades:

Parent Name Code Comment Stereotype Return Type

Visibility Event Static Array Abstract Final

Polimorfismo
usan diferentes nombres de mtodos:
Cliente.GabarCliente( ) Factura.GrabarFactura( ) Orden.GrabarOrden( )

Los siguientes mensajes todos son para guardar cambios, pero

Usando los mismos nombres podemos dar mas consistencia:


Cliente.Grabar( ) Factura.Grabar( ) Orden.Grabar( )

El mismo mtodo registrado (nombre, argumentos, y tipos de

argumentos) definidos en diferente clase se llama polimorfismo

Categoras de polimorfismo
Operacional Mtodos polimorficos para clases no

relacionadas
Estrictamente es una seleccin de diseo del diseador OO Debe definir mtodos apropiados para cada clase Se puede obviar la construccin compleja de casos o los mensajes dinmicos

Inclusional Mtodos polimorficos implementados en una

jeraqua de clases usando herencia

Operaciones registradas
Una operacin de registro de una operacin consiste de:
Lista opcional de argumentos Retorno de la clase o tipo de dato

Durante el anlisis no se necesita llenar el registro de una

operacin
Se hace en la etapa de diseo

Descubrir clases adicionales


Si se especifica una operacin registrada, se deben

descubrir clases o atributos adicionales


Argumentos para la operacin Retorno de la clase TomarItemDeOrden( ) ItemDeOrden AadirCliente(Empresa XYZ) Cliente

Ejemplo:

Aadir esas clases y atributos adicionales al modelo


Se muestran en los diagramas de clases segn necesidad

Operaciones Abstractas
Algunas veces, los diseadores colocan operaciones en

clases abstractas que no estn totalmente implementadas, por ejemplo, no tienen definida la lgica
Las operaciones deben retornar el tipo de dato definido por la operacin registrada Esas operaciones se conocen como operaciones abstractas

Las operaciones abstractas son muy comunes en

interfases, un concepto de UML soportado por PowerDesigner y encontrado en Java (se ve ms adelante)

Ver operaciones heredadas

Para ver operaciones de superclases abstractas (ancestros), dar clic en el botn Inherited bajo la pestaa Operations

Dar clic en el botn Override para copiar la operacin registrada a su clase de tal manera que a esa subclase se debe aadir la lgica especfica

Operaciones de constructores y destructores


Constructores

Operacin llamada durante la instanciacin de un objeto que crea una instancia de una clase
Destructores

Operacin llamada durante la destruccin del objeto

Crear constructores y destructores default


Para crear constructores /

destructores default:
1. En la ventana Class Properties seleccionar la pestaa Operations 2. Abrir Add y seleccionar Default Constructor/Destructor

De acuerdo con el lenguaje

a utilizar, se tiene diferente comportamiento

Encapsulamiento Informacin oculta


El encapsulamiento previene el acceso directo a los

atributos de una clase (datos)

El encapsulamiento resulta en una interfase funcional


Los atributos se implementan como variables instanciadas declaradas privadas o protegidas por el objeto Todas las comunicaciones con el objeto se hacen va las operaciones pblicas

Como a las propiedades solo se llega va las operaciones (mtodos), un objeto controla el acceso a sus datos

pblica que hace uso del comportamiento del objeto

Las operaciones se pueden implementar como eventos definidos por el usuario o como funciones

Visibilidad
Visibilidad Indica cmo un objeto es visto y usado por

otros objetos
Privado
La operacin es visible y puede ser usada slo por el mismo objeto

Protegido
La operacin es visible al objeto mismo o a cualquier objeto descenciente (heredado de la misma clase)

Paquete
La operacin es visible a todos los objetos del mismo paquete

Pblico
La operacin es visible a todos los objetos

Atributos de encapsulamiento Implementacin


Define los atributos como variables instanciadas Encapsula las variables instanciadas definiendo su visibilidad

como privadas o protegidas


Declara las functions get y set como pblicas para acceder a

cada atributo
Para atributos de slo lectura, solamente declara la funcin

pblica get
Beneficios:
Previene cambios inesperados o no deseados de fuentes externas Cambios en la implementacin interna no hacen impacto en objetos externos

Crear Accessors y Mutators


Accessors son operaciones que

retornan el valor de una instancia de un atributo Mutators son operaciones que cambian el valor de una instancia de un atributo Para crear accessors y mutators:

En la ventana ClassProperties seleccionar la pestaa Attributes dar clic en Add y seleccionar Get/Set Operations

Relaciones entre objetos


Los sistemas abarcan muchas clases y objetos
Los objetos contribuyen al comportamiento de un sistema en colaboracin con otros La colaboracin se lleva a cabo a travs de relaciones entre los objetos

Vamos a ver dos tipos importantes de relaciones entre

clases y objetos:
Asociacin Agregacin/composicin

Super/sub clases (conocidas como generalizacin o

herencia) se ven ms adelante

Asociacin
Una referencia de una clase a otra es una asociacin
Las asociaciones se dibujan como lneas continuas entre un

par de clases

Implica que hay una conexin entre los objetos en las clases asociadas

Una asociacin representa una relacin estructural entre

Ejemplo: Juan trabaja para la IBM

objetos de diferente clase

Implementada como una variable en la clase referenciada


Ejemplo: un empleado trabaja en un departamento; el identificador del departamento se coloca como una variable en el objeto empleado

(contina )

Asociacin
Algunas asociaciones son implcitas o son de

conocimiento general
Las asociaciones generalmente aparecen como

verbos en las frases que enuncian el problema y representan relaciones entre las clases
Ejemplo: un Cliente puede ordenar artculos

Gua para identificar asociaciones


Ver asociaciones mirando los verbos y proposiciones en

las frases
Ejemplos: parte de, siguiente a, trabaja para, contenido en

Los patrones comunes de asociacin incluyen:


Asociacin de localizacin siguiente a, contenido en Asociacin de comunicacin hablar a, ordenar a

Ejemplo: A Cliente hace un pedido a un Vendedor


Tres clases: Cliente, Pedido, Vendedor El hecho de que un cliente haga un pedido implica que necesita una asociacin entre dos o ms de esas clases El Pedido no es parte de Cliente ni de Vendedor

Nombres de asociaciones y roles


Por claridad se le puede colocar un nombre a una asociacin
El nombre se muestra a lo largo de la lnea de asocin, entre los iconos de las clases El nombre de la asociacin generalmente es un verbo o una frase con un verbo

Un rol es un nombre que se coloca al final de una asociacin


El nombre del rol se coloca sobre la lnea de asociacin cerca de la clase que l modifica Uno o ambas terminaciones de las asociaciones pueden tener nombres de roles

Multiplicidad de las asociaciones


Multiplicidad es el nmero de instancias de una clase

relacionado con las instancias de otra clase


Hay que tomar dos decisiones acerca de la

multiplicidad, una a cada lado del final de la asociacin


Ejemplo: En la asociacin entre Cliente y Orden
Para cada instancia de Cliente, se pueden colocar 0 ms Ordenes Cada Orden es colocada por exactamente un Cliente

Crear Asociaciones en PowerDesigner


Para crear asociaciones en PowerDesigner,

utilizar la herramienta de asociacin de la paleta

Se pueden dar nombres a las asociaciones

Para dibujar una asociacin hacer clic en una clase, sostener y soltar en la otra clase

o definir roles para la asociacin con el fin de dar claridad a la asociacin entre las clases relacionadas
Usualmente se omite el nombre de la asociacin cuando se tienen roles

Propiedades de las asociaciones en PowerDesigner


Name Code Comment Stereotype Roles Classes Association Class Aggregation/ composition
Container Indicator

Multiplicity Ordering Navigable Visibility

Descubrir relaciones adicionales


Los argumentos de las operaciones y el retorno de las clase

denotan relaciones entre la clase, el argumento de la clase y/o el retorno de la clase


Ejemplo: La clase Orden tiene la operacin AadirItem (item)
Implica una relacin entre Orden y OrdenarItem

Se debe aadir cualquier relacin que se descubra en el

modelo y mostrarlo en el diagrama de clases

Agregacin y composicin son dos formas especiales de

Agregacin y composicin

asociacin Agregacin

Es una asociacin entre dos clases donde una de ellas est contenida en la otra Una instancia de la clase agregada puede ser sostenida por ms de una instancia de la clase contenedora a travs del tiempo

Composicin

Ejemplo: Un Empleado puede ser parte de un Departamento, pero puede pasar de un Departamento a otro a travs del tiempo

Una forma de agregacin en la cual las partes estn fuertemente ligadas y se ven como una sola cosa a travs del tiempo. Si el objeto compuesto se destruye, tambin sus partes
Ejemplo: ItemOrdenado es parte de unaOrden. Si la Orden se cancela/borra, ItemOrdenado tambin

Representacin de agregaciones y composiciones


Contenedor (clase al lado del diamante):
Especifica cual de las dos clase es la clase agregada o compuesta

Indicador (diamante):
Indica que la asociacin es una agregacin (diamante vacio) o una composicin (diamante lleno)

Agregaciones vs composiciones
Si en cualquier momento una clase es parte de otra, se

tiene una agregacin


La siguiente prueba ayuda a determinar qu tipo de

relacin es:
La clase agregada puede sobrevivir al contenedor (agregacin) o Una clase vive dentro de otra o es poseida por otra y no sobrevive al contenedor (composicin)
La clase compuesta crea dentro clases componentes Cuando el contenedor se detruye, el componente tambin

Gua para identificar composiciones


Para describir la relacin se utiliza la frase es parte de? Algunas operaciones sobre el conjunto aplican
Una puerta es parte de un camin

automticamente a sus partes?

Algunos valores de atributos se propagan del conjunto a

Al mover el camin, se mueve la puerta

todas o algunas de sus partes?

Hay una relacin asimtrica donde una clase es subordinada

El camin es azul, la puerta es azul

de la otra?

Una puerta es parte de un camin, un camin no es parte de una puerta

Identificar clases internas


Una clase interna (inner class) es una clase definida y

usada con otra clase definida (externa)

Se pueden usar clases internas para agrupar clases que

En Java son comunes las clases internas Forma fuerte de composicin porque solamente el todo conoce que la parte existe; esencialmente un objeto privado dentro de otro

lgicamente van juntas o que adicionalmente forzan encapsulamiento Cuando se hace reingeniera de una clase Java que contiene una o ms clases internas, se crea una clase externa y se crea una clase por cada una de las clases internas

(contina )

Identificar clases internas


Se crea un enlace de

dependencia entre cada clase interna y la clase externa a la que est atada
El nombre de cada clase interna tiene como prefijo el nombre de la clase externa

Aadir dependencias
Una dependencia es una relacin lgica entre dos

elementos del modelo en el cual un cambio de un elemento del modelo afecta al otro elemento del modelo La relacin de dependencia indica que una clase o interfase en un diagrama de componentes usa el servicio o facilidades de otra clase o interfase
Ms til cuando es una dependencia de una clase en otra, aun cuando no haya una asociacin explcita entre ellas

Propiedades de las dependencias


Una dependencia tiene las

siguientes propiedades:
Name: nombre de la dependencia Code: referencia al nombre de la dependencia Comment: comentarios Influent: el objeto independiente Dependent: el objeto dependiente Stereotype: estereotipo de la dependencia

Guardar pistas de dependencias


Guardar pistas de todas las

dependencias entre las clases asociadas puede ser muy difcil


Para este propsito, en la

ventana Class Properties seleccionar la pestaa Dependencies

Вам также может понравиться