Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Применение объектно-ориентированного подхода при проектировании информационной системы (Сравнительный анализ программных продуктов, реализующих объектно-ориентированный подход)

Содержание:

ВВЕДЕНИЕ

Информационная система – это совокупность технического, программного и организационного обеспечения, а также персонала, используемых для хранения, обработки и выдачи информации в интересах достижения поставленной цели.

Подходы и методы для проектирования информационных систем формировались в течение длительного времени. Исторически первым появился структурный подход, в основе которого лежит алгоритмическая декомпозиция и особое внимание уделяется порядку происходящих событий. Однако, как показала практика, модель, спроектированная в соответствии с данным подходом, адекватно не отражает реальный мир и при увеличении сложности и объема программ структурный подход не работает.

Для решения проблем возрастающей сложности программных систем и их объема, а также дефицита времени на разработку был разработан новый подход на основе архитектуры взаимодействия объектов, где каждый объект системы обладает своим собственным поведением, моделирующим поведение объекта реального мира.

Цель работы состоит в определении сути объектно-ориентированного подхода при проектировании информационной системы и анализе средств реализации данного подхода.

В соответствии с поставленной целью задачами работы являются:

- определение сути объектно-ориентированного подхода и рассмотрение принципиальных отличий его от структурного подхода;

- рассмотрение его преимуществ и недостатков;

- характеристика средств реализации объектно-ориентированного подхода;

- сравнительный анализ программных продуктов, реализующих объектно-ориентированный подход.

ГЛАВА 1. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПОДХОДА ПРИ ПРОЕКТИРОВАНИИ ИНФОРМАЦИОННОЙ СИСТЕМЫ

Суть объектно-ориентированного подхода, его отличие от структурного подхода

Информация в современном мире превратилась в один из наиболее важных ресурсов, а информационные системы стали необходимым инструментом практически во всех сферах деятельности. Разнообразие задач, решаемых с помощью информационных систем, привело к появлению множества разнотипных систем, отличающихся принципами построения и заложенными в них правилами обработки информации[1].

Проектирование информационной системы представляет собой процесс преобразования входной информации об объекте, методах и опыте проектирования объектов аналогичного назначения в соответствии с ГОСТом и сводится к последовательной формализации проектных решений на различных стадиях жизненного цикла информационной системы[2].

Осуществление проектирования информационной системы предполагает использование проектировщиками определенной технологии проектирования, соответствующей масштабу и особенностям разрабатываемого проекта.

При проектировании информационных систем могут быть использован структурный либо объектно-ориентированный подход. Принципиальное их отличие заключается в выборе способа декомпозиции системы (задачи). Если за основу принимается функциональная (алгоритмическая) декомпозиция, то речь идет о структурном подходе, если объектная – об объектно-ориентированном[3].

Выбор того или иного подхода зависит от специфики решаемой задачи. Как правило, структурный подход применяется для автоматизации задач, оперирующих большими объемами "пассивных" данных (учет, сбор статистики, математические и инженерные расчеты, анализ данных). Объектно-ориентированный подход в основном ориентирован на решение задач, в которых четко прослеживается деление системы на взаимодействующие между собой сущности (имитационное моделирование, управление техническими объектами или технологическими процессами, мониторинг)[4].

Между указанными подходами к проектированию информационной системы имеются отличие и по следующим аспектам:

- структурная организация внутри модулей системы.

Так в структурном подходе модуль представляется в виде дерева функций, иерархически связанных между собой отношением композиции, т. е. функция, состоит из подфункций, подфункция из подподфункций и т.д.

В объектно-ориентированном подходе модуль представляется в виде ориентированного графа, т.е. иерархия выстраивается с использованием двух отношений: композиции и наследования, при этом «объект-часть» может включаться сразу в несколько «объектов-целое»[5];

- место хранения атрибутивных данных и поведения.

В функционально-ориентированных системах функции и данные хранятся отдельно.

В объектно-ориентированных - в объекте объединяются как атрибутивные данные (характеристики, свойства), так и поведение (функции, методы);

- методологии проектирования.

Так объектно-ориентированный подход предполагает использование UML-методологии, а структурный – IDEF0, DFD, IDEF3[6].

Объектно-ориентированный подход использует объектную декомпозицию, при котором структура системы описывается в терминах объектов и связей между ними, а поведение системы - в терминах обмена сообщениями между объектами.

При объектно-ориентированном программировании основными элементами программы являются не переменные и методы (функции), а объекты. Объекты – это программные конструкции, включающие набор логически связанных свойств (данных) и методов. Объекты являются автономными сущностями, они предоставляют некоторую функциональность другим компонентам среды приложения, изолируя от них свое внутреннее устройство[7].

Объекты создаются на основе шаблонов, которые называются классами и являются экземплярами этих классов. Все объекты класса описываются одинаковыми наборами атрибутов, имеют один и тот же набор свойств и одинаково реагируют на одинаковые события. Класс может порождать произвольное число объектов, однако любой объект относится к строго фиксированному классу[8].

Помимо объектов и классов базовыми понятиями объектно-ориентированного подхода являются следующие:

- свойство объекта – характерные параметры, выделяющие данный объект из множества других и обусловливающие независимость создания и обработки данного объекта от других. Как правило, выделяется свойство (набор свойств), однозначно идентифицирующее объект во множестве объектов того же типа – идентичность[9];

- состояние объекта - характеризуется перечнем всех его свойств и их текущими значениями;

- метод обработки - программа действий над объектом или его свойствами, осуществляющая преобразование свойств или изменяющая поведение объекта. Так объект может обладать набором заранее определенных встроенных методов обработки, либо методы обработки могут создаваться пользователем и выполняться при наступлении определенных событий[10];

- событие – действие программы, инициируемое пользователем (внешние события) или генерируемое системой (внутренние события), приводящее к изменению состояния объекта.

Соотношение основных понятий объектно-ориентированного подхода представлено на рисунке 1.

Рисунок 1. Соотношение основных понятий объектно-ориентированного подхода[11]

Объектно-ориентированное проектирование позволяет представить модель будущей информационной системы на следующих уровнях:

- концептуальный;

- логический;

- физический (рисунок 2).

Таким образом, под объектно-ориентированным проектированием понимают методологию проектирования, соединяющую в себе процесс объектной декомпозиции и приемы представления логической и физической, а также статической и динамической моделей проектируемой системы.

Рисунок 2. Уровни представления модели[12]

Метод объектно-ориентированного проектирования основывается на:

- модели построения системы как совокупности объектов абстрактного типа данных;

- модульной структуре программ;

- нисходящем проектировании, используемом при выделении объектов[13].

Объектно-ориентированные технологии и методики проектирования программных продуктов должны обеспечивать выполнение важнейших принципов объектного подхода:

- инкапсуляция (информационная закрытость) – предписывает обмен информацией между объектами системы только в минимально необходимом объеме, ограничение доступа к атрибутам и методам объектов (классов) со стороны других объектов (классов) и полное скрытие алгоритмической реализации методов от других объектов (классов)[14];

- наследование – позволяет объектам иметь свойства своих родителей, т.е. объект-потомок автоматически наследует от родителя все поля и методы. Принцип наследования решает проблему модификации свойств объекта, чем обеспечивает гибкость объектно-ориентированного проектирования;

- полиморфизм - это свойство родственных объектов решать схожие по смыслу проблемы разными способами. В рамках объектно-ориентированного проектирования поведенческие свойства объекта определяются набором входящих в него методов. Изменяя алгоритм того или иного метода в потомках объекта, можно придавать этим потомкам отсутствующие у родителя специфические свойства[15].

Концептуальная основа объектно-ориентированного подхода состоит из четырех главных и трех дополнительных элементов (рисунок 3).

Рисунок 3. Элементы объектно-ориентированного подхода [16]

Абстрагирование позволяет сосредоточить внимание на существенных характеристиках объекта с точки зрения наблюдателя.

Модульность – это разделение программы на раздельно компилируемые фрагменты (модули), имеющие между собой средства сообщения, при этом модули выполняют роль физических контейнеров, в которые помещаются определения классов и объектов при логическом проектировании систем.

Иерархия представляет собой ранжированную или упорядоченную последовательность модулей.

Типизация – способ защиты от использования объектов одного класса вместо другого и позволяет управлять таким использованием.

Параллелизм – свойство, отличающее активные объекты от пассивных.

Устойчивость – способность объекта существовать во времени, переживая породивший его процесс, или в пространстве, перемещаясь из своего первоначального адресного пространства[17].

Таким образом, объектно-ориентированная система строится с учетом ее эволюции. Наследование и полиморфизм обеспечивают возможность определения новой функциональности классов с помощью создания потомков базовых классов, которые наследуют характеристики родительских классов без изменения их первоначального описания и добавляют при необходимости собственные структуры данных и методы.

В объектно-ориентированных системах декомпозиция системы на объекты осуществляется с учетом удобства последующего детального анализа, разработки и внедрения системы, при этом критерием выделения компонентов системы является минимизация числа аппаратно-зависимых ее компонент, что позволяет снизить затраты на адаптацию системы при переносе ее на другую аппаратную платформу, а также уменьшить количество неиспользуемых компонент при работе на конкретной платформе[18].

Важным качеством объектно-ориентированного подхода является согласованность моделей деятельности организации и моделей проектируемой системы от стадии формирования требований до стадии реализации, благодаря возможности применения абстрагирования, модульности и полиморфизма на всех стадиях разработки. Модели ранних стадий могут быть непосредственно подвергнуты сравнению с моделями реализации. По объектным моделям может быть прослежено отображение реальных сущностей моделируемой предметной области (организации) в объекты и классы информационной системы[19].

Объектно-ориентированное проектирование состоит из следующих этапов:

- разработка структуры классов, описывающей связь между классами и объектами;

- разработка диаграмм объектов, показывающие взаимосвязи с другими объектами;

- разработка внутренней структуры программного продукта .

Базовыми составляющими объектно-ориентированного подхода являются:

- унифицированный процесс - процесс разработки программного обеспечения, который обеспечивает упорядоченный подход к распределению задач и обязанностей в организации-разработчике, и охватывает весь жизненный цикл программного обеспечения, начиная с определения требований и заканчивая сопровождением;

- унифицированный язык моделирования – UML, созданный Гради Бучем, Джеймсом Рамбо и Айваром Якобсоном в 1997 году, – язык для визуализации, спецификации, конструирования и документирования программных систем[20].

Словарь UML включает три вида строительных блоков: диаграммы, сущности и связи.

Сущности – это абстракции, которые являются основными элементами модели, связи соединяют их между собой, а диаграммы группируют представляющие интерес наборы сущностей[21].

Следует отметить, что UML не является языком программирования, однако на основании UML-моделей возможна генерация кода[22].

UML содержит стандартный набор диаграмм для моделирования:

- диаграммы классов – для моделирования статической структуры классов системы и связей между ними (Приложение 1);

- диаграммы взаимодействия – для моделирования процесса обмена сообщениями между объектами: диаграммы последовательности; диаграммы кооперации, диаграммы деятельности (Приложение 2);

- диаграммы состояний – для моделирования поведения объектов системы при переходе из одного состояния в другое;

- диаграммы вариантов использования – для моделирования бизнес-процессов организации (требований к системе);

- диаграммы поведения системы;

- диаграммы компонентов – для моделирования иерархии компонентов системы;

- диаграммы размещения – для моделирования физической архитектуры системы (рисунок 4).

Рисунок 4. Статическое и динамическое представление модели информационной системы в диаграммах UML[23]

Таким образом, суть объектно-ориентированного подхода состоит в проектировании не данных и программ в отдельности, а объектов, сочетающих в себе и данные, и программы, информационно и функционально характеризующие соответствующие сущности предметной области. Объектно-ориентированный подход к проектированию информационной системы использует объектную декомпозицию, при котором структура системы описывается в терминах объектов и связей между ними, а поведение системы - в терминах обмена сообщениями между объектами, которые создаются на основе шаблонов, называемых классами, и характеризуются свойствами, состояниями и методами обработки. Объектно-ориентированное проектирование позволяет представить логическую и физическую, а также статическую и динамическую модели проектируемой системы. Основными принципами объектного подхода являются инкапсуляция, наследование и полиморфизм, а свойствами: абстрагирование, модульность, иерархия, типизация, параллелизм и устойчивость. Языком объектно-ориентированного проектирования является унифицированный язык моделирования – UML, включающий диаграммы, сущности и связи.

Преимущества и недостатки объектно-ориентированного подхода

Объектно-ориентированный подход при проектировании информационной системы имеет как преимущества, так и недостатки.

Так среди преимуществ следует выделить:

- объектная декомпозиция дает возможность создавать программные системы меньшего размера путем использования общих механизмов, обеспечивающих необходимую экономию выразительных средств. В результате повышается уровень унификации разработки и пригодность для повторного использования и сборочного создания программного обеспечения[24];

- системы, построенные с использованием объектно-ориентированного подхода, являются более компактными, имеют меньший объем программного кода, что, несомненно, сказывается на удешевлении проекта за счет использования предыдущих разработок;

- объектная модель ориентирована на человеческое восприятие реальности, а не на компьютерную реализацию;

- объектная модель позволяет в полной мере использовать выразительные возможности объектных и объектно-ориентированных языков программирования[25];

- объектно-ориентированные системы легче поддаются внесению изменений, так как их конструкция базируется на устойчивых формах – данных, которые по сравнению с процессами являются более стабильной и относительно редко изменяющейся частью системы, что дает возможность системе развиваться постепенно и не приводит к полной ее переработке даже в случае существенных изменений исходных требований[26];

- классы позволяют проводить конструирование из полезных компонент, обладающих простыми инструментами, что дает возможность абстрагироваться от деталей реализации;

- возможность создавать классы и объекты визуальным способом, а при определенном навыке записывать в методы фрагменты программного кода, определяющие поведение объектов при наступлении определенных событий, из которых в дальнейшем автоматически генерируется общая программа[27];

- локализация кода и данных улучшает наглядность и удобство сопровождения программного обеспечения;

- объектная декомпозиция уменьшает риск создания сложных систем программного обеспечения, поскольку предполагает эволюционный путь развития системы на базе относительно небольших подсистем;

- объектно-ориентированный подход позволяет легче организовать параллельные вычисления, поскольку каждый объект обладает собственными значениями характеристик (атрибутов) и поведением, за счет чего можно добиться его автономной работы[28];

- инкапсуляция информации защищает наиболее критичные данные от несанкционированного доступа.

К недостаткам объектно-ориентированного подхода относятся следующие:

- эффект от применения объектно-ориентированного подхода начинает сказываться после разработки двух-трех проектов и накопления повторно используемых компонентов, отражающих типовые проектные решения в данной области[29];

- объектно-ориентированные проекты и их программная реализация на объектно-ориентированном языке требуют больших временных затрат и приводят к построению более сложной и требовательной к ресурсам программы;

- диаграммы, отражающие специфику объектного подхода, гораздо менее наглядны;

- сложность проектирования и документирование классов – задача более трудная, в отличие от процедур и модулей;

- в сложных иерархиях классов поля и методы обычно наследуются с разных уровней, и не всегда легко определить, какие поля и методы фактически относятся к данному классу;

- обработка сообщения требует не одного, а многих методов, которые могут быть описаны в разных классах;

- язык UML включает более 100 различных условных обозначений, что требует наличие определенного уровня квалификации у специалистов[30];

- сложность разработки проектов, для которых важнейшей задачей является описание предметной области и для которых невозможно найти человека, понимающего эту предметную область в целом;

- некоторое снижение производительности функционирования программного обеспечения и высокие начальные затраты[31].

Таким образом, объектно-ориентированный подход позволяет строить сложные модели, наиболее адекватно отражающие реальный мир, используя при этом в полной мере выразительные возможности объектных и объектно-ориентированных языков программирования, создавать программные системы меньшего размера, повторно использовать модели, вносить своевременно изменения и осуществлять сборочное создание программного обеспечения. Однако объектно-ориентированные проекты требуют больших временных затрат, требовательны к ресурсам программы, сложно проектируемы, гораздо менее наглядны и плохо понимаемы непрофессионалами. Поэтому структурный подход по-прежнему сохраняет свою значимость и достаточно широко используется на практике.

ГЛАВА 2. АНАЛИЗ СРЕДСТВ РЕАЛИЗАЦИИ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПОДХОДА

2.1. Характеристика средств реализации объектно-ориентированного подхода

Для автоматизации процессов проектирования, модификации и сопровождения на различных этапах жизненного цикла программного обеспечения используются специальные программные средства - CASE-средства. CASE-средства вместе с системным программным обеспечением и техническими средствами образуют полную среду разработки информационной системы[32].

CASE-средства в зависимости от типа используемой модели делятся на:

- структурные, основанные на методах структурного и модульного программирования;

- объектно-ориентированные;

- комбинированные, поддерживающие одновременно обе модели[33].

В настоящее время наблюдается тенденция переориентации инструментальных средств, созданных для структурных методов разработки, на объектно-ориентированные методы.

Среди средств реализации объектно-ориентированного подхода, т.е. CASE-средств для построения диаграмм UML в данной работе будут рассмотрены следующие:

- StarUML;

- Microsoft Visio;

- Rational Rhapsody;

- Flexberry Designer;

- MagicDraw.

StarUML - программный инструмент моделирования, который ориентирован на UML версии 1.4 и поддерживает одиннадцать различных типов диаграмм, принятых в нотации UML 2.0[34]. Это пакет с открытым программным кодом, написанный на Delphi и работающий под управлением Windows.

Среда разработки StarUML превосходно настраивается в соответствии с требованиями пользователя и имеет высокую степень расширяемости, особенно в области своих функциональных возможностей[35].

StarUML имеет следующие возможности.

- точное соответствие стандарту UML, строго придерживается спецификации UML, разработанной OMG для моделирования программ;

- открытый формат программной модели - оперирует файлами в стандартном формате XML. Коды, написанные в легких для чтения структурах и форматах, могут быть легко изменены с помощью синтаксического анализатора XML;

- истинная поддержка MDA (модельно-настраиваемая архитектура) - действительно поддерживает профили UML, что максимизирует расширяемость UML, делая моделирование на UML применимым даже в области финансов, обороны, электронной коммерции, страховании и аэронавтике. Имеется возможность создавать платформенно независимые модели (PIM), а платформенно зависимые модели (PSM) и исполняемые коды могут быть всегда автоматически сгенерированы на их основе;

- использует концептуальный подход, который применим к любым методологиям/процессам;

- превосходная расширяемость - все функции StarUML реализованы в соответствии с Microsoft COM. Любой язык, который поддерживает COM, может использоваться, чтобы вызывать StarUML или разрабатывать интегрированные дополнения;

- программную функцию проверки модели;

- имеет полезные аддины с различными функциональными возможностями: генерация исходных текстов на языках программирования, конвертация исходных, текстов в модели, импорт файлов Rational Rose, обмен модельной информацией с другими программными средствами, с использованием XMI, поддержка шаблонов проектирования[36].

StarUML имеет удобный и интуитивно понятный интерфейс, который однако не может похвастаться красивыми разноцветными "пластмассовыми" элементами управления, как java-программы (рисунок 5).

Рисунок 5. Интерфейс StarUML[37]

Microsoft Visio - решение для построения диаграмм от Microsoft, помогающее преобразовать технические и бизнес-концепции в визуальную форму.

Microsoft Visio обеспечивает следующие возможности:

- создание быстро и просто понятных и информативных диаграмм, используя предопределенные фигуры Visio Professional, drag-and-drop и мастера;

- прототипирование интерфейса приложений с помощью встроенных шаблонов пользовательского интерфейса Windows, что позволяет создавать модель пользовательского интерфейса в стандартном Windows стиле;

- проектирование, документирование и анализ бизнес-процессов, используя шаблоны, поддерживающие управление бизнес-процессами (BPM);

- интеграция с Microsoft Office Project, что позволяет, например, импортировать оттуда задачи для членов команды;

- создание UML-диаграммы статической структуры программного обеспечения и проведение обратного проектирования;

- документирование структуры существующих веб-сайтов, помогая таким образом в разработке, реализации или интеграции веб-приложений;

- создание отчетов;

- совместная работа и командное создание проектов, отслеживание комментариев членов команды;

- связывание диаграммы с данными и обновление их в реальном времени.

- возможно форматирование, масштабирование, вращение диаграмм и ассоциирование их с записями;

- создание диаграмм баз данных, инженерных диаграмм, сетевых, диаграмм разработки программного обеспечения и веб-приложений;

- поддержка множества локальных языков;

- интеграция с другими приложениями MS Office[38];

- возможность создавать схемы компонентов UML, отображающие компоненты, порты, интерфейсы и связи между ними;

- возможность создавать схемы связей UML в свободной форме для демонстрации взаимодействия между жизненными циклами, которые используют последовательные сообщения;

- возможность создавать схемы развертывания UML, отображающие архитектуру развертывания артефактов программного обеспечения на узлах;

- расширенная поддержка AutoCAD[39].

Внешне Visio похожа на другие программы семейства Microsoft Office (рисунок 6).

Картинки по запросу Visio интерфейс

Рисунок 6. Интерфейс Microsoft Visio[40]

Rational Rhapsody - это среда визуальной разработки для проектировщиков систем и разработчиков программного обеспечения, позволяющая создавать динамические и встроенные системы и программное обеспечение. Обеспечивается сотрудничество коллективов для анализа требований, снижения уровня сложности за счет применения промышленных языков, проверки функциональности на ранних этапах жизненного цикла разработки, проверки эскизов и автоматизации доставки инновационных, высококачественных продуктов.

Rational Rhapsody предлагает следующие функции:

- совместное использование, связывание и проверка информации об эскизах с помощью интеграции IBM Jazz и IBM Rational Rhapsody Design Manager;

- содержит профайлы, параметры, стереотипы, теги и API, предназначенные для расширения и настройки продукта;

- статическая проверка согласованности эскиза

- набор инструментов проектирования систем для автоматизации общих функций проектирования систем, включая IBM Rational Harmony for Systems Engineers;

- импорт XMI (обмен метаданными XML) и IBM Rational Rose для интеграции с существующими системами и повторного использования;

- интерфейс управления конфигурацией, включая расширенный графический инструмент сравнения и объединения, с возможностью интеграции IBM Rational Synergy, IBM Rational Team Concert и IBM Rational ClearCase;

- создание документации с помощью спектра инструментов - от простого генератора отчетов RTF до полностью настраиваемых инструментов создания отчетов;

- поддержка разработки стандартов безопасности: ISO 26262, IEC 61508, IEC 62304, EN 50128, DO-178B и DO-178C[41]

Рисунок 7. Интерфейс Rational Rhapsody[42]

Flexberry Designer - это платформа для проектирования, разработки и поддержки сложных информационных систем. Платформа включает в себя UML-редактор и визуальный конструктор форм приложений, фреймворк для создания мобильных и Web-приложений, подсистему для хранения, создания, редактирования, анализа и отображения географической информации, сервисную шину и другие компоненты, позволяющие ИТ-подразделениям предприятий и компаниям-разработчикам оптимизировать процесс проектирования, разработки и поддержки информационных систем[43] .

Использование Flexberry Designer дает разработчикам следующие преимущества:

- быстрое создание прототипов программного решения;

- повышение эффективности взаимодействия с заказчиками за счёт применения визуальных моделей систем и процессов;

- снижение трудоёмкости процесса разработки и сопровождения информационных систем;

- возможность применения готовых программных компонент и готовой архитектуры;

- быстрое разворачивание в гетерогенных сетях включая облачные платформы;

В основе технологии создания систем на платформе Flexberry лежит архитектура, управляемая моделью (Model Driven Architecture). В рамках этой архитектуры сначала с помощью редактора в формате UML или визуального конструктора форм создаётся модель предметной области проектируемого приложения. По модели создаётся прототип работающего приложения методом кодогенерации. Данный прототип дорабатывается программистами. Затем эта модель уточняется в ходе развития и поддержки проекта, эти изменения прозрачным образом автоматически переносятся в реализованное приложение[44].

Координация и разработка платформы распределённой группы разработчиков производится в git-репозитории. Платформа открыта для подключения новых разработчиков к процессу её разработки.

Разработанный продукт разворачивается в виде стека docker-сервисов, включающий в себя следующие сервисы:

- EmberJS - обеспечивает возможность быстро и качественно создавать универсальный мобильный и WEB-интерфейс;

- REST-интерфейс OData - позволяет построить микросервисную архитектуру вокруг единой точки предоставления данных;

- база данных Postgres является «стандартом de-facto» при создании систем на основе открытого программного обеспечения;

- Docker-технология позволяет интегрировать данные сервисы в конечное кластерное решение.

Формы диаграмм Flexberry Designer представлены на рисунке 8.

Рисунок 8. Диаграммы в Flexberry Designer [45]

Репозиторий UML-моделей позволяет удобно хранить диаграммы в структурированном виде. Для работы с репозиторием применяется браузер репозиториев Flexberry Designer. Репозиторий имеет структуру, не ограничивающую пользователя какой-либо методологией. Для диаграммы как репозиторного объекта реализованы дополнительные возможности для манипуляции.

Реализованы широкие возможности моделирования соответствующими диаграммными методами в рамках редактора UML-диаграмм.

Имеется возможность расширения функционала посредством подключения дополнительных модулей. Модули предоставляют возможности расширения пользовательского интерфейса, структуры данных, возможностей по генерации исходного кода с моделей.

Проектирование с использованием инструментария Flexberry Designer подразумевает принцип Model-First, когда все изменения в модели производятся в Flexberry Designer, а изменения в коде выполняются во время генерации. Также реализован механизм, позволяющий программистам писать код, который при перегенерации не будет потерян, так называемые, «скобки программиста». Использование инструментария проектирования позволяет с лёгкостью вносить изменения в модель любому участнику команды разработки, не опасаясь что-нибудь сломать[46].

MagicDraw - это инструмент бизнес-процессов, архитектуры, программного обеспечения и системного моделирования с поддержкой совместной работы. Этот динамичный и универсальный инструмент разработки облегчает анализ и проектирование объектно-ориентированных систем и баз данных. Он обеспечивает лучший в отрасли механизм разработки кода (с полной поддержкой «туда-обратно» для языков программирования Java, C ++, C #, CL (MSIL) и CORBA IDL), а также моделирование схемы базы данных, создание DDL и средства обратной инженерии[47].

MagicDraw поддерживает метамодель UML 2, новейший стандарт XMI для хранения данных и самые популярные языки программирования для реализации. В отличие от других сред моделирования UML и архитектуры, MagicDraw упрощает развертывание среды жизненного цикла разработки программного обеспечения, Open API упрощают интеграцию с приложениями, которые работают вместе, интегрирует со многими ведущими продуктами: IDE, требованиями, тестированием, оценкой, MDD, базой данных и др.[48]

Интерфейс MagicDraw представлен на рисунке 7.

https://d2.alternativeto.net/dist/s/magicdraw_627826_full.jpg?format=jpg&width=1600&height=1600&mode=min&upscale=false

Рисунок 9. Интерфейс MagicDraw[49]

Таким образом, рассмотренные средства реализации объектно-ориентированного подхода обладают достаточным функционалом для проектирования информационных систем, при этом у каждого есть свои отличительные особенности.

2.2. Сравнительный анализ программных продуктов, реализующих объектно-ориентированный подход

Выбор программных продуктов для проектирования информационной системы может быть начат только тогда, когда полностью определены и формализованы ее потенциальным пользователем конкретные количественные и качественные требования в заданной предметной области.

В целях сравнения рассмотренных выше средств реализации объектно-ориентированного подхода для проектирования информационной системы каждое из них было проанализировано по следующим группам критериев:

- функциональные характеристики (среда функционирования (проектная среда, технологическая среда, программное обеспечение и технические средства); функции, ориентированные на фазы жизненного цикла (моделирование, реализация, тестирование) и общие функции (документирование, управление конфигурацией, управление проектом);

- надежность;

- эффективность;

- сопровождаемость;

- переносимость;

- возможность экспорта - должны быть доступны разные форматы экспорта – хотя бы html и doc;

- удобство пользования – средство проектирования должно быть удобным, интуитивно понятным, с простым интерфейсом для часто используемых функций.

Посредством таблицы в соответствии с приведенной структурой критериев произведен сравнительный анализ рассмотренных выше средств реализации объектно-ориентированного подхода.

Таблица

Сравнительный анализ средств реализации объектно-ориентированного подхода

Критерии сравнения

StarUML

Microsoft Visio

Rational Rhapsody

Flexberry Designer

MagicDraw

1

2

3

4

5

6

Среда для создания диаграмм различных типов

+

+

+

+

+

Создание пользовательского интерфейса

+

+

+

+

+

Генерация документации для печати

+

+

+

+

+

Создание концептуальных и физических моделей структуры базы данных

-

+

+

-

+

Независимость от платформы

-

+

+

-

+

Продолжение таблицы

1

2

3

4

5

6

Ведение библиотеки типовых бизнес-моделей

-

+

+

+

+

Организация групповой работа над проектом

-

+

+

+

+

Генерация заготовок программного кода

+

-

+

+

+

Динамическое моделирование событий в системе

-

+

+

+

+

Контроль ошибок в ходе разработки

-

+

+

+

+

Динамическая коррекция одной диаграммы из другой

-

+

+

+

+

Обратное проектирование

-

+

+

+

+

Интеграция с другими приложениями

+

+

+

+

+

Высокая производительность

+

+

-

+

+

Репозиторий

-

+

+

+

+

Возможность экспорта

-

+

+

-

+

Взаимодействие в реальном времени

-

+

+

+

-

Разработка веб-приложений

-

+

-

+

+

Простота использования

+

+

+/-

+/-

+

Стоимость

бесплатно

платно

платно

платно

платно

Таким образом, из рассмотренных средств реализации объектно-ориентированного подхода наилучшими по рассмотренным критериям видятся Microsoft Visio и MagicDraw, функционал у них практически одинаков, при этом Microsoft Visio не реализует генерацию заготовок программного кода в отличие от MagicDraw, которое, в свою очередь, не позволяет осуществлять взаимодействие в реальном времени, в отличие от Microsoft Visio. Оба же средства проектирования достаточно просты в использовании и имеют репрезентативный интерфейс, однако, поставляются платно.

ЗАКЛЮЧЕНИЕ

Суть объектно-ориентированного подхода состоит в проектировании не данных и программ в отдельности, а объектов, сочетающих в себе и данные, и программы, информационно и функционально характеризующие соответствующие сущности предметной области.

Объектно-ориентированный подход к проектированию информационной системы использует объектную декомпозицию, при котором структура системы описывается в терминах объектов и связей между ними, а поведение системы - в терминах обмена сообщениями между объектами, которые создаются на основе шаблонов, называемых классами, и характеризуются свойствами, состояниями и методами обработки.

Объектно-ориентированное проектирование позволяет представить логическую и физическую, а также статическую и динамическую модели проектируемой системы.

Основными принципами объектного подхода являются инкапсуляция, наследование и полиморфизм, а свойствами: абстрагирование, модульность, иерархия, типизация, параллелизм и устойчивость.

Языком объектно-ориентированного проектирования является унифицированный язык моделирования – UML, включающий диаграммы, сущности и связи.

Объектно-ориентированный подход позволяет строить сложные модели, наиболее адекватно отражающие реальный мир, используя при этом в полной мере выразительные возможности объектных и объектно-ориентированных языков программирования, создавать программные системы меньшего размера, повторно использовать модели, вносить своевременно изменения и осуществлять сборочное создание программного обеспечения. Однако объектно-ориентированные проекты требуют больших временных затрат, требовательны к ресурсам программы, сложно проектируемы, гораздо менее наглядны и плохо понимаемы непрофессионалами. Поэтому структурный подход по-прежнему сохраняет свою значимость и достаточно широко используется на практике.

Для автоматизации процессов проектирования, модификации и сопровождения на различных этапах жизненного цикла программного обеспечения используются специальные программные средства - CASE-средства.

В работе была дана характеристика следующи средств реализации объектно-ориентированного подхода: StarUML, Microsoft Visio, Rational Rhapsody, Flexberry Designer и MagicDraw.

StarUML - программный инструмент моделирования с открытым программным кодом, написанный на Delphi и работающий под управлением Windows. Основные возможности: поддержка UML 2.0, MDA и написание на COM совместимых языках: C++, Delphi, C#, VB и др.

Microsoft Visio - решение для построения диаграмм от Microsoft, помогающее преобразовать технические и бизнес-концепции в визуальную форму. Основные возможности: создание быстро информативных диаграмм, использование шаблонов проектирования, командная разработка, разработка веб-приложений, создание отчетов, форматирование, масштабирование, вращение диаграмм и ассоциирование их с записями, взаимодействие в реальном времени.

Rational Rhapsody - среда визуальной разработки для проектировщиков систем и разработчиков программного обеспечения, позволяющая создавать динамические и встроенные системы и программное обеспечение. Обеспечивается сотрудничество коллективов для анализа требований, снижения уровня сложности за счет применения промышленных языков, проверки функциональности на ранних этапах жизненного цикла разработки, проверки эскизов и автоматизации доставки инновационных, высококачественных продуктов.

Flexberry Designer - средство для проектирования, разработки и поддержки сложных информационных систем. Включает в себя UML-редактор и визуальный конструктор форм приложений, фреймворк для создания мобильных и Web-приложений. Репозиторий UML-моделей позволяет удобно хранить диаграммы в структурированном виде. Реализован механизм, позволяющий программистам писать код, который при перегенерации не будет потерян, так называемые, «скобки программиста».

MagicDraw - это инструмент бизнес-процессов, архитектуры, программного обеспечения и системного моделирования с поддержкой совместной работы. Обеспечивает лучший в отрасли механизм разработки кода (с полной поддержкой «туда-обратно» для языков программирования Java, C ++, C #, CL (MSIL) и CORBA IDL), а также моделирование схемы базы данных, создание DDL и средства обратной инженерии.

Сравнительный анализ рассмотренных средств реализации объектно-ориентированного подхода показал, что наилучшими по рассмотренным критериям видятся Microsoft Visio и MagicDraw, функционал у них практически одинаков, при этом Microsoft Visio не реализует генерацию заготовок программного кода в отличие от MagicDraw, которое, в свою очередь, не позволяет осуществлять взаимодействие в реальном времени, в отличие от Microsoft Visio. Оба же средства проектирования достаточно просты в использовании и имеют репрезентативный интерфейс, однако, поставляются платно.

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

  1. Арлоу, Д. UML 2 и Унифицированный процесс. Практический объектно-ориентированный анализ и проектирование [Текст] / Джим Арлоу, Айви Нейштадт. – М.: Символ, 2016. – 624 с.
  2. Гвоздева, Т.В. Проектирование информационных систем. Технология автоматизированного проектирования [Текст] / Т.В. Гвоздева, Б.А. Баллод. – СПб.: Лань, 2018. – 156 с.
  3. Достоинства и недостатки ООП [Электронный ресурс] / Электрон. текстовые дан. – Москва: [б.и.], 2017. – Режим доступа: http://www.maksakov-sa.ru/TehProgram/ObOrientProgr/DosNedOOP/index.html
  4. Емельянов, В.А. Объектно-ориентированное проектирование ИС [Электронный ресурс] / Электрон. текстовые дан. – Москва: [б.и.], 2018. – Режим доступа: https://en.ppt-online.org/542998
  5. Зыков, С.В. Программирование. Объектно-ориентированный подход. Учебник и практикум для академического бакалавриата [Текст] / С.В. Зыков. – М.: ЮРАЙТ, 2017. – 312 с.
  6. Инструменты для рисования UML-диаграмм [Электронный ресурс] / Электрон. текстовые дан. – Москва [б.н.], 2016. – Режим доступа: http://msugvnua000.web710.discountasp.net/Posts/Details/3787
  7. Костарев, А. Технологическая программная платформа Flexberry с открытым исходным кодом для профессиональной разработки программного обеспечения [Электронный ресурс] / Электрон. текстовые дан. – OSSDEVCONF, 2018 – Режим доступа: http://0x1.tv/Технологическая_программная_платформа_Flexberry_с_открытым_исходным_кодом_для_профессиональной_разработки_программного_обеспечения_(Алексей_Костарев,_OSSDEVCONF-2018)
  8. Краткий обзор StarUML [Электронный ресурс] / Электрон. текстовые дан. – Москва [б.н.], 2016. – Режим доступа: http://staruml.sourceforge.net/docs/user-guide(ru)/user-guide.pdf
  9. Новые возможности Visio 2019 [Электронный ресурс] / Электрон. текстовые дан. – Москва [б.н.], 2019. – Режим доступа: https://support.office.com/ru-ru/article/Новые-возможности-visio-2019-19b8e98d-9cf9-40ad-9277-eb65e3713a79
  10. Обзор CASE-средств для построения диаграмм UML [Электронный ресурс] / Электрон. текстовые дан. – Москва: НОУ «ИНТУИТ», 2013 – 2017. – Режим доступа: http://www.intuit.ru/studies/courses/1007/229/lecture/5963
  11. Обзор Rational Rhapsody [Электронный ресурс] / Электрон. текстовые дан. – Москва: [б.и.], 2017. – Режим доступа: https://www.ibm.com/support/knowledgecenter/ru/SSQQC5_5.0.0/com.ibm.rational.sse.doc/topics/c_overview_rhap.html
  12. Объектно-ориентированный подход [Электронный ресурс] / Электрон. текстовые дан. – Москва: [б.и.], 2016. – Режим доступа: https://studme.org/257065/informatika/obektno_orientirovannyy_podhod
  13. Основы объектно-ориентированного подхода к анализу и проектированию информационных систем [Электронный ресурс] / Электрон. текстовые дан. – Москва: [б.и.], 2016. – Режим доступа: https://sites.google.com/site/anisimovkhv/learning/pris/lecture/tema9
  14. Остроух, А.В. Проектирование информационных систем [Текст] / А.В. Остроух, Н.Е. Суркова. – СПб.: Лань, 2019. – 164 с.
  15. Остроух, А.В. Теория проектирования распределенных информационных систем [Текст] / А.В. Остроух, А.В. Помазанов. - СПб.: Лань, 2019. – 96 с.
  16. Павловская, Т.А. C/C++. Процедурное и объектно-ориентированное программирование. Учебник [Текст] / Т.А. Павловская. - СПб: Питер, 2018. – 496 с.
  17. Плахотникова, М.А. Информационные технологии в менеджменте. Учебник и практикум для СПО [Текст] / М.А. Плахотникова, Ю.А. Вертакова. – М.: Юрайт, 2016. – 462 с.
  18. Приемы объектно-ориентированного проектирования. Паттерны проектирования [Текст] / Э. Гамма [и др.]. – СПб.: Питер, 2019. – 368 с.
  19. Проектирование информационных систем [Электронный ресурс] / Электрон. текстовые дан. – Москва: [б.и.], 2017. – Режим доступа: https://compress.ru/article.aspx?id=11764
  20. Проектирование информационных систем. Учебник и практикум [Текст] / Под общ. ред. Д.В. Чистова. – М.: Юрайт, 2018. – 260 с.
  21. Проектирование на UML. Сборник задач [Текст] / А.С. Хританков [и др.]. – Екатеринбург: Издательские решения, 2017. – 240 с.
  22. Ревотюк, М. П. Объектно-ориентированное программирование и проектирование: учебно-метод. пособие: в 2 ч. Ч.1: Технологии объектного программирования [Текст] / М. П. Ревотюк. – Минск: БГУИР, 2014. – 194 с.
  23. Савельев, В.А. Объектно-ориентированное программирование. Язык Smalltalk [Текст] / В.А. Савельев, Ю.А. Кирютенко. – М.: Вузовская книга, 2018. – 328 с.
  24. Сравнительный анализ CASE-средств [Электронный ресурс] / Электрон. текстовые дан. – Новосибирск [б.н.], 2015. – Режим доступа: https://sibac.info/studconf/tech/xxxiii/42530
  25. Тузовский, А.Ф. Объектно-ориентированное программирование. Учебное пособие [Текст] / А.Ф. Тузовский. – М.: Юрайт, 2017. – 206 с.
  26. Хольгер Гаст. Объектно-ориентированное проектирование. Концепции и программный код [Текст] / Гаст Хольгер. – М.: Вильямс, 2018. – 1040 с.
  27. Essentials of IBM Rational Rhapsody v7.5 for Software Engineers (C++) [Электронный ресурс] / Электрон. текстовые дан. – IBM Corporation, 2018. – Режим доступа: http://ccrs.hanyang.ac.kr/webpage_limdj/embedded/RiCpp_Basic.pdf
  28. Flexberry Designer [Электронный ресурс] / Электрон. текстовые дан. – Москва: [б.и.], 2017. – Режим доступа: https://flexberry.github.io/ru/fd_landing_page.html
  29. MagicDraw [Электронный ресурс] / Электрон. текстовые дан. – No Magic, Inc.., 2018. – Режим доступа: https://www.nomagic.com/products/magicdraw

ПРИЛОЖЕНИЕ 1

UML-диаграмма классов

- связь типа «зависимость» - связь между двумя элементами модели, в которой изменение одного элемента (независимого) может привести к изменению семантики другого элемента (зависимого).

связь типа «агрегация» - структурная связь целого с его частями.

связь типа «композиция» – это форма агрегации с четко выраженными отношениями владения и совпадением времени жизни частей и целого.

связь типа «реализация» – это семантическая связь между классами, когда один из них определяет соглашение, которого второй обязан придерживаться.

ПРИЛОЖЕНИЕ 2

Место диаграмм взаимодействия в жизненном цикле разработки ПО

  1. Плахотникова, М.А. Информационные технологии в менеджменте. Учебник и практикум для СПО [Текст] / М.А. Плахотникова, Ю.А. Вертакова. – М.: Юрайт, 2016. – С.21

  2. Остроух, А.В. Проектирование информационных систем [Текст] / А.В. Остроух, Н.Е. Суркова. – СПб.: Лань, 2019. – С.12

  3. Проектирование информационных систем. Учебник и практикум [Текст] / Под общ. ред. Д.В. Чистова. – М.: Юрайт, 2018. – С.33

  4. Гвоздева, Т.В. Проектирование информационных систем. Технология автоматизированного проектирования [Текст] / Т.В. Гвоздева, Б.А. Баллод. – СПб.: Лань, 2018. – С.17

  5. Савельев, В.А. Объектно-ориентированное программирование. Язык Smalltalk [Текст] / В.А. Савельев, Ю.А. Кирютенко. – М.: Вузовская книга, 2018. – С.58

  6. Проектирование информационных систем [Электронный ресурс] / Электрон. текстовые дан. – Москва: [б.и.], 2017. – Режим доступа: https://compress.ru/article.aspx?id=11764

  7. Зыков, С.В. Программирование. Объектно-ориентированный подход. Учебник и практикум для академического бакалавриата [Текст] / С.В. Зыков. – М.: ЮРАЙТ, 2017. – С.55

  8. Основы объектно-ориентированного подхода к анализу и проектированию информационных систем [Электронный ресурс] / Электрон. текстовые дан. – Москва: [б.и.], 2016. – Режим доступа: https://sites.google.com/site/anisimovkhv/learning/pris/lecture/tema9

  9. Ревотюк, М. П. Объектно-ориентированное программирование и проектирование: учебно-метод. пособие: в 2 ч. Ч.1: Технологии объектного программирования [Текст] / М. П. Ревотюк. – Минск: БГУИР, 2014. – С.62

  10. Приемы объектно-ориентированного проектирования. Паттерны проектирования [Текст] / Э. Гамма [и др.]. – СПб.: Питер, 2019. – С.75

  11. Хольгер Гаст. Объектно-ориентированное проектирование. Концепции и программный код [Текст] / Гаст Хольгер. – М.: Вильямс, 2018. – С.303

  12. Емельянов, В.А. Объектно-ориентированное проектирование ИС [Электронный ресурс] / Электрон. текстовые дан. – Москва: [б.и.], 2018. – Режим доступа: https://en.ppt-online.org/542998

  13. Остроух, А.В. Теория проектирования распределенных информационных систем [Текст] / А.В. Остроух, А.В. Помазанов. - СПб.: Лань, 2019. – С.36

  14. Основы объектно-ориентированного подхода к анализу и проектированию информационных систем [Электронный ресурс] / Электрон. текстовые дан. – Москва: [б.и.], 2016. – Режим доступа: https://sites.google.com/site/anisimovkhv/learning/pris/lecture/tema9

  15. Ревотюк, М. П. Объектно-ориентированное программирование и проектирование: учебно-метод. пособие: в 2 ч. Ч.1: Технологии объектного программирования [Текст] / М. П. Ревотюк. – Минск: БГУИР, 2014. – С.52

  16. Остроух, А.В. Проектирование информационных систем [Текст] / А.В. Остроух, Н.Е. Суркова. – СПб.: Лань, 2019. – С.64

  17. Остроух, А.В. Проектирование информационных систем [Текст] / А.В. Остроух, Н.Е. Суркова. – СПб.: Лань, 2019. – С.65-66

  18. Зыков, С.В. Программирование. Объектно-ориентированный подход. Учебник и практикум для академического бакалавриата [Текст] / С.В. Зыков. – М.: ЮРАЙТ, 2017. – С.72

  19. Остроух, А.В. Теория проектирования распределенных информационных систем [Текст] / А.В. Остроух, А.В. Помазанов. - СПб.: Лань, 2019. – С.47

  20. Зыков, С.В. Программирование. Объектно-ориентированный подход. Учебник и практикум для академического бакалавриата [Текст] / С.В. Зыков. – М.: ЮРАЙТ, 2017. – С.88

  21. Арлоу, Д. UML 2 и Унифицированный процесс. Практический объектно-ориентированный анализ и проектирование [Текст] / Джим Арлоу, Айви Нейштадт. – М.: Символ, 2016. – С.32

  22. Приемы объектно-ориентированного проектирования. Паттерны проектирования [Текст] / Э. Гамма [и др.]. – СПб.: Питер, 2019. – С.102

  23. Емельянов, В.А. Объектно-ориентированное проектирование ИС [Электронный ресурс] / Электрон. текстовые дан. – Москва: [б.и.], 2018. – Режим доступа: https://en.ppt-online.org/542998

  24. Достоинства и недостатки ООП [Электронный ресурс] / Электрон. текстовые дан. – Москва: [б.и.], 2017. – Режим доступа: http://www.maksakov-sa.ru/TehProgram/ObOrientProgr/DosNedOOP/index.html

  25. Достоинства и недостатки ООП [Электронный ресурс] / Электрон. текстовые дан. – Москва: [б.и.], 2017. – Режим доступа: http://www.maksakov-sa.ru/TehProgram/ObOrientProgr/DosNedOOP/index.html

  26. Зыков, С.В. Программирование. Объектно-ориентированный подход. Учебник и практикум для академического бакалавриата [Текст] / С.В. Зыков. – М.: ЮРАЙТ, 2017. – С.108

  27. Объектно-ориентированный подход [Электронный ресурс] / Электрон. текстовые дан. – Москва: [б.и.], 2016. – Режим доступа: https://studme.org/257065/informatika/obektno_orientirovannyy_podhod

  28. Приемы объектно-ориентированного проектирования. Паттерны проектирования [Текст] / Э. Гамма [и др.]. – СПб.: Питер, 2019. – С.66

  29. Савельев, В.А. Объектно-ориентированное программирование. Язык Smalltalk [Текст] / В.А. Савельев, Ю.А. Кирютенко. – М.: Вузовская книга, 2018. – С.71

  30. Объектно-ориентированный подход [Электронный ресурс] / Электрон. текстовые дан. – Москва: [б.и.], 2016. – Режим доступа: https://studme.org/257065/informatika/obektno_orientirovannyy_podhod

  31. Достоинства и недостатки ООП [Электронный ресурс] / Электрон. текстовые дан. – Москва: [б.и.], 2017. – Режим доступа: http://www.maksakov-sa.ru/TehProgram/ObOrientProgr/DosNedOOP/index.html

  32. Обзор CASE-средств для построения диаграмм UML [Электронный ресурс] / Электрон. текстовые дан. – Москва: НОУ «ИНТУИТ», 2013 – 2017. – Режим доступа: http://www.intuit.ru/studies/courses/1007/229/lecture/5963

  33. Гвоздева, Т.В. Проектирование информационных систем. Технология автоматизированного проектирования [Текст] / Т.В. Гвоздева, Б.А. Баллод. – СПб.: Лань, 2018. – С.96

  34. Инструменты для рисования UML-диаграмм [Электронный ресурс] / Электрон. текстовые дан. – Москва [б.н.], 2016. – Режим доступа: http://msugvnua000.web710.discountasp.net/Posts/Details/3787

  35. Краткий обзор StarUML [Электронный ресурс] / Электрон. текстовые дан. – Москва [б.н.], 2016. – Режим доступа: http://staruml.sourceforge.net/docs/user-guide(ru)/user-guide.pdf

  36. Краткий обзор StarUML [Электронный ресурс] / Электрон. текстовые дан. – Москва [б.н.], 2016. – Режим доступа: http://staruml.sourceforge.net/docs/user-guide(ru)/user-guide.pdf

  37. Инструменты для рисования UML-диаграмм [Электронный ресурс] / Электрон. текстовые дан. – Москва [б.н.], 2016. – Режим доступа: http://msugvnua000.web710.discountasp.net/Posts/Details/3787

  38. Обзор CASE-средств для построения диаграмм UML [Электронный ресурс] / Электрон. текстовые дан. – Москва: НОУ «ИНТУИТ», 2003 – 2017. – Режим доступа: http://www.intuit.ru/studies/courses/1007/229/lecture/5963

  39. Новые возможности Visio 2019 [Электронный ресурс] / Электрон. текстовые дан. – Москва [б.н.], 2019. – Режим доступа: https://support.office.com/ru-ru/article/Новые-возможности-visio-2019-19b8e98d-9cf9-40ad-9277-eb65e3713a79

  40. Хольгер Гаст. Объектно-ориентированное проектирование. Концепции и программный код [Текст] / Гаст Хольгер. – М.: Вильямс, 2018. – С.502

  41. Обзор Rational Rhapsody [Электронный ресурс] / Электрон. текстовые дан. – Москва: [б.и.], 2017. – Режим доступа: https://www.ibm.com/support/knowledgecenter/ru/SSQQC5_5.0.0/com.ibm.rational.sse.doc/topics/c_overview_rhap.html

  42. Essentials of IBM® Rational® Rhapsody® v7.5 for Software Engineers (C++) [Электронный ресурс] / Электрон. текстовые дан. – IBM Corporation, 2018. – Режим доступа: http://ccrs.hanyang.ac.kr/webpage_limdj/embedded/RiCpp_Basic.pdf

  43. Костарев, А. Технологическая программная платформа Flexberry с открытым исходным кодом для профессиональной разработки программного обеспечения [Электронный ресурс] / Электрон. текстовые дан. – OSSDEVCONF, 2018 – Режим доступа: http://0x1.tv/Технологическая_программная_платформа_Flexberry_с_открытым_исходным_кодом_для_профессиональной_разработки_программного_обеспечения_(Алексей_Костарев,_OSSDEVCONF-2018)

  44. Костарев, А. Технологическая программная платформа Flexberry с открытым исходным кодом для профессиональной разработки программного обеспечения [Электронный ресурс] / Электрон. текстовые дан. – OSSDEVCONF, 2018 – Режим доступа: http://0x1.tv/Технологическая_программная_платформа_Flexberry_с_открытым_исходным_кодом_для_профессиональной_разработки_программного_обеспечения_(Алексей_Костарев,_OSSDEVCONF-2018)

  45. Костарев, А. Технологическая программная платформа Flexberry с открытым исходным кодом для профессиональной разработки программного обеспечения [Электронный ресурс] / Электрон. текстовые дан. – OSSDEVCONF, 2018 – Режим доступа: http://0x1.tv/Технологическая_программная_платформа_Flexberry_с_открытым_исходным_кодом_для_профессиональной_разработки_программного_обеспечения_(Алексей_Костарев,_OSSDEVCONF-2018)

  46. Flexberry Designer [Электронный ресурс] / Электрон. текстовые дан. – Москва: [б.и.], 2017. – Режим доступа: https://flexberry.github.io/ru/fd_landing_page.html

  47. MagicDraw [Электронный ресурс] / Электрон. текстовые дан. – No Magic, Inc.., 2018. – Режим доступа: https://www.nomagic.com/products/magicdraw

  48. Проектирование на UML. Сборник задач [Текст] / А.С. Хританков [и др.]. – Екатеринбург: Издательские решения, 2017. – С.156

  49. MagicDraw [Электронный ресурс] / Электрон. текстовые дан. – alternativeto, 2018. – Режим доступа: https://alternativeto.net/software/magicdraw/