Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпорки [3535 вопросов].doc
Скачиваний:
67
Добавлен:
15.06.2014
Размер:
887.81 Кб
Скачать

25. Модульное проектирование программ. Признаки модульности программы. Достоинства и недостатки модульности. Классификация методов проектирования модульных программ.

Под модуляцией (модуляризацией) понимается разделение программы на части по некоторым установленным правилам. Модульная программа - это программа, в которой любую часть логической структуры можно изменить, не вызывая изменений в других частях программы.

Признаки модульности программы:

  1. Программа состоит из модулей.

  2. Независимость модулей. Это значит, что модуль можно изменять или модифицировать без последствий в других модулях.

  3. Условие «один вход - один выход». Модульная программа должна состоять из модулей, имеющих одну точку входа и одну точку выхода. В общем случае может быть и более чем один вход, но важно, чтобы точки входов были строго определены и другие модули не могли входить в данный модуль в произвольной точке.

Дост-ва: 1) Упрощение разработки и реализации программ. 2) Облегчение чтения программ. 3) Упрощения настройки и модификации программ. 4) Облегчение работы с данными, имеющими сложную структуру. 5) Исключение чрезмерной детализации алгоритмов.

Недост-ки: 1) Модульность требует большей дополнительной работы программиста и определенных навыков проектирования программ.

  1. Модульный подход в среднем требует большего времени работы центрального процессора (в среднем на 5 - 10%) за счет времени обращения к модулям.

  2. Модульность программы приводит к увеличению объема программ (в среднем на 5 - 10%).

Методы дел на 3 группы:

  1. Методы нисходящего проектирования.

  2. Методы расширения ядра.

  3. Методы восходящего проектирования.

На практике обычно применяются различные сочетания этих методов.

26. Нисходящее проектирование программ и его стратегии. Стратегия, основанная на использовании псевдокода. Достоинства и недостатки. Пример.

Основное назначение нисходящего проектирования - служить средством разбиения большой задачи на меньшие подзадачи так, чтобы каждую задачу можно было рассматривать независимо.

Суть метода: На начальном шаге в соответствии с назначением всей программы продумывается ее общая структура, без детальной проработки ее отдельных частей. Затем выделяются функц треб-я более низкого уровня. В соответ с ними разраб отдел компоненты, не детализ на предыд шаге. Эти действия явл рекурс. Стратегии на кот основана реализ-я:

  1. пошаговое уточнение (данная стратегия разработана Е. Дейкстрой)

  1. анализ сообщений (данная стратегия базируется на работах группы авторов: Иодана, Константайна, Мейерса).

Эти стратегии отличаются способами определения начальных спецификаций требований, методами разбиения задачи на части и правилами записи (нотациями), положенными в основу проектирования.

При пошаговом уточнении на каждом следующем этапе декомпозиции детализируются программные компоненты очередного более низкого уровня. При этом результаты каждого этапа являются уточнением результатов предыдущего этапа лишь с небольшими изменениями.

При пошаговом уточнении на каждом следующем этапе декомпозиции детализируются программные компоненты очередного более низкого уровня. При этом результаты каждого этапа являются уточнением результатов предыдущего этапа лишь с небольшими изменениями.

Существуют различные способы реализации пошагового уточнения. В данном учебном пособии рассмотрены два из них:

1) кодирование программы с помощью псевдокода и управляющих конструкций структурного программирования;

2) использование комментариев для описания обработки данных. Пошаговое уточнение требует, чтобы взаимное расположение строк

программы обеспечивало читабельность всей программы.

Преимущества метода пошагового уточнения:

  1. Основное внимание при его использовании обращается на проектирование корректной структуры программ, а не на ее детализацию.

  2. Так как каждый последующий этап является уточнением предыдущего лишь с небольшими изменениями, то легко может быть выполнена проверка корректности процесса разработки на всех этапах.

Недостаток метода пошагового уточнения: на поздних этапах проектирования может обнаружиться необходимость в структурных изменениях, требующих пересмотра более ранних решений.

Использ псевдокода. При использ данного способа разбиение прог на модули осущ эвристическим способом. На каждом этапе проект по возможности не уточняются операции с данными . Но выбор необходимых управляющих конструкций осуществляется на каждом этапе. На этапе, когда принимается решение о прекращении дальнейшего уточнения, оставшиеся неопределенными подфункции становятся вызываемыми модулями (или подпрограммами), а проектируемый модуль – управляющим модулем.

Пример.

Пусть программа обрабатывает файл дат. Необх отделить правильные даты от неправильных, отсортировать правильные даты, перенести летние и зимние даты в выходной файл и вывести исправленные даты.

Первый этап пошагового уточнения.Задается заголовок программы, соответствующий ее основной функции.

Рrogram Обработка_дат

Второй этап пошагового уточнения

Определяются основные действия.

Program Обработка_дат;

Отделить_ правильные_даты_от_ неправильных {*}

Сортировать_правильные_даты;

Выделить_зимние_и_летние_даты;

Обработать_неправильные_даты;

EndРrogram.

Третий этап пошагового уточнения.

Детализация фрагмента *.

Program Обработка_дат;

While не_конец_входного_файла Do

Begin

Прочитать_дату;

Проанализировать_правил_даты;

End

Сортировать_правильные_даты;

Выделить_зимние_и_летние_даты;

Обработать_неправильные_даты;

EndРrogram.