Методичні вказівки до дипломного проекту з курсу Комп'ютерні науки, НТУУ «КПІ»
« Назад АНОТАЦІЯ Структура та обсяг роботи. Пояснювальна записка дипломного проекту складається з шести розділів, містить ?? рисунків, ?? таблиць, ?? додатків, ?? джерел. Дипломний проект присвячений розробці комплексу задач … . Цілі та задачі розробки. У розділі інформаційного забезпечення … Розділ математичного забезпечення присвячений… Програмне забезпечення … У технологічному розділі … У розділі охорони праці… Приклад Структура та обсяг роботи. Пояснювальна записка дипломного проекту складається з п’яти розділів, містить 112 сторінок, 33 рисунків, 13 таблиці, 3 додатки, 21 джерел(о). Дипломний проект присвячений розробці комплексу задач маршрутизації інформаційних потоків в комп’ютерних мережах з метою визначення шляхів для маршрутів, завдяки яким завантаженість кабелів в мережі зменшиться. В дипломному проекті були розглянуті:алгоритми та методи пошуку шляхів у комп'ютерних мережах та на графах, модифіковані методи знаходження шляхів, евристичний метод визначення завантаженості кабелів в мережі. У розділі з інформаційного забезпечення були визначені вхідні та вихідні дані до комплексу задач, була розроблена структура xml файлу для збереження даних, яка відповідає поставленим цілям проекту. У розділі з математичного забезпечення було обґрунтовано створений евристичний підхід. Був запропонований алгоритм пошуку шляхів для маршрутів в мережі з метою зменшення навантаженості кабелів в мережі. У розділі з програмного забезпечення описані основні засоби розробки комплексу задач, висунуті вимоги до технічного забезпечення, обрано та обґрунтовано архітектуру програмного забезпечення. У технологічному розділі описана інструкція користувача та проведене тестування комплексу задач. У розділі охорони праці… ШЛЯХ, МАРШРУТ, ЗАВАНТАЖЕНІСТЬ, МЕРЕЖА, МАРШРУТИЗАЦІЯ В КОМПЬЮТЕРНИХ МЕРЕЖАХ, ПОШУК ШЛЯХІВ, ЗАДАЧА ЗМЕНШЕННЯ НАВАНТЕЖЕНОСТІ КАБЕЛІВ В МЕРЕЖІ.
ABSTRACT Той самий текст, що й в анотації, але іноземною мовою (англійська, німецька, НЕ російська) ЗМІСТ Вступ.. 7 1 Загальні положення.. 9 1.1 Опис предметного середовища. 9 1.1.1 Опис процесу діяльності 15 1.1.2 Опис функціональної моделі 19 1.2 Огляд наявних аналогів. 23 1.3 Постановка задачі 27 1.3.1 Призначення розробки. 27 1.3.2 Цілі та задачі розробки. 27 1.3.1 Призначення розробки. 27 1.3.2 Цілі та задачі розробки. 27 1.3.1 Призначення розробки. 28 1.3.2 Цілі та задачі розробки. 28 1.3.1 Призначення розробки. 29 1.3.2 Цілі та задачі розробки. 29 Висновок до розділу.. 30 2 Інформаційне забезпечення.. 31 2.1 Вхідні дані 31 2.2 Вихідні дані 35 2.3 Опис структури бази даних.. 37 2.4 Структура масивів інформації 39 Висновок до розділу.. 41 3 Математичне забезпечення.. 42 3.1 Змістовна постановка задачі 42 3.2 Математична постановка задачі 43 Пункти 3.2.1 та 3.2.2 представлені як приклади, а взагалі п.3.2 можна не розділяти на підпункти. 43 3.2.1 Задача складання та прогнозування плану випуску продукції 43 3.2.2 Задача прогнозування ринкових цін. 44 3.3 Обґрунтування методу розв’язання. 45 3.4 Опис методів розв’язання. 45 Висновок до розділу.. 48 4 Програмне та технічне забезпечення.. 49 4.1 Засоби розробки.. 49 4.2 Вимоги до технічного забезпечення. 53 4.2.1 Загальні вимоги. 53 4.2.2 Опис локальної обчислювальної мережі 54 4.3 Архітектура програмного забезпечення. 55 4.3.1 Діаграма класів. 55 4.3.2 Діаграма послідовності 57 4.3.3 Діаграма компонентів (або/та розгортання) 60 4.3.4 Специфікація функцій. 61 4.4 Опис звітів. 63 Висновок до розділу.. 63 5 Технологічний розділ.. 64 5.1 Керівництво користувача. 64 5.2 Опис інсталяції програмного продукту.. 70 5.3 Випробування програмного продукту.. 70 5.3.1 Мета випробувань. 70 5.3.2 Загальні положення. 70 5.3.3 Результати випробувань. 70 5.4 Опис супроводження та виведення з експлуатації програмного продукту 78 5.4.1 Опис супроводження програмного продукту. 78 5.4.2 Опис виведення з експлуатації програмного продукту програмного продукту 78 Висновок до розділу.. 79 6 Розділ з охорони праці. 80 6.1 Консультант з охорони праці надасть відомості до розділу відповідно графіку консультацій.. 80 Висновок до розділу.. 80 ЗАГАЛЬНІ ВИСНОВКИ.. 81 Перелік посилань.. 82 Додаток А.. 83
Вступ Загальні відомості щодо історії виникнення та обґрунтування необхідності розробки. За необхідністю навести визначення та терміни, що стосуються теми дипломного проекту. При описі стандартних термінів чи інших відомостей (не введених Вами) необхідно посилатися на їх джерела. Приклад: Планування – це вид діяльності, пов’язаний з цілей, задач і дій в майбутньому. Планування в загальному вигляді поділяється на наступні етапи [1]: - постановка задач та цілей; - складання програми дій; - визначення необхідності у ресурсах та їх джерелах; - визначення безпосередніх виконавців та доведення планів до них. Постановка задач та цілей визначає причини, з яких відбувається будь-яка діяльність, та є стартовим етапом планування. Без постановки цілей неможливе подальше виконання планування, оскільки втрачається мета, з якою має бути здійснена планована діяльність. Складання програми дій має за мету розбити загальний процес досягнення мети на логічно відокремлені одне від одного процеси, які можуть знаходитися у залежності одне від одного, але спосіб реалізації цих процесів жодним чином не має впливу на інші. Узагальнено такий процес можна розглядати як чорну скриню – при поданні даних на вхід отримуємо дані на виході. Для кожного з таких процесів можливе планування, яке забезпечить виконання даного етапу загального процесу. Реалізація окремих етапів діяльності може вимагати використання ресурсів (часових, матеріальних тощо). Сумарні витрати ресурсів на всіх етапах діяльності визначають вартість даної діяльності. Якщо розглянути ці витрати детальніше, то можна виділити в них постійну складову, тобто такий об’єм ресурсів, який буде використано завжди при реалізації подібної діяльності, та змінну складову, яка може змінюватися при зміні порядку виконання етапів діяльності, що не впливає на результат діяльності, але впливає на її вартість. Як відомо, будь-яка виробнича діяльність направлена на отримання прибутку. Прибуток можна розрахувати як різницю між ресурсами, отриманими внаслідок реалізації діяльності, та ресурсами, які були витрачені під час реалізації діяльності. Одним із шляхів збільшення прибутку є зменшення витрат, які виникають в процесі реалізації діяльності. Для зменшення даних витрат необхідне створення таких планів виконання етапів діяльності, в яких змінна складова витрат набувала б мінімально можливого значення. Дипломний проект присвяченийрозробці комплексу задач … Цілі створення комплексу задач .... Для досягнення цілей у роботі вирішуються наступні задачі: Решта пунктів – лише за наявності!!!! Практичне значення одержаних результатів. Розроблено алгоритм розв’язання двокритеріальної транспортної задачі. Публікації. Результати роботи були опубліковані у ? статтях у наукових збірниках ??? [1 – 2] та ?? тезах доповідей на науково-технічних конференціях [3 – 5].
1 Загальні положення1.1 Опис предметного середовищаВ даному підрозділі приводиться опис предметного середовища. Далі наведений приклад опису предметного середовища. Бажано (але не обов’язково) навести класифікації, діаграми, таблиці, які демонструють особливості обраної Вами предметної області. Приклад 1 Комп'ютерна мережа — система зв'язку між двома чи більше комп'ютерами. У ширшому розумінні комп'ютерна мережа (КМ) — це система зв'язку через кабельне чи повітряне середовище, самі комп'ютери різного функціонального призначення і мережеве обладнання. Для передачі інформації можуть бути використані різні види електричних сигналів чи електромагнітного випромінювання. Середовищами передавання у комп'ютерних мережах можуть бути телефонні кабелі, та спеціальні мережеві кабелі: коаксіальні кабелі, виті пари, волоконно-оптичні кабелі, радіохвилі, світлові сигнали. В локальних мережах, як правило, використовується середовище передачі даних (моноканал), що розділяється, і основна роль відводиться протоколам фізичного і канального рівнів, оскільки ці рівні найбільшою мірою відображають специфіку локальних мереж. Мережева технологія — це погоджений набір стандартних протоколів та програмно-апаратних засобів що їх реалізовують, достатній для побудови локальної обчислювальної мережі. Мережеві технології називають базовими технологіями або мережевою архітектурою локальних мереж. Мережева технологія для передачі потоків даних[5] або архітектура визначає топологію і метод доступу до середовища передачі даних, кабельну систему або середовище передачі даних, формат мережевих кадрів тип кодування сигналів, швидкість передачі в локальній мережі. У сучасних локальних обчислювальних мережах широкого поширення набули такі технології або мережева архітектура, як: Ethernet, Token-ring, Arcnet, FDDI. Маршрутизація - це задача знаходження шляху між комп'ютером, що відсилає дані та комп'ютером-одержувачем, але в зв'язаній моделі IP ця задача в основному зводиться до пошуку шляхів до шлюзів між мережами. Поки пакети даних знаходяться на окремій мережі або підмережі проблеми маршрутизації вирішуються за технологією, специфічною для інтерфейсу цієї мережі. IP маршрутизація[3] починається, коли потрібно передати дані між різними мережами з різними інтерфейсами. Якщо мережі отримувача та відправника безпосередньо зв'язані, то дані мають пройти через шлюз, що з'єднує мережі. Якщо ці мережі не зв'язані шлюзом, дані мають пройти через мережі, що знаходяться між відправником і одержувачем та шлюзами що їх з'єднують. Як тільки дані доходять до шлюзу на мережі отримувача, технологія маршрутизації цієї мережі спрямовує дані до отримувача. Для знаходження маршруту до комп'ютера-отримувача система зберігає таблиці маршрутизації, які використовуються протоколами мережного рівня для вибору потрібного мережного інтерфейсу. Маршрутизаційна інформація зберігається у вигляді двох таблиць: перша - для маршрутів до хостів, друга - для маршрутів до мереж. Такий підхід дозволяє використовувати універсальні механізми визначення маршрутів як для мереж із розподіленим середовищем передачі даних , так і для мереж типу point-to-point. Визначаючи маршрут, модуль мережного протоколу (IP) спочатку переглядає таблиці для хостів, а потім для мереж. Якщо пошук не дає результату, то використовується маршрут по замовчуванню. Визначення маршруту може базуватися на різноманітних показниках або комбінаціях показників. Програмні реалізації алгоритмів маршрутизації вираховують вартість маршруту для визначення оптимальних маршрутів до пункту призначення. Існує багато підходів до задач пошуку оптимальних шляхів в мережі, що реалізовані в протоколах, за якими відбувається маршрутизація, таких як Interior Gateway Protocols: OSPF (Open Shortest Path First), Dual IS-IS (Intermediate System to Intermediate System), RIP (Routing Information Protocol), GGP (Gateway to Gateway Protocol); Exterior Gateway Protocols: BGP (Border Gateway Protocol), EGP (Exterior Gateway Protocol), Inter-AS Routing without Exterior Gateway; Static Routing. Найрозповсюдженішими в Internet є реалізації алгоритмів вектору відстані та відкриття найкоротшого шляху. Метою пошуку найкоротних шляхів для передачі даних, при тому що вони не перевантажували б кабелі в мережі є гарантоване надання якості обслуговування QOS [2] (Quality Of Service). Це означає, що провадер, який надає послуги клієнтам у вигляді доступу до мережі Інтернет повинен виконувати вимоги гарантування якості обслуговування абонентів. В процессі пошуку шляхів для маршрутів використовується інформація про завантаженість кабелів. В даній роботі пропонується динамічно обчислювати завантаженість, як відносну завантаженість, яка буде залежати від поточної. І буде тим більша, чим більша є поточна завантаженість. Таким чином, постає необхідність розробки комплексу задач, який міг би бути впроваджений в систему управління та контролю комп’ютерної мережі, як оптимізатор навантаження на мережу. Інтеграція може бути проведена безпосередньо, встановленням комплексу задач як окремого модулю, або віддалено, з’єднуючись із віддаленим RMI сервером та викликаючи його функції. Сервер, котрий контролює мережу, повинен зібрати інформацію про поточний стан системи та передати її на оброблення комплексом задач. Для підвищення швидкості передання інформації по Інтернет, був обраний формат передачі даних xml. Після обробки отриманої інформації та визначення нових шляхів для існуючих маршрутів, модуль комплексу задач відсилає серверу відповідь у форматі xml, яка містить дані про шляхи. Вибір способу інтеграції залежить від розмірів мережі та наявних ресурсів для проведення обчислювальних операцій. Чим більша мережа, тим більше даних прийдеться обробити для пошуку рішення та тим більше даних потрібно буде бередати комплексу задач. Якщо на сервері, контролюючому мережу, достатньо ресурсів для проведення обчислювальних оперецій, то більш раціонально буде встановити модуль для комплексу задач безпосередньо на сервері, це зменшить витрати на передачу інформації. Але, якщо на сервері не має можливості виділити необхідну потужність, то краще встановити потужний віддалений сервер для комплексу задач, який буде проводити обчислювальні операції для пошуку нових шляхів для маршрутів в мережі. На даний момент маршрутизація в комп’ютерних мережах виконується за допомогою різноманітних алгоритмів які можна розділити на: – адаптивні та не адаптивні; – глобальні та централізовані; – статичні та динамічні. Для сучасних алгоритмів маршрутизації висуваються наступні вимоги: – точність; – простота; – надійність; – стабільність; – справедливість; – оптимальність. Далеко не всі сучасні алгоритми задовольняють наведеним вимогам. Розроблене рішення дозволяє динамічно покращувати поточну завантаженість в комп’ютерних мережах, при цьому незалежно від обраного для мережі алгоритму маршрутизації. Тобто задача зводиться до зменшення відносної завантаженості в мережі незалежно від того, за яким алгоритмом маршрутизації визначаються в ній шляхи передачі даних. Приклад 2 На даний момент в столиці України функціонує 118 готелів різної форми власності. З них 23 об’єкти відносяться до категорії «великих готелів», 60 вважаються «малими готелями», інші – гуртожитки (хостели). Загальний номерний фонд Києва оцінюється у 8,7 тисяч номерів, загальною місткістю 15,6 тисяч місць. Таким чином готелі столиці здатні забезпечити проживання близько 1 млн. чоловік на рік (рис.1.1). Рисунок 1.1 – Структура готельного фонду Головну роль у виборі туристом готелю відіграє класифікація, яка характеризує якість надаваних послуг. У світі діє близько 30 типів систем класифікації готелів. В Україні за основу прийнята французька система зірок. Міжнародними сертифікатами на сьогоднішній день володіють 55 київських готелів. - п’ять зірок мають 3 готелі («Премьер Палас», «Опера», «Hayat»); - чотири зірки мають 8 готелів («Національний» , «Президент-готель», «Київский», «Київ», «Дніпро», «Подол-плаза», «Ривьєра», «Redisson SAS»); - три зірки мають 17 готелів («Либідь», «Турист», «Славутич», «Братислава», «Салют», «Русь», «Україна», «Пролїсок», «Кооператор», «Експрес», «Дружба», «Хрещатик», «Спорт», «Домус готель», «Джинтама», «Адрія», «Ардена»); - дві зірки мають 20 готелів («Дніпровський», «Госфельдслужба», «Верховина» та інші); - одна зірка – 7 готелів; - не сертифіковані – 65 готелів. Приклад 3 В 2005 році загальний оборот платіжної системи CyberPlat ® досяг суми 1 мільярд 120 мільйонів доларів США. З них 97% припадають на оборот по прийому платежів від абонентів операторів мобільного зв'язку, 1% - від абонентів супутникового і кабельного телебачення. Решта 2% - платежі за фіксований зв'язок, комунальні послуги та доступ в Інтернет. З такими високими показниками "Кіберплат" (CyberPlat ®), безумовно, є найбільшою платіжною системою Росії. Загальна кількість точок прийому платежів системи "Кіберплат" (CyberPlat ®) збільшилася в першому півріччі 2006 року з 15000 до 21000.Настільки стійкий і динамічний ріст бізнесу став можливий завдяки підключенню до CyberPlat ® нових торгових мереж, дилерських компаній, мереж електронних терміналів самообслуговування, а також відділень і філій різних банків, насамперед у регіонах. Інший приклад динамічного розвитку ринку є компанія Об’єднана система мобільних платежів (ОСМП). Динаміку росту ОСПМ можна побачити на рис. 1.2. Рисунок 1.2 – Динаміка розвитку ОСМП 1.1.1 Опис процесу діяльностіДаний підпункт може містити один з можливих варіантів: а) опис процесу діяльності, який ми автоматизуємо; б) стан діяльності до розробки системи; процес запровадження автоматизації; опис процесу діяльності. В розділі можуть приводитися діаграми станів, активності або станів для опису бізнес процесів. Приклад 1 Розглянемо дії, які має виконати користувач для розсилки резюме роботодавцям, за допомогою UML діаграми діяльності (рисунок 1.3): Рисунок 1.3 – Схема структурна діяльності Приклад 2 Типова послідовність дій для процесу проведення співбесіди представлена на рисунку 1.4 за допомогою структурної схеми діяльності. Рисунок 1.4 – Схема структурної діяльності Приклад 3 Комплекс задач призначений для визначення таких шляхів для маршрутів, завдяки яким значення відносної навантаженості в мережі зменшиться. Для чого будується топологія мережі над якою буде проведений процес оптимізації шляхом побудови графу, що буде представляти цю мережу, в якому ребра відповідають з’єднанням між маршрутизаторами з відповідною пропускною здатністю, а вершини маршрутизаторам. Після чого запускається процес пошуку кращого розташування існуючих маршрутів в мережі. Знайдений результат аналізується та направляються команди для перенаправлення існуючих маршрутів в мережі. Комп’ютерні мережі використовуються для побудови надійних систем передачі інформації. Розроблено багато алгоритмів, протоколів та служб передачі даних для клієнтів мереж з комутацією каналів і для мереж з комутацією пакетів. В традиційній IP мережі пакети передаються від одного маршрутизатора до іншого й кожен маршрутизатор зчитуючи заголовок пакета (адресу призначення) приймає рішення про те, за яким маршрутом відправити пакет далі. Тобто, побудова шляху проходження пакету в мережі хоч і використовує всю інформацію про мережу, але поточний маршрутизатор не має можливості впливати на інші шляхи передачі даних в мережі. Це означає, що у разі перевантаження вихідних кабелів маршрутизатор не може передати пакет далі і пакети записуються в спеціальний буфер, де вони будуть міститися до тих пір доки маршрутизатор не зможе їх направити далі. Звідси виникає затримка часу передачі інформації або, якщо буфер переповнюється, то дані втрачаються, що порушує якість обслуговування (QOS - Quality of service). Якщо маршрутизатор мав би можливість зменшити навантаження на кабелях, які затримують передачу пакетів, шляхом зміни напрямку передачі пакетів на інших маршрутизаторах, то цих наслідків можна було б уникнути. На теперішній час існує багато різних алгоритмів оптимізації маршрутизації, які дозволяють при перевантаженні перенаправити трафік в обхід проблемних ділянок. Але виникають ситуації, коли виділений канал починає перевантажуватись та можливі шляхи перенаправлення потоку відсутні оскільки вони теж є перевантажені. Тобто, для того, щоб позбутися перевантаження на шляху у випадку відсутності шляхів перенаправлення, потрібно зробити перестановку декількох маршрутів з метою позбавлення перевантаження. Для вирішення проблеми пропонується використовувати окремий сервер, який отримуватиме інформацію про мережу, змінюватиме маршрути передачі пакетів та відправлятиме команди перенаправлення трафіку маршрутизаторам. Даний підхід можна буде застосовувати до мереж з будь-яким типом маршрутизації. У процессі роботи комплексу задач можна виділити такі етапи: – сервер, контролюючий мережу, збирає інформацію про поточний стан мережі (хости, кабелі між ними, прокладені маршрути та їх шляхи) та формує опис даних у форматі xml; – визивається RMI сервер комплексу задач, котрому передаються сформовані дані. Сервер задач виконує необхідні обчислювальні операції для визначення шляхів маршрутів в мережі. Отримані дані представляються у такому ж форматі як і вхідні та відсилаються у відповідь серверу контролюючому мережу; – сервер мережі, отримавши інформацію, змінює шляхи маршрутів і так як нові шляхи підраховані для зменшення завантаженості в мережі, то навантаження в реальних кабелях мережі зменшиться. <Тут має бути UML-діаграма діяльності>)
1.1.2 Опис функціональної моделіПри виконанні опису функціональної моделі необхідно вибрати тип моделі для опису та обґрунтувати вибір (моделлю можуть бути IDEF 0, USE CASE та інше). Якщо обираємо USE CASE, то необхідно описати наступне: Описуються актори (дійові особи), які будуть працювати в межах розробленого програмного продукту та функції, які будуть виконуватися ними. Будується модель варіантів використання. Визначаються функціональні вимоги та визначаються їх пріоритети. Даний підрозділ описується відповідно наведеного нижче шаблону: Акторами системи є: перерахувати. Визначимо, які дії або варіанти використання вони виконують в системі (комплексі задач), для цього наведемо таблицю 1.1, в якій описані актори, варіанти використання та їх описи дій. (Можна описати у текстовому вигляді, а не табличному.) Таблиця 1.1 Опис дії варіантів використання
Відповідно визначених варіантів використання побудуємо модель варіантів використання, яка наведена на рисунку 1.1. Рисунок 1.1 – Схема структурна варіантів використання Відповідно визначених варіантів використання виявлено функціональні вимоги та встановлена їх пріоритетність, результат наведено у таблиці 1.2. Таблиця 1.2 Виявлені функціональні вимоги з варіантів використань
Наведемо деякий приклад оформлення функціональних вимог:
Наведемо деякий приклад схеми структурної варіантів використання: Рисунок 1.1 – Схема структурна варіантів використання
1.2 Огляд наявних аналогівТут наводиться опис наявних рішень або огляд ринку програмних продуктів Приклад 1 В ході пошуку схожих вирішень було виявлено деякі підходи зі схожою функціональністю: – Cisco IOS router software [11]; – Cisco WAN Optimization and Application Acceleration [12]; – Network Load Balancing Services (NLBS) [10]; – динамічна маршрутизація на основі принципів функціонування нейронних мереж [13]; – алгоритм альтернативних маршрутів [9]. Всі основні підходи направлені на зменшення навантаженості мережі. Динамічна маршрутизація на основі принципів функціонування нейронних мереж працює за принципом функціонування нейронної мережі, завдяки чому може бути впроваджена у сучасну мережу шляхом інтеграції з маршрутизаторами, але має велику кількість часу для розрахунку. Алгоритм альтернативних маршрутів, скануючи мережу дозволяє знаходити альтернативні маршрути між вузлами та, обираючи між ними кращий маршрут для зменшення навантаження на мережу, перенаправляти маршрути. Але алгоритм альтернативних маршрутів не є оптимальним так як не може знаходити всі альтернативні маршрути для кожної пари вузлів в мережі, тому він знаходить тільки локальне рішення. В таблиці 1.1 наведено короткий опис характерних особливостей існуючих підходів. Таблиця 1.1 Характеристика існуючих підходів
Продовження таблиці 1.1
Приклад 2 В ході пошуку схожих за функціональністю систем було виявлено дві системи зі схожими функціями, які на даний момент є у продажу: - система EMLAB [3]; - система Decibel Planner [4]. Аналіз функціональності існуючих програмних продуктів Основними функціями системи Decibel Planner є: - визначення загального покриття за найкращим значенням чи за другим найкращим значенням; - ідентифікація передавача, що забезпечує найкраще покриття і найкраще покриття за другим найкращим критерієм вище порогу чутливості приймача; - визначення числа передавачів, що забезпечують покриття в деякому положенні; - визначення областей інтерференційних перешкод від суміжного і сусіднього каналів вище визначеного користувачем інтерференційного каналу; - визначення відмінностей між сигналом, що викликає інтерференційну перешкод і наступним, з більш низькою потужністю, сигналом, який теж викликав би інтерференційну перешкоду (як для суміжного так і для сусіднього каналу); - ідентифікація передавача, який викликає інтерференційну перешкоду в сусідньому і суміжному каналах; - визначення кількості передавачів, що викликають інтерференційну перешкоду в сусідньому і суміжному каналах; - розрахунок складного складового покриття для різних фаз при налагодженні мережі; - розрахунок покриття і інтерференційний аналіз в одно частотних мережах з затриманою ретрансляцією. Основними функціями системи EMLAB є: - загальне радіо покриття кількох систем антен (до 100); - зона найкращого сервісу (оцінка зон, що найкраще покриваються кожною передаючою системою в групі); - розрахунок інтерференції; - розрахунок зони покриття одно частотних мереж з можливістю оптимізації аналізу за окремими параметрами (синхронізація, тип сервісу, модуляція, тощо). Як бачимо, обидві програми в принципі мають схожі функції, і виконують основну задачу – розрахунок зони покриття місцевості базовими станціями, але жодна з них не виконує автоматизовану розстановку станцій, а лише працює з вже готовим розташуванням станцій.
1.3 Постановка задачі1.3.1 Призначення розробкиТут описується призначення розробки 1.3.2 Цілі та задачі розробкиВ даному підрозділі описується саме цілі (мета) розробки та задачі, які необхідно вирішити для їх (її) реалізації. Мета (цілі) розробки – це результат, для досягнення якого, власне, і проводиться розробка. Визначити мету (цілі) розробки, значить відповісти на питання «Навіщо Ви її виконуєте?». Тут описуємо те, що отримаємо у результаті виконання робіт, які зміни відбудуться в існуючій ситуації. Ціль завжди знаходиться за межами діяльності. Все, що ми виконуємо - це вирішення певних задач, а досягнений результат і є ціль. При цьому повинна існувати можливість виміру цілі та оцінки рівня іі досягнення. Зазвичай починається словами «покращення…», «підвищення (зниження…)…», «обумовлення…», «виявлення…». Приклад 1 1.3.1 Призначення розробкиПризначенням комплексу задач є знаходження шляхів для маршрутів в мережі, які зменшують відносну завантаженість кабелів в ній. 1.3.2 Цілі та задачі розробкиГоловною метою комплексу задач є зменшення відносної завантаженості кабелів в мережі. Завдяки цьому мережа стає більш надійною та задовольняє гарантованість обслуговування. Оскільки навантаженість на кабелі в мережі зменшується, підвищується строк їхньої служби та дозволяє збільшити кількість вільної пропускної здатності, яка може бути виділена для абонентів мережі. Для досягнення поставленої мети мають бути вирішені такі задачі: – знаходження шляху мінімальної вартості від одного маршрутизатора до іншого; – знаходження маршрутів, які заважають прокладенню поточного шляху для маршруту; – знаходження кабеля з найбільшою відносною завантаженістю в мережі; – знаходження набору маршрутів, які проходять через перевантажений кабель, змінивши шляхи котрих можна позбутися перевантаженості. Приклад 2 1.3.1 Призначення розробкиПризначенням комплексу задач є визначення потенціальних місць розташування базових станцій стільникового зв’язку та складання оптимальної схеми покриття. 1.3.2 Цілі та задачі розробкиОсновними цілями розробки комплексу задач є: - підвищення прибутковості мережі мобільного зв’язку за рахунок більш ефективного розміщення базових станцій зв’язку; - підвищення якості обслуговування клієнтів. Для досягнення поставлених цілей мають бути вирішені такі задачі: – дискретизація карти; – визначення потенціальних місць розміщення базових станцій; – визначення ділянок, покритих потенціальними базовими станціями; – вибір кращих місць встановлення станцій серед потенціальних з метою збільшення прибутковості мережі; – облік встановлених (діючих) базових станцій зв’язку. Приклад 3 1.3.1 Призначення розробкиПризначенням комплексу задач є визначення плану перевезення продукції до споживачів, при якому транспортні витрати є мінімальними; формування відповідної звітності. 1.3.2 Цілі та задачі розробкиМетою створення комплексу задач є мінімізація витрат підприємства на доставку продукції споживачам, за рахунок визначення оптимальних планів доставки продукції таким чином, щоб потреби всіх споживачів були задоволені. Для досягнення поставленої цілі мають бути вирішені такі задачі: – облік філій підприємства, які постачають продукцію; – облік споживачів підприємства; – ведення географічних пунктів маршрутів перевезення (ведення мапи); – визначення оптимального плану перевезення продукції; – облік замовлень, зроблених споживачами; – ведення графіку доставки продукції споживачам; – розрахунок вартості перевезення продукції від одного пункту до іншого; – облік транспорту підприємства; – підрахунок збитків та прибутків підприємства та його філій, пов’язаних із транспортуванням продукції. Висновок до розділуДати висновок до цього розділу. 2 Інформаційне забезпечення2.1 Вхідні даніУ розділі «Вхідні дані» вказують: - найменування (кодове позначення, розрядність) реквізитів первісних даних; - найменування (кодові позначення) документів або повідомлень, що містять ці дані. Приклад 1 Вхідні дані комплексу задач складання плану виробництва цеху надходять з декількох джерел, а саме від: - клієнтів; - постачальників; - працівників відділу продаж; - інженерів; - менеджера відділу управління персоналом; - менеджера відділу виробництва. Тепер детально розглянемо, які саме дані надходять з цих джерел. Дані, які надходять від представників фірм-постачальників. При укладанні угоди про постачання сировини, представник фірми повинен повідомити наступні дані: - назву фірми; - юридичну адресу; - контактній номер телефону; - електронну адресу; - які типи сировини може постачати його фірма. А безпосередньо перед здійсненням поставки представник має доповнити вище зазначений список наступною інформацією: - об’єм сировини кожного виду, що поставляється; - ціну одиниці сировини. Дані, які надходять від клієнтів підприємства. При підписанні контракту з підприємством на закупівлю товару у останнього фірма розповсюдник (клієнт) має повідомити наступні дані: - назву своєї фірми; - юридичну адресу; - контактній номер телефону; - електронну адресу; - вид продукції, який хоче придбати фірма; - мінімальну кількість продукції, який хоче придбати фірма; - максимальну кількість продукції, яку може придбати фірма. Дані, які надходять від працівників відділу продаж підприємства. В кожний період часу (орієнтовно місяць) працівники мають вносити інформацію про доходи та витрати підприємства, а також про динаміку цін на ринку товарів. Сюди відноситься: - ступінь зміни цін на продукцію за результатами дослідження ринку; - ціну і кількість вже проданої продукції. Дані, які надходять від інженерів підприємства. При встановленні нового обладнання інженер має внести таку інформацію: - назву обладнання; - спеціалізацію обладнання; - дату встановлення; - виробничу потужність обладнання. Перед початком процесу виробництва, або перед виробництвом нової партії продукції інженер має внести наступну інформацію про довірене йому обладнання: - витрати на придбання та (або) експлуатацію; - коефіцієнт зносу обладнання. Дані, які надходять від менеджера відділу управління персоналом. Менеджер відділу управління персоналом має внести наступні дані: - особисті дані працівника; - дату прийому на роботу; - спеціалізацію працівника; - місячний фонд робочого часу. Дані, які надходять від менеджера відділу виробництва. Менеджер відділу виробництва для кожного виду продукції має внести наступні дані: - назву продукції, що буде виготовлятися; - витрати ресурсів усіх типів на одиницю товару. Приклад 2 Первісні дані вводяться шляхом зчитування файлу, який описує структуру комп’ютерної мережі (дані по маршрутизаторам та дані по існуючим маршрутам). Розглянемо структуру даних яка міститься в вхідному файлі. Дані по маршрутизаторам: - ідентифікаційний номер маршрутизатора; - пропускна здатність маршрутизатора. Дані по кабелям, що з’єднують маршрутизатори: - ідентифікаційний номер кабеля; - пропускна здатність кабеля; - початковий номер маршрутизатора; - кінцевий номер маршрутизатора. Дані по існуючим маршрутам: - ідентифікаційний номер маршруту; - поточна завантаженість маршруту; - номер початкового маршрутизатора; - номер кінцевого маршрутизатора; - проміжні номери маршрутизаторів. Після зчитування вхідних файлів, комплекс задач виконує всі необхідні операції для визначення нових шляхів маршрутів. Приклад 3 Первісні дані вводяться в систему користувачем (через веб-сервіси, модулі інтеграції тощо). Розглянемо структуру даних, з якими працює відділ продажу, а саме даних по клієнтам, договорам, рахункам, документам, проектам та послугам (продуктам). Дані по проектам: – номер – номер проекту у розрізі типу; – назва – назва проекту; – клієнт – клієнт, з яким укладається проект; – стадія – стадія, на якій перебуває проект; – стан – стан роботи менеджера з проектом; – тип – тип проекту; – постачальник – контрагент, який виконує поставку послуг; – дата початку – дата, з якої проект починає своє існування; – дата закінчення – дата, офіційного формування договору. Дані по договорам: – номер – номер договору по регламенту; – назва – назва договору; – клієнт – клієнт, з яким укладається договір; – відповідальний – менеджер, що працює з клієнтом; – тип – тип договору; – стан – стан договору; – дата початку – дата, підписання договору з однієї з сторін; – дата завершення – формування комерційної пропозиції; – реквізити – включають в себе суму, частоту оплати, валюту; – проект – посилання на проект. ........... 2.2 Вихідні даніДокумент складається з таких розділів: - перелік вихідних сигналів; - перелік вихідних документів. Розділ «Перелік вихідних сигналів» містить перелік вихідних сигналів із зазначенням їхніх найменувань, призначення, одиниць виміру та діапазонів зміни, способу представлення користувачам інформації. Розділ «Перелік вихідних документів» містить перелік вихідних документів із зазначенням їхніх найменувань, кодових позначень, переліку і значущості реквізитів, користувачів інформації. Приклад 1 Вихідними документами є звіти, які генеруються системою для відображення відомостей про роботу платіжних терміналів. В таблицях 2.2 – 2.3 наведені приклади макетів звітів. Таблиця 2.2 Звіт по інкасаціям за період
Таблиця 2.3 Обороти по терміналам
Приклад 2 Вихідними даними є список маршрутів, тобто файл який містить інформацію про нові маршрути. Список маршрутів представляється наступними даними: - ідентифікаційний номер маршруту; - проміжні номери маршрутизаторів. Проміжні номери маршрутизаторів записуються по черзі через роздільник починаючи із початкового до кінцевого номеру маршрутизатору. Цей формат дає змогу зменшити кількість даних, що потребують передачі через Інтернет. Приклад 3 За результатами роботи комплексу задач визначення оптимального, з точки зору прибутковості, асортименту продукції отримуються такі документи (звіти): - план випуску продукції; - результати прогнозування ринкових цін на наступній плановий період; - результати прогнозування плану випуску продукції. на наступні планові періоди. В таблицях 2.1 – 2.3 наведені макетів цих звітів. (В цьому прикладі вони відсутні за браком місця, але в пояснювальній записці обов’язково повинні бути наведені!!!!!!!) Приклад Вихідними документами комплексу задач є: - трудовий договір; - звіт по співробітниках; - звіти для Державної податкової адміністрації. У таблиці 2.4 наведений опис вихідних документів. Таблиця 2.4 Опис вихідних документів
2.3 Опис структури бази данихУ випадку, коли БД відсутня, оформлюється п. 2.4 Підрозділ повинен обов’язково описувати структури даних (у вигляді діаграм ERD, PDM). При необхідності може бути описана структура розміщення бази даних на конкретних фізичних вузлах. При використанні декількох сутностей бази даних або розподіленої БД необхідно описати особливості логічних зв’язків між базами. Приклад 1 У таблицях 2.5 – 2.10 наведена структура таблиць бази даних. Таблиця 2.5 Опис таблиці WH_D_ORG
Таблиця 2.6 Опис таблиці A_WH_D_ORG__D_ORG
Схема структури БД наведена у додатку В, лист <тут вказується номер листа>. Приклад 2 Далі у таблицях 2.11 – 2.18 наведено опис таблиць розробленої бази даних. Таблиця 2.11 Таблиця клієнтів
Таблиця 2.12 Таблиця контрактів
Структурна схема БД наведена у додатку В, лист <тут вказується номер листа>.
2.4 Структура масивів інформаціїЯкщо БД не має, то відображаємо структуру даних (масивів інформації). Наприклад, у вигляді ХМL- розмітки. Приклад Модель XML зображена на рисунку 2.1, де: - кількість стовпчиків в матриці часу задається елементом Kol-vo_Stolbcov, який має назву i; код має наступний вигяд: <xs:element name="Kol-vo_Stolbcov"> <xs:complexType> <xs:sequence> <xs:element name="i"/> </xs:sequence> </xs:complexType> </xs:element>; - кількість рядків матриці часу задається елементом Kol-vo_Strok, який має назву j; код має наступний вигляд: <xs:element name="Kol-vo_Strok"> <xs:complexType> <xs:sequence> <xs:element name="j"/> </xs:sequence> </xs:complexType> </xs:element>; - перший (другий та третій) рядок елементів матриці часу задається групою str1 (str2, str3), яка має таку послідовність елементів: t11, t12, t13 (t21, t22, t23; t31, t32, t33); код для str1 має наступний вигляд: <xs:group name="str1"> <xs:sequence> <xs:element name="t11"/> <xs:element name="t12"/> <xs:element name="t13"/> </xs:sequence> </xs:group>; - матриця часу складається з груп str1, str2, str3, які описані вище. Рисунок 2.1 – Схема структури XML Висновок до розділуДати висновок до цього розділу.
3 Математичне забезпечення3.1 Змістовна постановка задачіВикористовуємо як наочний приклад Підприємство на кожний виробничий період має складати план, яку продукцію виготовляти в цьому періоді, а також, які зміни необхідно внести в виробничі плани наступних періодів з урахуванням зміни ринкових цін. Підприємство має договори на реалізацію продукції за встановленою ціною. Також відома максимальна кількість продукції, яку можна реалізувати за поточний період. Підприємство хотіло б задовольнити усі договори, які укладені з ним і при цьому отримати максимальний прибуток від реалізації продукції, використовуючи для цього усі наявні ресурси. Підприємство має у своєму складі певний штат співробітників, які приймають участь у виробництві, а також склад обладнання за допомогою якого відбувається виготовлення продукції. Для забезпечення процесу виробництва сировиною, підприємство уклало договори на її поставку. Кількість сировини, що поставляється, також відома. Підприємство у своєму архіві зберігає відомості про минулі періоди виробництва, а саме кількість виготовленої продукції та ціни на неї. На підприємстві загалом виготовляється різновидів продукції, кожна з них має свою ціну () та мінімальну кількість, яку потрібно виготовити для дотримання умов договору. Максимальна кількість продукції, що виготовляється, обмежена попитом на неї. Підприємство має видів ресурсів які використовуються для виготовлення продукції, кожен з цих ресурсів має свій запас і відомі норми використання ресурсів для кожного виду продукції. Таким чином, проблема полягає в необхідності створення плану виготовлення продукції на поточній період, за яким би підприємство отримало максимальний прибуток. Після цього потрібно зробити прогноз ринкових цін на наступній період використовуючи ретроспективні дані (дані з архіву підприємства), тобто визначити значення коефіцієнтів (), та за його результатами скласти подальший план, який також максимізуватиме прибуток. Періодом в даному контексті будемо вважати проміжок часу, на який укладаються договори з клієнтами та постачальниками, або наймаються працівники.
3.2 Математична постановка задачіПункти 3.2.1 та 3.2.2 представлені як приклади, а взагалі п.3.2 можна не розділяти на підпункти3.2.1 Задача складання та прогнозування плану випуску продукціїПризначенням цієї задачі є побудова оптимального, з точки зору прибутку, плану випуску продукції та надання підприємству прогнозів плану виготовлення продукції на майбутні періоди. Дано: кількість різновидів продукції, що виготовляється на підприємстві – ; кількість видів наявних ресурсів – ; значення цінових коефіцієнтів на одиницю продукції -го виду ‒ ,; запаси ресурсів -го виду ‒ ; матриця витрат ресурсів на виготовлення продукції ‒ , в якій- затрати -го виду ресурсу на -й вид продукції; значення цінових коефіцієнтів параметричної складової ЦФ для кожного -го виду продукції ‒ ,. Змінні: - кількість продукції, що буде виготовлено -го типу, де . В матричному вигляді математична постановка задачі буде мати наступний вигляд. Цільова функція – максимізувати прибуток від продажу виготовленої продукції. Дана задача є задачею параметричного програмування з параметром у цільовій функції [2]. 3.2.2 Задача прогнозування ринкових цінПризначенням цієї задачі є визначення коефіцієнтів параметричної складової задачі, тобто значень вектора . Для визначення коефіцієнтів параметричних складових задачі (3.1)-(3.4) необхідно застосувати один з методів оцінки невідомих величин. До таких методів оцінки відносяться: метод найменших квадратів (МНК), зважений метод найменших квадратів, метод - оцінок та метод найменших модулів (МНМ) [1]. При розробці комплексу задач для визначення вектору застосовувався МНМ, в ньому мінімізується наступна функція (сумарне відхилення): де – невідомі параметри; – функція, параметри якої ми оцінюємо; – результати -го спостереження . … 3.3 Обґрунтування методу розв’язанняЗадача (3.1)-(3.4) є класичною задачею лінійного параметричного програмування (ЗЛП) [7], а задача (3.5) може бути зведена до ЗЛП, тому розв’язувати їх будемо використовуючи алгоритми розроблені для даного класу задач. Загальним методом розв’язання задач даного класу є симплекс-метод. Симплекс-метод – метод розв'язання задачі лінійного програмування, в якому здійснюється скерований рух по допустимим базисним розв’язкам до знаходження оптимального розв'язку; симплекс-метод також називають методом поступового покращення плану. Метод був розроблений американським математиком Джорджем Данцигом у 1947 році. В основі методу параметричного програмування для ЗПП з параметром у цільовій функції лежать процедури прямого симплекс-методу з деякою модифікацією, отже для задачі (3.1)-(3.4) будемо застосовувати процедури алгоритму саме цього методу. Стосовно задачі (3.5), то вона зводиться до задачі лінійного програмування, що дозволить розв’язати її симплекс-методом. 3.4 Опис методів розв’язанняОсновною математичною задачею, яку розв’язує даний комплекс, є задача параметричного програмування з параметром у цільовій функції. Параметричне програмування – це метод визначення того, як міняється розв’язок задачі зі зміною всіх компонент вектора коефіцієнтів ЦФ. Нехай при задача має оптимальний розв’язок . Без втрати загальності припустимо, що в оптимальному розв’язку небазисні змінні мають номери 1,…,. Запишемо перетворену задачу, відповідну оптимальному розв’язку. Тут коефіцієнти складової обчислені на основі базису, оптимального відносно ЦФ при , так що компоненти вектора не обов'язково невід’ємні. При параметрична складова не грає ніякої ролі. При збільшенні від нуля відбувається поворот вектора-нормалі ЦФ , при досягненні певного значення це може призвести до зміни оптимуму. Продовжимо аналіз задачі. При збільшенні від нуля загальна ЦФ набуває значення. Розв’язок залишається оптимальним до тих пір, поки виконуються умови. Узагальнимо описаний вище метод у вигляді покрокового алгоритму: Крок 0. ЗНАЙТИ розв’язок початкової ЗЛП при . Крок 1. ЯКЩО для всіх ( - множина індексів небазисних змінних), поточний розв’язок залишається оптимальним при всіх скільки завгодно великих , СТОП. ІНАКШЕ ЗНАЙТИ і відповідне. Крок 2. ЯКЩО , то ми визначили всі розв'язки в наперед заданому діапазоні зміни параметра , СТОП. Крок 3. ЯКЩО для всіх ( - множина індексів базисних змінних), то при зміні базису ЦФ стає необмеженою (якщо в стовпці, що відповідає змінній , всі коефіцієнти не додатні, то при всіх ЦФ необмежена зверху), СТОП. ІНАКШЕ ЗНАЙТИ змінну, яку виводимо з базису, за допомогою виразу. Нехай мінімум відповідає індексу . Крок 4. ВИКОНАТИ операцію заміщення: ввести в базис змінну , вивести з базису змінну . Крок 5. ПЕРЕЙТИ на Крок 1. Висновок до розділуВ даному розділі була сформульована змістовна та математична постановки задачі складання плану виробництва з урахуванням динаміки ринкових цін продукції та визначено, що вона належить до класу задач параметричного програмування. Була також сформульована допоміжна задача визначення коефіцієнтів параметричної складової цільової функції попередньої задачі. Виконано зведення допоміжної задачі до задачі лінійного програмування. Наведено детальний опис алгоритмів розв’язання задачі параметричного програмування та задачі визначення параметричної складової, в основі яких лежить застосування симплекс-методу. 4 Програмне та технічне забезпечення4.1 Засоби розробкиПриклад 1 При створенні програмного продукту були використанні оболонка програмування на Java [20], як IDE Eclipse Helios [21]. Одне з головних переваг мови Java - її незалежність від платформи, на якій виконуються програми. Таким чином, один і той самий код можна запускати під управлінням операційних систем Windows, Linux, FreeBSD, Solaris, Apple Mac та ін. Це стає дуже важливим, коли програми завантажуються за допомогою глобальної мережі Інтернет і використовуються на різних платформах. Іншим, не менш важливою перевагою мови Java, є велика схожість з мовою програмування C++. Тому тим програмістам, які знайомі з синтаксисом С і С++ буде просто освоїти Java. Крім того, Java - повністю об'єктно-орієнтована мова, навіть більшою мірою, ніж С++. Всі сутності в мові Java є об'єктами, за винятком небагатьох основних типів (primitive types), наприклад чисел. Свого часу об'єктно-орієнтоване програмування (ООП) замінило структурне програмування. Java Архітектура для XML Binding (JAXB) [15] дозволяє розробникам мапувати (ставити у відповідність) класи )Java у XML файли. JAXB має дві основні властивості: здатність створювати класи Java з XML і навпаки - створювати XML файли з класів Java [16]. JAXB особливо корисна, коли специфікаціґ є складною і часто змінюється. JAXB є частиною платформи Java SE і одним з інтерфейсів API у платформі Java EE, також є частиною Java Web Services Development Pack (JWSDP). JAXB 1.0 був розроблений в рамках Java Community Process як JSR31. Приклад 2 При створенні програмного продукту були використані такі засоби для програмування на Python як IDE Eclipse [10] з плагіном PyDev [11] а також база даних MySQL. Python [12] проста у використанні, та водночас повноцінна мова програмування, що надає багато засобів для структурування і підтримки великих програм. Вона краще за С обробляє помилки, і, будучи мовою дуже високого рівня, має вбудовані типи даних високого рівня, такі як гнучкі масиви і словники, ефективна реалізація яких на C потребує значних витрат часу. Python дозволяє розбивати програми на модулі, що потім можуть бути використані в інших програмах. Python поставляється з великою бібліотекою стандартних модулів, які можна використовувати як основу для нових програм або як приклади при вивченні мови. Стандартні модулі надають засоби для роботи з файлами, системними викликами, мережними з'єднаннями і навіть інтерфейсами до різних графічних бібліотек. Python - інтерпретована мова, що дозволяє заощадити значну кількість часу, що зазвичай витрачається на компіляцію. Інтерпретатор можна використовувати інтерактивно, що дозволяє експериментувати з можливостями мови, писати шаблони програм або тестувати функції при розробці “знизу-вверх”. Він також зручний як настільний калькулятор. Python дозволяє писати дуже компактні й зручні для читання програми. Програми, написані мовою Python, звичайно значно коротші еквівалента на C або C++ з декількох причин: – типи даних високого рівня дозволять Вам виразити складні операції однією інструкцією; – групування інструкцій виконується за допомогою відступів замість фігурних дужок; – немає необхідності в оголошенні змінних; Python розширювана мова: знання C дозволяє додавати нові функції, що вбудовуються, або модулі для виконання критичних операцій з максимальною швидкістю або написання інтерфейсу до комерційних бібліотек, доступним тільки у двійковій формі. Інтерпретатор мови Python може бути вбудований у програму, написану на C, і використовувати його як розширення або командну мову для цієї програми. Python використовується в даний час десятками тисяч програмістів в усьому світі, і число людей, що використовують його, швидко зростає, подвоюється і потроюється щороку. Python приваблює користувачів з ряду причин. Він використовується для розробки програм і дозволяє провести розробку набагато швидше, ніж традиційні мови типу C, C++ або Java . Ця мова працює однаково добре на Windows, UNIX, Macintosh, і OS/2, може використовуватися, для легкої розробки як малих додатків чи сценаріїв, так і для розгортання великих програм. Python пропонує доступ до могутнього і легкого у використанні комплекту 29 інструментальних засобів графічного інтерфейсу користувача. Традиційні машинні мови типу C і Pascal мають ряд характеристик, наприклад, сувора типізація, базові типи, складні (і звичайно довгі) цикли, і потреба у великих кількостях кодів для виконання відносно малих задач. Java досить новий, але розділяє більшість характеристик, включених у цей перелік. Програмісти, знайомі з традиційними мовами погодяться, що відсутність суворої типізації полегшує роботу з Python. Відмінностей Python від інших мов доволі багато, перерахуємо основні з них: – керування пам'яттю - цілком автоматичне — не потрібно хвилюватися щодо розподілу або звільнення пам'яті; немає загрози “небезпечного посилання”; Java - єдина мова, що пропонує таку концепцію. – типи зв'язані з об'єктами, а не зі змінними; це означає, що змінній може бути призначене значення будь-якого типу, і що (наприклад) масив може містити об'єкти різних типів; традиційні мови не надають такої можливості. – операції звичайно виконуються в більш високому рівні абстракції; це частково результат того, як написана мова, і частково результат розширеної стандартної бібліотеки кодів, що поставляється разом з Python. Ці та інші особливості Python роблять розгортання додатків надзвичайно швидким. Продуктивність створеного додатку залежить від його особливостей. Звичайно, для чисельного алгоритму, що виконує звичайну арифметику цілого числа в циклі 'for', неважливо, на якій мові він написаний. Але для “середнього” додатка, збільшення продуктивності може бути просто дивовижним. Один недолік Python, у порівнянні з найбільш традиційними мовами, полягає в тому, що це - не цілком компільована мова; замість цього, вона частково транслює програму до внутрішньої форми байт-коду, і цей байт-код виконується інтерпретатором Python. Однак, у перспективі – сучасні комп'ютери мають так багато невикористовуваного обчислювального потенціалу, що для 90% додатків швидкодія зв'язана з вибором мови. Java теж компілюється в байт-код, але в даний час працює повільніше ніж Python у більшості випадків. Крім того, дуже просто об'єднати Python з модулями, написаними на C або C++, які можна використовувати, щоб збільшити швидкість роботи програм в критичних ділянках. MySQL [13] — вільна система керування реляційними базами даних. Ця система керування базами даних (СКБД) з відкритим кодом була створена як альтернатива комерційним системам. MySQL з самого початку була дуже схожою на mSQL, проте з часом вона все розширювалася і зараз MySQL — одна з найпоширеніших систем керування базами даних. Вона використовується, в першу чергу, для створення динамічних веб-сторінок, оскільки має чудову підтримку з боку різноманітних мов програмування. MySQL — компактний багатопотоковий сервер баз даних. Характеризується великою швидкістю, стійкістю і простотою використання. MySQL був розроблений компанією «ТсХ» для підвищення швидкодії обробки великих баз даних. MySQL вважається гарним рішенням для малих і середніх застосувань. Вихідні коди сервера компілюються на багатьох платформах. Найповніше можливості сервера виявляються в UNІХ-системах, де є підтримка багатопотоковості, що підвищує продуктивність системи в цілому. Для некомерційного використання MySQL є безкоштовним. Можливості сервера MySQL: – простота у встановленні та використанні; – підтримується необмежена кількість користувачів, що одночасно працюють із БД; – кількість рядків у таблицях може досягати 50 млн.; – висока швидкість виконання команд; – наявність простої і ефективної системи безпеки.
4.2 Вимоги до технічного забезпечення4.2.1 Загальні вимогиСтруктура технічних засобів підприємства визначається виходячи із можливості їх забезпечити виконання встановлених операцій процесу технічного обслуговування, можливості інтегрування до існуючих систем, захищеності від несанкціонованого доступу, можливості здійснення операцій контролю уповноваженою персоною. Даний програмний продукт являє собою комплекс основних функцій процесу складання та прогнозування плану випуску продукції і призначений для використання співробітником підприємства, що працює у відповідному напрямі. Для правильної роботи даної програми до складу технічних засобів повинні входити: а) комп’ютер з такою конфігурацією: 1) процесор з тактовою частотою не нижче 1 ГГц; 2) достатній об’єм оперативної пам’яті (не менше 256 МБ); 3) інші складові можуть мати будь-які параметри, тому що вони не значним чином впливають на роботу програми; б) додатково має бути встановлене таке програмне забезпечення: 1) операційна система Windows XP/Vista/Seven; 2) база даних Oracle Database 10g Express Edition; 3) Net Framework 3.5 і вище; 4) Microsoft Word 2003/2007/2010. в) комп’ютерна периферія, до складу якої входить: 1) монітор; 2) мишка; 3) клавіатура; 4) принтер. 4.2.2 Опис локальної обчислювальної мережіОписувати тільки у випадку коли комплекс задач: має трирівневу архітектуру; потребує використання локальної мережі. Мережа підприємств (рисунок 4.1) складається з ПЕОМ головного менеджера, ПЕОМ менеджерів відділу збуту, ПЕОМ менеджерів відділу планування виконання замовлень, ПЕОМ головного бухгалтера, ПЕОМ IT-спеціалістів. ПЕОМ з’єднані в мережу за допомогою сітьового комутатора. Локальна мережа повинна бути захищена від зовнішніх чинників за допомогою міжмережевого екрану. Рисунок 4.1 – Структура мережі
4.3 Архітектура програмного забезпечення4.3.1 Діаграма класівНа рисунку 4.1 представлена структурна схема класів, які відповідають за виконання таких функцій програми, як встановлення з’єднання з СУБД Oracle, робота з даними, робота з транзакціями, складання та прогнозування плану випуску продукції та формування звітів «План виробництва». Діаграма містить п’ять класів, а саме: - «MainForm» - головний клас програми, відповідає за взаємодію програми з базою даних та містить основні функції роботи програми; - «PasswordForm» - клас, що відповідає за коректне з’єднання з базою даних та запускає головний модуль програм; - «ParametrPrograming» - клас у якому містяться функції, що виконують складання та прогнозування плану випуску продукції кожного виду; - «ForecastPrice» - клас функції якого виконують прогнозування ринкових цін; - «CreateReport» - клас призначенням якого є генерація звітів. Рисунок 4.1 – Структурна схема класів 4.3.2 Діаграма послідовностіНа рисунку 4.2 представлена схема структурна послідовності. На даній діаграмі представлена типова послідовність дій, які виконуються при складенні оптимального плану виготовлення продукції, надання підприємству прогнозів плану виготовлення продукції на майбутні періоди та формуванні звіту «План виробництва». Також визначено акторів та приналежність їм відповідних дій, необхідних для виконання поставленої задачі. Рисунок 4.2 – Схема структурна послідовності Далі, за допомогою діаграм послідовності опишемо дії, які виконуються при складанні плану випуску продукції та його прогнозуванні, а також при прогнозуванні ринкових цін. На рисунку 4.3 представлена схема структурна послідовності дій роботи алгоритму. На даній діаграмі представлена типова послідовність дій, які виконуються при виконання алгоритму планування та прогнозування. Рисунок 4.3 - Схема структурна послідовності дій роботи алгоритму планування та прогнозування На рисунку 4.4 представлена схема структурна послідовності дій роботи алгоритму, який використовується при прогнозуванні ринкових цін за ретроспективними даними. На даній діаграмі представлена типова послідовність дій, які виконуються при виконання алгоритму прогнозування ринкових цін. Рисунок 4.4 - Схема структурна послідовності дій роботи алгоритму прогнозування ринкових цін 4.3.3 Діаграма компонентів (або/та розгортання)У п.4.3.3 надається діаграма компонентів або розгортання. В разі необхідності можна включити обидві На рисунку 4.5 представлена схема структурна компонентів, на якій відображені компоненти, що використовуються в комплексі задач, та взаємозв’язки між ними. Основними компонентами в системі є співробітник підприємства, клієнтське застосування та СУБД Oracle. Рисунок 4.5 – Схема структурна компонентів 4.3.4 Специфікація функційПриблизний приклад (таблиця наведена неповна) Функції класів програмного забезпечення наведені в таблиці 4.9. Таблиця 4.9 Функції класів програмного забезпечення
4.4 Опис звітівЗа допомогою програми можливий збір статистичних даних для побудови звітів «План виробництва». Звіти створюються за допомогою відкритого COM-додатка, для роботи з сервером Microsoft Word. Даний додаток дозволяє посилати досить великий набір команд серверу Word і створювати звіти будь-якої складності та деталізації. При написанні коду будемо використовувати .Net збірку взаємодії з програмами Microsoft Office – Microsoft.Office.Interop.Word [12], для роботи нам потрібно лише одна частина даної збірки, а саме Word.Application. Головним в ієрархії об’єктів Word.Application є об’єкт Document. Інформація про об’єкти Document зберігається у вигляді посилань на відкриті документи у властивості Document. Document – це пустий лист, на якому генерується звіт «План виробництва». Звіт «План виробництва» генерується автоматично при виборі в програмі пункту меню «Згенерувати звіт» і зберігається під назвою «План.doc» в папці Reports, що знаходиться в кореневій папці. Згенерований звіт має вигляд зображений на рисунку 4.6, де показано … <Тут має бути зразок згенерованого звіту> Рисунок 4.6 – Вигляд звіту «План виробництва» Висновок до розділуДати висновок до цього розділу.
5 Технологічний розділ5.1 Керівництво користувачаВ підрозділі описуємо та за можливості демонструємо керівництво користувача. Приклад, який наведено нижче використовуємо як наглядний. Приклад: Для запуску програмного застосування можна скористатися двома шляхами: - з графічного інтерфейсу подвійним кліком лівою кнопкою миші по файлу bachelor.jar; - з консолі за допомогою команди java -jar bachelor.jar. Головне вікно застосування містить меню користувача, панель інструментів. Головне вікно застосування показано на рисунку 5.1. Рисунок 5.1 – Головне вікно програмного застосування Для підключення до БД потрібно вибрати пункт меню База, підпункт Підключення (рисунок 5.2). Там є можливість ввести параметри підключення, як показано на рисунку 5.3. Параметри підключення можна змінювати відповідно до встановленої БД. Рисунок 5.2 – Підключення до бази даних Рисунок 5.3 – Введення параметрів підключення до БД Далі, після натиснення на кнопку ОК, вводимо необхідні логін та пароль як показано на рисунку 5.4. Рисунок 5.4 – Введення логіна та паролю для підключення до БД Натиснувши на кнопку Оформити замовлення, з’явиться вікно (рисунок 5.5), куди слід ввести сої дані (назва підприємства, МФО підприємства, контактний телефон). Також слід вказати, яку продукцію і в який термін її слід доставити. Останнім вказується пункт призначення. Рисунок 5.5 – Оформлення замовлення на поставку продукції Щоб обрати поточну дату та дату поставки (день, до якою замовлення повинне обов’язкове бути виконане), слід натиснути на кнопку . Далі з’явиться календар (рисунок 5.6) і можна обрати зручну дату, натиснувши на останню. Рисунок 5.6 – Оформлення замовлення на поставку продукції (робота з календарем) Після введення усіх даних слід натиснути кнопку Підтвердити. Тоді з’явиться бланк з уведеною інформацією (рисунок 5.7). Якщо не всі поля були заповнені або були некоректно заповнені поля (рисунок 5.8), то з’явиться відповідне повідомлення (рисунок 5.9). Рисунок 5.7 – Інформація про замовлення Рисунок 5.8 – Некоректне заповнення інформації Рисунок 5.9 – Повідомлення про помилкове уведення даних Якщо інформація відповідає дійсності, то слід натиснути кнопку Підтвердити замовлення, якщо слід змінити інформацію, то кнопку Змінити дані. Після підтвердження замовлення з’явиться повідомлення про занесення замовлення до бази даних та про його оформлення (рисунок 5.10). Рисунок 5.10 – Повідомлення про оформлення замовлення Щоб переглянути види продукції, які виготовляються на підприємствах, слід натиснути на кнопку Перегляд продукції головного меню (рисунок 5.11). Рисунок 5.11 – Перегляд продукції Щоб переглянути інформацію про транспортний відділ, слід натиснути на кнопку Інформація про транспортний відділ головного меню (рисунок 5.12). Рисунок 5.12 - Перегляд інформація про транспортний відділ Щоб переглянути оптимальний план перевезення продукції потрібно натиснути на кнопку План доставки. Приклад побудови плану доставки та підрахунку витрат на доставку продукції можна переглянути на рисунку 5.13. Рисунок 5.13 – Побудова плану доставки продукції 5.2 Опис інсталяції програмного продуктуНеобхідно розписати послідовність дій для отримання робочої версії продукту 5.3 Випробування програмного продуктуНеобхідно представити результати проведених випробувань згідно програми та методики випробувань. Надається висновок щодо готовності програмного продукту до експлуатації.
5.4 Опис супроводження та виведення з експлуатації програмного продукту5.4.1 Опис супроводження програмного продуктуОписати дії що потребує супровід програмного продукту. 5.4.2 Опис виведення з експлуатації програмного продукту програмного продуктуОписати дії щодо виведення з експлуатації програмного продукту. Висновок до розділуДати висновок до цього розділу. 6 Розділ з охорони праці6.1 Консультант з охорони праці надасть відомості до розділу відповідно графіку консультаційВисновок до розділуДати висновок до цього розділу.
ЗАГАЛЬНІ ВИСНОВКИ У ході виконання дипломного проекту була детально розглянуті питання, які виникають в процесі створення плану виготовлення продукції на підприємстві та його прогнозуванні на майбутні періоди. Були виділені основні ключові етапи, притаманні процесу, та взаємозв’язки між ними. Був проведений ґрунтовний аналіз предметного середовища, ретельно описаний бізнес-процес розробки плану виробництва. На основі даних, отриманих в процесі аналізу, було сформульовано відповідну математичну задачу. Створення плану випуску продукції та його прогнозування на майбутні періоди за допомогою математичних методів допомагає підвищити прибутковості підприємства за рахунок складання оптимальних планів випуску продукції та їх прогнозів, що дозволить підприємству своєчасно змінити асортимент випуску продукції Для розробки програмного забезпечення була використана мова С# програмної платформи Microsoft Visual Studio 2008. Розроблена модель бази даних, яка дає змогу ефективно та надійно здійснювати доступ до даних, що надходять та використовуються в процесі створення плану виготовлення продукції на підприємстві та його прогнозуванні на майбутні періоди. Для управління базою даних обрана СУБД Oracle 10g XE. Наведена детальна інструкція користувача по експлуатації комплексу задач, описана методика проведення випробувань, яка показує можливість введення програми в експлуатацію. Перелік посилань При написанні переліку посилань використовуйте відповідні вимоги. З повагою ІЦ "KURSOVIKS"!
|