UML - это язык для визуализации, специфицирования, конструирования и документирования артефактов программных систем.
Язык состоит из словаря и правил, позволяющих комбинировать входящие в него слова и получать осмысленные конструкции. В языке моделирования словарь и правила ориентированы на концептуальное и физическое представление системы. Язык моделирования, подобный UML, является стандартным средством для составления "чертежей" программного обеспечения.
Язык UML предназначен прежде всего для разработки программных систем. Его использование особенно эффективно в следующих областях:
Информационные системы масштаба предприятия;
Банковские и финансовые услуги;
Телекоммуникации;
Транспорт;
Оборонная промышленность, авиация и космонавтика;
Розничная торговля;
Медицинская электроника;
Наука;
Распределенные Web-системы.
Согласно существующим стандартам, которые регламентируют жизненный цикл ПО, а также моделям жизненного цикла ПО, неотъемлемой частью процесса разработки является этап проектирования, на котором определяется
базовая структура информационной системы (ИС), ее компоненты, их назначение и взаимосвязь.
Начальным этапом проектирования ПО является определение его архитектуры и основных составляющих. Это можно сделать с помощью
UML-диаграммы компонентов
Представленное на рисунке проектируемое ПО описывается в терминах графических
символов UML-диаграммы компонентов следующим образом:
-клиент-серверная архитектура показана с помощью двух узлов (клиент и сервер), связанных по типу «1 ко многим»;
-на клиентском узле «Модуль пользователя» и «Модуль администратора» объединены в
программно-логический пакет «Клиентские компоненты»;
-аналогичным образом на узле сервера «Сервер приложений» и «Сервер БД» объединены в пакет «Серверные компоненты»;
-при этом компонент «Сервер БД» для связи с БД использует соответствующий интерфейс,
-предоставляемый системой управления базой данных (СУБД).
В соответствии с объектно-ориентированным подходом, необходимо выделить типы
рассматриваемых сущностей, их характеристики (атрибуты) и операции, которые могут быть
над ними произведены (методы). В UML это выполняется с помощью диаграммы классов, на которой можно показать не только типы объектов в виде классов, но и различные
связи между ними.
«Программное обеспечение», атрибутами которого являются «название» и «назначение», а
операциями – действия, практически полностью соответствующие этапам проекта по водопадной модели жизненного цикла ПО («определить требования», «проектировать», «реализовать», «тестировать», «документировать», «передать в эксплуатацию»). Данный класс находится на самом верхнем уровне абстракции, не содержит конкретных объектов (экземпляров) и потому является абстрактным (название класса на диаграмме показано курсивом).
«Компонент ПО», наследник класса «ПО», также является абстрактным, характеризуется
атрибутом «узел развертывания» и операцией «связать с другим компонентом»;
«Модуль», наследник класс «Компонент ПО», описывается атрибутом «тип», а также операциями «выполнить операцию пользователя» и «выполнить программную операцию». При
этом класс «Модуль» связан с внешними интерфейсами, например графический интерфейс
пользователя (GUI – от англ. Graphical User Interface) Windows и интерфейс связи с БД, которые предоставляют необходимые операции;
«БД», также наследник класса «Компонент ПО», содержит атрибуты «тип модели» (реляционная, иерархическая, сетевая и т. д.), название СУБД (Oracle, MSSQL и т. д.), а также
операции типовые работы с данными (добавить, изменить, удалить). При этом класс «БД»
связан с интерфейсом, обеспечивающим взаимодействие с БД связью типа «1 к 1».
Далее следует определить жизненный цикл каждого из вышеперечисленных классов, т.
е. составить перечень состояний и переходов между ними. В UML это выполняется в виде диаграмм состояний, в основе которых лежит аппарат дискретной логики и конечных автоматов.
После определения состояний жизненного цикла всех рассматриваемых классов целесообразно отобразить взаимодействие между их объектами, которые находятся в разных состояниях. Это можно выполнить в виде UML-диаграммы последовательностей, которая позволяет показать не только объекты разных классов в различных состояниях, но и обмен сообщениями между ними
Рассмотренный пример показывает некоторые приемы проектирования ПО с помощью
методов UML. Полученные с их помощью диаграммы представляют собой основу проектируемого ПО в виде формальных информационных моделей и алгоритмического обеспечения. Объемы и сложность современных информационных систем привели к тому, что подобное проектирование ПО становится неотъемлемой частью процесса разработки и предваряет этап реализации. Говоря о методах UML, следует отметить также и средства их воплощения. В настоящее
время многие среды разработки ПО включают инструменты визуального проектирования с
возможностью последующей генерации программного кода из построенных UML-моделей, например Microsoft Visual Studio, NetBeans, Delphi XE3, TJI Java IDE, JBuilder и др. Целесообразно выделить универсальные графические редакторы, например yEd, Dia, MS Visio, которые позволяют графически изображать диаграммы как в структурных, так и в объектноориентированных нотациях.