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. В чем состоит суть адаптивной разработки?
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
4.2. Некоторые подходы к отладке распределенных приложений
4.2. Некоторые подходы к отладке распределенных приложений При отладке распределенного приложения в целом нужно представлять общее его состояние, которое включает структуры данных, распределенные по нескольким платформам. Кроме того, необходимо иметь протокол
1.6. Новаторские подходы хакеров – руткиты (rootkits)
1.6. Новаторские подходы хакеров – руткиты (rootkits) Если троянцы, о которых говорилось выше, можно обнаружить с помощью системных утилит, то представители этого класса вычисляются только с помощью специальных утилит.Руткиты представляют собой более продвинутый вариант
Лекция 4. Подходы к повторному использованию
Лекция 4. Подходы к повторному использованию В этой лекции будут рассмотрены некоторые из проблем, направленных на широкомасштабное внедрение повторного использования программных компонентов. Цели повторного использования "Последуйте примеру проектирования
Инициализация: подходы языков программирования
Инициализация: подходы языков программирования Проблема, решаемая в этой лекции, - это общая проблема языков программирования: как работать с глобальными константами и разделяемыми объектами, в частности, как выполнять их инициализацию в библиотеках компонентов?Для
Глава 3 ОСНОВНЫЕ ИНЖЕНЕРНЫЕ ПОДХОДЫ К СОЗДАНИЮ ПРОГРАММ
Глава 3 ОСНОВНЫЕ ИНЖЕНЕРНЫЕ ПОДХОДЫ К СОЗДАНИЮ ПРОГРАММ 3.1. ОСНОВНЫЕ СВЕДЕНИЯ Традиционно инженеры стремились, а некоторые из них, не снижая качества проектов, добивались значительного сокращения сроков проектирования. В начале Великой Отечественной войны начальник
3.2. РАННИЕ ТЕХНОЛОГИЧЕСКИЕ ПОДХОДЫ
3.2. РАННИЕ ТЕХНОЛОГИЧЕСКИЕ ПОДХОДЫ Ранние технологические подходы не используют явных технологий, поэтому их применяют только для очень маленьких проектов, как правило, завершающихся созданием демонстрационного прототипа. В качестве примера подхода, не использующего
3.3. КАСКАДНЫЕ ТЕХНОЛОГИЧЕСКИЕ ПОДХОДЫ
3.3. КАСКАДНЫЕ ТЕХНОЛОГИЧЕСКИЕ ПОДХОДЫ Каскадные технологические подходы задают некоторую последовательность выполнения видов работ, обычно изображаемую в виде каскада. Иногда их называют подходами на основе модели водопада.Классический каскадный подход (от англ. pure
3.4. КАРКАСНЫЕ ТЕХНОЛОГИЧЕСКИЕ ПОДХОДЫ
3.4. КАРКАСНЫЕ ТЕХНОЛОГИЧЕСКИЕ ПОДХОДЫ Каркасные подходы представляют собой каркас для видов работ и включают их огромное количество.Рациональный унифицированный подход к выполнению работ(rational unified process-RUP), изложенный подробно в десятой главе данного учебника, вобрал в
3.5. ГЕНЕТИЧЕСКИЕ ТЕХНОЛОГИЧЕСКИЕ ПОДХОДЫ
3.5. ГЕНЕТИЧЕСКИЕ ТЕХНОЛОГИЧЕСКИЕ ПОДХОДЫ Термин "генетический" в названии этой группы подходов связан с происхождением программы и дисциплиной ее создания.Синтезирующее программирование предполагает синтез программы по ее спецификации. В отличие от программы,
3.6. ПОДХОДЫ НА ОСНОВЕ ФОРМАЛЬНЫХ ПРЕОБРАЗОВАНИЙ
3.6. ПОДХОДЫ НА ОСНОВЕ ФОРМАЛЬНЫХ ПРЕОБРАЗОВАНИЙ Эта группа подходов содержит максимально формальные требования к виду работ создания программного обеспечения.Технология стерильного цеха. Основные идеи технологии стерильного цеха (cleanroom process model) были предложены
3.7. РАННИЕ ПОДХОДЫ БЫСТРОЙ РАЗРАБОТКИ
3.7. РАННИЕ ПОДХОДЫ БЫСТРОЙ РАЗРАБОТКИ Развитием и одновременно альтернативой каскадных подходов является группа подходов быстрой разработки. Все эти подходы объединяют следующие основные черты:• итерационную разработку прототипа;• тесное взаимодействие с
3.8. АДАПТИВНЫЕ ТЕХНОЛОГИЧЕСКИЕ ПОДХОДЫ
3.8. АДАПТИВНЫЕ ТЕХНОЛОГИЧЕСКИЕ ПОДХОДЫ Адаптивные технологические подходы были задуманы как подходы, поддерживающие изменения. Они только выигрывают от изменений, даже когда изменения происходят в них самих. Данные подходы ориентированы на человека, а не на процесс. Во
11.4. ПОДХОДЫ К ПРОЕКТИРОВАНИЮ ТЕСТОВ
11.4. ПОДХОДЫ К ПРОЕКТИРОВАНИЮ ТЕСТОВ Рассмотрим два самых противоположных подхода к проектированию тестов.Сторонник первого подхода ориентируется только на стратегию тестирования, называемую стратегией "черного ящика", тестированием с управлением по данным или
Защита СМБ: подходы и принципы
Защита СМБ: подходы и принципы Все больше разработчиков средств безопасности применяют так называемые «облачные» подходы, используя для контроля защищаемой системы данные, на лету предоставляемые онлайновыми системами накопления и классификации угроз. Это могут быть