Oscar's Blog

Blog de Oscar Valenzuela - GNU con Linux, Free Software, Android, Hacking

Mis apuntes de UML (Diagrama de Clases)

26 Jan 2013


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.
  • </ul>

    </div>

    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.
    • </ul>

      </div>

      Relaciones:

      </div>

      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.
      • </ul>

        </div>

        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.
        • </ul>

          </div>

          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: