Вы находитесь на странице: 1из 10

UML: Diagramas de Clases

Universidad de las Fuerzas Armadas ESPE Extensin Latacunga


Departamento de Elctrica y electrnica
Autores: *Cabrera Anthony 4 Nivel Ingeniera de Software
*Lpez Daniel
*Villacs Johnny

INTRODUCCIN
La ingeniera de software desde su concepcin ha demostrado que para crear un producto software de
calidad el proceso no se limita a simplemente escribir cdigo, sino que existen una gran cantidad de
etapas que comprenden el desarrollo de un sistema. Entre estas etapas, una de las ms fundamentales,
comprende la abstraccin de requerimientos, es por este motivo que constantemente se ha ido buscando
un estndar que permita representar al sistema de tal manera que facilite el entendimiento del mismo. As
es como aparece el lenguaje unificado para modelado (UML, por sus siglas en ingls, Unified Modeling
Language), el cual es un lenguaje grfico para definir, especificar, visualizar y documentar un sistema.

UML ofrece una amplia variedad de esquemas, los cuales permiten modelar el sistema desde diferentes
aspectos conceptuales, tales como procesos, funciones del sistema, y aspectos concretos como
expresiones de lenguajes de programacin, esquemas de bases de datos y compuestos reciclados. Entre
los tipos de Diagramas en UML , segn el autor (Rumbaugh,1999), estos se clasifican en:
1. Estructurales (los componentes y estructura del sistema)
2. De comportamiento (acciones y comportamientos del sistema)
3. De interaccin (relacin entre componentes del sistema)

Entre los diagramas estructurales, uno de los ms utilizados, sin duda, es el Diagrama de Clases,
el cual permite representar la estructura esttica desde una solucin orientada a objetos. Este tipo
de diagrama descompone un sistema de software en sus partes, donde los elementos son las
clases de un sistema, totalmente definidas, adems de los atributos y los mtodos de cada una de
estas.

Adems de atributos y mtodos, un diagrama de clases tambin especifica asociaciones,


operaciones, interfaces y dependencias.
DESARROLLO

ELEMENTOS DE LOS DIAGRAMAS DE CLASES

Los diagramas de clases poseen varias caractersticas y elementos. El poder mostrar una solucin de
diseo o el modelado de los datos explica la amplia variedad de funcionalidades que esta rama de UML
ofrece. Sin embargo no es necesario usar todas las caractersticas en la totalidad de circunstancias. Por
ejemplo, cuando se arregla algo, no usa todas las herramientas de la caja de herramientas, slo lo que es
necesario. Lo mismo ocurre con UML y las herramientas de modelado, se debe usar slo las herramientas
necesarias para la situacin particular y no todas porque s (Gutirrez, 2011) .

Clase: Definicin de la estructura y el comportamiento de un conjunto de objetos que tienen


(comparten) el mismo patrn estructural y de comportamiento.

Las clases son el elemento clave en un diagrama de clases, en la figura 1 se muestra la manera en la que
se representa una clase, sus atributos o
propiedades y los mtodos que
detallan el comportamiento de la
misma. Los detalles que cada miembro
de la clase guarda es un detalle
fundamental para una buena
implementacin de un diagrama de
clases. Los distintos atributos y
mtodos poseen la opcin de
visibilidad, la figura 1 tambin detalla
las diferentes formas de visibilidad,
correspondiente a las normativas de la
POO.

Figura 1 Clase y su representacin en diagramas de clases.

Atributos: Propiedades relevantes de un clase, representan su estructura, vase figura 2.


La nomenclatura de un atributo es:
[visibilidad] [/] nombre [:tipo] [multiplicidad] [=valor por omisin] [{propiedad}]

Mtodos: Comportamiento asociado a una clase, vase figura 2.


La nomenclatura de un mtodo es:
[visibilidad] nombre [(lista de parmetros)] [{propiedad}]

Figura 2 Clase con un par de atributos y par de mtodos

Propiedad (Opcional): Propias de la POO, pueden ser: readOnly, isQuery, Concurrent,


Guarded, Sequential, etc.
Jerarqua de Clases: Abstracciones de generalizacin y especializacin de clases, vase la figura
3.
Herencia: Propiedad que tienen las clases de heredar de sus superclases estructura y/o
comportamiento (Simple / Mltiple), vase la figura 3.
Figura 3 Jerarqua de Clases versus Herencia
Polimorfismo: Se puede usar el mismo nombre para la definicin de un mtodo en varias clases
sin importar la relacin entre las mismas
Sobrecarga: Permite nombrar cdigo diferente con el mismo nombre para ms de una clase de
objetos.
Encadenamiento tardo: Permite seleccionar el cdigo adecuado al objeto definido en la
invocacin del mtodo.
Asociaciones: Representan relaciones estructurales entre las clases (la forma en que estn
relacionadas entre si las clases). Existen diferentes tipos de asociaciones clasificadas segn su
multiplicidad o cardinalidad. Entre estas estn: 1:1, 1:N y N:M. La figura 4 muestra las tres
asociaciones

.
Figura 4 Asociaciones segn su cardinalidad en orden: 1 a N, N a M y 1 a 1.

Navegabilidad: Representan relaciones estructurales entre las clases (la forma en que estn
relacionadas entre s las clases). Las diferentes formas de navegabilidad se encuentran en la
figura 5.

Figura 5 Relaciones alternativas a una asociacin convencional, tiles para diferentes casos.
Agregacin: Es una relacin en la que una de las clases representa un todo y la otra representa
parte de ese todo. Un Todo puede existir a pesar que una Parte no est, figura 6.
Composicin: Es una forma ms fuerte de la agregacin, en la que el todo no puede existir sin
sus partes. Un Todo no puede existir si una Parte no existe, figura 6.

Figura 6 Agregacin versus Composicin.


Dependencia: Relacin en la que una clase necesita (requiere) a otra para poder funcionar. La
figura 7 muestra una relacin de dependencia.

Figura 7 La clases facturaNegocio depende de ventaNegocio.


Interfaz: Un conjunto de operaciones que se utilizan para especificar un servicio de una clase o
de un componente
Tipo de datos (datatype): Un tipo cuyos valores no tienen identidad, incluyendo tipos primitivos
(tales como enteros y cadenas de caracteres), as como tipos enumerados (tales como booleanos).
Seal (signal): La especificacin de un estmulo asncrono comunicado entre instancias.
Componente: Una parte fsica de un sistema que proporciona la ejecucin de un conjunto de
interfaces.
Nodo: Un elemento fsico en tiempo de ejecucin, que representa un recurso de ordenador,
generalmente con memoria y
capacidad de procesamiento.
Caso de uso: Una descripcin de un
conjunto de acciones, incluyendo
variantes, que un sistema lleva a
cabo tras recibir un estmulo por
parte de un actor en particular.
Subsistema: Un grupo de elementos
de los cuales algunos constituyen
una especificacin del
comportamiento ofrecido por los
otros elementos contenidos en el
mismo.
Las ltimas clasificaciones se meustran de
forma grfica en la figura 8.

Figura 8 Tambin llamados clases avanzadas o clasificadores

IMPORTANCIA DE LOS DIAGRAMAS DE CLASES


Los diagramas de clases son sumamente importantes para el desarrollo de cualquier programa o
aplicacin, ya que permiten al desarrollador estar bien ubicado dentro de su proyecto.

Figura 9. Diagrama de clases sencillo

Un diagrama de clases nos permitir representar grficamente y de manera esttica la estructura general
de un sistema, mostrando cada una de las clases y sus interacciones (como herencias, asociaciones, etc),
representadas en forma de bloques, los cuales son unidos mediante lneas y arcos. Los diagramas de
clases son el pilar fundamental del modelado con UML, siendo ampliamente utilizados tanto para anlisis
como para diseo de sistemas y software en general.

Figura 10: Diagrama de clases complejo


DIFERENCIAS ENTRE EL DIAGRAMA CONCEPTUAL Y EL
DIAGRAMA DE CLASES

Aunque ambos modelos se parecen bastante.

El modelo conceptual es usado en la fase de anlisis para determinar cual es el dominio de la


aplicacin esto sirve para ver cuales son los conceptos ms importantes de las aplicaciones, y las
funciones que estas deben ejecutar.
El diagrama de clase, en cambio se usa en la fase de diseo para modelar las clases que vamos a
implementar, con mtodos, atributos, eventos, etc..
El modelado conceptual busca un tipo de diagrama entendible, no solo programable es decir, este
es usado para mostrarselo a un cliente para darte una idea.
el diagrama de clases tiene la forma especfica con la que se va a crear un programa,
El modelado conceptual se usa para bases de datos y el diagrama de clases para programas
orientados a objetos
la diferencia yace en que para una base de datos solo se debe ver que datos son importantes y
como identificar unvocamente una entidad, mientras que en un programa hay que preocuparse
en los tipos de estructuras que se va a usar en cada clase y los mtodos que deban tener cada una.

Figura 11: Diferencia entre diagrama de clases y modelo conceptual


EJEMPLO PRCTICO DE UN DIAGRAMA DE CLASES

Sistema de Gestin de una Biblioteca

Figura 12: Sistema de Gestin de una Biblioteca

En la figura 12, podemos visualizar los siguientes aspectos principales:

La clase principal sera Biblioteca, la cual obtiene la informacin de los documentos y de las
personas.
La clase Documento contiene los campos y mtodos para que hereden Libros y Revistas
La clase Persona contiene los campos y mtodos para que hereden Alumno y Profesor
La clase Prestamo realiza el prstamo entre la persona y el documento
CONCLUSIONES

La etapa de diseo o especificacin de requerimientos es la primera y la de ms influencia en el resto. Si


un requerimiento resulta mal obtenido o no presenta un propsito claro, el sistema se comportar de
manera equvoca/intil en ese segmento del desarrollo, llevndose tambin tiempo y dinero tras l.

Diferentes eventualidades en el mundo del software han demostrado que seguir parmetros a la hora de
desarrollar es el mejor camino. El modelado es un recurso fundamental y no slo en esta disciplina sino
en otras como: arquitectura, mecnica, neumtica y electrnica. La ingeniera en software posa sus bases
en el modelado justamente.

Los diagramas de clases son interacciones entre nodos y arcos, que generalmente representan
interacciones, relaciones, interfaces y colaboraciones entre las clases, interfaces, notas, restricciones,
paquetes y dems elementos que conforman un programa orientado a objetos.

Los diagramas de clases, son herramientas de programacin tiles y muy utilizadas por los
desarrolladores, para obtener resultados ptimos en cada uno de sus proyectos

Definitivamente UML es la herramienta clave para documentar y empezar un proyecto con pie derecho,
sin embargo no es necesario aprender todas las variedades de diagramas, sino que con un porcentaje de
estos se podr modelar sin problemas la mayor cantidad de proyectos.
RECOMENDACIONES

Estudiar las distintas partes que conforman al sistema y cmo interactan estas. Reflejando las interfaces,
protocolos e intercambio de seales. Para tal fin nos podemos apoyar de los diagramas de clases,
estructura compuesta y comunicacin.

En el momento de realizar el diagrama de clases hay que considerar que cuando un nombre est formado
por ms de una palabra, entonces la segunda y siguientes palabras empiezan por mayscula.

Todo proyecto por pequeo o grande debera usar diagramas de clases, estos permiten organizar todas las
clases, sus relaciones y de igual forma con la variedad de datos.

Dominar los diagramas de clases ser una gran ventaja para la etapa de anlisis y diseo de un proyecto
software.
REFERENCIAS

Booch, G., Rumbaugh, J., Jacobson, I., Martnez, J. S., & Molina, J. J. G. (1999). El lenguaje
unificado de modelado (Vol. 1). Addison-Wesley.

Troyano, J. A., Mejas, M., Torres, J., & Toro, M. (2000). Extensiones al Sistema de
Clasificacin de UML. Computacin y Sistemas, 3(3), 202-213.

Gutirrez, D. (2011). UML Diagramas de Clases. Universidad de Los Andes. Retrieved from
http://www.codecompiling.net/files/slides/UML_clase_04_UML_clases.pdf