Entiendo que el objetivo principal de UML es comunicar. UML tiene la intención de proporcionar un diseño de un sistema y el código es realmente el bloque de construcción real del sistema.
Mi pregunta es si se supone que el código y el uml se reflejan directamente entre sí. Dejame explicar:
paquete ShowTimesFrUSA;
Quería presentar mi programa con diseños de UML con un Diagrama de paquete. Sin embargo, ya dividí mis clases en diferentes paquetes de manera diferente a como está codificado. Paquetes: UI (AWT and Swing) , Controllers, Moviemonitor, MovieService, USAmovies <<server>>
Solo quiero mostrar las dependencias entre los grupos de clases en mi código como parte de los requisitos para esta presentación y el diagrama del paquete es realmente bueno para eso. Pero no estoy seguro de si los paquetes en el modelo deberían reflejar directamente la forma en que se codifican los paquetes en Java .
No estoy seguro de si los paquetes en el modelo deberían reflejar directamente la forma en que se codifican los paquetes en Java.
Definitivamente sí. Eso es lo que los paquetes UML pretenden representar. ¿Cómo pensaría en un código que es una gran clase de "objeto de dios" pero el autor lo modela como varias clases distintas en UML?
Si divide su código en paquetes conceptualmente, ¿por qué no querría que eso se refleje en el código utilizando un mecanismo diseñado para ese propósito?
Además, parece que actualmente no está utilizando una declaración de paquete, es decir, su código vive en el paquete predeterminado sin nombre. Esa es una mala práctica para todos, excepto para el código de juguete desechable, porque causa varios problemas. Por un lado, es imposible usar su código de otro código que usa paquetes.
Creo que el problema subyacente puede ser que no estés comprendiendo los paquetes UML. En realidad, no pretenden ser un marcador abstracto para mostrar que una clase es, por ejemplo, una clase de interfaz de usuario o un controlador. Para eso están los estereotipos UML.
Cuando comienza a pensar en una solución a su problema y dibuja un diagrama de clases para comunicarse, de hecho está diseñando las clases que necesitará en su programa en el nivel de lógica empresarial. En este nivel, UML y el código deben estar sincronizados. Por supuesto, el código tendrá más información, como los métodos implementados completos. En el nivel del código de la interfaz de usuario, por lo general las clases UML no ayudan ni comunican mucho.