Автор Тема: Поиск удобной нотации для отображения зависимостей объектов  (Прочитано 455 раз)

MARKUS27

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

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

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


Vadim

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

MARKUS27

  • Newbie
  • *
  • Сообщений: 8
  • Рейтинг читателей: 0
    • Просмотр профиля
Возможны и такие случаи, как - молоток-гвоздодер позволяет как забивать гвозди и чопики так и вытаскивать гвозди и "еще что нибудь"(но не чопики)

Vadim

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

MARKUS27

  • Newbie
  • *
  • Сообщений: 8
  • Рейтинг читателей: 0
    • Просмотр профиля
Да, связь может быть между всеми группами объектов. Допустим если мы выбрали шурупы, то мы знаем что их можно только вкрутить, а удалить уже не получиться , при этом инструмент только отвертка, если мы выбрали гвозди, то мы знаем, что их можно как забить так и вытащить, при этом забить можно как молотком, так и молотком-гвоздодером, а вытащить только молотком-гвоздодером.

Vadim

  • Full Member
  • ***
  • Сообщений: 209
  • Рейтинг читателей: 34
    • Просмотр профиля
шурупы должны удаляться, но нет ни одного инструмента для этого?
Такая ситуация допустима?

MARKUS27

  • Newbie
  • *
  • Сообщений: 8
  • Рейтинг читателей: 0
    • Просмотр профиля

Vadim

  • Full Member
  • ***
  • Сообщений: 209
  • Рейтинг читателей: 34
    • Просмотр профиля
Еще 2 ситуации возможны?:
  • шурупы обрабатываются отверткой, но не определен метод обработки
  • кручение делается отверткой, но не определен материал

MARKUS27

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

Galogen

  • Member of CAR
  • Hero Member
  • *****
  • Сообщений: 6164
  • Рейтинг читателей: 198
  • Аксакал
    • Просмотр профиля
    • Профиль в Моем Круге
А чем вам например таблица не подходит?

Vadim

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

MARKUS27

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

MARKUS27

  • Newbie
  • *
  • Сообщений: 8
  • Рейтинг читателей: 0
    • Просмотр профиля
А чем вам например таблица не подходит?
При увеличении кол-ва групп таблица будет крайне громосткой, хотелось бы использовать вариант более компактный и в виде диаграммы

Vadim

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

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

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

MARKUS27

  • Newbie
  • *
  • Сообщений: 8
  • Рейтинг читателей: 0
    • Просмотр профиля
Предметная область понятна. Теперь дальше.Непонятно, может "варианты изображения данной зависимости с помощью паттерна фабрика" покажете, будет яснее.

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