Un diagrama de clases sirve para
visualizar las relaciones entre las clases que involucran el sistema, las
cuales pueden ser asociativas, de herencia
y composición.
Un diagrama de clases esta compuesto
por los siguientes elementos:
Clase:
atributos,
métodos y visibilidad.
Relaciones:
Herencia,Composición,Agregación,Asociación y Uso.
El
propósito de este diagrama es el de representar los
objetos fundamentales
del sistema, es decir los que percibe
el
usuario y con los que espera tratar para completar
su
tarea en vez de objetos del sistema o de un modelo
de
programación.
La
clase
define el ámbito de definición de un conjunto de objetos.
Cada
objeto
pertenece a una clase.
Los objetos
se crean por instanciación de las clases
Simbologia
Cada
clase se representa en un rectángulo con tres compartimientos:
(-) Privado: es
el más fuerte. Esta parte es totalmente invisible desde fuera de la clase (excepto para clases friends en terminología C++).
(~) Package: Sólo
es visible dentro del mismo package.
(#)
Los atributos/operaciones protegidos están visibles para las clases friends y
para las clases derivadas de la original.
(+)
Los atributos/operaciones públicos son visibles a otras clases (cuando
se
trata de atributos se está transgrediendo el principio de encapsulamiento).
El
proceso de crear objetos pertenecientes a una clase se conoce como
instanciación, donde los objetos son las instancias
de la
clase. El objeto es la instancia de la clase a la que pertenece.
Se utiliza un flecha punteada para
mostrar los objetos como instancias de las clases
Asociación.
La
relación entre objetos se conoce como liga. Una asociación describe la relación
entre clases de objetos, y describe
posibles
ligas, donde una liga es una instancia de una asociación, al igual que un
objeto es una instancia de una clase.
Composición
La
composición es una forma ‘fuerte’ de
agregación.
Se diferencian en:
•En la composición tanto el todo como
las partes tienen el mismo ciclo
de vida.
•Un
objeto puede
pertenecer solamente a una composición.
Herencia
Las
clases con atributos y operaciones comunes se pueden organizar de forma
jerárquica, mediante la herencia.
La
herencia es
una abstracción importante para compartir similitudes entre clases, donde todos
los atributos y operaciones
comunes
a varias clases se pueden compartir por medio de la superclase, una clase más
general. Las clases
más
refinadas se conocen como las subclases
Caso Practico.
Recomendaciones
y Conclusiones
El
blueJ esta muy limitado para hacer
diagramas, aunque tiene la capacidad de hacerlo esta muy limitado.
El
smartdrawn esta muy bien, pero puede llegar a
ser un poco complejo ya que al momento de estar haciendo las clases, herencia, composición y asociación
no te deja borrar clases que sean dependientes de otras.
El
starUML es open source y me pareció el mas fácil de usar,
sin quitar lo completo que es
Bibliografía
http://www.cannes.itam.mx/Alfredo/Espaniol/Publicaciones/MINT/Objetos.pdf
http://www-2.dc.uba.ar/materias/isoft1/is1-2005_2/apuntes/SlidesDC.pdf
http://translate.google.com.mx/translate?hl=es&sl=en&u=http://www.smartdraw.com/resources/tutorials/uml-diagrams/&prev=/search%3Fq%3Dsmartdraw%2Buml%26rlz%3D1C1EODB_enMX513MX513%26es_sm%3D93%26biw%3D1286%26bih%3D707%26noj%3D1
http://www.humbertocervantes.net/cursos/tutoriales/staruml/tutorialDiagramaClases.htm
No hay comentarios:
Publicar un comentario