Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Основы технологии разработки программных продуктов



Назначение и составляющие структурного

ПРОГРАММИРОВАНИЯ

Одним из методов, улучшающих программу, является структурное программирование. Структурное програм­мирование позволяет организовать процесс проектирова­ния и кодирования так, чтобы избежать большинства ошибок и обнаружить те, которые уже допущены. Струк­турное программирование сосредотачивается на логике программы и включает 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; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.012 с.)
Главная | Случайная страница | Обратная связь