Любой проект имеет своё начало, но не всякий проект
успешно завершается. И в начале каждого проекта последовательно
отвечают на два вопроса: что и как надо делать. Существует ещё один
интересный вопрос: зачем надо делать. Но, поскольку здесь обсуждается
проектирование, то можно считать, что на данный вопрос уже найдены
убедительные ответы. Для ответа на вопрос «что надо делать?» проводят
анализ предметной области, вопрос «как надо делать?» соответствует
началу стадии построения модели предметной области или стадии дизайна.
Несомненно, что стадии анализа и дизайна тесно связаны друг с другом.
Анализ предметной области, как правило, происходит на основе наших
представлений о тех или иных моделях (оценка степени применимости
известных шаблонов к конкретной предметной области). Если существуют
семантически близкие модели, то велика вероятность их использования
при создании новой системы. Такой подход можно назвать эволюционным.
Он имеет как несомненные достоинства, так и столь же несомненные
недостатки. Достоинства состоят в том, что:
- легче и быстрее достигается положительный результат, поскольку
прототип модели уже апробирован;
- можно точнее оценить затраты, сроки и требуемые ресурсы.
К недостаткам такого подхода относится то, что не
так часто можно найти хороший прототип для конкретной предметной
области. Но отсутствие хорошего прототипа заставляет использовать
малоподходящие в данном конкретном случае прототипы. Как следствие,
прототипы подвергаются существенной модификации и усложняются, их
функционал вырастает, но работоспособность снижается. И нередко
можно видеть очень сложные системы, которые могут делать очень много,
но то, что от них требуется в первую очередь, они делают не очень
хорошо. Предел использования такой технологии очевиден: прототипы,
сами по себе, становятся столь сложны и неустойчивы, что их использование
создаёт больше трудностей в проекте, чем разработка новых моделей.
Разработка новых моделей обычно производится в случаях,
когда нет подходящего прототипа или требования к проекту исключают
возможность использования прототипов. Этот путь сопряжён с гораздо
более высокой степенью риска, но и отдача от него может быть существенно
более весомой. Часто можно наблюдать, как эволюционный путь развития
со временем заводит в тупик и требуется глубокое переосмысление
основ, чтобы выйти на новую ветвь развития. Например, в работе «Программа
исследований в области баз данных на следующее десятилетие. Асиломарский
отчет о направлениях исследований в области баз данных» говорится:
«Дело в том, что совершенствование технологий осуществляется в настоящее
время в рамках так называемых исследований "delta-X". Бесспорно,
что подавляющее число исследований происходит пошаговым образом,
когда каждый последующий шаг основывается на результатах предыдущих.
Однако исследования "delta-X" отличаются тем, что сосредотачиваются
на сиюминутной цели, "улучшении" некоторой уже широко известной
идеи X. Зачастую определяющая идея X уже реализована в программных
продуктах и поэтому исследования такого рода могут вестись в лабораториях
коммерческих фирм и силами начинающих компаний, поддерживаемых совместным
капиталом.
Сообществу исследователей баз данных необходимо воздержаться
от работ типа "delta-X" и направить все усилия на изучение механизмов
баз данных». Под данной работой стоят подписи весьма известных и
именитых исследователей в области теории баз данных, таких как,
Фил Бернштейн, Майкл Броди, Стефано Сери, Дэвид Девитт, Майк Франклин,
Гектор Гарсия-Молина, Джим Грей, Джерри Хелд, Джо Хеллерштейн, Х.В.
Джагадиш, Майкл Леск, Дейв Майер, Джефф Наутон, Гамид Пиранеш, Майк
Стоунбрейкер, Джефф Ульман.
|