UML – стандартный язык объектно

advertisement
Вендров А.М.
Стандарт языка UML и его применение в объектно-ориентированном анализе и
разработке систем
Вендров Александр Михайлович
К.т.н., доцент, заведующий кафедрой информатики
Всероссийской государственной налоговой академии
e-mail: a.m.vendrov@mtu-net.ru
Унифицированный язык моделирования UML (Unified Modeling Language) – это
преемник того поколения методов объектно-ориентированного анализа и проектирования,
которые появились в конце 80-х и начале 90-х годов. Создание UML фактически началось
в конце 1994 г., когда Гради Буч (Grady Booch) и Джеймс Рамбо (James Rumbaugh) начали
работу по объединению их методов Booch и OMT (Object Modeling Technique) под эгидой
компании Rational Software. К концу 1995 г. они создали первую спецификацию
объединенного метода, названного ими Unified Method, версия 0.8. Тогда же в 1995 г. к
ним присоединился создатель метода OOSE (Object-Oriented Software Engineering) Ивар
Якобсон (Ivar Jacobson).
В 1996 г. OMG (Object Management Group) обратилась к объектно-ориентированному
сообществу с предложением создать стандартную нотацию для объектноориентированного анализа и соответствующую семантическую метамодель. Первая
версия UML (UML 1.0) появилась в январе 1997 г. как ответ на данное предложение.
После ее обсуждения в сентябре 1997 г. на голосование в OMG была представлена версия
UML 1.1. В ноябре 1997 г. она была успешно утверждена и принята на вооружение
практически всеми крупнейшими компаниями – производителями программного
обеспечения (Microsoft, IBM, Hewlett-Packard, Oracle, Sybase и др.). Кроме того,
практически все мировые производители CASE-средств, помимо Rational Software,
заявили о реализации поддержки UML в своих продуктах. (Paradigm Plus, System
Architect, Microsoft Visual Modeler, Microsoft Visio, ARIS Toolset, Oracle Designer, Silverrun
и др.).
Текущая модификация UML – UML 1.3 - представлена в OMG в июне 1999 г. как
результат деятельности OMG RTF (Revision Task Force). Деятельность RTF по отношению
к модификациям стандарта UML сводится в основном к следующему:
1) Поиск опечаток и грамматических ошибок;
2) Устранение логических противоречий;
3) Исправление технических ошибок и неточностей;
4) Уточнение неясных положений;
5) Улучшение структуры и читабельности документа.
В ближайшее время ожидается выпуск модификации UML 1.4, наиболее
существенным дополнением в которой будет руководство по написанию профилей –
версий UML для конкретных прикладных областей. Одной из самых популярных областей
в последнее время является разработка Web-приложений, а соответствующий профиль
UML, содержащий конкретное множество стереотипов различных элементов модели и их
связей, описан в книге Джеймса Коналлена (James Conallen) «Building Web Applications
with UML» (Addison Wesley, 2000). Другой пример профиля – концептуальное
моделирование и проектирование схем баз данных – реализуется посредством компонента
Data Modeler, входящего в состав CASE-средства Rational Rose 2000e. Ряд инициатив
OMG и авторов UML связан с моделированием систем реального времени,
распределенными вычислениями, компонентно-базированной разработкой (CORBA
Component Model, Enterprise JavaBeans, COM+), хранилищами данных и др. Достаточно
большой набор типовых решений по моделированию различных архитектурных
механизмов (безопасность, многозадачность, распределенная обработка, многоуровневая
архитектура и др.) развивается в рамках технологии Rational Unified Process (RUP)
компании Rational Software.
В 2002 году ожидается версия OMG UML 2.0, основная работа над которой идет по
следующим направлениям:
 UML infrastructure – реорганизация внутренней структуры метамодели UML с
целью улучшения механизмов расширения языка и интеграции с другими
технологическими стандартами, входящими в сферу деятельности OMG –
CORBA, XML и др. Это направление не затрагивает непосредственно
пользователей языка, однако способствует облегчению процесса внесения
изменений в язык и создания различных прикладных профилей, адаптированных
к потребностям пользователей.
 UML superstructure – совершенствование нотаций и средств моделирования
различных аспектов архитектуры систем, расширяющее применение языка на
различных стадиях процесса создания системы.
 OCL (Object Constraint Language) – совершенствование декларативного языка
ограничений, используемого в моделях UML – достаточно специфическое
направление, не затрагивающее интересы большинства пользователей языка.
 Diagram exchange format – создание формата обмена диаграммами UML между
CASE-средствами различных поставщиков (то, чего не удалось добиться в
рамках CASE-средств, реализующих структурный подход, ввиду отсутствия
стандартов средств моделирования).
Значение стандарта UML трудно переоценить. По существу, это первый в
программной инженерии «де-юре» стандарт языка моделирования программных систем.
Общепризнанные «де-факто» и широко используемые модели SADT (IDEF0), диаграммы
потоков данных и модели «сущность-связь» такого статуса не имеют до сих пор.
В настоящее время идет процесс представления UML в качестве стандарта ISO.
Преимущества утверждения UML в качестве стандарта ISO очевидны: широкое признание
языка, расширение рынка для поддерживающих его продуктов. С другой стороны,
существуют опасения, что длительный процесс утверждения стандарта может привести к
выхолащиванию языка из-за необходимости технических и политических компромиссов.
Создатели UML представляют его как язык для определения, представления,
проектирования и документирования программных систем, бизнес-систем и других
систем различной природы.
UML не зависит от объектно-ориентированных языков программирования (он может
поддерживать любой из них) и от используемого метода разработки проекта. UML
является открытым и обладает средствами расширения базового ядра. На UML можно
содержательно описывать классы, объекты и компоненты в различных предметных
областях, часто сильно отличающихся друг от друга.
UML содержит стандартный набор диаграмм и нотаций для моделирования самых
разнообразных видов систем: систем программного обеспечения (ПО), технических
средств и организационно-экономических систем:
 диаграммы вариантов использования (use case diagrams) - для моделирования бизнеспроцессов и функциональных требований к создаваемой системе;
 диаграммы классов (class diagrams) - для моделирования статической структуры
классов системы;
 диаграммы поведения системы (behavior diagrams):
 диаграммы взаимодействия (interaction diagrams): диаграммы последовательности
(sequence diagrams) и кооперативные диаграммы (collaboration diagrams) - для
моделирования взаимодействия (обмена сообщениями) между объектами;

диаграммы состояний (statechart diagrams) - для моделирования жизненного цикла
(переходов состояний) объектов системы;
 диаграммы деятельностей (activity diagrams) - для моделирования сложного
поведения системы в рамках вариантов использования при наличии параллельных
процессов;
 диаграммы реализации (implementation diagrams):
 диаграммы компонентов (component diagrams) - для моделирования физической
структуры программных компонентов системы;
 диаграммы размещения (deployment diagrams) - для моделирования размещения
программных компонентов системы в распределенной среде.
Несмотря на богатые возможности моделирования, язык UML пока еще находится в
«детском» возрасте, постоянно развивается и обогащается новыми возможностями. Его
применение в реальных проектах (особенно в российских условиях) связано с целым
рядом проблем, в частности, основная и практически единственная технология,
представленная на российском рынке – Rational Unified Process и инструментальный
комплекс Rational Suite – является весьма объемной, непростой для внедрения и
дорогостоящей даже по западным меркам, опыт ее серьезного применения в России
отсутствует (ряд крупных проетов находится пока только в начальной стадии), а западный
опыт труднодоступен. С другой стороны, компания Rational стремится к созданию
компактного варианта технологии, рассчитанного на применение в небольших проектных
коллективах для реализации проектов среднего масштаба.
За рубежом издано достаточно большое количество самых разнообразных по уровню
и содержанию книг, посвященных UML, однако большая часть приведенных в них
примеров моделирования является тривиальной или чересчур академичной и не учитывает
практические проблемы разработчиков ПО. В последнее время в России выпущено
несколько книг, посвященных языку UML и аспектам его применения при создании
программных систем. Упомянем только одну:
К. Ларман «Применение UML и шаблонов проектирования» - ценная и лучше всего
написанная, по мнению автора, поскольку в ней описан не просто язык UML, а процесс
анализа и проектирования программной системы с использованием языка UML и образцов
(patterns) проектирования (шаблон – не совсем удачный перевод слова pattern).
Некоторые адреса, по которым можно найти исчерпывающую и полезную
информацию о UML:
www.omg.org – официальный сайт OMG
www.rational.com – сайт компании Rational Software
www.rosearchitect.com – специализированный журнал по продуктам Rational Software
www.sdmagazine.com – журнал для разработчиков ПО
www.cetus-links.org/oo_uml.html – сборник большого количества ссылок на ресурсы UML
Download