Файл: Проектирование диаграммы классов Склад.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 23.05.2023

Просмотров: 160

Скачиваний: 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. РЕКОМЕНДАЦИИ К ВНЕДРЕНИЮ
ПРОГРАММНОГО КОМПЛЕКСА УПРАВЛЕНИЯ СКЛАДСКИМИ ОПЕРАЦИЯМИ

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

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

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

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

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

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

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

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