Está en la página 1de 9

Universidad Autónoma de Chinandega

“Pbro. y Dr. Tomás Ruiz Romero”


UACH Ingenieria
de Sistemas
Ingeniería de Software II Diagrama de Clases

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.

Los principios sobre los que se fundamenta la POO (Programación Orientada a


Objetos) pueden resumirse en:
 Se utilizan modelos basados en conceptos del mundo real para el desarrollo de
aplicaciones.
 El software se organiza como una colección discreta de objetos a los que se
asocian datos (atributos) y comportamiento (operaciones, procedimientos ó
métodos).
 La comunicación de los objetos se realiza a través del paso de mensajes. Cuando
un objeto es receptor del mensaje ejecuta una acción (operación, procedimiento ó
método).

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.

La técnica del diagrama de clase se ha vuelto medular en los métodos orientados a


objetos. Virtualmente, todos los métodos han incluido alguna variación de esta técnica.

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:

 Asociaciones (por ejemplo, un diente puede rentar diversas videocintas).


 Subtipos (una enfermera es un tipo de persona).

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

Dependiendo del detalle del diagrama, la notación de un atributo puede mostrar el


nombre, el tipo y el valor predeterminado de un atributo (la sintaxis del UML es visibilidad
/nombre: tipo = valor por omisión, donde la visibilidad es igual que la de las operaciones,
las cuales se describirán en la sección siguiente).

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

Visibilidad de atributos y métodos.


Indica el nivel de acceso que tienen el resto de clases a los datos y operaciones definidos.
 public (+): Indica que el atributo o método será visible tanto dentro como fuera de
la clase, es decir, es accesible desde todos lados.
 private (-): Indica que el atributo o método sólo será accesible desde dentro de la
clase (sólo otros métodos de la clase lo pueden acceder).
 protected (#): Indica que el atributo o método no será accesible desde fuera de la
clase, pero si podrá ser accesado por métodos de la clase además de métodos de
las subclases que se deriven (ver herencia).

3
Venta
-Fecha
-Monto

+Imprimir(): Void

Qué es lo que hacen las clases y cómo encontrarlas


Las clases son el vocabulario y terminología de un área del conocimiento. Conforme hable
con los clientes, analice su área de conocimiento y diseñe sistemas de computación que
resuelvan los problemas de dicha área, comprenderá la terminología y modelará los
términos como clases en el UML.

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.

Relaciones entre Clases:


Ahora ya definido el concepto de Clase, es necesario explicar como se pueden
interrelacionar dos o más clases (cada uno con características y objetivos diferentes).

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

Las relaciones de Agregación y Generalización forman jerarquías de clases

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.

La orientación a objetos se refiere a esto como herencia. El UML también lo denomina


generalización. Una clase (la clase secundaria o subclase) puede heredar los atributos y
operaciones de otra (la clase principal o superclase). La clase principal (o madre) es más
genérica que la secundaria (o hija).

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

Veihículo Terrestre Vehículo Aéreo

Coche Camión Avión Helicóptero

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.

Una llanta puede existir sin automóvil

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.

Dependencia o Instanciación (uso):


Representa un tipo de relación muy particular, en la que una clase es instanciada (su
instanciación es dependiente de otro objeto/clase). Se denota por una flecha punteada.
El uso más particular de este tipo de relación es para denotar la dependencia que tiene
una clase de otra, como por ejemplo una aplicación grafica que instancia una ventana (la
creación del Objeto Ventana esta condicionado a la instanciación proveniente desde el
objeto Aplicación):

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

También podría gustarte