Similar presentations:
Особенности структурирования информационных систем
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)