Está en la página 1de 20

PROGRAMACIÓN DE COMPUTADORES II

SEMANA 5

1
| ESTE DOCUMENTO CONTIENE LA SEMANA 5
ÍNDICE

UML: UNA HERRAMIENTA PARA EL DISEÑO DE CLASES Y MÉTODOS .......................................... 3


1. INTRODUCCIÓN ..................................................................................................................... 3
2. TIPOS DE DIAGRAMA UML .................................................................................................... 4
2.1 DIAGRAMA DE CASOS Y ACTORES................................................................................. 4
2.2 DIAGRAMAS DE ACTIVIDAD .......................................................................................... 5
2.3 DIAGRAMAS DE ESTADO ............................................................................................... 7
2.4 DIAGRAMA DE OBJETOS................................................................................................ 8
2.5 DIAGRAMAS DE CLASES................................................................................................. 9
3. CONSTRUCCIÓN DE DIAGRAMAS DE CLASES USANDO UML .............................................. 11
3.1 RELACIONES ENTRE CLASES ........................................................................................ 14
3.2 RELACIÓN DE AGREGACIÓN (IRIGOYEN, 2011) ........................................................... 16
3.3 RELACIÓN DE COMPOSICIÓN ...................................................................................... 16
3.4 RELACIÓN DE DEPENDENCIA ....................................................................................... 17
4. EJEMPLOS ............................................................................................................................ 18
5. REFERENCIAS BIBLIOGRÁFICAS ........................................................................................... 20

2
| ESTE DOCUMENTO CONTIENE LA SEMANA 5
UML: UNA HERRAMIENTA PARA EL DISEÑO DE CLASES Y
MÉTODOS

1. INTRODUCCIÓN
En las clases anteriores se han estudiado los distintos componentes necesarios para generar la
solución de un problema mediante el uso del lenguaje Java.

En estos momentos se tienen las herramientas suficientes para generar un código asociado a
un determinado problema, pero no se debe olvidar que, en general, los problemas a los que se
debe dar solución con las herramientas de programación son problemas complejos. Además,
en la solución de un problema participan distintos actores, como los usuarios, quienes definen
en su propio lenguaje la descripción del problema, y esta descripción no es posible traducirla
directamente a un código de programación, esto dado que se requiere de un diseño, etapa
que se inicia con los analistas de sistemas, quienes toman los requerimientos de los usuarios y
los traducen a un lenguaje más técnico mediante documentos denominados Casos de Uso.

Luego, los arquitectos de software comienzan la etapa de diseño del sistema. En esta etapa se
genera el diseño de la Base de Datos que utilizará el sistema y se realiza el diseño de software,
el que se representa con el diagrama de clases del sistema.

El diagrama de clases es el elemento que un programador puede interpretar para generar el


código en Java que ejecute las funciones que el sistema requiere.

Pues bien, para construir un diagrama de clases que pueda ser leído por un equipo de
programadores se requiere de algún tipo de representación gráfica, de carácter universal o
estándar que permita hacer este modelo.

Con este objetivo fue creado el lenguaje UML (Lenguaje Unificado de Construcción de
Modelos), este lenguaje permite a los desarrolladores de sistemas capturar las ideas
necesarias a implementar y plasmarlas en una representación gráfica que pueda ser entendida
por otras personas.

Por estos motivos se estudiará en esta clase qué son los diagramas UML, cómo se construyen y
cuáles son las estructuras disponibles para hacerlo.

La definición estándar de un diagrama UML es mostrada en la siguiente figura.

3
| ESTE DOCUMENTO CONTIENE LA SEMANA 5
Fuente: Maranto I., J. (2004). Sistemas e Informática. p. 4.

A continuación se muestran ejemplos de algunos tipos de diagrama UML, para posteriormente


estudiar más en detalle los diagramas que utilizan los programadores para traducirlos en un
código en un lenguaje de programación como, por ejemplo, Java.

2. TIPOS DE DIAGRAMA UML


Como se ha definido anteriormente, el lenguaje UML permite definir diagramas que
representan diferentes componentes del diseño de un sistema como son, por ejemplo, los
siguientes (Irigoyen, 2011):

• Diagramas de Casos y Actores


• Diagramas de Actividad
• Diagramas de Clases
• Diagramas de Objetos

2.1 DIAGRAMA DE CASOS Y ACTORES


Este tipo de diagrama permite definir las relaciones entre cada caso de uso del sistema y los
actores (usuarios) que participan en el sistema.

En la siguiente figura se muestra un ejemplo de este tipo de diagrama.

4
| ESTE DOCUMENTO CONTIENE LA SEMANA 5
Fuente: Maranto I., J. (2004). Sistemas e Informática. p. 12.

En la figura se representan los actores (usuarios) mediante una figura humana y los casos de
uso mediante Elipses que contienen el nombre del caso de uso. Las líneas entre los actores y
los casos de uso representan la participación de cada actor en el correspondiente caso de uso.

Recordar que un caso de uso es un documento que describe las funcionalidades de un proceso
que pertenece a un sistema que debe ser implementado. En la figura anterior el sistema se
denomina “Sistema Bancario”.

Este tipo de diagrama se utiliza para validar con el usuario las relaciones que debe
implementar el sistema.

En este tipo de diagramas se establecen relaciones genéricas o estáticas, es decir, no se


representan en ellos relaciones de precedencia ni relaciones temporales.

2.2 DIAGRAMAS DE ACTIVIDAD


Este tipo de diagramas se utilizan para describir la secuencia de actividades en la construcción
de una determinada funcionalidad, que debe ser parte del sistema que se está diseñando y
que debe ser construido en un lenguaje de programación.

A diferencia de los diagramas de Casos de Uso y Actores, estos diagramas permiten establecer
relaciones de precedencia y relaciones temporales.

A continuación se muestran distintos ejemplos de este tipo de diagramas.

5
| ESTE DOCUMENTO CONTIENE LA SEMANA 5
6
| ESTE DOCUMENTO CONTIENE LA SEMANA 5
Fuente: Maranto I., J. (2004). Sistemas e Informática. p. 15.

2.3 DIAGRAMAS DE ESTADO


Este tipo de diagrama permite representar los diferentes estados que puede tener un
determinado objeto.

Generalmente, estos diagramas son usados para validar con los usuarios los posibles estados
de un determinado objeto, que deben ser parte del sistema que está en construcción.

La siguiente figura muestra un ejemplo de un diagrama de estados.

Fuente: Maranto I., J. (2004). Sistemas e Informática. p. 14.

7
| ESTE DOCUMENTO CONTIENE LA SEMANA 5
2.4 DIAGRAMA DE OBJETOS
Como se ha visto anteriormente, un objeto es una instancia de una determinada clase, esto es,
una entidad que tiene valores específicos de los atributos y funciones de una clase.

Por ejemplo, si existe una clase denominada lavadora automática, donde un atributo es la
marca y otro es la cantidad de kilos de ropa que puede lavar, entonces se tendría:

Clase:
• Lavadora Automática

Objetos:
• Lavadora Mademsa de 5 kg.
• Lavadora Mademsa de 7 kg.
• Lavadora Fensa de 5 kg.

La siguiente figura muestra un ejemplo de este tipo de diagramas.

Fuente: Maranto I., J. (2004). Sistemas e Informática. p. 31.

8
| ESTE DOCUMENTO CONTIENE LA SEMANA 5
2.5 DIAGRAMAS DE CLASES
Como se ha definido anteriormente, una clase contiene un conjunto de atributos y de
funciones que son representados por los métodos de cada clase.

En un determinado sistema, que resuelve un problema específico, existe normalmente un gran


número de clases que interactúan mediante sus diferentes métodos durante la ejecución del
sistema.

Por este motivo, es necesario tener algún tipo de esquemas que entreguen una visión global
de todas las clases que están involucradas en un determinado sistema, para poder realizar
cambios o modificaciones que pueden presentarse durante el desarrollo de un proyecto de
software.

Los diagramas de clases construidos en UML permiten representar las clases en diferentes
niveles de detalle.

La siguiente figura muestra los distintos niveles que pueden ser utilizados.

Fuente: Maranto I., J. (2004). Sistemas e Informática. p. 27.

9
| ESTE DOCUMENTO CONTIENE LA SEMANA 5
En esta figura, se muestra en el caso (a) una representación de clase donde simplemente se
muestra el nombre de la clase. En el caso (b) se muestran los atributos y los nombres de los
métodos que componen la clase, y en el caso (c) se muestran los atributos con sus valores
iniciales y por defecto, además de los métodos que componen la clase.

La siguiente figura muestra un ejemplo de diagramas de clases detallados de un sistema.

Fuente: Maranto I., J. (2004). Sistemas e Informática, p. 28.

En este punto se han revisado los diferentes tipos de diagrama UML con el objetivo de que se
interiorice el motivo por el cual este tipo de diagramas son imprescindibles en todo proyecto
de desarrollo de software.

En el siguiente punto se apreciará cuáles son los componentes que se tienen para crear un
diagrama de clases UML.

10
| ESTE DOCUMENTO CONTIENE LA SEMANA 5
3. CONSTRUCCIÓN DE DIAGRAMAS DE CLASES USANDO
UML

Un diagrama de clase requiere que exista una definición de clases con la sintaxis definida por
Java para estos efectos. Luego de hacer esta definición, el diagrama de clase es un producto
gráfico de este conjunto de definiciones.

La siguiente figura muestra la definición de una clase en Java y su representación gráfica en un


diagrama UML.

Fuente: Pons, C. (2007). Desarrollo de software conducido por modelos. p. 31.

En la figura se puede ver una definición de 7 clases en las cuales sólo 2 tienen funciones o
métodos. Sin embargo, para efectos de análisis de un programador, este diagrama entrega una
visión general necesaria para el buen desarrollo del software.

11
| ESTE DOCUMENTO CONTIENE LA SEMANA 5
Se puede identificar que el elemento requerido para representar una clase es un rectángulo
que contiene tres áreas: la superior, en la que se define el nombre de la clase; la sección
central, en la que se definen los atributos de la clase, y la de abajo, en la que se muestran los
métodos que integran cada clase. Para aclarar esta especificación examine la figura del
ejemplo de las tarjetas de crédito mostrado en el siguiente párrafo.

Se puede decir entonces que un diagrama de clases está compuesto de los siguientes
elementos (Irigoyen, 2011):

 Clases
 Atributos (Propiedades)
 Métodos (Operaciones)

 Relaciones
 Asociación
 Composición
 Uso (Dependencia)
 Herencia ( este concepto se revisará en clases posteriores)

Examinar el siguiente ejemplo.

Fuente: Gallego C., M. (2008). UML - El Lenguaje Unificado de Modelado. p. 26.

12
| ESTE DOCUMENTO CONTIENE LA SEMANA 5
En la figura se muestran las siguientes clases:

• ClubCard
• CreditCard
• Customer
• CustomerAccount
• Coupon
• Airfilter

No todas las clases tienen métodos y todas poseen diferentes atributos.

EJERCICIO

A modo de ejercicio realice la descripción de cada clase y de las relaciones que identifica a
partir del diagrama.

Es importante que en el diagrama se muestren también las características de visibilidad de la


clase para que así el programador pueda identificar el alcance de uso que tendrá cada clase.

Recordar que los grados de visibilidad son los siguientes:

Símbolo Visibilidad

+ Público
- Privado
# Protegido
~ Paquete

Fuente: Gallego C., M. (2008). UML - El Lenguaje Unificado de Modelado, p. 31.

Se puede observar en la figura el símbolo que representa dentro del diagrama cada uno de los
tipos de visibilidad que pueden tener los componentes de una clase.

A continuación se muestra en detalle la representación de una clase con estos símbolos.

Fuente: Gallego C., M. (2008). UML - El Lenguaje Unificado de Modelado. p. 31.

13
| ESTE DOCUMENTO CONTIENE LA SEMANA 5
Otro aspecto que se representa en los diagramas de clases es la definición de estático de un
método o atributo. Estos son representados subrayándolos como se muestra en la siguiente
figura:

Fuente: Gallego C., M. (2008). UML - El Lenguaje Unificado de Modelado. p. 32.

3.1 RELACIONES ENTRE CLASES


Como especificamos, el diagrama de clases define también relaciones entre las clases, esta
definición de relaciones sigue la siguiente lógica:

 Una relación se establece al unir dos clases con una línea.


 La relación establecida entre dos clases puede tener nombre y se coloca sobre la línea
(se lee de izquierda a derecha y suele ser un verbo).
 Puede, además, tener la representación de los roles que juega cada clase en la
relación.

Fuente: Gallego C., M. (2008). UML - El Lenguaje Unificado de Modelado. p. 34.

En la figura se identifican dos clases, Hombre y Mujer, las cuales tienen una relación de
nombre “casado con”, en la cual se establecen los roles marido y mujer, y el signo “-” indica
que son de carácter privado.

14
| ESTE DOCUMENTO CONTIENE LA SEMANA 5
En la relación se puede establecer, además, lo siguiente:

 Puede tener Multiplicidad (*, 0..1, 1..*), en este caso “*” significa Muchos.
 La relación puede tener restricciones las cuales se especifican entre { }
 Se puede, además, indicar el sentido de la lectura de la relación mediante el uso del
símbolo “ >”.

Fuente: Gallego C., M. (2008). UML - El Lenguaje Unificado de Modelado. p. 35.

En la figura se especifica la restricción “para siempre” y los símbolos “>” indican la dirección
de lectura de las relaciones.

En algunas ocasiones existe una CLASE que define la relación, de ser así, en el diagrama se
representa de la siguiente forma:

Fuente: Gallego C., M. (2008). UML - El Lenguaje Unificado de Modelado. p. 37.

Las relaciones definidas hasta ahora se pueden definir como relaciones básicas, sin embargo,
existe otro tipo de relaciones que se precisarán a continuación.

15
| ESTE DOCUMENTO CONTIENE LA SEMANA 5
3.2 RELACIÓN DE AGREGACIÓN (IRIGOYEN, 2011)
• Una relación de agregación es la que forma un todo con sus partes.
• Pueden tener nombre, roles, multiplicidad, etc., distintos tipos de componentes.
• En este tipo de relaciones, un objeto que representa una parte puede estar compartido
por varios objetos que representan el todo, por ejemplo, un alumno pertenece a un curso
y, además, puede ser parte de un grupo de amigos. Por ejemplo, en el siguiente diagrama
se muestra el área de ventas que está compuesta por la oficina, la tienda y sala de venta
de bodega.

Fuente: Gallego C., M. (2008). UML - El Lenguaje Unificado de Modelado. p. 39.

3.3 RELACIÓN DE COMPOSICIÓN


• Constituyen un tipo especial de relación de agregación.
• Los objetos parte siempre están asociados a un solo objeto todo y esto implica que se
crean y se destruyen con el objeto TODO (coche y ruedas).
• Los objetos parte no pueden compartirse entre varios objetos todo.

En el siguiente diagrama se muestra un ejemplo de este tipo de relación, en el que un reporte


está compuesto por un encabezado, las columnas, el detalle y el pie de página.

16
| ESTE DOCUMENTO CONTIENE LA SEMANA 5
Fuente: Gallego C., M. (2008). UML - El Lenguaje Unificado de Modelado. p. 40.

3.4 RELACIÓN DE DEPENDENCIA


• Especifica la dependencia entre dos clases.
• Este tipo de relación existe cuando los cambios en la clase independiente afectan a la
clase dependiente, esto implica que existe una relación de uso entre las clases.

En el siguiente diagrama se muestra la dependencia entre la clase Lector URL y la Clase File,
esto significa que cada vez que la primera clase realiza alguna operación, esa operación
afectará a la clase File.

Fuente: Gallego C., M. (2008). UML - El Lenguaje Unificado de Modelado. p. 42.

Como resumen final de esta clase y antes de revisar los ejemplos, es importante establecer
que este tipo de diagramas no son realizados manualmente por los equipos de desarrollo, sino
que son producto de las diferentes herramientas de diseño existentes en el mercado.

En este curso se utilizará NetBeans para crear, diseñar y compilar los códigos en Java.

17
| ESTE DOCUMENTO CONTIENE LA SEMANA 5
4. EJEMPLOS
Se revisará a continuación la representación del ejemplo “Hola mundo” realizado
anteriormente.

import java.awt.Graphics;
class HolaMundo extends java.applet.Applet {
public void paint (Graphics g) {
g.drawString (“¡Hola, Mundo!”,10,10);
}
}

Fuente: García M., J. (2009). El Lenguaje Unificado de Modelado, UML. p. 55.

Fuente: García M., J. (2009). El Lenguaje Unificado de Modelado, UML. p. 55.

En este diagrama, el componente mostrado al lado derecho representa la salida que se


obtiene.

18
| ESTE DOCUMENTO CONTIENE LA SEMANA 5
A continuación se muestra un diagrama de clases.

Fuente: García M., J. (2009). El Lenguaje Unificado de Modelado, UML. p. 115.

EJERCICIO

Para efectos de ejercitar, defina cada clase usando la sintaxis de Java y explique cada uno de
los elementos que identifique en el diagrama.

19
| ESTE DOCUMENTO CONTIENE LA SEMANA 5
5. REFERENCIAS BIBLIOGRÁFICAS

Debrauwer, L. & Van der Heyde, F. (2005). UML 2: Iniciación, ejemplos y ejercicios corregidos

(2da. ed.). Barcelona, España: ENI.

García, J. & Ortín I., M.J. (s.f.). El Lenguaje Unificado de Modelado, UML. Departamento de

Informática, Lenguaje y Sistemas. Universidad de Murcia. Recuperado el 5 de abril de

2011, de http://www.dis.um.es/~jmolina/rolesuml.pdf

Gallego, M.C. (s.f.). UML - El Lenguaje Unificado de Modelado. Recuperado el 11 de abril, de

http://www.happytreeflash.com/modelado-ppt.html

González C., J. E. (s.f.). ¿Qué es UML? Recuperado el 5 de abril de 2011, de

http://www.docirs.cl/uml.htm

Hernández O., E. (s.f.). El Lenguaje Unificado de Modelado (UML). Recuperado el 5 de abril de

2011, de http://www.disca.upv.es/enheror/pdf/ActaUML.PDF

20
| ESTE DOCUMENTO CONTIENE LA SEMANA 5

También podría gustarte