Está en la página 1de 27

Representando objetos en UML

Un objeto es representado como un rectngulo con un nombre subrayado J Clark : Profesor


Objeto nombrado

: Profesor

Profesor J Clark

Objeto sin nombrar

Principios de orientacin a objetos


Abstraccin Encapsulacin Modularidad Jerarqua

Abstraccin
Una abstraccin es un modelo que incluye los aspectos esenciales, mas importantes o distintivos de algo y que suprime o ignora los detalles menos importantes. Una abstraccin es el resultado de eliminar distinciones para enfatizar lo comn.

Estudiante

Profesor

Es la localizacin de caractersticas, tales como propiedades y comportamientos, en una sola abstraccin que oculta su implementacin y decisiones de diseo asociadas detrs de una interfaz pblica .

Encapsulacin

La clave de la encapsulacin es la interfaz de mensajes de objetos. La interfaz asegura que toda la comunicacin con el objeto se lleva a cabo a travs de un conjunto de operaciones predefinidas. Las propiedades (atributos) que han sido encapsuladas no pueden ser manipuladas sin utilizar la interfaz provista.

Ejemplo encapsulacin
Professor Clark
Name: J Clark
Employee ID: 567138 HireDate: 07/25/1991 Status: Tenured Discipline: Finance MaxLoad:4

SetMaxLoad(4)
TakeSabbatical()

Modularidad
Es la descomposicin lgica de las cosas en grupos mas pequeos y simples que incrementan los logros de la ingeniera de software. Usualmente el sistema en desarrollo es demasiado complejo para entenderlo. Para hacer ese entendimiento mas fcil, el sistema se divide en componentes mas pequeos que pueden ser desarrollados y mantenidos independientemente. El dividir un sistema grande y complejo en un conjunto de piezas mas pequeas y manejables se llama modularidad.

Jerarqua
Es cualquier clasificacin u ordenamiento de abstracciones en una estructura de rbol. Existen diferentes tipos de jerarqua: de agregacin, clases, contenido, herencia, particin, especializacin y tipos (Diccionario de tecnologa de objetos) La jerarqua organiza diferentes elementos en grupos o categoras que indican su relacin. Por ejemplo la botnica y zoologa organizan plantas y animales en familias, especies y as sucesivamente. En cualquier sistema pueden haber mltiples jerarquas.

Clases
Existen muchos objetos identificados en un dominio Una clase es una descripcin de un grupo de objetos que comparten los mismos atributos, operaciones y semntica.
Un objeto es una instancia de una clase

Una clase es una abstraccin por que:


Enfatiza caractersticas relevantes Suprime otras caractersticas

La abstraccin nos ayuda a manejar la complejidad

Relacin entre clases y objetos


Una clase en una definicin abstracta de un objeto

Define la estructura y comportamiento de cada objeto en la clase Sirve como una plantilla para crear objetos

Nombres de clases
Un nombre de clase debe ser el sustantivo en singular que mejor caracteriza la abstraccin Dificultad al dar nombre a la clase puede ser indicio de una abstraccin pobremente definida Los nombres deben provenir directamente del vocabulario del dominio

Una forma de ver una clase es que esta consta de dos partes: la interfaz y la implementacin La interfaz puede verse y ser usada por otros objetos (clientes) La implementacin permanece oculta para los clientes Ocultar los detalles de la implementacin de un objeto se llama encapsulamiento u ocultar informacin El encapsulamiento ofrece dos tipos de proteccin. Protege: El estado interno de un objeto de corromperse por parte de los clientes El cdigo del cliente de cambios en la implementacin del objeto

Clases y encapsulamiento

El cdigo del cliente puede usar la interfase para una operacin El cdigo del cliente puede aprovechar la implementacin de una operacin La implementacin puede cambiar para: Corregir un falla Mejorar rendimiento Reflejar un cambio de polticas El cdigo del cliente no se ver afectado por cambios en la implementacin, reduciendo el efecto de onda en el que una correccin a una operacin fuerza a una correccin correspondiente en una operacin del cliente que a su vez causa un cambio en un cliente del cliente...

Beneficios del encapsulamiento

Relaciones entre clases

Qu es una asociacin?
Es la relacin semntica entre dos o mas clasificadores que especifica conexiones entre sus instancias
Una relacin estructural, especificando que objetos de una cosa estn conectados a objetos de otra

Las asociaciones se representan en los diagramas de clases con una lnea que conecta las clases asociadas
<<Entity>> <<Entity>>

Student

Schedule

Nombrando asociaciones
Para clarificar su significado, se le puede dar nombre a una asociacin El nombre se representa como una etiqueta colocada sobre la lnea de asociacin en el medio entre los conos de las clases Usualmente un nombre de asociacin es un verbo o una frase con verbos
<<controlador>> ManejadorInscripcin maneja <<entidad>> Curso

Qu es multiplicidad?
Es el nmero de instancias de una clase que se relaciona con una instancia de otra clase Para cada asociacin, hay dos decisiones de multiplicidad a hacer, una para final de la asociacin Por ejemplo, en la conexin entre Persona interpretando el rol del maestro y Curso Para cada instancia de Persona, muchos (cero o ms) cursos pueden impartirse Para cada instancia de Curso, exactamente una Persona es el maestro
<<Entity>>

Professor

+ instructor 0..1 0..*

<<Entity>>

CourseOffering

Indicadores de multiplicidad Sin especificar


Exactamente uno Cero o mas 1 0..*

Cero o mas Uno o mas Cero o uno Rango especfico Rango disjunto

* 1..* 0..1 2..4 2,4, 6

La multiplicidad responde dos preguntas: La asociacin es obligatoria o es opcional? Cul es el mnimo y mximo nmero de instancias que se pueden enlazar a una instancia?

Qu es agregacin?
Es una forma especial de asociacin que modela una relacin todo-parte entre un agregado (el todo) y sus partes
Es una relacin es parte de

La multiplicidad se representa como en otras asociaciones

Todo 1 0..1

Parte

Ejemplos de agregacin. Una biblioteca contiene libros, un departamento est integrado por empleados. Para modelar una agregacin, el agregado (departamento) tiene una relacin de agregacin con sus partes (empleados). Una relacin de agregacin que tiene una multiplicidad mayor a uno para el agregado es llamada compartida (shared). Destruyendo el agregado no necesariamente se destruye a sus partes. Se utiliza cuando existe una relacin fuerte entre dos clases, de manera que la misma instancia puede participar en dos diferentes agregaciones

Agregacin

Agregacin o asociacin?
Si dos objetos estn firmemente unidos por una relacin todo-parte

La relacin es una agregacin


Si los dos objetos se consideran usualmente como independientes, an cuando muchas veces se enlazan

La relacin es una asociacin

La frase parte de es usada para describir la relacin? Una Puerta es parte de un Carro Algunas operaciones en el todo automticamente se aplican a sus partes? Mover el Carro, Mover la Puerta Se propagan algunos de los valores de los atributos del todo a todas o algunas de sus partes? El Carro es azul, la Puerta es azul Existe una asimetra intrnseca en la relacin donde una clase es subordinada a la otra? Una Puerta ES parte de un Carro, un Carro NO ES parte de una Puerta

Pruebas agregacin

Generalizacin
Es una relacin entre clases donde una clase comparte la estructura y/o comportamiento de una o mas clases Define una jerarqua de abstracciones en la cual una subclase hereda de una o mas superclases Es una relacin es un tipo de

Ejemplo: herencia simple


Account Superclase (Padre) (Ancestro)
- balance - name - number + withdraw() + createStatement()

Relacin de generalizacin

Savings

Checking

Subclases (Hijo) (Descendientes)

Ejemplo: herencia mltiple


FlyingThing Animal

Herencia mltiple

Airplane

Helicopter

Bird

Wolf

Horse

Qu se hereda?
Una subclase hereda los atributos, operaciones y relaciones del padre Una subclase puede
Agregar atributos, operaciones adicionales Redefinir operaciones heredadas o relaciones

Los atributos, operaciones y/o relaciones se muestran al nivel aplicable mas alto en la jerarqua

Consideraciones de herencia
Ya que las relaciones de herencia no se refieren a objetos individuales

La relacin no tiene nombre La multiplicidad no tiene sentido


Tericamente no hay lmite en el nmero de niveles en las jerarquas

En la prctica, los niveles deben limitarse. Entre 3 y 5 niveles.