Фреймворк

Поделись знанием:
Перейти к: навигация, поиск

Фре́ймворк (иногда фреймво́рк; англицизм, неологизм от framework — каркас, структура) — программная платформа, определяющая структуру программной системы; программное обеспечение, облегчающее разработку и объединение разных компонентов большого программного проекта.

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

  1. Постоянная часть — каркас, не меняющийся от конфигурации к конфигурации и несущий в себе гнёзда, в которых размещается вторая, переменная часть;
  2. Сменные модули (или точки расширения).




Отличие от библиотеки

«Фреймворк» отличается от понятия библиотеки тем, что библиотека может быть использована в программном продукте просто как набор подпрограмм близкой функциональности, не влияя на архитектуру программного продукта и не накладывая на неё никаких ограничений. В то время как «фреймворк» диктует правила построения архитектуры приложения, задавая на начальном этапе разработки поведение по умолчанию — «каркас», который нужно будет расширять и изменять, согласно указанным требованиям. Пример программного фреймворка — C.M.F. (Content Management Framework), а пример библиотеки — модуль электронной почты.

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

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

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

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

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

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

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

Одним из первых коммерческих фреймворков приложения был MacApp[en], написанный Apple для «Macintosh». Первоначально созданный с помощью расширенной (объектно-ориентированной) версии языка «Object Pascal», впоследствии он был переписан на «С++». Другие популярные каркасы для «Macintosh» включали:

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

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

Кроссплатформенными каркасами приложений (для операционных систем «Linux», «Macintosh» и «Windows») являются, например, widget toolkit[en], wxWidgets, Qt, MyCoRe[de] или FOX toolkit.

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

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

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

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

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

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

См. также

Напишите отзыв о статье "Фреймворк"

Примечания

  1. В. Фаронов. Создание приложений с помощью C#, Москва, ЭКСМО, 2008, с. 12
  2. [www.citforum.ru/SE/project/isr/ Методы и технологии реинжиниринга ИС. К. В. Ахтырченко, Т. П. Сорокваша], Институт системного программирования РАН
  3. 1 2 Горбунов-Посадов М. М. [keldysh.ru/gorbunov/ Расширяемые программы]. — М.: Полиптих, 1999. — 336 с. — ISBN 5-901-11801-4.
  4. Martin Fowler. [martinfowler.com/bliki/InversionOfControl.html InversionOfControl] (англ.). Проверено 5 ноября 2013.

Ссылки


Отрывок, характеризующий Фреймворк

Пьер вышел из экипажа и мимо работающих ополченцев взошел на тот курган, с которого, как сказал ему доктор, было видно поле сражения.
Было часов одиннадцать утра. Солнце стояло несколько влево и сзади Пьера и ярко освещало сквозь чистый, редкий воздух огромную, амфитеатром по поднимающейся местности открывшуюся перед ним панораму.
Вверх и влево по этому амфитеатру, разрезывая его, вилась большая Смоленская дорога, шедшая через село с белой церковью, лежавшее в пятистах шагах впереди кургана и ниже его (это было Бородино). Дорога переходила под деревней через мост и через спуски и подъемы вилась все выше и выше к видневшемуся верст за шесть селению Валуеву (в нем стоял теперь Наполеон). За Валуевым дорога скрывалась в желтевшем лесу на горизонте. В лесу этом, березовом и еловом, вправо от направления дороги, блестел на солнце дальний крест и колокольня Колоцкого монастыря. По всей этой синей дали, вправо и влево от леса и дороги, в разных местах виднелись дымящиеся костры и неопределенные массы войск наших и неприятельских. Направо, по течению рек Колочи и Москвы, местность была ущелиста и гориста. Между ущельями их вдали виднелись деревни Беззубово, Захарьино. Налево местность была ровнее, были поля с хлебом, и виднелась одна дымящаяся, сожженная деревня – Семеновская.
Все, что видел Пьер направо и налево, было так неопределенно, что ни левая, ни правая сторона поля не удовлетворяла вполне его представлению. Везде было не доле сражения, которое он ожидал видеть, а поля, поляны, войска, леса, дымы костров, деревни, курганы, ручьи; и сколько ни разбирал Пьер, он в этой живой местности не мог найти позиции и не мог даже отличить ваших войск от неприятельских.
«Надо спросить у знающего», – подумал он и обратился к офицеру, с любопытством смотревшему на его невоенную огромную фигуру.
– Позвольте спросить, – обратился Пьер к офицеру, – это какая деревня впереди?
– Бурдино или как? – сказал офицер, с вопросом обращаясь к своему товарищу.
– Бородино, – поправляя, отвечал другой.
Офицер, видимо, довольный случаем поговорить, подвинулся к Пьеру.
– Там наши? – спросил Пьер.
– Да, а вон подальше и французы, – сказал офицер. – Вон они, вон видны.
– Где? где? – спросил Пьер.
– Простым глазом видно. Да вот, вот! – Офицер показал рукой на дымы, видневшиеся влево за рекой, и на лице его показалось то строгое и серьезное выражение, которое Пьер видел на многих лицах, встречавшихся ему.
– Ах, это французы! А там?.. – Пьер показал влево на курган, около которого виднелись войска.
– Это наши.
– Ах, наши! А там?.. – Пьер показал на другой далекий курган с большим деревом, подле деревни, видневшейся в ущелье, у которой тоже дымились костры и чернелось что то.
– Это опять он, – сказал офицер. (Это был Шевардинский редут.) – Вчера было наше, а теперь его.
– Так как же наша позиция?
– Позиция? – сказал офицер с улыбкой удовольствия. – Я это могу рассказать вам ясно, потому что я почти все укрепления наши строил. Вот, видите ли, центр наш в Бородине, вот тут. – Он указал на деревню с белой церковью, бывшей впереди. – Тут переправа через Колочу. Вот тут, видите, где еще в низочке ряды скошенного сена лежат, вот тут и мост. Это наш центр. Правый фланг наш вот где (он указал круто направо, далеко в ущелье), там Москва река, и там мы три редута построили очень сильные. Левый фланг… – и тут офицер остановился. – Видите ли, это трудно вам объяснить… Вчера левый фланг наш был вот там, в Шевардине, вон, видите, где дуб; а теперь мы отнесли назад левое крыло, теперь вон, вон – видите деревню и дым? – это Семеновское, да вот здесь, – он указал на курган Раевского. – Только вряд ли будет тут сраженье. Что он перевел сюда войска, это обман; он, верно, обойдет справа от Москвы. Ну, да где бы ни было, многих завтра не досчитаемся! – сказал офицер.
Старый унтер офицер, подошедший к офицеру во время его рассказа, молча ожидал конца речи своего начальника; но в этом месте он, очевидно, недовольный словами офицера, перебил его.
– За турами ехать надо, – сказал он строго.
Офицер как будто смутился, как будто он понял, что можно думать о том, сколь многих не досчитаются завтра, но не следует говорить об этом.
– Ну да, посылай третью роту опять, – поспешно сказал офицер.
– А вы кто же, не из докторов?
– Нет, я так, – отвечал Пьер. И Пьер пошел под гору опять мимо ополченцев.
– Ах, проклятые! – проговорил следовавший за ним офицер, зажимая нос и пробегая мимо работающих.
– Вон они!.. Несут, идут… Вон они… сейчас войдут… – послышались вдруг голоса, и офицеры, солдаты и ополченцы побежали вперед по дороге.
Из под горы от Бородина поднималось церковное шествие. Впереди всех по пыльной дороге стройно шла пехота с снятыми киверами и ружьями, опущенными книзу. Позади пехоты слышалось церковное пение.
Обгоняя Пьера, без шапок бежали навстречу идущим солдаты и ополченцы.
– Матушку несут! Заступницу!.. Иверскую!..
– Смоленскую матушку, – поправил другой.
Ополченцы – и те, которые были в деревне, и те, которые работали на батарее, – побросав лопаты, побежали навстречу церковному шествию. За батальоном, шедшим по пыльной дороге, шли в ризах священники, один старичок в клобуке с причтом и певчпми. За ними солдаты и офицеры несли большую, с черным ликом в окладе, икону. Это была икона, вывезенная из Смоленска и с того времени возимая за армией. За иконой, кругом ее, впереди ее, со всех сторон шли, бежали и кланялись в землю с обнаженными головами толпы военных.
Взойдя на гору, икона остановилась; державшие на полотенцах икону люди переменились, дьячки зажгли вновь кадила, и начался молебен. Жаркие лучи солнца били отвесно сверху; слабый, свежий ветерок играл волосами открытых голов и лентами, которыми была убрана икона; пение негромко раздавалось под открытым небом. Огромная толпа с открытыми головами офицеров, солдат, ополченцев окружала икону. Позади священника и дьячка, на очищенном месте, стояли чиновные люди. Один плешивый генерал с Георгием на шее стоял прямо за спиной священника и, не крестясь (очевидно, пемец), терпеливо дожидался конца молебна, который он считал нужным выслушать, вероятно, для возбуждения патриотизма русского народа. Другой генерал стоял в воинственной позе и потряхивал рукой перед грудью, оглядываясь вокруг себя. Между этим чиновным кружком Пьер, стоявший в толпе мужиков, узнал некоторых знакомых; но он не смотрел на них: все внимание его было поглощено серьезным выражением лиц в этой толпе солдат и оиолченцев, однообразно жадно смотревших на икону. Как только уставшие дьячки (певшие двадцатый молебен) начинали лениво и привычно петь: «Спаси от бед рабы твоя, богородице», и священник и дьякон подхватывали: «Яко вси по бозе к тебе прибегаем, яко нерушимой стене и предстательству», – на всех лицах вспыхивало опять то же выражение сознания торжественности наступающей минуты, которое он видел под горой в Можайске и урывками на многих и многих лицах, встреченных им в это утро; и чаще опускались головы, встряхивались волоса и слышались вздохи и удары крестов по грудям.