sábado, 26 de enero de 2013

Mis apuntes de UML (Diagrama de Clases)

En muchas ocasiones nos olvidamos de cosas que son muy importantes y básicas en nuestra profesión, y como a mi me pasa seguido, intento escribir las cosas no precisamente con la intención de divulgarlas, sino para construir una ayuda para mi memoria.
Es por esto que las siguientes publicaciones se ajustarán precisamente a esta idea, y empezare hoy con algunos apuntes sobre el diagramado de clases usando UML para su representación. Quizás la forma no sea la más ortodoxa o la que más se acerca al lado técnico  pero como dije, son mis apuntes y lo mejor es escribir ideas para recordar conceptos y no información por mera demostración de conocimientos.


Atributos y Métodos:

Atributos:
Los atributos o características de una Clase pueden ser de tres tipos de acuerdo a como definen su visibilidad y el grado de comunicación entre los diferentes componentes:
  • public (+): Indica que el atributo será visible tanto dentro como fuera de la clase, es decir, es visible desde todos lados.
  • private (-): Indica que el atributo sólo será accesible desde dentro de la clase (sólo sus métodos lo pueden acceder).
  • protected (#): Indica que el atributo no será visible desde fuera de la clase, pero si podrá ser usado por otros métodos de la clase y de las subclases que se deriven.
Métodos:
Los métodos u operaciones de una clase son la forma en como ésta interactúa con su entorno, éstos pueden tener las características:
  • public (+): Indica que el método será visible tanto dentro como fuera de la clase, es decir, es visible desde todos lados.
  • private (-): Indica que el método sólo será accesible desde dentro de la clase (sólo otros métodos de la misma clase lo pueden usar).
  • protected (#): Indica que el método no será visible desde fuera de la clase, pero si podrá ser usado por otros métodos de la clase y de las subclases que se deriven.


Relaciones:

Herencia
Indica que una subclase hereda los métodos y atributos especificados por una Super Clase, por ende la Subclase además de poseer sus propios métodos y atributos, poseerá las características y atributos visibles de la Super Clase que sean declarados como public y protected. 
  • Camioneta es un vehículo, y por tanto hereda sus atributos y métodos.


Composición
La composición es un tipo de relación dependiente en dónde un objeto más complejo es conformado por objetos más pequeños. En esta situación, podemos usar la frase "Tiene un", para análisis:
  • El auto tiene llantas.
  • La portátil tiene un teclado.
  • Una factura y su detalle.
Ejemplo:


Archivo FacturaDetalle.php:


Archivo index.php:


Asociación
La asociación se podría definir como el momento en que dos objetos se unen para trabajar juntos y así, alcanzar una meta.  Un punto a tomar muy en cuenta es que ambos objetos son independientes entre sí, veremos un poco más adelante qué implicación tiene esto. Para validar la asociación, la frase "Usa un", debe tener sentido:

  • El ingeniero usa una computadora
  • El cliente usa tarjeta de crédito.


Agregación
Es muy similar a la relación de Asociación solo varía en la multiplicidad ya que en lugar de ser una relación "uno a uno" es de "uno a muchos".

  • Una agenda agrupa varios contactos.
  • Un centro de costo o departamento agrupa varios empleados.


Dependencia (uso): 
Representa un tipo de relación en la que una clase es instanciada. 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 gráfica que instancia una ventana (la creación del Objeto Ventana esta condicionado a la instanciación proveniente desde el objeto Aplicación).



Fuente y apuntes

No hay comentarios:

Publicar un comentario en la entrada