• Viernes 8 de Noviembre de 2024, 07:56

Autor Tema:  ulm y clases ¿para qué?  (Leído 2625 veces)

black_flowers

  • Miembro activo
  • **
  • Mensajes: 40
    • Ver Perfil
ulm y clases ¿para qué?
« en: Sábado 3 de Enero de 2009, 14:52 »
0
estoy bastante confundido con esto del uml y del diseño orientado a objetos. Un ejemplo: Hace poco hice un pequeño proyecto (en realidad no era nada profesional sino que lo hice por pasar el tiempo). consitia en un entorno de gestión de una ferretería en donde en el interfaz gráfico había un treeview con todas las categorías de los productos que hay en el almacén (que están en una base de datos) y cada vez que se selecciona una categoría en el treeview se visualizan todos esos productos en un datagridview. Vamos que es algo bastante típico. Lo que se puede hacer en el entorno es comprar productos para meter en el almacén y vender productos a los clientes. Lo típico un treeview una base de datos un datagrid y dos acciones: vender comprar. El programa es sencillo ya está hecho y como os podreis imaginar no hice ni una sóla clase ya que se basa sobretodo en la base de datos. Entonces: para estos pequeños proyectos ¿tiene algún sentido hacer clases y hacer esquemas uml? En caso de que sí... ¿qué clases se podrían crear?


perdonad por el rollo pero es que llevo mirando por internet, manuales ejemplos y demás y en teoría ya se hacer los esquemas uml y crear las clases el problema es que no le veo ninguna aplicación práctica.

1 saludo.

grandzam

  • Miembro MUY activo
  • ***
  • Mensajes: 118
    • Ver Perfil
Re: ulm y clases ¿para qué?
« Respuesta #1 en: Sábado 3 de Enero de 2009, 21:44 »
0
Bueno, a mi parecer y ya que he utilizado uml un poco, te sirve simplemente para visualizar de una mejor manera lo que vas a hacer. Imágina que vas a construir no sé... mmm... un plumón por ejemplo pero para construir un plumón tal vez digas pues necesito la tapa, el pabilo (o no sé como se llame la punta que escribe), la carcaza, la tinta, etcétera... imagina que dibujas todos esos componentes y empiezas a conectar que parte va a dentro de otra, cual se acopla con cuál, etcétera, entonces te puedes dar cuenta de que tal vez en un futuro se necesitará que la tinta y el pabilo pueda desacoplarse de la carcaza para cambiar el color con el que vas a escribir... casi para toda la gente es más facil de entender a través de dibujos. A muchos de nosotros nos sucede que si programas algo sin diseñarlo, es decir solo has hecho la parte de la codificación y dentro de la codificación estuviste diseñando como iba a quedar, y pasa el tiempo y si sucede algún problema no recuerdas que hiciste.

Imágina por ejemplo un arquitecto quién tiene que hacer alguna fachada de una casa, lo primero que tiene que hacer es un dibujo de la fachada, tal vez se la muestre a su cliente y si no le gusta probablemente hará modificaciones. Pero que sucede si la fachada la vá construyendo a como caiga... es decir, mientras vá construyendo va diseñando la fachada... tal  vez haya puertas donde debería haber ventanas...

Para responder a tu otra pregunta pues tal vez, necesitaría mas detalles pero por lo que mencionas tal vez, debería haber una clase producto que tuviese como atributos precio, nombre etcétera, tal vez otra que manejase la venta, otra la compra, incluso alguna clase cliente, y si quieres manejar MVC (Modelo Vista Controlador), algún controlador para que gestione entre si es una venta o una compra, un modelo que se encargue del guardado en la base de datos o de la lectura desde la base de datos, y tal vez otra clase que solo maneje la parte de la vista o de la interfaz gráfica.

Para entender un poco mejor acerca de lo que es un controlador, y muchos detalles más que necesitas para entender de mejor manera la parte de diseño orientado a objetos te recomiendo ampliamente que búsques en google acerca de: GRASP

black_flowers

  • Miembro activo
  • **
  • Mensajes: 40
    • Ver Perfil
Re: ulm y clases ¿para qué?
« Respuesta #2 en: Domingo 4 de Enero de 2009, 15:08 »
0
tienes razón lo del ulm la verdad es que ya me imaginaba que eran como los "planos" del programa, hasta ahí correcto pero lo de las clases sigo sin verlo. No dudo de que seguro que es por mi torpeza pero voy a mirar las clases que me has comentado que podría añadir. Lo miraré, a ver si consigo entenderlo un saludo y muchas gracias por tu ayuda.

 :good:

silverfox

  • Miembro MUY activo
  • ***
  • Mensajes: 280
    • Ver Perfil
Re: ulm y clases ¿para qué?
« Respuesta #3 en: Jueves 8 de Enero de 2009, 10:05 »
0
Hola.

Debeis mirar las clases más como trabajadores en una oficina. Una de las funciones de las clases es agrupar una serie de datos (sus variables) con las operaciones que se pueden realizar con ellos (sus métodos). Esto, por ejemplo, lo indican varios patrones. Podeis echar un vistazo al patrón Experto.

En cuanto al UML, no son más que ciertas convenciones para poder explicarles a otros cómo está construído tu programa, aunque luego lo normal es que cuando lo diseñas la correspondencia de clases no sea perfecta entre tu UML y tu programa.

Los patrones, según todos los libros son 'soluciones que se han tomado con resultado eficaz para problemas que le han surgido a mucha gente antes'. Son una forma de dividir el programa en clases para resolver esos problemas. Para tu ejemplo, piensa en lo que tendrías que hacer con tu programa si al jefe de la ferretería le da por cambiar la BD de MySQL a Oracle, o a DB2, que quiere poder realizar consultas a la aplicación desde una página web, o que mañana quiere ver los datos en un componente que no sea un treeview. Un buen diseño implica la reutilización del código al máximo posible y garantiza la máxima mantenibilidad del mismo para las posibles modificaciones.

Si quieres ver algo de patrones con ejemplos y a un nivel muy asequible para iniciarte, te recomiendo el libro 'Heading First: Patterns' creo recordar que es de McGraw Hill. Es muy sencillo y muy bueno.

Espero que te sirva de algo.

Un saludo.


Silverfox