Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Tekhnologia_programmirovania_-_v2_1.doc
Скачиваний:
3
Добавлен:
01.04.2025
Размер:
191 Кб
Скачать
☆
  1. Модульное программирование. Характеристики модуля (связность, сцепление, сложность)

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

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

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

1) модуль вызывается на выполнение вышестоящим по иерархии модулем и, закончив работу, возвращает ему управление;

2) принятие основных решений в алгоритме выносится на максимально высокий по иерархии уровень;

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

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

Например, при разработке СУБД используются следующие программные модули:

1) экранные формы ввода и/или редактирования  информации базы данных;

2) отчеты;

3) макросы;

4) стандартные средства для обработки информации;

5) меню для выбора функции обработки и др.

Связность модуля – это мера зависимости его частей (внутренняя характеристика модуля).

Типы связности:

(сбоку возможность изменения, внутр. связи)

1)      Случайная (по совпадению) – в модуле отсутствуют явно выраженные внутренние связи. СС=0 -- --

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

3)      Временная – части модуля не связаны, но необходимы в один и тот, же период работы системы. СС=3 -- --

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

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

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

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

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

Типы сцепления: (в лекциях к этому еще и картинки есть)

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

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

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

4) Сцепления по внешним ссылкам

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

6)      Сцепление по содержимому – модуль содержит обращения к внутренним компонентам другого (передает управление внутрь, читает и/или изменяет внутренние данные или сами коды). СЦ=9

Рутинность модуля - это зависимость модуля от своей собственной предыстории (чем меньше, тем лучше)

Сложность модуля

Мера длины модуля

N=n₁log₂(n₁)+n₂log₂(n₂)

Количество операторов-n₁

Количество операндов-n₂

V=N*log₂(n₁+n₂)

V(G)=E-N+2

V(G)- число вершин в дереве,представл. стр-ру прогр. Системы

E- число дуг

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]