Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Основы технологии разработки программных продуктов
Назначение и составляющие структурного ПРОГРАММИРОВАНИЯ Одним из методов, улучшающих программу, является структурное программирование. Структурное программирование позволяет организовать процесс проектирования и кодирования так, чтобы избежать большинства ошибок и обнаружить те, которые уже допущены. Структурное программирование сосредотачивается на логике программы и включает 3 составляющих: 1. Модульное программирование. 2. Структурное кодирование. 3. Проектирование сверху вниз. Разберем более подробно каждую из составляющих. Модульное программирование Модуль I. Модульное программирование — это процесс разделения программы на логические части. Если проведено проектирование сверху вниз, то программа, естественно, разбивается на модули. При этом преследуются две цели: 1) необходимо, чтобы модуль был правильным и не зависел от контекста, в котором он будет использоваться; 2) необходимо, чтобы из различных модулей можно было составлять программы без знаний о внутренней работе модуля. В качестве примера можно привести программы расчета стандартных математических функций. Функция sinx может быть использована в любом месте программы (не зависит от контекста, в котором она используется), программисту нет необходимости знать, какие именно методы используются для расчета sin*. Короткие модули предпочтительней длинных. Желательно, чтобы размер модуля не превышал 60 строк. С таким модулем легко работать. Его удобно просматривать на терминале вычислительной машины, код программы помещается на один лист. Следует стремиться к независимости модулей друг от друга. Каждый модуль должен иметь свое назначение, которое отличается от назначения других модулей. Это должен быть замкнутый блок с точно определенным входом и выходом. Тесно связанные элементы необходимо помещать в один модуль, а несвязанные — в разные. Если изменения в одном модуле воздействуют на другие модули, это явление называется волновым эффектом. Если модули независимы, волновой эффект сводится к минимуму. Т.е. уменьшается количество путей, по которым ошибки из одного модуля могут попасть в другой модуль. Использование модулей приводит к уменьшению сложности. Модульную программу легче написать и протестировать. На ЯП Pascal модули реализуют при помощи процедур и функций, в С — при помощи функций. Структурное кодирование Структурное кодирование предполагает использование управляющих конструкций — условного оператора, циклов (с предусловием, с постусловием, с параметром).
Оператор безусловного перехода должен использоваться как можно реже, т.к. программы с оператором безусловного перехода трудно отлаживать и они часто имеют побочные эффекты. Любая программа с оператором безусловного перехода может быть переписана при помощи условного оператора или оператора цикла. Проектирование сверху вниз Проектирование сверху вниз имеет иерархическую структуру и начинается с краткого обзора задачи. Затем задача разбивается на несколько более мелких подзадач. Подзадачи, в свою очередь, тоже могут быть разбиты на подзадачи. На каждом шаге необходимо выявить основные функции, которые будет выполнять подзадача. Процесс разбиения продолжается до тех пор, пока подзадачи не станут настолько простыми, что каждой из них будет соответствовать один модуль. Пример — проектирование текстового редактора. Шаг 1. Текстовый редактор: позволяет набирать и редактировать текст, сохранять его на диске и загружать с диска. Шаг 2. Разобьем задачу на подзадачи: • Набор текста: позволяет набирать текст с клавиатуры, реагирует на иажатия функциональных клавиш • Работа с файлами: позволяет работать с файлами на диске Шаг 3. Разобьем задачу «Набор текста» на 3 подзадачи: • Рисование экрана программы • Анализ нажатия клавиш • Реагирование на нажатие клавиш Шаг 4. Разобьем задачу «Работа с файлами» на две подзадачи: • Запись экрана в текстовый файл • Чтение текстового файла Шаг 5. Разобьем задачу «Реагирование на нажатие клавиш» на 2 подзадачи: • Реакция на нажатие символьных клавиш • Реакция на нажатие функциональных клавиш Шаг 6. Разобьем задачу «Реакция на нажатие функциональных клавиш» на подзадачи:
• Реакция на нажатие Enter • Реакция на нажатие Backspace • Реакция на нажатие ESC В результате программа «Текстовый редактор» разбивается на несколько модулей. Модуль II. Рисование экрана программы. Модуль III. Анализ нажатия клавиш. Модуль IV. Реакция на нажатие символьных клавиш. Модуль V. Реакция на нажатие Enter. Модуль VI. Реакция на нажатие Backspace. Модуль VII. Реакция на нажатие ESC. Модуль VIII. Запись экрана в текстовый файл. Модуль IX. Чтение текстового файла. Популярное:
|
Последнее изменение этой страницы: 2016-06-04; Просмотров: 673; Нарушение авторского права страницы