Семья

Методы интерпретации экспериментальных данных. Функциональный подход Функциональный подход к организации материала

Еще больше чем организационные эти методы заслуживают наименования подходов, поскольку являются в первую очередь объяснительными принципами, предопределяющими направление интерпретации результатов исследования. В научной практике получили развитие генетический, структурный, функциональный, комплексный и системный подходы. Использование того или иного метода не означает отсечения других. Наоборот, обычным делом в психологии является сочетание подходов. И это относится не только к исследовательской практике, но и к психодиагностике, психологическому консультированию и психокоррекции .

Генетический метод

Генетический метод – это способ исследования и объяснения явлений (в том числе психических), основанный на анализе их развития как в онтогенетическом, так и филогенетическом планах. При этом требуется установление: 1) начальных условий возникновения явления, 2) главных этапов и 3) основных тенденций его развития. Цель метода – выявление связи изучаемых явлений во времени, прослеживание перехода от низших форм к высшим.

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

Генетический подход, вообще-то, может рассматриваться как методическая реализация одного из основных принципов психологии, а именно принципа развития . При таком видении другие варианты реализации принципа развития допустимо рассматривать как модификации генетического подхода. Например, исторический и эволюционный подходы.

Структурный метод

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

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


Неисчерпаемым примером подобного моделирования служит представление структуры и типов личности: трехэлементная модель по 3. Фрейду; типы личности по Юнгу; «круг Айзенка»; многофакторная модель Р. Ассаджиоли. Не отстала от зарубежной психологии в этом вопросе и наша отечественная наука: эндо- и экзопси-хика по А. Ф. Лазурскому и развитие его взглядов у В. Д. Балина ; структура личности из четырех сложных комплексов по Б. Г. Ананьеву; индивидно-индивидуальная схема В. С. Мерлина; перечни компонентов личности у А. Г. Ковалева и П. И. Иванова; динамическая функциональная структура личности по К. К. Платонову; схема личности по А. И. Щербакову и т. д.

Структурный подход – атрибут любого исследования, посвященного изучению конституциональной организации психики и строения ее материального субстрата – нервной системы. Здесь можно упомянуть о типологии ВНД И. П. Павлова и ее развитии Б. М. Тепловым, В. Д. Небылицыным и другими. Широкое признание получили модели В. М. Русалова, отражающие морфологическую, нейро- и психодинамическую конституции человека . Структурные модели человеческой психики в пространственном и функциональном аспектах представлены в работах . Классическими образцами рассматриваемого подхода служат ассоциативная психология Ф. Гартли и ее следствия (в частности, психофизика «чистых ощущений» XIX века), а также структурная психология В. Вундта и Э. Титченера. Специфической конкретизацией подхода выступает метод микроструктурного анализа, включающий в себя элементы и генетического, ифункционального, и системного подходов .

Функциональный метод

Функциональный подход, естественно, ориентирован на выявление и изучение функций объектов (явлений). Неоднозначность трактовки в науке понятия «функция» затрудняет определение данного подхода, а также идентификацию с ним тех или иных направлений психологических исследований. Будем придерживаться мнения, что функция есть проявление свойств объектов в определенной системе отношений, а свойства есть проявление качества объекта при его взаимодействии с другими объектами. Таким образом, функция – это реализация соотношения объекта и среды, а еще уже – «соответствие между средой и системой» .

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

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

Комплексный метод

Комплексный подход – это направление, рассматривающее объект исследования как совокупность компонентов, подлежащих изучению с помощью соответствующей совокупности методов. Компоненты могут быть как относительно однородными частями целого, так и его разнородными сторонами, характеризующими изучаемый объект в разных аспектах. Часто комплексный подход предполагает изучение сложного объекта методами комплекса наук, т. е. организацию междисциплинарного исследования. Очевидно, что комплексный подход предполагает применение в той или иной мере и всех предыдущих интерпретационных методов.

Яркий пример реализации комплексного подхода в науке – концепция человекознания, согласно которой человек как наисложнейший объект изучения подлежит согласованному исследованию большого комплекса наук. В психологии эта идея комплексности изучения человека была четко сформулирована Б. Г. Ананьевым . Человек рассматривается одновременно как представитель биологического вида Homo sapiens (индивид), как носитель сознания и активный элемент познавательной и преобразующей действительность деятельности (субъект), как субъект социальных отношений (личность) и как уникальное единство социально значимых биологических, социальных и психологических особенностей (индивидуальность). Такой взгляд на человека позволяет исследовать его психологическое содержание в двух планах: субординационном (иерархическом) и координационном . В первом случае психические явления рассматриваются как соподчиненные системы: более сложные и общие подчиняют и включают в себя более простые и элементарные. Во втором – психические явления рассматриваются как относительно автономные образования, но тесно связанные и взаимодействующие друг с другом. Подобное всеобъемлющее и сбалансированное изучение человека и его психики по сути смыкается уже с системным подходом.

Системный метод

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

Наиболее ощутимым толчком к осознанию системного подхода как неотъемлемого методологического и методического компонента научного познания и к его строгому научному оформлению послужили работы австро-американского ученого Л. Берталанфи (1901-1972), в которых он разработал общую теорию систем . Система есть некоторая целостность, взаимодействующая с окружающей средой и состоящая из множества элементов, находящихся между собой в некоторых отношениях и связях. Организация этих связей между элементами называется структурой. Иногда структуру толкуют расширительно, доводя ее понимание до объема системы. Такая трактовка характерна для нашей житейской практики: «коммерческие структуры», «государственные структуры», «политические структуры» и т. д. Изредка такой взгляд на структуру встречается и в науке, хотя и с определенными оговорками . Элемент – мельчайшая часть системы, сохраняющая ее свойства в пределах данной системы. Дальнейшее расчленение этой части ведет к потере соответствующих свойств. Так, атом – элемент с определенными физическими свойствами, молекула – с химическими свойствами, клетка – элемент со свойствами жизни, человек (личность) – элемент социальных отношений. Свойства элементов определяются их положением в структуре и, в свою очередь, определяют свойства системы. Но свойства системы не сводятся к сумме свойств элементов. Система как целое синтезирует (объединяет и обобщает) свойства частей и элементов, в результате чего она обладает свойствами более высокого уровня организации, которые во взаимодействии с другими системами могут представать как ее функции. Любая система может рассматриваться, с одной стороны, как объединение более простых (мелких) подсистем со своими свойствами и функциями, а с другой – как подсистема более сложных (крупных) систем. Например, любой живой организм является системой органов, тканей, клеток. Он же является элементом соответствующей популяции, которая, в свою очередь, является подсистемой животного или растительного мира и т. д.

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

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

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

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

Предыдущие подходы являются фактически органичными компонентами системного подхода. Иногда даже их рассматривают как его разновидности . Некоторые авторы сопоставляют эти подходы с соответствующими уровнями качеств человека, составляющих предмет психологического исследования .

В настоящее время большинство научных исследований проводится в русле системного подхода . Наиболее полное освещение применительно к психологии системный подход нашел в следующих работах .

Функциональное управление

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

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

Достоинства ФП:

    Начальник всегда прав => быстрая реакция на указания выполнение

    «Установил и пользуйся» - быстрый запуск организации в работу

    «Твори и пробуй» - поощрение креатива

    Ясно выраженная ответственность => для продвижения по карьерной лестнице достаточно эмоционального фактора

BPM- управление бизнес-процессами это моделирования, выполнения, управления и оптимизации бизнес-процессов.

Задачи BPM:

    Получение знаний по отлаживанию и документированию различных видов организаций

    Знание по идентификации и классификации

    Установление характеристик качества бизнес процессов

    Модифицированию прежнего менеджмента

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

  1. Понятие «организации». Виды организаций, их различия Процессный подход к управлению организацией. Понятие бизнес-модели. Особенности процессно-ориентированной организации.

Организация - социально техническое экономическая система, группа людей стремящееся к достижение общих целей

Функционирование – совместная деятельность

Организация состоит:

    Неформальные

    Формальные (право юридического лица)

Неформальная организация - спонтанно возникающая группа людей, достаточно регулярно вступающих во взаимодействие друг с другом.

Формальные:

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

Формальные организации подразделяются на коммерческие и некоммерческие организации.

Коммерческие организации - организации, деятельность которых направлена на систематическое получение прибыли от пользования имуществом, продажи товаров, выполнения работ или оказания услуг.

Некоммерческие организации - организации, не имеющие в качестве основной цели своей деятельности извлечение прибыли и не распределяющие полученную прибыль между участниками организации.

Процессный подход к управлению

Управление процесс информативного взаимодействия субъекта управления (СУ) и объекта управления (ОУ), побуждающий совершить некоторое действие на достижение целей субъекта

Схема управления:

Деятельность любой организации представляет собой непрерывный процесс, поэтому если рассматривать фирму как систему процессов. Процессный подход является одним из возможных аспектов оптимизации бизнеса. Система, построенная на процессах должны отражать суть изучаемой деятельности и развитие предприятие.

Процессный подход рассматривает управление как не прерывную серию взаимосвязяных управленческих функций:

    Планирование действий

    Организация действий

    Мотивация действий

    Координация действий

    Контроль действий

А также дополнительные связующие процессы: коммуникация и принятие решений.

Процессно-ориентировочная организация – это организация которая может обеспечить внутри себя условия непрерывного процесса производиться товаров и услуг, включая обеспечение контроля и качества результатов по этапам процесса, при взаимодействии подразделений и сотрудников.

Условия непрерывности – возможность организации замены оборудования и сотрудников без создания критической ситуации.

Бизнес-модель - компактное упрощённое представление о бизнесе, предназначенное для целостного представления и анализа деятельности всей системы взаимосвязанных бизнес-процессов бизнеса

Особенности процессно-ориентированной организации:

    Наличие бизнес моделей.

    Организованная система управления информации

    Разработка чётко установленного порядка в разработке ведении документации.

    Организация имеет иерархию уровней управлений

    Уровень стратегического управления (принятие решений с перспективой на 3-5 лет)

    Уровень управлению эффективности производится (1-1,5 лет)

    Операционная деятельность. -Операционное управление (планирование в рамках календарного месяца) -Оперативное управление (текущего месяца)

    Управление реального времени (то что сейчас)

    Дает возможность определить показатели и критерии оценки результативности, управления на каждом этапе управленческой цепочки.

Что дает процессная ориентация:

    Сокращение времени выполнения процессов за счет регламентации и автоматизации

    Увеличение качества выпускаемой продукции или оказания услуг

    Введено управление на основе показателей

    Гибкость, (готовность к переменам содруников)

Функциона́льное программи́рование - раздел дискретной математики и парадигма программирования , в которой процесс вычисления трактуется как вычисление значений функций в математическом понимании последних (в отличие от функций как подпрограмм в процедурном программировании).

Противопоставляется парадигме императивного программирования , которая описывает процесс вычислений как последовательное изменение состояний (в значении, подобном таковому в теории автоматов). При необходимости, в функциональном программировании вся совокупность последовательных состояний вычислительного процесса представляется явным образом, например, как список .

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

На практике отличие математической функции от понятия «функции» в императивном программировании заключается в том, что императивные функции могут опираться не только на аргументы, но и на состояние внешних по отношению к функции переменных, а также иметь побочные эффекты и менять состояние внешних переменных. Таким образом, в императивном программировании при вызове одной и той же функции с одинаковыми параметрами, но на разных этапах выполнения алгоритма, можно получить разные данные на выходе из-за влияния на функцию состояния переменных. А в функциональном языке при вызове функции с одними и теми же аргументами мы всегда получим одинаковый результат: выходные данные зависят только от входных. Это позволяет средам выполнения программ на функциональных языках кешировать результаты функций и вызывать их в порядке, не определяемом алгоритмом и распараллеливать их без каких-либо дополнительных действий со стороны программиста (что обеспечивают функции без побочных эффектов - чистые функции ).

Языки функционального программирования [ | ]

Ещё не полностью функциональные изначальные версии и Лиспа , и APL внесли особый вклад в создание и развитие функционального программирования. Более поздние версии Lisp, такие как Scheme , а также различные варианты APL поддерживали все свойства и концепции функционального языка .

Как правило, интерес к функциональным языкам программирования, особенно чисто функциональным, был скорее научный, нежели коммерческий. Однако, такие примечательные языки как Erlang , OCaml , Haskell , Scheme (после 1986) а также специфические (статистика), Wolfram (символьная математика), и (финансовый анализ), и XSLT (XML) находили применение в индустрии коммерческого программирования. Такие широко распространённые декларативные языки как SQL и Lex /Yacc содержат некоторые элементы функционального программирования, например, они остерегаются использовать переменные. Языки работы с электронными таблицами также можно рассматривать как функциональные, потому что в ячейках электронных таблиц задаётся массив функций, как правило зависящих лишь от других ячеек, а при желании смоделировать переменные приходится прибегать к возможностям императивного языка макросов.

История [ | ]

Первым функциональным языком был Лисп , созданный Джоном Маккарти в период его работы в в конце пятидесятых и реализованный, первоначально, для IBM 700/7000 (англ.) русск. . В Лиспе впервые введено множество понятий функционального языка, хотя при этом в языке применяется не только парадигма функционального программирования . Дальнейшим развитием Лиспа стали такие языки как Scheme и Dylan .

Концепции [ | ]

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

Функции высших порядков [ | ]

Функции высших порядков - это такие функции, которые могут принимать в качестве аргументов и возвращать другие функции. Математики такую функцию чаще называют оператором , например, оператор взятия производной или оператор интегрирования.

Функции высших порядков позволяют использовать карринг - преобразование функции от пары аргументов в функцию, берущую свои аргументы по одному. Это преобразование получило своё название в честь Х. Карри .

Чистые функции [ | ]

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

  • Если результат чистой функции не используется, её вызов может быть удалён без вреда для других выражений.
  • Результат вызова чистой функции может быть мемоизирован , то есть сохранён в таблице значений вместе с аргументами вызова. Если в дальнейшем функция вызывается с этими же аргументами, её результат может быть взят прямо из таблицы, не вычисляясь (иногда это называется принципом прозрачности ссылок). Мемоизация , ценой небольшого расхода памяти, позволяет существенно увеличить производительность и уменьшить порядок роста некоторых рекурсивных алгоритмов.
  • Если нет никакой зависимости по данным между двумя чистыми функциями, то порядок их вычисления можно поменять или распараллелить (говоря иначе вычисление чистых функций удовлетворяет принципам thread-safe)
  • Если весь язык не допускает побочных эффектов, то можно использовать любую политику вычисления. Это предоставляет свободу компилятору комбинировать и реорганизовывать вычисление выражений в программе (например, исключить древовидные структуры).

Хотя большинство компиляторов императивных языков программирования распознают чистые функции и удаляют общие подвыражения для вызовов чистых функций, они не могут делать это всегда для предварительно скомпилированных библиотек, которые, как правило, не предоставляют эту информацию. Некоторые компиляторы, такие как gcc , в целях оптимизации предоставляют программисту ключевые слова для обозначения чистых функций . Fortran 95 позволяет обозначать функции как «pure» (чистые) .

Рекурсия [ | ]

Рекурсивные функции можно обобщить с помощью функций высших порядков, используя, например, катаморфизм и анаморфизм (или «свертка» и «развертка»). Функции такого рода играют роль такого понятия как цикл в императивных языках программирования. [ ]

Подход к вычислению аргументов [ | ]

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

print (len ([ 2 + 1 , 3 * 2 , 1 / 0 , 5 - 4 ]))

на выходе будет ошибка, так как в третьем элементе списка присутствует деление на ноль. При нестрогом подходе значением выражения будет 4, поскольку для вычисления длины списка значения его элементов, строго говоря, не важны и могут вообще не вычисляться. При строгом (аппликативном) порядке вычисления заранее подсчитываются значения всех аргументов перед вычислением самой функции. При нестрогом подходе (нормальный порядок вычисления) значения аргументов не вычисляются до тех пор, пока их значение не понадобится при вычислении функции .

Как правило, нестрогий подход реализуется в виде редукции графа. Нестрогое вычисление используется по умолчанию в нескольких чисто функциональных языках, в том числе Miranda , Clean и Haskell . [ ]

В нефункциональных языках [ | ]

Принципиально нет препятствий для написания программ в функциональном стиле на языках, которые традиционно не считаются функциональными, точно так же, как программы в объектно-ориентированном стиле можно писать на структурных языках. Некоторые императивные языки поддерживают типичные для функциональных языков конструкции, такие как функции высшего порядка и списковые включения (list comprehensions), что облегчает использование функционального стиля в этих языках, в частности, такой подход широко применяется в практике языка Python . Другим примером является язык Ruby , который имеет возможность создания как анонимных функций с использованием связанных переменных (λ-объектов), так и возможность организации анонимных функций высшего порядка через блок с помощью конструкции yield . В языке Си указатели на функцию в качестве типов аргументов могут быть использованы для создания функций высшего порядка. Функции высшего порядка и отложенная списковая структура реализованы в библиотеках С++ . В языке версии 3.0 и выше можно использовать λ-функции для написания программы в функциональном стиле.

Стили программирования [ | ]

Императивные программы имеют склонность акцентировать последовательности шагов для выполнения какого-то действия, а функциональные программы к расположению и композиции функций, часто не обозначая точной последовательности шагов. Простой пример двух решений одной задачи (используется один и тот же язык Python) иллюстрирует это.

# императивный стиль target = # создать пустой список for item in source_list : # для каждого элемента исходного списка trans1 = G (item ) # применить функцию G() trans2 = F (trans1 ) # применить функцию F() target . append (trans2 ) # добавить преобразованный элемент в список

Функциональная версия выглядит по-другому:

# функциональный стиль # языки ФП часто имеют встроенную функцию compose() compose2 = lambda A , B : lambda x : A (B (x )) target = map (compose2 (F , G ), source_list )

В отличие от императивного стиля, описывающего шаги, ведущие к достижению цели, функциональный стиль описывает математические отношения между данными и целью.

Более точно, существует четыре ступени развития функционального стиля, в порядке убывания роли данных в программах:

  • Рефал (для этой категории, представленной единственным языком, нет общепринятого названия);
  • Аппликативные (Лисп , , Tcl , Rebol);
  • Комбинаторные (APL / / , / );
  • Бесточечные (чистые конкатенативные) (Joy , Cat , Factor , подмножество PostScript).

В первом случае вся структура программы определяется структурой данных, в последнем - данные как таковые вообще отсутствуют в исходном е, они лишь подразумеваются на входе. Некоторые языки поддерживают ряд стилей: например, Haskell позволяет писать и в аппликативном, и в комбинаторном, и в бесточечном стилях.

Особенности [ | ]

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

Сильные стороны [ | ]

Повышение надёжности а [ | ]

Привлекательная сторона вычислений без состояний - повышение надёжности а за счёт чёткой структуризации и отсутствия необходимости отслеживания побочных эффектов. Любая функция работает только с локальными данными и работает с ними всегда одинаково, независимо от того, где, как и при каких обстоятельствах она вызывается. Невозможность мутации данных при пользовании ими в разных местах программы исключает появление труднообнаруживаемых ошибок (таких, например, как случайное присваивание неверного значения глобальной переменной в императивной программе).

Удобство организации модульного тестирования [ | ]

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

Таким образом, имеется возможность протестировать каждую функцию в программе, просто вычислив её от различных наборов значений аргументов. При этом можно не беспокоиться ни о вызове функций в правильном порядке, ни о правильном формировании внешнего состояния. Если любая функция в программе проходит модульные тесты, то можно быть уверенным в качестве всей программы. В императивных программах проверка возвращаемого значения функции недостаточна: функция может модифицировать внешнее состояние, которое тоже нужно проверять, чего не нужно делать в функциональных программах .

Возможности оптимизации при компиляции [ | ]

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

Возможности параллелизма [ | ]

Ещё одним преимуществом функциональных программ является то, что они предоставляют широчайшие возможности для автоматического распараллеливания вычислений. Поскольку отсутствие побочных эффектов гарантировано, в любом вызове функции всегда допустимо параллельное вычисление двух различных параметров - порядок их вычисления не может оказать влияния на результат вызова.

Недостатки [ | ]

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

Для преодоления недостатков функциональных программ уже первые языки функционального программирования включали не только чисто функциональные средства, но и механизмы императивного программирования (присваивание, цикл, «неявный PROGN» были уже в Лиспе). Использование таких средств позволяет решить некоторые практические проблемы, но означает отход от идей (и преимуществ) функционального программирования и написание императивных программ на функциональных языках. В чистых функциональных языках эти проблемы решаются другими средствами, например, в языке Haskell ввод-вывод реализован при помощи монад - нетривиальной концепции, позаимствованной из теории категорий.

См. также [ | ]

Примечания [ | ]

  1. А. Филд, П. Харрисон Функциональное программирование: Пер. с англ. - М.: Мир, 1993. - 637 с, ил. ISBN 5-03-001870-0 . Стр. 120 [Глава 6: Математические основы: λ-исчисление].

научный подход управление менеджмент

Сущность функционального подхода к менеджменту заключается в том, что потребность рассматривается как совокупность функций, которые нужно выполнить для удовлетворения потребности. После установления функций создаются несколько альтернативных объектов для выполнения этих функций и выбирается тот из них, который требует минимума совокупных затрат за жизненный цикл объекта на единицу его полезного эффекта. Цепочка развития объекта: потребности > функции > показатели будущего объекта > изменение структуры системы.

В настоящее время к управлению применяется, в основном, предметный подход, при котором совершенствуется существующий объект. Например, техническая система совершенствуется путем доработки существующей системы по результатам маркетинговых исследований, анализа научно-технического прогресса в данной области, замечаниям и предложениям потребителей. Поэтому на практике перед конструкторами ставится задача достигнуть по важнейшим показателям качества объекта мирового уровня. В чем недостатки такого подхода? Во-первых, сами конструкторы не заинтересованы в проведении широкого и глубокого анализа мирового рынка, в установлении для себя трудных задач. Мировой уровень потребностей к моменту внедрения объекта у потребителя объективно могут спрогнозировать не конструкторы, а маркетологи. Во-вторых, допустим, конструкторы очень постарались и нашли лучший мировой образец. Однако этот образец проектировался вчера и несет в себе технические идеи вчерашнего дня. Технический прогресс не стоит на месте. Поскольку еще нужно время на разработку, освоение и производство нового образца, за этот период мировые достижения в данной области уйдут далеко вперед. Применяя предметный подход, инвесторы и менеджеры всегда будут только догонять вчерашний день и никогда не выйдут на мировой уровень.

При применении предметного подхода к развитию социально-экономических систем менеджеры идут по пути совершенствования существующих систем. И на практике менеджеры часто сталкиваются с проблемой поиска работы для существующих коллективов или работников. При применении функционального подхода идут от обратного, от потребностей, от требований "выхода" системы, возможностей на ее "входе".

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

Функция - это целенаправленная деятельность, способ поведе­ния элементов в активной системе. Результаты действия каждого эле­мента в системе суммируются и приводят к целесообразному резуль­тату в целом. Соответствие этому общему результирующему воздей­ствию данного элемента и есть его соответствие системе, целому. По­этому «функцию в системном ее понимании можно определить как такое отношение части к целому, при котором само существование или какой-либо вид проявления части обеспечивает существование или какую-либо форму проявления целого» (Сетров М. И. Основы функциональной теории организации. - Л., 1972. - С. 31).

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

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

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

во-первых, проблемы адаптации и равновесия систем. В биологии здесь решают вопросы приспособления организмов к условиям существования и дальнейшей акклиматизации популяций с изменени­ем наследственности. В социальной адаптации рассматривают взаи­модействие личности или социальной группы с социальной средой, в ходе которого согласовываются требования и ожидания его участни­ков. Наиболее важный компонент социальной адаптации - это согла­сование самооценок и претензий субъекта с его возможностями и с реальностью социальной среды. Адаптация технических объектов связана с созданием адаптивных систем, т.е. систем автоматического управления, которые сохраняют работоспособность в условиях не­предвиденного изменения свойств управляемого объекта, цели управ­ления или условий окружающей среды путем смены алгоритма функ­ционирования или поиска оптимальных состояний;


во-вторых, проблемы передачи информации; проблемы управле­ния; комплекса проблем, решаемых в рамках теории автоматов; задачи построения моделей принятия решений, проблемы оптимизaции функционирования систем и др. (см., например: Кочергин А. Н. Научное познание: формы, методы, подходы. - М., 1991).

В процессе становления функциональный подход установил и выделил ряд принципов на которые он опирается при анализе специ­фики активных систем. К таким концептуальным средствам относят­ся: принцип единства объекта и среды; принцип функциональной замкнутости, включая принцип обратной связи; принцип иерархично­сти систем; принцип целевого управления и др. (см.: Марков Ю. Г, Функциональный подход в современном научном познании. - Новосибирск, 1982).

Функциональный подход, функционализм, функциональный анализ наиболее развиты в самых организованных - социальных системах и подсистемах.

Функциональный подход в социологии - один из основных методологических подходов в современном обществоведении. Его сущность состоит в выделении элементов социального взаимодействия подлежащих исследованию, и определении их места и значения (функции) в некоторой связи, качественная определенность которой делает необходимым ее системное рассмотрение. Функциональный подход ориентирует исследователя на выяснение функций одних об­щественных явлений по отношению к другим в рамках данного об­щества. Так, детально анализируются функции государства, права, искусства, идеологии и т.д., а также базиса и надстройки; экономиче­ских, социальных, политических отношений; социально­-экономических, политических и культурных институтов и т.п. Иссле­дуя эти функциональные отношения, ученые стремятся уяснить соци­альные механизмы и способы их воспроизводства, повторяемости, самоподдержания.

Функциональный подход в техносфере широко развертывается и конкретизируется в теории и методологии научно-технического твор­чества. Его логика и методология хорошо просматриваются в поня­тийном аппарате: техническая функция, функциональный элемент, формулировка функций, функциональное строение технических сис­тем, функциональная структура, потоковая функциональная структу­ра, функциональная модель объекта, закон соответствия между функ­цией и структурой, функциональные критерии технических систем, функциональный анализ, функционально оправданные затраты, функционально-стоимостный анализ, законы и закономерности тех­нических систем и др. (см.: Техническое творчество: теория, методо­логия, практика. Энциклопедический словарь-справочник. - М., 1995).