ГОСТ Р ИСО/МЭК 15408-1—2012
ментариями выполняемых операторов и подобные единицы измерений. Стандарты программирования являются
полезным инструментарием при генерации кода, который является более простым для понимания.
Семейство «Внутренняя структура ОБО* (ADVJNT) требует проведения анализа сложности всех компо
нентов. Ожидается, что разработчик обеспечит основание для утверждений о достаточном сокращении сложно
сти. Это основание может включать стандарты программирования, используемые разработчиком, и свидетельство
того, что все модули удовлетворяют конкретному стандарту (или. что имеются некоторые исключения, которые
логически обоснованы аргументами разработки программного обеспечения). Оно также может включать результа
ты использования инструментария для определения характеристик исходного текста, или может включать другие
основания, которые разработчик находит соответствующими.
3.2.7 связанность (coupling): Способ и степень взаимозависимости программных модулей.
[IEEE Std 610.12— 1990]
П р и м е ч а н и е — Типы связанности включают: связанность по вызову, связанность по общей области,
связанность по содержимому. Эти типы связанности охарактеризованы ниже.
3.2.8 связанность по вызову (call coupling): Взаимосвязь между двумя модулями, взаимодей
ствующими строго через вызовы их документированных функций.
П р и м е ч а н и е — Примерами связанности по вызову являются связанность по данным, связанность
по образцу, связанность по управлению.
3.2.9 связанность по вызову (по данным) (call coupling <data>): Взаимосвязь между двумя мо
дулями. взаимодействующими строго через вызовы параметров, которые представляют собой отдель
ные элементы данных.
П р и м е ч а н и е — См. также «связанность по вызову» (3.2.8).
3.2.10 связанность по вызову (по образцу) (call coupling <stamp>): Взаимосвязь между двумя
модулями, взаимодействующими через вызовы параметров, которые включают в себя составные поля
или имеют значительную внутреннюю структуру.
П р и м е ч а н и е — См. также «связанность по вызову» (3.2.8).
3.2.11 связанность по вызову (по управлению) (call coupling <control>): Взаимосвязь между
двумя модулями, когда один передает информацию, предназначенную для воздействия на внутреннюю
логику другого.
П р и м е ч а н и е — См. также «связанность по вызову» (3.2.8).
3.2.12 связанность по общей области (common coupling): Взаимосвязь между двумя модулями,
разделяющими общую область данных или другой общий ресурс системы.
П р и м е ч а н и е — Наличие глобальных переменных указывает на то. что модули, использующие эти гло
бальные переменные, связаны по общей области. Связанность по общей области через глобальные переменные в
целом допускается, но в ограниченном обьеме.
Например, переменные, помещенные в область глобальных переменных, но используемые только одним
модулем, размещены ненадлежащим образом и их следует перенести.
Другими факторами, которые необходимо рассматривать при оценивании приемлемости глобальных пере
менных. являются следующие:
Количество модулей, которые модифицируют некоторую глобальную переменную. В большинстве случаев
возможность управления значениями глобальной переменной следует предусмотреть только для одного модуля,
но могут быть ситуации, при которых эта возможность может быть предоставлена и некоторому второму модулю; в
этом случае должно быть предоставлено достаточное логическое обоснование. Недопустимо, чтобы такая воз
можность была предусмотрена более чем для двух модулей. (В процессе оценивания следует обратить внима ние
на определение модуля, действительно ответственного за значения конкретной переменной; например, если
некоторую отдельную подпрограмму используют для модификации переменной, но при этом эта подпрограмма
просто выполняет модификацию по запросу некоторого модуля, то именно этот модуль и является ответственным за
модификацию; при этом может быть более чем один подобный модуль). Кроме того, в качестве составной части
определения сложности, когда два модуля отвечают за значения некоторой глобальной переменной, следуетчетко
показать, какдействия по модификации координируются между этими модулями.
Количество модулей, которые обращаются к некоторой глобальной переменной: хотя в большинстве случа
ев нет ограничений на количество модулей, которые обращаются к глобальной переменной: случаи, при которых
много модулей выполняют такие обращения, следует проверять на обоснованность и необходимость.
3.2.13 связанность по содержимому (content coupling): Взаимосвязь между двумя модулями,
когда один модуль напрямую обращается к внутреннему содержанию другого модуля.
7