Информация из
базы данных листов заказа может использоваться для анализа спроса на рынке: по
каждому из отмеченных заказчиков выдается информация какие из отмеченных
товаров ему необходимы и в каком количестве. Эта информация по желанию
пользователя может быть выведена на печать.
2.3.2
Представление проекта в модульных диаграммах
Вследствие того,
что выбранный инструмент разработки (Delphi) представляет собой среду, базирующуюся на
объектно-ориентированной методологии построения программ, то целесообразно
провести проектирование основных компонент программы в соответствие с этой
методологией. Для описания общей структуры программы будем использовать
диаграммы Гради Буча, а именно: высокоуровневые и обычные модульные диаграммы.
На рисунке 2.2 представлена
высокоуровневая модульная диаграмма всего проекта – СППР для формирования
заказа на торгово-закупочном предприятии.
|
|
Рис. 2.2 Высокоуровневая модульная диаграмма СППР
для формирования заказа на торгово-закупочном предприятии.
|
|
В функции СППР для формирования
заказа на торгово-закупочном предприятии входит решение следующих подзадач:
1. ввод и обработка входных данных
системы : прайс-листов поставщиков, листов заказа заказчиков;
2. формирование на основе введенных
данных общего заказа поставщикам по одному из выбранных пользователем методов :
по минимальным ценам, по максимальным ценам, на одно предприятие, генетический
алгоритм по минимальной стоимости заказа и поставки; формирование разнарядок на
поставку и получение товаров по сформированному заказу.
3. просмотр состояния рынка и анализ
спроса на рынке;
4. вывод на экран и на принтер
разнарядок на поставку и на получение товаров;
5. сравнение результатов применения
различных методов формирования заказа на столбчатой диаграмме итоговых
стоимостей и скидок.
Для реализации этих функций система
включает в себя и использует подсистему конвертирования и наполнения базы
входных данных (подзадача 1), подсистему формирования заказов на товары (подзадача
2) и базу данных, которая используется для хранения входных и выходных данных
системы, поставляемых подсистемами, а также используется подсистемой
конвертирования и наполнения базы входных данных (см. п. 2.3.4).
Детализируем систему и ее подсистемы,
представив их на модульных диаграммах, где стрелками между модулями
обозначается отношение видимости и использования модуля, к которому направлена
стрелка, модулем от которого она исходит.
На рисунке 2.3 представлена модульная
диаграмма СППР для формирования заказа на торгово-закупочном предприятии
(обозначим ее СППР).
Главный модуль (СППР) по сути
является модулем, в котором происходят вызовы подпрограмм и использование
результатов работы других модулей, выполняющих необходимые в данный момент
действия. Этот модуль связан с главной формой проекта, которая появляется после
запуска программы.
Модули "Ввод входных
данных" и "Работа со справочниками" отвечают за введение
данных, необходимых для решения основной задачи системы, реализуемого в
подсистеме формирования заказов на товары – и решения остальных подзадач, которые
представлены на рисунке 2.3.
В модуле "Ввод входных
данных" (подзадача 1) реализуется ввод содержимого прайс-листов и листов
заказа, который осуществляется вручную, автоматизированно, с помощью списков
часто используемых товаров, или автоматически, с использованием
конвертированных файлов. Модуль "Работа со справочниками" отвечает
за введение данных в справочники.
Модуль "Просмотр состояния рынка
и спроса" отвечает за решение подзадачи 3 системы, в которой используются
входные данные, полученные в результате работы ранее указанных модулей ввода.
Модули "Сформированные заказы",
"Разнарядки" и "Столбчатая диаграмма " работают уже с выходными
данными, полученными в результате работы подсистемы формирования заказов на
товары. Модуль "Сформированные заказы" отвечает за работу
пользователя с базой выходных данных, в которой хранится информация о
полученных в результате работы программы заказах. Модуль "Разнарядки"
реализует выполнение подзадачи 4 системы, а модуль "Столбчатая
диаграмма" – подзадачи 5.
На рисунке 2.4 представлена
модульная диаграмма подсистемы конвертирования и наполнения базы входных
данных.
Если входные данные системы поступают
в виде файлов различных форматов, то в модуле "Конвертор входных
файлов" осуществляется преобразование этих файлов в текстовый формат и
приведение их с помощью пользователя к единой структуре.
В модуле "Внесение информации в
БД" на вход поступают конвертированные файлы. Извлекаемая из этих файлов
информация обрабатывается с использованием справочников наименований товаров и
производителей (см. п. 2.3.3.1), а затем заносится в базу входных данных.
На рисунке 2.5 представлена модульная диаграмма подсистемы формирования
заказов на товары.
В модуле "
Формирование заказа простыми методами " осуществляется введение установок
для формируемого заказа, таких как учет территории поставщика, учет условий
поставки, учет содержимого на складе и учет производителей. Затем пользователем
выбирается один из четырех методов формирования заказа (включая и генетический
алгоритм). Данный модуль реализует только три метода формирования заказа : по
минимальным ценам, по максимальным ценам и на одно предприятие.
В модуле "
Формирование заказа с помощью Генетического алгоритма " производится
сначала выбор пользователем, использовать ли учет производителей как критерий,
выбор операторов генетического алгоритма, используемых при формировании заказа
и задание вероятностей их осуществления. А затем, после настройки
пользователем генетического алгоритма, реализуется метод формирования заказа
"генетический алгоритм по минимальной стоимости закупки и поставки товаров".
В следующих
подразделах будет детально описана структура подсистемы баз данных, а также
структура и работа каждого модуля системы и ее подсистем.
2.3.3 Базы данных системы.
База данных системы поддержки
принятия решений для формирования заказа состоит из двух подбаз – базы входных
данных и базы выходных данных – и двух наборов справочников. Первый набор
справочников используется подсистемой конвертирования и наполнения базы
входных данных. Назовем его "Справочники для автоматического занесения
входной информации". Второй набор справочников, назовем его
"Справочники", обеспечивает базе данных реляционные свойства и
облегчает пользователю введение информации в базу входных данных и
корректировку базы выходных данных. Ввод информации в базу входных данных может
осуществляться пользователем вручную (с бумажных бланков), тогда справочники
играют свою роль облегчения ввода информации; автоматизированно – с помощью
списков часто используемых товаров, которые составляются пользователем заранее;
автоматически – подсистемой конвертирования и наполнения базы входных данных.
2.3.3.1
Справочники для автоматического занесения входной информации
Справочники для автоматического
занесения входной информации используются подсистемой конвертирования и
наполнения базы входных данных для корректного занесения наименований товаров и
производителей из конвертированных файлов прайс-листов и листов заказа. Дело в
том, что такие наименования в прайс-листах разных поставщиков могут звучать
одинаково, а писаться по-разному, например, в наименовании может присутствовать
вместо знака "– " знак "/" и т.д. Вот здесь то и могут
пригодиться вышеуказанные справочники. Справочники для автоматического
занесения входной информации показаны на рисунке 2.6. Это реляционные
справочники. Родительские таблицы здесь содержат код и основное наименование
товара/производителя, а дочерние – наименования, которые могут встречаться в
процессе автоматического считывания содержимого прайс-листов и листов заказа.
MAINDRUG (родительская таблица
справочника товаров)
Таблица
2.6
Наименование поля
|
Тип
|
Логический смысл
|
Физический смысл
|
Numb
|
Integer
|
номер основного наименования
товара
|
ключевое поле
|
Name
|
Char(80)
|
основное наименование товара
|
значащее поле
|
SUBDRUG (дочерняя таблица
справочника товаров)
Таблица
2.7
Наименование поля
|
Тип
|
Логический смысл
|
Физический смысл
|
Numb
|
Integer
|
номер наименования товара
|
ключевое поле
|
MainNumb
|
Integer
|
номер основного наименования
товара
|
вторичный ключ для
соединения с родительской таблицей
|
Name
|
Char(80)
|
наименование товара
|
значащее поле
|
MAINPROD (родительская таблица
справочника производителей)
Таблица 2.8
Наименование поля
|
Тип
|
Логический смысл
|
Физический смысл
|
Numb
|
Integer
|
номер основного наименования
производителя
|
ключевое поле
|
Name
|
Char(60)
|
основное наименование
производителя
|
значащее поле
|
SUBPROD (дочерняя таблица
справочника производителей)
Таблица
2.9
Наименование поля
|
Тип
|
Логический смысл
|
Физический смысл
|
Numb
|
Integer
|
номер наименования производителя
|
ключевое поле
|
MainProd
|
Integer
|
номер основного наименования
производителя
|
вторичный ключ для
соединения с родительской таблицей
|
Name
|
Char(60)
|
наименование производителя
|
значащее поле
|
2.3.3.2 База
входных данных.
Структура базы входных
данных и используемые справочники представлены на рисунке 2.7.
База входных данных разделяется на две
подбазы : база данных прайс-листов и база данных листов заказа (заявок
заказчиков).
В базах входных и выходных данных
используются справочники данных (набор "Справочники"), необходимые
для придания базам данных реляционных свойств и облегчения ввода информации
пользователем.
Рассмотрим подробно структуру базы
входных данных.
Таблица PRICEATR – это таблица,
представляющая атрибуты прайс-листов, является родительской таблицей базы
данных прайс-листов. Основные ее поля: ссылка на справочник поставщиков SUPPLIER, ссылка на справочник условий поставки
CONDITION, дата прайс-листа,
дополнительная информация, наценка и поля системы скидок, предоставляемой
поставщиком : первое поле – первая сумма, на которую предоставляется скидка,
второе поле – скидка в процентах на стоимость большую или равную первой сумме,
но меньшую второй суммы, третье поле – вторая сумма и т.д. (всего пять скидок).
Описание полей таблицы PRICEATR смотрите в таблице 2.10.
Таблица
2.10 Описание полей таблицы PRICEATR
Наимен. поля
|
Тип
|
Логический смысл
|
Физический смысл
|
1
|
2
|
3
|
4
|
Numb
|
Integer
|
идентификационный
номер
|
первичный ключ
|
SuNumb
|
Integer
|
номер поставщика
|
вторичный ключ
|
CoNumb
|
Integer
|
номер условия поставки
|
вторичный ключ
|
Date_
|
Date
|
дата прайс-листа
|
значащее поле
|
Inform
|
Char(65)
|
дополнит. информация
|
значащее поле
|
Margin
|
Double Precision
|
наценка
|
значащее поле
|
Disc1
|
Double Precision
|
первая сумма для скидки
|
значащее поле
|
Disc1P
|
Double Precision
|
первая скидка в процентах
|
значащее поле
|
Disc2
|
Double Precision
|
вторая сумма для скидки
|
значащее поле
|
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13
|