Рубрика:
Разработка /
Инструменты
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
АЛЕКСЕЙ КОСТАРЕВ, ООО «Новая Платформа», г. Пермь
ИГОРЬ БРАТЧИКОВ, ООО «Новая Платформа», г. Пермь
Платформа Flexberry с открытым кодом для профессиональной разработки ПО
В статье рассматривается разрабатываемая на принципах свободного программного обеспечения платформа Flexberry – платформа для проектирования, разработки и поддержки сложных информационных систем
Платформа включает в себя UML-редактор и визуальный конструктор форм приложений, фреймворк для создания мобильных и веб-приложений, подсистему для хранения, создания, редактирования, анализа и отображения географической информации, сервисную шину и другие компоненты, позволяющие ИТ-подразделениям предприятий и компаниям-разработчикам оптимизировать процесс проектирования, разработки и поддержки информационных систем.
Введение
Процесс проектирования, разработки и поддержки информационных систем напрямую влияет на качество и стоимость конечного продукта – просчеты в организации процесса ведут к проблемам в продукте. Процесс обычно включает в себя как организационно-административные, так и технические аспекты, соответственно, для наилучшего результата требуется наличие качественной методики работы и технических средств, поддерживающих данную методику.
Программная платформа Flexberry вобрала в себя богатый опыт создания информационных систем на протяжении многих лет развития. Платформа предоставляет методику работы проектной команды и технические инструменты для ее реализации.
Основная часть
Типы информационных систем
Информационные системы классифицируются по различным параметрам [1]. Обобщение опыта компаний-партнеров позволило выделить виды информационных систем, которые чаще других создаются компаниями на заказ, именно этивиды информационных систем поддерживаются платформой Flexberry:
- комплексные учетные системы;
- автоматизация бизнес-процессов и документооборота;
- веб-приложения;
- мобильные приложения;
- интеграционные информационные системы;
- аналитические системы;
- геоинформационные системы.
Дополнительно следует отметить, что платформа базируется на свободном ПО и открытых технологиях. Компоненты платформы также разрабатываются в открытых репозиториях под свободной лицензией. Это позволяет создавать открытые решения с использованием платформы.
Задачи платформы
На основе анализа выполненных проектов был составлен список задач, направленных на оптимизацию процесса проектирования, разработки и сопровождения информационных систем:
- быстрое создание прототипов программного решения;
- повышение эффективности взаимодействия с заказчиками за счет применения визуальных моделей систем и процессов;
- снижение общей трудоемкости процесса разработки и сопровождения информационных систем;
- возможность применения готовых программных компонент и готовой архитектуры;
- быстрое разворачивание в гетерогенных сетях, включая облачные платформы.
Основа методики проектирования и разработки
Одним из наиболее значимых аспектов в процессе проектирования информационных систем является определение центрального звена, которое будет являться источником правильной информации о системе. Именно это центральное звено является первоначальной целью проектирования, а все остальные аспекты уже согласуются с ним. В качестве этого центрального звена может выступать:
- исходный код программы (подход Code First [2]);
- структура данных приложения (подход Database First [3]);
- пользовательский интерфейс (подход UI-First [4]);
- формализованная каким-либо образом модель приложения (подход Model First [5]).
Подход Code First наиболее понятен программистам-разработчикам, поскольку код становится основным источником информации о разрабатываемой информационной системе, что в свою очередь повышает значимость людей, владеющих этим кодом.
К минусам этого подхода можно отнести сложность восприятия информации другими участниками проектной команды, а также заказчиком и экспертами в предметной области. В этом случае возникает некоторое противоречие между бизнес-аналитиками и программистами, поскольку они находятся в неравных условиях по отношению к источнику информации о системе.
Подход Database First позволяет наиболее оптимальным образом приготовить структуру данных под бизнес-процессы. Также в этом случае бизнес-аналитикам, способным понимать SQL или пользоваться инструментами работы с СУБД, становится доступной информация о проектируемой информационной системе.
К минусам можно отнести опять же сложности в общении с заказчиками и экспертами в предметной области, поскольку представить, как та или иная таблица в базе данных будет использована, на формах сложно.
Подход UI First является самым наглядным, поскольку основным источником информации будут пользовательские интерфейсы, в большинстве своем ориентированы на удобное визуальное восприятие информации конечными пользователями. При таком подходе довольно удобно выстроить общение с заказчиками и экспертами в предметной области.
К минусам можно отнести сложности в формализации поведенческой составляющей пользовательских интерфейсов, возможный недостаток информации о структуре данных информационной системы и скрытой от глаз пользователя бизнес-логики.
В основе технологии создания систем на платформе Flexberry лежат подход Model First и архитектура, управляемая моделью |
Подход Model First позволяет абстрагироваться от конкретных элементов архитектуры информационной системы (код, база данных, пользовательский интерфейс) и оперировать некоторой абстракцией, предоставляющей необходимый уровень детализации информации по элементам архитектуры. Основное достоинство заключается в том, что модель понятна всем участникам проектной команды, является некоторым универсальным языком общения.
К минусам можно отнести необходимость дополнительных работ по созданию этой модели, но при наличии качественного инструментария формализованная машиночитаемая модель позволяет автоматизировать реализацию отдельных элементов архитектуры приложения (код, база данных, пользовательский интерфейс).
В основе технологии создания систем на платформе Flexberry лежат подход Model First и архитектура, управляемая моделью (Model Driven Architecture) [6]. В рамках этой архитектуры сначала с помощью редактора в формате UML или визуального конструктора форм создается модель предметной области проектируемого приложения. По модели создается прототип работающего приложения методом кодогенерации. Данный прототип дорабатывается программистами. Затем эта модель уточняется в ходе развития и поддержки проекта, эти изменения прозрачным образом автоматически переносятся в реализованное приложение.
Процесс разработки с использованием Flexberry включает в себя следующие этапы (см. рис. 1):
- Анализ и проектирование с построением различных UML-моделей.
- Генерация на основе созданных моделей базы данных и кода.
- Подключение готовых функциональных подсистем.
- Ручная доработка кода.
- Демонстрация Заказчику прототипа приложения.
- Детализация требований, постановок.
- Модификация UML-моделей, перегенерация кода.
- Выпуск версии продукта, переход к поддержке и сопровождению.
Рисунок 1. Упрощенная схема процесса проектирования и программирования
Архитектура платформы
Архитектура системы включает в себя (см. рис. 2):
- инструментарий по проектированию и программированию системы (этап проектирования – Design-Time);
- набор компонентов для создания информационной системы (этап исполнения программы – Run-Time).
Рисунок 2. Основные архитектурные компоненты платформы
Генераторы кода (см. рис. 3) позволяют на основе модели приложения получать исходный код приложения. Сгенерированное приложение является работоспособным приложением и может быть запущено без необходимых доработок [7].
Рисунок 3. Архитектура инструментария проектирования Flexberry Designer
Платформа включает в себя следующие программные компоненты:
- Flexberry Designer – CASE-инструмент, реализующий стандартную нотацию UML и визуальный (WYSIWYG) конструктор форм приложения;
- Flexberry Ember – фреймворк для создания веб- и гибридных мобильных приложений;
- Flexberry GIS – функциональная подсистема хранения, создания, редактирования, анализа и отображения географической информации;
- Flexberry Service Bus – сервисная шина – средство интеграции систем посредством обмена сообщениями (docker-образ);
- Flexberry Analytics – функциональная подсистема отчётности и бизнес-аналитики (docker-образ);
- Flexberry BPM – технология для быстрой автоматизации рабочих процессов в компании (набор docker-образов)
- и другие компоненты.
Разработка и координация распределенной группы разработчиков платформы производится в git-репозитории https://github.com/Flexberry. Платформа открыта для подключения новых участников к процессу ее разработки.
Поддержка процесса разворачивания и сопровождения
Разработанный продукт разворачивается в виде стека docker-сервисов, включающего в себя следующие сервисы:
- Ember-приложение с Odata backend;
- сервис базы данных Postgres.
EmberJS обеспечивает возможность быстро и качественно создавать универсальный мобильный и веб-интерфейс.
REST-интерфейс OData позволяет построить микросервисную архитектуру вокруг единой точки предоставления данных.
База данных Postgres является «стандартом de-facto» при создании систем на основе открытого программного обеспечения.
Docker-технология позволяет нам интегрировать данные сервисы в конечное кластерное решение нашей платформы [8, 9].
При необходимости в стек, функционирующий в составе кластера, могут быть включены дополнительные функциональные подсистемы платформы Flexberry в виде docker-сервисов:
- Flexberry GIS,
- Flexberry Service Bus,
- Flexberry Analytics,
- Flexberry BPM,
- и другие.
Заключение
Оптимизация процесса проектирования, разработки и сопровождения информационных систем реализуется при помощи программной платформы Flexberry за счет следующих возможностей:
- подхода Model First и архитектуры управляемой моделью;
- инструментария визуальной разработки модели приложения, включающего метаданные для хранилища, бизнес-логики и пользовательского интерфейса приложения;
- инструментария быстрого создания прототипов необходимого программного решения за счет кодогенерации;
- реализованных готовых программных компонент и готовой архитектуры;
- поддержка Docker для быстрого разворачивания информационных систем.
- Информационная система: [Электронный ресурс] // Википедия. URL: https://ru.wikipedia.org/wiki/Информационная_система (дата обращения: 01.09.2018).
- Code First в новой базе данных: [Электронный ресурс] URL: https://docs.microsoft.com/ru-ru/ef/ef6/modeling/code-first/workflows/new-database (дата обращения: 01.09.2018).
- Database-First Approach: [Электронный ресурс] URL: https://www.devart.com/entitydeveloper/database-first.html (дата обращения: 01.09.2018).
- UI-First Software Development: [Электронный ресурс] URL: https://blog.codinghorror.com/ui-first-software-development/ (дата обращения: 01.09.2018).
- Bennedsen, Jens & Caspersen, Michael. (2018). A Model-First Approach to Teaching Object-Orientation.
- Архитектура, управляемая моделью: [Электронный ресурс] // Википедия. URL: https://ru.wikipedia.org/wiki/Архитектура,_управляемая_моделью (дата обращения: 01.09.2018).
- Шмидт И.А., Архитектура платформы для разработки бизнес-приложений.// «Современные проблемы науки и образования», № 6, 2014 г. – С. 348.
- Docker as Platform for Assignments Evaluation, 25th DAAAM International Symposium on Intelligent Manufacturing and Automation, DAAAM 2014
- Docker: [Электронный ресурс] URL: https://www.docker.com/ (дата обращения: 01.09.2018).
- Технологическая программная платформа Flexberry – http://flexberry.ru, https://github.com/Flexberry.
Ключевые слова: проектирование, процесс разработки, программная платформа, Model Driven Architecture, кодогенерация, UML-инструментарий.
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|