Моделирование архитектуры и управления. Модули и модульная декомпозиция. Оценка сложности программной системы

Содержание

Слайд 2

Особенности процесса синтеза программных систем (ПС)

Особенности процесса синтеза программных систем (ПС)

Слайд 3

Особенности этапа проектирования

Особенности этапа проектирования

Слайд 4

Предварительное проектирование Предварительное проектирование обеспечивает: идентификацию подсистем; определение основных принципов управления

Предварительное проектирование

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

проектирование включает:
Структурирование системы.
Моделирование управления.
Декомпозиция подсистем на модули.
Слайд 5

Структурирование системы Три модели системного структурирования: модель хранилища данных; модель клиент-сервер; трехуровневая модель.

Структурирование системы
Три модели системного структурирования:
модель хранилища данных;
модель клиент-сервер;
трехуровневая модель.

Слайд 6

Модель хранилища данных

Модель хранилища данных

Слайд 7

Модель клиент-сервер

Модель клиент-сервер

Слайд 8

Трехуровневая модель

Трехуровневая модель

Слайд 9

Моделирование управления 1 Модель централизованного управления: Модель вызов-возврат, Модель менеджера; 2

Моделирование управления
1 Модель централизованного управления:
Модель вызов-возврат,
Модель менеджера;
2 Модель событийного управления:
Широковещательная модель,
Модель,

управляемая прерываниями.
Слайд 10

Модель вызов-возврат

Модель вызов-возврат

Слайд 11

Модель менеджера

Модель менеджера

Слайд 12

Широковещательная модель

Широковещательная модель

Слайд 13

Модель, управляемая прерываниями

Модель, управляемая прерываниями

Слайд 14

Декомпозиция подсистем на модули Два типа моделей декомпозиции: Модель потока данных. Модель объектов.

Декомпозиция подсистем на модули

Два типа моделей декомпозиции:
Модель потока данных.
Модель объектов.

Слайд 15

Модульность Модуль – фрагмент программного текста, являющийся строительным блоком для физической

Модульность

Модуль – фрагмент программного текста, являющийся строительным блоком для физической структуры

системы.
Модульность – свойство системы, которая может подвергаться декомпозиции на ряд внутренне связанных и слабо зависящих друг от друга модулей.
Слайд 16

Модульность Пусть C(x) – функция сложности решения проблемы, T(x) – функция

Модульность

Пусть
C(x) – функция сложности решения проблемы,
T(x) – функция затрат времени на

решение проблемы.
Для двух проблем p1 и p2 из соотношения
C(p1) > C(p2)
следует, что
T(p1) > T(p2).
Слайд 17

Модульность Из практики решения проблем человеком следует: C(p1+p2) > C(p1) +

Модульность

Из практики решения проблем человеком следует:
C(p1+p2) > C(p1) + C(p2).
Учитывая ранее

сказанное:
T(p1+p2) > T(p1) + T(p2).
Это и есть принцип «разделяй и властвуй».
Слайд 18

Модульность

Модульность

Слайд 19

Модульность Оптимальный модуль должен удовлетворять двум критериям: снаружи он проще чем

Модульность

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

использовать, чем построить.
Слайд 20

Информационная закрытость

Информационная закрытость

Слайд 21

Информационная закрытость Информационная закрытость означает следующее: все модули независимы, обмениваются только

Информационная закрытость

Информационная закрытость означает следующее:
все модули независимы, обмениваются только информацией, необходимой

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

Связность модуля Связность модуля (внутренняя характеристика) – это мера зависимости его

Связность модуля

Связность модуля (внутренняя характеристика) – это мера зависимости его частей.
Семь

типов связности:
Связность по совпадению.
Логическая связность.
Временная связность.
Процедурная связность.
Коммуникативная связность.
Информационная (последовательная) связность.
Функциональная связность.
Слайд 23

Характеристика связности модуля

Характеристика связности модуля

Слайд 24

Функциональная связность Функционально связанный модуль содержит элементы, участвующие в выполнении одной

Функциональная связность

Функционально связанный модуль содержит элементы, участвующие в выполнении одной и

только одной проблемной задачи.
Вычислить синус угла.
Вычислить координаты цели.
Читать запись файла.
Проверять орфографию.
Слайд 25

Информационная связность Элементы-обработчики модуля образуют конвейер для обработки данных – результаты

Информационная связность

Элементы-обработчики модуля образуют конвейер для обработки данных – результаты одного

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

Коммуникативная связность Элементы-обработчики модуля используют одни и те же данные, например

Коммуникативная связность

Элементы-обработчики модуля используют одни и те же данные, например внешние

данные.
Модуль: Отчет и средняя зарплата
используется таблица зарплата служащих
сгенерировать отчет по зарплате
вычислить параметр средняя зарплата
вернуть отчет по зарплате, средняя зарплата
Конец модуля
Слайд 27

Процедурная связность Модуль состоит из элементов, реализующих независимые действия, для которых

Процедурная связность

Модуль состоит из элементов, реализующих независимые действия, для которых задан

порядок работы, то есть порядок передачи управления.
Модуль: Вычисление средних значений
используется таблица-А, таблица-Б
вычислить среднее по таблице-А
вычислить среднее по таблице-Б
вернуть среднее табл-А, среднее табл-Б
Конец модуля
Слайд 28

Временная связность Элементы-обработчики модуля привязаны к конкретному периоду времени (из жизни

Временная связность

Элементы-обработчики модуля привязаны к конкретному периоду времени (из жизни программной

системы).
Модуль: Инициализировать систему
перемотать магнитную ленту 1
счетчик магнитной ленты 1 = 0
перемотать магнитную ленту 2
счетчик магнитной ленты 2 = 0
переключатель 1 = вкл.
переключатель 2 = выкл.
Конец модуля
Слайд 29

Логическая связность Элементы модуля принадлежат одной категории, и из этой категории

Логическая связность

Элементы модуля принадлежат одной категории, и из этой категории клиент

выбирает выполняемое действие.
Модуль: Пересылка сообщения
переслать по e-mail
переслать по факсу
послать в телеконференцию
переслать по ftp-протоколу
Конец модуля
Слайд 30

Связность по совпадению Элементы модуля вообще не имеют никаких отношений друг

Связность по совпадению

Элементы модуля вообще не имеют никаких отношений друг с

другом.
Модуль: Разные функции
поздравить с Новым годом
вывести собаку на прогулку
измерить температуру
запастись продуктами
Конец модуля
Слайд 31

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

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

Слайд 32

Дополнительные правила определения типа связности правило параллельной цепи. Если все действия

Дополнительные правила определения типа связности

правило параллельной цепи. Если все действия модуля

имеют несколько уровней связности, то модулю присваивают самый сильный уровень связности;
правило последовательной цепи. Если действия в модуле имеют разные уровни связности, то модулю присваивают самый слабый уровень связности.
Слайд 33

Сцепление модулей Сцепление модулей (внешняя характеристика) – это мера взаимозависимости модулей

Сцепление модулей

Сцепление модулей (внешняя характеристика) – это мера взаимозависимости модулей по

данным.
Шесть типов сцепления:
Сцепление по данным
Сцепление по образцу
Сцепление по управлению
Сцепление по внешним ссылкам
Сцепление по общей области
Сцепление по содержанию
Слайд 34

Сцепление по данным Модуль А вызывает модуль Б. Все входные и

Сцепление по данным

Модуль А вызывает модуль Б. Все входные и выходные

параметры вызываемого модуля – простые элементы данных.
Слайд 35

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

Сцепление по образцу

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

Слайд 36

Сцепление по управлению Модуль А явно управляет функционированием модуля Б, посылая ему управляющие данные.

Сцепление по управлению

Модуль А явно управляет функционированием модуля Б, посылая ему

управляющие данные.
Слайд 37

Сцепление по внешним ссылкам Модули А и Б ссылаются на один

Сцепление по внешним ссылкам

Модули А и Б ссылаются на один и

тот же глобальный элемент данных.
Слайд 38

Сцепление по общей области Модули разделяют одну и ту же глобальную структуру данных

Сцепление по общей области

Модули разделяют одну и ту же глобальную структуру

данных
Слайд 39

Сцепление по содержанию Один модуль прямо ссылается на содержание другого модуля.

Сцепление по содержанию

Один модуль прямо ссылается на содержание другого модуля.

Слайд 40

Сложность программной системы Автор: М. Холстед (1977) Длина модуля: N=n1·log2(n1)+n2·log2(n2) n1

Сложность программной системы

Автор: М. Холстед (1977)
Длина модуля:
N=n1·log2(n1)+n2·log2(n2)
n1 – число различных операторов,
n2

– число различных операндов.
Объем модуля:
V = N×log2(n1+n2)
Слайд 41

Сложность программной системы Автор: Том МакКейб (1976) Метрика цикломатической сложности: V(G)

Сложность программной системы

Автор: Том МакКейб (1976)
Метрика цикломатической сложности:
V(G) = E –

N + 2
Е – количество дуг,
N – количество вершин в управляющем
графе программной системы.
Слайд 42

Иерархическая структура программной системы

Иерархическая структура программной системы

Слайд 43

Характеристики ИС Первичные: Количество вершин (модули) Количество ребер (связи между модулями)

Характеристики ИС

Первичные:
Количество вершин (модули)
Количество ребер (связи между модулями)
Глобальные:
Высота – количество уровней

управления
Ширина – максимальное из количеств модулей, размещенных на уровнях управления
Локальные:
Коэффициент объединения по входу: Fan_in(i)
Коэффициент разветвления по выходу: Fan_out(i)
Слайд 44

Невязка проектной структуры n – количество вершин, e – количество ребер

Невязка проектной структуры

n – количество вершин, e – количество ребер проектной

структуры.
Nev = 1 – полный граф.
Nev = 0 – дерево.