Розробка автоматизованого робочого місця управління замовленнями у малому бізнесі (ПП "Сігма")

Міністерство освіти і науки України

Бердянський університет менеджменту і бізнесу

Факультет інформаційних систем і технологій

Кафедра інформаційних систем і технологій



Затверджую

Завідувач кафедри

М.В. Скрипіцин

21.05.2010



Пояснювальна записка

на дипломний проект освітньо-кваліфікаційного рівня "спеціаліст"

за напрямком підготовки (спеціальністю) 7.08040 Інформаційні управляючі системи і технології

за темою: "Розробка автоматизованого робочого місця управління замовленнями у малому бізнесі (ПП "Сігма")"



Студент группи

СТ-61 А.О. Краснов

Керівник ДП

доцент Е.Ю. Лактіонов



Консультанти:

	Проектно-констр. Розділ доцент Е.Ю. Лактіонов

	Організац.-економ. Розділ асистент Н.М. Порватова

	Графічна документація ст.викл. Н.В. Тітова

	Нормоконтрольст.викл. Н.В. Тітова



	2010

	
Реферат



Дипломна робота: 87 с., 21 рис., 13 табл., 17 джерел, 1 додаток.

Об'єкт дослідження – підприємства малого бізнесу у сфері торгівлі та обслуговування населення.

Предмет дослідження – інформаційні процеси у організації роботи малого підприємства "ПП Сігма".

Ціль роботи – розробка інформаційних моделей та розробка програмного забезпечення автоматизованого робочого місця управління замовленнями малого підприємства "ПП Сігма".

Методи дослідження – системний аналіз, методи побудови інформаційних систем.

Методи розробки – об’єктно-орієнтований аналіз, об’єктно-орієнтоване проектування і програмування, сучасні інструменти розробки програмного забезпечення - Microsoft Visio, Microsoft Access, Borland Delpi.

Практична значущість результатів, отриманих в ході проведеного дослідження та розробки, полягає в тому, що застосування на практиці результатів дипломної роботи дає можливість поліпшити організацію роботи малого підприємства "ПП Сігма".




Реферат



Дипломная работа: 87 с., 21 рис., 13 таблиц., 17 источников, 1 приложение.

Объект исследования - предприятия малого бизнеса в сфере торговли и обслуживания населения.

Предмет исследования - информационные процессы в организации работы малого предприятия "ПП Сигма".

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

Методы исследования - системный	анализ, методы построения информационных систем.

Методы разработки - объектно-ориентированный анализ, объектно-ориентированное проектирование и программирование, современные инструменты разработки программного обеспечения, - Microsoft Visio, Microsoft Access, Borland Delpi.

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




Abstract



Degree work: 87 p., 21 pic., 13 tabl., 17 sourc., 1 app.

Research object – the automated control system of Co Ltd Akva.

A purpose of work is creation of the automated subsystem of management the sale of LTD "Sigma".

Research methods – system	analysis, methods of construction of the informative systems.

Methods of development are the object-oriented analysis, object-oriented planning and programming, modern instruments of software development - Microsoft Visio, Microsoft Access, Borland Delpi.

The practical significance of the results obtained in the course of research and development is that the use of the result of thesis provides an opportunity to seize the organization of workers of LTD "Sigma".




Зміст



	Перелік умовних позначень, символів, одиниць, скорочень і термінів

	Введення

	1. Проектно-конструкторський розділ

	1.1 Загальносистемні рішення

	1.1.1 Загальні положення

	1.1.2 Опис процесу діяльності

	1.1.3 Опис функцій, які автоматизуються

	1.1.3.1 Ведення замовлень

	1.1.3.2 Формування списку замовлень

	1.1.3.3 Ведення списку послуг

	1.1.3.4 Ведення списку матеріалів

	1.1.3.5 Ведення списку груп послуг

	1.1.3.6 Ведення списку груп матеріалів

	1.1.3.7 Формування кошторису на замовлення

	1.1.3.8 Формування звіту по кошторису для друку

	1.1.4 Опис постановки завдання

	1.2 Рішення з інформаційного забезпечення

	1.2.1 Перелік вхідних даних

	1.2.2 Перелік вихідних даних

	1.2.3 Опис інформаційного забезпечення

	1.2.3.1 Логічна модель даних

	1.2.3.2 Схема бази даних

	1.3 Рішення з технічного забезпечення

	1.4 Рішення з математичного забезпечення

	1.4.1 Змістовна постановка транспортнї задачі

	1.4.2 Формальна модель транспортної задачі

	1.4.3 Метод потенціалів

	1.4.3.1 Схема алгоритму

	1.4.3.2 Метод північно-західного кута

	1.4.3.3 Метод найменшої вартості

	1.4.3.4 Метод Фогеля

	1.4.3.5 Приклад рішення задачі

	1.5 Опис програмного забезпечення

	1.5.1 Вибір інструментів розробки

	1.5.1 Форми та модулі програми

	1.5.2 Опис модулів і класів системи

	1.5.3 Схема обробки дій користувача

	2. Технологічний розділ

	2.1 Керівництво користувача

	2.1.1 Введення

	2.1.2 Головна форма

	2.1.2.1 Список замовлень

	2.1.2.2 Форма вводу нових замовлень

	2.1.2.2 Панель інструментів

	2.1.3 Головне меню

	2.1.4 Меню "Данные"

	2.1.4.1 Пункт меню "Сметы"

	2.1.4.2 Пункт меню "Печать"

	2.1.4.3 Пункт меню "Справочники"

	2.1.4.4 Пункт меню "Вихід"

	2.1.5 Меню "?"

	2.2 Обробка помилок

	3. Техніко-економічний розділ

	3.1 Загальні положення

	3.2 Вихідні дані для розрахунку

	3.3 Визначення трудомісткості та тривалості розробки програми

	3.4 Розрахунок витрат на розробку програми

	3.5 Розрахунок поточних витрат реалізації та мінімальної ціни продажу програми

	3.6 Економія у споживача програмного продукту

	3.7 Розрахунок економічної ефективності проекту

	3.8 Висновки

	Висновки

	Перелік посилань

	Додаток Вихідний код програми




Перелік умовних позначень, символів, одиниць, скорочень і термінів



АРМ–автоматизоване робоче місце;

АС–автоматизована система; БД–база даних;

ІЗ–інформаційне забезпечення; ІС–інформаційна система;

ПЗ–програмне забезпечення; ПП–програмний продукт;

СУБД–система управління базами даних;

CASE–Computer-Aided Software/System Engineering – система автоматизованої розробки програмного забезпечення;

CLR–	Common Language Runtime – середовище часу виконання коду, в якому забезпечується ефективна взаємодія застосувань;

DDL–Data Definition Language – мова визначення даних;

ER-модель–Entity Relationship – модель "суть-зв'язок";

IDE–Integrated Development Environment – интегрироване середовище розробки;

IDEF–Integrated Computer-Aided Manufacturing – методологія комп’ютерного моделювання складних систем;

RAD–Rapid Application Development - методологія швидкої розробки застосувань;

RUP–Rational Unified Process – методологія уніфікованих процесів розробки програмного забезпечення;

VB–мова програмування и середовище розробки Visual Basic;

SADT–Structured Analysis and Design Technique – методологія функціонального моделювання;

SQL–Structured Query Language – структурована мова запитів;

VBA–Visual Basic for Applications – технологія програмування у офісних застосуваннях Microsoft;

UML–Unificated Model Language – уніфікована мова моделювання.




Вступ



За останнє десятиліття інформація стала одним з найдорожчих ресурсів у світі. З кожним роком її роль в умовах насиченого ринку, твердої конкуренції й особливо в умовах диверсифіцированного виробництва усе більш зростає. Фірми, здатні знаходити й ефективно використовувати у своїх цілях інформаційні ресурси, процвітають і стають більш значніше у своїх позиціях на ринку. При цьому, дане зтвердження справедливе по відношенню, як до великих підприємств, так і до підприємств, які прийнято відносити до сфери малого і середнього бізнесу.

З інформацією нерозривно зв'язане поняття організаційних комунікацій. Під ними розуміють процес обміну інформацією, необхідної для прийняття управлінських рішень. Зрозуміло, що добре налагоджені комунікації значно підвищують цінність використовуваної інформації. Фірма, що володіє ефективними комунікаціями, набагато більш сприйнятлива до ринкових змін, вона більш мобільна і стійкіша за своїх конкурентів. Це відбувається завдяки тому, що інформація, по суті справи, є також невід'ємною складовою операційних або бізнесів-процесів компанії. В даний момент однієї з основних критичних областей інформаційної взаємодії є область управління збутом. Це справедливо для багатьох компаній, бізнес яких в основному спрямований на торгівлю широкою номенклатурою товарів. У даному випадку проблеми управління збутом багато в чому будуть визначати внутрішню конкурентноздатність підприємства. Незважаючи на досить просту організаційну структуру, велику кількість внутрішніх і зовнішніх процесів фірми, їхня складність і взаємовплив обумовлюють необхідність приділяти саму серйозну увагу інформаційному забезпеченню цих процесів, а також шукати шлях до постійного удосконалювання каналів комунікацій як усередині підприємства, так і стосовно зовнішнього оточення[1]. З урахуванням розвитку сучасних засобів комунікацій, вирішити зазначену проблему можливо на основі використання технологій автоматизованої передачі й обробки даних у режимі реального часу, що не тільки забезпечить ефективність процесу управління, але і якість, і своєчасність прийнятих управлінських рішень. Дане зтвердження можна вважати справедливим і для торгової фірми "Сігма", що була обрана як об'єкт дослідження даної дипломної роботи.

Попередній аналіз діяльності підприємства в рамках предметної області управління торговим підприємство дозволяє сформулювати мету роботи: Розробити проект створення автоматизованої підсистеми управління збутом компанії, що, з одного боку, повинна підвищити ефективність управлінських і комунікаційних процесів фірми, а з іншої являтися основою для формування надалі загальфірмової інтегрованої системи управління компанією.

Досягнення поставленої мети потребує рішення в роботі наступних основних задач:

проаналізувати суть|сутність,єство| завдань|задача| відділу збуту;

формалізувати розрахунки;

обґрунтувати розробки по всіх видах забезпечення;

охарактеризувати вхідну, постійну, проміжну і результатну інформацію;

реалізувати вибраний варіант проекту.

Основна перевага автоматизації - це скорочення надмірності даних, що зберігаються, зменшення витрат на багаторазові операції оновлення надмірних копій і усунення можливості виникнення протирічь із-за зберігання в різних місцях відомостей про один і той же об'єкт, збільшення міри достовірності інформації і збільшення швидкості обробки інформації; усунення зайвої кількості внутрішніх проміжних документів, різних журналів, тек, заявок, повторного внесення однієї і тієї ж інформації до різних документів.

Розроблена система є прикладом досить простої автоматизованої системи управління. Дана розробка відрізняється, перш за все, простим і інтуїтивним інтерфейсом і невисокою вартістю.

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

У даному дипломному проекті використовується середовище розробки Borland Delphi і СУБД MS Access.

Мета даного дипломного проекту - створення автоматизованого робочого місця управління замовленнями малого підприємства "ПП Сігма".

Об'єкт дослідження – підприємства малого бізнесу у сфері торгівлі та обслуговання населення.

Предмет дослідження – інформаційні процеси у організації роботи малого підприємства "ПП Сігма".

Методи дослідження - системний аналіз, методи аналізу інформаційних систем.

Методи розробки – об’єктно-орієнтований аналіз, об’єктно-орієнтоване проектування і програмування, сучасні інструменти розробки програмного забезпечення - Borland Delphi, Microsoft Access.




1. Проектно-конструкторський розділ



1.1 Загальносистемні рішення



1.1.1 Загальні положення

Дослідження будь-якого складного об'єкта, яким є сучасна організація діюча в умовах зовнішнього оточення, що динамічно розвивається, повинні випереджати вибір методології аналізу. На сьогоднішній день такою методологією, що представляє організацію у виді сукупності взаємозалежних елементів, що підлягають впливу ззовні, є методологія системного аналізу.

З погляду цієї методології, управління організацією являє собою досить складний процес, ефективно здійснювати який неможливо, керуючись лише простими, сухими, заученими формулами [4]. Керівник повинен поєднувати розуміння загальних істин і положень, а також значимості численних варіацій, завдяки яким ситуації відрізняються одна від іншої. Він повинний вміти адаптуватися до постійно мінливих умов зовнішнього оточення. В умовах ринку ніщо не відбувається не вмотивовано, усе має свою причину, усе визначається складним переплетенням впливу багатьох перемінних зовнішнього і внутрішнього середовища організації.

Методологія системного підходу дозволяє розглядати організацію як складну відкриту систему, як єдине ціле, з урахуванням усіх зовнішніх і внутрішніх взаємозв'язків (див. рис.1.1). Системний підхід дає можливість виявити і чітко сформулювати проблеми в організації в умовах невизначеності зовнішнього оточення, визначити стратегію її розвитку, точно задати функціонально-необхідні і паразитні входи і виходи; установити структуру організації як системи та зв'язки між структурними складовими; проаналізувати системні зв'язки між постачальниками, споживачами і т.д. [6,7].






Рисунок 1.1 - Системне представлення організації з урахуванням її бізнес процесів



З погляду системного представлення організації, її зовнішнє середовище містить у собі такі елементи, як споживачі, конкуренти, урядові органи, постачальники, фінансові організації і джерела трудових ресурсів, релевантні стосовно операцій організації [4]. Ключовою крапкою бізнес-оточення фірми є "споживач".

Основою завдання даної проектованої системи являється облік, контроль і оперативне регулювання господарських операцій по управлінню збутом, підготовка стандартних документів для зовнішнього середовища (рахунків, інвентаризації, статистики). Оперативне управління господарськими процесами складає від одного до декількох днів і реалізує реєстрацію подій, наприклад оформлення і моніторинг виконання замовлень, прихід і витрату матеріальних цінностей і т.д. Ці завдання мають ітеративний, регулярний характер, виконуються безпосередніми виконавцями господарських процесів (робітниками, комірниками, адміністраторами і т.д.) і пов'язані з оформленням і пересилкою документів відповідно до чітко заданих алгоритмів. Результати виконання господарських операцій реєструються у відповідних журналах. Автоматизація цих процесів дозволить зберігати інформацію в одній базі даних, інформація в яку буде вводиться швидко і зручно. Користувачем цієї системи буде людина, що займається обліком товарів на складах, прийомом замовлень, а також поточною випискою витратних документів і оприбутковуванням товарів, що щойно поступили. Інформаційна система дозволить позбавити співробітника від рутинної повсякденної роботи по виписці рахунків на оплату, роботи по перерахунку (інвентаризації) продукції. Оскільки раніше документи виписувалися уручну, в яких вказувалися реквізити, що повторювалися, а також великий перелік номенклатури – це займало багато часу. Автоматизація дозволить значно скоротити час. Співробітникові потрібно буде тільки вибрати із списку відповідного клієнта, його замовлення і відправити на друк документ. У друкарській формі автоматично опиняться всі необхідні реквізити відповідно до встановленої форми друку документів.

Щоб зробити звіт, необхідно зібрати потрібні дані шляхом пошуку їх у відповідних документах, якщо це звіт за рік, то необхідно буде проглянути всі документи за цей рік, на що піде величезна кількість часу. При виведенні підсумків по звіту необхідна точність в розрахунках, що не завжди виходить навіть у фахівця своєї справи. Ці і багато інших задач зможе вирішити проектована інформаційна система. При пошуку потрібного об'єкту (суми, документа, кількості), якщо не буде відомий документ, в якому його шукати, потрібно буде перегорнути всю купа документів і проглянути кожну позицію. Автоматизація дозволить зробити вибірку по цій позиції і значно скоротить обсяг відповідних документів або зведе до одного єдиного потрібного документа.

Виникають складнощі і з складанням прайс-листа. Якщо на склад привезли новий вигляд товарів або якщо змінилася ціна на старі товари, необхідно буде наново переробляти весь прайс-лист. Впровадження автоматизованої системи дозволить автоматично робити всі ці дії при додаванні нової позиції номенклатури. За рахунок скорочення часу на виконання довгих рутинних робіт, можна підвищити продуктивність праці співробітника, який може тепер виконувати не тільки свою роботу, але і узяти на себе ряд інших обов'язків. Створення власної автоматизованої системи дозволить врахувати всі особливості, треба бути розробити тільки те, що потрібне, і так як потрібно. Аналіз по підприємствах, де вже використовуються розроблені на стороні програмні продукти, показує, що є великі проблеми із супроводом, зв'язані, перш за все, із тим, що підприємство, що автоматизується, і розробник знаходяться в різних містах. У зв'язку з цим, між замовленням на яке-небудь доопрацювання і результатом проходить, як правило, багато часу. Також будь-яка доробка стороннім розробником звичайно дуже дорого коштує користувачеві. Своя власна розробка інформаційно-програмної системи також коштує недешево для фірми і також має свої вади, але за правильним підходом до розробки ці ризики можна значно мінімізувати.



1.1.2 Опис процесу діяльності

ПП "Сігма" знаходиться на українському ринку близько чотирьох років. На території фірми виділена площа під склади, де зберігаються усі види матеріалів, необхідних для ремонту. Тому адміністратор може контролювати наявність матеріалу на складі, відвантаження, вантаження і проводити інвентаризацію в безпосередній близькості від офісу. Завдяки цьому спрощена схема документообігу. Матеріали надходять безпосередньо із оптових складів фірм-постачальників і використовується за необхідністю для послуг, що потребують даний вид матеріалів. Організація здійснює доставку своїх матеріалів до місця проведення ремонтних робіт.

Номенклатура матеріалів, що використовується для ремонту, складає декілька сотень найменувань і постійно збільшується. Також із розвитком ПП зростає різновид і кількість послуг, що надаються. Організація здійснює ремонтні роботи як за готівку, та і за безготівковий розрахунок.

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




Рисунок 1.2 - Схема зовнішнього середовища фірми "Сігма"



Внутрішня організаційна структура фірми є схемою, що зображена на рис. 1.3. На чолі фірми – приватний підприємець, який вирішує в основному управлінські питання, а також питання стратегічного характеру. Він контролює діяльність всіх відділів. Також в його компетенції питання руху фінансових потоків. Закупівлею матеріалів займається відділ постачання. У його функції також входить пошук нових постачальників з вигіднішими умовами постачання. Цей відділ вирішує питання закупівлі по всьому асортименту необхідних матеріалів. Закупівля проводиться на підставі даних ремонтного відділу, або заявок клієнтів.





Рисунок 1.3 - Внутрішня структура організації



К відділу бухгалтерії відноситься тільки бухгалтер. Він веде бухгалтерський облік, зводить баланс, різні стрічні звірки, рахує всі податки і вирішує питання, що виникають у відділах, що знаходяться в його підпорядкуванні.

Автоматизована система призначена для вирішення завдань відділу збуту. Основні завдання цього відділу – це пошук клієнтів, укладення з ними договорів, установка термінів, умов постачання і оплати товару, здійснення прийому замовлень від покупців.

До ремонтного відділу відноситься майстер з ремонтних робіт і робітники-ремонтники.

Майстер з ремонтних робіт приймає закази від клієнтів, розраховує скільки потрібно матеріалів на ремонтні роботи. Передає перелік матеріалів менеджерам відділу постачання та завдання робітникам-ремонтникам.

Менеджери відділу постачання приймає заявку на видачу матеріалів від майстра ремонтних робіт, та видає необхідні матеріали робітникам-ремонтникам.



1.1.3 Опис функцій, які автоматизуються

У даному програмному продукті були спроектовані і розроблені наступні функціональні можливості:

формування списку замовлень;

ведення замовлень;

ведення списку послуг;

ведення списку матеріалів;

ведення списку груп послуг;

ведення списку груп матеріалів;

формування кошторису на замовлення;

формування звіту по кошторису для друку.

Тепер розглянемо кожен пункт окремо і визначимо конкретніше, що саме і яким чином автоматизовано.



1.1.3.1 Ведення замовлень

Веденням замовлень займається майстер з ремонтних робіт. Після формування списку матеріалів для ремонтних робіт майстер записує в книгу замовлень усю інформацію про клієнта та замовлення. Вручну вираховує скільки буде коштувати послуга клієнтові, включаючи вартість необхідних матеріалів, та передає інформацію бухгалтеру. В цій ситуації важко продивитися скільки замовлень робив даний клієнт, на яку суму, останне його замовлення та інше. При роботі із програмою заведенням у базу даних усіх замовлень повинен займається майстер з ремонтних робіт. Після прийняття замовлення він складає список усіх необхідних для роботи матеріалів і формує замовлення у програмі.



1.1.3.2 Формування списку замовлень

Оскільки уся інформація вводиться і зберігається в базі даних, то ми можемо отримати оперативну інформацію про кількість і вміст замовлень. Це набагато простіше ніж передивлятися усі рядки в книзі замовлень.



1.1.3.3 Ведення списку послуг

Коли клієнт приходить і робить замовлення на ремонтні роботи, майстер з ремонтних робіт складає перелік необхідних послуг, які потрібно виконати, виходячи з слів клієнта. Перелік необхідних послуг майстер визначає по книзі послуг. Це дуже не зручно. Оскільки найменування робіт можуть бути надто довгими, то майстер майже завжди робить скорочення найменування послуг. Тому одна й та ж послуга може бути записана по різному. Це викликає претензії у деяких клієнтів. Тому набагато краще мати довідник послуг, який буде містити повний перелік послуг. У довідник достатньо один раз ввести найменування послуги і вказати вартість даної послуги. Потім достатньо просто вибирати дану послугу зі списку послуг і вона автоматично з'явиться в сформованому замовленні. Також автоматично навпроти послуги з'явиться її вартість.




1.1.3.4 Ведення списку матеріалів

Отримавши замовлення майстер окрім перегляду списку послуг повинен переглянути список матеріалів для того, щоб переконатися, що матеріал існує і подивитися скільки він коштує. Якщо майстер не пам'ятає ціну матеріалу, то її визначення може зайняти деякий час. Для серйозної ремонтної роботи, яка вимагає великого достатку матеріалу, розрахунок вартості матеріалів може зайняти кілька хвилин. При великій кількості клієнтів це неприйнятно. До того-ж оскільки деякі найменування матеріалів є досить довгими майстер пише постійно скороченнями, що викликає труднощі у нового персоналу ремонтників, які мають отримати зазначені матеріали. Програма пропонує одноразово ввести матеріал в довідник, а також його ціну, а потім автоматично вибирати цей матеріал. До того ж ціна матеріалу і його загальна вартість будуть розраховуватися автоматично.



1.1.3.5 Ведення списку груп послуг

Оскільки список послуг є досить великим, то його необхідно досить таки довго шукати. Набагато грамотніше буде розбити всі послуги на групи. Наприклад, якщо вам необхідна послуга укладання лінолеуму, то не потрібно шукати дану послугу з усього переліку, а досить вибрати групу підлоги і там з невеликого списку знайти необхідну нам послугу. Грамотне ведення даного довідника збереже безліч часу майстру і клієнтам.



1.1.3.6 Ведення списку груп матеріалів

Оскільки список матеріалів є досить великим, то певний матеріал необхідно довго шукати. Набагато грамотніше буде розбити всі матеріали на групи. Наприклад, якщо вам необхідний матеріал жалюзі пластикові червоні, то не потрібно шукати даний матеріал з усього переліку, а досить вибрати групу жалюзі і там з невеликого списку знайти необхідний нам матеріал. Грамотне ведення даного довідника збереже безліч часу майстру і клієнтам.


1.1.3.7 Формування кошторису на замовлення

Ця функція спрощує формування кошторису на замовлення. Тепер не потрібно вручну заповнювати документ. По вже сформованому замовленню кошторис формується за частки секунди. Це набагато швидше, ніж вручну переписувати всі дані. При електронному документообігу немає потреби по кілька разів заводити одну й ту ж інформацію.



1.1.3.8 Формування звіту по кошторису для друку

Коли кошторис на замовлення вже сформований, його можна легко роздрукувати. Для цього розроблена спеціальна форма для друку. Сформований за частки секунди кошторис можна настільки ж швидко послати на друк. До того ж у формі передбачена спеціальні можливості, які дозволяють керувати масштабом звіту, здійснювати навігацію по звіту, здійснювати налаштування друку.



1.1.4 Опис постановки завдання

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

Комп'ютерний облік має свої особливості і радикально відрізняється від звичайного. Комп'ютер не просто полегшує облік, скорочуючи час, потрібний на оформлення документів і узагальнення накопичених даних для аналізу ходу торгової діяльності, необхідного для управління нею.

Звіти про становище у сфері надання послуг, одержувані за допомогою комп'ютера, можна отримати і без нього – ніякої особливої математики в комп'ютері не міститься – але| на розрахунки піде стільки часу, що вони вже ні на що не будуть потрібні; або ними доведеться зайняти таку кількість розраховувачів, що на їх зарплату піде значно більше, чим буде одержано прибутку в результаті їх розрахунків. Таким чином, при застосуванні комп'ютера "кількість переходить в якість": збільшення швидкості розрахунків робить можливим якісне поліпшення самої схеми побудови надання послуг.

Для того, щоб автоматизувати формування замовлення і видачу кошторисів, необхідно вирішити наступні задачі:

проаналізувати суть завдань ремонтного та постачального відділів;

обґрунтувати використання обчислювальної техніки;

обґрунтувати розробки по всіх видах забезпечення;

охарактеризувати вхідну, постійну і результатну інформацію.

Основою завдання даної проектованої системи є облік, контроль і оперативне регулювання господарських операцій, підготовка стандартних документів для зовнішнього середовища (кошторис, звіт). Оперативне управління господарськими процесами складає від одного до декількох днів і реалізує реєстрацію подій, наприклад оформлення і моніторинг виконання замовлень, прихід і витрата матеріальних цінностей і т.д. Ці завдання мають ітеративний, регулярний характер, виконуються безпосередніми виконавцями господарських процесів і пов'язані з оформленням і пересилкою документів відповідно до чітко заданих алгоритмів. Результати виконання господарських операцій реєструються у відповідних журналах. Автоматизація цих процесів дозволить зберігати інформацію в одній інтегрованій базі даних.

Першочерговим завданням системи, що розробляється, є автоматизація прийому (формування) заявок від клієнтів і виконання замовлення з повним| контролем системи. Під словом контроль не є на увазі, що система повинна контролювати користувача як суб'єкта, а, що контролюватися буде його дії в області формування. Для того, щоб краще зрозуміти, які ж функції система автоматизує, потрібно провести аналіз діяльності, обов'язків ремонтного і постачального відділів. Суть автоматизації і контролю полягає в зменшенні часу пошуку наявності матеріалів та його вартості, а також визначення вартості тієї чи іншої послуги; якісного і швидкого прийняття заявки покупця.

Щоб сформулювати реальні вимоги до системи, розробник повинен отримати від замовника якомога більше інформації. Але, як правило, замовник і розробник є фахівцями в абсолютно різних областях, тому їм буває складно домовитися через те, що вони говорять "на різних мовах". Застосування мови UML як "спільної мови" допомагає досягти взаєморозуміння, оскільки схемне представлення системи на мові UML буде зрозуміле і розробникові, і, в якійсь мірі, замовникові.

Поведінка системи, що розробляється, описується за допомогою функціональної моделі, яка відображає системні прецеденти, системне оточення (дійових осіб або акторів) і зв'язки між прецедентами і акторами (діаграми прецедентів). Основне завдання моделі прецедентів – бути єдиним засобом, що дає можливість фахівцеві в предметній області і розробникові – фахівцеві в інформаційних технологіях спільно обговорювати функціональність і поведінку системи.

Актори – це користувачі, або інші системи, які унікальним чином взаємодіють із даною системою.

У інформаційній системі, що розробляється, претендентами на роль акторів є:

Адміністратор – користувач, що здійснює настройку і конфігурацію системи;

Головний бухгалтер – користувач, що здійснює фінансові операції;

Співробітник – майстер ремонтного відділу, який приймає заявки від клієнтів та формує замовлення.

На підставі перерахованих потреб можна виділити наступні прецеденти:

реєстрація в системі;

конфігурація системи;

формування документів;

пошук даних.

Діаграма прецедентів використання системи показана на рис.1.4.





Рисунок 1.4 - Діаграма прецедентів використання



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





Рисунок 1.5 – Функціональна схема програми


1.2 Рішення з інформаційного забезпечення



Інформаційне забезпечення (ІЗ) – сукупність єдиної системи класифікації і кодування інформації, уніфікованих систем документації, схем інформаційних потоків, циркулюючих в організації, методологія побудови баз даних. Дана підсистема призначена для своєчасного представлення інформації, ухвалення управлінських рішень.

ІЗ автоматизованих інформаційних систем складається з позамашинного (інформація, яка сприймається людиною без яких-небудь технічних засобів) – це класифікатори техніко-економічної інформації і документи; і внутрішньомашинного ІЗ (сукупність всіх даних, записаних на машинних носіях, згрупованих за певними ознаками) – це макети, екранні форми для введення первинних даних в ЕОМ або введення результатної інформації.

При організації БД доцільно використовувати наступні типи таблиць баз даних.

Основна таблиця – це таблиця, в якій кожен запис зберігає інформацію, що не має ніякого зв'язку з іншими записами цієї ж таблиці даних. Основні таблиці не можуть мати зв'язку за допомогою своїх полів. Вони можуть співвідноситися тільки шляхом розділення додаткових таблиць, які називається таблицями зв'язку.

Підлегла таблиця – це таблиця, яка дозволяє зберігати дані, що відносяться до якого-небудь запису основної таблиці.

Довідник – це таблиця, яка містить загальні дані, що розділяються іншими компонентами. Такі таблиці служать для зберігання інформації, зміна якої в одному місці, повинно негайно відбитися у всіх інших, де вона використовується. Досягається це шляхом посилань на довідник. Така гнучкість при внесенні змін не допускає дій із зміною порядку проходження записів в довіднику, а також видалення із нього записів. До довідників в системі відносяться наступні: довідник товару, довідник клієнтів, довідник постачальників і довідник вимірювань. Організація зв'язків між таблицями вимагає певних правил поводження із записами:

При видаленні запису повинні бути видалені всі записи із підлеглих таблиць нижнього рівня, які відносяться до запису, що видаляється.

При доповненні структури якої-небудь таблиці підлеглу таблицю слід використовувати там, де не можна точно сказати, скільки однотипної інформації зберігатиметься. Довідник ефективний для швидкого введення логічно зв'язаної групи інформації. Крім того, він являється єдиним засобом для класифікації об'єктів. Тому довідник обов'язково слід використовувати там, де передбачається угрупування даних за якою-небудь ознакою.



1.2.1 Перелік вхідних даних

Під вхідною інформацією розуміється вся інформація, що необхідна для вирішення задачі і розташована на різних носіях: первинних документах, машинних носіях, в пам'яті персонального комп'ютера. Від раціональної організації вхідної інформації приватного підприємства, способів збору, реєстрації, передачі, зберігання і обробки інформації, її складу залежать оперативність і ефективність управління торгівельними процесами. Вхідною інформацією для автоматизованої системи, що розробляється в дипломному проекті, є наступні дані. Дані про клієнта:

Найменування. – найменування фірми клієнта або його П.І.Б..

Дані про матеріал:

Найменування – назва матеріалу;

Одиниця вимірювання – в яких одиницях вимірюється матеріал;

Вартість – ціна однієї одиниці матеріалу;

Тип – тип матеріалу.

Дані про послугу:

Найменування – назва послуги;

Одиниця вимірювання – в яких одиницях вимірювання виробляється розрахунок вартості послуги;

Вартість – ціна однієї одиниці вимірювання;

Тип – тип послуги.

Всі дані заносяться в комп'ютер за допомогою спеціальних розроблених форм. За допомогою цих форм зручно заносити інформацію, а також форма дозволяє просто вибирати потрібну позицію із запропонованого списку, що дозволяє зберегти цілісність даних. Ведення даних довідкової інформації дозволяє виключити умовно-постійну інформацію з первинних документів, що впливає на зниження трудомісткості їх заповнення, а також дозволяє автоматизувати звітний процес. До вхідної довідкової інформації відноситься інформація, що зберігається в наступних довідниках:

Довідник Послуги;

Довідник Тип послуг;

Довідник Матеріалі;

Довідник Тип матеріалу.

Основними функціями Довідників є:

забезпечення перевірки кодованих значень ознак при введенні даних;

декодування значень ознак при виведенні даних на екран дисплея;

зберігання постійної інформації, пов'язаної з певними значеннями ознак;

оформлення текстом пояснення таблиць, що отримуються в результаті рішення комплексу задач.



1.2.2 Перелік вихідних даних

В ході розробки автоматизованого рішення задачі контролю формування замислень і друку кошторисів, результатними показниками є друкарські форми таких звітів:

кошторис замовлення;

друк звіту кошторису замовлення.

При реалізації товару покупець отримує вихідний машинний документ Звіт кошторису замовлення. Цей документ одержується в результаті обробки інформації таблиць Довідник Послуг, Довідник Замовлення, Замовлення, Довідник групи матеріалів, Довідник групи послуг. Цей документ необхідний для обліку надання послуг клієнтам. Один примірник документа залишається у клієнта, а другий залишається на фірмі. По цьому документу клієнт робить оплату за послуги і матеріали.



1.2.3 Опис інформаційного забезпечення

1.2.3.1 Логічна модель даних

В процесі постановки задачі була створена база даних, яка зберігає весь потік інформації, яка надходить від клієнтів, послуг і матеріалів, що з'являються. Для цього були створені таблиці для зберігання даних з максимальною зручністю і простотою їх обробки. Далі розглянемо всі таблиці бази даних в табличному форматі: найменування стовпця, тип даних і короткий опис стовпця. Таблиця Замовлення зберігає дані про замовлення.



Таблиця 1.1 - Опис структури таблиці "Замовлення"

Найменування стовпця

Тип даних

Опис

Id

Лічільник

Первинний ключ

Customer

Текстовий

Замовник

Num

Числовий

Номер

OrderDate

Дата/час

Дата замовлення

EnginPerc

Грошовий

Процент інженерних робіт

Comment

Текстовий

Примітка

OrderId

Числовий

Копія Id



Таблиця Замовлені послуги зберігає дані про замовлені послуги.

Таблиця Замовлені матеріали зберігає дані про замовлені матеріали.

Таблиця Довідник послуг зберігає дані про послуги.



Таблиця 1.2 - Опис структури таблиці "Замовлені послуги"

Найменування стовпця

Тип даних

Опис

Id

Лічільник

Первинний ключ

OrderId

Числовий

Замовлення

NameId

Числовий

Вид роботи

Quantity

Грошовий

Кількість

MeasUnit

Текстовий

Одиниця вимірювання

UnitPrice

Грошовий

Вартість одиниці



Таблиця 1.3 - Опис структури таблиці "Замовлені матеріали"

Найменування стовпця

Тип даних

Опис

Id

Лічільник

Первинний ключ

OrderId

Числовий

Замовлення

NameId

Числовий

Вид матеріала

Quantity

Грошовий

Кількість

MeasUnit

Текстовий

Одиниця вимірювання

UnitPrice

Грошовий

Вартість одиниці



Таблиця 1.4 - Опис структури таблиці "Довідник послуг"

Найменування стовпця

Тип даних

Опис

Id

Лічільник

Первинний ключ

Name

Текстовий

Назва

GroupId

Числовий

Ід. групи

MeasUnit

Текстовий

Одиниця вимірювання

UnitPrice

Грошовий

Вартість одиниці

NameId

Числовий

Копія Id



Таблиця Довідник матеріалів зберігає дані про матеріали.

	

Таблиця 1.5 - Опис структури таблиці "Матеріали"

Найменування стовпця

Тип даних

Опис

Id

Лічільник

Первинний ключ

Name

Текстовий

Назва

GroupId

Числовий

Ід. групи

MeasUnit

Текстовий

Одиниця вимірювання

UnitPrice

Грошовий

Вартість одиниці



Таблиця Довідник груп послуг зберігає дані про групи послуг.




Таблиця 1.6 - Опис структури таблиці "Довідник груп послуг"

Найменування стовпця

Тип даних

Опис

Id

Лічільник

Первинний ключ

Name

Текстовий

Назва

GroupId

Числовий

Копія Id



Таблиця Довідник груп материалів зберігає дані про групи материалів.



Таблиця 1.7 - Опис структури таблиці "Довідник груп материалів"

Найменування стовпця

Тип даних

Опис

Id

Лічільник

Первинний ключ

Name

Текстовий

Назва



1.2.3.2 Схема бази даних

На основі моделі, представленої в пункті 1.2.4.1, проектується база даних в MS Access. Діаграма таблиць БД має наступний вигляд (див. рис. 1.6).





Рисунок 1.6 - Діаграма бази даних



Зміст і структура таблиць БД, а також зв’язки між ними цілком зрозумілі з наведеної діаграми. Приведемо для приклада детальний опис структур таблиці БД Склад (див. табл.1.8).



Таблиця 1.8 - Таблиця "Склад" (Склад)

Найменування стовпця

Тип даних

NULL

Опис

Id

Счетчик

Ні

Первичный ключ

Customer

Текстовый

Ні

Заказчик

Num

Числовой

Ні

Номер

OrderDate

Дата/время

Ні

Дата заказа

EnginPerc

Денежный

Ні

Процент инженерных работ

Comment

Текстовый

Так

Примечание

OrderId

Числовой

Ні

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



1.3 Рішення з технічного забезпечення



ПЗ ділиться на два вида: загальне (операційні системи, операційні оболонки, компілятори, інтерпретатори, програмні середовища для розробки прикладних програм, СУБД, мережеві програми і т.д.) і спеціальне (сукупність прикладних програм, розроблених для конкретних задач у рамках функціональних підсистем.

До загальносистемного програмного забезпечення відносяться програми, розраховані на широке коло користувачів і призначені для організації обчислювального процесу і рішень задач обробки інформації, що часто зустрічаються. Вони дозволяють розширити функціональні можливості ЕОМ, автоматизувати планування черговості обчислювальних робіт, здійснювати контроль і управління процесом обробки даних, а також автоматизувати роботу програмістів. До даного класу ПЗ можна віднести операційні системи, інтегровані засоби управління завданнями. В рамках створення даної АІС планується використання операційної системи Windows 2000. Спеціальне програмне забезпечення є сукупність програм, що розробляються при створенні АІС конкретного функціонального призначення. Воно включає пакети прикладних програм, що здійснюють організацію даних і їх обробку при рішенні функціональних задач.

Для того, щоб працівники ефективно працювали з великим інформаційним потоком, база даних повинна відповідати наступним вимогам:

зберігання достатніх об'ємів актуальної і достовірної інформації;

простота звернень користувачів до БД;

можливість внесення зміни, видалення, сортування і інших маніпуляцій з даними БД;

пошук інформації по різних групах ознак;

можливість розширення і реорганізації даних в БД при змінах предметної області.

MS Access являється однією з найпопулярніших серед настільних програмних систем управління базами даних [17,19]. Серед причин такої популярності слід зазначити:

високий ступінь універсальності і продуманості інтерфейсу, який розрахований на роботу з користувачами самої різної кваліфікації. Зокрема, реалізована система управління об'єктами бази даних, що дозволяє гнучко і оперативно переходити з режиму конструювання в режим їх безпосередньої експлуатації;

глибоко розвинені можливості інтеграції з іншими програмними продуктами, що входять до складу Microsoft Office, а також з будь-якими програмними продуктами, що підтримують технологію OLE;

багатий набір візуальних засобів розробки.

Не можна не відзначити, що, істотною причиною такого широкого поширення MS Access є і могутня рекламна підтримка, здійснювана фірмою Microsoft. В процесі розробки даного продукту на ринок представлялися його різні версії. Найбільш відомими (в деякому розумінні етапними) стали Ассеss 2.0, Ассеss 7.6 (він вперше був включений до складу програмного комплекту MS Office 95). Пізніше з'явилися|появилися| версії Ассеss 97 (у складі NS Office 97), і Ассеss 2000 (у складі МS Office 2000), Ассеss XP, нарешті Ассеss 2008.

Специфічною особливістю СУБД Ассеss є те, що вся інформація, що відноситься до однієї бази даних, зберігається в одному файлі. Такий файл має розширення *.mdb. Дане розв'язання, як правило, зручно для непрофесійних користувачів, оскільки забезпечує простоту при перенесенні даних з одного робочого місця на інше.

Засобами Access можна реалізувати меню-орієнтований інтерфейс з елементами об'єктний-подієвого управління, коли виконання визначених функцій зв'язується з певними подіями (клацання миші, натиснення клавіші і т.п.).

Щоб проектована АРМ була ефективною необхідне дотримання наступних принципів створення системи:

системність;

гнучкість;

стійкість;

ефективність.

Згідно принципу системності, АРМ слід розглядати як системи, структура яких визначається функціональним призначенням.

Принцип гнучкості означає пристосованість системи до можливих перебудов, завдяки модульній побудови всіх підсистем і стандартизації їх елементів.

Принцип стійкості полягає в тому, що система АРМ повинна виконувати основні функції незалежно від дії на неї внутрішніх і зовнішніх чинників. Це означає, що неполадки в окремих її частинах повинні легко усуватися, а працездатність системи швидко відновлюватися.

Ефективність АРМ слід розглядати, як інтегральний показник рівня реалізації приведених вище принципів, віднесеного до витрат на створення і експлуатацію системи.

Функціонування АРМ може дати бажаний ефект за умови правильного розподілу функцій і навантаження між людиною і машинними засобами обробки інформації, ядром якої є комп'ютер.

Дана система розроблялася з розрахунком використання її в системі Windows і на комп'ютерах з невисоким показником швидкодії. Отже, потрібна була система програмування, яка б дозволяла розробляти застосування під Windows, і розроблені застосування не вимагали б швидкодіючих персональних комп'ютерів. Одна з мов програмування, яка підходить по всіх вищеперелічених критеріях, є об'єктно-орієнтована мова програмування Microsoft Visual Basic .NET

Microsoft Visual Basic .NET, як сказано вище, задовольняє всім критеріям і може створювати програмні застосування будь-якої складності:

створювати програми для Windows, Linux і інших операційних систем;

створювати застосування різного напряму – від розрахункових і логічних до графічних і мультимедійних;

створювати цілі системи з локальними і видаленими СУБД;

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

створювати графічні, інтерфейсні об'єкти (компоненти) для застосувань, написаних на інших мовах програмування;

створювати не тільки Windows застосування, але і WEB застосування.

Microsoft Visual Basic.NET може створювати застосування для роботи з різними СУБД – від "найстародавніших" до найсучасніших. Він має вбудовані об'єкти для роботи з СУБД і не вимагає додаткових, сторонніх розробок.

Отже, можна зробити такий висновок: дана мова програмування повністю задовольняє вимогам розробки в своїй багатофункціональності, простоті інтерфейсу і написання програмного коду, якістю розроблених програм і систем, інтеграцією під будь-яку операційну систему і, найголовніше, величезними і різними видами допомоги в написанні програм.

Автоматизована система контролю формування і виконання замовлення розроблена під систему Windows і не вимагає високошвидкісних персональних комп'ютерів, розрахована і доступна в придбанні як для великих, так і малих підприємств.

Мінімальні вимоги до технічного забезпечення:

операційна система Windows 2000 і вище;

процесор не менше 2000 Гц;

ОЗУ не менше 1 Гб;

вінчестер не менше 100 Гб.



1.4 Рішення з математичного забезпечення



Оскільки одним із завдань відділу збуту є підтримка зв'язку з клієнтом і своєчасної доставки замовлення споживачеві, організація повинна враховувати мінімізувати витрати на доставку замовлення, тобто вирішити ряд задач:

скільки замовлень може доставити один транспорт;

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

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

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

встановити такі об'єми перевезень до кожного споживача, щоб потреби всіх споживачів були б задоволені.

Вирішити ці задачі можна за допомогою рішення транспортних задач. Розглянемо докладніше такі задачі, - що вони є, і як їх розв'язувати.



1.4.1 Змістовна постановка транспортні задачі

Є m пунктів виробництва однорідної або взаємозамінної продукції. Кожний з пунктів виробництва позначимо через,  де i= 1...,m. Через  позначатимемо обсяг продукції, вироблюваної в пункті . І нехай є n пунктів споживання (призначення) даної продукції, кожний з яких позначатимемо, де j=1...,n, а через  позначатимемо|значити| об'єм|обсяг| споживання|вжиток| (попиту) продукції в пункті . Вартість перевезення одиниці продукції від i-го виробника до j-го споживача складає (i=1...,m, j=1...,n). Передбачається, що транспортні витрати на перевезення між будь-якою парою пунктів пропорційні об'єму продукту, що перевозиться.

Потрібно встановити такі об'єми перевезень  від кожного виробника до кожного споживача, щоб сумарні витрати на перевезення були мінімальними і потреби всіх споживачів були б задоволені (якщо тільки об'єм можливих постачань покриває загальний об'єм споживання).



1.4.2 Формальна модель транспортної задачі

Математична модель задачі:







Z з| (1) є сумарними транспортними витратами.

Задача (1) - (4) є задачею лінійного програмування і називається транспортною задачею лінійного програмування (ТЗЛП). До моделі вигляду (1) -(4) може привести завдання, за своїм змістом ніяк не пов'язана з транспортом і плануванням перевезень. У таких випадках говорять, що дана задача може бути сформульована в термінах транспортнї задачі.



1.4.3 Метод потенціалів

Один з методів рішення транспортних задач є метод потенціалів. Метод потенціалів - один з найчастіше використовуваних методів рішення ТЗЛП. Цей метод являється реалізацією модифікованого симплекс-метода в умовах транспортної задачі.


1.4.3.1 Схема алгоритму

Схема алгоритму методу потенціалів така:

знайти початкове допустиме розв'язування;.

виділити з числа небазисних змінних що вводяться в базис. Якщо всі небазисні змінні задовольняють умові оптимальності (симплекс - методу), закінчити обчислення|; інакше перейти до наступного пункту.

вибрати що виводиться з базису змінну (використовуючи умову допустимості) з числа змінних поточного базису; потім знайти нове базисне рішення. Повернутися до попереднього пункту.

Далі транспортну задача задаватимемо таблицею:



Таблица 1.8 – Вид транспортної задачі











…





 

 x11

 x12

…

 x1n































…







 x21

 x22

…

 x2n







































…



…



…



…

































…







 

 

…

 

























…







Вартості перевезень одиниці продукції задані в лівих верхніх кутках відповідних кліток і задані в гривнях. Об'єми виробництва і величини попиту представлені в кількостях виробів.

Кількість рядків таблиці дорівнює числу виробників, а кількість стовпців - числу споживачів. Кожна клітина цієї таблиці відповідає певній парі виробник i - споживач j. Кожному маршруту i, j відповідають вартість  перевезення одиниці продукції і об'єм перевезень (кількість продукції) .

У даній задачі умова балансу виконується, тому вводити фіктивні пункти немає необхідності..

Розв'язання ЗЛП симплекс-методом починається з деякого допустимого базисного рішення (ДБР). У методі потенціалів використовуються наступні способи знаходження початкового ДБР:

метод північно-західного кута;

метод найменшої вартості;

метод Фогеля.



1.4.3.2 Метод північно-західного кута

Схема алгоритму така.

Надаємо змінній  (розташованій у північно-західному кутку транспортної таблиці) максимальне значення, що допускається обмеженнями на попит і обсяг виробництва:







Якщо , то виробник 1 повністю використав свої можливості і далі його можна не враховувати, а потреба 1-го споживача тепер буде рівна:  ;

Якщо , то 1-й споживач повністю задовольнив свою потребу в продукції і його можна далі не враховувати, а виробник 1 тепер має в своєму розпорядженні лише  одиниці продукції;

Якщо , то із розгляду можна виключити і споживача і виробника. В цьому випадку виключається ("вибуває з|із| гри") тільки один з них: або виробник, або споживач, а споживачеві (виробникові), що залишився, приписується нульовий попит (об'єм виробництва).

Після встановлення об'єму перевезень по маршруту (1,1) ми маємо справу з новою задачею, у якій сумарне число виробників і споживачів на 1 менше, ніж у вихідній задачі. У північно-західну клітину таблиці нової задачі, отриманої уявним викреслюванням першого стовпця або першого рядка старої таблиці, знову поміщаємо максимально можливий об'єм перевезень (він може опинитися і нульовим). Продовжуючи цей процес, прийдемо до рішення задачі, оскільки







1.4.3.3 Метод найменшої вартості

Метод північно-західного кута не обов'язково дає "добре" початкове рішення для транспортної задачі. Розглянемо метод найменшої вартості, що забезпечує отримання початкового рішення шляхом вибору "дешевих" маршрутів.

Схема алгоритму така.

Вибирається змінна, якій відповідає найменша вартість у всій таблиці, і їй надається, як можно більше значення. (Якщо таких змінних декілька, то береться будь-яка з них.). Викреслюється відповідний стовпець або рядок (оскільки дане обмеження задачі виконане). Якщо обмеження по стовпцю і рядку виконуються одночасно, то, як і в методі північно-західного кута, викреслюється або стовпець, або рядок. Обчислюється нове значення попиту або об'єму виробництва для невикресленого рядка або стовпця.

Після встановлення об'єму перевезень по маршруту, визначеному в пункті 1, ми маємо справу з новою задачею, в якій сумарне число виробникїв і споживачів на 1 менше, ніж в вихідній задачі. Далі процес повторюється при можливо більшому значенні тієї змінної, якій відповідає мінімальна вартість серед невикреслених (це значення може опинитися і нульовим). Процедура завершується, коли залишається один рядок і один стовпець.



1.4.3.4 Метод Фогеля

Цей метод є евристичним і зазвичай приводить до кращого початкового рішення, ніж два описаних вище. Насправді цей метод часто дає оптимальне або близьке до оптимального початкове рішення.

Схема алгоритму така. Обчислити штраф для кожного рядка (стовпця), віднімаючи найменший елемент цього рядка (стовпця) з наступного за ним по величині елементу того ж рядка (стовпця). Відзначити рядок або стовпець з найбільшим штрафом, а якщо таких декілька - вибрати серед них будь-який рядок або будь-який стовпець. У відміченому рядку або стовпці вибрати змінну з найнижчою вартістю і надати їй найбільше можливе значення. Скоректувати об'єм виробництва і попит і викреслити рядок або стовпець, відповідні виконаному обмеженню. Якщо обмеження по рядку і стовпцю виконуються одночасно, то викреслити або рядок, або стовпець, а стовпці (рядку), що залишився, приписати нульовий попит (об'єм виробництва). Рядок (або стовпець) з нульовим об'ємом виробництва (або попитом) не використовується в подальших обчисленнях. Якщо невикресленим залишається в точності один рядок або один стовпець, то закінчити обчислення. Якщо залишається невикресленою тільки один рядок (стовпець) із позитивним об'ємом виробництва (попитом), знайти базисні змінні в цьому рядку (стовпцю), використовуючи метод найменшої вартості. Якщо всім невикресленим рядкам і стовпцям відповідають нульові об'єми виробництва і величини попиту, знайти нульові базисні змінні, використовуючи метод найменшої вартості. В інших випадках обчислити нові значення штрафів для невикреслених рядків і стовпців і перейти до пункту 2. (Слід зазначити, що рядки і стовпці з нульовими значеннями об'єму виробництва і попиту не повинні використовуватися при обчисленні цих штрафів.)


1.4.3.5 Приклад рішення задачі

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

Транспортна задача представлена у вигляді таблиці:



Таблица 1.9 – Умови транспортної задачі



 2



 5



 3



 0

 









 10





















 3



 4



 1



 4











 20





















 2



 6 



 5



 2











 20



















5

25

10

10





Розв'язування:

1. Виберемо змінну, якій відповідає мінімальна вартість. Такою є змінна Х14 (C14=0). Відповідні значення попиту і об'єму виробництва визначають Х14=10, тобто і по рядку, і по стовпцю обмеження виконуються одночасно. Викреслювати можна або рядок 1 або стовпець 4, викреслимо рядок 1. Після цього об'єм виробництва в стовпці 4 залишається рівним нулю.









10

 10

 









 20











 20



 5

 25

 10

 10











0








2. Тепер серед елементів, що залишилися, мінімальна вартість відповідає X23. Отримуємо X23=10. Викреслюємо 3-й стовпець.









 10

 10

 





 10 



 20

 10









 20



5

 25

 10

 10









 

0







3. Далі найменша вартість відповідає X31 і X34. Виберемо X34. І отримаємо X34=0. Викреслюємо 4-й стовпець.









 10

 10

 





 10



 20

 10







0

 20

 20

5

 25

 10

 10









 

 0











 







4. Серед змінних, що залишилися, найменша вартість відповідає X31. Викреслюємо 1-й стовпець.









 10

 10

 





 10



 20

 10

5





 0

 20

 20

 15

5

 25

 10

 10





 



 

 0











 







5. Далі викреслюємо 2-й рядок, оскільки найменша вартість відповідає X22.









 10

 10

 



 10

 10



 20

 10

 

 5





 0

 20

 20

 15

5

 25

 10

 10





 

 15

 

0











 







6. X32=15. Оскільки залишається тільки один стовпець і лише один рядок, процес закінчується.









 10

 10

 



 10

 10



 20

 10

 

5

 15



 0

 20

 20

 15

 0

+5

 25

 10

 10

 

 15

 

0



 



 



В результаті отримано наступне базисне рішення:









 10

 10



 10

 10



 20

5

 15



 0

 20

 5

 25

 10

 10





Базисні змінні приймають значення: X14=10, X22=10, X23=10, X31=5, X32=15, X34=0. Решта змінних – небазисні. Сумарні транспортні витрати, відповідні цьому рішенню, рівні 10 * 0 + 10 * 4 + 10 * 1 + 5 * 2 + 15 * 6 + 0 * 2 = 150 од. вартості. Якщо вирішити задачу з використанням методу північно-західного кута, то можна побачити, що отриманий результат цим методом гірше за результат, отриманий при рішенні задачі з використанням методу найменшої вартості в розглянутому прикладі.




1.5 Опис програмного забезпечення



1.5.1 Вибір інструментів розробки

У даному проекті ми використовуватимемо середовище розробки Borland Delphi 7. Ця мова програмування на сьгодняшній час вже декілька застаріла, але для програмування застосувань, що працюють з MS Access вона дуже зручна. Borland Delphi 7 – розвинена об'єктно-орієнтована мова, що дозволяє розробляти скільки завгодно складні і, в той же час, ефективно працюючі системи. До того ж у розробника найбільший досвід програмування саме на цих "старих" мовах програмування.



1.5.1 Форми та модулі програми

Структура розроблюємого програмного забезпечення наведена на рис. 1.7.

Програмна частина дипломного проекту складається з 7-и форм, 1 модуль коду і 3-и модулів класу. Форми використовуються для введення даних користувачем. Модулі коду містять глобальні типи і змінні проекту, а також загальні процедури і функції. У модулях класів реалізовані програмні об'єкти, які використовуються при обробці подій форм.





Рисунок 1.7 – Структура Delphi-проекта


1.5.2 Опис модулів і класів системи

Модули форм містять процедури обробки таких подій:

Form_Load – завантаження форми;

Form_Resize – зміна розмірів форми;

Form_Unload – вивантаження форми;

Form_KeyPress – обробка клавіатури на полях редагування;

Form_KeyDown - обробка клавіатури на полях редагування;

sst_Click – обработка щиглика миші на вкладках;

lvwGroup_GotFocus – фокус на переліку;

lvwGroup_LostFocus – перелік втратив фокус;

lvwGroup_ItemClick – щиглика миші на переліку;

lvwGroup_KeyDown – клавіатура на переліку;

txtGroup_GotFocus – поле редагування отримує фокус;

txtGroup_LostFocus– поле редагування втрачає фокус;

txtGroup_KeyDown– клавіатура на поле редагування.

При обробці ціх подій викликаються відповідні методи класів.

Модулі коду містять наступні глобальні процедури і функції:

MsgErr() – повідомлення про помилку;

CenterForm(frm) – центрирвання форми;

SetColumnsWidth(lvw) – установка ширини стовпчиків переліку;

CheckNullDate(vDate) sFormat – перевірка дати;

IdToKey(nId) sKey – перведення числового ключа таблиці БД у текстовий ключ колекції;

KeyToId(sKey) nId – зворотне переведення;

NotChanged(vCurr(), vPrev()) bNotChange – перевірка змін у запису БД;

EmptyFields(txt()) bEmpty – перевірка пустого текстового поля;

SetInitials(sSurn, sName, sPatr) sInitName – установка початкового значення;

SetFieldFocus(ctrl, shp, fra, oList) – установка фокуса на поле;

SetCtrlFocus(ctrl, shp, fra) – установка фокуса на поле редагування;

ListGotFocus(lvw, shp, fra, oList) – обробка фокуса на вкладці;

ListItemClick(lvw, itm, oList) - обробка щиглика на переліку;

ListKeyDown(lvw, KeyCode, oList) – обробка клавіатури на перліку;

CtrlKeyDown(ctrl, lvw, KeyCode, oList, xlvw, ylvw) – обробка клавіатури на поле редагування;

lvwLinkKeyDown(lvwLink, lvw, KeyCode, oList, oListLink, xlvw, ylvw) – обробка клавіатури на списку зв’язку.

Основні класи системи:

clsDB – клас База Даних;

clsDBTable – клас Таблиця Бази даних;

clsList – клас Список;

clsLinkList – клас Список Зв’язку.

Методи класа База даних:

Init(sDBFile) – ініцализація (відкриття БД);

Term – завершення (закриття БД);

GetData(sQuery) rs – отримання данни за SQL-запитом;

PutData(sQuery) – зміна даних в БД за SQL-запитом;

FieldType(sTable, sField) nType – визначення типа поля БД.

Методи класа Таблиця Бази даних:

Init(oDB, sTable, sFieldList) – ініцализація об’єкта Таблиця;

GetRecord(nId) vField – отримання запису за ключем;

GetRecordOn(sQuery) vRecord – отримання запису за запитом;

UpdateRecord(nId, vField()) – зміна запису;

InsertRecord(vField()) nId – додавання запису;

DeleteRecord(nId) – видалення запису;

GetList(sWhere="") vRecordField – заповнення списку таблицею;

GetListOn(sQuery) vRecordField – заповнення списку за запитом.

Методи класа Список:

Init(lvw,ctr(),chk,oDB,sTable,sFieldList,sWhere="") – заповнення списку;

GetRecord – отримання поточного запису;

PutRecord – занесення поточного запису у БД;

UpdateRecord – оновлення поточного запису у БД;

InsertRecord – додавання поточного запису у БД;

DeleteRecord – видалення поточного запису;

NewRecord – новий запис;

EditRecord – перехід у режим редагування.

Методи класа Список З’вязку:

Init(lvw, oDB, sLinkTable, sMainId, sLinkId, sSourceTable, sSourceField) – ініцализація об’єкта;

GetList(nMainId) – отримання списка за ключем.



1.5.3 Схема обробки дій користувача

Всі вкладки форм програми мають однакове призначення – виборку і вивід даних з відповідних таблиць БД. Тому вони мають однакову структуру і практично однаковий набір елементів.

Розглянемо форму frmMain.frm – головну форму програми.

До глобальних перемінніх рівня модуля: відносяться тексти запитів БД - gSQLCmd, стан форми - gFormState.

Перемінна стану форми gFormState може приймати одне з трьох значень:

stateView – перегляд;

stateEdit – редагування;

stateAdd – додавання запису.

При завантаженні форми в список завантажуються назви всіх посад. Перемінна стану форми встановлюється в значення Перегляд. При переміщенні курсора за списком в полях форми відображаються всі поля запису. Користувач, натиснувши на кнопку на панелі інструментів головної форми, може виконати одну з відповідних дій:

видалення запису;

перехід в режим редагування;

перехід в режим додавання.

При видаленні запису програма вимагає підтвердження видалення. Якщо користувач підтверджує видалення, виконується SQL – запит видалення вказаного запису в БД, запис також віддаляється із списку і курсор переходить на наступний запис.

При переході в режим редагування перемінна стану форми встановлюється в значення Редагування. При переході в режим додавання перемінна стану встановлюється в значення Додавання, а поля форми очищаються.

Після введення або зміни даних користувач може натиснути на одну з кнопок на панелі інструментів (OK або Відміна) і тим самим занести нові дані в базу даних або відмінити всі зміни на формі. У разі додавання або зміни виконується відповідний SQL - запит (INSERT або UPDATE) і зміни відображаються в списку. У будь-якому випадку курсор повертається на список і стан форми встановлюється в значення Перегляд.

Далі форма чекає подальших дій користувача – натиснення відповідної кнопки на панелі інструментів.

Оброблювані події форми frmMain.frm:

Form_Load – завантаження форми. Завантажується список рахунків за фільтрами, ініціалізуються перемінні;

InitData – ініціалізація перемінних форми. Викликається при завантаженні форми;

FillItem – заповнення полів форми даними з БД. Викликається при завантаженні форми і при переміщенні курсора в списку;

ClearItem – очищення полий форми для додавання нового запису. Викликається при переході в режим додавання запису;

BeginAddEdit – перехід форми в режим додавання або редагування;

DeleteItem – видалення запису;

CompleteEdit – завершення редагування. Залежно від стану форми виконується метод UpdateItem або AddItem;

CancelEdit – відміна редагування;

AddItem – додавання нового запису. Виконується SQL – запит вставки запису (INSERT) із значеннями полий, введеними в полях форми. Додається рядок в списку рахунків, цей рядок стає поточним, форма переходить в режим перегляду;

UpdateItem – зміна запису. Виконується SQL – запит оновлення запису (UPDATE) із значеннями полий, введеними в полях форми. Змінюється рядок в списку рахунків, цей рядок стає поточним, форма переходить в режим перегляду;

EnableItem – перехід форми в режим додавання або редагування;

doUpdate – перехід форми в режим перегляду;

doInsert – додавання рядка даних;

doDelete – видалення рядка даних;

doSearchColumn – пошук у стовпчику;

doSearchMore - пошук далі;

doSortColumn – сортування за даними стовпчика;

doSortQuery – сортування за запитом;

datValidate – перевірка даних;

datError – повідомлення про помилку;

grdDblClick – обробка стовпчика таблиці;

grdHeadClick – обробка заголовка таблиці;

Структура модулів інших дочірніх форм аналогічна структурі описаної вище форми frmAcnts.frm.

Робота зі всіма формами здійснюється однаково – обробники подій форми визивають параметризовані функції роботи з БД та настроювання таблиць форми. Такий уніфікований підхід дозволяє користувачеві швидко звикнути до програми, а програмістові – мінімізувати кількість помилок і тому швидко розробити програму.




2. Технологічний розділ



2.1 Керівництво користувача



2.1.1 Введення

Програма управління замовленнями у малому бізнесі "Сметы" призначена для автоматизації ведення даних про замовлення на ремонтні роботи. Програма має простій і зручний інтерфейс, інтуїтивно зрозумілий користувачеві. Програма дозволяє значно скоротити терміни виконання операцій пошуку та вводу потрібних даних.



2.1.2 Головна форма

Після запуску програми користувачем буде завантажена головна форма програми. Головна форма складається з таких частин:

головне меню;

панель інструментів;

список замовлень;

форма вводу нових замовлень.





Рисунок 2.1 – Головна форма програми



2.1.2.1 Список замовлень

При запуску додатка з бази даних автоматично загружаються всі замовлення і відображаються в таблиці. Таблиця складається з наступних семи полів:

"Заказ" – найменування замовника;

"№" – порядковий номер замовлення;

"Дата" – дата замовлення;

"% инж.расх." – відсоток інженерних робіт;

"Услуги" – кошторис за послуги;

"Материалы" – кошторис за матеріали;

"Примечания" – примітка до замовлення.

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

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



2.1.2.2 Форма вводу нових замовлень

	Для введення нового замовлення необхідно скористатися формою, розташованої праворуч від списку замовлень. Ця форма приведена на рис. 2.2.

	

	

Рисунок 2.2 – Форма для вводу нового замовлення




Для введення нового замовлення необхідно на панелі інструментів натиснути кнопку "Создание новой строки списка". Потім в очищені поля форми вводу увести всі необхідні дані про замовлення.



2.1.2.2 Панель інструментів

Панель інструментів служить для швидкого доступу до основних функцій програми. Панель інструментів зображена на рис. 2.3.





Рисунок 2.3 – Панель інструментів



Ця панель складається з таких кнопок як:

"Закрытие формы" - за допомогою цієї кнопки можна закрити програму;

"Создание новой строки списка" - ця кнопка створює нову строку списка. Це може бути нове замовлення, послуга, матеріал, тощо;

"Удаление текущей строки списка" - видаляє поточний рядок в таблиці (замовлення, послуга, матеріал, тощо);

"Сохранение текущих данных" - зберігає введенні дані в базу даних;

"Отмена изменений" - скасовує введені зміни.



2.1.3 Головне меню

Головне меню є системою навігації для роботи з даною програмою (див рис. 2.4).





Рисунок 2.4 – Головне меню програми



Меню "Данные" містить наступні пункти:

"Сметы" – відкриває форму кошторисів даного замовлення;

"Печать" – відкриває форму печатки кошторисів даного замовлення;

"Справочники" – відкриває форму довідників;

"Війти" – здійснює вихід із програмы.

Меню "?" - містить пункт меню інформації про програму.



2.1.4 Меню "Данные"

Меню "Данные" наведено на рис. 2.5.





Рисунок 2.5 – Меню "Данные"



2.1.4.1 Пункт меню "Сметы"

При виборі цього пункту на екрані з'явиться форма, зображена на рис 2.6.





Рисунок 2.6 – Вкладка "Услуги" форми "Сметы"


За замовчуванням форма відкривається на вкладці "Услуги", у якій розташований список послуг і розміщена форма введення нової послуги. В цій вкладці можна додавати нові послуги, відаляти поточні, зберігати або скасовувати зміни.

Форма "Сметы" складається з наступних полів:

"Наименование" – найменування послуги, що входить у замовлення;

"Кол-во" – кількісне значення наданої послуги;

"Ед.изм." – одиниця виміру, наданої послуги;

"Цена" – ціна однієї одиниці виміру, наданої послуги;

"Стоимость" – загальна вартість наданої послуги.

Якщо перейти на вкладку "Материалы", то на єкрані з'явиться форма, зображена на рис. 2.7.





Рисунок 2.7 – Вкладка "Материалы" форми "Сметы"



Через дану форму також можна здійснювати додавання і видалення матеріалів, необхідних для виконання ремонтних робіт. Також можна зберігати чи скасовувати зміни.

Форма "Материалы" складається з наступних полів:

"Наименование" – найменування материалів, що входить у замовлення;

"Кол-во" – кількісне значення необхідного матеріалу;

"Ед.изм." – одиниця виміру необхідного матеріалу;

"Цена" – ціна однієї одиниці виміру необхідного матеріалу;

"Стоимость" – загальна вартість необхідного матеріалу.



2.1.4.2 Пункт меню "Печать"

Даний пункт меню призначений для висновку на печатку поточного замовлення. Для цього необхідно в списку замовлень виділити необхідний вам замовлення, за допомогою чи клавіатури миші й у меню "Данные" вибрати пункт "Печать". Після цього на екрані з'явиться форма для печатки документа, зображена на рис. 2.8.





Рисунок 2.8 – Форма печатки кошторису



Ця форма складається з двох частин:

панелі інструментів;

тіла документу, готового до друку.

Панель інструментів наглядно зображена на рис. 2.9.





Рисунок 2.9 – Панель інструментів форми друку документів



В свою чергу панель інструментів форми друку документів розділяється на такі группи:

кнопки управління масштабом;

кнопки навігації по документу;

кнопки друку;

кнопки зберігання та відкриття документу;

кнопка закриття форми для друку.

Кнопки управління масштабом можуть виставити масштаб так, шоб сторінка вміщувалася на екрані цілком, можуть на 10 відсотків, або по ширині сторінці.

Кнопки навігації по документу дозволяють:

перейти на першу сторінку;

перейти на попередню сторінку;

перейти на наступну сторінку;

перейти на останню сторінку.

Кнопки друку необхідні для:

миттєвого друку всього документа;

друку документу з попередніми настроюваннями принтера.

Кнопки зберігання та відкриття документу дозволяють:

зберегти даний документ на жорсткий диск;

загрузити з диска назад в програму.

Кнопка закриття форми для друку закріває форму для друку.



2.1.4.3 Пункт меню "Справочники"

При виборі даного пункту меню на екрані з'явиться форма довідників програми, зображена на рис. 2.10.





Рисунок 2.10 – Довідник послуги


За замовчуванням відкривається довідник "Услуги" в вкладці "Услуги". У даній вкладці ми можемо додавати послуги, яки недавно з'явилися. Наприклад, якщо фірма при своєму розвиток починає робити усе більше і більше послуг. Також можна редагувати поточні послуги у випадку якщо ціни на неї виросли. Чи ми можемо видалити неактуальні послуги, які ніколи не були використані і ніколи не будуть, чи можливо послуги, помилково заведені.

Довідник "Услуги" складається з наступних полів:

"Наименование" – найменування послуги;

"Ед.изм." – одиниця виміру послуги;

"Цена" – ціна однієї одиниці виміру послуги.

Якщо перейти на вкладку матеріали, то форма прийме вигляд, зображений на рис. 2.11.





Рисунок 2.11 – Довідник матеріали



Робота з довідником матеріали аналогічна роботі із довідником послуги.

Довідник "Материалы" складається з наступних полів:

"Наименование" – найменування материала;

"Ед.изм." – одиниця виміру матеріалу;

"Цена" – ціна однієї одиниці виміру матеріалу.




2.1.4.4 Пункт меню "Вихід"

При виборі цього пункту відбувається вихід із програми.



2.1.5 Меню "?"

Меню "?" містить в собі единий пункт "О программе".

Натиснувши на цей пункт меню, користувач отримає короткий опис про назву, версію програми, та особи, якій належить авторське право користування цією програмою.



2.2 Обробка помилок



Якщо в фомі ввести невізні дані, то програма попередить нас про це.

Наприклад, в довіднику послуг в числовому полі "Цена" ввести не число "20", а слово "двадцать" як показано на рис. 2.12, то програма повідомить користувача про те, що він помилився і відобразить на екрані повідомлення, зображене на рис. 2.13





Рисунок 2.12 – Навмиста помилка користувача при редагуванні довідника послуг






Рисунок 2.13 – Повідомлення про помилку користувача при редагуванні довідника послуг




3. Техніко-економічний розділ



3.1 Загальні положення



В результаті застосування нового ПС користувач може понести значні капітальні витрати на придбання і освоєння ПС, доукомплектованія ЕОМ новими технічними засобами і поповнення оборотних коштів. Проте, якщо придбане ПС буде достатньою мірою ефективніший базового, то додаткові капітальні витрати швидко окупляться. Ефект може бути досягнутий за рахунок скорочення об'єму ПС (зменшення кількості машинних команд, кількості рядків і так далі), зниження трудомісткості підготовки даних, обробки інформації, аналізу результатів, зменшення витрат машинного часу і матеріалів.

Для визначення економічного ефекту від використання нового ПС у споживача необхідно порівняти витрати по всіх основних статтях кошторису витрат на експлуатацію нового ПС (витрати на заробітну плату з нарахуваннями, матеріали, машинний час) з витратами по відповідних статтях базового варіанту. При порівнянні базового і нового варіантів як економічний ефект виступатиме загальна економія всіх видів ресурсів щодо базового варіанту. При цьому створення нового ПС виявиться економічно доцільним лише в тому випадку, якщо всі капітальні витрати окупляться за рахунок отримуваної економії в найближчих 1-2 року.

Абсолютна величина економічного ефекту без співставлення з витратами на його отримання не дозволяє однозначно оцінити, наскільки вдалим виявився відповідний іноваційний проект. Таку оцінку дають показники економічної ефективності (прибутковості) проекту.

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

Зміст техніко-економічного обгрунтування розробки програмного продукту полягає в наступному:

розрахунок трудомісткості та тривалості розробки;

визначення величини капітальних витрат розробника та максимальної ціни продажу програмного продукту;

розрахунок поточних витрат реалізації та мінімальної ціни продажу;

розрахунок річної економії споживача програмного продукту та остаточне встановлення ціни продажу програмного продукту;

визначення показників економічної ефективності проекту.

В даному проекті розроблено програмний продукт, що має наступні переваги перед аналогами:

зменшується час рішення одної задачі в середньому з 10 до 3 год/од.



3.2 Вихідні дані для розрахунку



Вихідні дані для розрахунку економічної ефективності проекту наведено в таблиці 3.1.



Таблиця 3.1 – Вихідні дані для розрахунку ефективності

Позначення

Найменування показника

Значення

Вм

Вартість ПЕОМ, грн

6000

Тсл

Плановий строк служби ПЕОМ, років

4

Nп

Кількість розроблюваних проектів, од./рік

4

Зо

Посадовий оклад інженера-програміста, грн/міс

1700

Кд

Коефіціент додаткової заробітної плати

0,3

Кс

Коефіціент відрахувань до страхових фондів

0,369

Кн

Коефіціент накладних витрат організації

0,4

Рн

Норматив рентабельності організації-розробника

0,35

Ппдв

Ставка податку на додану вартість, %

20

Пп

Потенційна ємність ринку для нової програми, од.

100

На

Норма амортизації, %

25

Вт

Витрати на тиражування програми, грн/од.

25

Ка

Коефіціент витрат на адаптацію програми, грн/од.

0,08

П1

Плановий обсяг продажу програми в 1-му році, од.

9

П2

Плановий обсяг продажу в 2-му році, од.

5

П3

Плановий обсяг продажу в 3-му році, од.

15

Пс

Середній плановий річний обсяг продажу, од.

25

Цб

Ціна продажу базової програми-аналога, грн

5000

Nз

Кількість задач, що вирішуються протягом року, од.

200

tзб

Витрати машинного часу на вирішення задачі базовою програмою, годин/од.

4

tзн

Витрати машинного часу на вирішення задачі новою програмою, годин/од.

2

Ен

Нормативний коефіціент ефективності

0,2

Де

Доля ефекту споживача – добавка до ціни

0,25

Тпр

Термін реалізації проекту, років

3



3.3 Визначення трудомісткості та тривалості розробки програми



Серед чинників, що визначають величину витрат на розробку програмного додатку, одним з основних є тривалість розробки. Її можна визначити за формулою:



 (3.1)



де Т – суммарні трудовитрати;

Nр – кількість виконавців.

Загальна трудомісткість розробки складається з трудомісткості виконання окремих етапів роботи: вивчення предметної області та формулювання постановки задачі, складання алгоритму й схеми рішення задачі, розробка й налагодження програми, підготовка документації.

Трудозатрати по окремих етапах всіх видів визначені за допомогою експертої оцінки. Розрахунок трудозатрат зведено до таблиці 3.2.


Таблиця 3.2 - Розрахунок трудових затрат

Етапи робіт

Позначення

Трудо-витрати

(чол-дн)

Вивчення предметної області та формулювання постановки задачі

Тпз

20

Розробка алгоритму рішення задачі

Та

20

Складання схеми програми

Тс

10

Розробка програми

Тп

40

Налагодження програми

Те

20

Оформлення документації

Тд

10

РАЗОМ



120



Розробку програми виконує один інженер-програміст. Отже, тривалість розробки складає 120 робочих днів. З урахуванням середньої кількості робочих днів у місяці ( 22 дні ) тривалість розробки складе:



Тр = 50 / 22 = 5,45 (міс)



3.4 Розрахунок витрат на розробку програми



Розрахунок витрат на розробку програмного продукту, тобто суми капітальних витрат, оформлюється документом – кошторис витрат по формі таблиці 3.3.



Таблиця 3.3 – Кошторис витрат на проектування

Найменування статей витрат

Сума, грн.

Обгрунтування

Спеціальне обладнання

513,75

з розрахунку

Розходні матеріали

154,13

30% ст.1

Зарплата проектувальників

12054,55

з розрахунку

Відрахування до фондів соціального страхування

4448,12

36.9% ст.3

Усього прямих витрат

17179,67

ст.1 + ст.2 + ст.3 + ст.3

Накладні витрати

6868,22

40% ст.5

Усього, кошторисна вартість проекту

24037,89

ст.5 + ст.6




Витрати, пов’язані з придбанням ПЕОМ (спеціальне обладнання) можна розрахувати за формулою:



Sоб = Вм+Sтм+Sпз+Sд+Sпл,	 (3.2)



де

Вм – прейскурантна вартість ПЕОМ;

Sтм – витрати на транспортування, монтаж та налаштування ПЕОМ;

Sпз – вартість загальносистемного програмного забезпечення;

Sд – вартість допоміжного офісного обладнання;

Sпл – вартість додаткової виробничої площі для встановлення ПЕОМ.

З урахуванням вихідних даних та прийнятих розрахункових коефіціентах



Sтм = 0,02 · Вм ; Sтм = 0,02 · 6000 = 120 (грн);

Sпз = 0,2 · Вм ; Sпз = 0,2 · 6000 = 1200 (грн) ;

Sд = 0,15 · Вм ; Sд = 0,15 · 6000 = 900 (грн) .



Потреби в додатковій виробничій площі немає. Таким чином, загальна сума витрат на спеціальне обладнання становить:



Sоб = 6000 + 120 + 1200 + 900 = 8220 (грн)



З урахуванням кількості розроблюваних проектів та прийнятого строку служби ПЕОМ (Тсл=4роки) вартість спеціального обладнання, що включається до кошторису витрат складе:










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



Sрм = 0,3· sоб ; 	 (3.4)

Sрм = 0,3 · 513,75 = 154,13 (грн) ;



Заробітна плата працівників визначається, виходячи з кількості виконавців, діючих посадових окладів та кількості місяців участі виконавців у розробці проекту, за формулою:



Sз = Зо · (1+Кд) · Тр , (3.5)



де Зо – місячний посадовий оклад виконавця;

Кд – коефіціент урахування додаткової заробітної плати (щорічна тарифна відпустка, доплати та премії);

Тр – тривалість розробки, міс.

Таким чином, витрати по заробітній платі інженера-програміста складуть:



Sз = 1700 · (1+ 0,3) ·5,45 = 12054,54 (грн)



Відрахування до фондів соціального страхування – це фактично податок на фонд заробітної плати, що сплачується до Пенсійного фонду, фонду зайнятості та фондів страхування від загальних та професійних захворювань та виробничого травматизму. Нормативи цих відрахувань встановлюються централізовано на державному рівні.

Отже, сума відрахувань до фондів соціального страхування складе:



Sc = Sз · Кс ; (3.6)

Sс = 12054,54· 0,369 = 4448,12 (грн)



Загальна сума прямих витрат становить:



Sпр = Sоб + Sрм + Sз + Sс; (3.7)

Sпр = 513,75 + 154,13 + 12054,54 + 4448,12 = 24038,77 (грн)



Накладні витрати враховують загальногосподарчі витрати по забезпеченню проведення роботи: витрати на опалення, електроенергію, амортизацію або аренду приміщень, зарплату адміністративного персоналу та інше. Вони визначаються в процентах від суми прямих витрат по даному проекту:



Sн = Кн · Sпр ; (3.8)

Sн = 0,4 · 24038,77 = 9615,50 (грн)



Загальна кошторисна вартість проекту – сума прямих і накладних витрат представляє собою суму капітальних вкладень (або інвестицій) в новий проект:



К = Sпр + Sн ; (3.9)

К = 24038,77 + 9615,50 = 33654,27 (грн)




При продажу розробленої програми в одному екземплярі відпускна ціна формується з урахуванням нормативного рівня рентабельності продукції, що задає мінімально допустиме значення прибутку підприємства.

Таким чином:



Пн = Рн · К ; (3.10)

Цв = К + Пн ; (3.11)



де Пн – нормативний прибуток;

Рн – нормативна рентабельність продукції;

Цв – максимальна відпускна ціна програмного продукту.



Пн = 0,35 · 24038,77 = 8413,57 (грн)

Цв = 24038,77 + 8413,57 = 32452,34(грн)



Максимально можлива ціна продажу програмного продукту з урахуванням податку на додану вартість (ПДВ):



Цmax = (1+Ппдв/100) · Цв (3.12)

Цmax = 1,2 · 32452,34 = 38924,80 (грн)



3.5 Розрахунок поточних витрат реалізації та мінімальної ціни продажу програми



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

При розрахунку ціни реалізації треба врахувати постійні витрати, що не залежать від обсягу продажу (амортизація капітальних вкладень та реклама продукції), та змінні витрати, пропорційні обсягу продажу, – витрати на тиражування й адаптацію програмного продукту до вимог конкретних споживачів, представницькі витрати. При розрахунку минимального значення ціни продажу програмного продукту витрати на рекламу та представницькі розходи не враховуємо.

Річна сума амортизаційних відрахувань обчислюється за нормою амортизації від загальної суми капітальних вкладень:







Витрати на тиражування включають вартість машинних носіїв інформації та витрати на розмноження програмної документації і для одного акту продажу становлять Вт=25 грн/од.

Витрати на адаптацію програмного продукту до вимог споживачів – це витрати на вдосконалювання програмного продукту. За експертними оцінками вони можуть сягати до 40% від витрат на розробку програмного продукту. Залежно від особливостей програмного продукту ці витрати можуть бути відсутні.

При збільшенні обсягів продажу зменшується різноманітность додаткових вимог споживачів і величина витрат на адаптацію програми. Враховуючи ступінь уніфікації розробленої програми встановимо середній рівень адаптаційних витрат на рівні 5%.


Витрати на адаптацію програмного продукту можна визначити так:



Ва = Ка · (Sз + Sс) · (1 + Кн), (3.14)



де Ка – коефіціент витрат з адаптації програми;

Sз – витрати по заробітній платі при розробці проекту;

Sс – відповідні відрахування до страхових фондів;

Кн – коефіціент накладних витрат організації-розробника.



Ва = 0,08 · (12054,55+4448,12) · (1+0,4) = 1848,29 (грн/од)



Загальна сума змінних витрат складе:



Вз = Вт + Ва ; (3.15)

Вз = 25,00 + 1848,29 = 1873,29 (грн/од)



Мінімальна відпускна ціна програмного продукту з урахуванням отримання нормативного прибутку розраховується за формулою:



Цвmin = (Ав/П + Вт + Ва) · (1 + Рн),(3.16)



де Ав – річна сума постійних витрат (сума амортизації);

П – річний обсяг продажу;

Вт – витрати на тиражування;

Ва – витрати на адаптацію програмного продукту;

Рн – нормативна рентабельність продукції.

При середньому річному обсязі продажу Пс=15од. мінімальна відпускна ціна складе:




Цвmin = (6009.70/15 + 25 + 1848,30) · 1,4 = 3183,52 (грн)



Мінімальна ціна продажу програмного продукту з урахуванням податку на додану вартість (ПДВ):



Цмін = (1+Ппдв/100) · Цвмін ; (3.17)



де Ппдв – ставка податку на додану вартість;



Цмін = 1,2 · 3183,52 = 3820,22 (грн.),

Ціна продажу програмного продукту перебуває в таких межах:

Цmin <= Цпп <= Цmax.

3820,22 грн <= Цпп <=38924,80 грн



Для визначення обсягу продажу, що забезпечує рентабельну діяльність, побудуємо графік досягнення беззбитковості – схему, що показує вплив на прибуток обсягів реалізації програмного продукту, ціни, постійних і змінних витрат (рис.3.1). За допомогою цього графіка можна знайти так звану точку беззбитковості. Точка беззбитковості показує кількість програмного продукту, який необхідно продати, щоб загальний виторг від реалізації (без ПДВ) рівнявся загальним витратам. Очевидно, що при цьому обсязі продажів буде, нарешті, досягнута беззбитковість виробництва й подальше збільшення обсягу реалізації приведе до появи прибутку.






Рисунок 3.1 – Графік досягнення беззбитковості



Таким чином, навіть при мінімальній відпускній ціні програми річний продаж 6 одиниць програмного продукту вже приносить певний прибуток.

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

У нашому випадку кількість потенційних споживачів невелике й розміщати рекламу в засобах масової інформації економічно недоцільно. Прийнято рішення про розміщення рекламної інформації на основних тематичних форумах і порталах в мережі Internet. При цьому річні витрати на розміщення реклами в глобальній мережі складуть:



Зри = Зпр + М · Зпм, (3.18)



де Зпр – витрати на первинне розміщення реклами;

Зпм – плата за щомісячну підтримку рекламних повідмлень;

М – кількість місяців підтримки.




Зри = 500 + 4 · 100 = 900 (грн/рік)



Крім цього, планується організувати пряму адресну рекламу для потенційних споживачів програмного продукту. Ємність ринку збуту – 100 споживачів. Витрати на виготовлення індивідуальних рекламних матеріалів та їх доставку складуть 45 грн/од. Планується на протязі трьох років реалізації проекту охватити адресною рекламою по 30 споживачів на рік, що складе Зра=45·30=1350 грн/рік.

Таким чином загальні щорічні витрати на рекламу становлять:



Зр = Зри +Зра; 	 (3.19)

Зр = 900 + 1350 = 2150 (грн/рік)



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



3.6 Економія у споживача програмного продукту



Користувач запропонованої програми отримує економічний ефект за рахунок скорочення часу вирішення задач в порівнянні з використанням базового варіанту програми. Проведемо розрахунки, вважаючи, що ціна нової програми співпадає з ціною базової Цн = Цб = 5000 грн.

Річний економічний ефект можна розрахувати як різницю приведених витрат при використанні базової та нової програми:



Ер = Впрб – Впрн (3.20)




Приведені витрати визначаються за формулою:



Впр = Спр + Ен · Кпр, (3.21)



де Спр – приведені річні експлуатаційні витрати, пов’язані з вирішенням задач;

Кпр – сума приведених капітальних вкладень;

Ен – нормативний коефіціент економічної ефективності.

Для базового варіанту загальну суму капітальних вкладень визначається витратами на придбання ПЕОМ. В такому разі у відповідності з розрахунками пункта 3.4 Кб = Sоб = 8220 грн.

Для нового варіанта загальна сума капіталовкладень додатково включає ціну придбання нової програми : Кн = Sоб + Цн = 8220+2000 = 10220 грн.

Величина приведених капіталовкладень в розрахунку приведених витрат визначається з урахуванням долі часу вирішення задач, що розглядаються, в річному корисному фонді часу роботи ПЕОМ:







де Ткор – річний корисний фонд часу роботи ПЕОМ;

Тм – машинний час вирішення даних задач протягом року.

Річний корисний фонд часу роботи ПЕОМ розраховується за формулою:



Ткор = Тзаг · Тз · Nз · (1 – Пп/100), (3.23)




де Тзаг – загальний річний фонд часу роботи ПЕОМ (робочих днів);

Тз – тривалість робочої зміни;

Nз – кількість робочих змін на день;

Пп – процент планових простоїв ПЕОМ.

При 5-денному робочому тижні та роботі в одну зміну отримаємо:



Ткор = 250 · 8 · 1 · (1 – 5/100) = 1900 годин/рік



Машинний час за рік для вирішення задач з використанням базової та нової програми:



Тм = Nз · tз, (3.24)



де Nз – кількість задач, що вирішуються за рік;

tз – машинний час вирішення одної задачі.

Отже, для базового і нового варіантів маємо:



Тмб = 200 · 4 = 800 (год/рік) ; Тмн = 200 · 2 = 400 год/рік.



Відповідне значення приведених капітальних вкладень:



Кпрб = (400/1900) · 8220 = 3461,05 (грн) ;

Кпрн = (200/1900) · 12220 = 2572,63 (грн).



Аналогічним чином визначаються приведені річні експлуатаційні витрати при використанні ПЕОМ з урахуванням долі використання корисного машинного часу:



Спр = С · Тм/Ткор , (3.25)


де С – загальна річна сума експлуатаційних витрат.



С = Ав + Sз + Sм + Sр ,



де Ав – амортизаційні відрахування;

Sз – витрати по заробітній платі спеціаліста;

Sм – вартість спожитої електроенергії та розходних матеріалов;

Sр – річні витрати на ремонт ПЕОМ.

Сума амортизаційних відрахувань визначається за нормою амортизації:



Ав = К · На/100 ;	 (3.26)

Авб = 8220 · 25/100 = 2055,00 (грн) ;

Авн = 12220 · 25/100 = 3055,00 (грн).



Річні витрати по заробітній платі користувача ПЕОМ розрахуємо в припущенні, що умови оплати праці у споживачів і розробників програмного продукту тотожні, за формулою:



Sз = 12 · Зо · (1+Кд) · (1+Кс) , (3.27)



де Зо – посадовий оклад спеціаліста;

Кд – коефіціент, що враховує додаткову заробітну плату;

Кс – коефіціент відрахувань до фондів соціального страхування.



Sз = 12 · 1700 · (1 + 0,3) · (1 + 0,369) = 36305,88 (грн).



Вартість спожитої електроенергії, розходних матеріалів та річні витрати на ремонт ПЕОМ розрахуємо за укрупненимим нормативами в відсотках від вартості ПЕОМ:


Sм = 0,03 · Вм ; (3.28)

Sм = 0,03 · 6000 = 180 (грн);

Sр = 0,08 · Вм ; (3.29)

Sм = 0,08 · 6000 = 480 (грн).



Загальна сума річних витрат з експлуатації ПЕОМ:



Сб = 2055,00 + 36305,88 + 180 + 480 = 39020,88 (грн);

Сн = 3055,00 + 36305,88 + 180 + 480 = 40020,88 (грн).



Приведені експлуатаційні витрати:



Спрб = 39020,88 · 800/1900 = 16429,85 (грн);

Спрн = 40020,88 · 400/1900 = 8425,45 (грн).



Сумарні приведені витрати:



Впрб = 16429,85,03 + 0,2 · 3461,05 = 17122,05(грн)

Впрн = 8425,45 + 0,2 · 2572,63 = 8939,97 (грн).



Річний економічний ефект у споживача нової програми:



Ер = 17122,05 – 8939,97 = 8182,08 (грн)



З урахуванням річної економії споживача ціну продажу нової програми встановимо за наступним співвідношенням:



Ц = Цб + 0,25 · Ер ; (3.30)

Ц = 5000 + 0,25 · 8182,08 = 7045,02 (грн)


Остаточне значення ціни продажу нової програми встановимо на рівні Ц=6000 грн.



3.7 Розрахунок економічної ефективності проекту



Економічна ефективність інвестиційних проектів характерізується системою показників, що відображають співвідношення фінансових витрат і результатів. В умовах високого рівня інфляції, характерного для України, різночасові фінансові показники доцільно приводити к одному моменту часу (першому року реалізації проекту) шляхом дисконтування. Норма дисконту розраховується за формулою:



r = a + b + c ,(3.31)



де а – облікова ставка НБУ;

b – коефіціент врахування ризиків;

c – плановий рівень інфляції.



r = 0,12 + 0,04 + 0,14 = 0,3



Для розрахунку показників економічної ефективності потрібно скласти план грошових потоків (див. табл. 3.4).

Сума виторгу від продажу програмного продукту розраховується з урахуванням планового обсягу продажу та визначеною ціною продажу Ц=3000 грн.



Таблиця 3.4 – План грошових потоків

Показник

Значення, грн



0-й рік

1-й рік

2-й рік

3-й рік

Плановий обсяг продажу, од.



5

15

25

Виторг від продажу



30000

90000

150000

ПДВ (20%)



5000

15000

25000

Виторг від продажу без ПДВ



25000

75000

125000

Витрати на тиражування



125

375

625

Витрати на адаптацію



9241,50

27724,50

46207.50

Витрати на рекламу



2150

2150

2150

Амортизаційні відрахування



6009.69

6009.69

6009.69

Прибуток від реалізації



7373.81

38640.82

69907.82

Податок на прибуток (25%)



1843.45

9660.20

17476.96

Чистий прибуток



5530.35

28980.61

52430.87

Сума капітальних вкладень

24038.77







Грошовий потік

-24038.8

11540.05

34990.31

58440.56

Коефіціент дисконтування



1

0.769

0.592

Поточна дисконтована вартість

-24038.8

11540.05038

26915.63

34580.21

Чиста дисконтована вартість

-24038.8

-12498.71644

14416.91

48997.13



Сума грошового потока або поточна вартість визначається як різниця між фінансовим результатом поточного року Рt (чистий прибуток+амортизаційні відрахування) та поточними витратами Bt .

Поточна дисконтована вартість (ПДС) – це поточна вартість, приведена до начала першого року реалізації проекту за допомогою коефіціенту дисконтування КДt , тобто річний економічний ефект з урахуванням інфляції:



ПДСt = (Рt – Bt) · КДt ;	 (3.32)

КДt = 1/(1+r)t (3.33)



Чиста дисконтована вартість – це сума показників ПДС наростаючим підсумком з першого до поточного року реалізації проекту, тобто сума грошей (з урахуванням інфляції), отриманих по даний рік включно. Показник ЧДС за останній рік відображає всю суму грошей від реалізації проекту.

Індекс прибутковості – це відносний показник, що характерізує рівень доходів, отриманих на одну гривню інвестицій за весь строк реалізації проекту:








Середня рентабельність проекту – це аналогічний показник, що відображає середньорічний рівень ефективності проекту:



РП = ІП / Тпр , (3.35)



де Тпр – строк реалізації проекту.



РП = 3,36/ 3 = 1,12



Термін окупності інвестицій – це строк, за який капітальні вкладення погашаються кумулятивним доходом, тобто строк, за який отримані від проекту реальні (з урахуванням інфляції) гроші перекривають вложену суму інвестицій:







де t – останній рік, в якому чиста дисконтована вартість залишається від’ємною.

Якщо в останньому році реалізації проекту ЧДСТ < 0, то проект не окупається протягом своєї реалізації. Для даного проекту:






Основні техніко-економічні показники проекту зведені в таблицю 3.5 .



Таблиця 3.5 – Техніко-економічні показники проекту

Найменування показника

Значення

Разові витрати на обладнання, грн

8220

Доля вартості обладнання в кошторисі проекту, грн

513,75

Загальна сума капітальних вкладень, грн

24038,77

Постійні витрати екплуатації, грн :

- амортизаційні відрахування;

- витрати на рекламу



18028,27

2150,00

Змінні витрати експлуатації, грн/од :

- тиражування програми;

- адаптація програми



25,00

1648,30

Точка беззбитковості продажу, од/рік

6

Ціна базової програми-аналога, грн

5000,00

Річний економічний ефект у споживача, грн

8182,08

Встановлена ціна продажу програми, грн

6000,00

Термін реалізації проекту, років

3

Плановий обсяг продажу за 3 роки, од.

45

Чиста дисконтована вартість (при r = 30%), грн

48997.13

Індекс прибутковості

3,36

Середня рентабельність проекту

1,12

Термін окупності, років

1,47



Показник чистої приведеної вартості ЧПС >0 , індекс прибутковості проекту ІП > 1, це свідчить про те, що проект економічно ефективний, його розробка і впровадження є економічно доцільними. Інвестиції, вкладені в проект окупаються за 0,85 року, а кожна вкладена гривня щорічно приносить 2,06 грн .




3.8 Висновки



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

Розробка буде вестися впродовж 120 днів.

Сумарні витрати на виконання проекту складають 24039,77 грн.

Вартість виставленого на ринок ПЗ складає 6000 грн.

Сума прибутку від кожної установки ПЗ складає 1932.04 грн.




Висновки



В наш час навіть зовсім маленькі організації потребують використання комп'ютеризованих систем автоматизації, що дозволяють ефективно управляти виробничим процесом. У будь-якій організації, як великій, так і маленькій, виникає проблема такої організації управління даними, яка забезпечила б найбільш ефективну роботу.

У даному проекті розроблена автоматизована підсистема управління замовленнями у малому бізнесі для приватного підприємства. Розроблені база даних та програма дозволяють зручно та швидко формувати документи для обслуговання замовлень клієнтів. Функції підсистеми орієнтовані на конкретну організацію і задовольняють поставленим вимогам.

Основні характеристики розробленого автоматизованої підсистеми:

система дозволяє значно скоротити терміни виконання операцій обслуговання покупців;

програма значно зменшила кількість помилок при обслугованні клієнтів;

програма не вимагає від користувача ніяких специфічних знань з області комп'ютерів;

програма, розроблена в дипломному проекті, використовує СУБД MS Access і працює в операційній системі Windows XP, при її реалізації використовувалося візуальне середовище розробки Borland Delphi 7.

В результат виконаної роботи було автоматизовано деякі операціїї відділу ремонтних робіт. Стало можливим зниження навантаження на службовців, зайнятих в роботі по формуванню замовлень. Також завдяки зниженню навантаження на службовців в них з'явився час для обслуговування додаткових клієнтів. Значно зменшилася кількість помилок, що припускалися, при проведенні стандартних операцій оперативного обліку.

Даний продукт є засобом поліпшення економічної ефективності підприємства, оскільки його впровадження приведе до швидкої окупності витрат на розробку програмного продукту. Програмне забезпечення, розроблене в рамках даного проекту може буде дороблене і використоватися в інших відділах підприємства, а також впроваджено в подібні приватні підприємства.




Перелік посилань



Вильям Дж. Стивенсон. Управление производством / Пер. с англ.- М.: ООО "Издательство "Лаборатория базовых знаний", ЗАО "Издательство Бином", 1998. – 928 с.

Цыгичко В.Н. Руководителю – о принятии решений. – 2-е изд, испр. И доп. – М.: ИНФРАб 1996. – 272 с.

Системный анализ и структуры управления (Книга восьмая). Под общей редакцией проф. В.Г.Шорина. М.: Знание, 1975.-290с.

Гиг Дж., ван. Прикладная общая теория систем. Пер. с англ. – М.: Мир, 1981.- 336с.

Лямец В.И., Тевяшев А.Д. Системный анализ. Вводный курс.: Уч. Пособие. – Харьков: ХТУРЭ, 1998.-252 с.

Береза А. М. Основи створення інформаційних систем : [Навчальний посібник] / A. М. Береза. – Київ : Видавництво КНЕУ, 1998. – 205 с.

Курс экономической теории : [Учебное пособие / под общ. ред. М. Н. Чепурина]. – Киров, 1995. – 566с.

Системный анализ и структуры управления : [Под общей редакцией проф. В.Г.Шорина]. – М. : Знание, 1975. – 290с.

Фаулер М. UML. Основы. Второе издание / М.Фаулер, К.Скотт. – М. : Изд-во МАИ, 2002. – 712 с.

Кватрани Т. Rational Rose 2000 и UML. Визуальное моделирование / Т. Кватрани. – М. : ДМК Пресс, 2001. – 176 с.

Оптнер С. Л. Системный анализ для решения деловых и промышленных проблем / С. Л. Оптнер : пер. с англ. – М.: "Советское радио", 1969. – 216 с.

Громова Н. Б. Методы исследования операций в моделировании организационно-экономических задач / Н. Б. Громова, Э. В. Минько, В. И. Прохоров. – М. : Изд-во МАИ, 1992. – 239 с.

Кремер, Н. Ш. Исследование операций в экономике : [Учебное пособие для вузов] / Н.Ш. Кремер, Б.А. Путко, И.М. Тришин, М.Н. Фридман; под ред. проф. Н.Ш. Кремера. – М.: Банки и биржи, ЮНИТИ, 1997. – 538 с.

Таха Х. Введение в исследование операций / Х. Таха. – М. : Мир, 1985. – 264 с.

Экономико-математические методы и прикладные модели : [Учеб. пособие для вузов / под ред. В. В. Федосеева]. – М. : ЮНИТИ, 2000. – 652 с.

Ермаков С.М. Статистическое моделирование / С. М. Ермаков, Г. А. Михайлов: – М. : Наука, 1982. – 381 с.

Документация. Отчеты в сфере науки и техники. Структура и правила оформления : ДСТУ 3008–95. – Киев: Госстандарт Украины, 1995. – 38 с. – (Государственный стандарт Украины).




Додаток



До пояснювальної записки дипломного проекту "Розробка автоматизованого робочого місця управління замовленнями у малому бізнесі (ПП "Сігма")"

Вихідний код програми



Public Class frmГлавная

Inherits System.Windows.Forms.Form

Private Готов As Boolean = False

Private ТаблицаЗаказчиков As DataTable

Private КликПоЯчейке As Boolean

Private Активный As Integer

Private Меню As Ultrik.MenuStyle.AMenu

Private imПросрочен, imНеПросрочен As Image

Private ТекстАнализа As String

Private Sub frmГлавная_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load

Try

РазукраситьИнтерфейс()

БД.Подключение = ПодключениеБД

БД.Подключение.Open()

Me.IsMdiContainer = True

Reload()

Анализировать()

tmrАнализ.Start()

pic.Image = Сервис.ВзятьРисунокИзРесурса(_Рисунок.Главная)

Catch ex As Exception

Err.Raise(Err.Number, ex.Source, ex.ToString, Err.HelpFile, Err.HelpContext)

End Try

End Sub

Public Function Анализировать() As Integer

Try

БД.SQLЗапрос = "select * from Справочник_заказа where Дата_поставки < " & Сервис.ФорматДата(Now.Date) & " and Выполнен = False"

БД.ВыполнитьЗапросВ_Таблицу()

If БД.Таблица.Rows.Count > 0 Then

picПросрочен.Image = Сервис.ВзятьРисунокИзРесурса(_Рисунок.ГлавнаяДоставкаПросрочена)

ТекстАнализа = "Просрочена доставка заказа"

Else

picПросрочен.Image = Сервис.ВзятьРисунокИзРесурса(_Рисунок.ГлавнаяДоставкаНеПросрочена)

ТекстАнализа = "Нет просроченных заказов"

End If

Return БД.Таблица.Rows.Count

Catch ex As Exception

Err.Raise(Err.Number, ex.Source, ex.ToString, Err.HelpFile, Err.HelpContext)

End Try

End Function

Private Sub РазукраситьИнтерфейс()

Try

УстановитьЦветВыделения(Me)

Catch ex As Exception

Err.Raise(Err.Number, ex.Source, ex.ToString, Err.HelpFile, Err.HelpContext)

End Try

End Sub

Public Sub Reload()

Try

ОбновитьСписок()

Catch ex As Exception

Err.Raise(Err.Number, ex.Source, ex.ToString, Err.HelpFile, Err.HelpContext)

End Try

End Sub

Private Sub ОбновитьСписок()

Dim t As DataTable

Dim Данные As DataRow()

Try

t = New DataTable

ТаблицаЗаказчиков = New DataTable

t.Columns.Add(New DataColumn("ФИО", "".GetType))

БД.SQLЗапрос = "select Код_покупателя, ФИО from Справочник_заказчиков"

БД.ВыполнитьЗапросВ_Таблицу()

t = БД.Таблица

ТаблицаЗаказчиков = t.Clone

Данные = t.Select("", "ФИО ASC")

For Each r As DataRow In Данные

ТаблицаЗаказчиков.ImportRow(r)

Next

t = New DataTable

t.Columns.Add(New DataColumn("ФИО", "".GetType))

For Each Строка As DataRow In ТаблицаЗаказчиков.Rows

t.Rows.Add(New Object() {Строка("ФИО")})

Next

dtgЗаказчики.DataSource = t

If ТаблицаЗаказчиков.Rows.Count = 0 Then

Готов = False

Exit Sub

End If

УстановитьСтиль()

УстановитьКлюч()

Выделить()

Catch ex As Exception

Err.Raise(Err.Number, ex.Source, ex.ToString, Err.HelpFile, Err.HelpContext)

End Try

End Sub

Private Sub Выделить()

Try

If Активный > ТаблицаЗаказчиков.Rows.Count - 1 And Активный > 0 Then Активный = 0

dtgЗаказчики.Select(Активный)

dtgЗаказчики.CurrentRowIndex = Активный

Catch ex As Exception

Err.Raise(Err.Number, ex.Source, ex.ToString, Err.HelpFile, Err.HelpContext)

End Try

End Sub

Private Sub УстановитьСтиль()

Try

Стиль = New Ultrik.DGStyle.СтильТаблицы(dtgЗаказчики)

Стиль.Стиль_Установить(Ultrik.DGStyle.СтильТаблицы.ТипСтиля.Label, "ФИО")

Стиль.Стиль_Ширина(grpButton.Width - 10, "ФИО")

Стиль.TableStyle.RowHeadersVisible = False

Стиль.TableStyle.AlternatingBackColor = Color.Gainsboro

Стиль.TableStyle.LinkColor = Color.DarkSlateBlue

Стиль.TableStyle.BackColor = Color.Silver

Catch ex As Exception

Err.Raise(Err.Number, ex.Source, ex.ToString, Err.HelpFile, Err.HelpContext)

End Try

End Sub

Private Sub ПоказатьЗаказчика(ByVal пТипОткрытия As _ТипОткрытия)

Dim f As frmЗаказчик

Try

Select Case пТипОткрытия

Case _ТипОткрытия.Добавить

f = New frmЗаказчик

f.ФИО = ""

f.Адресс = ""

f.Телефон = ""

f.ТипОткрытия = пТипОткрытия

Case _ТипОткрытия.Изменить

БД.SQLЗапрос = "select * from Справочник_заказчиков where Код_покупателя = " & КлючЗаказчика

БД.ВыполнитьЗапросВ_Таблицу()

Dim t As DataTable = БД.Таблица

f = New frmЗаказчик

f.ТипОткрытия = пТипОткрытия

f.ФИО = t.Rows(0)("ФИО").ToString

f.Адресс = t.Rows(0)("Адресс").ToString

f.Телефон = t.Rows(0)("Телефон").ToString

f.ТипОткрытия = пТипОткрытия

f.КодЗаказчика = КлючЗаказчика

End Select

f.ShowDialog()

ОбновитьСписок()

Catch ex As Exception

Err.Raise(Err.Number, ex.Source, ex.ToString, Err.HelpFile, Err.HelpContext)

End Try

End Sub

Private Function УстановитьКлюч() As Integer

Dim Cell As DataGridCell

Try

Cell.ColumnNumber = 0

Cell.RowNumber = dtgЗаказчики.CurrentRowIndex

КлючЗаказчика = CInt(ТаблицаЗаказчиков.Select("ФИО = '" & dtgЗаказчики.Item(Cell).ToString & "'")(0)("Код_покупателя"))

If КликПоЯчейке And Готов Then Активный = dtgЗаказчики.CurrentRowIndex

КликПоЯчейке = False

Catch ex As Exception

Err.Raise(Err.Number, ex.Source, ex.ToString, Err.HelpFile, Err.HelpContext)

End Try

End Function

Private Sub ПоказатьЗаказы()

Try

If ТаблицаЗаказчиков.Rows.Count > 0 Then

fЗаказы = New frmЗаказы

fЗаказы.MdiParent = Me

fЗаказы.Show()

End If

Catch ex As Exception

Err.Raise(Err.Number, ex.Source, ex.ToString, Err.HelpFile, Err.HelpContext)

End Try

End Sub

Private Sub Найти()

Dim ФИО As String

Dim r As DataRow()

Try

r = ТаблицаЗаказчиков.Select("ФИО like '*" & txtЗаказчик.Text & "*'")

If r.Length <> 0 Then ФИО = r(0)("ФИО").ToString

For i As Integer = 0 To ТаблицаЗаказчиков.Rows.Count - 1

If ФИО = ТаблицаЗаказчиков.Rows(i)("ФИО").ToString Then

Активный = i

ОбновитьСписок()

Exit For

End If

Next

Catch ex As Exception

Err.Raise(Err.Number, ex.Source, ex.ToString, Err.HelpFile, Err.HelpContext)

End Try

End Sub

Private Sub mmnuFileExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mmnuFileExit.Click

Close()

End Sub

Private Sub mmnuСправочникТовара_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mmnuСправочникТовара.Click

Try

ПоказатьСправочник(_Форма.Уценка)

Catch ex As Exception

Err.Raise(Err.Number, ex.Source, ex.ToString, Err.HelpFile, Err.HelpContext)

End Try

End Sub

Private Sub ПоказатьСправочник(ByVal пФорма As _Форма, Optional ByVal пТипЗаказчика As _ТипЗаказчика = _ТипЗаказчика.Все)

Try

fОбщий = New frmОбщий(True)

fОбщий.Форма = пФорма

fОбщий.ТипЗаказчика = пТипЗаказчика

fОбщий.MdiParent = Me

fОбщий.Show()

Catch ex As Exception

Err.Raise(Err.Number, ex.Source, ex.ToString, Err.HelpFile, Err.HelpContext)

End Try

End Sub

Private Sub mmnuСправочникИзмерений_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mmnuСправочникИзмерений.Click

Try

ПоказатьСправочник(_Форма.Измерение)

Catch ex As Exception

Err.Raise(Err.Number, ex.Source, ex.ToString, Err.HelpFile, Err.HelpContext)

End Try

End Sub

Private Sub mmnuСправочникПоставщиков_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mmnuСправочникПоставщиков.Click

Try

ПоказатьСправочник(_Форма.Поставщик)

Catch ex As Exception

Err.Raise(Err.Number, ex.Source, ex.ToString, Err.HelpFile, Err.HelpContext)

End Try

End Sub

Private Sub mmnuСправочникЗаказчков_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mmnuСправочникЗаказчков.Click

Try

ПоказатьСправочник(_Форма.Заказчик)

Catch ex As Exception

Err.Raise(Err.Number, ex.Source, ex.ToString, Err.HelpFile, Err.HelpContext)

End Try

End Sub

Private Sub mmnuСписокЗаказа_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mmnuСписокЗаказа.Click

Try

ПоказатьЗаказы()

Catch ex As Exception

Err.Raise(Err.Number, ex.Source, ex.ToString, Err.HelpFile, Err.HelpContext)

End Try

End Sub

Private Sub mmnuСписокЗаказа_DrawItem(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles mmnuСписокЗаказа.DrawItem

' Dim TempIcon As New Icon(Application.StartupPath & "\IconMenu\Список заказов.ico")

Dim Ic As New Icon(Сервис.ВзятьStreamИзРесурса(_Рисунок.МенюСписокЗаказов), 20, 20)

Try

Меню.DrawItems(e, mmnuСписокЗаказа, Ic)

Catch ex As Exception

Err.Raise(Err.Number, ex.Source, ex.ToString, Err.HelpFile, Err.HelpContext)

End Try

End Sub

Private Sub mmnuСписокЗаказа_MeasureItem(ByVal sender As Object, ByVal e As System.Windows.Forms.MeasureItemEventArgs) Handles mmnuСписокЗаказа.MeasureItem

Try

Меню.MeasureItems(e, mmnuСписокЗаказа)

Catch ex As Exception

Err.Raise(Err.Number, ex.Source, ex.ToString, Err.HelpFile, Err.HelpContext)

End Try

End Sub

Private Sub mmnuFileExit_DrawItem(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles mmnuFileExit.DrawItem

' Dim TempIcon As New Icon(Application.StartupPath & "\IconMenu\Выход.ico")

Dim Ic As New Icon(Сервис.ВзятьStreamИзРесурса(_Рисунок.МенюВыход), 20, 20)

Try

Меню.DrawItems(e, mmnuFileExit, Ic)

Catch ex As Exception

Err.Raise(Err.Number, ex.Source, ex.ToString, Err.HelpFile, Err.HelpContext)

End Try

End Sub

Private Sub mmnuFileExit_MeasureItem(ByVal sender As Object, ByVal e As System.Windows.Forms.MeasureItemEventArgs) Handles mmnuFileExit.MeasureItem

Try

Меню.MeasureItems(e, mmnuFileExit)

Catch ex As Exception

Err.Raise(Err.Number, ex.Source, ex.ToString, Err.HelpFile, Err.HelpContext)

End Try

End Sub

Private Sub mmnuСправочникЗаказчков_DrawItem(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles mmnuСправочникЗаказчков.DrawItem

' Dim TempIcon As New Icon(Application.StartupPath & "\IconMenu\Список заказчиков.ico")

Dim Ic As New Icon(Сервис.ВзятьStreamИзРесурса(_Рисунок.МенюСписокЗаказчиков), 20, 20)

Try

Меню.DrawItems(e, mmnuСправочникЗаказчков, Ic)

Catch ex As Exception

Err.Raise(Err.Number, ex.Source, ex.ToString, Err.HelpFile, Err.HelpContext)

End Try

End Sub

Private Sub mmnuСправочникЗаказчков_MeasureItem(ByVal sender As Object, ByVal e As System.Windows.Forms.MeasureItemEventArgs) Handles mmnuСправочникЗаказчков.MeasureItem

Try

Меню.MeasureItems(e, mmnuСправочникЗаказчков)

Catch ex As Exception

Err.Raise(Err.Number, ex.Source, ex.ToString, Err.HelpFile, Err.HelpContext)

End Try

End Sub

Private Sub mmnuСправочникТовара_DrawItem(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles mmnuСправочникТовара.DrawItem

' Dim TempIcon As New Icon(Application.StartupPath & "\IconMenu\Товар.ico")

Dim Ic As New Icon(Сервис.ВзятьStreamИзРесурса(_Рисунок.МенюТовар), 20, 20)

Try

Меню.DrawItems(e, mmnuСправочникТовара, Ic)

Catch ex As Exception

Err.Raise(Err.Number, ex.Source, ex.ToString, Err.HelpFile, Err.HelpContext)

End Try

End Sub

Private Sub mmnuСправочникТовара_MeasureItem(ByVal sender As Object, ByVal e As System.Windows.Forms.MeasureItemEventArgs) Handles mmnuСправочникТовара.MeasureItem

Try

Меню.MeasureItems(e, mmnuСправочникТовара)

Catch ex As Exception

Err.Raise(Err.Number, ex.Source, ex.ToString, Err.HelpFile, Err.HelpContext)

End Try

End Sub

Private Sub mmnuСправочникИзмерений_DrawItem(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles mmnuСправочникИзмерений.DrawItem

' Dim TempIcon As New Icon(Application.StartupPath & "\IconMenu\Единицы измерения.ico")

Dim Ic As New Icon(Сервис.ВзятьStreamИзРесурса(_Рисунок.МенюЕдиницыИзмерения), 20, 20)

Try

Меню.DrawItems(e, mmnuСправочникИзмерений, Ic)

Catch ex As Exception

Err.Raise(Err.Number, ex.Source, ex.ToString, Err.HelpFile, Err.HelpContext)

End Try

End Sub

Private Sub mmnuСправочникИзмерений_MeasureItem(ByVal sender As Object, ByVal e As System.Windows.Forms.MeasureItemEventArgs) Handles mmnuСправочникИзмерений.MeasureItem

Try

Меню.MeasureItems(e, mmnuСправочникИзмерений)

Catch ex As Exception

Err.Raise(Err.Number, ex.Source, ex.ToString, Err.HelpFile, Err.HelpContext)

End Try

End Sub

Private Sub mmnuСправочникПоставщиков_DrawItem(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles mmnuСправочникПоставщиков.DrawItem

' Dim TempIcon As New Icon(Application.StartupPath & "\IconMenu\Поставщики.ico")

Dim Ic As New Icon(Сервис.ВзятьStreamИзРесурса(_Рисунок.МенюПоставщики), 20, 20)

Try

Меню.DrawItems(e, mmnuСправочникПоставщиков, Ic)

Catch ex As Exception

Err.Raise(Err.Number, ex.Source, ex.ToString, Err.HelpFile, Err.HelpContext)

End Try

End Sub

Private Sub mmnuСправочникПоставщиков_MeasureItem(ByVal sender As Object, ByVal e As System.Windows.Forms.MeasureItemEventArgs) Handles mmnuСправочникПоставщиков.MeasureItem

Try

Меню.MeasureItems(e, mmnuСправочникПоставщиков)

Catch ex As Exception

Err.Raise(Err.Number, ex.Source, ex.ToString, Err.HelpFile, Err.HelpContext)

End Try

End Sub

Private Sub mmnuОПрограмме_DrawItem(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles mmnuОПрограмме.DrawItem

' Dim TempIcon As New Icon(Application.StartupPath & "\IconMenu\О программе.ico")

Dim Ic As New Icon(Сервис.ВзятьStreamИзРесурса(_Рисунок.МенюОпрограмме), 20, 20)

Try

Меню.DrawItems(e, mmnuОПрограмме, Ic)

Catch ex As Exception

Err.Raise(Err.Number, ex.Source, ex.ToString, Err.HelpFile, Err.HelpContext)

End Try

End Sub

Private Sub mmnuОПрограмме_MeasureItem(ByVal sender As Object, ByVal e As System.Windows.Forms.MeasureItemEventArgs) Handles mmnuОПрограмме.MeasureItem

Try

Меню.MeasureItems(e, mmnuОПрограмме)

Catch ex As Exception

Err.Raise(Err.Number, ex.Source, ex.ToString, Err.HelpFile, Err.HelpContext)

End Try

End Sub