
- •2. Что такое объектно-ориентированное программирование?
- •3. Основные принципы объектно-ориентированного подхода.
- •Объектно-ориентированное проектирование
- •1. Основные понятия
- •Языки описания архитектуры
- •Виды (views)
- •Базовые фреймворки для архитектуры по (software architecture frameworks)
- •Отличие архитектуры по от детального проектирования по
- •Примеры архитектурных стилей и моделей
- •3.1. Разработка архитектуры системы
Примеры архитектурных стилей и моделей
Есть много распространенных способов разработки программных модулей и их связей, в том числе:
Blackboard
Клиент-серверная модель (client-server)
Архитектуры, построенные вокруг базы данных (database-centric architecture)
Распределенные вычисления (distributed computing)
Событийная архитектура (event-driven architecture)
Front end and back end
Неявные вызовы (implicit invocations)
Монолитное приложение (monolithic application)
Peer-to-peer
Пайпы и фильтры (pipes and filters)
Plugin
Representational State Transfer
Rule evaluation
Поиск-ориентированная архитектура
Сервис-ориентированная архитектура
Shared nothing architecture
Software componentry
Space based architecture
Структурированная
Трех-уровневая
3.1. Разработка архитектуры системы
Во время анализа требований к системе основное внимание уделялось выяснению того, что должно быть сделано, вне зависимости от того, как это сделать. На этапе разработки системы решается вопрос, как реализовать решения, принятые на этапе анализа.
Сначала разрабатывается общая структура (архитектура) системы. Архитектура системы определяет ее разбиение на модули, задает контекст, в рамках которого принимаются проектные решения на следующих этапах разработки. Приняв решения о структуре системы в целом, разработчик системы производит ее разбиение на относительно независимые в реализации части (модули), разделяя разработку между разработчиками выделенных модулей, что дает возможность расширить фронт работ, подключить к разработке системы новых исполнителей.
На этапе конструирования системы ее разработчик должен принять следующие решения:
определить разбиение системы на модули;
выявить асинхронный параллелизм в системе;
определить состав вычислительного комплекса, на котором будет работать система;
распределить компоненты системы по процессорам вычислительного комплекса и независимым задачам;
организовать управление хранилищами данных;
организовать управление глобальными ресурсами;
выбрать принципы реализации управления программным обеспечением;
организовать управление пограничными ситуациями.