Свою историю унифицированный язык объектно-ориентированного моделирования ведет с конца 80х - начала 90х годов. Собственно создание UML началось в 1994 году. В это время Грэйди Буч (Grady Booch) и Джеймс Рэмбо (James Rambaugh) начали объединять несколько методов объектно-ориентированного моделирования в фирме Rational Software. И уже в 1995 году была представлена спецификация метода, названного Unified Method. Первая версия UML была принята консорциумом OMG (Object Management Group) в январе 1997 года. Утвержденная же в сентябре версия UML 1.1 была принята на вооружение основными компаниями - производителями программного обеспечения, такими, как Microsoft, IBM, Hewlett-Packard и производителями CASE-средств, которые реализовали поддержку UML в своих программных продуктах (Paradigm Plus, Microsoft Visual Modeler for Visual Basic, Delphi и др.) Авторы и разработчики UML представляют его как язык для определения, представления, проектирования и документирования программных систем, бизнес-систем и других систем различной природы. UML определяет нотацию и метамодель. Нотация представляет собой совокупность графических объектов, которые используются в моделях; она является синтаксисом языка моделирования. Универсальный язык объектного моделирования UML не зависит от языков программирования и, вследствие этого, может поддерживать любой объектно-ориентированный язык программирования. Он является открытым и позволяет расширять ядро.
* * *
Визуальные модели широко используются в существующих технологиях управления проектированием систем, сложность, масштабы и функциональность которых постоянно возрастают. В практике эксплуатации программных информационных систем постоянно приходится решать такие задачи как перераспределение вычислений и данных, обеспечение проведения параллельных вычислений, репликация баз данных, обеспечение безопасности доступа к информационным системам, оптимизация балансировки нагрузки систем, устойчивость к сбоям и многое другое. Языки и методы моделирования состоят, как правило, из следующих составных частей:
Концепции моделирования, их семантика.
Визуальное представление элементов моделирования
Правила применения элементов моделирования.
Первый компонент - это элементы модели, второй - нотация и третий - принципы использования. Одной из важных проблем, решаемых при применении визуальных методов моделирования, является все возрастающая сложность систем и проектов. Наступает момент, когда становится невозможным представить всю систему в целом, появляется отрывочность знаний о системе, и происходит потеря управления. Второе значительное достоинство - упрощение общения заказчика и разработчика. Это связано как с повышенной наглядностью модели, так и с ее гибкостью и динамичностью. Само собой, решаются вопросы уменьшения времени, затрачиваемого на разработку проекта, его стоимости и повышения качества.
* * *
Декомпозиция систем
При проектировании сложных информационных систем требуется, для обеспечения наглядности и во избежание потери управления, разбиение системы на части, которые затем рассматриваются отдельно. Различают два вида декомпозиции: · Структурная · Объектная В первом случае система представляется в виде блок-схем, где узлы - это функции, а связи между ними изображают движение данных. При объектной, или компонентной декомпозиции в системе выделяются объекты, взаимодействующие между собой по принципу "клиент-сервер". Вот в этом случае и применяется UML для моделирования систем.
* * *
Диаграммы в UML
Вот основные типы диаграмм, представленные в UML:
Диаграммы использования
Диаграммы классов
Диаграммы поведения
Диаграммы реализации
Диаграммы использования описывают функциональность системы. Это изображается в виде так называемых случаев использования (use case), которые определяют взаимодействие пользователя с системой. Они рисуются в виде овалов. Диаграммы классов представляют статическую структуру классов. Применение - формирование программного кода на заданном языке программирования. Диаграммы поведения описывают динамику системы.
* * *
Методы проектирования с использованием UML
В Microsoft Visual Studio 6.0 реализованы несколько видов нотации для изображения диаграмм классов, как "старые" - нотации Буча и ОМТ, так и новая - UML. Генерация программного кода производится на языках C++, Visual Basic, Java. Код содержит определения классов и их взаимодействия, но не методы. Это метод прямого проектирования. При использовании обратного проектирования диаграмма классов строится по готовому программному коду. Не стоит путать понятия нотация и методология проектирования. UML - это лишь нотация, которая требует стандартизирования и она уже является стандартом. Методологии же невозможно привести к единому стандарту, да и вряд ли это необходимо. Нотацию UML можно использовать в рамках различных методологий. В настоящее время консорциум Object Management Group рассматривает возможность внедрения новой версии UML 1.3 как нового стандарта визуального моделирования.
* * *
Что можно порекомендовать из литературы? Есть русский перевод книги Fowler, M. and Scott, K. UML Distilled: Applying the Standard Object Modeling Language (1997) Addison-Wesley. Также отметим следующие книги: · Booch, G. et. al.Unified Modeling Language User Guide (1998) Addison-Wesley · Eriksson, H. and Penker, M. UML Toolkit (1997) John Wiley & Sons · Rumbaugh, J., Jacobson, I., and Booch G.Unified Modeling Language Reference Manual (1998) Addison Wesley