Зависимости в диаграмме состояний UML - PullRequest
1 голос
/ 09 апреля 2020

У меня есть класс, подобный следующему:

class Stack {
  ...
  push()
  pop()
  isEmpty()
  ...

  class StackIterator extends Iterator {
    ...
    hasNext()
    next()
    ...
  }
}

, и я хочу создать диаграмму состояний UML для итератора. Моя идея состояла в том, чтобы использовать стрелку зависимости и вызовы стека для моделирования состояний итератора следующим образом:

enter image description here

Было бы это действительным, промышленным доказательством и полностью понятная диаграмма состояний UML для подобных ситуаций?

Ответы [ 2 ]

0 голосов
/ 09 апреля 2020

Чтобы показать поведение стека, вы должны просто использовать диаграмму активности. Заполненные / пустые состояния излишни, и вы легко получаете защиту для поп с условием [size >=1 ].

Кстати. ничто не бесконечно. Пу sh должен иметь [size < max] или подобное.

0 голосов
/ 09 апреля 2020

Конечный автомат может быть поведением операции, но связать конечный автомат с классом очень странно и не соответствует UML, поскольку класс не имеет поведения.

Зависимость между конечным автоматом не имеет предопределенного значения в UML. Вы хотите указать наследование между вашими классами, но хотя конечный автомат не должен быть связан с классом, эта зависимость не имеет отношения

[править]

Для людей, которые сомневаются в Поскольку конечным автоматом может быть поведение операции, я рекомендую вам взглянуть на норму:

  • StateMachine наследует поведение (§14.2.2 формального 2017-12-5)
  • Операция наследует BehavioralFeature (§ 9.6.2)
  • a BehavioralFeature реализуется (реализуется) Поведением (§ 9.9.2))

Обратите внимание, что поведение операции может Также поддержите мою деятельность, будучи также Поведением

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...