Автор работы: Пользователь скрыл имя, 21 Ноября 2012 в 21:33, дипломная работа
Целью дипломного проектирования является разработка программного средства предназначенного для оперативного контроля внутризаводского движения заготовок, деталей и узлов, который позволяет отслеживать ход производства, а также оценивать результаты производственно-хозяйственной деятельности структурного подразделений завода. Данная работа выполняться в рамках разработки темы: комплекс программ автоматизации с учётом условий и специфики работ ОЦ-2 РУП МТЗ.
Для решения поставленных задач дипломного проекта были использованы следующие методы исследования:
методы сравнения и обобщения;
метод классификации;
анализ функциональности деятельность объекта;
моделирование объекта;
синтез функциональности программного компонента.
1 АНАЛИТИЧЕСКИЙ ОБЗОР ЛИТЕРАТУРНЫХ ИСТОЧНИКОВ ПО ТЕМЕ ДИПЛОМНОГО П 11
1.1 Определение и классификация ПС 11
1.2 Описание методологии решения задач проекта 12
1.3 Примеры АСУП реализующих технологию MRP 14
1.3.1 Модуль «SAP ERP Operations»АСУП « SAP Business Suite» 15
1.3.2 Модуль «Управление производственной логистикой» АСУП «Галактика: ERP» 15
1.3.2 Модуль «Планирование и учет в дискретном производстве» 16
АСУП «Парус предприятие 8» 16
1.3.3 Модуль «Управление данными об изделиях» АСУП «1C:Управление производственным предприятием 8» 17
1.4 Постановка цели и задач проекта 18
2 МОДЕЛИ, ПОЛОЖЕННЫЕ В ОСНОВУ ДИПЛОМНОГО ПРОЕКТА 19
2.1 Концептуальная модель объекта исследования 19
2.2 Инфологическая модель объекта исследования 21
3 АРХИТЕТУРА ПС И СХЕМА ДАННЫХ 28
3.1 Структура ПС 28
3.2 Проектирование базы данных 31
4 АЛГОРИТМЫ И ДИАГРАММЫ КЛАССОВ ПС 40
4.1 Выбор платформы и инструмента разработки программы 40
4.2 Схема алгоритма работы ПС 41
4.3 Пользовательские классы 47
5 ТЕСТИРОВАНИЕ ПС 56
5.1 План тестирования 56
5.2 Тест-кейсы 57
6 РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ ПС 62
6.1 Подготовка ПС к работе 62
6.2 Стандартные механизмы интерфейса 63
6.3 Пункт меню «Справочники» 68
6.4 Пункт меню «Отчёты» 70
7 ТЕХНИКО - ЭКОНОМИЧЕСКОЕ ОБОСНОВАНИЕ СОЗДАНИЯ ПС «БАЛАНС ЗАГОТОВОК И УЗЛОВ ОЦ-2» 73
7.1 Краткая характеристика работы 73
7.2 Расчет стоимостной оценки затрат 73
7.3 Определение цены на ПС 75
7.4 Методика расчета экономического эффекта от применения программного средства у пользователя 80
7.5 Расчет экономии основных видов ресурсов в связи 81
с использованием нового ПС 81
8.СОКРАЩЕНИЕ ЭНЕРГОЗАТРАТ ПРИ ВНЕДРЕНИИ ПРОЕКТИРУЕМОЙ АВТОМАТИЗИРОВАННОЙ СИСТЕМЫ ОРАБОТКИ ИНФОРМАЦИИ 86
ЗАКЛЮЧЕНИЕ 91
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 93
ПРИЛОЖЕНИЕ А 94
Техническое задание на проектирование программного средства баланс заготовок, деталей и узлов ОЦ-2 94
2.5. Требования к информационным структурам и методам решения. 97
ПРИЛОЖЕНИЕ Б 100
Тексты программы 100
Описание алгоритма процедуры разузлования.
В блоке три алгоритма, происходит определение (по признаку) является изделие узлом или нет.
Блок четыре формирует запрос к базе данных на поиск входящих в узел деталей.
Блок пять формирует временную таблицу деталей входящих в узел для проведения расчёта расходной части баланса и просматривает сформированную таблицу изделий на признак узла. В случае существования признака происходит рекуррентный вызов процедуры разузлования.
Сортировка и поиск в базе данных являются важнейшими задачами для функционирования реляционной базы данных, формирования запросов. Для решения ряда учётных задач ПС необходима сортировка строковых данных из заданного столбца табличной базы данных во внешний файловый буфер. Сортировка должна быть внешней так как исходный файл может быть достаточно большим (порядка гигабайта) и кроме того сортировка может быть осуществлена для нескольких столбцов одновременно. Цель сортировки – создание индексного файла для одного или нескольких полей данных. Известно, что для общей сортировки нескольких длинных упорядоченных подпоследовательностей удобен метод слияния (Merge Sort) который из очередей данных последовательно выбирает максимальное или минимальное значение и записывает его в искомую последовательность. Если же исходные данные не представлены в виде нескольких УПП, то такие УПП нужно будет получить, т.е. расщепить (Split) тем или иным способом. Для слияния (Merge) нескольких УПП используется метод по парного объединения, так как он удобен для реализации.
Описание алгоритма
Он состоит из основных двух операций.
1. Разделение (расщепление) (Split) данной сортируемой последовательности S на множество локальных УПП (по возрастанию или убыванию) {S1, S2, S3, . . . , SN}, где все УПП, кроме, последней содержат более одной записи (ключа).
2. Объединение (Merge) смежных пар УПП одного уровня в одну с учетом порядка упорядочения этих УПП убывающая последовательность сливается с "конца", а возрастающая с "начала".
Эти две операции повторяются до тех пор, пока вся последовательность S не будет состоять из одной УПП.
На рисунке 15 приведен алгоритм функции Split используемый в программе внешней сортировки.
Рисунок 15 - Алгоритм работы функции Split
Рисунок 16 - Алгоритм работы функции Merge
Описание функции Split
Функция Split, которая выполняется только один раз (в один проход), должна определить начало и конец текущей УПП в алгоритме блок 4-6. Длина, порядок сортировки определяет блок три (1 для неубывающей подпоследовательности, –1 для убывающей и 0 для УПП состоящей только из одного элемета, замыкающего текущую последовательность данных).
Если элементов меньше трех (определяется в блоке 1,2), то они уже образуют одну УПП, параметры которой определены. На блок-схеме алгоритма эти действия показаны в блоке три. Для большего количества элементов определяем начальный порядок, сравнивая первые два элемента. Затем последовательно сравниваем второй и третий, третий и четвертый элементы и так далее, до тех пор, пока их порядок совпадает с начальным. Как только порядок изменился сразу же получаем границу очередной УПП, данные о которых уже можно использовать в функции Merge. В блок-схеме алгоритма эта последовательность действий отражена в блоках с четвертого по девятый.
На рисунке 16 приведен алгоритм функции Merge используемый во второй части программы внешней сортировки. Алгоритм функции Merge сводиться к тому, что из очередей данных будем последовательно выбирать (с удалением из очереди) максимальное или минимальное значение и записывать его в искомую последовательность на схеме блоки с третьего по восьмой. Если данные в одном из буферов исчерпаны, то дальнейшая запись производиться в исходный файл в порядке следования записей в оставшемся буфере.
Исходный код функции внешней сортировки естественным слиянием, а так же исходные коды других алгоритмов приводиться в приложении Б.
4.3 Пользовательские классы
Для эффективной работы ПС необходимо разработать ряд пользовательских классов на основе стандартных классов Visual FoxPro. На рисунке 17. представлена диаграмма разработанных классов на основе стандартного класса VFP «Form».
При разработке приложения в среде Visual FoxPro используют две различные группы форм:
Для каждой из этих групп форм создан свой класс.
Класс FormDialog - данный класс предназначен для построения диалоговых (модальных) форм, т.е. форм, которые имеют параметр WindowType = 1 (modal). Данный класс форм, по своей модальной природе, требует обязательного закрытия, прежде чем пользователь сможет выполнять другие действия в приложении. Рассмотрим перегруженные методы класса.
Рисунок 17 - Диаграмма пользовательских классов на основе
стандартного класса VFP «Form»
Init - в метод
передается ссылка на вызывающую форму
(loForm). Если ссылка не передается, то в качестве
вызывающей формы будет принята форма,
активная в момент вызова формы класса.
Ссылка сохранятся в свойстве класса P_Form.
Использую эту ссылку, переключаем DataSessionID.
Затем, если в форме класса установлено
свойство ToCentr = .T., центрируем ее по размерам
и позиции вызывающей формы.
Метод Unload обрабатывает нажатие кнопок «ОК» и «Отмена» меняя свойство «Response».
KeyPress – Устанавливает реакцию на сочетание клавиш «Ctrl – Enter»
Класс BaseForm - данный класс предназначен для построения форм, вызываемых из главного меню приложения. Опишем функции класса.
Форма должна
уметь сохранять и
Форма должна делать недоступным пункт главного меню, который вызвал ее при старте, и делать доступным его при закрытии формы.
Форма должна
добавлять код своей
Форма должна иметь методы для добавления, удаления и навигации по локальной таблице, а также вызывать эти методы с помощью комбинаций клавиш;
Основные операции по реализацию вышеперечисленных функции выполняет метод Init.
Метод RestoreWindowPos загружает из INI - файла позицию, цвет и размеры формы.
Метод AddToMenu класса добавляет в POPUP PAD главного меню "Окна" (если самого пункта нет, то метод добавляет его) пункт, который будет активизировать данную форму.
Метод Activate класса устанавливает маркер в пункте меню Window главного меню приложения, соответствующего данной форме.
Метод Deactivate снимает маркер в пункте меню Window главного меню приложения, соответствующего данной формы.
Деструктор класса (метод Destroy) делает доступным пункт главного меню приложения, из которого была вызвана форма данного класса, сохраняет параметры формы в INI-файле и удаляет активизацию формы из пункта главного меню приложения Window.
Класс Obj_Docum используеться для создания форм, допускающих запуска нескольких экземпляров одной и той же формы из главного меню приложения предназначен для отображения документов приложения. Для работы с объектами-документами добавлено несколько методов и свойств.
Метод ExecObject
– визуализация документа. Метод вызывается
из главного меню приложения и принимает
обязательный параметр tcClass - имя класса,
производного от класса documents и до 4 необязательных
параметров. В случае успешного создания
объекта, происходит вызов метода Show объекта
для вывода формы, отображающего содержимое
документа. Форма является объектом класса Obj_docum.
Для создания объекта класса documents метод
Метод NewDocument
- Метод создает объект требуемого класса
(tcClass), являющегося прямым наследником
класса Documents, добавляет ссылку, номер объекта
и его имя в массив-свойство класса Application DocClass[
Метод Show - Метод принимает в качестве параметра ID объекта в системе (значение присваевается в методе NewDocument) и запускает форму, отображающую документ. Имя формы хранится в свойстве класса MainForm. Ссылку на переменную-форму сохраняем в свойстве класса-объекта Document. Затем используем эту ссылку для показа формы с помощью метода Show. В форму также передаем ID объекта-документа и № экземпляра объекта данного класса. Если в конструктор класса (метод INIT) был передан ID документа (DK_ID), то он передается в конструктор формы, где и происходит позиционирование на требуемый документ. Так можно создать объект класса требуемого документа с его отображением с помощью формы. В качестве имени POPUP меню и номера пункта меню, из которого была "запущена" форма передаются '' (пустая строка) и 0 соответственно.
Метод Load
- копирует диапазон дат просмотра документов
в свойства класса DateStart и DateEnd
Метод Init - Метод принимает 6 параметров два из которых (lnumpad и lpopup) передаются в конструктор класса BaseForm. Два (lnDK_ID и lnSTR_ID) используются для позиционирования документа и строки документа. IDObject - уникальный идентификатор объекта в системе - запоминается в свойстве класса IDObject. lnNumber - номер экземпляра объекта - используется для формирования заголовка и имени формы. Параметры lnumpad и lpopup равны соответственно 0 и '' (пустая строка).
Метод Destroy
- Метод обновляет диапазон дат, если это
разрешено в данном классе (свойство класса UpdateDate =
.T.). Затем, вызывается метод ReleaseDocum
Метод ReleaseDocum – используеться для удаления обьекта (документа) изпамяти. Уничтожение объекта происходит путем присвоения ссылки на него значения NULL. Все ссылки на объекты-документы хранятся в массиве DocClass, являющегося свойством объекта Application.
На рисунке 18. представлена диаграмма разработанных классов на основе стандартных классов VFP.
С целью дополнить функционал базового класса разработан пользовательский класс Smart_Grid
Функционал класса Smart_Grid:
класс позволяет включать сортировку по нескольким столбцам одновременно. Включение данного режима должно происходить по щелчку левой кнопки мышки по требуемому столбцу с нажатой одновременно клавишей Ctrl.
Рисунок 18 - Диаграмма пользовательских классов на основе
стандартных классов VFP.
Реализация класса Smart_Grid потребовала создания нескольких дополнительных классов, предназначенных для его обслуживания:
Все классы,
имеющих возможность
Информация о работе Програмное средство « Баланс заготовок и узлов ОЦ-2»