(Окончание, начало в №37)
Следующий характерный момент технологии сквозного проектирования - это правила составления описаний бизнес-структуры предприятия. Здесь есть все те же схемы, диаграммы событий, которые показывают момент возникновения документов на предприятии, цепочку их передвижения в организационной структуре, отражают содержание информации, извлекаемое из них конкретными лицами и т.д. вплоть до специальных условных обозначений, например, линий, точек и др. Все это пригодится позже, когда специальная программа (кодогенератор) сама будет генерировать исходный код.
И, наконец, очень важно, что подобная технология позволяет получить целостное осознание концепции проекта, идеологии, мысленной архитектуры приложения. При этом ни пользователь, ни системный аналитик не держат в голове всю концепцию во всех ее деталях. От специалистов различных служб предприятия не требуется рассматривать все в комплексе, учитывать особенности работы предприятия в целом, им достаточно описать только свой участок работы. А от системного аналитика требуется лишь обойти всех непосредственных пользователей будущего приложения, собрать необходимую информацию и правильно ее записать с помощью специальных CASE-средств, инструментов проектирования ПО.
На первый взгляд все это выглядит как противоречие: с одной стороны, изолированные рассказы пользователей, а с другой - целостное осмысление концепции проекта. Но в том-то и состоит преимущество рассматриваемой технологии, что она дает специальный инструмент, позволяющий из отдельных фрагментов сделать общую картинку. Например, если в схемах, описывающих деятельность разных отделов, встречается один и тот же документ, то программа самостоятельно идентифицирует его по названию и самостоятельно устанавливает соответствующие связи. Или другой пример - функции контроля (Check Point) для обнаружения и устранения возможных противоречий в пунктах стыковок технологической цепочки, а также выявления незавершенных связей.
Отсюда существенно снижается нагрузка на системного аналитика, который раньше должен был сначала все разложить по полочкам, а потом собрать воедино (известная история с часами напрашивается сама собой). Теперь ему достаточно выполнить первую часть работы, а остальное будет сделано автоматически, на основании составленных им описаний.
Именно в этом и состоит следующий этап проектирования: программа генерирует описание структуры данных и исходные тексты программных модулей. И если на сбор информации как и прежде требуется несколько месяцев, то на втором этапе теперь достаточно 1-2-х дней, а на отдельные фрагменты порой и 1-2-х часов.
И теперь самое, на мой взгляд, главное: благодаря подобной технологии появляется возможность быстрого и грамотного внесения изменений в проект. Для этого достаточно изменить содержание схем на предметном уровне и программа самостоятельно и очень быстро осуществит необходимую перегенерацию исходного кода.
Нетрудно себе представить, что это означает в реальной ситуации. Например, сгенерировав фрагмент приложения, можно показать его прототип заказчику, получить изменения и буквально в считанные часы, а то и минуты сгенерировать новый вариант.
Другими словами, разрабатываемое приложение теперь имеет гораздо больше шансов соответствовать желаемому с точки зрения потребностей заказчика.
Новые возможности
В результате всех этих технологических решений программисты-разработчики получают в свои руки инструменты, которые значительно облегчают их труд. Вот далеко не полный перечень новых возможностей:
1. Резкое снижение - до 70% - объема ручного программирования
Конечно, никакая программа не заменит человека, и определенные компоненты так или иначе будут писаться вручную. Но, согласитесь, возможность автоматической, а не ручной, разработки приложений, генерирования структуры базы данных, средств поддержания ее целостности на уровне 70% впечатляет. А добавьте сюда и автоматическое уменьшение количества возможных ошибок.
2. Постоянная поддержка высокого уровня актуальности проекта
При использовании подобной технологии любые изменения проекта отражаются на электронных носителях сразу после их возникновения. Причем, здесь же предусмотрена возможность сохранения и тех изменений, которые вносятся вручную в исходный код и не отражаются в предметном анализе. В случае, если содержание проекта корректируется на верхнем, предметном уровне, то достаточно задать программе определенные параметры и она сгенерирует новый исходный код с учетом тех изменений, которые сделаны программистом на более глубоком, детальном уровне. И, наоборот, программа пропустит и не будет заново генерировать фрагменты исходного кода, удаленные программистом.
3. Актуальная документация
Искать места изменений теперь гораздо проще, не надо специально помнить, где какие изменения были сделаны. Кроме того, предусмотрена специальная функция сохранения различных версий проекта. Таким образом снимается проблема уникальности проекта и зависимости от конкретных исполнителей. Новый специалист, обученный пользованию соответствующим инструментом, вполне способен разобраться в проекте даже после внесения в него множества изменений.
4. Лучший результат с меньшими затратами
Возможность быстрого внесения множества изменений на стадии проектирования информационной системы означает для разработчика существенное сокращение временных и материальных затрат на перепроектирование приложения. В свою очередь, для заказчика это означает, что он получает, как уже подчеркивалось ранее, готовый продукт, максимально близкий по своим характеристикам к желаемому. Именно это и создает главную изюминку технологии сквозного проектирования, которая в другом варианте называется технологией быстрого проектирования приложений.
Отметим также и то обстоятельство, что при такой постановке вопроса программисты-разработчики и программисты предприятия-заказчика могут найти новые, более оптимальные формы взаимодействия между собой. Получив в свое распоряжение технологию сквозного проектирования, программисты клиента уже и сами могут достаточно свободно осуществлять сопровождение проекта, снимая тем самым ряд хлопот с фирмы-исполнителя.
5. Возможность реинжиниринга
Реинжиниринг, или, иначе говоря, репроектирование, становится в последнее время все более актуальной темой. Ведь многие информационные системы на белорусских предприятиях внедрялись лет пять назад и в ближайшие годы наступает срок их морального и физического устаревания. Но за эти пять лет накоплено много важной информации, которую необходимо сохранить и включить в обновленные системы.
И здесь технология сквозного проектирования может оказать неоценимую услугу и пользователям, и разработчикам. Поскольку она включает в себя отлаженные механизмы отображения бизнес-правил деятельности предприятия, то отпадает необходимость заново писать весь проект, его концепцию, идеологию и т.п. Достаточно прочитать существующее приложение с помощью соответствующих средств, перевести на язык определенного инструмента и внести изменения в проект по отработанной технологической цепочке.
Само собой разумеется, что репроектирование действующей системы гораздо дешевле, чем создание новой, да еще с риском утраты либо искажения первоначальных данных.
6. Определенная универсальность технологии
Это еще одно важное достоинство рассматриваемой здесь технологии сквозного проектирования приложений. Т.е. нет принципиальных препятствий в том, какие используются операционные системы (Windows, Unix и т.д.), СУБД, (Informix, Oracle, DB2 и др.), средства разработки и языки программирования (Delphi, Java, С++ и т.п.). Как правило, можно удовлетворить весь спектр пожеланий заказчика, за исключением, может быть, самых экзотических.
Резюме на заметку
В заключение несколько конкретных названий и терминов, которые, надеюсь, помогут замаркировать для памяти вышесказанное. Как уже было сказано, сквозная технология проектирования включает в себя ряд компонентов. Это и организационные процедуры, и обучение, и ряд уже готовых программных продуктов. К последним относятся CASE-средства фирмы Cayenne Software и программные продукты семейства GRINDERY(tm) (кодогенераторы, средства быстрой разработки и реинжиниринга приложений).
Различные Case-средства уже достаточно известны среди программистов. Есть сегодня на рынке и некоторые средства генерации. Но те средства проектирования приложений и генерирования исходного кода, о которых шла речь в этой статье, пока еще уникальны. Не вдаваясь опять в подробности, выделим только две возможности, отсутствующие у других: это поддержка ручных изменений и возможность репроектирования.
Сергей ДМИТРИЕВ,
ПКП "Веспол",
boma98@yahoo.com
Горячие темы