Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по технологии программирования / Качество программного продукта.doc
Скачиваний:
70
Добавлен:
02.05.2014
Размер:
68.1 Кб
Скачать

Принципы модульного программирования.

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

Что в теории понимается под модулем? Модуль – это замкнутая программа, которую можно вызвать из другого модуля и самостоятельно откомпилировать. Другое определение: программный модуль – это любой фрагмент описания процесса, оформляемый как самостоятельный программный продукт, пригодный для использования в описаниях процесса.

Модуль – это программа, обладающая тремя основными атрибутами:

  1. он выполняет одну или несколько функций;

  2. модуль реализует некоторую логику (алгоритм).

  3. используется в одном или нескольких контекстах.

При этом функция – это то, что делает модуль, а не то, как он это делает. А вот логика характеризует, как модуль выполняет свои функции. Контекст описывает конкретное применение.

Например: модуль с функцией “удалить пробелы из литерной строки” может использоваться в контексте “сжать сообщение для телеобработки”.

Или модуль, вычисляющий сумму:

может использоваться в контекстах “вычисление зарплаты всех сотрудников” или “определение пробега всех автомобилей”. В этом случае содержательный смысл слагаемых ai различный.

Основная причина по которой разрабатываемое ПО разбивается на модули – борьба со сложностью ПО.

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

а) усиление внутренних связей в каждом модуле (иначе принцип называется повышением прочности модуля);

б) ослабление взаимосвязи между модулями (иначе этот принцип называется ослаблением сцепления модулей).

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

Для качественной характеристики модулей введены 7 классов прочности модулей и 5 видов сцепления модулей. Класс прочности является мерой связи предложений внутри модуля. Сцепление модулей – это мера зависимости между модулями.

Классы прочности модулей

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

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

1. Прочность по совпадению.

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

Например модуль вычисления суммы , может использоваться в разных контекстах, и в зависимости от контекста изменяется и смысл связей между предложениями модуля.

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

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

Пример: библиотека стандартных программ, реализующих численные методы.

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

3. Прочность по классу – модуль выполняет несколько функций, отнесенных разработчиком к одному классу.

Например: autoexec.bat.

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

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

4. Процедурно-прочный модуль – выполняет несколько функций относящихся к одной функциональной процедуре решения задачи. Здесь единственная проблема состоит в том, что фрагменты программы, относящиеся к одной функции, могут быть не последовательными в тексте модуля,  усложняются изменения в модуле.

Тут вы можете оставить комментарий к выбранному абзацу или сообщить об ошибке.

Оставленные комментарии видны всем.