Cada vez que se me exigía construir un proyecto, siempre lo lograba, no de antemano ideando un plan o diseño, sino después de escribir primero una clase que era necesaria, desarrollar todo el proyecto, construir de abajo hacia arriba. Ahora sé que esta no es la forma correcta de crear software, pero no es fácil para mí entender lo que se llama Análisis y Diseño Orientado a Objetos. Puedo entender más fácilmente el diseño de procedimientos de arriba hacia abajo, ya que consiste simplemente en dividir las tareas en subtareas, cosas que tienen su contraparte en el código, funciones. Pero no puedo entender fácilmente el Análisis y el Diseño Orientado a Objetos, ya que no entiendo cómo uno puede saber qué clases necesitarán y cómo interactuarán, a menos que sepan cómo las codificarán.
Una vez que introducimos el concepto de clases y objetos en el proceso de diseño, ya no podemos diseñar de arriba hacia abajo, porque ya no estamos desglosando nuestros problemas en aquellas cosas que pueden implementarse como procedimientos. En cambio, de acuerdo con lo que he leído sobre el tema, debemos determinar qué clases son necesarias y crear varios artefactos en el Lenguaje de modelado unificado, que luego podemos usar cuando implementamos el software. Pero este tipo de proceso de diseño no lo entiendo. ¿Cómo se sabe qué clases necesitarán y cómo interactuarán, a menos que ya hayan concebido todo el sistema?
Este es mi problema. No entiendo cómo diseñar un sistema orientado a objetos, aunque sí entiendo los conceptos de programación orientada a objetos, y puedo usar esos conceptos en cualquier lenguaje de programación orientado a objetos que conozca. Por lo tanto, necesito que alguien me explique qué proceso simple puedo usar para diseñar sistemas orientados a objetos de una manera que tenga sentido para mí.
fuente