Введение

Развертывание новых программных систем в непосредственном окружении существующего (устаревшего) программного обеспечения.

Разработка в условиях Brownfield – это термин, широко используемый в индустрии информационных технологий для описания задач, требующих разработки и развертывания новых программных систем в непосредственном окружении существующих (устаревших) программных приложений/систем. Это подразумевает, что любая новая программная архитектура должна учитывать и сосуществовать с работающим программным обеспечением, уже внедренным в эксплуатацию. В современной строительной инженерии, участок земли, требующий рекультивации (brownfield land), означает недвижимость, расширение, перепланировка или повторное использование которой может быть осложнено наличием или потенциальным присутствием опасных веществ, загрязнителей или загрязнений. Разработка в условиях Brownfield вносит ряд улучшений в традиционные практики разработки программного обеспечения, которые обычно исходят из предположения о наличии "чистого листа", tabula rasa, или "зеленого поля" в качестве целевой среды на протяжении этапов проектирования и реализации. Brownfield расширяет эти подходы, настаивая на том, чтобы контекст (окружающая среда) создаваемой системы учитывался при любой разработке. Это требует детального знания систем, сервисов и данных, находящихся в непосредственной близости от разрабатываемого решения.

Решение проблемы сложности окружающей среды

Надежная переработка существующих бизнес- и ИТ-средств в современные конкурентоспособные, интегрированные архитектуры – непростая задача. Сложность бизнес- и ИТ-средств накапливалась почти бесконтрольно на протяжении сорока лет, что делает изменения все более дорогостоящими. Это происходит потому, что: сложность среды часто выражается в устаревшем коде. Дефицит квалифицированных специалистов, обладающих опытом работы с устаревшими системами, приводит к росту затрат на поддержку и интеграцию. Существующие сложные среды необходимо перерабатывать поэтапно, с учетом операционных потребностей соответствующих бизнес-функций. Зачастую эти этапы сводятся к полной, рискованной замене систем, поскольку незнание существующей сложности делает потенциальные постепенные изменения слишком сложными для понимания и реализации. Ускоренные методы разработки привели к появлению у предприятий современных устаревших систем. Сложные приложения на Java и .NET имеют многие из тех же проблем, что и более старые приложения на COBOL. В результате все большая часть усилий по разработке новых бизнес-возможностей тратится на понимание и интеграцию с существующей сложной системой и бизнес-ландшафтом, а не на создание ценности. Отмечается, что сейчас до 75% общих трудозатрат по проекту уходит на интеграцию и миграцию программного обеспечения, а не на разработку новой функциональности. В целом, IT-индустрия демонстрирует невысокий процент успешной реализации столь масштабных изменений для своих клиентов. Исследование CHAOS, проводимое Standish Group, зафиксировало общее улучшение успешности реализации IT-проектов за последние двадцать лет, но даже в 2006 году крупные IT-проекты чаще оказывались неудачными, чем успешными. Инженерные изменения в таких средах имеют много общего с проблемами строительной отрасли при реконструкции промышленных или загрязненных объектов. Они полны рисков, неожиданных сложностей и, как правило, дороги и сложны в реализации. Накопленная сложность IT-средств превратила их в объекты, требующие рекультивации ("brownfield" sites). Корень масштабных неудач проектов заключается не в сложности новой функции или характеристик новой системы, а в нашем понимании и коммуникации общих требований (как это описано в книге "The Mythical Man Month"). Для достижения успеха требования должны включать точное и всестороннее понимание ограничений существующего бизнеса и IT. Современные инструменты и методы, ориентированные на создание новых систем ("greenfield"), используют ранние, неформальные и часто неточные абстракции, которые по сути игнорируют такую сложность. Ранние, недостаточно обоснованные абстракции обычно ошибочны и часто выявляются на поздних этапах реализации, что приводит к задержкам, дорогостоящей переработке и даже к срыву разработки. Подход, ориентированный на "brownfield", учитывает существующую сложность и используется для надежного ускорения общего процесса разработки решения, включая возможность поэтапных, постепенных изменений, где это возможно. Brownfield использует стандартный подход, основанный на моделях и шаблонах OMG, но переворачивает его с ног на голову. Вместо традиционного подхода, начинающегося с концептуальной модели и переходящего к платформа-специфичным моделям и генерации кода, Brownfield начинается со сбора кода и других существующих артефактов и использует шаблоны для формальной абстракции, направленной вверх, к уровню архитектуры и бизнеса. Затем стандартные методы "greenfield" используются в сочетании для определения желаемой бизнес-цели. Этот метод "встречи посередине" знаком по другим методам разработки, но широкое использование формальной абстракции и шаблонов как для обнаружения, так и для генерации является новым. Базовая концептуальная архитектура всех инструментов Brownfield известна как VITA. VITA расшифровывается как Views, Inventory, Transformation и Artifacts (Виды, Инвентарь, Трансформация и Артефакты). В архитектуре VITA определение проблемы целевого пространства может поддерживаться в виде отдельных (хотя и связанных) "головоломных" знаний, известных как Виды. Основное преимущество Видов заключается в том, что они могут быть основаны практически на любом формальном инструменте. Brownfield не навязывает единый инструмент или язык в проблемном пространстве – основополагающий принцип заключается в том, что "головоломки" продолжают поддерживаться в их исходных формах и инструментах. Затем Виды объединяются и связываются в единый Инвентарь. Инвентарь затем используется с серией возможностей Трансформации для создания Артефактов, необходимых для решения. Виды могут быть импортированы из широкого спектра источников, включая UML, XML, DDL, электронные таблицы и т.д. Инструмент Analysis and Renovation Catalyst от IBM расширил эту возможность благодаря использованию формальных грамматик и абстрактных синтаксических деревьев, позволяющих анализировать и токенизировать практически любую программу и преобразовывать ее в Вид для включения в Инвентарь. Быстрый циклический характер процесса обнаружения, переработки, генерации и тестирования, используемого в этом подходе, позволяет итеративно совершенствовать решения с точки зрения их логических и физических определений по мере выявления все большего числа ограничений и уточнения архитектуры решения. Итеративная разработка Brownfield может позволить постепенное совершенствование логических и физических архитектур и инкрементное тестирование всего подхода, что приводит к ускорению разработки, повышению качества решения и снижению затрат на исправление дефектов. Brownfield также может использоваться для генерации документации по решению, обеспечивая ее актуальность и согласованность с различных точек зрения. Инвентарь, созданный в процессе Brownfield, может быть очень сложным, представляя собой взаимосвязанную многомерную семантическую сеть. Уровень детализации знаний в Инвентаре может быть очень высоким, подробным и взаимосвязанным. Подобные вещи трудно понять и могут создавать барьеры для коммуникации. Однако Brownfield решает эту проблему, абстрагируя понятия, используя "лучшее предположение" специалиста, используя известные шаблоны в своих Инвентарях для извлечения и вывода отношений более высокого уровня. Формальные абстракции позволяют преобразовать сложность Инвентаря в более простые, но при этом точные представления для облегчения понимания теми, кому необходимо понять проблемное пространство. Эти абстрагированные модели Инвентаря могут использоваться для автоматического создания многослойных архитектурных представлений в таких инструментах, как Second Life. Такие визуализации позволяют обмениваться сложной информацией и получать опыт от нескольких человек со всего мира в режиме реального времени. Это улучшает как понимание, так и ощущение единой команды.