Фреймворк

Фреймворк

Фреймворк (англ. framework — каркас, структура) — структура программной системы; программное обеспечение, облегчающее разработку и объединение разных компонентов большого программного проекта. В отличие от библиотек, которые объединяют набор подпрограмм близкой функциональности, фреймворк содержит в себе большое количество разных по назначению библиотек. Употребляется также слово «каркас», а некоторые авторы используют его в качестве основного, в том числе не базируясь вообще на англоязычном аналоге.[1][2][3] Можно также говорить о каркасном подходе[3] как о подходе к построению программ, где любая конфигурация программы строится из двух частей: первая, постоянная часть — каркас, не меняющийся от конфигурации к конфигурации и несущий в себе гнезда, в которых размещается вторая, переменная часть — сменные модули (или точки расширения).

Содержание

Фреймворк программной системы

Это каркас программной системы (или подсистемы). Может включать вспомогательные программы, библиотеки кода, язык сценариев и другое ПО, облегчающее разработку и объединение разных компонентов большого программного проекта. Обычно объединение происходит за счёт использования единого API.

Примеры: веб-фреймворки Symfony, Django.

Отличается от библиотеки тем, что выполняет код, написанный для него, а не исполняется сам. Пример программного фреймворка — CMF (Content Management Framework), а пример библиотеки — модуль электронной почты.

Также, в отличие от библиотеки, которая объединяет в себе набор близкой функциональности, каркас содержит в себе большое число разных по тематике библиотек.

Фреймворк приложения

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

Одним из первых коммерческих фреймворков приложения был MacApp, написанный Apple под Macintosh. Первоначально созданный с помощью расширенной (объектно-ориентированной) версии языка Паскаль, впоследствии он был переписан на C++. Другие популярные каркасы для Macintosh включали Metrowerks Powerplant и MacZoop (все основаны на Carbon). Также WebObjects от NeXT.

В различной степени фреймворки приложения представляют собой Cocoa для Mac OS X, а также свободные фреймворки, существующие как часть проектов Mozilla, OpenOffice.org, GNOME и KDE.

Microsoft создала похожий продукт для Windows, который называется «Microsoft Foundation Classes» (MFC). На данный момент основным продуктом Microsoft для разработки ПО предлагается .NET Framework.

Кроссплатформенными каркасами приложений для операционных систем Linux, Macintosh и Windows являются, например, widget toolkit, wxWidgets, Qt, MyCore или FOX toolkit.

Фреймворк концептуальной модели

Абстрактное понятие структуры, которое используется в исследованиях для определения возможных способов решения проблемы или представления идеи.

Реализация фреймворка

Фреймворк определяется как множество конкретных и абстрактных классов, а также определений способов их взаимоотношения. Конкретные классы обычно реализуют взаимные отношения между классами. Абстрактные классы представляют собой точки расширения, в которых каркасы могут быть использованы или адаптированы.

Точка расширения — это та часть фреймворка, для которого не приведена реализация. Соответственно каркас концептуальной модели состоит из концептуальных классов, а каркас программной системы из классов языка программирования общего назначения.

Процесс создания фреймворка заключается в выборе подмножества задач проблемы и их реализаций. В ходе реализаций общие средства решения задач заключаются в конкретных классах, а изменяемые средства выносятся в точки расширения.

См. также

Примечания

  1. В. Фаронов. Создание приложений с помощью C#, Москва, ЭКСМО, 2008, с. 12
  2. Методы и технологии реинжиниринга ИС. К. В. Ахтырченко, Т. П. Сорокваша, Институт системного программирования РАН
  3. 1 2 Горбунов-Посадов М. М. Расширяемые программы. — М.: Полиптих, 1999. — 336 с. — ISBN 5-901-11801-4

Ссылки



Wikimedia Foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Полезное


Смотреть что такое "Фреймворк" в других словарях:

  • Ext (фреймворк) — Ext JS Тип JavaScript библиотека Разработчик Jack Slocum, Brian Moeskau, Aaron Conran, Rich Waters Версия 3.1.0 (16 декабря, 2009 г.) Лицензия GPLv3 и коммерческая …   Википедия

  • Мультимедийный фреймворк — (англ. multimedia framework) фреймворк для работы с аудио и видеоданными. Обычно, состоит из системы плагинов (кодеков, фильтров, (де)мультиплексаторов, вывода на экран, работы с файлами и т.п.), которые можно соединить в граф для… …   Википедия

  • Prototype (фреймворк) — У этого термина существуют и другие значения, см. Прототип. Prototype JavaScript Framework Тип JavaScript библиотека Разработчик Prototype Core Team Операционная система …   Википедия

  • Lift (фреймворк) — У этого термина существуют и другие значения, см. Lift. Lift Тип Фреймворк для разработки веб приложений Разработчик Группа под руководством Дэвида Полака Написана на Scala …   Википедия

  • CSS-фреймворк — CSS Framework  фреймворк, созданный для упрощения работы верстальщика, быстроты разработки и исключения максимально возможного числа ошибок вёрстки (проблемы совместимости различных версий браузеров и т. д.). Как и библиотеки… …   Википедия

  • Spring Framework — У этого термина существуют и другие значения, см. Spring. Spring Framework Тип Application framework Разработчик SpringSource Написана на …   Википедия

  • CodeIgniter — Тип Программный каркас для создания веб приложений Разработчик EllisLab, Inc. Операционная система Кроссплатформенный Последняя версия 2.1.3 (8 октября …   Википедия

  • Apache Felix — Apache Felix …   Википедия

  • Content Management Framework — (CMF)  это каркас (фреймворк программной системы) для проектирования систем управления контентом. На их основе создаются системы управления содержимым (CMS), а также веб приложения. Содержание 1 Преимущества 2 Архитектура …   Википедия

  • JavaScript — Не следует путать с Java. JavaScript Класс языка: мультипарадигменный …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»