Основные классы архитектур программных средств

Различают следующие основные классы архитектур программных средств:

  • цельная программа,
  • комплекс автономно выполняемых программ,
  • слоистая программная система,
  • коллектив параллельно выполняемых программ.

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

Комплекс автономно выполняемых программ состоит из набора таких программ, что:

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

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

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

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

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

В качестве примера рассмотрим использование слоистой архитектуры для построения операционной системы. Эту архитектуру применил Дейкстра при построении операционной системы THE. Эта операционная система состоит из четырех слоев (см. рис. 6.1). На нулевом слое производится обработка всех прерываний и выделение центрального процессора программам (процессам) в пакетном режиме. Только этот уровень осведомлен о мультипрограммных аспектах системы. На первом слое осуществляется управление страничной организацией памяти. Всем вышестоящим слоям предоставляется виртуальная непрерывная (не страничная) память. На втором слое осуществляется связь с консолью (пультом управления) оператора. Только этот слой знает технические характеристики консоли. На третьем слое осуществляется буферизация входных и выходных потоков данных и реализуются так называемые абстрактные каналы ввода и вывода, так что прикладные программы не знают технических характеристик этих устройств.

Ссылка на основную публикацию
Adblock
detector