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


2 comments:
Ещё хуже - он пытается сравнивать проектирование как айтишный термин с проектированием инженерным. В то время как последнему соответствует собственно написание кода, а "проектирование" в ИТ заканчивается - максимум - на эскизе. Аналог эмуляции электрической цепи - запуск программы под отладчиком.
Но UML - действительно способ описания и документации, что же ещё?
UML это просто язык, причём ещё и не очень хороший (альтернативы, впрочем, хуже, т.к. предмет описания неблагодарный). Отметил я это потому что часто сталкивался с тем, что схемы UML полагаются многими самодостаточными - раз мы в UML нарисовано, значит, и работать должно, такого не бывает, чтобы это было сложно или невозможно реализовать на конкретном языке и библиотеках, в которых ведётся проект.
Post a Comment