Некрокопания псто.
Группы изображаем как классы: Material, Method, Tool.
Соединяем их классом тернарной ассоциации Matches
Material-0..*---┓
Method-0..*---⃟-- -- --Matches
Tool-0..*-------┛
Чтобы были тройки вместо NULL заводим объекты-плейсходлеры
undefined-material:Material,
undefined-tool:Tool,
undefined-method:Method.
Конкретные тройки связанных экземпляров рисуем на диаграмме объектов (есть лакуна в стандарте UML по части того, как должно рисовать тройки, соединённые экземпляром тернарной ассоциации). В книгах авторы просто повторяют то, что на диаграмме классов, полагая, что если экземпляр бинарной ассоциации выглядит также, как она сама, то это справедливо и для тернарной.
Нормальной онлайн-рисовалки, как выяснилось, нет.
![](https://mindmup-export.s3.us-east-1.amazonaws.com/map.jpg/out/8748a590eb5711ec8fedbb4d3ee7bfe1.map.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIASNCK5ADRRPFOE6PM%2F20220613%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220613T202930Z&X-Amz-Expires=93600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEHUaCXVzLWVhc3QtMSJGMEQCIGbrIg0oc40tqPVP5X5SidkaQLYf5UjjtMflZ5dSxfvNAiB1FPuhjZ5ZfCyYVrOuulRXWOar950xJHS%2FCFl0Hbff8SqVAgh9EAAaDDE2NTUxMzMzMDkxNSIMc6K28w3Bc62LEQ8pKvIBK9QpTuKWPEp%2F6CyqrqKaYjqnY9Qni9zT2xb%2BgzVGO0UFkWx2O%2Bq%2BoDiX9RHOaYPLkbRIakHApCq4%2FdIXbZFdc2F4zXPMSzwWMvkgNuk9HUjU46xT74MpRAr00jhRfUXH78ITHVtqIqabPi1lyqKoVpifICLhIqBFT7dFK9QdNWg9R6kOSuBrVHOOTGkdv1vl4F9TxGdZ9RNFlJTyyAa%2Fqv78KRNUvYk7xUPbKKIOtxVOFAEhOkrOE%2B3jRBLxLG1VA7jRofIQF1NaP6gpixbjjo5kC5OfZ4V0v0DuE%2B%2FSjkwfjvjigo9udFKNot3x76k3wVcwgbSelQY6mwFzHIKlCPxTnJWaP6GRa%2BtvHd1mnbp4%2FRSVsWoNnvgCQPyQQxbRSqx8Ub4B8KpMASy76ZEiJ1JFR7OmVIMQmYnAZVdyDlZa3XM625j%2FjdOklfNXOBYTEY48MmBosX8gs0U2TNQFWmxtlavK%2By12cOkMU7t%2BkuCsxgQLEvK%2BHWLThcPeUSKgTHdczfz2%2FlQL5v7hLOhXWnI2ad4dTg%3D%3D&X-Amz-Signature=b84075a69a4a0fb57a4e5108c96d75f10901331e3c063b96b9bc831d208eeb9d&X-Amz-SignedHeaders=host&x-id=GetObject)