Программный код “на гора” и имитационное моделирование
Создание крупных программных комплексов сегодня немыслимо без этапа предварительного проектирования. В помощь проектировщикам и аналитикам давно выпускаются CASE-продукты, позволяющие с помощью формальных методов описывать разрабатываемую систему.
На первые компьютерные программы, реализующие CASE-технологии, сразу появился большой спрос. Стоили они довольно дорого, но существенно ускоряли процесс проектирования и позволяли снизить число наиболее серьезных ошибок, возникающих на этапе разработки общей структуры корпоративной системы.
Шло время, все больше специалистов обращались к удобным средствам проектирования, да и сами технологии не стояли на месте. Добавилась поддержка объектной идеологии, были разработаны новые, более эффективные формальные методы описания информационных (логическая структура базы данных) и функциональных (потоки информации, обработка данных) моделей. Все это воплощалось в новых версиях CASE-продуктов, спрос на которые постоянно возрастал.
До недавнего времени основными требованиями, предъявляемыми к хорошей CASE-системе, были следующие: наличие удобного графического интерфейса, возможность построения функциональных и информационных моделей с неограниченным уровнем вложенности, автоматическое отслеживание вносимых изменений (с помощью триггеров и хранимых процедур) и получение SQL-скрипта для создания физической структуры базы. Этот скрипт должен быть совместим по формату с требованиями сервера БД, выбираемого из обширного списка наиболее распространенных СУБД. Такие системы сегодня имеют устойчивый спрос на рынке. Однако в последнее время начинают проявляться новые тенденции развития CASE-систем. Если раньше их создатели стремились к максимальной отчужденности проектируемой модели от конкретных компьютерных архитектур, то теперь они, наоборот, стараются интегрировать свои продукты со средствами разработки, а ответственность за независимость от ОС и СУБД возлагается на сами средства создания приложений.
Причин две. Первая - стремление снизить объем ручного кодирования, чтобы избежать вносимых мыслящим существом ошибок. А вторая - появление недорогих или вообще бесплатных CASE-систем, легко доступных через Internet. Не составляет труда найти десяток freeware-программ, работающих в Windows, которые позволяют с помощью простого и удобного интерфейса создать функциональную и информационную модели проектируемой системы. Для разработки системного проекта этого вполне достаточно. Если же надо получить SQL-скрипт, то за символическую плату (50 долл.) можно найти CASE-системку, которая сгенерирует SQL-код. Может быть, он не сразу скомпилируется под соответствующие СУБД, но откорректировать и настроить его на конкретные требования можно за пару часов.
Поэтому ведущие производители CASE-продуктов начинают понемногу менять свои долгосрочные стратегии развития. Основной упор сегодня делается на интеграцию CASE-системы с конкретным средством разработки, желательно с возможностью автоматической кодогенерации. Ведущие поставщики крупнейших СУБД предлагают системы проектирования приложений, вроде бы не зависящие от платформы (обычно объявляется о поддержке порядка 50 СУБД), но, конечно, их системы наиболее эффективно будут работать при объединении с собственными оригинальными продуктами для создания ПО. При этом клиент нередко получает возможность создать законченное приложение, вообще не написав ни одной строчки кода.
Прошедший Комтек-97 позволил выяснить, как учитывают меняющийся рынок работающие в России производители CASE-систем.
Продукт PowerDesigner (бывший S-Designor) фирмы Sybase поддерживает полный цикл проектирования приложения более чем для 40 СУБД, обеспечивая при этом возможность получения кода для собственных средств разработки четвертого поколения PowerBuilder и Power++ (бывшее Optima++). Конечно, при создании крупной системы с помощью PowerDesigner можно в качестве сервера базы данных использовать, например, MS SQL Server, однако быстро выяснится, что для наиболее эффективного применения PowerBuilder все же лучше выбрать Sybase SQL Server. Аналогично обстоит дело с продуктами Oracle - ее системой проектирования Designer/ 2000, средством разработки Power Objects и OLAP-технологиями.
На самом деле рекламируемая независимость от платформы является (по крайней мере в нашей стране) чисто маркетинговым ходом и реально редко бывает востребована - только если у предприятия уже есть довольно мощная информационная система, использующая конкурирующую СУБД, но в силу известных причин заказчик решает перейти на новый продукт. Здесь возможность интеграции с другими системами придется как нельзя кстати. Но более значима для покупателя как раз возможность использовать тесно интегрированные средства проектирования и создания ПО.
Из менее известных в России фирм типичным представителем подобной тенденции является Progress Software, которая предлагает СУБД Progress и одноименную среду разработки приложений. В нее помимо различных визуальных редакторов и генераторов отчетов входят платформно-независимый язык 4GL и модуль проектирования логической структуры базы. Конечно, наиболее эффективно их использование с оригинальной СУБД Progress.
Те компании, которые специализировались только на выпуске CASE-систем, тоже стремятся интегрировать свое ПО с наиболее популярными средствами разработки приложений.
Продукт CASE/4/0 немецкой фирмы microTOOL полностью поддерживает все этапы проектирования корпоративной системы. Он содержит мосты к большинству известных СУБД и позволяет автоматически генерировать код приложения на нескольких языках программирования. По-видимому, на основе этого продукта microTOOL создала среду проектирования и разработки приложений objectiF, ориентированную на Microsoft Visual C++. Эта среда содержит средства описания, проектирования и анализа разрабатываемого ПО с полной поддержкой объектной идеологии.
Популярная CASE-система SILVERRUN американской фирмы CSA поддерживает большой набор готовых методологий для описания функциональной и информационной моделей проектируемой системы, а также может быть настроена на собственные нотации. Готовое приложение можно получить, осуществив автоматическую генерацию кода на 4GL языке JAM.
Компания LogicWorks, известная своими CASE-продуктами ERwin и BPwin, также не осталась в стороне от новой тенденции. Ее продукт MetaBase (или ERwin для Delphi) позволяет быстро модернизировать логическую структуру базы данных и автоматически вносит изменения в программный код клиентских Delphi-приложений, которые работают с физической базой. Для этого MetaBase имеет свой словарь данных Object Stream, который предназначен для синхронизации ER-диаграмм с библиотекой компонентов Delphi. Связи в модели данных можно автоматически привязывать к конкретным интерфейсным элементам.
Однако и в новой тенденции развития CASE-систем заметны недостатки. Реально автоматическая генерация кода позволяет получать простые приложения, поддерживающие только базовые функции обработки информации (добавить, изменить, удалить). При разработке приложения, работающего со структурами данных с большим количеством полей, такая возможность существенно снижает объем рутинной работы. Но как только в приложение требуется добавить более сложные функциональные возможности, возникают серьезные проблемы в редактировании мегабайтов автоматически сгенерированного кода. Поэтому даже наличие встроенных кодогенераторов в CASE-системе - только первый шаг к реальной автоматизации процесса создания законченного корпоративного приложения.
Наиболее интересное решение в этой области предлагала на Комтеке-97 российская фирма DataX/Florin. Она разработала технологии сквозного проектирования, поддерживающие полный жизненный цикл создания, модернизации и сопровождения крупных информационных систем. Специалисты DataX/Florin справедливо отмечают, что большинство современных CASE-систем позволяет быстро начать разработку ПО благодаря развитым системам проектирования логической структуры базы данных, но не позволяют быстро и успешно ее завершить.
Когда в экранные формы требуется добавлять сложную логику, структура приложения нередко начинает разваливаться. Поэтому технологии сквозного проектирования ориентированы на параллельную разработку как моделей данных, так и самого приложения, включая его интерфейсную часть. Для этого предназначен продукт GRINDERY Grabber, от начала до конца созданный в DataX/Florin. Он работает в тесной связке с CASE-системой VantageTeam фирмы Cayenne. С помощью этих продуктов можно описывать структуру и функциональность экранных форм, нешаблонные методы работы с ними, связывать формы и алгоритмы приложения в одно целое и автоматически получать готовую базу данных и готовый программный код с помощью семейства кодогенераторов GRINDERY (на сегодня поддерживаются языки Informix-4GL, NewEra, SuperNova).
Благодаря этому удается устранить технологический разрыв между этапом проектирования базы и созданием работающего интерфейса - разрыв, который свойствен многим CASE-системам с генерацией программного кода. Дополнительно GRINDERY Grabber поддерживает автоматический процесс тестирования сгенерированного приложения, проверку полноты тестов с помощью синтаксического анализа SQL-описаний, выдачу графических результатов тестирования и т. д.
Похожие возможности предоставляет последняя версия Rational Rose 4.0, созданная американской фирмой Rational Software, сотрудниками которой являются легендарные Гради Буч и Джеймс Рамбо. Rational Rose 4.0 содержит наиболее мощные и совершенные средства проектирования, автоматического преобразования моделей в различные нотации, контроля, тестирования приложений и создания документации. Этот продукт поддерживает последнюю версию унифицированного языка моделирования UML. Rational Rose 4.0 позволяет получать автоматически сгенерированный код программы на Си++, Java, Ada, Smalltalk, SQL Windows, Visual Basic, PowerBuilder и Forte. Здесь необходимо отметить, что средства создания приложений, поддерживаемые кодогенераторами GRINDERY, относятся к наиболее развитым системам четвертого поколения, а перечисленные языки в большинстве своем относятся к 3GL.
Разработчики других известных CASE-продуктов, испытывая сильное давление со стороны конкурентов, также внедряют в свои продукты оригинальные возможности. Так, известная система проектирования Design/IDEF фирмы Meta Software дополнилась средством имитационного моделирования Service Model. Модели, созданные в Design/IDEF, используются для описания и моделирования поведения, как промышленных организаций, так и сложных программных систем. При этом появляется возможность выявлять и устранять узкие места в их работе. Анализ модели допускает множество сценариев ее работы и динамическую визуализацию результатов с помощью анимации.
Одной из самых оригинальных разработок в области проектирования сложных функциональных систем мне показался отечественный продукт “РДО-Имитатор” фирмы КОПИ-АС. В нем использован мощный математический аппарат, создававшийся в МВТУ в течение 8 лет. Для описания системы аналитик или проектировщик использует декларативный язык описания объектов, близкий к естественному русскому. При этом специалисту не требуется изучать специальные языки логического программирования типа Пролога, ему достаточно работать с терминами привычной предметной области. Сама система логического вывода (поиск на графе состояний с локальной оптимизацией), встроенная в ядро “РДО-Имитатора”, очень мощна и позволяет решать многие задачи наиболее эффективными способами. Данный продукт может быть применен для создания интегрированных комплексов, включающих имитационные модели непрерывных производственных процессов, экспертные системы реального времени, алгоритмы оптимизации и возможность анимации поведения моделируемого объекта.
“РДО-Имитатор” отличается удобным графическим дизайном. Он используется на заводах России, Франции, Германии. В ближайшее время планируется добавить в него визуальный редактор для описания моделируемой системы с помощью формальных нотаций (IDEF0 и т. п.), которые затем будут автоматически переводиться в язык описания объектов РДО.
Летом и осенью ожидается выход новых версий CASE-продуктов практически всех ведущих производителей. Наверняка на осенних выставках нам удастся познакомиться как с известными средствами проектирования, обогатившимися новыми возможностями, так и с не менее оригинальными отечественными разработками.
Телефоны фирм: КОПИ-АС -
(095) 202-2935, “Аргуссофт” - (095) 288-2366, DataX/Florin - (095) 158-9520, “МетаТехнология”: 253-3822.
Сергей Бобровский