5

Я создаю свое первое приложение для Android. Я избегать меток ассоциаций с пользователем или системными взаимодействиями (например, я меченный начинается вместо startsWhenClick; я назвал начинается вместо startsWhenDetection). Однако после прочтения this, я рассматриваю возможность изменения начинает ассоциациями по < < создавать >> зависимости. Я смущен!Диаграмма классов UML: как смоделировать отношения о вызове метода или запуске деятельности или службы

Приложение работает следующим образом. Когда приложение запустится, LauncherActivity вызовет методы BaseActivity, чтобы запустить активность, отмеченную в SettingsActivity (это также может быть SettingsActivity). LauncherActivity также запустит обе службы. Это схема:

full class diagram

Примечание: этот вопрос является продолжением this вопроса.

+0

Посмотрите на редактирование, пожалуйста – Gangnus

ответ

5

Это не настоящая диаграмма классов.

  • Начинает и звонит принадлежит к заметкам, или если вы уверены, что хотите видеть их на соединениях, делайте стереотипы по ВЗАИМОДЕЙСТВИЯМ, а не к ассоциациям.
  • У вас все еще нет ассоциаций, и они являются основной частью диаграммы классов. Посмотрите here о том, как с ними работать. Сначала вы должны создавать ассоциации. Только после этого показывают зависимости. (Это не общее правило, но вы должны сделать это для лучшего понимания)
  • Что касается действий, которые вы пытаетесь показать здесь, выполните диаграмму State Machine для них, а затем, вероятно, схему последовательности или активности. Не используйте диаграмму обзора взаимодействия, вы заблудитесь в ней.

Но не прекратить ставить так много действий на диаграмме классов

ИМХО, потому что Деятельность не имеют или почти нет зависимостей структуры, соответствующая диаграмма классов будет очень беден - простые блоки без ассоциаций. И зависимости по всему полю ... Итак, диаграмма классов не полезна на этом уровне. Кажется, я уже сказал вам, что диаграммы классов предназначены для классов, которые находятся в одном намерении Android - один или несколько для намерения.

Что касается Коммуникационная схема, думаю, что это не ваш случай. Это чаще, ближе к пользователю, чем диаграммы последовательности или активности. Это касается случая, когда у вас очень много сообщений, и вы планируете их маршруты. Например, для планирования верблюдов. Но, увы - он не реализовал шаблоны сообщений. Таким образом, это остается только для очень общего планирования систем с массовыми сообщениями. Ваши «сообщения» запускаются, инициируя компоненты и т. Д. Вы не можете показать это с помощью этой диаграммы.

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

+0

Итак, если бы я хорошо понял, это было бы (мы должны использовать пунктирные линии, не так ли?): ** 1) ** 'PowerButtonPushedDetectorService <··· <> ··· LauncherActivity'. Могу ли я использовать стереотип <> даже если это не [здесь] (http://publib.boulder.ibm.com/infocenter/rsmhelp/v7r0m0/index.jsp?topic=/com.ibm.xtools.modeler. док/темы/cdepend.html)? ** 2) ** 'LauncherActivity ··· <> ··· settingsAtrribute ···> SettingsActivity' и' LauncherActivity <··· <> ··· SettingsActivity'. Могу ли я пометить <> вместо <>? – chelder

+0

Зависимости @chelder разрезаются, а не пунктирные линии. a- - - -> b – Gangnus

+0

@chelder Нет, пожалуйста! Сначала вы должны создавать ассоциации. Только после этого показывают зависимости. Что касается действий, которые вы пытаетесь показать здесь, выполните диаграмму State Machine для них, а затем, вероятно, диаграмму последовательности или активности. Не используйте диаграмму обзора взаимодействия, вы заблудитесь в ней. * Но прекратите переносить действия на диаграмму классов * – Gangnus