Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Проектирование диаграммы классов Склад

Содержание:

ВВЕДЕНИЕ

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

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

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

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

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

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

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

Для достижения поставленной цели в ходе работы решены следующие задачи:

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

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

ГЛАВА 1. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ
ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ

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

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

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

Пионером данного направления явился язык Смолток (Smalltalk), первоначально предназначенный для реализаций функций машинной графики. Работа над языком началась в 1970 г. в исследовательской лаборатории XEROX (США), а закончилась в 1980 г. окончательным вариантом интерпретатора Smalltalk-80. Данный язык оригинален тем, что его синтаксис очень компактен и базируется исключительно на понятии объекта. В нем отсутствуют операторы или данные, все, что входит в Смолток, является объектами, а объекты общаются друг с другом исключительно с помощью сообщений. В настоящее время версия VisualAge for Smalltalk активно развивается компанией IBM.

К наиболее распространенным современным языкам объектно-ориентированного программирования относятся C++ и Java.

Язык C++ был разработан в начале 80-х гг. Бьярном Страуструпом в лаборатории Bell корпорации AT&T. Им была создана компактная компилирующая система, в основе которой лежал язык С, дополненный элементами языков BCPL, Simula-67 и Алгол-68. Более ранние версии языка были известны как «С с классами». В июле 1983 г. C++ был впервые использован за пределами исследовательской группы автора, однако тогда еще многие особенности языка не были придуманы. К 1990 г. была выпущена третья версия языка C++, стандартизированная американским государственным комитетом стандартов ANSI. В 1990 г. сотрудник корпорации Sun Д. Гослинг на основе расширения C++ разработал объектно-ориентированный язык Oak, основным достоинством которого было обеспечение сетевого взаимодействия различных по типу устройств. Новая интегрируемая в Internet версия языка получила название Java. С января 1995 г. Java получает распространение в Internet.

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

Синтаксис языков C++ и Java практически полностью совпадает. Принципиальным различием является то, что язык C++ компилируемый в машинный код, a Java – в платформо-независимый байт-код (каждая команда занимает один байт), этот байт-код может выполняться с помощью интерпретатора – виртуальной Java-машины (Java Virtual Machine), версии которой созданы сегодня для любых платформ. С точки зрения возможностей объектно-ориентируемых средств, Java имеет ряд преимуществ перед C++. Язык Java имеет более гибкую и мощную систему инкапсуляции информации.

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

Идеи ООП проникли во многие процедурные языки. Например, в состав интегрированной системы программирования Паскаль (корпорации Borland International), начиная с версии 5.5, входит специальная библиотека ООП Turbo Vision.

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

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

К объектно-ориентированным системам визуального проектирования относятся: Visual Basic, Delphi, C++ Builder, Visual C++. Это системы программирования самого высокого уровня. VBA (Visual Basic for Application) является общей языковой платформой для приложений Microsoft Office (Excel, Word, Power Point и др.). VBA соблюдает основной синтаксис и правила программирования языков Бейсик-диалектов. VBA помогает довольно сильно расширить возможности приложений за счет написания макросов[1]. VBA позволяет создавать объекты управления графического интерфейса пользователя, задавать и изменять свойства объектов, подключать к ним необходимый для конкретного случая программный код. С помощью VBA можно производить интеграцию между различными программными продуктами. Программы на языке VBA для приложений создаются двумя способами: в автоматическом режиме как результат построения клавишной макрокоманды или путем написания программного кода.

ГЛАВА 2. АВТОМАТИЗАЦИЯ РАБОТЫ СКЛАДА

2.1 Анализ выбранной сущности

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

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

Склад (stock) может иметь такие атрибуты, как наименование (name_stock) и адрес (address_stock). Ключевой сущностью склада будет являться товар (product). Класс товар (product) может иметь такие атрибуты, как код товара (number_product), его наименование (name_product), единица измерения (unit_product), цена за единицу товара (price_product) и описание (description_order).

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

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

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

При работе склада менеджер принимает и обрабатывает заказы и выписывает накладные. Таким образом, можно выделить классы менеджер (manager) и кладовщик (storekeeper). Данные классы могут быть обобщены в общем классе – работник (employee). Класс менеджер может содержать дату очередного повышения квалификации работника (data_training), а класс кладовщик – разряд или квалификацию сотрудника (rank).

Обрабатываемые менеджером заказы можно выделить в класс заказ (order) с атрибутами статус заказа (condition_order), дата заказа (data_order). Кроме того, необходимо предусмотреть операцию отмены заказа (cancel_order).

Состав конкретного заказа также будет являться классом (content_order), который может характеризоваться следующими атрибутами – код товара (product_order), количество товара (amount_order), цена товара (price_order), общая стоимость (total_order).

В результате обработки заказа, менеджер выписывает накладную на отгрузку товара. Определим класс для накладных (invoice) с атрибутами – статус накладной (condition_invoice), дата исполнения (data_invoice), сумма (total invoice), вес (weigth_invoice), номер клиента (number_client).

Выписанная накладная может содержаться в отдельном классе (entry_invoice) с атрибутами – наименование товаров (name_invoice), количество (amount_invoice), вес товаров (weight_invoice), цена товаров (price_invoice), общая стоимость выписанных товаров (total_invoice).

Накладные и заказы можно обобщить в классе документы (document) с атрибутами – номер документа (number_document), дата заполнения документа (date_document).

Таким образом, диаграмма будет состоять из 17 классов.

2.2 Проектирование диаграммы классов

Класс товар (product) связан с классами для выписанной
накладной (entry_invoice), составом заказа (contenet_order) и товаром на складе (product_stock) ассоциативной связью кратностью один ко многим. Так, например, товар может иметь сколь угодно записей в выписанной накладной, но в каждой выписанной накладной каждая запись соответствует одном товару. Это справедливо и для остальных двух классов.

Рисунок 1 – Связь между продуктом и выписанной накладной

Классы накладная (invoice) и заказ (order) должны быть обобщены в классе документ (document).

Рисунок 2 – Отношение типа «общее-частное» класса
документ (document) к классам накладная (invoice) и заказ (order)

Классы менеджер (manager) и кладовщик (storekeeper) должны быть обобщены в классе рабочий.

Рисунок 3 – Отношение типа «общее-частное» класса
рабочий (employee) к менеджеру (manager) и кладовщику (storekeeper)

Классы заполненная накладная (entry_invoice) и накладная (invoice), также, как и классы для заказов, связаны отношением агрегирования.

Рисунок 4 – Отношение агрегации классов накладная (invoice) и заполненная накладная (entry_invoice)

В соответствии с вышеизложенным, устанавливаем отношения между всеми классами. Диаграмма классов склада, в соответствии с названиями, атрибутами и методами, определенными ранее, представлена на рисунке 5.

Рисунок 5 – Диаграмма классов склада

Далее представлен листинг диаграммы классов на языке С++.

class product

{

public:

product ();

virtual ~product ();

int number_product;

char name_product;

char unit_product;

float price_product;

char date_product;

void setNumber_product (int new_var) {

number_product = new_var;

}

int getNumber_product () {

return number_product;

}

void setName_product (char new_var) {

name_product = new_var;

}

char getName_product () {

return name_product;

}

void setUnit_product (char new_var) {

unit_product = new_var;

}

char getUnit_product () {

return unit_product;

}

void setPrice_product (float new_var) {

price_product = new_var;

}

float getPrice_product () {

return price_product;

}

void setDate_product (char new_var) {

date_product = new_var;

}

char getDate_product () {

return date_product;

}

void initAttributes () ;

};

class preserve : public product

{

public:

preserve ();

virtual ~preserve ();

};

class grocery : public product

{

public:

grocery ();

virtual ~grocery ();

};

class confection : public product

{

public:

confection ();

virtual ~confection ();

};

class beverage : public product

{

public:

beverage ();

virtual ~beverage ();

};

class provider_product

{

public:

provider_product ();

virtual ~provider_product ();

protected:

char name_provider;

char address_provider;

void setName_provider (char new_var) {

name_provider = new_var;

}

char getName_provider () {

return name_provider;

}

void setAddress_provider (char new_var) {

address_provider = new_var;

}

}

void initAttributes () ;

};

class employee

{

public:

employee ();

virtual ~employee ();

protected:

int number_employee;

char name_employee;

int mobile_employee;

public:

void setNumber_employee (int new_var) {

number_employee = new_var;

}

int getNumber_employee () {

return number_employee;

}

void setName_employee (char new_var) {

name_employee = new_var;

}

char getName_employee () {

return name_employee;

}

void setMobile_employee (int new_var) {

mobile_employee = new_var;

}

int getMobile_employee () {

return mobile_employee;

}

void initAttributes () ;

};

class manager : public employee, public employee

{

public:

manager ();

virtual ~manager ();

private:

char date_training;

public:

void setDate_training (char new_var) {

date_training = new_var;

}

char getDate_training () {

return date_training;

}

private:

void initAttributes () ;

};

class storekeeper : public employee, public employee

{

public:

storekeeper ();

virtual ~storekeeper ();

private:

int rank;

void setRank (int new_var) {

rank = new_var;

}

int getRank () {

return rank;

}

private:

void initAttributes () ;

};

class invoice : public document

{

public:

invoice ();

bool condition_invoice;

char date_invoice;

float total_invoice;

float weight_invoice;

int number_client;

void setCondition_invoice (bool new_var) {

condition_invoice = new_var;

}

bool getCondition_invoice () {

return condition_invoice;

}

void setDate_invoice (char new_var) {

date_invoice = new_var;

}

char getDate_invoice () {

return date_invoice;

}

void setTotal_invoice (float new_var) {

total_invoice = new_var;

}

float getTotal_invoice () {

return total_invoice;

}

void setWeight_invoice (float new_var) {

weight_invoice = new_var;

}

float getWeight_invoice () {

return weight_invoice;

}

void setNumber_client (int new_var) {

number_client = new_var;

}

int getNumber_client () {

return number_client;

}

void initAttributes () ;

};

class order : public document

{

public:

order ();

virtual ~order ();

bool condition_order;

char data_order;

void setCondition_order (bool new_var) {

condition_order = new_var;

}

bool getCondition_order () {

return condition_order;

}

void setData_order (char new_var) {

data_order = new_var;

}

char getData_order () {

return data_order;

}

void cancel_order ()

{

}

void initAttributes () ;

};

class entry_invoice

{

public:

entry_invoice ();

virtual ~entry_invoice ();

protected:

char product_invoice;

float amount_invoice;

float weigth_invoice;

float price_invoice;

float total_invoice;

public:

void setProduct_invoice (char new_var) {

product_invoice = new_var;

}

char getProduct_invoice () {

return product_invoice;

}

void setAmount_invoice (float new_var) {

amount_invoice = new_var;

}

float getAmount_invoice () {

return amount_invoice;

}

void setWeigth_invoice (float new_var) {

weigth_invoice = new_var;

}

float getWeigth_invoice () {

return weigth_invoice;

}

void setPrice_invoice (float new_var) {

price_invoice = new_var;

}

float getPrice_invoice () {

return price_invoice;

}

void setTotal_invoice (float new_var) {

total_invoice = new_var;

}

float getTotal_invoice () {

return total_invoice;

}

private:

void initAttributes () ;

};

class content_order

{

public:

content_order ();

virtual ~content_order ();

protected:

int product_order;

float amount_order;

float price_order;

float total_order;

public:

void setProduct_order (int new_var) {

product_order = new_var;

}

int getProduct_order () {

return product_order;

}

void setAmount_order (float new_var) {

amount_order = new_var;

}

float getAmount_order () {

return amount_order;

}

void setPrice_order (float new_var) {

price_order = new_var;

}

float getPrice_order () {

return price_order;

}

void setTotal_order (float new_var) {

total_order = new_var;

}

float getTotal_order () {

return total_order;

}

private:

void initAttributes () ;

};

class document

{

public:

document ();

virtual ~document ();

int number_document;

char date_document;

void setNumber_document (int new_var) {

number_document = new_var;

}

int getNumber_document () {

return number_document;

}

void setDate_document (char new_var) {

date_document = new_var;

}

char getDate_document () {

return date_document;

}

void initAttributes () ;

};

class client_product

{

public:

client_product ();

virtual ~client_product ();

void buy ()

{

}

protected:

int number_client;

int product_client;

public:

void setNumber_client (int new_var) {

number_client = new_var;

}

int getNumber_client () {

return number_client;

}

void setProduct_client (int new_var) {

product_client = new_var;

}

int getProduct_client () {

return product_client;

}

private:

void initAttributes () ;

};

class Stock

{

public:

Stock ();

virtual ~Stock ();

};

class product_stock

{

public:

product_stock ();

virtual ~product_stock ();

float amount_product;

void setAmount_product (float new_var) {

amount_product = new_var;

}

float getAmount_product () {

return amount_product;

}

private:

void initAttributes () ;

}.

2.3 Проектирование диаграммы вариантов использования

Выполним разработку контекстной диаграммы в виде диаграммы вариантов использования (use case diagram).

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

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

Клиента можно связать отношениями ассоциации с вариантами взаимодействия «Оплатить товар», «Заказать товар», «Получить». Данные отношения приведены на рисунке 6.

Рисунок 6 – Отношения актера «Клиент» с вариантами
использования

Клиентом могут быть заказаны разные группы товаров. Варианты взаимодействия по заказу различных групп товаров могут быть обобщены в варианте использования «Заказать товар». Вариант использования «Заказать товар» может быть связан отношением расширения с вариантом использования «Запросить каталог товаров». Это поведение системы является необязательным. Данное отношение изображено пунктирной линией со словом «extend» (рисунок 7).

Рисунок 7 - Варианты взаимодействия по заказу
различных групп

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

Аналогично выстраиваем варианты использования и отношения между ними для остальных актеров. Полная диаграмма вариантов использования представлена на рисунке 8.

Рисунок 8 – Диаграмма вариантов использования

2.4 Проектирование диаграммы деятельности (активностей)

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

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

Рисунок 9 – Диаграмма деятельности (активности)

ГЛАВА 3. РЕКОМЕНДАЦИИ К ВНЕДРЕНИЮ
ПРОГРАММНОГО КОМПЛЕКСА УПРАВЛЕНИЯ СКЛАДСКИМИ ОПЕРАЦИЯМИ

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

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

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

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

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

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

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

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

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

Организация складского хозяйства

Роль и место склада в логистических системах

Разработка стратегии и постановка задачи

для проектирования

Распределение критериев эффективности функционирования склада и его основных элементов

Расчет критерия эффективности

функционирования склада

Расчет основных стандартов склада

Расчет основных затрат на складирование и
управление запасами

Разработка бизнес-плана организаций складского хозяйства

Рисунок 10 – Структура решения задачи
«Организация складского хозяйства»

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

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

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

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

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

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

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

Складской учет и документооборот

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

Документирование складских операций

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

Рисунок 11 – Структура решения задачи
«Управление складским хозяйством»

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

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

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

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

Основными задачами информационной системы складского учета являются[2]:

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

Степень автоматизации процесса должна быть оптимальной. Критерием оптимальности автоматизации складских процессов должно выступать соотношение цена/эффективность.

В ряду общих требований к информационной системе складского хозяйства можно выделить следующие[3]:

      1. Контроль процесса исполнения плановых поставок, оплаты, товарных остатков и другой информации, необходимой для эффективного функционирования системы складского хозяйства;
      2. Система верификации операций для оценки качества работы сотрудников;
      3. Поддержка стандартов автоматизации документооборота – это означает, что реализуется полная схема электронного документооборота, контролирующая соответствие действий персонала бизнес-правилам организации и сообщающая о необходимости выполнения тех или иных операций;
      4. Управление потоком снабжения путем интеграции в единый центр управления всех операций с поставщиками и заказчиками.

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

ЗАКЛЮЧЕНИЕ

Итак, в работе были изучены теоретические основы объектно-ориентированного программирования;

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

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

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

Диаграмма классов состоит из 17 классов. Диаграмма классов переведена в код на языке C++.

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

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

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

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

СПИСОК ЛИТЕРАТУРЫ

  1. Емельченков Е.П., Савченков К.П. Объектно-ориентированный подход к представлению баз данных // Системы компьютерной математики и их приложения. – 2016. - № 17. – С. 47-48
  2. Ересь А.В. Понятие класса в объектно-ориентированном программировании // Постулат. – 2018. - № 8 (34). – С. 23
  3. Лафоре Р. Объектно-ориентированное программирование в С++. – СПб.: Питер, 2018
  4. Мамонова Ю.С., Русина Ю.В., Широченко Н.В. Проблемы внедрения автоматизированной системы управления складом // Актуальные проблемы авиации и космонавтики. – 2013. - №9. – С. 192-193
  5. Мейер Б. Объектно-ориентированное программирование и программная инженерия: Учебное пособие . – М.: ИНТУИТ, 2016
  6. Мехман С., Тенджес Т. Система управления складом для устранения «узких мест» // Черные металлы. – 2013. - № 2 (974). – С. 53-58
  7. Новиков П.В. Объектно-ориентированное программирование: Учебное пособие. – Саратов, 2017
  8. Панасенко Е. Автоматизация управления складами – ошибки и решения / Логистика. – 2013. - № 6 (79). – С. 14-17
  9. Стивен П. Язык программирования C++. Лекции и упражнения. – М.: Вильямс, 2016
  10. Введение в объектно-ориентированное программирование URL: https://studfiles.net/preview/5798875
  11. Мухаметзянов Р.Р. Обучение объектно-ориентированному программированию // Информатика и образование. 2017. С. 35-39. URL: https://elibrary.ru/item.asp?id=30504077
  1. Макрос - программа, предназначенная для автоматизации выполнения многих операций

  2. Панасенко Е. Автоматизация управления складами – ошибки и решения / Логистика. – 2013. - № 6 (79). – С. 14-17

  3. Мехман С., Тенджес Т. Система управления складом для устранения «узких мест» // Черные металлы. – 2013. - № 2 (974). – С. 53-58

  4. Мамонова Ю.С., Русина Ю.В., Широченко Н.В. Проблемы внедрения автоматизированной системы управления складом // Актуальные проблемы авиации и космонавтики. – 2013. - №9. – С. 192-193

  5. Мамонова Ю.С., Русина Ю.В., Широченко Н.В. Проблемы внедрения автоматизированной системы управления складом // Актуальные проблемы авиации и космонавтики. – 2013. - №9. – С. 192-193