Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект.doc
Скачиваний:
148
Добавлен:
01.05.2014
Размер:
606.21 Кб
Скачать

Анализ сложности программных средств с модульной организацией

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

Сложность программы

Время разработки

В этом соотношении не учитывается интерфейс между модулями.

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

Свойства модульной организации

1) Связность модуля – мера зависимости внутренних частей модуля друг от друга. Чем выше связность, тем более модуль независим и лучше спроектирован. Связность элементов модуля делится на несколько уровней, характеризуемых силой связности (СС):

1) СС=0. Связность по совпадению – в модуле отсутствуют какие-либо связи и его элементы объединены случайно

2) СС=1. Логическая связность – модуль составлен из функционально подобных элементов, выполнение которых никак не упорядочено

3) СС=3. Временная связность – в состав модуля включены элементы, которые одновременно должны использоваться в некоторый отрезок времени выполнения программы. Недостаток: такие модули сильно чувствительны к внесению изменений и достаточно сложна их связь с другими модулями

4) СС=5. Процедурная связность – элементы модуля независимы по данным, но зависимы по порядку выполнения

5) СС=7. Коммутативная связность – части модуля работают с одной структурой данных, но обращаются к ней в произвольном порядке

6) СС=9. Информационная связность – выходные данные одной части модуля являются входными данными другой части, выполняемой следующей по порядку

7) СС=10. Функциональная связность – все элементы модуля используются для реализации одной функции

Модули, спроектированные по 5-7 – «черные ящики», по 1-4 – «белые ящики», 4 – граница.

2) Сцепление модулей друг с другом – мера взаимозависимости модулей по данным или управлению. Внешняя характеристика. В хорошо спроектированной программе сцепление должно быть как можно меньше.

1) СЦ=1. По данным – модули обмениваются скалярными параметрами

2) СЦ=3. По образцу – параметрами, которыми обмениваются модули являются структурами данных

3) СЦ=4. По управлению – один модуль управляет работой другого модуля с помощью специальных данных: флагов и переключателей

4) СЦ=5. По внешним ссылкам – модули ссылаются на некоторые глобальные скалярные элементы данных

5) СЦ=7. По общей области – модули ссылаются на глобальную структуру данных

6) СЦ=9. По содержанию – в одном модуле имеется ссылка на код другого модуля не через точку входа

Оценка сложности

- составляющая размерной сложности модуля

1 – число входов модуля

2 – число структур данных, которое использует модуль

3 – количество вызовов других модулей из данного

4 – количество структур данных, обновляемых данным модулем

Понятие корректности программ

Под корректностью обычно понимается:

1) соответствие программы некоторому эталону или совокупности эталонных правил. Достаточно полным эталоном считается программная спецификация

2) отсутствие ошибок в программе по отношению к цели ее разработки

Корректность должна обеспечиваться на допустимых наборах данных.

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

Корректность – статическое свойство, проверка на корректность может не требовать ее выполнения