Каркас архитектуры: различия между версиями

Содержимое удалено Содержимое добавлено
мНет описания правки
Строка 1:
{{main|Архитектурные приемы, механизмы и решения с применением Си-шарп}}
 
'''Каркасный подход''' - — подход к построению программного обеспечения (ПО), где любая конкретная конфигурация программы строится из двух частей. Первая, постоянная часть — ''каркас'', не меняющийся от конфигурации к конфигурации и несущий в себе ''гнезда'', в которых размещается вторая, переменная часть — ''сменные модули''. Сменный модуль, в свою очередь, может содержать гнезда. В этом случае, наряду с каркасом программы в целом, можно говорить и о каркасе сменного модуля.
 
Ранее мы уже говорили, что если вы хотите, чтобы отдельные части вашего алгоритма можно было применять в дальнейшем при построении новых программ, то единственный реальный путь к этому — вычленить претендующие на многократное использование функциональные компоненты вашей программы и оформить их в виде модулей. Также обсуждалось, что модули из библиотеки играю только подчиненную роль: разработчик новой программы самостоятельно пишет ведущую часть, которая время от времени обращается к таким модулям для решения частных подзадач.
 
Но каркасный подход предполагает, что не менее полезным может оказаться многократно использовать ведущие части — ''каркасы''. Апофеозом многократного использования считается ''сборочное программирование''. Основные усилия по созданию программы хотелось бы направлять не на непосредственное кодирование, а на подбор, настройку и организацию совместного существования совокупности позаимствованных многократно используемых модулей.
 
== Изменяемость (гибкость) ПО ==
 
Любая программа, активно функционирующая на протяжении достаточно длительного времени, неизбежно будет изменяться. Причин великое множество: устранение неточностей, повышение эффективности, отслеживание изменение внешней среды (напр., реакция на появление новых аппаратных или программных средств), попытки применить программу для решения смежной или более общей задачи. Если не предпринимать специальных усилий, внесение изменений нередко оказывается чрезвычайно трудоемким и болезненным процессом, чреватым длительной утратой работоспособности отлаженного ранее материала. Главный рецепт облегчения внесения изменений — тщательно продуманная модульная структура программы. Если когда-то требуется пересмотреть решение, то тем самым четко очерчивается изменяемая область программы: изменения не должны выйти за пределы оформленного таким образом модуля.
 
Существует тесная связь между многократной используемостью и изменяемостью. Чтобы ее почувствовать, достаточно отметить следующие: части (в измененной программе), не затронутые модификациями → используются повторно. Это отменяет то представление объектного подхода, что повторно используемые части можно выделить в функции и потом использовать. Повторно используемые части должны обладать важным свойством — они постоянны и не подвержены изменениям. А функции как правило имеют тенденцию изменяться. Поэтому повторно использоваться может лишь каркас, обладающий постоянством, а объектные функции — суть изменяемые части, которые лишь при наличии специальных средств можно использовать многократно (а не повторно). Отсутствие таких средств делает повторное использование опасным как для окружения, так и для работоспособности. Такие специальные средства — это ''язык сборки'', в частности реализуется или препроцессором или интерпретатором метаданных.
 
 
Строка 99:
== Метаинформация и генерация кода ==
 
...
 
 
== Построение каркасной архитектуры без метаинформации ==
 
...
 
{{Далее|Компоненты}}
Строка 111:
== Литература ==
 
* Для данной лекции использовался в частности материал: М. М. Горбунов-посадов, "«Расширяемые программы"», 1999