344.02K
Категория: ПрограммированиеПрограммирование

Особенности структурирования информационных систем

1.

Особенности структурирования
информационных систем
•Структурирование системы
•Моделирование управления
•Модульность
•Принцип информационной закрытости
•Связность модуля
•Сцепление модулей
•Метрики графа модулей

2.

Проектирование
Структурирование системы
Проектирование GUI
Моделирование управления
Декомпозиция подсистем на
модули
Детальное
проектиро
-вание
Предварительное
проектирование

3.

Проектирование
Структурирование системы
• Выделяем несколько подсистем
• Каждая подсистема решает определённый круг задач
• Определяем способ взаимодействия подсистем
Моделирование управления
• Определяем управляющие связи между подсистемами
• «Кто кем командует?»
Декомпозиция подсистем
• Выделяем специализированные модули
• Каждый модуль решает узкий круг задач
• Разные подсистемы могут использовать один и тот же модуль

4.

Структурирование системы
Модуль 1
Модуль 2
Хранилище данных
Модуль 3
Клиент 1
Клиент 2
Протокол
связи
Сервер 1
Сервер 2
Модель хранилища данных
Модель клиент-сервер
Интерфейс пользователя
Платформа
Бизнес-логика
ОС
Фреймворк
Приложение
Хранилище данных
Трёхуровневая модель
Модель абстрактной
машины

5.

Модель хранилища данных
Нет прямых связей
Подсистема 1
Подсистема 2
Природа хранилища
может быть любая
Хранилище данных
Могут быть общие
модули, но обмен
информацией между
подсистемами не
происходит
Подсистема 3
Модуль
Подсистема 4

6.

Модель хранилища данных
Недостатки
• Смена способа
хранения данных
требует переделки
все системы
• Изменение структуры
хранилища затронет
все подсистемы,
работающие с этими
данными
• Низкая скорость
взаимодействия
между подсистемами
• Проблемы с
реализацией
одновременного
доступа к хранилищу
Преимущества
• Простота системы
• Легко расширять
систему новыми
подсистемами
• Можно использовать
разные ЯП для
подсистем
• Легко сохранять и
восстанавливать
состояние системы
Используется
• Утилиты, работающие
в пакетном режиме
• Веб-сайты

7.

Модель клиент-сервер
Взаимодействие с окружающей средой
Клиент 1
Клиент 2
Протокол связи
Сервер 1
Сервер 2
Хранение и обработка данных

8.

Варианты модели клиент-сервер
Клиент
Клиент
Клиент
Клиент
Узел
Узел
Сервер
Сервер
Узел
Сервер
Узел
Клиент
Клиент
Централизованная
• Клиенты используют
единый сервер
• Этот сервер является
единой точкой отказа
Клиент
Клиент
Федеративная
• Сервер обслуживает
свою группу клиентов
• Серверы могут
взаимодействовать
между собой
Одноранговая
• Каждый узел может
играть роль как клиента,
так и сервера
• Проблемы с поиском
соседних узлов

9.

Централизация
Минусы
• Отказ сервера приводит к отказу
системы
• Меньшая автономность
клиентов
• Высоконагруженный сервер
сложнее масштабировать, чем
много дешёвых клиентов
Плюсы
• Проще поддерживать данные
актуальными
• Проще производить анализ
работы системы
• Проще организовать
резервирование и защиту
данных
• Клиентские устройства проще
заменять

10.

Трёхуровневая модель
Сетевые
приложения
Монолитные
приложения
Основная задача
Слой представления
Клиентское
приложение
Взаимодействие
с пользователем
Графический
интерфейс
Слой бизнес-логики
Сервер приложений
Преобразование
информации
Модули логики
Слой управления данными
Сервер баз данных
Хранение состояния
системы
Хранилище в памяти
Смешанные хранилища

11.

Трёхуровневая модель
Представление
У представления нет
прямого доступа к
хранилищу, как в MVC
Бизнес-логика
Управление данными
Недостатки
• Логика вынуждена заниматься
«переброской» данных тудасюда.
Достоинства
• Проще модифицировать
отдельные слои
• Проще повторно использовать
наработки в слоях представления
и управления данными

12.

Модель абстрактной машины
Аппаратная платформа
Операционная система
Виртуальная машина Java
Веб-приложение на Java
REST API на базе HTTP
Страница в браузере
Недостатки
• Каждый слой абстракции
увеличивает потребность в
ресурсах
• Труднее решать задачи, которые
задействуют несколько уровней
Достоинства
• Упрощается реализация
каждого следующего слоя
• Возможна замена реализации
одного из слоёв
Применение
• Фреймворки и библиотеки
• Приложения с возможностью
скриптинга/автоматизации

13.

Моделирование управления
Централизованное управление
Основная программа
Подпрограмма 1
Функция
1.1
Обработчик 1
Подпрограмма 2
Функция
1.2
Функция
2.1
Модель «вызов-возврат»
Рабочий
процесс 1
Рабочий
процесс 2
Обработчик 2
Шина событий
Обработчик 3
Обработчик 4
Широковещательная модель
Источник прерываний
Прерывание Прерывание Прерывание
Системный
контроллер
Рабочий
процесс 3
Событийное управление
Рабочий
процесс 4
Модель менеджера
Обработчик
Обработчик
Обработчик
Обработчик
Модель, управляемая прерываниями

14.

Модель «вызов-возврат»
Тело программы
Подпрограмма 1
Функция 1.1
Недостатки
• Не очень удобна, если
требуется реагировать на
поступающие события
• Плохо совместима с GUI
Подпрограмма 2
Функция 1.2
Достоинства
• Хорошо работает в
пакетном режиме
• Очень проста
Функция 2.1
Применение
• Утилиты командной
строки
• Некоторые сервисы
(постоянно работающие
программы)

15.

Модель менеджера
Рабочий процесс 1
Рабочий процесс 2
Системный
контроллер
Рабочий процесс 3
Недостатки
• Имеет смысл только при
параллельном выполнении
нескольких процессов
• Проблемы «состояний
гонки»
Рабочий процесс 4
Достоинства
• Хорошо работает в
приложениях массового
обслуживания
• Сравнительно легко
масштабируется
Применение
• Сетевые сервисы
(серверная часть)
• Утилиты с графическим
интерфейсом пользователя,
выполняющие длительные
действия

16.

Моделирование управления
Централизованное управление
Основная программа
Подпрограмма 1
Функция
1.1
Обработчик 1
Подпрограмма 2
Функция
1.2
Функция
2.1
Модель «вызов-возврат»
Рабочий
процесс 1
Рабочий
процесс 2
Обработчик 2
Шина событий
Обработчик 3
Обработчик 4
Широковещательная модель
Источник прерываний
Прерывание Прерывание Прерывание
Системный
контроллер
Рабочий
процесс 3
Событийное управление
Рабочий
процесс 4
Модель менеджера
Обработчик
Обработчик
Обработчик
Обработчик
Модель, управляемая прерываниями

17.

Широковещательная модель
Обработчик 1
Обработчик 2
Шина событий
Обработчик 3
Недостатки
• Сложные сценарии
оказываются «размазаны»
по множеству
обработчиков событий
Обработчик 4
Достоинства
• Хорошо работает, когда
нужно реагировать на
заранее неизвестную
последовательность
входных событий
• Сравнительно легко
расширяется
Применение
• Утилиты с графическим
интерфейсом пользователя
• Асинхронные приложения,
ориентированные на
ввод/вывод

18.

Модель, управляемая прерываниями
Источник прерываний
Прерывание
Тело программы
Обработчик
прерывания
Недостатки
• Возможные конфликты
одновременно пришедших
прерываний
• Обработчик прерывания
должен восстановить
контекст выполнения по
окончанию своей работы
Прерывание
Обработчик
прерывания
Достоинства
• Позволяет разделить
программу на
низкоприоритетный
«основной цикл» и
обработчики важных событий
Применение
• Микроконтроллеры
• Встраиваемые системы

19.

Модульность
Модульность

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

20.

Принцип информационной закрытости
Сущность
• Модули по возможности независимы друг от друга
• Доступ к содержимому модуля ограничен
• Модули обмениваются только той информацией,
которая необходима им для работы
Достоинства
• Параллельная разработка модулей системы
разными коллективами разработчиков
• Упрощается модификация системы, реже
сталкиваемся с «каскадом изменений»

21.

Связность модуля
Функциональная
• Части модуля совместно решают одну задачу
Информационная
• Части модуля формируют конвейер обработки данных
Коммуникативная
• Части модуля обрабатывают одни и те же данные
Процедурная
• Части модуля независимы, но вместе формируют некий
сценарий
Временная
• Части модуля независимы, но используются в один и
тот же период работы программы
Логическая
• Части модуля независимы, но решают задачи из одной
и той же категории
По совпадению
• Нет причин, требующих нахождения этих функций в
одном модуле

22.

Алгоритм определения связности
Части модуля совместно решают одну проблему?
Да
Функциональная
Нет
Части модуля связаны?
Нет
Части модуля входят в одну
категорию действий?
Да
Как связаны части модуля?
По данным
Порядок важен?
Да
Информационная
Нет
Коммуникативная
По управлению
Порядок важен?
Да
Процедурная
Правило параллельной цепи: если все
действия модуля имеют несколько
уровней
связности,
то
модулю
присваивают самый сильный из них.
Да
Логическая
Нет
По
совпадению
Нет
Временная
Правило последовательной цепи: если
действия в модуле имеют разные
уровни
связности,
то
модулю
присваивают самый слабый из них.

23.

Сцепление модулей
По данным
• Модуль A обращается к интерфейсу модуля B.
В качестве параметров передаются примитивные типы.
По образцу
• Модуль A обращается к интерфейсу модуля B.
В качестве параметров передаются структуры данных.
По управлению
По внешним ссылкам
По общей области
По содержанию
• Модуль A управляет работой модуля B через
глобальные переменные в интерфейсе модуля B.
• Модули A и B ссылаются на глобальные примитивные
данные, объявленные в интерфейсе модуля C.
• Модули A и B ссылаются на глобальные структуры
данных, объявленные в интерфейсе модуля C.
• Модуль A обращается к реализации модуля B, минуя
его интерфейс.

24.

Метрики сложности структуры ИС
Число связей в полном графе
EC 12 N ( N 1)
Разделение
по выходу
Число связей в графе-дереве
ET N 1
Высота
графа
Невязка графа
Объединение
по входу
Ширина графа
E ET
Nev
EC ET
2( E N 1)
( N 1)( N 2)
English     Русский Правила