Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Каркасы, фреймворки





Архитектура носит не только описательный характер в виде проектной документации, различного рода диаграмм и пр. В конечном итоге архитектура воплощается в программном продукте. В одних приложениях она размыта по всем компонентам программы и не вычленена в отдельные модули. В других – архитектурные конструкции реализованы в отдельных модулях и четко отделены от той части программы, которая реализует прикладную функциональность. Наиболее ярким примером второго варианта являются т.н. каркасы.

Каркас представляет собой неизменяющуюся (мало изменяющуюся) часть программы, которая реализует системную функциональность приложения. В каркасе предусмотрены «посадочные места», для подстыковки пользовательских модулей. Такие посадочные места называют еще точками расширения. В отдельных модулях производится сборка программы – наполнение каркаса пользовательскими модулями, т. е. конфигурирование. Здесь же обычно производится и настройка других параметров приложения.

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

Важное свойство каркаса заключается в том, что он может запускаться пустым, т.е. без пользовательских модулей. Данное свойство позволяет создавать программу поэтапно, постепенно начиняя каркас все новыми и новыми модулями, наращивая, таким образом, функциональность программы (инкрементная разработка). На начальных этапах, пока разрабатываемая система невелика, отлаживаются ключевые системные функции: безопасность, коммуникации и пр.

Отличительная черта каркаса от обычной библиотеки – т.н. инверсия управления. Когда используется обычная библиотека, то пользователь в своем коде вызывает библиотечные методы. При использовании каркаса наоборот – запущенный каркас сам вызывает методы пользователя, ранее зарегистрированные в каркасе. Данный прием известен еще как принцип Голливуда: «Не звони нам, мы сами позвоним тебе».

При внимательном рассмотрении можно увидеть, что программа на основе каркаса представляет собой ничто иное, как систему с открытой архитектурой (см. п. 1.6), где каркас – ее инфраструктура. Следовательно, все преимущества открытых систем остаются в силе.

Разработка с использованием каркаса может выглядеть следующим образом. Разработчик берет из библиотеки готовый каркас, из той же или из других библиотек берет стандартные модули для начинки каркаса и осуществляет сборку программы в нужной конфигурации (агрегирование). Недостающие модули разрабатываются заново, но их, как правило, немного.

Указанная процедура проста и легко автоматизируется. Как следствие, на рынке возникло множество систем разработки, ориентированных на каркасную архитектуру создаваемых приложений. Часто такие системы возникали на базе популярных библиотек, которые развивались, расширяли свою функциональность, дополнялись специфическими средствами разработки. Со временем во многих системах программирования появилась возможность автоматической генерации каркасов приложений для специфических областей применения. Такие системы разработки стали называть фреймворками. Подобный путь прошли Delphi, Qt и пр. Некоторые системы изначально разрабатывались, как фреймворки (Joomla!, 1С и др).

Одними из первых фреймворков были системы программирования графического интерфейса пользователя. В свое время ярким событием стало появление систем визуального программирования, например, Delphi. Разработчик в буквальном смысле рисует на экране компьютера нужный интерфейс программы из готовых «кирпичиков» – компонентов пользовательского интерфейса, предоставляемых библиотекой VCL. Среда Delphi по созданному интерфейсу генерирует каркас программы автоматически. Разработчику остается реализовать отдельные специфические, как правило, небольшие части кода.

На примере Delphi можно проследить следующий прием привлечения сторонних разработчиков. Среда поставляется со встроенным набором типовых визуальных компонент библиотеки VCL, кроме того, пользователям предоставляются инструменты разработки для своих собственных компонент и добавления их к общей палитре компонент. Таким образом, к проекту было бесплатно привлечено большое количество третьих фирм и отдельных разработчиков, которые существенно расширили функциональность системы, популяризировали и усилили ее рыночную привлекательность (библиотеки RxLib, JEDI, GLScene и др.).

Date: 2015-09-24; view: 433; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию