На этом шаге рассмотрим обзор UML.
Язык моделирования – это язык, словарь и правила которого сосредоточены на концептуальном и физическом представлении системы.
Унифицированный язык моделирования (Unified Modeling Language – UML) – это стандартный инструмент для разработки "чертежей" программного обеспечения. Его можно использовать для визуализации, спецификации, конструирования и документирования артефактов программных систем.
Моделирование необходимо для понимания системы. При этом ни одна модель не является абсолютно достаточной. Словарь и правила языка UML, говорят о том, как создавать и читать хорошо согласованные модели, но не говорит о том, какие именно модели в каких случаях требуется создавать.
UML – язык визуализации. Описание моделей на UML позволяет решить проблему понимания системы сторонними участниками процесса моделирования путем создания явной модели системы.Некоторые вещи лучше моделировать в тексте, другие – графически. В действительности во всех системах существуют структуры, которые невозможно выразить на языке программирования (текстом). UML – графический язык, позволяющий решить еще и проблему, связанную со сложностью восприятия в некоторых случаях текстовой информации (например, иерархия классов).
UML – нечто большее, чем просто набор графических символов. Каждый из этих символов имеет четко определенную семантику. И это значит, что один разработчик может описать модель на UML, а другой разработчик и даже инструментальное средство – однозначно интерпретировать ее. Что снимает проблему понимания системы группой разработчиков.
UML – язык специфицирования. В данном контексте специфицирование – это построение точных, недвусмысленных и полных моделей. В частности, UML позволяет специфицировать все важные решения, касающиеся анализа, дизайна и реализации, принимаемые в процессе разработки и внедрения программных систем.
UML – язык конструирования. Существует возможность отобразить UML-модель на такой язык, как Java, C++ или Visual Basic, а при необходимости даже на таблицы реляционной базы данных, либо объекты, хранящиеся в объектно-ориентированной базе данных. Те вещи, которые проще выразить графически, выражаются на UML, а те, что легче выразить в виде текста, – на языке программирования.
Отображение модели на язык программирования позволяет осуществить прямое проектирование – генерацию кода на языке программирования из модели UML. Обратное также возможно: вы можете восстановить модель UML на основе существующей реализации. Возможно и обратное проектирование, выполняемое инструментальными средствами, которое требует определенного вмешательства человека. Комбинация этих двух путей – прямого и обратного проектирования – обеспечивает возможность работы как с графическим, так и с текстовым представлениями; при этом обеспечивается согласованность между ними.
В дополнение к прямому отображению UML благодаря своей выразительности и однозначности позволяет непосредственно исполнять модели, имитируя поведение проектируемых систем, а также управляя действующими системами.
UML – язык документирования. Успешные компании, специализирующиеся на программном обеспечении, помимо исполняемого кода производят и другие продукты, включая следующие (но не ограничиваясь ими): требования, архитектуру, проектные решения (дизайн), исходный код, проектные планы, тесты, прототипы, релизы (версии).
Перечисленные продукты – это не только поставляемые составные части проектов; они необходимы для управления, оценки результатов и взаимодействия в процессе разработки системы и после ее внедрения.
UML предназначен для документирования архитектуры системы и всех ее деталей. Кроме того, это язык для выражения требований к системе и описания тестов. И наконец, он подходит для моделирования работ на этапе проектирования и управления версиями.
Применение UML. UML прежде всего предназначен для моделирования и разработки программных систем. Наиболее эффективно его применение в следующих областях: корпоративные информационные системы; банковские и финансовые услуги; телекоммуникации; транспорт; оборона, авиация и космонавтика; розничная торговля; медицинская электроника; наука; распределенные Web-сервисы.
Выразительность UML позволяет вести работу и над непрограммными системами – в частности, продумывать документооборот юридической системы, структуру и функционирование системы здравоохранения, системы управления воздушным движением, а также проектировать аппаратные средства.
На следующем шаге рассмотрим элементы концептуальной модели UML - сущности.