II.Моделирование управления.

Известно два типа моделей управления:

I. Модель централизованного управления.

II. Модель событийного управления.

I. В этой модели одна подсистема выделяется как системный контроллер. Ёе обязанности – руководить работой других систем.

Две разновидности:

Ø Модель вызов – возврат.

Главная программа

Подпрограмма 2
Подпрограмма 1

Подпрограмма 2.1  
Подпрограмма 1.2  
Подпрограмма 1.1.1  
Подпрограмма 1.1  

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

Процессы- -датчики
Процессы- -исполнители  

Процессы- -обработчики отказов  
Вычислительные процессы
Системный контроллер

Пользовательский интерфейс

II. Здесь системой управляют внешние события. Две разновидности:

Ø Широковещательная модель. Каждая подсистема уведомляет обработчика о своём интересе к конкретным событиям. Когда событие происходит, обработчик пересылает его подсистеме, которая может обработать это событие. Функции управления в обработчик не встраиваются.

Подсистема  
Подсистема N  
Подсистема  

Обработчик событий и сообщений

Ø Модель управляемая прерываниями. Здесь все прерывания разбиты

на группы – Типы прерываний, которые образуют вектор прерываний.

Для каждого типа прерывания есть свой обработчик.Каждый обработ-

чик реагирует на свой тип прерывания и запускает свой процесс.

Прерывания

Вектор В

Процесс
Обработчик
Вектор прерывания

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

Известны два типа моделей модульной декомпозиции:

1) Модель потока данных(в основе лежит разбиение по функциям);

2) Модель объектов.(Эта модель основана на слабо сцеплённых единицах имеющих собственные наборы данных состояния и наборы операций).

Выбор типа декомпозиции зависит от сложности разбиваемой подсисте-мы.

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

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

X – Проблема

C(X) – Сложность решения проблемы X

T(X) – Затраты на решение X

Пусть p1,p2 – Проблемы

C(p1) > C(p2) => T(p1) > T(p2)

C(p1+p2) > C(p1) + C(p2) -из практики решения проблем человека

T(p1+p2) > T(p1) + T(p2)

Таким образом сложную проблему легче решить разделив её на управляемые части. Это аргумент в пользу модульности. В данном случае не учитываются затраты на межмодульный интерфейс.

Стоимость

Стоимость

Общая стоимость интерфейса

Стоимость

одного модуля

Количество

Область min стоимости модулей

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

1) Снаружи он проще чем внутри;

2) Его проще использовать чем построить.

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

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

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

2) Доступ к операциям и структурам данных модуля ограничен.

Достоинства инф.закрытости:

1)Обеспечивается возможность разработки модулей различными независимыми коллективами.

2)Обеспечивается лёгкая модификация системы.

Характеристики модуля.

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

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

Связность-это внутренняя характеристика модуля.

Связность Сила связности
1.функциональная
2.последовательная
3.коммуникативная
4.процедурная
5.временная
6.логическая
7.по совпадению

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

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

Пример:

Проверить строку символов.

Выделить однотипные поля данных.

Оптимизировать группу команд.

2. Последовательная или информационная связность.

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

Пример:

Если модуль используется для оценки, потом для обработки данных, то он имеет последовательную связность. Он реализуется как последовательность операций (циклов). При этом данные на выходе какой-либо функции целиком являются входными для следующей функции.

Сопровождать модули с информационной связностью также легко, как и с функциональной, но возможности повторного использования модуля ниже, чем в 1-м случае, т.к. совместное применение действия модуля с информационной связностью полезно не всегда.

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

Части модуля связаны по данным (работают с одной же структурой данных).

Пример:

Наши рекомендации