¿se suele poner asociaciones de agregación entre interfaces?Agregación de interfaz en diagramas de clase UML
Ejemplo:
Aquí, siento que una agregación es redundante. El que está entre las interfaces es más importante, porque eso es lo que usarán los clientes de las clases. BMW y LuxuryWheel siempre se usarán a través de ICar y IWheel. Sin embargo, ICar realmente no agrega IWheel, ya que es una interfaz y no contiene una lógica real. BMW agrega claramente LuxuryWheel, pero eso es casi un detalle de implementación.
¿Cómo modelizarías esto? ¿Hay alguna forma en UML de marcar una agregación (o asociación) como abstracta o por implementar?
7.3.24 parece relevante. Si leo esa sección (y miro el ejemplo), me parece que uno no modela explícitamente la asociación entre las clases concretas. Están implícitos a través de la asociación entre las interfaces. Eso significa que la asociación entre BMW y LuxuryWheel es superflua. – TheFogger
@TheFogger: bueno, esa es la pregunta ... si el "debe existir" en la especificación significa que DEBERÍA estar en el modelo, entonces PORQUE tiene la asociación entre las interfaces, DEBE tener la asociación entre la instancia de ICar (BMW) y IWheel (LuxuryWheel). Por otro lado, a veces no estoy muy seguro con las descripciones de lenguaje natural de la especificación UML, y diría que te has aventurado en una de esas áreas grises. Tal vez deberías usar una clase abstracta ACar que tiene una agregación de AWheels en lugar de interfaces. Eso es con lo que la mayoría de la gente se sentiría cómoda. – ShiDoiSi