Поиск удобной нотации для отображения зависимостей объектов(Прочитано 896 раз)
Добрый день, я нахожусь в поиске удобной нотации для отображения следующего примера:
Пускай есть 3 группы объектов: Материал, метод обработки, инструмент. В группе материал находятся: гвозди, шурупы, чопики. В группе метод обработки находятся: забивать, крутить. В группе инструмент: молоток, отвертка.
Необходимо представить зависимости между этими группами наиболее удобно: Например если в качестве инструмента выбран молоток, то множество материалов сужается до (гвозди, чопики), а метод обработки до (забивать)
Есть варианты изображения данной зависимости с помощью паттерна фабрика, но хотелось бы что то более удобное(понятное даже человеку не знакомому с UML)/

Если коротко, нужна диаграмма отображающая сценарий, при котором выбор одного элемента множества, отсекает объекты из другого множества, не имеющих связи с выбранным объектом.

Очень хотелось бы услышать варианты представления таких задач.
Спасибо



Для начала хорошо бы определить характер зависимости: нет ли среди 12 возможных (под)зависимостей функциональные (12 зависимостей получаются для 3 групп, если групп больше, то больше и зависимостей http://www.academia.edu/13759154/The_meaning_of_multiplicity_of_n-ary_associations_in_UML таблица 4). По примеру это возможно, например: молоток позволяет только забивать, а отвертка - только закручивать.



Возможны и такие случаи, как - молоток-гвоздодер позволяет как забивать гвозди и чопики так и вытаскивать гвозди и "еще что нибудь"(но не чопики)



Ещё вопрос по предметной области: может быть есть отдельная связь между материалами и методами обработки (гвозди могут забиваться и вытаскиваться, чопики - забиваться и удаляться [не равно вытаскиваться!]). И уже экземпляры этой связи связываются с инструментами (несколькими, только одним или вообще с нулем!), например гвозди доставаться могут только молотком-гвоздодером, а чопики могут удаляться и молотком-гвоздодером, и отверткой, а шурупы должны удаляться, но нет ни одного инструмента для этого?



Да, связь может быть между всеми группами объектов. Допустим если мы выбрали шурупы, то мы знаем что их можно только вкрутить, а удалить уже не получиться , при этом инструмент только отвертка, если мы выбрали гвозди, то мы знаем, что их можно как забить так и вытащить, при этом забить можно как молотком, так и молотком-гвоздодером, а вытащить только молотком-гвоздодером.



шурупы должны удаляться, но нет ни одного инструмента для этого?
Такая ситуация допустима?



Такая ситуация допустима?
Да



Еще 2 ситуации возможны?:
  • шурупы обрабатываются отверткой, но не определен метод обработки
  • кручение делается отверткой, но не определен материал



Еще 2 ситуации возможны?:
  • шурупы обрабатываются отверткой, но не определен метод обработки
  • кручение делается отверткой, но не определен материал
Ответ на обе ситуации такой: для пары всегда определено множество с которым оно взаимодействует(при этом это множество может быть пустым, значит в данный момент нету доступного материала например) , а для одного объекта, например шурупа, должно соответствовать 2 множества (материалы и метод обработки) при выборе одного объекта из другого множества, сужаетси и 3 множество



А чем вам например таблица не подходит?



Хочу определить детали структуры информации. Для этого использую пример, в котором в каждом пункте делается попытка добавления одной минимальной порции данных. Минимальная порция данных - связка материала, метода обработки и инструмента. Любой из элементов связки может быть не заполнен (NULL).
Наращиваем содержимое:
  • гвоздь, забивание, молоток - принимается
  • гвоздь, вытаскивание, молоток-гвоздодер - принимается
  • гвоздь, забивание, молоток-гвоздодер - принимается
  • гвоздь, забивание, молоток - не принимается (дублирование)
  • гвоздь, забивание, NULL - принимается
  • гвоздь,  NULL, молоток - принимается
  • NULL, забивание, молоток - принимается
  • гвоздь, забивание, NULL - не принимается (дублирование)
  • гвоздь, NULL, NULL - не принимается (мало заполненных элементов)
  • NULL, забивание, NULL - не принимается (мало заполненных элементов)
  • NULL, NULL, молоток - не принимается (мало заполненных элементов
Правильно?



Хочу определить детали структуры информации. Для этого использую пример, в котором в каждом пункте делается попытка добавления одной минимальной порции данных. Минимальная порция данных - связка материала, метода обработки и инструмента. Любой из элементов связки может быть не заполнен (NULL).
Наращиваем содержимое:
  • гвоздь, забивание, молоток - принимается
  • гвоздь, вытаскивание, молоток-гвоздодер - принимается
  • гвоздь, забивание, молоток-гвоздодер - принимается
  • гвоздь, забивание, молоток - не принимается (дублирование)
  • гвоздь, забивание, NULL - принимается
  • гвоздь,  NULL, молоток - принимается
  • NULL, забивание, молоток - принимается
  • гвоздь, забивание, NULL - не принимается (дублирование)
  • гвоздь, NULL, NULL - не принимается (мало заполненных элементов)
  • NULL, забивание, NULL - не принимается (мало заполненных элементов)
  • NULL, NULL, молоток - не принимается (мало заполненных элементов
Правильно?
Да, все верно



А чем вам например таблица не подходит?
При увеличении кол-ва групп таблица будет крайне громосткой, хотелось бы использовать вариант более компактный и в виде диаграммы



Предметная область понятна. Теперь дальше.
Необходимо представить зависимости между этими группами наиболее удобно: Например если в качестве инструмента выбран молоток, то множество материалов сужается до (гвозди, чопики), а метод обработки до (забивать)
Есть варианты изображения данной зависимости с помощью паттерна фабрика, но хотелось бы что то более удобное(понятное даже человеку не знакомому с UML)/

Если коротко, нужна диаграмма отображающая сценарий, при котором выбор одного элемента множества, отсекает объекты из другого множества, не имеющих связи с выбранным объектом.
Непонятно, может "варианты изображения данной зависимости с помощью паттерна фабрика" покажете, будет яснее.

Ещё вопрос - пусть содержимое:
  • гвоздь, забивание, молоток
  • гвоздь, вытаскивание, молоток-гвоздодер
  • гвоздь, забивание, молоток-гвоздодер
  • шуруп, вкручивание, отвертка
После выбора гвоздя что оказывается:
  • есть 2 метода обработки: забивание и вытаскивание; есть 2 инструмента: молоток и молоток-гвоздодер
  • есть 3 пары: забивание, молоток; вытаскивание, молоток-гвоздодер; забивание, молоток-гвоздодер
?



Предметная область понятна. Теперь дальше.Непонятно, может "варианты изображения данной зависимости с помощью паттерна фабрика" покажете, будет яснее.

Ещё вопрос - пусть содержимое:
  • гвоздь, забивание, молоток
  • гвоздь, вытаскивание, молоток-гвоздодер
  • гвоздь, забивание, молоток-гвоздодер
  • шуруп, вкручивание, отвертка
После выбора гвоздя что оказывается:
  • есть 2 метода обработки: забивание и вытаскивание; есть 2 инструмента: молоток и молоток-гвоздодер
  • есть 3 пары: забивание, молоток; вытаскивание, молоток-гвоздодер; забивание, молоток-гвоздодер
?
Вариант с фабрикой смогу скинуть позже,
Отвечая на второй вопрос:
Остается 2 метода обработки и 2 инструмента