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

Архитектура ПС - это представление ПС как системы, состоящей из некоторой совокупности взаимодействующих подсистем. В качестве таких подсистем выступают обычно отдельные программы. Разработка архитектуры - этап, на котором реализуется принцип выделения относительно независимых компонент.

Основные задачи разработки архитектуры ПС:

1. выделение программных подсистем и отображение на них внешних функций (заданных во внешнем описании) ПС;

2. определение способов взаимодействия между выделенными программными подсистемами.

С учетом принимаемых на этом этапе решений производится дальнейшая конкретизация и функциональных спецификаций.

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

* цельная программа,

* комплекс автономно выполняемых программ,

* слоистая программная система,

* коллектив параллельно выполняемых программ.

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

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

1. любая из них может быть запущена пользователем;

2. при выполнении активизированной программы другие программы не могут быть запущены, пока не закончит выполнение активизированная программа;

3. все программы этого набора применяются к одной и той же информационной среде.

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

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

1. на каждом слое ничего не известно о свойствах вышележащих слоев;

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

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

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

Пример такой архитектуры - построение ОС.

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

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

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

Hosted by uCoz