Разработка программного обеспечения для автоматизации процесса закупок необходимых материалов для ООО "Звезда Востока и Японии"

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

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 14.09.2012
Размер файла 3,6 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

ВВЕДЕНИЕ

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

Актуальность данной темы очень высока на сегодняшний день так как необходимо повышать качество выполняемых работ и уменьшения трудовых затрат. Задача планирования потребностей в материалах (Materials Requirements Planning, MRP) оказалась той первой задачей, которая привела к созданию целой индустрии программного обеспечения для управления предприятием.

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

Целью данного дипломного проекта является разработка программного обеспечения для автоматизации процесса закупок необходимых материалов для ООО "Звезда Востока и Японии", г. Краснодар.

1. Исследование предметной области

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

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

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

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

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

· методов и алгоритмов планирования, реализованных в виде программ и программных систем.

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

К настоящему времени разработан ряд методологий, таких как MRP, MRP II, ERP, применяемых для идентификации и эффективного планирования ресурсов предприятия при осуществлении закупок материалов и комплектующих, производства и продаж готовых изделий. Развитие методологий планирования прошло путь от планирования материалов - Material Requirements Planning (MRP), до планирования ресурсов предприятия в целом - Enterprise Resource Planning (ERP)[1].

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

Рисунок 1.1 - Структура MRP системы

Далее приводятся описания основных функций и компонентов систем классов MRP и ERP, а также общие сведения о системе CALS.

Методология Material Requirements Planning (MRP) - планирования потребностей в материалах (под материалами здесь понимаются как непосредственно материалы, так и сырье, комплектующие изделия, детали, узлы и все остальное, что необходимо для производства продукции), разрабатывалась и предназначена для использования на производственных предприятиях, имеющих дискретный тип производства - серийное, сборка и изготовление на заказ или склад, то есть когда имеется ведомость необходимых материалов и комплектующих изделий для изготовления конечного продукта [2].

В MRP различают независимый и зависимый спрос на материалы, детали и конечные изделия.

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

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

Концепция MRP системы, фактически, сводится к двум основным принципам:

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

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

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

Элементы MRP системы можно разделить на следующие составляющие:

· элементы, содержащие входную информацию для планирования потребностей в материалах. Такими элементами являются основной производственный план - Master Production Shedule, перечни компонентов производимых в соответствии с основным производственным планом изделий - Bills of Material, и описание наличия или отсутствия необходимых для производства компонентов - Inventory Status File;

· программная реализация алгоритмов планирования потребностей в материалах, то есть, собственно MRP;

· результаты работы MRP системы: план-график заказов материалов - Planned Order Schedule, изменения плана-графика заказов - Changes in Planned Orders, ряд отчетов для контроля и управления процессом снабжения [2].

Рассмотрим подробней входную информацию для MRP системы.

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

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

Описание состояния запасов (Inventory Status File) отражается в соответствующих таблицах базы данных. Для каждой номенклатурной единицы должен быть указан её статус - передана ли она в производство, находится на складе, заказана или её заказ только планируется, а также множество других параметров и характеристик, отражающих её уникальность: код, обозначение, описание, тип, размер, вес, единица запаса, единица хранения, основной поставщик, цена и другие. При изменении статуса учетной единицы соответствующие записи базы данных обновляются.

На основании входных данных MRP система выполняет следующие действия:

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

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

· определяет общую потребность в материалах с распределением по периодам планирования;

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

· формирует заказы на пополнение запасов с учетом времени опережения, определяемого особенностями сроков поставки по каждому типу материалов [2].

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

Изменения плана-графика заказов (Changes in Planned Orders) являются корректировками к ранее спланированным заказам, которые могут быть по каким-либо причинам изменены.

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

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

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

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

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

Обзор аналогичных программных продуктов

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

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

При разработке программы использовалась методология планирования потребности в материалах MRP (Material Requirements Planning).

Входящие данные для программы:

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

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

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

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

Потребность отображается в натуральном и в стоимостном выражении.

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

При расчете потребности с учетом остатков во внимание принимаются только остатки, находящиеся на складе (место хранения - СКЛАД). Вы можете переименовать это место хранения, например, Материально-техническая база, склад сырья и др.

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

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

Более подробное описание, инструкции и рекомендации по работе с программой находятся в ней самой.

Программа написана на Microsoft Access 2003, оптимизирована для разрешения экрана 1024х768, распространяется бесплатно с закрытым исходным кодом.

Даже несмотря на бесплатное распространение, использование данной программы на ОАО «Тайфун» невозможно, т.к. все данные хранятся не в Microsoft Access, а в базах данных ORACLE.

1.1 Модель предметной области

В последние годы системы планирования в интеграции с модулем финансового планирования FRP (Finance Requirements Planning) получили название систем бизнес-планирования ERP (Enterprise Requirements Planning), которые позволяют наиболее эффективно планировать всю коммерческую деятельность современного предприятия, в том числе финансовые затраты на проекты обновления оборудования и инвестиции в производство новой линейки изделий. В Российской практике, целесообразность применения систем подобного класса обуславливается, кроме того, необходимостью управлять бизнес процессами в условиях инфляции, а также жесткого налогового прессинга, поэтому, системы ERP необходимы не только для крупных предприятий, но и для небольших фирм, ведущих активный бизнес [3]. На рисунке 1.2 представлена модель системы планирования ресурсов производственного предприятия.

Рисунок 1.2 - Модель системы планирования ресурсов предприятия

2. Анализ требований к программному обеспечению

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

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

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

ОМТС из компьютерной системы получает информацию о необходимом к закупке количестве материалов (брутто-потребность). Все необходимые расчеты выполняет БМТН предприятия на каждый запуск производства. Плановое бюро ОМТС группирует все рассчитанные потребности ПО ЗАКАЗУ и ПО ЗАВОДУ, в случае необходимости потребность корректируется на допустимые замены согласно таблице замен или оформляется карта отклонений.

Входной информацией является:

1. Рассчитанные MRP-потребности

2. Заявки на заказ поставщику (ответственные ОМТС)

Выполняемые действия:

1. Просмотр необходимых к закупке материалов

2. Формирование заказов на закупку и уведомление финансового отдела о необходимости оплаты в установленном на предприятии порядке

3. Отслеживание заказов поставщикам и уведомление финансового отдела об оплате в соответствии с договором (заявкой на поставку).

выходная информация:

1. Заказы поставщикам (ожидаемые приходы-даты, количество)

2. Уведомления о необходимости оплаты - заявка на оплату и счет со стороны поставщика для оплаты

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

Последовательность выполняемых действий:

1. Выбор режима расчета MRP потребности:

- на каталог

- по на все каталоги

2. Расчет MRP потребности.

3. Расчет MRP потребности с учетом замен.

4. Привязка поставщиков. Если есть таблица поставщиков (т.е. связь материалов и поставщиков)

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

6. Далее дать возможность посмотреть уже сформированные заказы. Т.к каталоги на один и тот же заказ или разные пополняются, то нужно все время проверять общую потребность к закупке с уже сформированными заказами и формировать новые.

3. Техническое задание на разработку

Основание для создания автоматизированной системы.

Разработка данной системы осуществляется на основании задания на дипломную работу.

Назначение и цель разработки.

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

идентификация пользователей;

авторизация;

управление доступом на основе ролей;

планирование заказов;

формирование отчётов.

Задачей дипломной работы является составление проекта по разработке автоматизированной системы управления предприятием, которая включает:

Порядок хранения товара на складе и отслеживание его внутреннего перемещения;

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

Отслеживание запасов склада.

Пользователи автоматизированной системы.

Пользователями автоматизированной системы будут:

менеджеры;

работники склада;

работники отдела закупок;

касса.

Требования к функциональным характеристикам.

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

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

Система должна вести учет, иметь удобный и достаточный набор информации;

Система должна иметь удобный интерфейс;

2. Исходные данные:

справочник;

справочник товаров;

3. Результаты:

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

Требования к надежности.

Предусмотреть контроль вводимой информации.

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

Обеспечить целостность вводимой информации.

Требования к составу и параметрам технических средств.

Система должна работать на IBM совместимых персональных компьютеров.

Минимальная конфигурация:

Тип процессора Celeron и выше;

Объём оперативного занимаемого устройства 256 Mb и больше.

Требования к информационной программной совместимости.

Система должна работать под управлением семейства операционных систем Win 32 (Windows XP/Vista/7 и т.д.).

4. Выбор метода разработки программного обеспечения

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

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

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

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

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

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

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

5. Реализация разработки

5.1 Разработка программных модулей

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

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

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

5.1.1 Идентификация

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

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

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

Для данных целей подсистема использует модуль UnitM4Server, который содержит все необходимые функции. Проверку подлинности осуществляет функция User_Connect. Входные параметры: login - имя пользователя, password - пароль. Данная функция принимает имя пользователя и пароль и при правильном вводе, подключает пользователя к базе. Окно ввода имени пользователя и пароля представлено на рисунке 5.1.

Рисунок 5.1 - Окно проверки доступа

Код процедуры

TMainF.SocketConnection1AfterConnect:

Procedure TMainF.SocketConnection1AfterConnect(Sender: TObject);

var

us_n,us_p,us_fio:Widestring;

begin

us_n:='';

us_p:='';

try

M4Server:=IM4ServerDisp(IDispatch(SocketConnection1.appServer));

if M4Server.Error_Code<>0 then

raise exception.Create(M4Server.Error_Message);

us_n:=UpperCase(IniParameters.UserName);

if UsNamePass='' then

PassDlg(us_n, us_p)

else

begin

us_n:=LeftStr(UsNamePass,pos('@',UsNamePass)-1);

us_p:=midStr(UsNamePass,length(us_n)+2,Length(UsNamePass)-2);

end;

if us_n<>'' then

IniParameters.UserName:=us_n;

if M4Server.User_Connect(us_n,us_p,us_fio) > -1 then

begin

StatusBar1.Panels[0].Text := us_fio;

us_n:='';

us_p:='';

menu:=MainMenuConnected;

ShowModulKatalogs(nil)

end

else

begin

if UsNamePass='' then

begin

ShowMessage('Неправильное имя пользователя или пароль!');

SocketConnection1.Close;

M4Server:=nil;

end

else

close;

end

except

//raise exception.Create('Соединение невозможно!');

SocketConnection1.Close;

M4Server:=nil;

raise

end;

end;

5.1.2 Авторизация

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

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

Роль - это ключевой компонент функции управления доступом на основе ролей. Роли создаются в соответствии с тем, что требуется сотрудникам для эффективного предоставления доступа к нужному инструментарию [7].

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

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

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

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

5.1.3 Управление доступом на основе ролей

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

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

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

Управление доступом на основе ролей включает в себя следующие возможности:

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

§ Обязательные службы, доступ к которым должен предоставляться до того, как будут заданы те или иные права доступа. Например, права доступа к Windows NT(R) должны предоставляться до предоставления прав на доступ к Microsoft Outlook(R).

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

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

§ Можно создавать частные просмотры информации о пользователях и доступных ресурсах с применением фильтров.

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

§ Можно безопасным образом распределять компоненты системы предоставления доступа по средам WAN и Интернет (включая переход через брандмауэры).

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

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

5.1.4 Алгоритмы работы подсистемы

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

5.1.5 Структура таблиц

«Таблица материалы» содержит в себе информацию о всех материалах и их характеристиках таблица 5.1.

Таблица 5.1

Таблица «Материалы»

Таблица имеет следующие поля:

MATERIAL_ID: Идентификатор

KOD_OKP: Код ОКП

NAME: Наименование

ED_IZM: Еденица измерения

NORMA: Минимальная норма запаса на складе

DECLARATION: Дополнительное описание

KORR_SCHET: Балансовый счет

USER_ID: Идентификатор пользователя

DATE_CREATE: Дата создания

DATE_LAST_CHANGE: Дата последнего изменения

MAT_TYPE: Тип еденицы

IMBASE_KEY: Ключ в IMBASE

SAPFORD_KEY: Ключ в SAPFORD

GR_ZAMEN: Номер группы взаимозаменяемых материалов

MIN_RASHOD: Минимальная партия выдачи

Структура таблицы «контрагенты»

«Таблица контрагенты» содержит информацию о контрагентах и их характеристиках.

Таблица 5.2

Таблица «Контрагенты»

Таблица имеет следующие поля:

CODE: Внешний идентификатор (три знака почтового индекса + четырехзанчный код)

NAME: Наименование

FULL_NAME: Полное имя

INN: ИНН банка

KPP: КПП предприятия

ZIP: Почтовый индекс

REGION: Регион, край, область, автономный округ.

SUB_REGION: Район

CITY: Наиненование населенного пункта

NAS: Внутренний код

STREET: Улица

HOUSE: Дом

HOUSE_CASE: Корпус

HOUSE_CASE_STRUC: Строение

CONTRAGENT_ID: Внутренний код

PHONE: Телефон

FAX: Факс

E_MAIL: Электронный почтовый ящик

ADD_INF: Дополнительная информация

OFFICE: Офис

COUNTRY: Страна

DATE_CREATE: Дата создания записи

DATE_LAST_CHANGE: Дата изменения записи

USER_ID : Идентификатор пользователя

USER_ID_CHANGE: Идентификатор изменившего пользователя

Структура таблицы «замены»

«Таблица замены» содержит информацию о заменах

Таблица 5.3

Таблица «Замены»

Таблица имеет следующие поля:

MZ_ID: Уникальный идентификатор

MZ_KAT_ID: Каталог

MZ_MAT_ID: Идентификатор заменяемого материала

MZ_NEW_MAT_ID: Идентификатор нового материала

MZ_KOL: Количество заменяемого материала

MZ_MAX_KOL: Всего заменяемого материала

MZ_NEW_KOL: Количество нового материала

MZ_TYPE: Тип замены (0 - полная, 1 - частичная)

Процедура добавления замены:

CREATE OR REPLACE PROCEDURE

"MATERIALS_ZAMEN_CREATE" (

in_kat_id IN sostav.sos_kat_id%TYPE,

in_mat_id IN materials_zamen.mz_mat_id%TYPE,

in_new_mat_id IN materials_zamen.mz_mat_id%TYPE,

in_old_kol IN materials_zamen.mz_kol%TYPE,

in_max_kol IN materials_zamen.mz_max_kol%TYPE,

in_new_kol IN materials_zamen.mz_new_kol%TYPE,

in_zamen_type IN materials_zamen.mz_type%TYPE

)

/*добавление записи по материалу к версии расчета*/

IS

out_id INTEGER;

mat_count INTEGER := 0;

summ_kol NUMBER := 0;

BEGIN

SELECT seq_material_zamen_mz_id.NEXTVAL

INTO out_id

FROM DUAL;

-- Ищем были ли произведены полные замены на данный материал

SELECT COUNT (*)

INTO mat_count

FROM materials_zamen

WHERE mz_mat_id = in_mat_id AND mz_type = 0

AND mz_kat_id = in_kat_id;

-- Если производится частичная замена и уже есть полная замена

IF (in_zamen_type IN (0, 1) AND mat_count > 0)

THEN

raise_application_error

(-20001,

'Вы не можете проводить замену, т.к. с данным материалом уже была

произведена полная замена.'

);

END IF;

mat_count := 0;

-- Ищем были ли произведены частичные замены на данный материал

SELECT COUNT (*)

INTO mat_count

FROM materials_zamen

WHERE mz_mat_id = in_mat_id AND mz_type = 1

AND mz_kat_id = in_kat_id;

-- Если производится полная замена и уже есть частичные замены

IF (in_zamen_type = 0 AND mat_count > 0)

THEN

raise_application_error

(-20001,

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

уже была произведена частичная замена.

);

END IF;

--Проверяем, можно ли произвести частичную замену

IF (in_zamen_type = 1)

THEN

SELECT SUM (mz_kol)

INTO summ_kol

FROM materials_zamen

WHERE mz_mat_id = in_mat_id AND mz_type = 1 AND mz_kat_id =

in_kat_id;

summ_kol := summ_kol + in_old_kol;

IF (summ_kol > in_max_kol)

THEN

raise_application_error

(-20001,

'Общее количество материалов при проведении частичных замен

превышает максимальное количество.'

);

END IF;

END IF;

INSERT INTO materials_zamen

(mz_id, mz_kat_id, mz_mat_id, mz_new_mat_id, mz_kol,

mz_max_kol, mz_new_kol, mz_type

)

VALUES (out_id, in_kat_id, in_mat_id, in_new_mat_id, in_old_kol,

in_max_kol, in_new_kol, in_zamen_type

);

END materials_zamen_create;

Процедура удаления замены:

CREATE OR REPLACE PROCEDURE

"MATERIALS_ZAMEN_DELETE" (

in_mz_id IN materials_zamen.mz_id%TYPE

)

/*удаление замены материала*/

IS

BEGIN

DELETE FROM materials_zamen

WHERE mz_id = in_mz_id;

END materials_zamen_delete;

Структура таблицы «закупок»

«Таблица закупок» содержит информацию о заменах

Таблица 5.3

Таблица «Закупки»

MC_ID: Идентификатор

MC_MAT_ID: Идентификатор материала

MC_MZ_ID: Идентификатор замены материала

MC_POST_ID: Идентификатор контрагента

MC_NAME: Наименование контрагента

MC_COUNT: Количество на закупку

MC_COST: Цена

MC_EDIZM: Единица измерения

MC_KAT_ID: Каталог

Процедура добавления контрагента в таблицу закупок:

CREATE OR REPLACE PROCEDURE

"MATERIALS_CONTRAGENT_CREATE" (

in_mc_kat_id IN materials_contragent.mc_kat_id%TYPE, in_mc_mat_id IN

materials_contragent.mc_mat_id%TYPE, in_mc_mz_id IN

materials_contragent.mc_kat_id%TYPE, in_mc_post_id IN

materials_contragent.mc_post_id%TYPE, in_mc_name IN

materials_contragent.mc_name%TYPE, in_mc_count IN

materials_contragent.mc_kat_id%TYPE, in_mc_cost IN

materials_contragent.mc_cost%TYPE, in_mc_edizm IN

materials_contragent.mc_edizm%TYPE, out_id OUT

materials_contragent.mc_id%TYPE

)

/*добавление записи по материалу к версии расчета*/

IS

BEGIN

SELECT seq_materials_contragent_mc_id.NEXTVAL

INTO out_id

FROM DUAL;

INSERT INTO materials_contragent

(mc_id, mc_mat_id, mc_mz_id, mc_post_id, mc_name,

mc_count, mc_cost, mc_edizm, mc_kat_id

)

VALUES (out_id, in_mc_mat_id, in_mc_mz_id, in_mc_post_id,

in_mc_name,

in_mc_count, in_mc_cost, in_mc_edizm, in_mc_kat_id

);

END materials_contragent_create;

Процедура удаления контрагента в таблицу закупок:

CREATE OR REPLACE PROCEDURE

"MATERIALS_CONTRAGENT_DELETE" (

in_mc_id IN materials_zamen.mz_id%TYPE

)

/*удаление контрагента*/

IS

BEGIN

DELETE FROM materials_contragent

WHERE mc_id = in_mc_id;

END materials_CONTRAGENT_delete;

5.1.6 Модуль Mat_Zamen.pas

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

На форме расположены три таблицы TDBGridEh. Это таблицы материалов, замен и контрагентов, а также закладки и меню TMenuItem. На форме присутствуют компоненты TСlientDataSet, TdataSource.

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

Компонент обеспечивает выполнение следующих основных функций:

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

* представление набора данных при помощи локального буфера и поддержка основных операций, унаследованных от класса TDataSet;

* объединение записей набора данных при помощи агрегатных функций для получения суммарных данных;

* локальное сохранение набора данных в файле и последующее восстановление набора данных из файла;

* представление набора данных в формате XML [6].

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

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

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

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

1. Связать набор данных и компонент TDataSource. Для этого используется свойство DataSet компонента TDataSource, доступное через Инспектор объектов. Это указатель на экземпляр компонента доступа к данным.

В списке этого свойства в Инспекторе объектов перечислены все доступные компоненты наборов данных.

2. Переименовать компонент. Это не обязательное действие. Тем не менее желательно присваивать компонентам осмысленные имена, соответствующие названиям связанных наборов данных [7].

Компонент меню, представленный на рисунке 5.1, выполняет следущие процедуры:

· Ввод / удаление контрагента;

· Ввод / удаление замены;

· Печать отчета

Рисунок 5.1 - Главное меню

Процедуры ввода (TFRep_Mats.N5Click) и удаления (TFRep_Mats.N14Click) контрагентов

procedure TFRep_Mats.N5Click(Sender: TObject);

begin

IF not assigned(scM4_ContrAgents) then

initscM4_ContrAgents(SharedConnection.ParentConnection);

ContrAgentsGet_Sprav(Self,

IM4ContrAgentsDisp(IDispatch(scM4_ContrAgents.AppServer)),

(Screen.DesktopHeight div 2) - (height div 2),

(Screen.DesktopWidth div 2) - (width div 2),

'', '', '',

ContrAgent_Name,

ContrAgent_Code);

if (DBGEh_Mats.Focused = True) and (ContrAgent_Name <> '') Then

Mat_Contr_Add(Application, SharedConnection, Kat_Id,

CDS_Mats.FieldByName('MD_MR_ID').AsInteger,

0, 0, ContrAgent_Code, ContrAgent_Name)

else if (DBGEh_Zamen.Focused = True) and (ContrAgent_Name <> '') then

Mat_Contr_Add(Application, SharedConnection, Kat_Id,

CDS_Zamen.FieldByName('MZ_MAT_ID').AsInteger,

CDS_Zamen.FieldByName('MZ_ID').AsInteger, 1, ContrAgent_Code,

ContrAgent_Name);

Contr_Refresh;

end;

procedure TFRep_Mats.N14Click(Sender: TObject);

begin

V.Mat_Zamen_Contr_Del(CDS_Contr.FieldByName('MC_ID').AsInteger);

Contr_Refresh;

end;

Процедуры ввода и удаления замен:

procedure TFRep_Mats.N13Click(Sender: TObject);

begin

Enter_Zamen(Application, SharedConnection,

Kat_Id,

CDS_Mats.FieldByName('MD_MR_ID').AsInteger,

CDS_Mats.FieldByName('GM_ID').AsInteger,

CDS_Mats.FieldByName('MAT_OKP').AsInteger,

CDS_Mats.FieldByName('MR_NAME').AsString,

CDS_Mats.FieldByName('POTREB').AsString,

CDS_Mats.FieldByName('GM_NAME').AsString);

Zamen_Refresh;

end;

procedure TFRep_Mats.N15Click(Sender: TObject);

begin

V.Mat_Zamen_Delete(CDS_Zamen.FieldByName('mz_id').AsInteger);

Zamen_Refresh;

Contr_Refresh;

end;

Печать отчета

procedure TFRep_Mats.N8Click(Sender: TObject);

begin

Mat_Zamen_Rep(Application, SharedConnection, Kat_Id, 1,

Kat_ZCO_NAME, Kat_Name);

end;

Модуль Mat_Zamen_New.pas

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

TDBGridEh, TbitBtn, TdataSource, TclientDataSet, Tedit, TradioGroup

рисунок 5.2

Рисунок 5.2 - Модуль Mat_Zamen_New

TDBGridEh - таблица в которую заносятся данные,

TbitBtn - кнопки ввода замены и отмены,

TdataSource и TclientDataSet - для соединения с базой данных,

Tedit - строки с материалами,

TradioGroup - выбор полной или частичной замены.

Процедура выбора типа замены:

rocedure TFNew_Zamen.RGClick(Sender: TObject);

begin

if RG.ItemIndex = 1 then

begin

DBN_OldKol.Enabled := True;

end

else if RG.ItemIndex = 0 then

begin

DBN_OldKol.Enabled := False;

DBN_OldKol.Value := Old_Kol;

end;

Zamen_Type := RG.ItemIndex;

end;

Процедура ввода замены:

procedure TFNew_Zamen.BitBtn1Click(Sender: TObject);

var Old, Max, New : WideString;

begin

Old := FloatToStr(DBN_OldKol.Value);

Max := FloatToStr(Max_Kol);

New := FloatToStr(DBN_NewKol.Value);

V.Mat_Zamen_Create(Kat_Id,

Mat_Id,

CDS_Mats.FieldByName('MATERIAL_ID').AsInteger,

Old,

Max,

New,

Zamen_Type);

Close;end;

Модуль Mat_Zamen_CNTR_Add.pas

На форме рисунок 5.3 находятся следующие компоненты: Tedit, TDBNumberEditEh, TspeedButton, TclientDataSet, TdataSource, TcomboBox.

Tedit - наименование контрагента, TDBNumberEditEh - количество закупаемого материала и цена, TcomboBox - выпадающее меню выбора единиц измерения, TspeedButton - рабочие кнопки , TclientDataSet и TdataSource - связь с базой данных.

Рисунок 5.3 - Модуль Mat_Zamen_CNTR_Add

Модуль формирования отчета

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

После заполнения таблицы, выбрав из меню строку «печать отчета» появится окно компонента FastReport Рисунок 5.5. Этот компонент отвечает за печать отчета.

Рисунок 5.4 - Таблица закупок

Рисунок 5.5 Отчет FastReport

5.2 Разработка интерфейса пользователя

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

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

Рисунок 5.6 - Проверка доступа

Рисунок 5.7 - Окно системы К_Т_Base

Рисунок 5.8 - Окно выбора каталога

Рисунок 5.9 - Справочник контрагентов

Рисунок 5.10 - Форма отчёта

5.3 Испытания

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

Испытания проводятся в один этап.

Приемка Системы предусматривает следующие виды испытаний:

· опытная эксплуатация;

· приемочные испытания.

Все виды испытаний предусматривают выполнение следующих проверок:

· Проверка комплектности и состава представляемого на испытания прикладного программного обеспечения Системы;

· Проверка работоспособности функций, реализуемых Системой;

· Проверка выполнения требований по надежности функционирования.

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

Перечень функций Системы, подлежащих испытаниям:

· создание, хранение и обновление метаданных операторов персональных данных.

· консолидация метаданных операторов.

· формирование шаблонов запросов на выдачу информации;

· аналитическую обработку сведений о статусе запросов на выдачу информации;

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

Испытания проводятся в следующей последовательности:

· проверка комплектности и состава Системы;

· проверка работоспособности функций, реализуемых Системой;

· проверка выполнения требований по надежности функционирования.

5.3.1 Формирование наборов исходных данных

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

Список исходных данных:

Наименование

Полное имя

ИНН банка

КПП предприятия

Почтовый индекс

Регион, край, область, автономный округ.

Район

Наиненование населенного пункта

Внутренний код

Улица

Дом

Корпус

Строение

Внутренний код

Телефон

Факс

Электронный почтовый ящик

Дополнительная информация

Офис

Страна

Дата создания записи

Дата изменения записи

Идентификатор пользователя

Идентификатор изменившего пользователя

Идентификатор

Код ОКП

Наименование

Единица измерения

Минимальная норма запаса на складе

Дополнительное описание

Балансовый счет

Идентификатор пользователя

Дата создания

Дата последнего изменения

Номер группы взаимозаменяемых материалов

Минимальная партия выдачи

5.3.2 Проведение испытаний

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

5.3.3 Оценка качества интерфейсов

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

6. Разработка проектной документации

6.1 Руководство пользователя

После запуска операционной системы Microsoft Windows запуск программы можно провести несколькими способами:

§ используя кнопку «Пуск» («Start» в англоязычной версии Windows);

§ используя значок «Расчет трудоемкости», расположенный на рабочем столе Windows;

§ используя команду выполнить с аргументом «C:\K_T_Base\ K_T_Base.exe»;

§ используя проводник Windows или аналогичную программу.

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


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.