Концептуальная Диаграмма Классов - PullRequest
2 голосов
/ 02 декабря 2010

Я пытаюсь нарисовать концептуальную диаграмму классов. В моей системе у меня есть один человек, который может выполнять 2 роли. Один - «учитель», а другой - «ученик». Один и тот же человек может быть учителем в одном случае, и тот же человек может быть учеником в другом случае В такой ситуации хорошо ли изображать их как 2 отдельных класса (в моей концептуальной диаграмме)?

Пожалуйста, сообщите.

Спасибо

1 Ответ

3 голосов
/ 02 декабря 2010

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

Люди исполняют роли. Попробуйте

Лицо, связанное с EducationRole

EducationRole имеет подклассы «Студент» и «Учитель»

Вот диаграмма.

diagram

Они могут менять свою роль в зависимости от ситуации. Если вам нужно показать человека, обучающего себя, то создайте подкласс EducationRole с именем «Autodiadact», что означает самообучение.

Комментатор спросил об изменении роли с помощью метода, и я хотел бы включить ответ здесь.

Итак, да, вы могли бы закодировать способность изменять роль в методе, но сделать резервную копию и задать более важный вопрос, почему мы меняем роль? Учитель становится учеником, или ученик становится учителем, в любом случае модель, показанная на рисунке, позволяет Человеку иметь много образовательных ролей (что обозначает звездочка) одновременно, поэтому на самом деле нет необходимости менять роль, но поддерживать человека с несколькими возможными ролями.

В концептуальной модели вы пытаетесь проиллюстрировать взаимосвязи между любым действительным состоянием системы, а не обязательно тем, как изменение может быть выполнено (с использованием метода).

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