Diagrama de clases básico

Para la construcción de clases inicial, pensaremos en una estrategia que incluye al menos dos clases: la clase Principal, que se encargará de la ejecución del programa y la interacción con el usuario; y una o varias clases que se encargarán de lo que se conoce como la lógica del programa.

Las clases de la lógica, se encargan de hacer las tareas que se solicitaron en la definición del problema. Para obtener una primera aproximación del diagrama de clases:

  • Identificadores de clase. Identifique las abstracciones o clases que pueden modelar su sistema: Triángulo, Persona, Ecuación, Función, CuentaBancaria o Alumno.
  • Atributos: agregue los datos de entrada y de salida esperados en el planteamiento del problema.
  • Métodos: agregue la o las acciones que se solicitan en el problema.

Por ejemplo, si pensamos en el problema “Calcular el área de un triángulo (a partir de conocer los valores de su base y su altura)”, Podemos pensar en una abstracción “Triángulo” como identificador de lo que deseamos modelar, base y altura serían atributos de “entrada” y “área” sería un atributo de salida. Finalmente, se nos solicita calcular el área del triángulo, por lo que el método asociado sería “calcularArea()”

Triangulo Identificador de la clase
base dato de entrada Atributos
altura dato de entrada
área dato de salida
calcularArea() acción solicitada por el problema Métodos
Arrastrar
Identificarás los elementos de un problema y los ubicarás dentro del diagrama de clases básico que represente una primera aproximación al modelado del problema.

Arrastra la respuesta correcta en los espacios en blanco para completar en cada uno de los problemas del fichero.

Calcular el índice de masa corporal de una persona, conociendo su peso y estatura.

calcularIMC()
imc
Persona
Identificador de la clase
estatura dato de entrada Atributos
peso dato de entrada
Dato de salida
acción solicitada por el problema Métodos

Calcular las raíces ($x_1$ y $x_2$) de una ecuación de segundo grado de la forma $ax^2+bx+c$.

b
calcularRaices()
$x_1$
Ecuacion2oGrado Identificador de la clase
a dato de entrada Atributos
dato de entrada
c dato de entrada
dato de salida
$x_2$ dato de salida
acción solicitada por el problema Métodos

Escriba la tabla de multiplicar de un número N.

mostrarTabla()
N
TablaMultiplicar
Identificador de la clase
dato de entrada Atributos
acción solicitada por el problema Métodos
area
calcularArea()
$f(x)$
Función Identificador de la clase
xMin dato de entrada Atributos
xMax dato de entrada
dato de salida
requiere saber qué se graficará Métodos
acción solicitada por el problema

Getters y Setters

Es importante tener en cuenta que en la programación orientada a objetos, TODOS los atributos deben permanecer ocultos al exterior de cada objeto, lo cual no indica que no pueden modificarse directamente. A esta propiedad se le conoce como encapsulamiento. También los métodos pueden estar ocultos al exterior (privados) o pueden ser públicos o accesibles al programador para ser invocados cuando se requiera con las instrucciones de llamar a subproceso.

Los atributos son accesibles a través de métodos para obtener (get) o asignar (set) un valor, son verbos en inglés de tres letras, generalmente son verbos en infinitivo más cortos que los del español u otra lengua (lenguaje natural); a los primeros se les conoce getters y a los segundos setters.

Así, el método obtenerElValorDeAtributo() o cambiarElValorAlAtributo() simplemente tendríamos métodos getAtributo() y setAtributo(). Esta definición se verá al obtener un diagrama de clase detallado, más adelante.

Hay que tener en cuenta que cuando se modifica un atributo, podrían modificarse varios atributos “en cascada”, por ejemplo, en el caso del Triángulo, al modificar el valor de la base o de la altura también deberían actualizar de manera automática el área, ya que son interdependientes. El objeto siempre debe mantenerse en un “estado consistente”, por lo que deben revisar todas las excepciones e implicaciones que se tienen al cambiar el valor de un atributo con respecto al resto del objeto.

El método main()

Para cada caso de uso, se requiere que haya un programa que interactúe con los usuarios o actores y las clases que ejecutan la función o la lógica del problema (Triangulo, EcuacionSegundoGrado, Computadora, Cuentabancaria, etc.). Esta el caso de los programas de consola o los formularios, en Java, acción la ejecuta la clase Main, la cual contiene el método principal para la ejecución del programa main().

Para ello, se establece una relación de uso entre la clase Main y la clase funcional, que es una línea punteada que comienza en la clase Main y termina en la(s) clase(s) funcionales utilizadas: