инфа экзамен / крутые билеты по инфе / 17
.docx17. Модульный принцип разработки алгоритмов и программ. Восходящий и нисходящий способ проектирования.
Как бы ни была сложна задача, блок – схема её алгоритма всегда может быть представлена с помощью конечного числа управляющих структур (последовательность, ветвление, циклы). Это является основой для структурного программирования. Следующим этапом в развитии структурного программирования является модульное программирование. Основная идея модульного программирования заключается в том, что алгоритм может быть представлен в виде отдельных фрагментов, или модулей. Поэтому разработка программы с помощью этого способа идёт по модулям, с которыми можно отдельно работать: налаживать, разрабатывать, тестировать. Такой принцип очень удобен для разработки сложных программ, требующих труда группы программистов.
При использовании восходящего подхода разработка программы идёт с самого низкого уровня. Когда исходящий компонент готов, переходят к компоненту более высокого уровня, и так далее до высшего уровня. В ходе разработки все компоненты программы собираются, иногда компоненты низких уровней попадают в библиотеки. Минусы этого подхода:
-
Увеличение вероятности несогласованности компонентов вследствие неполноты спецификаций;
-
Наличие издержек на проектирование и реализацию тестирующих программ, которые нельзя преобразовать в компоненты;
-
Позднее проектирование интерфейса, а соответственно невозможность продемонстрировать его заказчику для уточнения спецификаций и т.д.
Когда мы создаем программы с помощью нисходящего подхода, мы разрабатываем программу с самого высокого уровня, переходя на более низкие в процессе разработки («сверху-вниз»). При этом мы можем тестировать и отлаживать уже готовую часть программы, используя взамен компонентов низкого уровня специально подготовленные ‘’заглушки” (специально разработанные отладочные модули). При использовании нисходящего подхода применяют иерархический, операционный и комбинированный методы определения последовательности проектирования и реализации элементов.
Иерархический – разработка строго по уровням. (минусы – большое кол-во заглушек, затруднение с распределением чел.ресурсов в конце работы над проектом)
Операционный – связывает последовательность разработки модулей с порядком их выполнения при запуске программы. (минусы – проблема с людьми в начале работы, порядок выполнения модулей может зависеть от данных)
Комбинированный - учитывает следующие факторы, влияющие на последовательность разработки:
-
Достижимость модуля-наличие всех модулей в цепочке вызова данного модуля;
-
Зависимость по даныым – модули,формирующие некоторые данные,должны создаваться раньше обрабатывающих.
-
Обеспечение возможности выдачи результатов – модули вывода результатов должны создаваться раньше обрабатывающих.
-
Готовность вспомогательных модулей (закрытия файлов,завершения программ)
-
Наличие необходимых ресурсов
Нисходящий подход обеспечивает –
-
Максимально полное определение спецификаций проектируемого компонента и согласованность компонентов между собой.
-
Раннее определение интерфейса пользователя, демонстрация которого заказчику позволяет уточнить требования к создаваемому программному обеспечению.
-
Возможность нисходящего тестирования и комплексной отладки.
