Однако у меня был один или два профессора, которые использовали строгий формальный UML, максимально приближенный к спецификации.
Спросите своего профессора, когда в последний раз он использовал этот подход в реальной системе. Шутки в сторону.
Я стараюсь быть настолько формальным, насколько это возможно, когда дело доходит до UML, но только если / когда это имеет смысл. Зилоты по обе стороны спектра (от ковбоев до настойчивых формалистов) не понимают этого.
Существуют контексты, в которых менее жесткий подход (например, тот, который вы используете лично) является лучшим подходом для подражания. Хороший пример - для небольших систем или изменений, где требования невелики и не определены полностью; ответственная группа эффективна и действенна; это важнее, чем сделать его идеальным. Это делается итеративно, и некоторые недостатки являются приемлемыми.
Или, может быть, вы находитесь в стадии, когда вы делаете гадание и зарисовку, а не полную формальную фазу моделирования. Это примеры, которые приходят на ум.
В других случаях вам нужен жесткий формальный подход UML. Например, вы можете быть связаны контрактом; у вас очень много разработчиков в нескольких командах (возможно, распределенных); масштаб проекта может быть в годах; это очень большая система (включая программные и аппаратные компоненты); высокая стоимость отказа и т. д.
В других случаях вы должны использовать что-то другое вместо / в дополнение к UML (фактические математические формальные модели, такие как сети Петри, CSP или временная логика.) Примером этого являются системы реального времени, системы, в которых сбои являются катастрофическими (медицинские устройства) или где вы связаны контрактом (т.е. как в Европе при разработке транспортных систем.)
Все зависит от обстоятельств и того, что мы ожидаем получить от каждого подхода. Профессор, который придерживается формальностей, просто слепой фанатик. Мир машиностроения - это не черно-белая, правильная / неправильная дихотомия. Это мир разумных компромиссов.
Если вы достаточно умны, чтобы использовать случайную, неформальную модель таким образом, чтобы она была эффективной и подходящей для выполнения работы, пусть будет так. Кроме того, вы должны будете понимать, когда НЕ использовать неформальный подход и / или когда НЕ использовать использовать формальный.
Сказав это, вы должны играть на слух с профессорами. Дайте им кость, чтобы они дали вам оценку, и если это означает, наконец, поклониться их фанатичной мантре, это нормально. Вы знаете, что работает для вас, и, надеюсь, вы будете знать, когда использовать то, что и как в реальном мире.