3.9. ПОДХОДЫ ИССЛЕДОВАТЕЛЬСКОГО ПРОГРАММИРОВАНИЯ

3.9. ПОДХОДЫ ИССЛЕДОВАТЕЛЬСКОГО ПРОГРАММИРОВАНИЯ

Исследовательское программирование имеет следующие особенности (http://www.osp.ru/pcworld/2001/01/062.htm):

— разработчик ясно представляет направление поиска, но не знает заранее, как далеко он сможет продвинуться к цели;

— нет возможности предвидеть объем ресурсов для достижения того или иного результата;

— разработка не поддается детальному планированию, она ведется методом проб и ошибок;

— работа связана с конкретными исполнителями и отражает их личностные качества.

В основе исследовательского программирования в большей степени, чем в других подходах, лежит искусство.

Компьютерный дарвинизм. Название данного подхода было предложено Кеном Томпсоном (Ken Thompson). Подход основан на принципе восходящей разработки, когда система строится вокруг ключевых компонентов и программ, которые создаются на ранних стадиях проекта, а затем постоянно модифицируются. Все более крупные блоки собираются из ранее созданных мелких блоков.

Компьютерный дарвинизм представляет собой метод проб и ошибок, основанный на интенсивном тестировании, причем на любом этапе система должна работать, даже если это минимальная версия того, к чему стремятся разработчики. Естественный отбор оставит только самое жизнеспособное.

Подход состоит из трех основных видов работ:

• макетирование (прототипирование);

• тестирование;

• отладка.

Одной из интересных особенностей подхода является максимально возможное распараллеливание процессов тестирования и отладки.

ВЫВОДЫ

• Традиционно инженеры стремились, а некоторые из них добивались не снижая качества проектов, значительного сокращения сроков проектирования.

• Инженерный технологический подход определяется спецификой комбинации стадий и видов работ, ориентированной на разные классы программного обеспечения и на особенности коллектива разработчиков.

• Основные группы инженерных технологических подходов: подходы со слабой формализацией, строгие и гибкие (адаптивные) подходы.

• Ранние технологические подходы не используют явных технологий и их обычно применяют только для очень маленьких проектов.

• Каскадные технологические подходы задают некоторую последовательность выполнения видов работ, обычно изображаемую в виде каскада (водопада).

• Каркасные подходы представляют собой каркас для видов работ. Одним из ярких представителей каркасного подхода является рациональный унифицированный подход к выполнению работ, поддерживаемый САПР на основе программного продукта Rational Rose фирмы "Rational Software Corporation".

• Термин "генетический" в названии группы генетических технологических подходов связывается с происхождением программы и дисциплиной ее создания.

• Адаптивные технологические подходы были задуманы как подходы, поддерживающие изменения. Они только выигрывают от изменений, даже когда изменения происходят в них самих. Наиболее бурно развивающимся подходом этой группы является экстремальное программирование.

• Выбор оптимального инженерного технологического подхода обеспечивает сокращение сроков выполнения проекта без снижения качества проекта.

Контрольные вопросы

1. За счет чего инженеры добиваются резкого сокращения сроков выполнения проектов?

2. Какие известны основные группы инженерных технологических подходов?

3. Какой классификационный признак положен в основу разделения инженерных технологических подходов на основные группы?

4. Какие инженерные технологические подходы были развиты в последнее время?

5. В чем состоят преимущества и недостатки каскадно-возвратного подхода по сравнению с классическим каскадным подходом?

6. Какой вид работ отсутствует в технологии стерильного цеха?

7. В каких случаях разумно применять эволюционное прототипирование?

8. Какие две основные черты, присущие быстрым разработкам, являются базовыми при экстремальном программировании?

9. В чем состоит суть адаптивной разработки?