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