Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Contenidos:
Diagrama de Clases.
Conceptos y objetivos de diagrama de clases.
Operaciones y atributos
Relaciones entre clases.
Asociaciones.
Generalizaciones
Dependencias.
Clases abstractas e Interfaces
Introducción a la POO.
UML es un lenguaje de modelado diseñado para construir sistemas orientados a objetos
(aunque no es exclusivo para ellos), por ello sus elementos y diagramas están basados en
el paradigma orientado a objetos.
Objetos y Clases
Objetos
Un objeto representa una cosa que posee identidad, estado y comportamiento.
Identidad: atributo o propiedad característica del objeto que le distingue de los
demás.
Estado: conjunto de valores concretos que caracterizan al objeto en un momento
dado.
Comportamiento: es la forma de actuación del objeto al recibir un mensaje o
estímulo externo. También se puede definir como el conjunto de funciones que es
capaz realizar el objeto
1
Clases
Una clase representa un conjunto de objetos con propiedades similares (mismos
estados y comportamientos), relaciones comunes con otros y una semántica
común.
Las clases son generalizaciones de objetos concretos que permiten agruparlos en
categorías o familias.
Cada objeto de una clase es un ejemplar o una instancia de la clase. Cuando
creamos objetos concretos de una clase estamos realizando un proceso de
instanciación.
El diagrama de clase, además de ser de uso extendido, también está sujeto a la más
amplia gama de conceptos de modelado. Aunque los elementos básicos son necesarios
para todos, los conceptos avanzados se usan con mucha menor frecuencia.
El diagrama de clase describe los tipos de objetos que hay en el sistema y las diversas
clases de relaciones estáticas que existen entre ellos.
Hay dos tipos principales de relaciones estáticas:
Los diagramas de clase también muestran los atributos y operaciones de una clase y las
restricciones a que se ven sujetos, según la forma en que se conecten los objetos.
Notación de clases.
Las clases se representan como rectángulos. El nombre de la clase es, por convención, una
palabra con la primera letra en mayúscula y normalmente se coloca en la parte superior
del rectángulo. Si el nombre de la clase consta de dos palabras se unen e inician con
mayúscula.
Venta
Atributos
Un atributo es una propiedad o característica de una clase y describe un rango de valores
que la propiedad podrá contener en los objetos de la clase. La lista de nombres de
atributos iniciara debajo de una línea que la separe del nombre de la clase.
Dentro de una clase, los nombres de los atributos deben ser únicos (aunque puede
aparecer el mismo nombre de atributo en diferentes clases).
2
Venta
Fecha: Date
Hora
Operaciones
Una operación es una función o transformación que se puede aplicar a o que
pueden aplicar los objetos de una clase. Ej: Contratar, despedir, pagar sueldo y
sancionar son operaciones que realiza la clase compañía. Todos los objetos de una
clase comparten las mismas operaciones.
Cada operación tiene un objeto como argumento objetivo implícito.
Una misma operación puede aplicarse a muchas clases distintas, y en ese caso es
polimórfica. Esto implica que la operación adopta diferencias al aplicarse a clases
diferentes.
La sintaxis del UML completa para las operaciones es visibilidad nombre (lista-de-
parámetros): expresion-tipo-de-dato-a-regresar {cadena-de-propiedades}
Venta
Fecha
Monto
Imprimir(): Void
3
Venta
-Fecha
-Monto
+Imprimir(): Void
En sus conversaciones con los clientes preste atención a los sustantivos que utilizan para
describir las entidades de sus negocios; ya que dichos sustantivos se convertirán en las
clases de su modelo. También preste atención a los verbos que escuche, dado que
constituirán las operaciones de sus clases. Los atributos surgirán como sustantivos
relacionados con los nombres de la clase. Una vez que tenga una lista básica de las clases,
pregunte a los clientes qué es lo que cada clase hace dentro del negocio. Sus respuestas le
indicarán las responsabilidades de la clase.
Los enlaces entre de objetos pueden representarse entre las respectivas clases
Formas de relación entre clases:
Asociación y Agregación (vista como un caso particular de asociación)
Generalización/Especialización
Asociaciones
• Son las relaciones entre los Objetos (Clases).
• Es una relación estructural que especifica que los Objetos de un elemento están
conectados con los Objetos de otro.
• Los Objetos se pueden asociar con otro en más de una forma y dirección.
• Un Objeto se puede asociar con más de un Objeto y de diferentes Clase o
Característica.
• Es posible que la Asociación se dé de manera recursiva en un Objeto
4
Asociaciones reflexivas.
Las asociaciones pueden ser reflexivas, relacionando distintos objetos de una
misma clase.
Ejemplo: Para una clase persona puede existir una asociación pariente que describe que
dos objetos de tipo persona, como Juan Pérez y Laura Pérez son parientes.
Clase de Asociación
Una Asociación igual que una Clase, puede contener Atributos y Métodos. Esto se
llama Clase de Asociación.
Una Clase de Asociación puede tener asociaciones con otras Clases.
Multiplicidad
La multiplicidad señala la cantidad de objetos de una clase que pueden relacionarse con
un objeto de una clase asociada.
5
Los diagramas de objetos indican la multiplicidad, mediante símbolos especiales al final de
las líneas de asociación. En el caso más general se usa un número, un intervalo o un
conjunto de intervalos. Tal como puede ser “1”(uno exactamente), “1+” (uno o mas ), “3-
5” (de tres a cinco) y “2,4,18” (dos , cuatro o dieciocho).
En la práctica, las multiplicidades más comunes son 1, *, Y 0 .. 1 (se puede no tener
ninguno o bien tener uno).
Especialización/Generalización (Herencia)
Uno de los sellos distintivos de la orientación a objetos es que captura uno de los mayores
aspectos del sentido común en cuanto a la vida diaria: si usted conoce algo de una
categoría de cosas, automáticamente sabrá algunas cosas que podrá transferir a otras
categorías. Si usted sabe que algo es un electrodoméstico, ya sabrá que contará con un
interruptor, una marca y un número de serie. Si sabe que algo es un animal dará por
hecho que come, duerme, tiene una forma de nacer, de trasladarse de un lugar a otro y
algunos otros atributos (y operaciones) que podría listar si pensara en ello por algunos
instantes.
6
VehiculoDeMotor
A ttributes
+ Cilindrada : int
+ NumeroDeRueda : int
Operations
+ acelelar() : void
Coches Motos
A ttributes A ttributes
+ NumeroDePuertas : int + TipoCarenado : string
Operations Operations
La jerarquía de la herencia no tiene que finalizar en dos niveles: una clase secundaria
puede ser principal para otra clase secundaria. Un Vehículo aéreo es una clase secundaria
de Vehículo, y Avión es una clase secundaria de Vehículo Aéreo.
En el UML representará la herencia con una línea que conecte a la clase principal con la
secundaria. En la parte de la línea que se conecta con la clase principal, colocará un
triángulo sin rellenar que apunte a la clase principal. Este tipo de conexión se interpreta
con la frase es un tipo de. Un Vehículo aéreo es un tipo de Vehículo, y un Avión es un tipo
de Vehículo aéreo.
Vehículo
Descubrimiento de la herencia
En el proceso de plática con un cliente, un analista descubrirá la herencia de varias for-
mas. Es posible que las clases candidatas que aparezcan incluyan tanto clases principales
como clases secundarias. El analista deberá darse cuenta que los atributos y operaciones
de una clase son generales y que se aplicarán a, quizá, varias clases (mismas que agre-
garán sus propios atributos y operaciones).
Otra posibilidad es que el analista note que dos o más clases tienen ciertos atributos y
operaciones en común.
7
Agregación/ Composición
Son formas especiales de asociación entre un todo y sus partes, en donde el ensamblado
está compuesto por sus componentes.
Agregación
Es un tipo especial de asociación utilizado para modelar una relación “todo a sus
partes”.
Por ejemplo, Coche es una entidad “todo” y Llanta es una parte del Coche.
Una asociación con una agregación indica que una clase es parte de otra clase.
En este tipo de asociación, la clase hijo puede sobrevivir sin su clase padre.
Para representar una relación de agregación, se dibuja una línea sólida de la clase padre
(total) a la clase hijo (parte), y con un diamante en el lado de la clase padre.
Composición
En este caso el ciclo de vida de una instancia de la clase hijo depende del ciclo de
vida de una instancia de la clase padre.
A diferencia de la agregación básica, para representarla el diamante no es hueco.
Una instancia de la clase Compañía debe tener al menos una en la clase
Departamento.
En este tipo de relaciones, si una la instancia Compañía se elimina,
automáticamente la instancia Departamento también se elimina.
Otra característica importante es que la clase hijo solo puede relacionarse con una
instancia de la clase padre.
8
Clases Abstractas
Este Tipo de Clases nos permiten crear “método generales”, que recrean un
comportamiento común, pero sin especificar cómo lo hacen. A nivel de código tienen por
particularidad que algunos de sus métodos no tienen “cuerpo de declaración”, ¿qué
quiere decir esto? no tienen las llaves { } ni código dentro de ellos y deben estar
precedidos por la palabra clave abstract. Si una clases contiene uno o más métodos
abstractos está clase debe ser abstracta. Estas clases como son generalidades no pueden
ser instanciadas por ningún objeto (se dice que su nivel de abstracción es demasiado alto),
entonces su único fin es ser heredado/extendido por otras clases.
Interfaces
Una interfaz es una clase completamente abstracta. Las interfaces, tal como las clases
abstractas no se pueden instanciar. Sus métodos deben ser re-escritos por la clase
que implemente.
«interface» «interface»
Acuatico Aereo
+Navegar() +Volar()
Hidroavion