-
Notifications
You must be signed in to change notification settings - Fork 17
exam13 3
Реферат к лекции 13 Топология информационных систем
Выполнил Бельский Антон ИДБ-18-06
Проверил Демушкин Андрей ИДБ-18-06
Проектирование программного обеспечения (Software design) - процесс создания проекта программного обеспечения, а также дисциплина, изучающая методы проектирования. С усложнением программных средств и фреймворков (библиотек) мы перешли от последовательного программирования к объектному. Необходимость в иерархии для адресации и упрощения создания сложных массивов кода - вопрос как никогда актуальный как для разработки, так и для долгосрочной поддержки программного продукта. Основными этапами для проектирования системы до момента конкретизации программных средств и модулей является разделение процессов на два типа: "Физический" и "Логический" [1].
Цель этапа логического проектирования - преобразование концептуальной модели на основе выбранной модели данных в логическую модель, не зависимую от особенностей используемые в дальнейшей физической реализации. Для ее достижения выполняются следующие процедуры.
- Выбор модели данных. Чаще всего выбирается реляционная модель данных в связи с наглядностью табличного представления данных и удобства работы с ними.
- Определение набора таблиц исходя из ER-модели и их документирование. Для каждой сущности ЕR-модели создается таблица.
- Нормализация таблиц. Для правильного выполнения нормализации необходимо изучить семантику и особенности использования данных. На этом шаге проверяется корректность структуры, созданная на предыдущем шаге, посредством применения к ним процедуры нормализации.
- Тестирование логической модели данных на выполнение всех рабочих процессов. Производится попытка выполнить все необходимые операции. Если выполнить не удается, то составленная логическая модель данных является неадекватной и содержит ошибки, которые надо устранить.
Цель этапа физического проектирования - описание конкретной реализации, хранения и обработки данных, а также методов доступа посредством баз данных, файловых хранилищ, веб-ресурсов (REST API). Процедуры физического проектирования содержат следующие пункты:
- Проектирование таблиц базы данных средствами выбранной СУБД. Осуществляется выбор реляционной СУБД, которая будет использоваться для создания базы данных, размещаемой на машинных носителях. Глубоко изучаются ее функциональные возможности по проектированию таблиц.
- Реализация бизнес-правил в среде выбранной СУБД.
- Проектирование физической организации хранения и обработки данных.
- Разработка стратегии защиты объектов инфраструктуры.
- Организация мониторинга функционирования базы данных и ее настройка. После создания физического проекта базы данных организуется непрерывное слежение за ее функционированием.
Исходя из вышеописанного ввести следующие понятия: слой и уровень.
Слой (Layer) - это механизм логического структурирования компонентов, из которых состоит программное решение.
Уровень(Level) - это механизм физического структурирования инфраструктуры системы.
В логически разделённых на слои архитектурах информационных систем наиболее часто встречаются следующие четыре слоя:
- Слой представления (слой UI, UIL, пользовательский интерфе́йс, уровень представления в многоуровневой архитектуре)
- Слой приложения (сервисный слой, сервисный уровень или GRASP уровень управления)
- Слой бизнес-логики (слой предметной области, BLL, доменный слой)
- Слой доступа к данным (слой хранения данных, DAL, слой инфраструктуры; логирование, сетевые взаимодействия и другие сервисы, требующиеся для поддержания конкретного слоя бизнес-логики) [2]
Слой представления с которым взаимодействует пользователь или клиентский сервис. Реализацией слоя представления может быть, например, графический пользовательский интерфейс или веб-страница.
Слой приложения реализует взаимодействие между слоями представления и бизнес-логики. Примерами реализаций сервисного слоя являются контроллеры, веб-сервисы и слушатели очередей сообщений.
Слой бизнес-логики на этом слое реализуется основная логика проекта. Компоненты, реализующие бизнес-логику, обрабатывают запросы, поступающие от компонентов сервисного слоя, а так же используют компоненты слоя доступа к данным для обращения к источникам данных.
Слой доступа к данным набор компонентов для доступа к хранимым данным. В качестве источников данных могут выступать различного рода базы данных, SOAP и REST-сервисы, файлы на файловой системе и т.д.
Некоторые также выделяют в отдельный слой бизнес инфраструктуры (BI) то, что расположено между слоем бизнес-логики и слоем инфраструктуры. Иногда этот слой именуется «нижнеуровневым слоем бизнес-логики» или «слоем бизнес-сервисов». Этот слой является очень обобщённым и может быть использован на нескольких уровнях приложения.
Направление зависимостей между слоями идёт от слоя представления к слою доступа к данным. В идеальной ситуации каждый слой зависит только от следующего слоя: слой представления зависит от сервисного слоя (например, представление зависит от контроллера), сервисный слой зависит от слоя бизнес-логики (например, контроллер зависит от бизнес-сервиса), а слой бизнес-логики — от слоя доступа к данным (например, бизнес-сервис зависит от репозитория). При этом компоненты бизнес-слоя могут зависеть от других компонентов бизнес-слоя, тогда как в других слоях аналогичные зависимости нежелательны (например, зависимость одного репозитория от другого). Так же нежелательны зависимости в обратном направлении (бизнес-слой не должен зависеть от сервисного слоя) и зависимости между слоями, не являющимися соседними (сервисный слой не должен зависеть от слоя доступа к данным, например).
Каждый слой зависит только от нижележащего слоя и может существовать без вышерасположенных слоёв. Ещё одна распространённая точка зрения заключается в том, что слои не всегда строго зависят от слоя расположенного непосредственно под ними. Например, в нестрогой многослойной системе (англ. a relaxed layered system) какой-то слой может зависеть от всех расположенных ниже слоёв.
Развитие моделей иерархии и наследования кардинально меняли подход к программированию. Подход деления информационной инфраструктуры на слои и уровни позволяет эффективно прописывать отдельные требования и разграничивать физическую и логическую составляющую проекта.
- Сайт «Википедия» [Электронный ресурс] – Режим доступа: https://ru.wikipedia.org/wiki/%D0%9C%D0%BD%D0%BE%D0%B3%D0%BE%D1%83%D1%80%D0%BE%D0%B2%D0%BD%D0%B5%D0%B2%D0%B0%D1%8F_%D0%B0%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0, свободный. Дата обращения: 14.12.2021 г.
- Сайт «Unetway» [Электронный ресурс] – Режим доступа: https://unetway.com/tutorial/proektirovanie-programmnogo-obespecenia, свободный. Дата обращения: 14.12.2021 г.
- Сайт «Википедия» [Электронный ресурс] – Режим доступа: https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B1%D0%B0%D0%B7_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85, свободный. Дата обращения: 14.12.2021 г.