Каталог статей
Главная » Статьи » Мои статьи | [ Добавить статью ] |
UML (англ. Unified Modeling Language — унифицированный язык моделирования) — язык графического описания для объектного моделирования в области разработки программного обеспечения. UML является языком широкого профиля, это — открытый
стандарт, использующий графические обозначения для
создания абстрактной
модели системы, называемой UML-моделью. Преимущества UML
Недостатки
UML Несмотря на то, что
UML - достаточно широко распространённый и используемый стандарт, его часто
критикуют из-за следующих недостатков: ·
Избыточность языка. UML
часто критикуется, как неоправданно большой и сложный. Он включает много
избыточных или практически неиспользуемых диаграмм и конструкций. Чаще это
можно услышать в отношении UML 2.0, чем UML 1.0, так как более новые ревизии
включают больше «разработанных-комитетом» компромиссов. ·
Неточная
семантика.
Так как UML определён комбинацией себя (абстрактный синтаксис), OCL (языком описания
ограничений — формальной проверки правильности) и Английского (подробная
семантика), то он лишен скованности, присущей языкам, точно определённым
техниками формального
описания. В некоторых случаях абстрактный синтаксис UML, OCL и
Английский противоречат друг другу, в других случаях они неполные. Неточность
описания самого UML одинаково отражается на пользователях и поставщиках инструментов,
приводя к несовместимости инструментов из-за уникального трактования
спецификаций. ·
Проблемы
при изучении и внедрении.
Вышеописанные проблемы делают проблематичным изучение и внедрение UML, особенно
когда руководство насильно заставляет использовать UML инженеров при отсутствии
у них предварительных навыков.[12] ·
Только
код отражает код. Ещё одно мнение — что важны рабочие системы, а
не красивые модели. Как лаконично выразился Джек Ривс, «The code is the
design» («Код и есть проект»).[13][14] В
соответствии с этим мнением, существует потребность в лучшем способе написания
ПО; UML ценится при подходах, которые компилируют модели
для генерирования исходного или выполнимого кода. Однако этого всё же может
быть недостаточно, так как UML не имеет свойств полноты по
Тьюрингу и любой сгенерированный код будет ограничен тем, что
может разглядеть или предположить интерпретирующий UML инструмент. ·
Кумулятивная
нагрузка/Рассогласование нагрузки (Cumulative
Impedance/Impedance mismatch). Рассогласование нагрузки — термин из
теории системного
анализа для обозначения неспособности входа одной системы
воспринять выход другой. Как в любой системе обозначений UML может представить
одни системы более кратко и эффективно, чем другие. Таким образом, разработчик
склоняется к решениям, которые более комфортно подходят к переплетению сильных
сторон UML и языков программирования. Проблема становится более очевидной, если
язык разработки не придерживается принципов ортодоксальной
объектно-ориентированной доктрины (не старается соответствовать традиционным
принципам ООП).
·
Пытается
быть всем для всех.
UML — это язык моделирования общего назначения, который пытается
достигнуть совместимости со всеми возможными языками разработки. В контексте
конкретного проекта, для достижения командой проектировщиков определённой цели,
должны быть выбраны применимые возможности UML. Кроме того, пути ограничения
области применения UML в конкретной области проходят через формализм, который
не полностью сформулирован, и который сам является объектом критики. | |
Просмотров: 1092 | |
Всего комментариев: 0 | |