1
Часть 7.
Архитектура
программного средства
Методы и средства проектирования
информационных систем и технологий
(©) Владислав Лавров, vlavrov.com
2
7.1. Понятие архитектуры программного средства
Архитектура ПС  это его строение как оно видно
(или должно быть видно) из-вне его. Другими словами,
представление ПС как системы, состоящей из некоторой
совокупности взаимодействующих подсистем.
В качестве таких подсистем выступают обычно отдельные
программы.
Основные задачи разработки архитектуры ПС:
• Выделение программных подсистем и отображение на
них внешних функций (заданных во внешнем описании)
ПС.
• Определение способов взаимодействия между
выделенными программными подсистемами.
(©) Владислав Лавров, vlavrov.com
3
7.2. Основные классы архитектур программных средств
1.Цельная программа.
2.Комплекс автономно выполняемых программ.
3.Слоистая программная система.
4.Комплекс параллельно выполняемых программ.
(©) Владислав Лавров, vlavrov.com
4
В состав входит только одна программа.
Такую архитектуру выбирают обычно в том случае,
когда ПС должно выполнять одну какую-либо
ярко выраженную функцию и ее реализация не
представляется слишком сложной.
Цельная программа
(©) Владислав Лавров, vlavrov.com
5
Цельная программа
Пример архитектуры построения
операционной системы
с монолитным ядром
(©) Владислав Лавров, vlavrov.com
6
Комплекс автономно выполняемых программ
Состоит из набора программ, такого, что:
• любая из этих программ может быть активизирована
(запущена) пользователем;
• при выполнении активизированной программы другие
программы этого набора не могут быть активизированы до
тех пор, пока не закончит выполнение активизированная
программа;
• все программы этого набора применятся к одной и той же
информационной среде.
Взаимодействие между программами осуществляется только
через общую информационную среду.
(©) Владислав Лавров, vlavrov.com
7
Состоит из некоторой упорядоченной совокупности программных
подсистем, называемых слоями, такой, что:
• на каждом слое ничего не известно о свойствах (и даже существовании)
последующих (более высоких) слоёв;
• каждый слой может взаимодействовать по управлению (обращаться к
компонентам) с непосредственно предшествующим (более низким)
слоем через заранее определённый интерфейс, ничего не зная о
внутреннем строении всех предшествующих слоёв;
• каждый слой располагает определёнными ресурсами, которые он либо
скрывает от других слоёв, либо предоставляет непосредственно
последующему слою (через указанный интерфейс) некоторые их
абстракции.
Слоистая программная система
(©) Владислав Лавров, vlavrov.com
8
Слоистая программная система
Непривелирированный
режим
Привелирированный
режим
Вариант построения
операционной системы
с архитектурой
«слоистое ядро»
(©) Владислав Лавров, vlavrov.com
9
Представляет собой набор программ, способных взаимодействовать
между собой, находясь одновременно в стадии выполнения.
Это означает:
1. Программы вызваны в оперативную память, активизированы и
могут попеременно разделять по времени один или несколько
центральных процессоров.
2. Программы могут осуществлять между собой динамические (в
процессе выполнения) взаимодействия, на базе которых
производиться их синхронизация. Обычно взаимодействие между
такими процессами производится путём передачи друг другу
некоторых сообщений.
Комплекс параллельно выполняемых программ
(©) Владислав Лавров, vlavrov.com
10
Комплекс параллельно выполняемых программ
Пример реализации конвейера параллельно
действующих программ
(©) Владислав Лавров, vlavrov.com
11
Непривелирированный
режим
Привелирированный
режим
Вариант построения
операционной системы
с архитектурой
«микроядро»
Комплекс параллельно выполняемых программ
(©) Владислав Лавров, vlavrov.com
12
Пример программной системы с портами сообщений
Комплекс параллельно выполняемых программ
(©) Владислав Лавров, vlavrov.com
13
7.3. Контроль архитектуры программных средств
1.Смежный контроль
2.Ручная имитация
(©) Владислав Лавров, vlavrov.com

МиСПИСиТ (архитектура)

  • 1.
    1 Часть 7. Архитектура программного средства Методыи средства проектирования информационных систем и технологий (©) Владислав Лавров, vlavrov.com
  • 2.
    2 7.1. Понятие архитектурыпрограммного средства Архитектура ПС  это его строение как оно видно (или должно быть видно) из-вне его. Другими словами, представление ПС как системы, состоящей из некоторой совокупности взаимодействующих подсистем. В качестве таких подсистем выступают обычно отдельные программы. Основные задачи разработки архитектуры ПС: • Выделение программных подсистем и отображение на них внешних функций (заданных во внешнем описании) ПС. • Определение способов взаимодействия между выделенными программными подсистемами. (©) Владислав Лавров, vlavrov.com
  • 3.
    3 7.2. Основные классыархитектур программных средств 1.Цельная программа. 2.Комплекс автономно выполняемых программ. 3.Слоистая программная система. 4.Комплекс параллельно выполняемых программ. (©) Владислав Лавров, vlavrov.com
  • 4.
    4 В состав входиттолько одна программа. Такую архитектуру выбирают обычно в том случае, когда ПС должно выполнять одну какую-либо ярко выраженную функцию и ее реализация не представляется слишком сложной. Цельная программа (©) Владислав Лавров, vlavrov.com
  • 5.
    5 Цельная программа Пример архитектурыпостроения операционной системы с монолитным ядром (©) Владислав Лавров, vlavrov.com
  • 6.
    6 Комплекс автономно выполняемыхпрограмм Состоит из набора программ, такого, что: • любая из этих программ может быть активизирована (запущена) пользователем; • при выполнении активизированной программы другие программы этого набора не могут быть активизированы до тех пор, пока не закончит выполнение активизированная программа; • все программы этого набора применятся к одной и той же информационной среде. Взаимодействие между программами осуществляется только через общую информационную среду. (©) Владислав Лавров, vlavrov.com
  • 7.
    7 Состоит из некоторойупорядоченной совокупности программных подсистем, называемых слоями, такой, что: • на каждом слое ничего не известно о свойствах (и даже существовании) последующих (более высоких) слоёв; • каждый слой может взаимодействовать по управлению (обращаться к компонентам) с непосредственно предшествующим (более низким) слоем через заранее определённый интерфейс, ничего не зная о внутреннем строении всех предшествующих слоёв; • каждый слой располагает определёнными ресурсами, которые он либо скрывает от других слоёв, либо предоставляет непосредственно последующему слою (через указанный интерфейс) некоторые их абстракции. Слоистая программная система (©) Владислав Лавров, vlavrov.com
  • 8.
    8 Слоистая программная система Непривелирированный режим Привелирированный режим Вариантпостроения операционной системы с архитектурой «слоистое ядро» (©) Владислав Лавров, vlavrov.com
  • 9.
    9 Представляет собой наборпрограмм, способных взаимодействовать между собой, находясь одновременно в стадии выполнения. Это означает: 1. Программы вызваны в оперативную память, активизированы и могут попеременно разделять по времени один или несколько центральных процессоров. 2. Программы могут осуществлять между собой динамические (в процессе выполнения) взаимодействия, на базе которых производиться их синхронизация. Обычно взаимодействие между такими процессами производится путём передачи друг другу некоторых сообщений. Комплекс параллельно выполняемых программ (©) Владислав Лавров, vlavrov.com
  • 10.
    10 Комплекс параллельно выполняемыхпрограмм Пример реализации конвейера параллельно действующих программ (©) Владислав Лавров, vlavrov.com
  • 11.
    11 Непривелирированный режим Привелирированный режим Вариант построения операционной системы сархитектурой «микроядро» Комплекс параллельно выполняемых программ (©) Владислав Лавров, vlavrov.com
  • 12.
    12 Пример программной системыс портами сообщений Комплекс параллельно выполняемых программ (©) Владислав Лавров, vlavrov.com
  • 13.
    13 7.3. Контроль архитектурыпрограммных средств 1.Смежный контроль 2.Ручная имитация (©) Владислав Лавров, vlavrov.com