Фреймворк: различия между версиями
[непроверенная версия] | [непроверенная версия] |
Строка 31: | Строка 31: | ||
[[Кроссплатформенное ПО|Кроссплатформенными]] каркасами бизнес-приложений (для операционных систем [[Linux]], Macintosh и Windows) являются, например, Unity 3D, {{нп5|widget toolkit}}, [[wxWidgets]], [[Qt]], {{нп5|MyCoRe||de|MyCoRe}} или [[FOX toolkit]]. |
[[Кроссплатформенное ПО|Кроссплатформенными]] каркасами бизнес-приложений (для операционных систем [[Linux]], Macintosh и Windows) являются, например, Unity 3D, {{нп5|widget toolkit}}, [[wxWidgets]], [[Qt]], {{нп5|MyCoRe||de|MyCoRe}} или [[FOX toolkit]]. |
||
== Фреймворк концептуальной модели == |
== Фреймворк концептуальной бизнес-модели == |
||
Абстрактное понятие структуры, которое используется в исследованиях для определения возможных способов решения проблемы или представления идеи. |
Абстрактное понятие бизнес-структуры, которое используется в бизнес-исследованиях для определения возможных способов решения бизнес-проблемы или представления бизнес-идеи. |
||
== Бизнес-реализация фреймворка == |
== Бизнес-реализация фреймворка == |
Версия от 23:52, 4 июня 2019
Фре́ймворк, иногда фреймво́рк (англицизм, неологизм от framework «остов, каркас, структура») — заготовки, шаблоны для программной платформы, определяющие архитектуру бизнес-приложения; бизнес-приложение, облегчающее разработку по методологии SCRUM и объединение разных модулей программного проекта.
Уместно использование термина «каркас». Некоторые авторы используют его в качестве основного, не опираясь на англоязычный аналог[1][2][3]. Можно также говорить о каркасном подходе[3] как о подходе к построению программ, где любая конфигурация бизнес-приложения строится из двух частей:
- Постоянная часть — каркас, не меняющийся от конфигурации к конфигурации и несущий в себе гнёзда, в которых размещается вторая, переменная часть;
- Сменные модули (или точки расширения).
Отличие от библиотеки
«Фреймворк» отличается от понятия библиотеки тем, что библиотека может быть использована в программном продукте просто как набор подпрограмм близкой функциональности, не влияя на архитектуру программного продукта и не накладывая на неё никаких ограничений. «Фреймворк» же диктует правила построения архитектуры приложения, задавая на начальном этапе разработки поведение по умолчанию — «каркас», который нужно будет расширять и изменять согласно указанным требованиям. Пример программного фреймворка — C.M.F. (Content Management Framework), а пример библиотеки — модуль электронной почты.
Также, в отличие от библиотеки, которая объединяет в себе набор близкой функциональности, «фреймворк» может содержать большое число разных по тематике библиотек.
Другим ключевым отличием «фреймворка» от библиотеки может быть инверсия управления: пользовательский код вызывает функции библиотеки (или классы) и получает управление после вызова. Во «фреймворке» пользовательский код может реализовывать конкретное поведение, встраиваемое в более общий — «абстрактный» код фреймворка. При этом «фреймворк» вызывает функции (классы) пользовательского кода[4].
Фреймворк программной системы
Это каркас программной системы (или подсистемы). Может включать: вспомогательные программы, библиотеки кода, язык сценариев и другое ПО, облегчающее разработку и объединение разных компонентов большого программного проекта. Обычно объединение происходит за счёт использования единого API.
Примеры: веб-каркасы, такие Rocket на Rust, Laravel, Zend Framework и Symfony на PHP, Django, написанный на Python.
Фреймворк бизнес-приложения
Одно из главных преимуществ при использовании «каркасных» бизнес-приложений — «стандартность» структуры приложения. «Каркасы» стали популярны с появлением графических интерфейсов пользователя, которые имели тенденцию к реализации стандартной структуры для приложений. С их использованием стало гораздо проще создавать средства для автоматического создания графических интерфейсов, так как структура внутренней реализации кода бизнес-приложения стала известна заранее. Для обеспечения каркаса обычно используются техники объектно-ориентированного программирования (например, части приложения могут наследоваться от базовых классов фреймворка).
Одним из первых коммерческих фреймворков бизнес-приложения был MacApp[англ.], написанный Apple для Macintosh. Первоначально созданный с помощью расширенной (объектно-ориентированной) версии языка Object Pascal, впоследствии он был переписан на С++. Другие популярные каркасы для 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) являются, например, Unity 3D, widget toolkit[англ.], wxWidgets, Qt, MyCoRe[нем.] или FOX toolkit.
Фреймворк концептуальной бизнес-модели
Абстрактное понятие бизнес-структуры, которое используется в бизнес-исследованиях для определения возможных способов решения бизнес-проблемы или представления бизнес-идеи.
Бизнес-реализация фреймворка
«Фреймворк» определяется как множество конкретных и абстрактных классов. А также бизнес-определений способов их бизнес-взаимоотношения. Конкретные бизнес-классы обычно реализуют взаимные отношения между бизнес-классами. Абстрактные бизнес-классы представляют собой точки расширения, в которых каркасы могут быть использованы или адаптированы.
Точка расширения — это та «часть» фреймворка, для которой не приведена бизнес-реализация. Соответственно. Каркас концептуальной бизнес-модели состоит из концептуальных классов. А каркас бизнес-приложения — из классов языка программирования общего бизнес-назначения.
Бизнес-процесс создания фреймворка заключается в выборе подмножества задач проблем и их бизнес-реализаций. В ходе бизнес-реализаций общие средства решения бизнес-задач заключаются в конкретных бизнес-классах, а изменяемые бизнес-средства — выносятся в точки расширения.
См. также
Примечания
- ↑ В. Фаронов. Создание бизнес-приложений с помощью C#, Москва, ЭКСМО, 2008, с. 12
- ↑ Методы и технологии реинжиниринга ИС. К. В. Ахтырченко, Т. П. Сорокваша, Институт системного программирования РАН
- ↑ 1 2 Горбунов-Посадов М. М. Расширяемые программы. — М.: Полиптих, 1999. — 336 с. — ISBN 5-901-11801-4.
- ↑ Martin Fowler. InversionOfControl (англ.). Дата обращения: 5 ноября 2013.
Ссылки
Для улучшения этой статьи желательно:
|