jueves, 14 de noviembre de 2013

Uso de la orientación a objetos - Parte 3 de 3





Que es lo que hacen las clases y cómo encontrarlas

Las clases son el vocabulario y terminología de un área del conocimiento. Conforme hable con los clientes, analice su área de conocimiento y diseñe sistemas de computación que resuelvan los problemas de dicha área, comprenderá la terminología y modelará los términos como clases en el UML.
En sus conversaciones con los clientes preste atención a los sustantivos que utilizan para describir las entidades de sus negocios; ya que dichos sustantivos se convertirán en las clases de su modelo. También preste atención a los verbos que escuche, dado que constituirán las operaciones de sus clases. Los atributos surgirán como sustantivos relacionados con los nombres de la clase. Una vez que tenga una lista básica de las clases, pregunte a los clientes qué es lo que cada clase hace dentro del negocio. Sus respuestas le indicarán las responsabilidades de la clase.
Suponga que usted es un analista que generará un modelo del juego de baloncesto, y que entrevista a un entrenador para comprender el juego. La conversación podría surgir como sigue:

Analista: “Entrenador, ¿de qué se trata el juego?”

Entrenador: “Consiste en arrojar el balón a través de un aro, conocido como cesto, y hacer una mayor puntuación que el oponente. Cada equipo consta de cinco jugadores: dos defensas, dos delanteros y un central. Cada equipo lleva el balón al cesto del equipo oponente con el objetivo de hacer que el balón sea encestado."

Analista: “¿Cómo se hace para llevar el balón al otro cesto?"

Entrenador: “Mediante pases y dribles. Pero el equipo tendrá que encestar antes de que termine el lapso para tirar."

Analista: “¿El lapso para tirar?”

Entrenador: “Así es, son 24 segundos en el baloncesto profesional, 30 en un juego internacional, y 35 en el colegial para tirar el balón luego de que un equipo toma posesión de él.”

Analista: “¿Cómo funciona el puntaje?"

Entrenador: “Cada canasta vale dos puntos, a menos que el tiro haya sido hecho detrás de la línea de los tres puntos. En tal caso, serán tres puntos. Un tiro libre contará como un punto. A propósito, un tiro libre es la penalización que paga un equipo por cometer una infracción. Si un jugador infracciona a un oponente, se detiene el juego y el oponente puede realizar diversos tiros al cesto desde la línea de tiro libre.”

Analista: “Hábleme más acerca de lo que hace cada jugador."

Entrenador: “Quienes juegan de defensa son, en general, quienes realizan la mayor parte de los dribles y pases. Por lo general tienen menor estatura que los delanteros, y éstos, a su vez, son menos altos que el central (que también se conoce como 'poste'). Se supone que todos los jugadores pueden burlar, pasar, tirar y rebotar. Los delanteros realizan la mayoría de los rebotes y los disparos de mediano alcance, mientras que el central se mantiene cerca del cesto y dispara desde un alcance corto.”

Analista: “¿Qué hay de las dimensiones de la cancha? Y ya que estamos en eso ¿cuánto dura el juego?”

Entrenador: “En un juego internacional, la cancha mide 28 metros de longitud y 15 de ancho; el cesto se encuentra a 3.05 m del piso. En un juego profesional, el juego dura 48 minutos, divididos en cuatro cuartos de 12 minutos cada uno. En un juego colegial e intemacional, la duración es de 40 minutos, divididos en dos mitades de 20 minutos. Un cronómetro del juego lleva un control del tiempo restante.”

La plática podría continuar, pero hagamos una pausa y veamos con qué contamos. Aquí hay varios sustantivos que ha descubierto: balón, cesto, equipo, jugadores, defensas, delanteros, centro (o poste), tiro, lapso para tirar, línea de los tres puntos, tiro libre, infracción, línea de tiro libre, cancha, cronómetro del juego. 

Y los verbos: tirar, avanzar, driblar (o burlar), pasar, infraccionar, rebotar. También cuenta con cierta información adicional respecto a algunos de los sustantivos (como las estaturas relativas de los jugadores de cada posición, las dimensiones de la cancha, la cantidad total de tiempo en un lapso de tiro y la duración de un juego).

Finalmente, su propio sentido común podría entrar en acción para generar ciertos atributos por usted mismo. Usted sabe, por ejemplo, que el balón cuenta con ciertos atributos, como volumen y diámetro.

A partir de esta información, podrá crear un diagrama como el de la siguiente figura. En él se muestran las clases y se proporcionan ciertos atributos, operaciones y restricciones. 
El diagrama también muestra las responsabilidades. Podría usar este diagrama como fundamento para otras conversaciones con el entrenador para obtener mayor infonnación. 

Un diagrama inicial para modelar el juego de baloncesto.

Resumen

Un rectángulo es, en el UML, la representación simbólica de una clase. El nombre, atributos, operaciones y responsabilidades de la clase se colocan en áreas delimitadas dentro del rectángulo. Puede utilizar un estereotipo para organizar las listas de atributos y operaciones y además abreviar una clase al mostrar sólo un subconjunto de sus atributos y operaciones. Esto hace un diagrama de clases menos complejo. 

Podrá mostrar el tipo de un atributo, su valor inicial y enseñar los valores con que funciona una operación, así como sus tipos. En una operación, esta información se conoce como firma.

Para reducir la ambigüedad en la descripción de una clase agregue restricciones. El UML también le permite indicar mayor información respecto a una clase mediante notas adjuntas al rectángulo que la representa.

Las clases representan el vocabulario de un área del conocimiento. Las conversaciones con el cliente o un experto en el área dejarán entrever los sustantivos que se convertirán en clases en un modelo, y los verbos se transfonnarán en operaciones. Podrá utilizar un diagrama de clases como una forma de estimular al cliente a que diga más respecto a su área y que ponga en evidencia cierta información adicional.


Preguntas y respuestas

P: Usted mencionó el uso del “sentido común” para generar el diagrama de clases del baloncesto. Ello suena bien en tal instancia pero, ¿qué ocurre cuando tengo que analizar un área desconocida para mí (donde el sentido común no será de mucha ayuda)?

R: Por lo general, contará con cierto apoyo en un área desconocida para usted. Antes de que se reúna con un cliente o con un experto en el campo, intente convertirse en un “subexperto". Prepárese para la reunión y lea cuanta documentación relacionada tenga a la mano. Pregunte a sus entrevistados respecto a documentos o manuales que hayan escrito. Cuando haya terminado de leer, tendrá cierto conocimiento básico y podrá realizar las preguntas indicadas.

P: ¿En qué momento tendría que mostrar la firma de una operación?

R: Tal vez, luego de la fase de análisis de un proceso de desarrollo, conforme se adentre en el diseño. La firma es una sección de información que los desarrolladores podrían encontrar muy útil.


Taller

Para repasar lo que ha aprendido respecto a la orientación a objetos, intente responder a las siguientes preguntas. Las respuestas las encontrará en el Apéndice A, “Respuestas a los cuestionarios”.


Cuestionario

l. ¿Cómo representa una clase en el UML?
2. ¿Qué información puede mostrar en un símbolo de clase?
3. ¿Qué es una restricción?
4. ¿Para qué adjuntaría una nota a un símbolo de clase?


Ejercicios

1. He aquí una breve (e incompleta) descripción del balompié: 
Un equipo de balompié (o fútbol soccer) consiste en 11 jugadores de campo (1 portero y el resto, jugadores de cancha que, en ocasiones, se organizan en cuatro defensas, tres centrales y tres delanteros). Los jugadores pueden usar cualquier parte de su cuerpo (excepto las manos) para introducir el balón a la portería del equipo contrario. La única excepción a esta regla la tiene el portero, quien puede utilizar también las manos para jugar el balón, pero sólo dentro del área de meta.
El campo de juego es un rectángulo de una longitud máxima de 120 m y mínima de 90 m; y con una anchura no mayor de 90 m, ni menor de 45. Para partidos internacionales, la longitud será de 110 m como máximo y 100 como mínimo; y una anchura no superior a 75 m ni inferior a 64. En cualquier caso, deberá ser mayor la longitud que la anchura. El campo de juego se dividirá en dos mitades transversales de igual tamaño. El centro del campo será marcado con un punto visible, alrededor del cual se trazará una circunferencia de 9.15 m de radio. La meta del juego es pasar el balón a los delanteros, quienes están mejor preparados para patear el balón a la portería. El portero (o arquero) es la última línea de defensa que intentará bloquear, con cualquier parte de su cuerpo, los tiros de sus opositores. Cada vez que evita un gol, es decir, que el balón entre a la portería, habrá salvado su meta. Cada gol equivale a un punto. Un juego dura 90 minutos, divididos en dos periodos de 45 minutos cada uno.
Válgase de la anterior información para crear un diagrama como el de la figura anterior. Si usted conoce más del balompié de lo que he descrito, agregue tal información a su diagrama.
2. Si usted conoce más del baloncesto de lo que hay en la figura anterior, agregue la información a tal diagrama.


Espero haber ayudado en algo. Hasta la próxima oportunidad! 




2 comentarios:

  1. tendras el ultimo ejercicio que pusiste resuelto?

    ResponderEliminar
    Respuestas
    1. Hola Anónimo, gracias por la visita y el aporte de tu comentario!!
      Lamentablemente no tengo la solución del último ejercicio!!

      Los mejores deseos!! Hasta cualquier instante!!

      Eliminar