Архитектура программного обеспечения. Архитектурный стиль: Поток данных. — КиберПедия 

Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

Архитектура программного обеспечения. Архитектурный стиль: Поток данных.

2020-11-03 184
Архитектура программного обеспечения. Архитектурный стиль: Поток данных. 0.00 из 5.00 0 оценок
Заказать работу

Архитектура ПО – набор ключевых правил, определяющих организацию системы:

  • совокупность структурных элементов системы и связей между ними;
  • поведение элементов системы в процессе их взаимодействия;
  • иерархию подсистем, объединяющих структурные элементы.

Сложная программная система должна быть разделена на небольшие подсистемы, каждую из которых можно разрабатывать независимо (в какой-то степени) от других.

Структура ПО должна удовлетворять следующим требованиям:

  • каждая подсистема должна инкапсулировать свое содержимое (скрывать его от других подсистем);
  • каждая подсистема должна иметь четко определенный интерфейс с другими подсистемами.

Декомпозиция является главным способом преодоления сложности разработки ПО. Принципы декомпозиции:

  • слабая связанность – low coupling (количество связей между отдельными подсистемами должно быть минимальным);
  • сильное сцепление – high cohesion (связность отдельных частей внутри каждой подсистемы должна быть максимальной).

Подходы к декомпозиции:

  функционально-модульный – описывается в терминах иерархии ее функций и иерархии структур данных;

объектно-ориентированный – описывается в терминах объектов и связей между ними, а поведение описывается в терминах обмена сообщениями между объектами.

Основные принципы проектирования

Разделение функций. Разделите приложение на отдельные компоненты с, по возможности, минимальным перекрытием функциональности. Важным фактором является предельное уменьшение количества точек соприкосновения, что обеспечит high cohesion и low coupling.

Принцип единственности ответственности. Каждый компонент или модуль должен отвечать только за одно свойство/функцию или совокупность связанных функций.

Принцип минимального знания (также известный как Закон Деметера (Law of Demeter, LoD)). Компоненту или объекту не должны быть известны внутренние детали других компонентов.

Не повторяйтесь (Don’t repeat yourself, DRY). Определенная функциональность должна быть реализована только в одном компоненте и не должна дублироваться ни в одном другом компоненте.

Минимизируйте проектирование наперед (big design upfront, BDUF). Проектируйте только то, что необходимо. Этот принцип называют YAGNI («You ain’t gonna need it»).

OCP: Open/Closed Principle (принцип открытия/закрытия) объекты проектирования (классы, функции, модули и т.д.) должны быть открыты для расширения, но закрыты для модификации.

LSP: Liskov Substitution Principle (принцип замещения Лисков) Функции, которые используют ссылки на базовые классы, должны иметь возможность использовать объекты производных классов, не зная об этом.

ISP: Interface Segregation Principle (принцип изоляции интерфейса) Клиент не должен вынужденно зависеть от элементов интерфейса, которые он не использует. Другими словами этот принцип можно сформулировать так: зависимость между классами должна быть ограничена как можно более узким интерфейсом.

DIP: Dependency Inversion Principle (принцип обращения зависимости) Модули верхних уровней не должны зависеть от модулей нижних уровней. Оба типа модулей должны зависеть от абстракций. Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций.

  1. Конвейер обработки данных (data flow)

Определенные выходные данные в результате обработки определенных входных данных, применяется многократно, одинаково к любым данным на входе.

Обработка организуется в виде набора отдельных компонентов-обработчиков, передающих свои результаты на вход другим обработчикам.

Подвиды data flow

Пакетная обработка (batch sequential) единственный вывод производится на основе одного набора данных на входе, промежуточные преобразования организуются в виде последовательности.   

Каналы и фильтры (pipe - and - filter) преобразование непрерывных потоков данных. Следующее преобразование может быть начато до окончания предыдущего. Возможность добавления дополнительных преобразований.

Замкнутый цикл управления (closed - loop control) обработка постоянно непредсказуемо поступающих событий. Общий диспетчер событий классифицирует и отдает событие его на асинхронную обработку.


Поделиться с друзьями:

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...

Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...

Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.009 с.