В этом уроке вы познакомитесь с основными компонентами системы, а также узнаете, какие функции могут выполнять элементы ПО и как системный аналитик участвует в проектировании их архитектуры.
Даня
Получается, мы будем только с описанием архитектуры ПО работать? 😥
Айгуль
Нет, не только. Например, будем ещё участвовать в проектировании архитектуры элементов ПО.
Даня
А что такое элементы ПО?
Айгуль
Так, думаю, нам стоит начать с системы. Знаешь, из чего она состоит?
Даня
Видимо, нет 🙃
Айгуль
Тогда это и обсудим 🧐
Система
В контексте IT-индустрии система — в первую очередь совокупность программного и аппаратного обеспечения (оборудования). Программное и аппаратное обеспечение называют компонентами (Components).
Программное и аппаратное обеспечения системы, как правило, объёмны и сложны для понимания, поэтому их делят на элементы. Как и любые другие элементы архитектуры, они взаимодействуют друг с другом через интерфейсы, обмениваясь информацией и выполняя друг для друга определённые функции.
Элементы программного обеспечения
Основные элементы программного обеспечения и их функции:
Хранилище данных (Data Storage)
Сохраняет данные и информацию в виде организованного и постоянного набора, а также извлекает их. Набор данных системы определяется в ER-модели.
Логика доступа к данным (Data Access Logic, Persistence Logic)
Выполняет ограниченные набором условий функции чтения, записи, обновления и удаления данных. Под логикой доступа подразумевают запросы к хранилищам данных на SQL.
Бизнес-логика (Business Logic, Application Logic)
Выполняет бизнес-процессы с учётом набора условий. Бизнес-логика определяется в пользовательских требованиях, функциональных требованиях и моделях процессов, таких как DFD.
Логика представления (Presentation Logic)
Предоставляет пользователю ограниченные набором условий возможности ввода и просмотра информации, а также принимает его указания. Под логикой представления подразумевают механизмы пользовательского интерфейса, которые определяются в диаграммах структуры интерфейса и прототипах экранов. Логика представления отображает результаты выполнения бизнес-логики.
Системный аналитик участвует в проектировании элементов программного обеспечения, разрабатывая требования к ПО, моделируя его предметную область и помогая архитектору ПО в составлении спецификации программного и аппаратного обеспечений.
Рассмотрим, как элементы ПО выполняют функции, на примере системы для посетителей фитнес-центра.
Хранилище данных. Сохраняет данные о посетителях, тренировках и записях.
Логика доступа к данным. Записывает и извлекает данные о тренировках, посетителях и записях на тренировки.
Бизнес-логика. Проверяет правильность введённого пароля учётной записи посетителя, определяет доступные для записи тренировки.
Логика представления. Предоставляет пользователю возможности перехода между экранами системы, просмотра доступных для записи тренировок, ввода пароля учётной записи.
Архитектор ПО проектирует архитектуру будущей системы для интернет-магазина домашней одежды. Определите, какой из элементов ПО может выполнять следующие функции.
Отображение покупателю доступных для заказа товаров
Логика представления
За отображение информации пользователю отвечает функция логики представления.
Сохранение данных о покупателях, товарах и заказах
Хранилище данных
За сохранение и извлечение данных отвечает функция хранения данных.
Запись и обновление данных о заказах покупателей
Логика доступа к данным
За чтение, запись, обновление и удаление данных отвечает функция логики доступа к данным.
Определение корректности введённого адреса для доставки заказа
Бизнес-логика
Корректность адреса — это важное условие выполнения бизнес-процессов. За это отвечает функция бизнес-логики.
Элементы аппаратного обеспечения
Основные элементы аппаратного обеспечения и их функции:
Клиент (Client). Даёт указания серверу.
Сервер (Server). Выполняет указания клиента.
Сеть (Network). Передаёт между клиентами и серверами информацию и указания.
Проектированием элементов аппаратного обеспечения занимается архитектор ПО. Он может привлечь системного аналитика, чтобы составить спецификации программного и аппаратного обеспечения. Например, архитектор ПО может попросить СА выяснить, в каких операционных системах работают пользователи.
Клиент
Клиент (Client) — это элемент аппаратного обеспечения системы, который даёт указания другому элементу.
Например, это настольный компьютер, ноутбук, мобильный телефон (смартфон), планшет и другие.
Настольный компьютер также называют персональным, потому что им пользуется, как правило, один человек. Этим он отличается от сервера, результатами работы которого пользуются множество людей с помощью своих персональных устройств.
В примере с системой фитнес-центра клиентом будет смартфон посетителя. Смартфон может попросить сервер передать ему данные о доступных для записи тренировках, создать и удалить запись.
Сервер
Сервер (Server) — это элемент аппаратного обеспечения системы, который выполняет указание другого элемента.
В качестве сервера может выступать как отдельный компьютер, похожий на обычный персональный компьютер, так и специализированное оборудование. Для работы сервера не требуется участие человека, поэтому сервер отличается своей автономностью. Человек лишь выполняет первоначальную настройку и периодически проводит техническое обслуживание или обновление.
Сервер тоже состоит из элементов:
Процессор.
Материнская плата.
Жёсткий диск.
Вернёмся к примеру с фитнес-центром. После того как клиент дал указание серверу передать данные расписания с выбранным названием тренировки, сервер обрабатывает полученные данные, определяет доступные даты и время для записи. Обработанные данные сервер отправляет обратно клиенту, чтобы тот затем отобразил их пользователю.
Сеть
Сеть (Network) — это элемент аппаратного обеспечения системы, позволяющий другим элементам обмениваться информацией и давать друг другу указания.
Клиент и сервер обмениваются друг с другом информацией по сети. В одной сети с сервером могут взаимодействовать несколько разных клиентских устройств.
Есть множество типов сетей, основные из них:
Интернет (Internet) — это сеть, которая работает по всему миру.
Интранет (Intranet) — это управляемая сеть с контролируемым и ограниченным доступом, которая работает внутри организации.
Локальная сеть (Local Area Network — LAN) — это сеть, расположенная на территории организации.
Беспроводная локальная сеть (Wireless Local Area Network — WLAN) — это локальная сеть, которая использует для обмена информацией радиочастотные сигналы.
Вернёмся к примеру с фитнес-центром. Клиент будет давать указания серверу и обмениваться с ним данными по сети Интернет.
Комбинирование элементов
Вначале определяются основные элементы программного обеспечения будущей системы, а затем архитекторы ПО распределяют их по различным аппаратным элементам, на которых будет работать система. Эти элементы могут быть скомбинированы множеством различных способов, исходя из выбранного архитектором ПО стиля (шаблона).
Например в следующем уроке вы познакомитесь с клиент-серверной архитектурой, где клиент выполняет логику представления и бизнес-логику, тогда как сервер хранит данные и выполняет логику доступа к ним.
Структура развёртывания
Компоненты системы и их элементы рассматривают в структуре развёртывания (Deployment Structure).
Развёртывание (Deployment) — это этап проекта по разработке ПО, на котором система вводится в эксплуатацию в реальной операционной среде.
В процесс развёртывания ПО входят следующие действия:
Упаковка (Packaging) — создание установочного пакета (Installation Package). Установочный пакет — это архив, содержащий файлы с кодом ПО и дополнительные метаданные, необходимые для их установки, обновления, настройки и удаления. Установочные пакеты могут иметь различный формат, который зависит от операционной системы устройства. Например, для Android используется формат APK, для MS Windows — MSI, для MacOS — PKG.
Распространение (Distribution) — доставка установочных пакетов на устройства по сети.
Установка (Installation) — настройка компьютера, чтобы он мог запустить программу. ПО установлено, когда все файлы с его программным кодом размещены в файловой системе компьютера и создан исполняемый файл (Executable File), который необходим для запуска и работы ПО.
Если процесс развёртывания полностью автоматизирован, то он называется непрерывным развёртыванием (Continuous Deployment). Если процесс автоматизирован только до распространения ПО, а для установки необходимо участие пользователя, то он называется непрерывной доставкой (Continuous Delivery).
Структура развёртывания — это модель физической архитектуры системы, выражающая распределение элементов программного обеспечения по элементам аппаратного. Она необходима для моделирования проблем производительности, целостности, защищённости, доступности и проектирования архитектурных решений для этих проблем.
Структура развёртывания также описывает сеть, объединяющую элементы аппаратного обеспечения. Помимо этого, она может включать исполняемые файлы программ, скрипты, командные (пакетные) файлы и другие.
Спецификация программного и аппаратного обеспечения — основа для проектирования структуры развёртывания.
Архитектор ПО описывает в соответствующих представлениях структуру развёртывания в графической форме — в виде диаграммы развёртывания (UML Deployment Diagram).
Подведём итоги
Система — совокупность программного и аппаратного обеспечения (оборудования). Программное и аппаратное обеспечение называют компонентами системы.
Элементы программного обеспечения:
Хранилище данных.
Логика доступа к данным.
Бизнес-логика.
Логика представления.
Основные элементы аппаратного обеспечения:
Клиент.
Сервер.
Сеть.
Существуют различные стили архитектуры системы. В каждом из них используется один из вариантов распределения компонентов программного обеспечения по компонентам аппаратного обеспечения. Основной стиль — это клиент-серверная архитектура, с которой вы познакомитесь в следующем уроке.