Con las clases ya extraídas y parcialmente definidas (aún faltan por añadir métodos y atributos inferidos de posteriores refinamientos y de nuestro conocimiento) podemos empezar a construir relaciones entre ellas.
Del enunciado se puede suponer que la empresa Truan es una composición de sedes y que no tiene sentido la existencia de sedes en caso de desaparecer la empresa. En la relación de composición la cardinalidad en el lado de la clase más general siempre es 1. En este caso particular, se considera que la empresa puede tener varias sedes o todavía no tener ninguna adherida.
Por otro lado, tanto los proveedores como los talleres actúan como autónomos, compartiendo ciertas características comunes, por lo que resultará útil definir una relación de generalización-herencia.




![Relación de conexión. Cuatro clases que están todas conectadas entre sí por una línea representadas como rectángulos de color azul divididos en tres banda recta y horizontal etiquetada con “0..*”. . Las clases están horizontales. En la banda superior aparece el nombre de la clase, en la central los atributos y en el inferior los módulos. En la esquina inferior aparece la clase Pieza con atributos –CodigoPieza:int, -PrecioCompra:int y -PrecioVenta:int y módulos +ponerPrecioCompra().void y +ponerPrecioVenta().void. En la parte superior aparece la clase Sede con atributos “id_sede:int” y “Nombre:string” y módulos “+altaProveedor():void” y “infoTaller():Taller”. Por último, encontramos en la parte izquierda las clases Taller con el atributo -Tipo: string y Proveedor con el atributo –Código:int y el módulo +códigoProv[]: int.](ED05-Ejer-Coche-03.png)
![Diagrama de clases del problema. Conjunto de clases en las que se aprecia la herencia, composición y agregacion. Las clases están representadas como rectángulos de color azul divididos en dos o tres banda horizontales. En la banda superior aparece el nombre de la clase y en las inferiores los atributos y métodos. En la zona superior de la imagen aparece la clase “Autónomo” con los atributos con los atributos -Nombre: string, -CIF: string, -Telefono: int, -Dirección: string. Aparece conectada por una línea en forma de T invertida con un triángulo blanco en el extremo de la clase Proveedor con el atributo –Código:int y el módulo +códigoProv[]: int y Taller con el atributo -Tipo: string. A la derecha de ambos aparece la clase Pieza con atributos –CodigoPieza:int, -PrecioCompra:int y -PrecioVenta:int y módulos +ponerPrecioCompra().void y +ponerPrecioVenta().void. Las clases Proveedor, Taller y Pieza se relacionan con Sede mediante una relación en forma de linea etiquetada con cardinalidad 0..* con atributos “id_sede:int” y “Nombre:string” y módulos “+altaProveedor():void” y “infoTaller():Taller”. Por último, la clase Sede están conectadas con la clase Truan por una línea recta y horizontal etiquetada con “1 0..*”. La clase “Truan” está dividida en 3 bandas iguales. . En la banda superior aparece el nombre “Truan”, en la banda central el atributo “-Empleados: int”, y en la inferior el módulo “+numEmpl(): int”.](ED05-Ejer-Coche-0.png)