Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Ответы на экзаменационные билеты_2 / Основ. стратегии проектир. алгоритмов

.txt
Скачиваний:
15
Добавлен:
28.06.2014
Размер:
2.66 Кб
Скачать
Существуют две основные стратегии проектирования алгоритмов: восходящее ("снизу-вверх") и нисходящее ("сверху-вниз") проектирование.
Стратегия "снизу-вверх" основана на принципе наименьших усилий и кажется более естественной. Смысл ее заключается в следующем.
Выделяются те части алгоритма, которые уже можно программировать, и о которых известно, что они точно "понадобятся". Эти части программируются как отдельные модули и отлаживаются. Потом из них, как из строительных блоков, собираются программы-блоки более высокого уровня проектирования, и, наконец, вся программа. Число таких уровней зависит от размера и сложности задачи.
Привлекательность восходящего проектирования заключается в том, что не нужно думать обо всей программной системе и соединении модулей до тех пор, пока этого не протребуется. Наиболее существенный недостаток такой стратегии известен как "проблема интерфейса": при сборке модули системы могут оказаться несогласованными по ряду крупных или мелких деталей. Например, запрограммированный (и локально отлаженный) математический метод не удовлетворяет некоторым требованиям задачи (точности, времени выполнения и т.д.). Несогласование модулей обнаруживается к концу работы над системой, когда она практически завершена. Это откладывает завершение работы на неопределенный срок и препятствует плановой работе над системой.
Альтернативной стратегией является стратегия проектирования алгоритмов "сверху-вниз". Еще на заре программирования эта стратегия использовалась интуитивно суперпрограммистами, являясь залогом их успешной работы. В стратегии заключена идея постепенного раскрытия деталей проектируемой программы по мере движения от общей цели, сформулированной на самом высоком уровне в условии задачи, к уровню объектов, выраженных в терминах "понятных машине".
- Преимущества нисходящей стратегии:
1. Дает лучшее понимание объектов проектирования, так как на каждом шаге выделяются основные понятия, а детали "упрятываются".
2. Делает более простым процесс модификации программы и сокращает
время отладки.
3. Упрощает доказательство корректности программы.
- Трудности нисходящей стратегии.
1. На ранних стадиях должна быть проделана интеллектуальная работа главным программистом, прежде чем программа будет распараллеливаться для всех программистов проекта.
2. Имеется специфика в отладке "сверху-вниз", когда приходится отлаживать программные модули, полностью не завершенные.

Реально процесс проектирования не является простой схемой "сверху-вниз". Иногда приходится вернуться к предыдущему уровню и произвести коррекцию проекта. Умелое сочетание обеих стратегий и составляет искусство проектирования