Как улучшить эту диаграмму классов компонентов велосипеда

Поэтому мне дали задание сделать диаграмму классов для велосипеда. Я знаю, что такое диаграмма классов и что за ней стоит.

Для меня велосипед состоит из трех основных компонентов: тормозной системы, системы привода и системы рулевого управления. И у каждой системы есть свои активаторы действия: ручка тормоза, педаль и руль.

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

Мой вопрос: есть ли лучший способ проиллюстрировать связь между активаторами и системами, в которые они должны передавать данные? Также система работает изолированно, что означает, что внешние факторы, такие как аварии или механические поломки, не входят в сферу действия системы.

1 ответ

Решение

Да, есть "лучший способ проиллюстрировать связь между активаторами и системами, которые они должны активировать". Эти "активаторы", по сути, являются частью этих подсистем. Следовательно, вам не следует использовать простые ассоциации UML на первых двух уровнях иерархии разбивки композиции, а следует использовать отношения композиции UML (с "черными ромбами"), которые представляют собой особые ассоциации, представляющие отношения " часть-целое", где части являются исключительными (= не подлежат передаче).

Bicycle будет состоять из BreakSystem, DriveSystem а также SteerSystem. Тогда, например,BreakSystem будет состоять из "активатора" BreakLever а также Brake. Аналогично и для других подсистем.

Поскольку вы не моделируете цифровой велосипед, лучше сказать, что активатор (например, тормозной рычаг) заставляет подсистему (например, тормозную систему) реагировать, вместо того, чтобы "активаторы должны передавать данные" этим подсистемам. В механической системе речь идет о физических причинно-следственных связях, а не о передаче данных.

См. Также https://www.uml-diagrams.org/composition.html для объяснения концепции композиции UML, которая часто связана с зависимостью жизненного цикла, но не подразумевает ее.

Другие вопросы по тегам