Фреймворк: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
Строка 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] как о подходе к построению программ, где любая конфигурация бизнес-приложения строится из двух частей:

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

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

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

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

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

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

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

Примеры: веб-каркасы, такие Rocket на Rust, Laravel, Zend Framework и Symfony на PHP, Django, написанный на Python.

Фреймворк бизнес-приложения

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

Одним из первых коммерческих фреймворков бизнес-приложения был MacApp[англ.], написанный 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) являются, например, Unity 3D, widget toolkit[англ.], wxWidgets, Qt, MyCoRe[нем.] или FOX toolkit.

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

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

Бизнес-реализация фреймворка

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

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

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

См. также

Примечания

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

Ссылки