Documentos de Académico
Documentos de Profesional
Documentos de Cultura
SEMANA 5
1
| ESTE DOCUMENTO CONTIENE LA SEMANA 5
ÍNDICE
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.
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.
3
| ESTE DOCUMENTO CONTIENE LA SEMANA 5
Fuente: Maranto I., J. (2004). Sistemas e Informática. p. 4.
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.
A diferencia de los diagramas de Casos de Uso y Actores, estos diagramas permiten establecer
relaciones de precedencia y relaciones temporales.
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.
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.
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.
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.
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.
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.
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.
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)
12
| ESTE DOCUMENTO CONTIENE LA SEMANA 5
En la figura se muestran las siguientes clases:
• ClubCard
• CreditCard
• Customer
• CustomerAccount
• Coupon
• Airfilter
EJERCICIO
A modo de ejercicio realice la descripción de cada clase y de las relaciones que identifica a
partir del diagrama.
Símbolo Visibilidad
+ Público
- Privado
# Protegido
~ Paquete
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.
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:
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 “ >”.
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:
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.
16
| ESTE DOCUMENTO CONTIENE LA SEMANA 5
Fuente: Gallego C., M. (2008). UML - El Lenguaje Unificado de Modelado. p. 40.
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.
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);
}
}
18
| ESTE DOCUMENTO CONTIENE LA SEMANA 5
A continuación se muestra un diagrama de clases.
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
García, J. & Ortín I., M.J. (s.f.). El Lenguaje Unificado de Modelado, UML. Departamento de
2011, de http://www.dis.um.es/~jmolina/rolesuml.pdf
http://www.happytreeflash.com/modelado-ppt.html
http://www.docirs.cl/uml.htm
2011, de http://www.disca.upv.es/enheror/pdf/ActaUML.PDF
20
| ESTE DOCUMENTO CONTIENE LA SEMANA 5