52 инф сис в экономике. 2. Системы классификации и кодирования. Классификаторы
Скачать 427.26 Kb.
|
2. Системы классификации и кодирования. Классификаторы Для того, чтобы информацию из документов можно было быстро находить, сортировать или группировать с целью получения итоговых данных, необходимо наличие в документах соответствующих реквизитов-признаков. Такие реквизиты-признаки должны быть закодированы условными обозначениями. Присвоение условных обозначений реквизитов осуществляется на основании классификаторов. Классификатор — это систематизированный свод однородных наименований объектов по классификационным признакам (номенклатура) и их кодовых обозначений. Код — условное обозначение объекта цифровым или алфавитно-цифровыми знаками по определенным правилам, установленным системами кодирования. Существуют международные и общегосударственные классификаторы. Международные классификаторы входят в состав Системы международных экономических стандартов (СМЭС). К ним относятся: МСОК – отраслевая классификация всех видов экономической деятельности; КОП - Международная стандартная торговая классификация основных продуктов и т.д. Классификаторы, действующие на территории Российской Федерации, входят в Единую систему классификации и кодирования (ЕСКК). ЕСКК состоит из: - общероссийских классификаторов. В настоящее время существует свыше 40 общероссийских классификаторов, действие которых распространяется на все объекты финансово-хозяйственной деятельности (ОКПО, ОКФС, СОАТО, ИНН и т.д.); - отраслевых классификаторов, действующих для некоторых отраслей производства или видов деятельности (коды бухгалтерских счетов, коды видов оплаты и удержаний, виды операций с материальными ценностями и т.д.); - региональных классификаторов, действующих для данной территории; - локальных классификаторов, действующих для отдельного предприятия. Локальные классификаторы составляются на номенклатуры, специфичные для данной организации. Сюда входит широкий круг номенклатур, используемых различными подразделениями и службами ее управления, например сотрудники, подразделения, продукция и т.п. Локальные коды должны быть едиными при решении различных экономических задач. Составления локальных классификаторов осуществляется в два этапа. На первом этапе выполняется классификация информации, на втором — ее кодирование. Классификация начинается с выявления номенклатуры объектов подлежащих кодированию. Классифицирование – это деление множества объектов на классы в соответствии с нужным признаком. Такой признак называется классификационным. Значение классификационного признака позволяет установить сходство или различие объектов. Существуют иерархический и фасетный методы классификации объектов. Если классификационных признаков несколько и между ними существует иерархическая соподчиненность, то применяется иерархическая классификация. Иерархическая система классификации строится следующим образом: - исходное множество объектов делится на классы в соответствии со значениями первого классификационного признака, - полученные классы делятся на подклассы в соответствии со значениями второго классификационного признака, и т.д. Например, требуется классифицировать всех студентов по факультету, специальности, возрасту. Первый классификационный признак название факультета позволяет выделить несколько классов с разными названиями факультетов (например, 10 разных наименований). Если на каждом факультете одинаковое количество специальностей, например по пять, то по второму классификационному признаку мы получим 50 подклассов с разными названиями специальностей. Допустим, третий классификационный признак имеет три градации: до 20 лет, от 20 до 25 лет, свыше 25 лет, тогда каждый подкласс будет разбит на три возрастных подкласса. Если между признаками нет иерархической зависимости, то применяется фасетная классификация. Она используется для такого деления модели на классы, при котором ранг всех признаков одинаков. Классы-фасеты получают путем отнесения объектов в классы согласно значениям признаков одновременно. Например, множество студентов нужно разделить по двум признакам: пол, образование (среднее, среднее специальное и высшее). В результате получатся независимые классы-фасеты. Полученные таким образом фасеты позволяют с помощью операций пересечения, объединения и др. получать ответы на различные вопросы. Например, определить студентов мужчин с высшим образованием. Кодирование – это процесс присвоения условного обозначения объектам. Коды могут быть цифровыми, буквенными и буквенно-цифровыми. Применяется несколько систем кодирования: порядковая, серийная, позиционная, комбинированная. Порядковая система кодирования предполагает присвоение всем позициям кодируемой номенклатуры порядковых номеров без пропусков. Кодируемые объекты при этом не должны изменяться. Серийная система ориентирована на кодирование объектов, которые предварительно сгруппированы в серии. Сериям присваиваются номера с учетом их возможных расширений. Например, группа коды продовольственных товаров – коды от 01 до 59, группа коды хозяйственных товаров – коды от 60 до 99. Позиционная система кодирования отражает иерархическую соподчиненность признаков классификации. В коде каждому признаку отводится один или несколько разрядов в зависимости от значности кода признака. Например, разработать код группы, классификационные признаки специальность и год поступления. Если первый классификационный признак имеет значения от 01 до 99, в второй – от 0 до 9, то для номера группы требуется задать трехзначный код. Например, в коде группы студентов 119: 11- код специальности, 9 - год поступления студентов. Комбинированная система так же, как и позиционная, предусматривает четкое выделение всех признаков номенклатуры. Но при этом каждый признак может кодироваться по любой системе: порядковой, серийной или позиционной. Комбинированная система более гибкая и широко применяется при решении экономических задач, поскольку обеспечивает автоматическое получение всех необходимых итогов в соответствии с выделенными признаками. Например, если на одну специальность поступает много студентов и их объединяют в несколько групп, то рассмотренный выше позиционный код может быть дополнен еще одним разрядом, формирование значения которого будет осуществляться в соответствии с порядковой системой. Тогда в коде группы студентов 1191 значение 11- код специальности, 9 - год поступления студентов, 1 - номер группы в потоке. 18. Структура системы. Модульное построение системы. Модель и моделирование. Классификация. Системой называется некая совокупность элементов, обособленная от окружающей среды и взаимодействующая с ней как некое целое. Важной особенностью системы является невозможность выполнения отдельными элементами ее функций. Данная особенность получила наименование эмерджентности. Основой системы любой природы является ее элемент. Элементом системы называется ее неделимая часть. Структурой системой называется совокупность ее элементов, связанных определенным образом. Рисунок 1 - Отрицательная обратная связь; D = X – Y Структуру системы можно описать с помощью формулы: { }, S eij (1.3) где i и j изменяются от 1...n; n – число связей в системе. Структуру системы отображают в виде направленного графа, так как это показано на рис. 2. Рисунок 2 - Система, состоящая из четырех элементов A, B, C, D Для анализа ее связей с помощью ЭВМ. Структура системы может быть также представлена в виде таблицы. Система, показанная на рис. 2. представлена в табл. 1. Таблица 1. Структура системы Таблица состоит из нулей и единиц. Если между элементами имеется направленная связь, то на пересечении строки и столбца ставится 1, иначе 0. Совокупность элементов системы характеризуется определенным набором параметров состояний, которые изменяются во времени. Если в процессе управления системой параметры состояния должны обладать определенными постоянными значениями, то такое состояние системы называется состоянием с гомеостазисом. С учетом состояния в системе имеет место два типа функциональных связей. Зависимость внутреннего состояния системы Z от вектора входных величин X и зависимость вектора выходных величин Y от множества внутренних параметров системы и вектора входных величин. Для описания процесса движения динамических систем широко применяется метод, основанный на использовании фазового пространства (n-мерного Евклидова пространства). По осям откладываются значения всех n обобщенных координат рассматриваемой динамической системы. Размерность этого пространства определяется, числом фазовых координат. Это число отобранных для описания системы ее существенных параметров состояния. Геометрическое место точек при переходе системы из состояния Z1 в Z2, представляющее собой некоторую траекторию в фазовом пространстве, отражает процесс движения системы. Число независимых параметров состояния системы называют числом степеней свободы. Поведение системы моделируется на базе трех диаграмм: прецедентов (Use Case Diagram); активности (Activity Diagram); взаимодействия (Sequence Diagram, Collaboration Diagram). Прецедент – множество последовательностей действий для получения инициатором действий определенного результата. Инициатор действий это актер. Актер – связанное множество ролей, которые реализуются пользователями системы. Элементы диаграммы прецедентов показаны в табл. 2. Таблица 2 Элементы диаграммы использования Между прецедентами устанавливается связь типа «зависимость» с указанием определенных стереотипов. В UML используется два стереотипа: include – включение одного прецедента в другой; extend – расширение прецедента. Стереотип Include означает автоматическое исполнение связанного с ним прецедента. Стереотип extend – возможные дополнительные варианты работы пользователя с системой. Моделирование – это метод научного познания, заключающийся в изучении некоторого объекта посредством его модели. Модель – это объект-заменитель объекта–оригинала, который находится в определенном соответствии с оригиналом и обеспечивает изучение некоторых его свойств. Определения дают представление о моделировании, однако, чтобы понять его суть, необходимо сравнить этот метод с другими. Исторически первым методом научного познания является эксперимент, суть которого заключается в извлечении знаний об объекте путем непосредственного воздействия на него. Так, например, постепенно нагревая свинцовую болванку, можно выяснить температуру ее плавления. Эксперимент дает знания о свойствах конкретного объекта в определенных условиях, чего, конечно же, недостаточно для познания мира в целом. На помощь в этом случае приходят такие методы, как индукция и дедукция, которые позволяют на базе некоторых фактов делать общие или частные выводы. Например, проведя серию опытов со свинцовыми болванками разной формы, можно заключить, что температура плавления от нее не зависит. Эксперимент вместе с индукцией/дедукцией является мощным инструментом познания, который исправно снабжает человечество знаниями об окружающем мире. Однако с некоторых пор начали появляться ситуации, в которых проведение эксперимента невозможно или нежелательно по каким-либо причинам. Среди всевозможных причин можно указать физические, экономические, политические, этические и пр. Например, строить самолет для того, чтобы определить его аэродинамические качества, экономически невыгодно. Лучше это сделать при помощи модели самолета в аэродинамической трубе. Другой пример: при проверке безопасности автомобиля при лобовом столкновении имеет смысл использовать манекен, а не живого водителя или пассажира. Это и есть моделирование. Подводя итог, можно сказать, что моделирование имеет смысл использовать в тех случаях, когда возникает необходимость в изучении объектов или явлений, непосредственное наблюдение за которыми невозможно, затруднено, дорого, слишком продолжительно во времени и пр. Перейдем теперь к моделированию информационных систем. В чем здесь особенность? В чем трудность изучения информационной системы? Зачем ее вообще изучать? Чтобы ответить на эти вопросы, начнем с конца. Информационную систему надо изучать, т.к. разработчик должен точно знать, что требуется сделать. В противном случае он не сможет управлять разработкой и рискует сделать не то, что надо заказчику. Сложность изучения информационной системы заключается в том, что ее еще нет. Более того, обычно имеется две еще не существующих (виртуальных) системы. Звучит странно, но это так. Одна система – в голове заказчика, а вторая – это система, которую может сделать разработчик. Эти системы различаются в силу технических, технологических и прочих ограничений, с которыми должен считаться разработчик. Кроме того, бывают ситуации, когда заказчик смутно представляет, что ему нужно, или разработчик знает, как можно сделать лучше. Следовательно, для успешного взаимодействия между заказчиком и разработчиком нужны две модели: модель того, что хочет заказчик, и модель того, что может разработчик. Перейдем к моделям. Как было сказано выше, модель является заменителем оригинала и обеспечивает изучение некоторых его свойств. Понятие модели имеет принципиальное значение для человека, т.к. все, что он знает о мире, является моделью этого мира. Выделим два основных свойства моделей: 1. Модель позволяет акцентировать наиболее важные (с точки зрения решаемой задачи) аспекты изучаемого объекта, абстрагируясь от менее важных. 2. Модель всегда «хуже» объекта-оригинала, она всегда является некоторым его упрощением. Приведенное выше определение модели является слишком общим. Уточним понятие модели для задачи моделирования информационных систем. Модель – это абстрактное описание на некотором формальном языке некоторых аспектов системы, важных с точки зрения цели моделирования. Цели моделирования могут быть различными, например: понять предметную область, проанализировать поведение системы во времени, максимально точно записать принятое проектное решение и т.д. Таким образом, для различных целей имеем различные модели. Моделирование имеет богатую историю, и длительный опыт его применения позволил сформулировать четыре основных принципа. Первый принцип. Выбор модели оказывает определяющее влияние на подход к решению проблемы и на то, как будет выглядеть это решение. Иначе говоря, необходимо подходить к выбору модели вдумчиво. Правильно выбранная модель высветит самые серьезные проблемы разработки и позволит проникнуть в самую суть задачи, что при ином подходе было бы невозможно. Неправильная модель заведет в тупик, поскольку внимание будет сосредоточено на несущественных деталях. Данный принцип удобно разобрать на примере парадигм программирования. Каждая парадигма предлагает некоторый язык, в терминах которого решается задача. Любое решение, описанное на этом языке, можно считать моделью двоичного кода, который существует во время выполнения. Рассмотрим логическую парадигму. В этом случае предлагается описывать решение в терминах логических утверждений, предоставляются механизмы прямого/обратного вывода и механизм отката. Такой подход удобен для решения задач искусственного интеллекта и совершенно не подходит, например, для финансовых вычислений. Функциональная парадигма, напротив, очень удобна для вычислений, но в то же время ее нельзя применить для обработки сложных структур данных. Объектно-ориентированная парадигма позволяет легко справиться с множеством взаимодействующих объектов, обладающих сложной структурой и поведением, однако работа с логическими утверждениями вызовет определенные трудности. Второй принцип. Каждая модель может быть воплощена с разной степенью абстракции. Иногда достаточно поверхностного описания системы, например, для общения с заказчиком, однако бывают случаи, когда требуется работа на уровне битов, например, при спецификации межсетевого интерфейса. Третий принцип. Лучшие модели – те, что ближе к реальности. Под близостью к реальности в данном случае следует понимать фиксацию существенных особенностей объекта, а не излишне подробное его описание. Модель, загроможденная деталями, может только запутать, хотя ее первичное назначение – вносить ясность. Детальность модели должна соответствовать цели моделирования. В основе этого принципа лежит следующая идея. Поскольку модель всегда упрощает реальность, задача состоит в том, чтобы это упрощение не повлекло за собой каких-либо существенных потерь. Четвертый принцип. Нельзя ограничиваться созданием только одной модели. Наилучший подход при разработке любой нетривиальной системы – использовать совокупность нескольких моделей, почти независимых друг от друга. Если система сложная, то учет всех ее аспектов в одной модели приведет к ее чрезвычайной сложности. Лучше иметь несколько моделей, делающих акценты на разных сторонах системы. На самом высоком уровне все модели можно разделить на материальные и идеальные. Материальные модели воспроизводят объект моделирования так сказать «во плоти». Примером материальной модели может служить модель самолета в аэродинамической трубе. К идеальным моделям относятся все описательные модели, т.е. они описывают объект моделирования на некотором языке. Например, фраза «паспорт – это документ, удостоверяющий личность» является моделью паспорта. В рамках данного пособия будут рассматриваться именно идеальные модели. Классификация по точке зрения на систему. Следующим способом классификации моделей является классификация по точке зрения на систему (в соответствии с четвертым принципом моделирования). Модели можно разделить на следующие виды: – статические – описывают структурные свойства; – динамические – описывают поведенческие свойства; – функциональные – описывают функциональные свойства. Статическая модель описывает составные части системы, их структуру, связи между ними и операции, которые они могут выполнять. Операции статической модели являются событиями динамической и функциями функциональной. Динамическая модель описывает последовательность выполнения шагов в процессе функционирования системы. Она дает объяснение, в результате чего была вызвана та или иная операция статической модели и вычислена функция функциональной модели. Функциональная модель описывает преобразования, осуществляемые системой. Она раскрывает содержание операций статической модели и событий динамической. Связи между такими моделями явные и обозримые, поэтому можно понять каждую модель в отдельности. Относительная важность этих моделей зависит от предмета моделирования. В неинтерактивных вычислительных задачах важнее функциональная модель, в интерактивных системах – динамическая, а статическая модель важна для любых систем с нетривиальными структурами данных. В объектном подходе функциональную модель обычно не выделяют, т.к. все видимые преобразования сводятся к изменению состояния объектов, которое отражается в поведенческих моделях. Классификация Буча (в соответствии с четвертым принципом моделирования). Приведенная выше классификация является общей и применима к моделям любых систем. Применительно к программным системам вообще и к информационным системам в частности существует более подробная классификация, которую предложил Грэди Буч. Программная система наиболее оптимально может быть описана при помощи следующих пяти взаимосвязанных моделей: модель прецедентов, модель проектирования, модель процессов, модель реализации и модель развертывания. Модель прецедентов – охватывает прецеденты, которые описывают поведение системы, наблюдаемое конечными пользователями, аналитиками и тестировщиками. Модель проектирования – охватывает классы, интерфейсы и кооперации, формирующие словарь задачи и ее решения. Эта модель поддерживает прежде всего функциональные требования, предъявляемые к системе, т.е. те услуги, которые она должна предоставлять конечным пользователям. Модель процессов – охватывает потоки и процессы, формирующие механизмы параллелизма и синхронизации в системе. Данная модель описывает главным образом производительность, масштабируемость и пропускную способность системы. Модель реализации – охватывает компоненты и файлы, используемые для сборки и выпуска конечного программного продукта. Данная модель предназначена в первую очередь для управления конфигурацией версий системы, составляемых из независимых (до некоторой степени) компонентов и файлов, которые могут по-разному объединяться между собой. Модель развертывания – охватывает узлы, формирующие топологию аппаратных средств системы, на которых она выполняется. Классификация по степени абстракции (в соответствии со вторым принципом моделирования). По степени абстракции модели можно разделить на следующие виды: – концептуальные модели – высокоуровневый взгляд на задачу в терминах предметной области; – модели спецификации – определяют внешний вид и внешнее поведение системы; – модели реализации – отражают внутреннее устройство системы, конкретный способ реализации внешнего облика и наблюдаемого поведения. Концептуальную модель и модель спецификации необходимо строить всегда (или почти всегда). Построение модели реализации является довольно трудоемким и достаточно механическим занятием, поэтому ее имеет смысл описывать в особо сложных случаях для иллюстрации некоторого нестандартного решения, использованного программистом или рекомендуемого ему. Задача выполняется в среде MS Access и включает следующие этапы: проектирование базы данных: определение вида и состава таблиц базы данных – таблицы Студенты и Экзамены; заполнение таблиц данными (табл. 4 и 5); выбор дополнительных полей для таблицы Студенты (табл. 2), соответствующих варианту контрольной работы (табл. 3) и заполнение их данными; установление связей между таблицами базы данных; формирование по каждому варианту трех различных видов запросов: 2 запроса на выборку с условием по нескольким полям и один запрос с вычисляемым полем; создание отчета с помощью Мастера отчётов; модификация отчета средствами Конструктора отчетов. При проектировании базы данных необходимо выбрать из таблицы 2 перечень дополнительных показателей, в соответствии с номером задачи. Например, задаче 1 соответствуют дополнительные показатели: 11, 12,13. Таблица 2 Перечень дополнительных полей для таблицы Студенты
Распределение показателей в соответствии с номером задачи приведено в таблице 3. Таблица 3
Решение: 1. В качестве примера рассмотрим базу данных, состоящую из двух таблиц: Студенты и Экзамены. - Для формирования таблицы Студенты используются следующие показатели: Фамилия Имя Отчество Семейное положение Количество детей Шифр Дата рождения Пол Факультет Направление Группа Квалификация Адрес Ин яз Стипендия Воинское звание - Для формирования таблицы Экзамены используются следующие показатели: Шифр обучающийся Дисциплина Дата сдачи экзамена Оценка 2. Установим связи между таблицами: Таблица «Студенты» включает в себя следующие поля (рис. 1): Рис. 1. Таблица «Студенты» Таблица «Экзамены» включает в себя следующие поля (рис. 2): Рис. 2. Таблица «Экзамены» Между таблицами установим связи, в соответствии с рис. 3. Рис. 3. Схема связей между таблицами «Студенты» и «Экзамены» 3. Заносим данные в созданные таблицы (см. табл. 4, 5). Таблица 4. Таблица 5. 4. Сформируем 3 запроса: получить список студентов факультета юридического, сдавших социологию на 5; получить список студентов группы К-11, у которых день рождения летом. получить список студентов – женщин, изучающих Английский язык. Запрос 1 С помощью Конструктора запросов сформируем запрос на выборку (рис.6), извлекающий из таблиц созданной базы данных фамилии обучающихся, обучающихся на экономическом факультете. Для этого используем поля «Фамилия», «Имя», «Отчество» и «Факультет» из таблицы Студенты и поля «Дисциплина» и «Оценка» из таблицы Экзамены. В строку Условия отбора для поля «Факультет» введем условие «Юридический», для поля «Оценка» введем условие «>4», а для поля «Дисциплина» условие «Социология». В результате выполнения запроса будет получена таблица. Рис. 5. Конструктор запроса на выборку обучающихся юридического факультета, сдавших социологию на 3 В результате выполнения запроса будет получена таблица, представленная на рис. 6. Рис. 6. Выборка по запросу 1 Запрос 2 (рис. 7), извлекающий из базы данных фамилии студентов, у которых день рождения летом. В запрос на выборку включаем поля «Фамилия», «Имя», «Отчество» и «Дата рождения» из таблицы «Студенты». В бланке запроса С помощью Конструктора запросов сформируем запрос на выборку с помощью Построителя выражений создаем вычисляемое поле: Выражение 1: = Month([Студенты]![Дата рождения]), Заменив «Выражение 1» на «Месяц рождения», получим: Месяц рождения: Month([Студенты]![Дата рождения]) В строке Условие отбора для вычисляемого поля зададим условие отбора Between 3 and 5. Рис. 7. Конструктор запроса на выборку обучающихся, у которых день рождения весной В результате выполнения запроса будет получена таблица, представленная на рис. 8. Рис. 8. Выборка по запросу 2 Запрос 3 С помощью Конструктора запросов сформируем запрос на выборку (рис. 9), извлекающий из созданной базы данных фамилии студентов-девушек, получающих стипендию. Рис. 9. Конструктор запроса на выборку студентов-девушек, получающих стипендию Для выполнения запроса используем поля «Фамилия», «Имя», «Пол» и «Группа» из таблицы Студенты. В строку «Условия отбора» поля Пол студентавведем значение «Ж», а в строку «Условия отбора» поля Стипендия введем значение «>0». В результате выполнения запроса будет получена таблица, представленная на рис. 10. Рис.10. Выборка по запросу 3 5. Создание отчетов С помощью Мастера отчетов в пошаговом режимесоздадим отчет «Результаты сдачи экзаменов»: формируем список необходимых полей; выбираем вид представления данных по таблице Экзамены; добавляем уровень группировки отчета по полю Дисциплина; при необходимости указываем наличие сортировки по какому-либо полю; вид макета для отчета выбираем структура. В созданный отчет внесем изменения в режиме Конструктора отчетов (рис. 11): Рис. 11. Вид отчета в режиме Конструктора В результате выполнения указанных действий получим отчет следующего вида (рис. 12). Рис. 12. Отчет «Результаты сдачи экзаменов» в режиме предварительного просмотра СПИСОК ЛИТЕРАТУРЫ 1. Балдин К.В. Информационные системы в экономике: учеб. пособие. – М.: ИНФРА-М, 2017. – 218 с. 2. ВАРФОЛОМЕЕВА АЛЕСАНДРА ОЛЕГОВНА. Информационные системы предприятия : учебное пособие для вузов / ВАРФОЛОМЕЕВА АЛЕСАНДРА ОЛЕГОВНА, А. В. Коряковский, В. П. Романов. - 2-е изд., перераб.и доп. - М. : Инфра-М, 2017. - 330с. 3. Информационные системы в экономике / Титоренко Г.А., - 2-е изд. - М.:ЮНИТИ-ДАНА, 2015. - 463 с.: ISBN 978-5-238-01167-7. - Режим доступа: http://znanium.com/go.php?id=872661 5. Информационные системы предприятия: Учебное пособие / А.О. Варфоломеева, А.В. Коряковский, В.П. Романов. - М.: НИЦ ИНФРА-М, 2016. - 283 с.: 60x90 1/16. – (Высшее образование: Бакалавриат) (Переплёт 7БЦ) ISBN 978-5-16-005549-7. - Режим доступа: http://znanium.com/go.php?id=536732 6. Мезенцев К.Н. Моделирование систем. В 2 ч. Ч. 1. Основы системотехники и исследования систем: курс лекций / К.Н. Мезенцев; под ред. д-ра техн. наук, проф.А.Б. Николаева. – М.: МАДИ, 2017. – 84 с. 7. Информационные технологии финансовой системы. Электронный ресурс: https://studopedia.su/10_153648_informatsionnie-tehnologii-finansovoy-sistemi.html 8. Шаврин С.М. Моделирование и проектирование информационных систем: учеб.- метод. пособие / С.М. Шаврин, Л.Н. Лядова, С.И. Чуприна; Перм. гос. ун‑т.– Пермь, 2020. – 152 с. 9. Шустова Л.И. Базы данных : учебник / Л.И. Шустова, О.В. Тараканов. — М. : ИНФРА-М, 2017. — 304 с. |