07.01.2024

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


Операционный менеджмент процессно-ориентированное управление.

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

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

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

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

При реализации процессного подхода необходимо:

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

    Определить клиента и владельца каждого бизнес-процесса.

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

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

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

    нацелить подразделения и сотрудников на удовлетворение требований клиентов;

    более эффективно разграничить полномочия и ответственность, используя делегирование полномочий;

    снизить зависимость результатов от отдельного исполнителя;

    выявить источники издержек и снизить их;

    сократить время принятия управленческих решений;

    уменьшить объем межфункциональной координации (оперативного руководства).

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

Интеграция деятельности. Политики интеграции операционных функций и специализации на операционной функции

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Достоинствами такой политики являются: централизованный контроль; возможность повышения надежности системы до момента возникновения проблем связанных с масштабом управляемости; снижение затрат на привлечение контрагентов и субподрядчиков.

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

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

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

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

Это позволяет:

    сконцентрировать усилия на реализации главной операционной функции;

    снизить усилия в сфере решения вспомогательных задач;

    использовать главные компетенции (продукцию) высокого качества контрагентов и субподрядчиков, что предоставляет возможность повысить качество своей продукции;

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

Однако при проведении такой политики могут проявиться следующие недостатки:

    потеря контроля над частью процесса создания своей продукции;

    зависимость от поставщиков;

    риски, связанные с нарушением контрагентами (поставщиками) своих обязательств.

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

    имеющиеся производственные мощности;

    специальные знания и собственные компетенции;

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

    характеристики спроса, важные для выпуска продукта или оказания услуги;

    возможность снижения затрат.

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

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

Для управления регулярной деятельностью этот подход применяется практически повсеместно, т.к. привычен для всех сотрудников (от топ-менеджмента до рядовых исполнителей) и не вызывает никаких сложностей в иерархии организации. Естественно, что каждый функциональный руководитель заинтересован в максимальной эффективности именно своего подразделения, однако, если все будут стремиться к этому (при функциональном подходе), то далеко не каждая компания сможет нормально функционировать, ведь совокупный Бизнес-процесс может быть далек от оптимального при максимальной эффективности каждого из участников. Наглядным примером производства, не лучшим образом подходящего для применения функционального подхода, является производство фломастеров. Согласитесь, куда как проще и быстрее производить их одного цвета — оптимально для производственников, а вот продавцам нужна максимально широкая гамма цветов. Соответственно, и тем, и другим приходится "договариваться", находить "золотую середину" между количеством и числом цветов. И таких примеров можно привести достаточно много. Этого достаточно, чтобы заявить о том, что функциональный подход работает далеко не всегда.

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

Третий вариант, на котором сегодня хотелось бы акцентировать самое пристальное внимание — процессный подход к управлению , т.е. делегирование как полномочий, так и ответственности через Бизнес-процессы. В данном случае под Бизнес-процессом понимается многократно повторяющаяся (устойчивая) деятельность по "преобразованию" ресурсов (или Входов) в результаты (Выходы). Соответственно, выделяется проблемный Бизнес-процесс (чуть Выше мы приводили пример производства фломастеров) и его участники, один из них назначается Владельцем процесса, именно ему и делегируются полномочия и ответственность, связанные с управлением данным Бизнес-процессом. Естественно, что при этом также возникает матричная орг. структура, т.к. участник Бизнес-процесса одновременно подчиняется функциональному руководителю и Владельцу процесса, а при участии в проектной деятельности — еще и руководителю проекта. В чем "изюминка"? А в том, что речь идет о настройке некоторой не оптимальности подпроцессов ("страшный сон" приверженцев функционального метода управления), которая приведет к достижению максимальной оптимальности всего Бизнес-процесса (а не каждой из отдельных его частей).

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

Выделенный бизнес-процесс — сам объект управления с определением границ системы, т.е. "проблема", требующая решения. Сюда входят не только потребляемые ресурсы и результаты, которые необходимо получить, но и подсистемы (отделы), без прямого участия которых решения задачи не получится, а также внешнее окружение. В качестве примера можно привести кондитерское производство для ресторана (особенно если продукция реализуется розничным покупателям, а не только клиентам заведения) или отделение поддержки "1С" для компании, занимающейся ИТ-аутсорсингом широкого профиля. Соответственно, если "границы" будут заданы слишком "узко", то решение проблем будет невозможно в рамках выделенного Бизнес-процесса, а если слишком "широко", то придется разбираться с массой попутных задач, к которым наш Бизнес-процесс не имеет никакого отношения.

KPI (ключевые показатели эффективности) — инструменты управления любыми Бизнес-процессами, которые можно условно разделить на два типа: показатели производительности (результативности) и эффективности. Первые измеряют умение создавать качественный результат для потребителя в срок и в необходимом количестве, т.е. "делать правильные вещи". А второй — достигать результата, оптимально расходуя ресурсы, т.е. "делать вещи правильно". Совершенно естественно, что Результативность и Эффективность противоречат друг другу, поэтому необходимо использовать какую-то "золотую середину", получая достаточное качество в обмен на разумное количество затраченных ресурсов. При этом для любого Бизнес-процесса можно определить критерии совершенно не вдаваясь в подробности самого процесса, достаточно зафиксировать границы процесса и получить общее представление о нем, чтобы решить "что" и "как" измеряем. А вот с целевым значением пресловутой "золотой середины" все значительно сложнее, т.к. необходимо досконально изучить Бизнес-процесс, включая уровень автоматизации, квалификацию исполнителей, технологии и последовательность работ и т.д., чтобы понять, какое значение будет оптимальным для системы.

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

  • Логично, что он должен быть как можно ближе к результату, т.е. Выходу Бизнес-процесса, т.к. в этом случае он будет намного лучше понимать нужны потребителя. Это и есть первый критерий для выбора Владельца Бизнес-процесса.
  • Вторым критерием выбора Владельца является оптимальность использования ресурсов, поэтому важно не только то, сколько ресурсов потребляется под руководством данного участника, но и насколько эффективно они используются.
  • К третьему критерию можно отнести формальный уровень в иерархии функциональной системы управления, т.к. трения, в любом случае, неизбежны, особенно на фоне традиционного авторитарного стиля управления. А разбиение Бизнес-процессов по границам ответственности функциональных подразделений и, соответственно, назначение функциональных руководителей Владельцами никак не решает кросс-функциональные проблемы, ради чего, собственно, и необходимо использование процессного подхода в управлении.
  • Четвертым критерием является общая менеджерская квалификация потенциального Владельца, ведь ему предстоит управлять "разношерстной" многофункциональной командой. Без знаний и навыков в сфере управления Владелец просто не сможет "заставить" коллектив приносить требуемый результат.

Регламент Бизнес-процесса — это четвертая подсистема, документ, который отвечает на такие вопросы как:

  • какова цель деятельности Бизнес-процесса?
  • где находятся границы процесса: начало и конец, участники, а также расположение именно этого процесса в схеме всех используемых процессов системы?
  • каковы границы применения данного Регламента?
  • кто Владелец Бизнес-процесса?
  • какие KPI планируется использовать для планирования и контроля?
  • насколько подробно описан Бизнес-процесс (необходим подробный документ)?
  • каков порядок внесения изменений в настоящий Регламент?

Система мотивации — это пятая и последняя подсистема, основная задача которой понятна из названия: мотивировать участников процесса достигать целевые значения KPI, причем показатели мотивации могут быть выбраны не только из KPI Бизнес-процесс, для которого внедряется процессный подход, но и для более широкого Бизнес-процесса. Самый простой пример — "Подбор персонала". Вакансия появилась, кандидатов рассмотрели, выбранный вышел на работу. Казалось бы, результат получен, поэтому Результативность выполнена. Однако, если расширить границы до "Подбор и адаптация персонала", то Результативность можно оценивать по факту прохождения адаптации в коллективе и ее успешности (качества), а не просто по факту "закрытия" вакансии. Вот только для этого потребуется не только качественная система мониторинга, но и проведение анализа причин отклонений, чтобы произвести действительно качественную коррекцию.

Обратите внимание на тот факт, что разработка и внедрение процессного подхода к управлению — задача непростая и весьма трудоемкая, поэтому мы рекомендуем использовать его только для наиболее проблемных Бизнес-процессов, не забывая соотнести ожидаемый результат с себестоимостью внедрения данного подхода. Кроме того, в процессе описания и анализа "проблемного" Бизнес-процесса Вы организуете обмен информацией между участниками, практически "мозговой штурм", что приведет к единству в понимании Бизнес-процесса. А это, в свою очередь, позволит решить солидную часть проблем системного и поведенческого характера, поэтому даже если Вы внедрите не все подсистемы Бизнес-процесса, Результативность и Эффективность системы управления серьезно возрастут. А ведь именно для этого его и внедряют, не так ли?

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

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

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

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

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

Идрисова Ю.Р. группа 5423

Тема: Функциональный подход к исследованию

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

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

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

Известны попытки построения на функциональной основе общей теории биологических и социальных организмов. Упомянем в этой связи теорию организмических множеств Н. Рашевского. Центральным понятием этой теории является понятие организмического множества. Элементы такого множества различаются свойствами потенциальной активности, которая приводит к выработке некоторого множества продуктов. Полный набор этих продуктов в системе обеспечивает выживание элементов организмического множества, а также воспроизводство по крайней мере некоторых его элементов. Каждому элементу ставится в соответствие некоторый временнóй лаг, характеризующий способность элемента к выживанию в условиях полной пассивности.

Функциональный подход особенно интенсивно развивается там, где предмет исследования ограничивается рамками более или менее узкоспециализированного класса задач. Так появляются теория информации Шеннона, теория распознавания образов, теория моделирования процессов обучения, группа дисциплин, объединенных общим названием "исследование операций", и т.д. Отдельно следует назвать теорию автоматов, которая удачно сочетает строгость математической теории с многочисленными приложениями в самых различных областях науки и техники. Теория автоматов – теоретическое ядро кибернетики. В ней находят отражение наиболее существенные черты сложных систем. Здесь были получены и наиболее важные результаты, показывающие принципиальные возможности машин как преобразователей информации.

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

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

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

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

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

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

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

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

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

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

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

Функциональный подход к исследованию систем управления

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

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

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

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

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

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

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

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

Ещё не полностью функциональные изначальные версии и Лиспа , и 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: Математические основы: λ-исчисление].