Основе данных о структуре и. Типы структур данных

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

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

Н. Вирт определил понятие программы следующим образом:

Алгоритмы + структуры данных = программы

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

Что же характеризует данные более содержательно, чем значения? В 1973 г. Н. Виртом была опубликована статья "Типы данных - это не значения". С его точки зрения тип данных - это множество значений. В статье говорилось также, что данные прежде всего характеризуются набором операций, которые можно выполнять над этими данными, множеством значений. Этот взгляд и дал миру впоследствии некоторые очень полезные идеи. Главная формула, которой стали придерживаться:

ТИП ДАННЫХ = МНОЖЕСТВО ЗНАЧЕНИЙ + НАБОР ОПЕРАЦИЙ

Важно понять, что понятия данных и операций очень взаимосвязаны. Пусть есть некоторая структура данных, для которой существует операция Length, которая возвращает длину этой структуры в некоторых единицах. Возникает вопрос: есть ли где-то данные, называющиеся длиной, или нет. С содержательной точки зрения это совершенно неважно. Если эта операция применяется к строкам, признак конца которых ноль (null terminated string), то вычисление длины - это, действительно, операция, требующая вычислений. Если эта операция применяется к строкам, первый байт которых означает длину строки, а дальше идет сама строка (как в Turbo Pascal), то здесь происходит просто взятие данных из памяти, т. е. длина может быть операцией, а может быть данными, хотя это и неважно для программиста.

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

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

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

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

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

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

Структура данных относится по существу к "пространственным" понятиям: ее можно свести к схеме организации информации в памяти компьютера. Алгоритм же является соответствующим процедурным элементом в структуре программы - он служит рецептом расчета.

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

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

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

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

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

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

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

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

4.2. ОПЕРАЦИИ НАД СТРУКТУРАМИ ДАННЫХ

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

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

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

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

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

Операция копирования создает копию данных в новом месте памяти.

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

4.3. ОБЩАЯ КЛАССИФИКАЦИЯ ЛОГИЧЕСКИХ СТРУКТУР ДАННЫХ

Упорядоченность элементов структуры данных является важным ее признаком.

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

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

Пример широко известных структур данных с разной упорядоченностью приведен на рис. 4.1.

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

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

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

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

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

Рис. 4.1. Примеры широко известных структур данных


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

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

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

Динамические переменные размещаются в динамически распределяемой области памяти (ДРП). Область ДРП находится вне области кода программы. В зарубежных источниках ДРП обозначается термином "heap" - куча. Обычно заполнение области ДРП осуществляется при помощи стандартных процедур диспетчирования ДРП.

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

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

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

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

Информационного поля, или поля данных, в котором содержатся те данные (в том числе и интегрированные), ради которых оно и создается;

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

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

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

Размер структуры ограничивается только доступным объемом машинной памяти;

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

Недостатки связного представления:

Работа с указателями требует, как правило, более высокой квалификации от программиста;

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

Доступ к элементам связной структуры может быть менее эффективным по времени.

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

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

4.4. КЛАССИФИКАЦИЯ ВИДОВ ОПЕРАТИВНЫХ СТРУКТУР ДАННЫХ ПО ИХ ЛОГИЧЕСКОМУ УСТРОЙСТВУ

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

Статический массив - такая структура данных, которая характеризуется:

1) фиксированным набором элементов одного и того же типа;

2) каждый элемент имеет уникальный набор значений индексов;

3) количество индексов определяет мерность массива, например, два индекса - двухмерный массив, или матрица, три индекса - трехмерный массив, один индекс - одномерный массив, или вектор;

4) обращение к элементу массива выполняется по имени массива и значениям индексов для данного элемента.

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

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

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

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

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

<имя переменной - записи>.<имя поля>

В ряде прикладных задач программист может столкнуться с группами объектов, чьи наборы свойств перекрываются лишь частично. Для задач подобного рода развитые языки программирования предоставляют в распоряжение программиста записи с вариантами (union в С, case в Turbo Pascal).

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

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

Базовыми операциями над строками являются:

Определение длины строки;

Присваивание строк;

Конкатенация (сцепление) строк;

Выделение подстроки;

Поиск вхождения.

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

Операция присваивания имеет тот же смысл, что и для других типов данных.

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

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

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

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

Статическая строка (тип String) в языке Pascal представляет собой одномерный массив, в нулевом элементе которого находится дескриптор с количеством символов в строке, а в последующих элементах - коды символов строки.

Главный недостаток статической строки - неизменность физической длины, что приводит к неэффективному расходу памяти.

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

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

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

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

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

Стек - это линейный список с одной точкой доступа к его элементам, называемой вершиной стека. Добавить или убрать элементы можно только через его вершину. Принцип работы стека: LIFO (Last In-First Out - последним пришел - первым исключается).

Основные операции над стеком:

Включение нового элемента (англ. push - заталкивать);

Исключение элемента из стекла (англ. pop - выскакивать).

Вспомогательные операции:

Определение текущего числа элементов в стеке;

Просмотр элементов стека (например, для печати);

Очистка стека;

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

Очередь - это линейная структура данных, в один конец которой добавляются элементы, а с другого конца изымаются. Принцип работы очереди: FIFO (First In - First Out - первым пришел - первым вышел).

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

Разветвленный список, или дерево, - это список, элементами которого могут быть тоже списки.

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

Биранрное дерево - дерево, в каждом узле которого происходит разветвление только на два поддерева (ветви): левое и правое.

Лесом называют конечное множество непересекающихся деревьев.

Граф - сложная нелинейная многосвязная динамическая структура, отображающая свойства и связи сложного объекта, обладает следующими свойствами:

На каждый элемент (узел, вершину) может быть произвольное количество ссылок;

Каждый элемент может иметь связь с любым количеством других элементов;

Каждая связка (ребро, дуга) может иметь направление и вес.

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

Граф, все связи которого ориентированные, называют ориентированным графом, или орграфом; со всеми неориентированными связями - неориентированным графом; со связями обоих типов - смешанным графом.

Конкретные организации структур данных и алгоритмы реализации операций с ними рассмотрены в .

4.5. ПРОЕКТИРОВАНИЕ И ДОКУМЕНТИРОВАНИЕ ОПЕРАТИВНЫХ СТРУКТУР ДАННЫХ

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

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

Пусть требуется спроектировать программу электронной таблицы. Такой проект выполнила фирма "Borland Inc", когда ей понадобилась демонстрационная программа. Обоснование потребности и цели разработки этого проекта были рассмотрены в гл. 2.

Что видит пользователь при работе с электронной таблицей? - Огромный двухмерный массив клеток.

Что пользователь может записать в клетки? - Числовые значения, строки текстов и формулы. Каждая клетка также должна хранить информацию о формате вывода числовых значений (форматы: целый, денежный, научный и т. д.). Значит, каждая клетка должна содержать атрибут того, что находится в клетке: пустая клетка, числовое значение в клетке, строка текста, корректная формула, некорректная формула. Пусть информация о значении числа имеет тип расширенный, вещественный (10 байт); строки текста содержат до 79 символов; информация формулы состоит из поля со значением, рассчитанного по формуле (10 байт), а также поля текста формулы (79 байт). Самая длинная информация у клетки с формулой: информация формата (2 байта), значение, рассчитанное по формуле (10 байт), поле текста формулы (79 байт). Итого длина информации клетки составляет 91 байт.

Пусть программа будет работать с электронной таблицей размером 100 × 100 клеток. Тогда информация электронной таблицы в случае использования структуры данных в виде статической матрицы занимает 91 × 100 × 100 байт = 910 000 байт ≈ 889 кбайт.

Требуемый объем для размещения структуры превышает стандартную память компьютера класса IBM PC XT - 640 кбайт, поэтому надо отказаться от использования структуры данных в виде статической матрицы.

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

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

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

Формирование вектора;

Преобразование индексов матрицы в индекс вектора;

Записи в вектор элементов верхнего треугольника элементов исходной матрицы;

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

В данном проектном случае нет особой симметрии значений элементов.

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

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

Массивы со случайным расположением элементов.

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

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

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

Структура данных пустой электронной таблицы в виде статической матрицы теперь занимает (2 + 4) * 100 * 100 = 60 000 байт ≈ 59 кбайт. Объем менее 64 кбайт для единой статической структуры соответствует возможностям Turbo Pascal.

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

По окончании ввода информации в выбранную клетку, если клетка не пустая (значение указателя на структуру клетки * Nil), то освобождается память, выделенная ранее под прежнюю информацию клетки. Новая информация клетки записывается в участок ДРП, равный по объему только полезной информации клетки. В соответствующее поле указателя выбранной клетки записывается значение указателя выделенного участка ДРП. Для записи только полезной информации в клетки применяем записи с вариантами (union в С, case в Turbo Pascal).

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

Пусть электронная таблица заполнена 300 числовыми значениями, 200 текстовыми строками длиной в 40 символов и 400 формулами с текстом формул по 30 символов. В этом случае для размещения электронной таблицы в оперативной памяти потребуется всего

300 * (2 + 10) + 200 * (2 + 41) + 400 * (2 + 10 + 31) = 29 400 байт ≈ 28,8 кбайт.

Как видно, при работе с электронной таблицей объем информации, занимаемой динамической структурой клеток, растет медленно. Окончательно принимаем данный вариант к реализации, выделив из атрибута случай ошибки при расчете формулы в отдельный атрибут Error.

Ниже приведен пример реализации на языке Turbo Pascal структуры данных электронной таблицы. Начнем описание структуры с глобальных описаний:

Real = Extended; {Требуется сопроцессор}
{Структура данных электронной таблицы}
MAXCOLS = 100; {Размер таблицы}
MAXINPUN = 79; {Длина вводимой строки}
{Значение атрибута вида клетки}
ТХТ = 0; {В клетке текст}
VALUE = 1; {В клетке значение}
FORMULA = 2; {В клетке формула}
{Тип вариантной информации клеток}
TString = String ; {Тип вводимых строк}
TCellRec = record {Тип информации клетки}
Error: Boolean; {Поле ошибки формулы}
case Attrib: Byte of {Attrib - это поле}
TXT: (TextStr: TString); {В клетке текст}
VALUE: (Value: Real); {В клетке значение}
FORMULA: (Fvalue: Real; {В клетке формула}
{Тип указателя на тип клетки}
{Тип элемента таблицы}
CellFormat: Word: {Формат клетки}
CellPtr: TCellPtr; {Указатель на клетку в ДРП}
{Тип массива информации клеток таблицы}
TCellsTable = array of TCellPtr;
Var {Глобальные переменные}
Cells: TCellsTable; {Статическая матрица всех
CurCell: TCellPtr; {Указатель на текущую клетку}
CurCol, {Колонка текущей клетки}
CurRow: Word; {Строка текущей клетки}

Как видно, с целью краткости вызовов большинства процедур программы было принято решение об использовании весьма небольшого набора глобальных переменных. При именовании констант использованы только строчные буквы. Имена типов имеют префикс "Т". Имена, используемые часто в паре, выровнены по длине, например: MAXCOLS, MAXROWS, CurCol, CurRow. Два последних имени, используемых парно, были выровнены по длине. При выравнивании сокращено слово column - колонка. Используемые во многих процедурах глобальные имена сделаны краткими.

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

4.6. ФАЙЛОВЫЕ СТРУКТУРЫ

4.6.1. Физическая организация файлов

Файл - упорядоченный набор информации на внешнем носителе (наиболее часто на дисковом носителе).

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

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

Управление файлами: хранение файлов, обращение к ним, их коллективное использование и защита;

Обеспечение целостности файлов - гарантирование того, что файл содержит только то, что требовалось;

Средства управления внешней памятью (распределяют внешнюю память для размещения файлов).

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

Дескриптор файла или блок управления файлом может включать следующую информацию:

1) строковое имя файла;

2) тип файла (расширение имени) - информация для пользователя о предполагаемой информации в файле;

3) размещение файла во внешней памяти;

4) тип организации файла (прямой, последовательный, индексно-последовательный и т. д.);

5) тип устройства (несъемный, съемный, допускающий только чтение и т. д.);

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

7) диспозицию (файл постоянный или временный);

8) дату и время создания;

9) дату и время последней модификации.

Элементы перечисления 1, 2 и 3 определяют полное имя файла.

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

Наиболее общими операциями работы с файлами являются следующие операции:

Связывание полного имени файла с файловыми переменными;

Открытие файла (например, для записи, только чтения, изменения длины);

Закрытие файлов;

Установление атрибутов файла.

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

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

4.6.2. Логическая организация файлов

Рассмотрим возможности логической организации файлов, предоставляемых Turbo Pascal.

Операторы языка Read, ReadLn, Write, WriteLn (при файловой переменной типа Text) обеспечивают работу с файлами единственного типизированного в языке Pascal вида - текстовыми файлами, представляющими собой на логическом уровне последовательность текстовых строк. Сами текстовые файлы на логическом уровне имеют последовательную организацию. Например, чтобы прочитать сотую строку, необходимо до этого прочитать все 99 предшествующие строки. Для текстового файла в языке Turbo Pascal имеется процедура "Append" добавления текстовой информации в конец текстового файла. Процедура "Append" полностью характеризует возможность изменчивости текстовых файлов (в текстовых файлах даже нельзя заменить содержимое одной строки на другую строку).

Операторами языка Read, Write (файловая переменная имеет тип File of тип_записи) также можно последовательно записывать в файл или считывать из файла в той же последовательности одну или несколько записей строго определенного типа (фиксированной длины). Такие файлы называют типизированными или файлами в виде сблокированных записей фиксированной длины. Если записей в типизированных файлах несколько, то при помощи операции "Seek" можно задать любой номер последующей изменяемой или считываемой записи. Таким образом, реализованы методы как последовательного, так и прямого доступа к информации файла, что одновременно образует комбинированный доступ.

Файлам с произвольной организацией на языке Turbo Pascal соответствуют нетипизированные файлы, или бинарные. С любым типизированным файлом можно работать как с нетипизированным файлом.

Нетипизированные файлы в языке Turbo Pascal описываются с помощью зарезервированного слова "File". Обычно работу с такими файлами осуществляют при помощи подпрограмм BlockRead, BlockWritte, Seek. Также к нетипизированным файлам могут быть применены все стандартные средства работы с файлами, кроме Read, Write, Flush. При использовании процедуры "Seek" каждый блок нетипизированного файла рассматривается как физическая запись длиной 128 байт.

Текстовые файлы Turbo Pascal (как в кодировке MS DOS, так и в Windows) обычно имеют расширение (тип) txt и в бинарном (физическом) представлении представляют собой одну запись произвольной длины, содержащую последовательность всех символов строк, заканчивающихся символами "0D 16 ", "0A 16 ". Последним символом файла (необязательно) может быть символ "1A 16 ", являющийся признаком конца текстового файла. Символ "0D 16 " (CR) - возврат каретки без продвижения бумаги. Символ "0A 16 " (LF) - передвижение бумаги на одну строку вниз.

Таким образом, можно рассматривать типизированный текстовый файл как нетипизированный (бинарный), состоящий из одной записи в виде массива символов.

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

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

4.6.3. Документирование файлов

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

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

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

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

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

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

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

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

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

{Характеристики файла}
FILEIDENT = "My Spreadsheet"; {Идентификатор}
FILESEXTENSION = "MSS"; {Стандартный тип файла}
FeleName: String; {Имя файла таблицы}
{Видимая ширина колонок таблицы}
ColWidth: array of Byte;
{Информация о заполнении таблицы}
LastCol, {Последняя заполненная
колонка таблицы}
LastRow: Word; {Последняя заполненная

Локальные описания:

EndOfFile; Char; {Признак конца текстового файла}
Col; Word; {Номер колонки клетки}
Row; Word; {Номер столбца клетки}
Count; Word; {Число заполненных клеток таблицы}
Size; Word; {Длина информации клетки}
CPtr; TCellPtr; {Указатель на клетку}
F; File; {Файловая переменная}
Blocks; Word; {Прочитано или записано байт}

Файл хранения электронной таблицы является файлом постоянного хранения, бинарным произвольной длины; имеет имя, определенное пользователем, но с расширением имени "MSS".

Организация заголовочной части файла электронной таблицы представлена в табл. 4.1.

Таблица 4.1

Заголовочная часть файла электронной таблицы

Оперативная информация Длина оперативной информации, байт

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

§ по способу связи (конфигурации);

§ по объектам формирования.

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

Известны следующие типы конфигурации структур:

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

Рис. 6. Цепная разомкнутая структура:

а – вертикальная; б – горизонтальная (одного уровня); в – вертикально-горизонтальная

кольцевая (рис. 7). Замкнутая децентрализованная конфигурация. Основана на последовательной связи (например, структура творческой исследовательской группы: разработка программы исследования (ведущий специалист) → последовательное проведение исследований (все члены группы) → обобщение результатов (вновь ведущий специалист);

Рис. 7. Кольцевая (цепная замкнутая) структура

звездная (рис. 8а). Разомкнутая конфигурация. Характерны четкая централизация и отсутствие периферийных связей. Сформирована на основе расширяющего (структура руководства) или сужающего (структура обратной связи) соединения. Может использоваться в жестко централизованных управленческих системах со слабым делегированием полномочий, а также в качестве центрального элемента любых централизованных структур. Усиление централизации может достигаться за счет «удлинения лучей», исходящих из центра «звезды» (рис. 8б);

Рис. 8. Звездная структура:

а – с коротким (одинарным) лучом; б – с удлиненным (двойным, тройным) лучом

«колесо» (рис. 9а). Замкнутая централизованная конфигурация. Представляет синтез кольцевой и звездной конфигураций. Помимо централизованных имеет еще и развитые периферийные связи. Структуры данной конфигурации относятся к довольно распространенным. Такой может быть, например, структура управления фирмой: централизованное управление подразделениями из единого центра и периферийные связи между самими подразделениями;



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

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

Рис. 9. Конфигурации «колесо» и «кольцо»

а – конфигурация «колесо»; б – «двойное колесо»; в – «колесо с двойным ободом»

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

Рис. 10. Веерная конфигурация

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

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

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

сотовая (рис. 12). Децентрализованная конфигурация с высокой степенью регламентированности связей сформирована на основе разных типов соединений. В завершенном виде является замкнутой. Например, структура системы формирования, хранения и использования конфиденциальной информации;

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

Рис. 13. Сложная структура, основанная на нескольких базисных конфигурациях

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

Классификация структур по содержанию и функциональному назначению связей осуществляется по следующим признакам :

§ по роду связей;

§ по сферам функционирования организации;

§ по типу департаментизации.

По роду связей структуры подразделяются на следующие группы :

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

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

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

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

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

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

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

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

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

F структуры материальных и информационных потоков.

Выделение относительно обособленных подразделений организации называется департаментизацией. Существует два основных способа выделения подразделений:

1. выделение однородных подразделений, не имеющих выраженной функциональной специализации;

2. выделение функционально-специализированных подразделений.

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

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

Рис. 15. Линейная организационная структура управления

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

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

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

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

Рис. 16. Функциональная организационная структура управления

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

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

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

Рис. 17. Линейно-функциональная структура управления

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

Недостатки данных структур: слабое взаимодействие на горизонтальном уровне между производственными подразделениями; чрезмерно развитая система взаимодействия по вертикали; аккумулирование на верхнем уровне полномочий не только стратегических, но и оперативных задач; недостаточно четкая ответственность

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

Рис. 18. Линейно-штабная структура управления

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

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

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

Дивизиональные структуры бывают:

F организованные по видам товаров и услуг или группам покупателей (продуктовая), рис. 19;

F организованные по географическим регионам (региональная), рис. 20;

F сочетающие как продуктовый, так и территориальный принципы построения (смешанные), рис. 21.

Рис. 19. Продуктовая дивизиональная организационная структура

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

Рис. 20. Региональная дивизиональная организационная структура

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

Рис. 21. Смешанная дивизиональная организационная структура

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

Рис. 22. Органическая структура предприятия, состоящая из рабочих групп (бригад)

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

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

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

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

Рис. 23. Матричная структура управления

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

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

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

Формы организации системы менеджмента

План лекции:

Понятие и основные элементы организационной структуры

Виды Иерархических структур, их характеристики, достоинства и недостатки;

ВИДЫ АДАПТИВНЫХ СТРУКТУР, их характеристики, достоинства и недостатки.

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

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

Ступень управления – это совокупность звеньев, находящихся на определенном уровне иерархии управления.

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

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

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

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

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

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

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

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

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

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

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

Основным принципом построения линейной структуры управления является вертикальная иерархия, т.

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

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

· единство распорядительства, простота и четкость подчинения;

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

· оперативность в принятии решений;

· согласованность действий исполнителей.

Рис. 1. Линейная структура управления

К недостаткам этого вида структуры относят:

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

· высокие требования к квалификации руководителя;

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

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

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

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


Рис. 2. Функциональная структура управления

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


Рис. 3. Линейно-функциональная структура управления

В качестве преимуществ линейно-функциональных структур отмечают:

· стимулирование деловой и профессиональной специализации в условиях этой структуры управления;

· уменьшение дублирования усилий в функциональных областях;

· улучшение координации деятельности в функциональных областях.

К недостаткам линейно-функциональных структур относят:

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

· отсутствие тесных взаимосвязей на горизонтальном уровне между подразделениями;

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

· потерю гибкости во взаимоотношениях работников аппарата управления из-за применения формальных правил и процедур;

· слабую инновационную и предпринимательскую реакцию компании.

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

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

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

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

1) дивизионально-продуктивные;

2) организационные, ориентированные на потребителя;

3) дивизионально-региональные.

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


Рис. 4. Дивизиональная продуктовая структура

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

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



Рис. 5. Дивизиональная структура управления, ориентированная на потребителя

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

Рис. 6. Региональная организационная структура управления

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

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

· ориентирует на достижение конечных результатов деятельности компании;

· приводит к уменьшению степени сложности управления, с которой сталкиваются управляющие высшего звена;

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

· способствует переносу ответственности за прибыль на уровень дивизионов, децентрализации принятия оперативных управленческих решений;

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

Недостатками рассматриваемого типа организационных структур являются:

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

· противопоставление целей отделений общим целям развития компании;

· возможность возникновения конфликтов между подразделениями в случае дефицита централизованно распределяемых ключевых ресурсов;

· невысокая координация деятельности отделений;

· неэффективное использование ресурсов, невозможность их использовать в полной мере в связи с закреплением ресурсов за конкретным подразделением;

· увеличение затрат на содержание управленческого аппарата вследствие дублирования одних и тех же функций в подразделениях и соответствующего увеличения численности персонала.

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

Структуры адаптивного типа имеют следующие разновидности: проектные, матричные, программно-целевые, проблемно-целевые, структуры, основанные на групповом подходе (командные, бригадные), сетевые организационные структуры.

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

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

Рис. 7. Проектная структура управления

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

К важнейшим преимуществам такого вида структур управления относят:

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

· комплексный подход к реализации проекта;

· большую гибкость проектных структур.

Недостатками проектной структуры управления являются:

· дробление ресурсов и усложнение поддержки развития производственного и научно-технического потенциала компании как единого целого;

· лишение работников осознания своего места в компании, так как проектные группы формируются на временной основе;

· частичное дублирование функций.

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

Рис. 8. Структура управления матричной организацией

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

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

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

Достоинствами матричной структуры являются:

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

· получение высококачественных результатов по большому числу проектов;

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

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

Перечень недостатков матричных структур включает в себя:

· сложность матричной структуры для практической реализации;

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

· тенденцию к анархии, так как нечетко распределены права и ответственность между ее элементами;

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

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

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

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

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

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

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

Существуют различные подходы к классификации организационных структур управления.

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

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

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

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

К положительным сторонам линейной структуры относятся следующие:

  • оперативность принятия и реализации управленческих решений;
  • относительная простота управления;
  • обеспечение единства распорядительства сверху вниз;
  • согласованность действий исполнителей.

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

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

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

Достоинства функциональной структуры управления:

  • специализация руководителей и специалистов повышает качество принимаемых управленческих решений;
  • освобождение линейных руководителей от несвойственных им функций.

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

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

Линейно-функциональная структура управления

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

Функциональные руководители бывают двух типов: реализующие одну или несколько функций управления.

В данной структуре объединяются преимущества линейной и функциональной структур.

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

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

Матричная структура управления

Данная структура позволяет быстро реагировать на изменения рынка благодаря своей гибкости.

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

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

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

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

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

Вместе с тем применение данной структуры сопряжено с рядом трудностей.

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

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

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

Дивизиональная структура управления

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

Структура часто используется международными компаниями, имеющими отделения в различных странах.

Дивизиональная структура управления имеет ряд разновидностей. К основным из них относятся следующие типы:

  • региональная;
  • продуктовая;
  • потребительская.

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

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

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

Такой тип управления характерен для компаний с широко дифференцированный ассортиментом продукции.

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

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

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

Рис. 2.5. Функциональная структура управления организацией

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

Достоинства функциональной структуры управления:

Высокая компетентность специалистов, отвечающих за выполнение конкретных функций;

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

Недостатки этого вида организационной структуры:

Нарушение принципа полноправного распорядительства, принципа единоначалия;

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

Трудности поддержания постоянных взаимосвязей между различными функциональными службами;

Снижение ответственности исполнителей за работу, поскольку каждый исполнитель получает указания от нескольких руководителей;

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

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

Так, например, в ОАО «АВТОВАЗ» функциональная структура управления при-меняется в обобщенной структуре, вспомогательных производствах, станкостроении. Пример функциональной организационной структуры представлен на рис. 2.6.


Рис. 2.6. Пример функциональной организационной структуры

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

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


Рис. 2.7. Линейно-штабная структура управления организацией

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

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

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

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

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

Таким образом, к основным преимуществам линейно-функциональных структур можно отнести:

Стимулирование деловой и профессиональной специализации в условиях этой структуры управления;

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

Уменьшение дублирования усилий в функциональных областях;

Улучшение координации деятельности в функциональных областях.

Несмотря на самое широкое распространение линейно-функциональных структур управления, отметим вместе с тем их существенные недостатки:

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

Отсутствие тесных взаимосвязей и взаимодействия на горизонтальном уровне между подразделениями;

Резкое увеличение объема работы руководителя организации и его заместителей из-за необходимости согласования действий разных ункциональных служб;

Чрезмерно развитая система взаимодействия по вертикали;

Утрата гибкости во взаимоотношениях работников аппарата управления из-за применения формальных правил и процедур;

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

Неадекватное реагирование на требования внешней среды;

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

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

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

Учитывая все вышеперечисленные недостатки, важно выяснить, при каких условиях они сглаживаются:

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

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

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

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

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

В ОАО «АВТОВАЗ» базовым типом структуры управления, по которой организовано большинство структурных подразделений, остается линейно-функциональный. Пример линейно-функциональной структуры управления представлен на рис. 2.8.


Рис. 2.8. Пример линейно-функциональной структуры управления

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

Американская корпорация «Дженерал Моторс» была одной из первых организаций, которой удалось преодолеть ограниченность линейно-функциональной структуры. В условиях диверсифицированного производства было решено значительно расширить самостоятельность крупных подразделений и предоставить им право самим реагировать на конъюнктуру рынка, превратить их в «центры прибыли». Это смелое управленческое решение было предложено и реализовано президентом компании А. Слоуном, назвавшим новую структуру «скоординированной децентрализацией». В дальнейшем такая организационная структура по-лучила название дивизиональной.

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

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

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

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

На отделение возлагается ответственность за производство и сбыт определенной продукции и получение прибыли, в результате чего управленческий персонал верхнего эшелона организации высвобождается для решения стратегических задач. Оперативный уровень управления концентрируется на производстве конкретного продукта или на осуществлении деятельности на определенной территории и отделен от стратегического уровня, отвечающего за рост и развитие организации в целом. Как правило, у высшего руководства организации остается не более 4-6 централизованных функциональных подразделений. Высший руководящий орган организации оставляет за собой право жесткого контроля по общекорпоративным проблемам стратегии развития, научно-исследовательских разработок, финансов, инвестиций и т. п. Следовательно, для дивизиональных структур ха-рактерно сочетание централизованного стратегического планирования в верхних эшелонах управления и децентрализованной деятельности отделений, на уровне которых осуществляется оперативное управление и которые ответственны за получение прибыли. В связи с перенесением ответственности за прибыль на уровень отделений (дивизионов) они стали рассматриваться как «центры прибыли», активно использующие предоставленную им свободу для повышения эффективности работы. В связи с вышесказанным дивизиональные структуры у правления принято понимать как сочетание централизованной координации с децентрали-зованным управлением (децентрализация при сохранении координации и контроля) или, в соответствии с высказыванием А. Слоуна, как «скоординированную децентрализацию».

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

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

Структурирование организации по отделениям производится по трем принципам:

Продуктовому - с учетом особенностей выпускаемой продукции или предоставляемых услуг;

По ориентации на конкретного потребителя;

Региональному - в зависимости от обслуживаемых территорий.

Выделяют три типа дивизиональных структур:

Дивизионально-продуктивные структуры;

Организационные структуры, ориентированные на потребителя;

Дивизионально-региональные структуры.

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


Рис. 2.9. Продуктовая дивизиональная структура

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

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

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

Примером продуктовой дивизиональной структуры в ОАО «АВТОВАЗ» может служить служба вице-президента по техническому развитию, в состав которой входят: научно-технический центр (НТЦ), обеспечивающий создание и постановку на производство новых и модернизированных моделей автомобилей; производство технологического оборудования (ПТО), изготавливающее продукцию станкостроения; производство пресс-форм и штампов (ППШ), изготавливающее технологическую оснастку (рис. 2.10).


Рис. 2.10. Пример продуктовой дивизиональной структуры

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

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


Рис. 2.11. Дивизионально-региональная структура

Пример конкретной региональной дивизиональной структуры, реализованной на ОАО «АВТОВАЗ» в системе управления поставками на внутренний рынок, представлен на рис. 2.12.


Рис. 2.12. Пример региональной дивизиональной структуры ОАО «АВТОВАЗ»

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

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

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


Рис. 2.13. Глобально ориентированная продуктовая (товарная) структура

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


Рис. 2.14. Глобально ориентированная региональная структура

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

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

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

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

Уменьшение сложности управления, с которой сталкиваются управляющие высшего звена;

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

Перенесение ответственности за прибыль на уровень дивизионов, децентрализация принятия оперативных управленческих решений;

Улучшение коммуникаций;

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

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

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

Противопоставление целей отделений общим целям развития организации, несовпадение интересов «верхов» и «низов» в многоуровневой иерархии;

Возможность возникновения конфликтов между подразделениями, в частности в случае дефицита централизованно распределяемых ключевых ресурсов;

Невысокая координация деятельности отделений (дивизионов), штабные службы разобщены, горизонтальные связи ослаблены;

Неэффективное использование ресурсов, невозможность их использовать в полной мере в связи с закреплением ресурсов за конкретным подразделением;

Увеличение затрат на содержание управленческого аппарата вследствие дублирования одних и тех же функций в подразделениях и соответствующего увеличения численности персонала;

Затруднение осуществления контроля сверху донизу;

Многоуровневая иерархия и в рамках самих отделений (дивизионов), действие всех недостатков линейно-функциональных структур;

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

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

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

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

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

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

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

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

Таблица 2.4 Сравнительный анализ экономических характеристик оргструктур


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

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

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

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


Рис. 2.15. Функциональная структура предприятия


Рис. 2.16. Дивизиональная структура предприятия


Рис. 2.17. Модель матричной структуры

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

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

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

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

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

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

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


(Материалы приведены на основании: Основы менеджмента. Под ред. А. И. Афоничкина. – СПб.: Питер, 2007)



Поделиться