Технология модульного проектирования систем

Технология модульного программирования основывается на понятии модуля, который осуществляет преобразование множества исходных данных X во множество выходных данных Y и задается в виде отображения:

На множества X, Y и отображение М накладывается ряд ограничений и дополнительных условий, позволяющих отделить модуль как самостоятельный программный элемент. Модуль обладает множеством свойств и характеристик. Эти свойства проявляются на трех основных процессах разработки системы: проектировании, разработке и выполнении[1].

Проектирование ПС включает определение следующих свойств модулей:

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

Процесс разработки модулей основан на следующих свойствах:

  • • описание модулей па одном из ЯП и представление в виде КПИ;
  • • обязательное описание характеристик модуля в паспорте;
  • • задание ограничений на размер модуля.

Процесс выполнения ПС основывается на следующих требованиях к свойствам характеристик модуля:

  • • возможность использования КПИ в различных точках вариативности ПС;
  • • передача данных между модулями через вызов CALL;
  • • изменение передаваемых данных и др.

Не все свойства одинаково важны в процессе разработки ПС. Однако для модульного проектирования характерны две тенденции — усиление внутренних связей в модуле и ослабление внешних связей. Хорошо спроектированный модуль обладает значительно более сильными внутренними связями, чем внешними. При выполнении этого условия процесс сборки модулей можно рассматривать как сочетание неделимых программных единиц с определенными свойствами без учета их внутренней структуры. С учетом этого выделены свойства модулей, наиболее важные для процесса сборки:

  • 1) логическая законченность процесса проектирования;
  • 2) заменяемость отдельного модуля в ПС;
  • 3) возврат управления вызывающему модулю;
  • 4) обращение одного модуля к другим;
  • 5) раздельная компиляция внешнего модуля;
  • 6) использование модуля в различных точках ПС;
  • 7) спецификация паспорта и текста модуля в ЯП.

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

Модулем в рамках метода модульного программирования называется программный объект, характеризующийся свойствами 1—7 и реализующий отдельную функцию Это определение задает границы применения понятия «модуль».

Определение типов связей модулей

Под типом связи будем понимать: 1) связь по управлению; 2) связь по данным.

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

Среда ЯП определяется как совокупность программных средств окружения модулей с ЯП, включающих:

  • • системные средства процессов выполнения библиотечных программ связи с ОС, вычисление стандартных функций, обработки внутренних структур данных и т.д.;
  • • внутренние структуры данных, точки передачи и управления.

Механизм вызова через CALL в ЯП.

Связь по управлению описывается следующей функцией:

СР = К{2,

где К{ коэффициент механизма вызова; К2 коэффициент перехода от среды ЯП вызывающего модуля к среде ЯП вызываемого.

Для стандартного механизма вызова Кх = 1, для нестандартного К{ = + а (а > 0). Здесь а зависит от количества отличных от стандарта характеристик вызова.

К характеристикам вызова относятся: способ определения точки входа в вызываемый модуль; механизм передачи управления; формирование адреса возврата в вызывающий модуль; доступ к списку параметров; метод сохранения и восстановления регистров вызывающего модуля.

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

Если вызывающий и вызываемый модули написаны на одном ЯП, то К2 = 0. Для остальных случаев К2 > 0.

2. Связь но данным между модулями. Различают регулярную и нерегулярную связь. Регулярная характеризуется целенаправленным обменом определенного множества данных при каждой активизации вызываемого модуля с помощью оператора вызова CALL. Нерегулярная — непостоянством обмениваемых данных через посредников.

К этому типу связи относится обмен данными с глобальными именами или внешними файлами. Эта связь характеризует сложность ПС, описываемую следующей функцией:

где Kj — весовой коэффициент для i-го параметра; F(Xj) — функция количества элементов простых типов для параметра хг

Коэффициенты К{ = 1 — для простых переменных и Kt> 1 — для сложных ТД. F(Xj) = 1, если Xj — простая переменная, и F(Xj) > 1 — для сложных ТД. Необходимо отметить, что в формулу (1.1) входят данные, принадлежащие к регулярной и нерегулярной информационной связи. Определение простых и сложных ТД будет приведено ниже.

  • [1] См.: Лаврищева Е. М, Грищенко В. Н. Связь разноязыковых модулей в ОС ЕС. — 1982,136 с.
 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ     След >