97097

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

Курсовая

Информатика, кибернетика и программирование

Система продажу комплектуючих обчислювальної техніки через мережу Інтернет повинна забезпечувати можливість легкого та інтуїтивного замовлення і подальшого отримання відповідного товару користувачем. Це дозволить залучити до інтернет-купівлі товарів нову аудиторію користувачів.

Украинкский

2015-10-13

4.08 MB

0 чел.

ВСТУП

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

До електронної комерції відносять електронний обмін інформацією (англ. Electronis Data Interchange, EDI), електронний рух капіталу (англ. Electronic Funds Transfer, EFS), електронну торгівлю (англ. E-Trade), електронні гроші (E-Cash), електронний маркетинг (англ. E-Marketing), електронний банкінг (англ. E-Banking), електронні страхові послуги (англ. E-Insurance) тощо.

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

Одним із підвидів електронної комерції є системи продажу товарів.

Об’єктом дослідження в даній курсовій роботі є системи продажу товарів  через мережу Інтернет. Предметом дослідження – є створення системи продажу комплектуючих обчислювальної техніки через мережу Інтернет.

Система продажу комплектуючих обчислювальної техніки через мережу Інтернет повинна забезпечувати можливість легкого та інтуїтивного замовлення і подальшого отримання відповідного товару користувачем. Це дозволить залучити до інтернет-купівлі товарів нову аудиторію користувачів. Люди, які рідко мали справу з комп’ютерами чи Інтернетом, зможуть легко орієнтуватись в такій системі та замовляти товар.На відміну від більшості інтернет-магазинів, які є веб-сайтами, система повинна бути окремою програмою, не залежною від браузера. Це дозволить уникнути декількох проблем, наприклад, нерозбірливості з великою кількістю вкладок браузера, що може призвести до випадкового закриття вкладки з магазином, чи навантаження браузера на оперативну пам'ять (в користувача можуть бути збережені в браузері вкладки, і для того, щоб зайти в магазин, потрібно їх усі завантажити).

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

Мета курсової роботи – написання системи продажу комплектуючих обчислювальної техніки через мережу Інтернет, залучення до інтернет-купівлі нової аудиторії користувачів та уникнення існуючих недоліків інтернет-магазинів.

  1.  АНАЛІЗ ПРЕДМЕТНОЇ ОБЛАСТІ ТА ВІДОМИХ РЕАЛІЗАЦІЙ СИСТЕМИ, ЩО ПРОЕКТУЄТЬСЯ

1.1 Аналіз предметної області

Електронний магазин - це реалізоване в мережі Інтернет представництво, шляхом створення Web-сервера для продажу товарів і послуг іншим користувачам мережі Інтернет. Електронний магазин називають також Інтернет-магазином [2]. Для нього повністю підходить визначення віртуального підприємства. Інакше кажучи, електронний магазин - це спільнота територіально роз'єднаних співробітників магазину (продавців , касирів ) і покупців, які можуть спілкуватися і обмінюватися інформацією через електронні засоби зв'язку при повній (або мінімальній) відсутностіпрямого контакту [4] .

Електронна торгівля в електронному магазині ґрунтується на тій же структурі, що і традиційна торгівля [3]. Порівняльна характеристика традиційної та електронної торгівлі наведена в табл. 1.1.

Таблиця 1.1 – Порівняльна характеристика традиційної та електронної торгівлі

Традиційний магазин

Віртуальний магазин

Торговий зал

Віртуальний магазин

Ходьба покупця по торговому залу і огляд товарів на полицях магазинів

Перегляд покупцем сторінок сервера

Особистий контакт покупця з продавцем (консультація)

Консультація у продавця (при необхідності) по комп'ютерній мережі або за телефоном

Вибір покупцем товару

Вибір покупцем товару

Замовлення товару

Замовлення товару через сервер

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

Пересилання продавцем по комп'ютерних мережах покупцеві рахунку на оплату замовленого товару

Оплата покупцем рахунку на товар в касі магазину готівкою або банківською картою

Оплата покупцем рахунку за допомогоюсистеми електронних платежів

Основні функції інтернет-магазину - це інформаційне обслуговування покупця, обробка замовлень, проведення платежів, а також збір та аналіз різної статистичної інформації [5].

Структура роботи інтернет-магазину досить проста і при певному підході не викликає ніяких труднощів. Схему роботи будь-якого інтернет-магазину можна описати так:

  1.  покупець заходить на торговий майданчик (веб-сайт або програму) вашого інтернет-магазину;
  2.  оформляє замовлення;
  3.  інтернет-магазин підтверджує замовлення і відправляє його в службу доставки;
  4.  кур'єрська служба або пошта доставляють товар;
  5.  покупець оплачує його;
  6.  початок постпродажної роботи з покупцем (реклама, маркетинг);
  7.  якщо покупець робить передоплату, то в цій схемі досить просто поміняти між собою пункти доставки та оплати.

Істотно відрізняє один від одного варіанти побудови електронних магазинів модель бізнесу, що використовується:

  1.  онлайновий магазин (відсутня традиційна торговельна мережа);
  2.  суміщення офлайнового бізнесу з онлайновим (коли електронний магазин створюється на основі діючої реальної торгової структури).

Безсумнівною перевагою володіють магазини другого типу :

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

Зробіть маленький абзац-висновок по підрозділу, щоб підрозділ не закінчувався макрером-кружочком.

 

1.2 Огляд відомих реалізацій системи, що проектується

В наш час в мережі Інтернет існують сотні тисяч електронних магазинів найрізноманітнішої тематики. Одні з них є універсальними, інші – спеціалізованими. Найпопулярніші інтернет-магазини світу мають аудиторію, що вимірюється десятками мільйонів користувачів. Серед найвідоміших магазинів можна виділити Amazon, BestBuy, GameStop, Walmart. Більша частина таких інтернет-магазинів є веб-сайтами.

Розглянемо ближче Amazon.com.

Amazon.com - один з перших інтернет-сервісів, орієнтованих на продаж реальних товарів масового попиту, найбільша у світі за обігом компанія, що продає товари та послуги через Інтернет.Створений в липні 1995 року американським підприємцем Джеффрі Безосом і спочатку продавав тільки книги. У червні 1998 року магазин починає продавати музичні записи, а в листопаді того ж року — відеопродукцію. Станом на 2011 рік сервіс Amazon.com охоплює 34 категорії товарів, у тому числі електронні книги, побутову електроніку, дитячі іграшки, продукти харчування, господарські товари, спортивні товари і багато чого іншого.

Компанія веде експансію на ринки інтернет-торгівлі за межами США: існують національні клони бренду Amazon в Канаді, Великобританії, Німеччини, Японії, Франції і Китаї [7].

З інтернет-магазинів електроніки України можна виділити такі: Rozetka, Fotos, Mobilluck, Deshevshe.netта інші. Найпопулярнішим майданчиком для інтернет-торгівлі в Україні є веб-сайт Rozetka.

Rozetka.ua, також відомий як Rozetka або Розетка — український інтернет-магазин електроніки, побутової техніки та інших категорій товарів; один із найпопулярніших в Україні. Крім Києва, має відділення в усіх обласних центрах України, Сімферополі і Севастополі. Згідно з дослідженням InMind, у листопаді 2010 - лютому 2011 входив до 15 найбільш відвідуваних сайтів в Україні із місячним охопленням інтернет-аудиторії у 28%-39% [8].

Дуже малий відсоток становлять програми для торгівлі через мережу Інтернет. Найпопулярнішими є ігрові сервіси торгівлі, такі як Steam, Origin або Uplay.

Steam – сервісцифрової дистрибуції від компанії Valve, відомого розробника відеоігор. Steam використовується для завантаження та активації ігор через інтернет, отримання автоматичних оновлень і новин, як для продуктів самої Valve, так і сторонніх розробників, серед яких є Activision, Codemasters, Eidos Interactive, Epic Games, GSC Game World, id Software, SEGA, THQ, Atari, Rockstar Games, UbiSoft, NCSoft та багато інших.

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

Замість придбання коробок з іграми, дисків, CD-ключів, користувач Steam отримує можливість завантажувати куплені ігри з Steam-серверів з будь-якого місця, де можливе використання Steam-клієнта.

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

Вставте зображення головних сторінок інтернет-магазинів, які Ви розглядаєте. Ще у Вас додасться 1 сторінка.

Саме через відсутність конкуренції на ринку програм продажу, ми створимо систему продажу комплектуючих обчислювальної техніки через мережу Інтернет«ICoreTec.

1.3 Постановка задачі на розробку програмного забезпечення

Система «ICoreTec повинна забезпечувати продаж комплектуючих обчислювальної техніки через мережу Інтернет.

У системі повинні бути передбачені:

  1.  класифікація усіх товарів по категоріям;
  2.  можливість реєстрації нових користувачів;
  3.  категорії користувачів: адміністратори та покупці;
  4.  можливість увійти у свій профіль;
  5.  можливість додавання нового товару у систему адміністратором;
  6.  можливість пошуку товару за назвою;
  7.  можливість пошуку товару по категоріям;
  8.  можливість пошуку товару за технічними характеристиками;
  9.  можливість скомплектувати власну обчислювальну систему;
  10.  корзина для додавання в неї обраних товарів;
  11.  можливість вибору доставки замовленого товару:
  12.  курєрська доставка;
  13.  самовивіз з поштового відділення УкрПошта;
  14.  самовивіз з відділення компанії перевізника;
  15.  самовивіз зі складу компанії;
  16.  можливість вибору перевізника для доставки замовленого товару:
  17.  можливість вибору варіанту оплати за товар;
  18.  оплата готівкою;
  19.  безготівковий розрахунок;
  20.  можливість отримання та друку бланку з переліком замовлених товарів;
  21.  можливість залишити відгук про товар;
  22.  можливість отримання інформації про усі здійснені замовлення користувачем, якщо він увійшов у систему;
  23.  можливість надання знижок для постійних покупців.

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

  1.  короткий і докладний описи кожного товару;
  2.  технічні характеристики кожного товару;
  3.  код кожного товару;
  4.  фотографії для кожного товару;
  5.  ціна товару у доларах та гривнях (в залежності від курсу);
  6.  гарантія для кожного товару;
  7.  наявність товару на складі.

У системі повинні бути:

  1.  інформація про компанію;
  2.  контактна адреса компанії;
  3.  контактні телефони компанії;
  4.  графік роботи;
  5.  допоміжна інформація.

Система повинна вміти обчислювати:

  1.  суму усіх товарів у корзині (як у доларах, так і у гривнях);
  2.  суму усього замовлення, включаючи доставку;
  3.  суму усього замовлення із знижкою.

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

2 ОБ’ЄКТНО-ОРІЄНТОВАНЕ ПРОЕКТУВАННЯ ПРОГРАМНОЇ СИСТЕМИ

 

2.1 Універсальна мова моделювання UML

UML (англ. Unified Modeling Language) — уніфікована мова моделювання, використовується у парадигмі об'єктно-орієнтованого програмування. Є невід'ємною частиною уніфікованого процесу розробки програмного забезпечення. UML є мовою широкого профілю, це відкритий стандарт, що використовує графічні позначення для створення абстрактної моделі системи, називаної UML-моделлю. UML був створений для визначення, візуалізації, проектування й документування в основному програмних систем. UML не є мовою програмування, але в засобах виконання UML-моделей як інтерпретованого коду можлива кодогенерація.

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

Діаграми дають можливість представити систему (як ділову, так і програмну) у такому вигляді, щоб її можна було легко перевести в програмний код.

Основною причиною використання мови UML є спілкування розробників між собою.

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

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

Практично усі CASE-засоби (програми автоматизації процесу аналізу і проектування) мають підтримку UML. Моделі розроблені в UML, дозволяють значно спростити процес кодування і направити зусилля програмістів безпосередньо на реалізацію системи.

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

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

Переваги UML:

  1.  UML дозволяє описати систему практично з усіх можливих точок зору і різні аспекти поведінки системи;
  2.  Діаграми UML порівняно прості для читання після досить швидкого ознайомлення з його синтаксисом;
  3.  UMLрозширюєідозволяєвводитивласнітекстовітаграфічні стереотипи, щосприяєйогозастосуваннянетількивсферіпрограмноїінженерії;
  4.  UML отримав широке поширення і динамічно розвивається [11].

Недоліки UML:

  1.  UMLвключає в себе багато діаграм і конструкцій, які не використовуються на практиці;
  2.  UML неточна і візуально неоднорідна. Має мало конкретних визначень і може трактуватись неоднозначно.
  3.  UML намагається бути придатною до застосування для багатьох галузей розробки [12].

Діаграма класів (Class diagram) відображає онтологію домену, за змістом еквівалентна структурі інформаційної моделі методу С.Шлєєра і С.Мелора, визначає склад класів об'єктів і їх зв’язків. Діаграма задається зображенням, на якому класи позначаються поділеними на три частини прямокутниками, а зв’язки — лініями, що з’єднують прямокутники. Це відповідає візуальному зображенню понять і зв'язків між ними. Верхня частина прямокутника — обов'язкова, в ній записується ім'я класу. Друга і третя частини прямокутника визначають відповідно список операцій і атрибутів класу, що можуть мати такі специфікатори доступу:

– рublic (загальний) позначає операцію або атрибут, доступ до яких здійснюється з будь-якої частини програми будь-яким об'єктом системи;

– protected (захищений) позначає операцію або атрибут, доступ до яких здійснюється об'єктами того класу, в якому вони оголошені, або об’єктами класів-нащадків,

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

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

Класи можна перебудувати в наступних відношеннях або зв'язках.

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

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

Екземпляризація – залежність між параметризованим абстрактним класом-шаблоном (template) і реальним класом, який ініціює параметри шаблону (наприклад, контейнерні класи мови С++) [13].

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

Генералізація – розширення одного класу іншим (наслідування).

Реалізація – реалізація певним класом методів, які задані в інтерфейсі.

2.2 Розробка загальної структурної схеми функціонування програмного засобу

Структурна схема — схема, яка визначає основні функціональні частини виробу, їх взаємозв'язки та призначення. Під функціональною частиною розуміють складову частину схеми: елемент, пристрій, функціональну групу, функціональну ланку[14].

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

Наведемо загальну структурну схемусистеми «ICoreTech» (рис. 2.1).

Рисунок 2.1 – Загальна структурна схема системи «ICoreTech»

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

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

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

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

2.3 Розробка UML-діаграм класів

Класи системи продажу комплектуючих обчислювальної техніки через мережу Інтернет умовно розділені на окремі модулі, які взаємодіють між собою та забезпечують повну функціональність системи. На рисунку 2.2 представлено UML діаграму на рівні усіх пакетів програмної системи.

Рисунок 2.2 – UML діаграма пакетів програмної системи

Опишемо детальніше кожен пакет класів.

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

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

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

Пакет AuxiliaryClassмістить класи, які відповідають за зовнішній вигляд таблиць у нашій системі.

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

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

Пакет:WindowClass.

Клас:WelcomeStartWindow

Відповідальність: відображення стартового вікна із запрошенням до системи. Можливість авторизуватись, зареєструватись або зайти до системи анонімно.

Методи:

public static WelcomeStartWindow getInstance() – створення стартового вікна, використовуючи шаблон проектування Singleton.

public void OnClickBtnRegister(JButton btn) – обробка натиснення на кнопку «Зареєструватись», створення вікна реєстрації.

public void OnClickBtnLogin(JButton btn) – обробка натиснення на кнопку «Авторизуватись», перевірка логіну і паролю, в разі успішної авторизації створюється головне вікно системи.

public void OnClickLoginDefaultButton(JButton btn) – обробка натиснення на кнопку «Використати аккаунт ICoreTech», анонімне використання, створення головного вікна системи.

Клас:RegisterPanel

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

Методи:

private boolean checkEqualsPassword() – перевірка, чи співпадають введені пароль і підтвердження.

private void completionOfData() - укомплектування реєстраційних даних в масив.

public void OnClickBtnRegister(JButton btn) - обробка натиснення на кнопку «Зареєструватись», формування запиту на оновлення бази даних.

public void OnClickBtnCancel(JButton btn) – обробка натиснення на кнопку «Відміна», закриття вікна реєстрації.

private void checkFieldRegistration() throws RegisterException, IllegalValueOfRegisterField – перевірка, чи усі поля реєстрації заповнені.

private boolean CheckRegisterField() – перевірка, чи заповнено кожне поле реєстрації.

private boolean checkOnIllegalValueOfRegisterField() – перевірка, чи не містить якесь поле реєстрації неправильних символів.

Клас:PositionOfWindows

Відповідальність:визначення координат розміщення вікон.

Методи:

public static void getScreenSize() – отримання розширення екрана користувача.

public static void setCenterPosition(JFrame frame) – встановлення вікна по центру екрана користувача.

Клас:Order

Відповідальність: створення вікна оформлення замовлення.

Методи:

public void OnClickCheckButton(JButton btn) – обробка натиснення на кнопку «Оформити», завершення оформлення замовлення, закриття вікна оформлення замовлення.

Клас:MainWindow

Відповідальність: створення головного вікна системи.

Методи:

public void OnSearchButton(JButton btn) - обробка натиснення на кнопку «Пошук», формування запиту до бази даних та вивід результату у таблицю.

public void OnShowBasketButton(JButton btn) - обробка натиснення на кнопку «Кошик», створення вікна з кошиком користувача.

public void OnClickUserInfoButton(JButton btn) - обробка натиснення на кнопку «Профіль», створення вікна з інформацією про користувача.

public void OnClickExitProfileButton(JButton btn) - обробка натиснення на кнопку «Вийти», закриття головного вікна системи.

private void showItemsOfCategory() – побудова таблиці в залежності від результату запиту до бази даних.

private void addDoubleClickForTable() – обробка подвійного натиснення на рядок головної таблиці, створення вікна детального опису відповідного товару.

private int addCheckBoxOnLeftPanel() – динамічна побудова лівої панелі з характеристиками товару для пошуку в залежності від обраної групи товарів.

private int buildLeftPanelOfCategory(JPanel panel, String []category, String [] engCategory, String[][] group) – динамічна побудова кожного пункту лівої панелі з характеристиками товару для пошуку в залежності від обраної групи товарів.

private void setPositionOfScrollPanelLeftSettings(int X, int Y, int newHeight, int n) – динамічне встановлення розмірів і позиції лівої панелі прокрутки з характеристиками товару для пошуку.

private int findBorder(JPanel panel) – динамічне встановлення розміру нижньої рамки.

private int findY(JPanel panel) – динамічне знаходження координати панелі по осі Y.

private int findHeight(JPanel panel) – динамічне знаходження висоти панелі.

private void addCheckBox(JPanel panel, String name, int n, String nameOfColumnDB) – динамічне створення чек-боксів на лівій панелі.

private void addCheckBox(JPanel panel, JLabel label, int n) – динамічне створення JLabel на лівій панелі.

private String whichCheckBox() – встановлення, який з пунктів чек-боксу активний.

private ArrayList whichShowGoods(ResultSet rs) throws SQLException – встановлення, який тип товарів буде відображатись у таблиці.

public String checkComboCheck() – формування запиту до бази даних.

Клас:DetailInformation

Відповідальність: створення вікна детального опису товару.

Методи:

public void OnClickIntoBasketButton(JButton btn) – обробка натиснення на кнопку «У кошик», додавання товару у кошик користувача.

Клас: Basket

Відповідальність: створення вікна з кошиком користувача.

Методи:

public void setTotalPriceLabel(int totalPrice) – відображення загальної суми товарів у кошику користувача.

public ModelBasketTable getMyModel() – отримання моделі таблиці.

public ArrayList<Goods> getListBasket() – отриманняListз товарами користувача.

public void OnClickBtn(JButton btn, JTable table, ModelBasketTable r) – обробка натиснення на кнопку «Оформити замовлення», закриття вікна з кошиком користувача, створення вікна офомлення замовлення.

public static Object setValueCell(ArrayList<Goods> list, int r, int c) – визначення, які дані мають відображатись у конкретній колонці таблиці.

public int countTotalPrice() – підрахування загальної суми товарів у кошику користувача.

public int getTotalPrice() – отримання загальної суми товарів у кошику користувача.

Пакет:AuxiliaryClass.

Клас:MainModelWindow

Відповідальність:визначення моделі таблиці у головному вікні системи.

Методи:

public void updateTable(ArrayList aList) – оновлення даних у таблиці.

public int getColumnCount() – отримання кількості колонок таблиці.

public Object getValueAt(int r, int c) – отримання встановлених значень в комірки таблиці.

public void addNewRow() – додавання нового рядка у таблицю.

public void removeAllRows() – видалення усіх рядку у таблиці.

public String getColumnName(int c) – встановлення назв колонок таблиці.

public boolean isCellEditable ( int row, int column ) – дозвіл на редагування комірки таблиці.

public static void setDesignTable(JTable table) – встановлення дизайну таблиці головного вікна системи.

Клас:ModelBasketTable

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

Методи:

public void setList(ArrayList<Goods> list) – встановлення List з обраними користувачем товарами.

public void updateTable(ArrayList aList) – оновлення даних у таблиці.

public int getColumnCount() – отримання кількості колонок таблиці.

public Object getValueAt(int r, int c) – отримання встановлених значень в комірки таблиці.

public void addNewRow() – додавання нового рядка у таблицю.

public void removeAllRows() – видалення усіх рядку у таблиці.

public String getColumnName(int c) – встановлення назв колонок таблиці.

public boolean isCellEditable ( int row, int column ) – дозвіл на редагування комірки таблиці.

public static void setDesignTable(JTable table) – встановлення дизайну таблиці головного вікна системи.

Клас:Renderer

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

Методи:

public static  void setStringPicture(String picture) – встановлення посилання на зображення товару.

public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) - визначення типу даних для конкретної колонки таблиці головного вікна системи.

Пакет: Databases

Клас:CreateConnection

Відповідальність:підключення до відповідної бази даних.

Методи:

public CreateConnection(String nameOfDB, String nameOfTable, String sQuery) – конструктор, що відповідає за підключення до відповідної бази даних.

public ResultSet getRs() – отримання результату запиту до бази даних.

public void endConnection() throws SQLException – відключення від відповідної бази даних.

Клас:GoodsDB

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

Методи:

public static ArrayList<ХХХ> getGoodsListOfХХХ() – отримання колеції з товарами відповідної категорії.

public static ArrayList getХХХ(ResultSet rs) throws SQLException – заповнення колекції товарами відповідної категорії, отриманих з бази даних.

Клас:UserDB

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

Методи:

public static boolean checkAuthorization(ResultSet rs, String login, String pass) throws SQLException – перевірка, чи введені користувачем логін та пароль, містять у базі даних.

private static User setUser(ResultSet rs) throws SQLException – отримання об’єкту класу User.

Клас:UserRegistration

Відповідальність:робота з базою даних при реєстрації користувача.

Методи:

public static void updateDB(ResultSet rs, Statement st, ArrayList dataofUser) throws SQLException – додавання в базу даних нового запису.

private static String getMonthString(int month) – отримання текстового формату місяця.

Пакет:LogicClass

Клас: User

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

Методи:

publicUser(), public User(ResultSet rs) throws SQLException – перезавантаженні конструктори, що заповнюють поля об’єкту User.

public String getХХХ()  - отримання значення поля ХХХ об’єкту.

Клас:Admin

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

Методи:

public void addGoods() – додавання нових товарів в базу даних.

public void removeUser() – видалення користувача з бази даних.

Клас:OrderData

Відповідальність: логічне представлення замовлення.

Методи:

public String getХХХ()  - отримання значення поля ХХХ об’єкту.

 Клас:Goods

Відповідальність: логічне представлення загального товару.

Методи:

public String getХХХ()  - отримання значення поля ХХХ об’єкту.

 Пакет: Exceptions

Клас:IllegalValueOfRegisterField

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

Методи:

public IllegalValueOfRegisterField() – конструктор, що виводить інформаційне вікно про помилку.

Клас:RegisterException

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

Методи:

public RegisterException () – конструктор, що виводить інформаційне вікно про помилку.

Наведемо UML-діаграми класів кожного з пакетів.

На рисунку 2.3 зображено UML діаграму класів, які входять до пакету WindowClass.

На рисунку 2.4 зображено UML діаграму класів, які входять до пакету LogicClass.

На рисунку 2.5 зображено UML діаграму класів, які входять до пакету Databases.

На рисунку 2.6 зображено UML діаграму класів, які входять до пакету AuxiliaryClass.

Рисунок 2.3UML діаграма класів пакету WindowClass

Рисунок 2.4UML діаграма класів пакету LogicClass

Рисунок 2.5UML діаграма класів пакету Databases

Рисунок 2.6UML діаграма класів пакету AuxiliaryClass

На рисунку 2.7 зображено UML діаграму класів, які входять до пакету Exceptions.

Рисунок 2.7 - UML діаграма класів пакету Exceptions

На рисунку 2.8 зображено UML діаграму усіх класів програмної системипродажу комплектуючих обчислювальної техніки через мережу Інтернет «ICoreTech».

Рисунок 2.8 – UML-діаграма усіх класів програмної системи продажу комплектуючих обчислювальної техніки через мережу Інтернет «ICoreTech»

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

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

На рис. 2.9 зображено блок-схему алгоритму авторизації у системіпродажу комплектуючих обчислювальної техніки через мережу Інтернет «ICoreTech».

Рисунок 2.9 – Блок-схема алгоритму авторизації користувача

Користувач вводить свої дані (логін та пароль) у відповідні поля стартового вікна системи. Після натиснення ним кнопки «Авторизуватись», у системі викликається метод public static boolean CheckAuthorization( ). Спочатку онуляється посилання user класу User, а також контрольна зміна check типу booleanприймає значення false. Потім у циклі while перебираємо усіх зареєстрованих користувачів з відповідної таблиці бази даних. Кожен раз перевіряємо, чи співпадають введені користувачем логін та пароль з отриманими із бази даних. У випадку знаходження користувача, userприсвоюється екземпляр класу User та наш метод повертає true. У противному випадку, при виході з циклу while ми перевіряємо значення зміної check. Якщо вона рівна false, система виводить на екран повідомлення, що користувач з такою комбінацією логіна та паролю не знайдений. Метод повертає false.

Аналогічно, в системіпродажу комплектуючих обчислювальної техніки через мережу Інтернет «ICoreTech» має бути передбачена реєстрація нового користувача. Користувач при бажанні може зареєструватись у системі, та в подальшому заходити в неї під своїм логіном і паролем. Реєстраційні дані будуть вноситись у відповідну таблицю бази даних системи. Для цього створимо алгоритм формування запиту на оновлення бази даних нашої системи при реєстрації користувача.

На рис. 2.10 зображено блок-схему алгоритму формування запиту на оновлення бази даних системипродажу комплектуючих обчислювальної техніки через мережу Інтернет «ICoreTech» при реєстрації користувача.

Користувач у стартовому вікні системи натискає кнопку «Зареєструватись». Створюється відповідне вікно реєстрації, де користувач вводить потрібні дані. Після натискання кнопки для реєстрації система з’єднується з базою даних та викликає метод voidUserRegistration.updateDB(), в який передаються введені дані, що укомплектовані в масив. Далі створюються пустий екземпляр класу StringBuilder та екземпляр класу Calendar (для отримання поточноъ дати). В цілочисленні змінні заносимо поточні день, місяць та рік. Потім за допомогою відповідного методу переводимо чисельне значення місяця у словесне. Далі створюємо початок запиту на оновлення БД. Переходимо  у цикл, який доповнює наш запит новими даними з масиву. Після виходу з циклу, закінчуємо запит поточною датою. Наприкінці, робимо запит на оновлення таблиці бази даних, передавши створений нами StringBuilder.

Рисунок 2.10 – Блок-схема алгоритму формування запиту на оновлення бази даних системи

3 ПРОГРАМНА РЕАЛІЗАЦІЯ ТА ТЕСТУВАННЯ  СИСТЕМИ

Систему продажу комплектуючих обчислювальної техніки через мережу Інтернет «ICoreTech»реалізовано за допомогою мови програмування Java. Проект створювався у середовищі програмування Eclipse.

3.1 Обґрунтування вибору мови та середовища програмування Java

Java - об'єктноорієнтована мова програмування, випущена компанією SunMicrosystems у 1995 році як основний компонент платформи Java. Зараз мовою займається компанія Oracle, яка придбала SunMicrosystems у 2009 році. Синтаксис мови багато в чому походить від C та C++. У офіційній реалізації, Java програми компілюються у байткод, який при виконанні інтерпретується віртуальною машиною для конкретної платформи.

Oracle надає компілятор Java та віртуальну машину Java, які задовольняють специфікації JavaCommunityProcess, під ліцезією GNU General Public License.

Мова значно запозичила синтаксис із C і C++. Зокрема, взято за основу об'єктну модель С++, проте її модифіковано. Усунуто можливість появи деяких конфліктних ситуацій, що могли виникнути через помилки програміста та полегшено сам процес розробки об'єктно-орієнтованих програм. Ряд дій, які в С/C++ повинні здійснювати програмісти, доручено віртуальній машині. Передусім, Java розроблялась як платформо-незалежна мова, тому вона має менше низькорівневих можливостей для роботи з апаратним забезпеченням. За необхідності таких дій java дозволяє викликати підпрограми, написані іншими мовами програмування[15].

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

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

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

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

Одним із таких методів є англ. just-in-time (JIT) компіляція, що перетворює Java байт-код у машинний під час першого запуску програми, а потім кешує його. У результаті, така програма запускається і виконується швидше, ніж простий інтерпретований код, але ціною додаткових витрат на компіляцію під час виконання. Складніші віртуальні машини також використовують динамічну рекомпіляцію, яка полягає в тому, що В. М. аналізує поведінку запущеної програми й вибірково рекомпілює та оптимізує певні її частини. З використанням динамічної рекомпіляції можна досягти більшого рівня оптимізації, ніж за статичної компіляції, оскільки динамічний компілятор може робити оптимізації на базі знань про довкілля періоду виконання та про завантажені класи. До того ж, він може виявляти так звані гарячі точки (англ. hot spots) —- частини програми, найчастіше внутрішні цикли, які займають найбільше часу при виконанні. JIT компіляція та динамічна рекомпіляція збільшує швидкість Java програм, не втрачаючи при цьому портативності.

Існує ще одна технологія оптимізації байткоду, широко відома як статична компіляція, або англ. ahead-of-time (AOT) компіляція. Цей метод передбачає, як і традиційні компілятори, безпосередню компіляцію у машинний код. Це забезпечує хороші показники в порівнянні з інтерпретацією, але за рахунок втрати переносності: скомпільовану таким способом програму можна запустити тільки на одній, цільовій платформі.

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

У намірах проектувальників Java мала замінити C++ — об'єктного наступника мови C. Проектувальники почали з аналізу властивостей C++, які є причиною найбільшого числа помилок, щоби створити просту, безпечну і безвідмовну мову програмування.

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

Eclipse — вільне модульне інтегроване середовище розробки програмного забезпечення. Розробляється і підтримується Eclipse Foundation. Написаний в основному на Java, може бути використаний для розробки застосунків на Java і, за допомогою різних плагінів, на інших мовах програмування, включаючи Ada, C, C++, COBOL, Fortran, Perl, PHP, Python, R, Ruby (включно з каркасом Ruby on Rails), Scala, Clojure та Scheme. Середовища розробки зокрема включають Eclipse ADT (Ada Development Toolkit) для Ada, Eclipse CDT для C/C++, Eclipse JDT для Java, Eclipse PDT для PHP.

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

  1.  можливість розробки ПЗ на багатьох мовах програмування (рідною є Java);
  2.  крос-платформова;
  3.  модульна, призначена для подальшого розширення незалежним розробниками;
  4.  з відкритим вихідним кодом;
  5.  розробляється і підтримуєтьсяфондом Eclipse, куди входять такі постачальники ПЗ, як IBM, Oracle, Borland.

Спочатку проект розроблявся в IBM як корпоративний стандарт IDE, настановлений на розробки на багатьох мовах під платформи IBM. Потім проект було перейменовано на Eclipse і надано для подальшого розвитку спільноті.

Eclipse насамперед повноцінна Java IDE, націлена на групову розробку, має засоби роботи з системами контролю версій (підтримка CVS входить у поставку Eclipse, активно розвиваються кілька варіантів SVN модулів, існує підтримка VSS та інших). З огляду на безкоштовність, у багатьох організаціях Eclipse — корпоративний стандарт для розробки ПЗ на Java.

Друге призначення Eclipse — служити платформою для нових розширень. Такими стали C/C++ Development Tools (CDT), розроблювані інженерами QNX разом із IBM, засоби для підтримки інших мов різних розробників. Безліч розширень доповнює Eclipse менеджерами для роботи з базами даних, серверами застосунків та інших.

З версії 3.0 Eclipse став не монолітною IDE, яка підтримує розширення, а набором розширень. У основі лежать фреймворки OSGi, і SWT/JFace, на основі яких розроблений наступний шар — платформа і засоби розробки повноцінних клієнтських застосунків RCP (Rich Client Platform). Платформа RCP є базою для розробки різних RCP програм як торент-клієнт Azareus чи File Arranger. Наступний шар — платформа Eclipse, що є набором розширень RCP — редактори, панелі, перспективи, модуль CVS і модуль Java Development Tools (JDT).

Eclipse написана на Java, тому є платформо-незалежним продуктом, крім бібліотеки графічного інтерфейсу SWT, яка розробляється окремо для більшості поширених платформ. Бібліотека SWT використовує графічні засоби платформи (ОС), що забезпечує швидкість і звичний зовнішній вигляд інтерфейсу користувача [17].

На рисунку 3.1 представлено вигляд головного вікна середовища програмування Eclipse.

Рисунок 3.1 – Зображення головного вікна програмного середовища Eclipse

3.2Програмна реалізація графічного інтерфейсу програми

Swing – інструментарій для створення графічного інтерфейсу користувача (GUI) мовою програмування Java. Це частина бібліотеки базових класів Java (JFC, Java Foundation Classes).

Swing розробляли для забезпечення функціональнішого набору програмних компонентів для створення графічного інтерфейсу користувача, ніж у ранішого інструментарію AWT. Компоненти Swing підтримують специфічні look-and-feel модулі, що динамічно підключаються. Завдяки ним можлива емуляція графічного інтерфейсу платформи (тобто до компоненту можна динамічно підключити інші, специфічні для даної операційної системи вигляд і поведінку). Основним недоліком таких компонентів є відносно повільна робота, хоча останнім часом це не вдалося підтвердити через зростання потужності персональних комп'ютерів. Позитивна сторона – універсальність інтерфейсу створених програм на всіх платформах[18].

За допомогою бібліотеки Swing було створено графічний інтерфейссистемипродажу комплектуючих обчислювальної техніки через мережу Інтернет «ICoreTech».

Графічний інтерфейс присутній у всіх класах пакету WindowClass.

На рис. 3.2 зображено стартове вікно системипродажу комплектуючих обчислювальної техніки через мережу Інтернет «ICoreTech», що реалізоване в класі WelcomeStartWindow.У стартовому вікні є можливість авторизації користувача, шляхом введення своїх логіна та паролю у відповідні поля та натиснення кнопки «Авторизуватись». Також є можливість перейти до реєстрації нового користувача або зайти у систему анонімно, використавши аккаунт ICoreTech.

На рис. 3.3 зображено реєстраційне вікно системипродажу комплектуючих обчислювальної техніки через мережу Інтернет «ICoreTech», що реалізоване в класі RegisterPanel.

Рисунок 3.2 – Стартове вікно системиICoreTech

Рисунок 3.3 – Реєстраційне вікно системиICoreTech

У реєстраційному вікні користувач може ввести дані для реєстрації та завершити реєстрацію, натиснувши кнопку «Зареєструватись».

На рис. 3.4 зображено головне вікно системипродажу комплектуючих обчислювальної техніки через мережу Інтернет «ICoreTech», що реалізоване в класі MainWindow. У цьому вікні реалізований пошук за характеристиками товару, за допомогою якого користувач обирає необхідні собі товари. У цьому вікні є кнопки «Профіль», що створює вікно з інформацією про користувача, «Кошик», що створює вікно з кошиком користувача, «Вийти», що закриває головне вікно, та «Пошук», що здійснює запит до бази даних.

Рисунок 3.4 – Головне вікно системи ICoreTech

На рис. 3.5 зображено вікно з кошиком користувача системипродажу комплектуючих обчислювальної через мережу Інтернет «ICoreTech», що реалізоване в класі Basket.У цьому вікні у вигляді таблиці відображаються усі обрані користувачем товари, їх кількість, ціна та обчислена загальна сума товарів. Натиснення на кнопку «Оформити замовлення» закриває вікно з кошиком та створює вікно оформлення замовлення.

Рисунок 3.5 - Вікно з кошиком користувача системиICoreTech

На рис. 3.6 зображено вікно з детальним описом товару в системіпродажу комплектуючих обчислювальної через мережу Інтернет «ICoreTech», що реалізоване в класі DetailInformation.У цьому вікні відображається більш детальна інформація про товар та передбачена можливість додавання даного товару у кошик користувача, шляхом натиснення кнопки «У кошик».

Рисунок 3.6 - Вікно з детальним описом товарусистемиICoreTech

На рис. 3.7 зображено вікно оформлення замовлення в системіпродажу комплектуючих обчислювальної через мережу Інтернет «ICoreTech», що реалізоване в класі Order.У цьому класі вказується додаткова інформація про доставку та оплату товару. Користувач також вказує номер телефону, для того, щоб з ним могли зв’язатись оператори. Внизу вказується загальна сума замовлення, включаючи доставку. Оформлення замовлення завершується після натиснення кнопки «Оформити».

Рисунок 3.7 – Вікно оформлення замовлення всистемі ICoreTech

3.3 Розробка структури бази даних

База даних (скорочено — БД) — впорядкований набір логічно взаємопов'язаних даних, що використовуються спільно та призначені для задоволення інформаційних потреб користувачів. У технічному розумінні включно й система керування БД.

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

З метою забезпечення ефективності доступу записи даних організовують як множину фактів (елемент даних).

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

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

Розробимо структуру бази даних системипродажу комплектуючих обчислювальної через мережу Інтернет «ICoreTech».

Для цього використаємо мову структурованих запитів SQL.

SQL (англ. Structured query language — мова структурованих запитів)- декларативна мова програмування для взаємодії користувача з базами даних, що застосовується для формування запитів, оновлення і керування реляційними БД, створення схеми бази даних і її модифікації, системи контролю за доступом до бази даних. Сам по собі SQL не є ні системою керування базами даних, ні окремим програмним продуктом. Не бувши мовою програмування в тому розумінні, як C або Pascal, SQL може формувати інтерактивні запити або, бувши вбудованою в прикладні програми, виступати в якості інструкцій для керування даними. Стандарт SQL, крім того, вміщує функції для визначення зміни, перевірки і захисту даних [20].

 На рис. 3.8 зображено структуру бази даних системипродажу комплектуючих обчислювальної через мережу Інтернет «ICoreTech».

Розроблена структура є ієрархічною та простою для розуміння. Загальна база даних системи складається з двох менших баз даних. Перша база даних Goods містить таблиці з конкретними товарами. Наприклад, вона містить таблиці CPU, Motherboard, RAM тощо. Друга база данихMyStoreмістить всі інші таблиці, в тому числі таблицю Users, що містить усіх зареєстрованих користувачів і таблицю Orders, що містить попередні замовлення кожного користувача.

 

Рисунок 3.8 – Структурна схема бази даних системи «ICoreTech»

3.4 Програмна реалізація основних модулів

Шаблони проектування програмного забезпечення (англ. software design patterns) — ефективні способи вирішення задач проектування програмного забезпечення. Шаблон не є закінченим зразком, який можна безпосередньо транслювати в програмний код. Об'єктно-орієнтований шаблон найчастіше є зразком вирішення проблеми і відображає відношення між класами та об'єктами, без вказівки на те, як буде зрештою реалізоване це відношення [21].

При проектуваннісистемипродажу комплектуючих обчислювальної через мережу Інтернет «ICoreTech» було використано один з найпопулярніших шаблонів проектування Singleton.

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

Для деяких класів важливо, щоб існував тільки один екземпляр. Глобальна змінна не вирішує такої проблеми, бо не забороняє створити інші екземпляри класу.Рішення полягає в тому, щоб сам клас контролював свою «унікальність», забороняючи створення нових екземплярів, та сам забезпечував єдину точку доступу. Це є призначенням шаблону Singleton [21].

Шаблон Singleton було використано при програмній реалізації стартового вікна системи. На рис. 3.9 наведений метод getInstance() класу WelcomeStartWindow, що перевіряє наявність екземпляру цього класу та повертає його.

Рисунок 3.9 - Метод getInstance() класу WelcomeStartWindow

Клас User і похідний від нього клас Admin містять у собі лише поля, відповідно до полів у таблиці Users  бази данихMyStore, а такожоб’єкти класу Basketта OrderData. З методів клас User містить лише відповідні getter’и усіх private-полів для доступу поза класом. На рис. 3.10 наведені поля класу User.

Рисунок 3.10Private-полякласу User

 Клас Goodsє абстрактним і містить загальні для усіх товарів поля (наприклад, назва, ціна, гарантія, наявність), а також їх getter'итаsetter'и.

Усі класи-товари наслідуються від абстрактного класу Goods та додають свої конкретні для категорії поля. Заповнення полів відбувається при створенні екземпляру класу у конструкторі. На рис. 3.11 наведені поля та конструктор класу CPU, що реалізує таку категорію товарів як процесор.

Рисунок 3.11 – Private-поля та конструктор класу CPU

З’єднання з базою даних відбувається за допомогою класу CreateConnection. У системі він реалізований у вигляді двох перезавантажених конструкторів. Перший приймає тільки назву бази даних та таблиці, і потрібен для загального з’єднання з базою. Другий на вхід також приймає рядок запиту, потрібен для побудови вибірки з конкретної таблиці. Завершення зєднання реалізовано у методі endConnection( ).На рис. 3.12 зображений код двох конструкторів класу CreateConnection.

Рисунок 3.12 – Реалізація з’єднання з базою даних у класі CreateConnection

Формування рядку запиту до бази даних при пошуку товару за характеристиками реалізовано у класі MainWindow. Для рядку запиту використано клас StringBuilder. У циклі перебираються усі відмічені на лівій панелі бокси та формується рядок за правилами мови SQL.

На рис. 3.13 зображена програмна реалізація формування рядку запиту до бази даних.

Рисунок 3.13 – Реалізація формування рядку запиту до бази даних у класі MainWindow

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

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

Тестування — це одна з технік контролю якості, що включає в себе:

  1. Плануванняробіт (Test Management)
  2. Проектуваннятестів (Test Design)
  3. Виконання тестування (Test Execution)
  4. Аналіз отриманих результатів (Test Analysis).

В системі для обробки незапланованих подій були програмно реалізовані виключення. Виключення містяться у класах IllegalValueOfRefisterFieldта RegisterException. Обидва класи наслідуються від загального Exception.

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

Клас RegisterExceptionвиводить на екран повідомлення про помилку, коли користувач, не заповнивши усі поля реєстрації, натискає кнопку «Зареєструватись».

Проведемо тестування системи на прикладі цих двох виключень. Введемо у відповідне поле логін, що починається з символу ‘* та натиснемо кнопку «Зареєструватись». З’явиться повідомлення «Поля мають починатись з літер», таким чином було перехоплено виключення  IllegalValueOfRefisterField. На рис. 3.14 зображено результат перехоплення виключення IllegalValueOfRefisterField.

Знову спробуємо зареєструватись, але не заповнимо одне з полів, та натиснемо кнопку «Зареєструватись». З’явиться повідомлення «Заповніть усі поля», що свідчить про перехоплення виключенняRegisterException. На рис. 3.15 зображено результат перехоплення виключення RegisterException.

Рисунок 3.14 – Перехоплення виключення IllegalValueOfRefisterField

Рисунок 3.15 – Перехоплення виключення RegisterException

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

ВИСНОВКИ

В ході курсової роботи були поставлені і вирішені наступні завдання:

  1.  аналіз предметної області, на основі роботи електронного магазина;
  2.  побудова UML-діаграми класів системи продажу товарів;
  3.  побудова структурної схеми бази даних;
  4.  проектування програмної системи продажу товарів;
  5.  програмна реалізація системи продажу товарів.
  6.  тестування реалізованої системи.

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

В результаті було спроектовано власну систему продажу комплектуючих обчислювальної техніки через мережу Інтернет «ICoreTech». Система написана об’єктно-орієнтованою мовою програмування високого рівня Java, під операційну систему Windows, з метою використання розробленої системи на персональних комп’ютерах користувачів.

Розглянуто та обґрунтовано переваги та недоліки об’єктно-орієнтованої мови програмування високого рівня Java, а також середовища розробки Eclipse.

В результаті даної роботи отримано якісний продукт – система продажу комплектуючих обчислювальної техніки через мережу Інтернет «ICoreTech», яка виправляє багато недоліків сучасних систем продажу товарів, отже, мета курсової роботи досягнута.

 

СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ

  1.  Мельник О.В. Електронна комерція як складова частина електронного бізнесу [Електронний ресурс] / О.В.Мельник. – Режим доступу: http://intkonf.org/melnik-ov-elektronna-komertsiya-yak-skladova-chastina-elektronnogo-biznesu/
  2.  Марков С.И. Как открыть Интернет-магазин пошаговое руководство для начинающих[Електронний ресурс] / С.И.Марков. – Режим доступу: http://www.emagazin.info/ru/how_to_start
  3.  Марков С.И. Клиенты Интернет магазинов - размеры не всегда имеют значение! [Електронний ресурс] / С.И.Марков. – Режим доступу: http://www.emagazin.info/ru/klienty_internet_magazinov
  4. Балабанов И.Т. Электронная коммерция / И.Т. Балабанов. –СПб.: Питер, 2001. – 336 с.
  5.  Коркин П.С. Программный комплекс управления Интернет-магазином [Електронний ресурс]/ П.С.Коркин. – Режим доступу: http://www.e-commerce.ru/biz_tech/ implementation/b2c/ishop_management.html#3
  6. Юрасов А.В. Электронная коммерция / А.В. Юрасов. – М.: Дело, 2003. – 480 с.
  7.  Саундерс Р. Бизнес путь: Amazon.com. Секреты самого успешного в мире веб-бизнеса / Р.Саундерс. – Крылов: Питер, 2003. – 233 с.
  8.  Ораджалієв А. Rozetka.ua: порог входа на рынок интернет-торговли электроникой сегодня составляет не менее $500 тыс. [Електронний ресурс]/ А.Ораджалієв. – Режим доступу: http://www.webcitation.org/6I3qgjPwv
  9.  Шепард Д. 35 Million Active Gamers on Steam Mark[Електронний ресурс]/ Д. Шепард. – Режим доступу: http://gamingbolt.com/35-million-active-gamers-on-steam-valve-hints-at-an-improved-source-engine
  10.  Фаулер М. UML. Основы./ М. Фаулер, К. Скотт — Пер. с англ. — СПб: Символ-Плюс, 2002. — 192 с.
  11.   Буч Г. Язык UML. Руководство пользователя. / Г. Буч, Дж. Рамбо,          А. Джекобсон — Пер. с англ. — М.: ДМК, 2000. — 432 с.
  12.  Літанова Є.П. Мова UML. Її зв’язок з сучасними підходами до розробки програмних систем.[Електронний ресурс]/ Є.П.Літанова. – Режим доступу: http://webkonspect.com/?room=group&id=7&labelid=169
  13.   Лаврищева Е.М. Программная инженерия[Електронний ресурс]/ Е.М.Лаврищева – Режим доступу: http://sestudy.edu-ua.net/ru/
  14. ДСТУ 3321-96 Система конструкторської документації. Терміни та визначення основних понять[Електронний ресурс]– Режим доступу: http://library.dmmi.edu.ua/indexing.php?r2=95748
  15.   Гослінг Дж. The Java Language Environment/ Дж. Гослінг, Г. МакГільтон — Пер. с англ. — М.: ДМК, 1995. — 85 с.
  16.  Гослінг Дж. The Java Language Specification, 2nd Edition/ Дж. Гослінг, Б. Джой, Дж. Стіл, Дж. Брачда — Пер. с англ. — М.: ДМК, 2011. — 373 с.
  17.   Тафт Д.К. Eclipse: Behind the Name[Електронний ресурс]/ Д.К. Тафт. – Режим доступу: http://www.eweek.com/c/a/Application-Development/Eclipse-Behind-the-Name/
  18.  Робінсон М. Swing Second Edition / М. Робінсон, П.Воробйов — Пер. с англ. — СПб.: Питер,2003. — 912 с.
  19.  Кузнецов С.Д. Основы баз данных. - 2-е изд. / С.Д. Кузнецов — М.: Интернет-университет информационных технологий; БИНОМ. Лаборатория знаний, 2007. — 484 с.
  20.   Оппель Е. SQL Demystified (First Edition) / Е. Оппель, Е.Дж. Оппель, Е. Оппель — М.: Дело, 2005. — 312 с.
  21.   Шаллоуей А. Шаблоны проектирования. Новый подход к объектно-ориентированному анализу и проектированию = Design Patterns Explained: A New Perspective on Object-Oriented Design / А. Шаллоуей, Дж.Р. Тротт — М.: «Вильямс», 2002. — 288 с.

ДОДАТКИ

ДОДАТОК А – Технічне завдання. Переробіть, будь-ласка, по шаблону, який я давала. Щоб у всіх однаково було.

Міністерство освіти та науки, молоді та спорту України

Вінницький національний технічний університет

Інститут інформаційних технологій та комп’ютерної інженерії

                 ЗАТВЕРДЖУЮ

        Зав. каф. КН, д.т.н., проф.

        __________ Перевозніков С.І.

        «__» _____________ 2014 р.

ТЕХНІЧНЕ ЗАВДАННЯ

На розробку системи продажу комплектуючих обчислювальної техніки через мережу Інтернет «ICoreTech».

  1.   Найменування та область застосування

Назва курсової роботи – «Розробка системи продажу комплектуючих обчислювальної техніки через мережу Інтернет». Область застосувань – звичайні користувачі персональних комп’ютерів, що здійснюють покупки в мережі Інтернет.

  1.   Підстави для розробки

Завдання на курсове проектування, протокол засідання кафедри КН  №10 від 17.01. 2012 р.

3. Мета та призначення розробки: підвищення знань з об’єктно-орієнтованого  програмування.

4. Вимоги до програмного забезпечення:

Функціональні характеристики:

Система «ICoreTec повинна забезпечувати продаж комплектуючих обчислювальної техніки через мережу Інтернет.

У системі повинні бути передбачені:

  1.  класифікація усіх товарів по категоріям;
  2.  можливість реєстрації нових користувачів;
  3.  категорії користувачів: адміністратори та покупці;
  4.  можливість увійти у свій профіль;
  5.  можливість додавання нового товару у систему адміністратором;
  6.  можливість пошуку товару за назвою;
  7.  можливість пошуку товару по категоріям;
  8.  можливість пошуку товару за технічними характеристиками;
  9.  можливість скомплектувати власну обчислювальну систему;
  10.  корзина для додавання в неї обраних товарів;
  11.  можливість вибору доставки замовленого товару:
  12.  курєрська доставка;
  13.  самовивіз з поштового відділення УкрПошта;
  14.  самовивіз з відділення компанії перевізника;
  15.  самовивіз зі складу компанії;
  16.  можливість вибору перевізника для доставки замовленого товару:
  17.  можливість вибору варіанту оплати за товар;
  18.  оплата готівкою;
  19.  безготівковий розрахунок;
  20.  можливість отримання та друку бланку з переліком замовлених товарів;
  21.  можливість залишити відгук про товар;
  22.  можливість отримання інформації про усі здійснені замовлення користувачем, якщо він увійшов у систему;
  23.  можливість надання знижок для постійних покупців.

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

  1.  короткий і докладний описи кожного товару;
  2.  технічні характеристики кожного товару;
  3.  код кожного товару;
  4.  фотографії для кожного товару;
  5.  ціна товару у доларах та гривнях (в залежності від курсу);
  6.  гарантія для кожного товару;
  7.  наявність товару на складі.

У системі повинні бути:

  1.  інформація про компанію;
  2.  контактна адреса компанії;
  3.  контактні телефони компанії;
  4.  графік роботи;
  5.  допоміжна інформація.

Система повинна вміти обчислювати:

  1.  суму усіх товарів у корзині (як у доларах, так і у гривнях);
  2.  суму усього замовлення, включаючи доставку;
  3.  суму усього замовлення із знижкою.

 

Програмне середовище:

- Висока швидкодія;

- Відкритість та доступність програмного коду;

- Низькі апаратні вимоги;

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

5. Вимоги до технічного забезпечення:

  1.  Операційна система – Windows XP/7, Linux;
  2.  Встановлений JDK.
  3.  Вимоги до надійності:
  4.  Система повинна мати надійну систему захисту особистої інформації зареєстрованих користувачів.
  5.  Система повинна передбачати контроль інформації, що вводиться користувачем.
  6.  Система повинна підтримувати можливість підключення одночасно більше 10000 користувачів.
  7.  Стадії та етапи розробки системи:
  8.  Розробка технічного завдання (1-2 тижні).
  9.  Розробка діаграм класів системи (3-6 тижні).
  10.  Розробка логіки роботи системи (6-10 тижні).
  11.  Розробка баз даних системи (11-15 тижні).
  12.  Розробка дизайну системи (16-17 тижні).
  13.  Етап об’єднання усіх вище вказаних частин у єдине ціле (18-23 тижні).
  14.  Тестування та запуск в експлуатацію системи (23-25 тижні).
  15.  Порядок контролю та прийому:
  16.  Роботи приймаються комісією із представників ЗАМОВНИКА (дві особи) та представника ВИКОНАВЦЯ (одна особа).
  17.  Тестування проводиться згідно методики, затвердженої ЗАМОВНИКОМ і ВИКОНАВЦЕМ.
  18.  По результатам проведення тестування складається протокол і надається як ЗАМОВНИКУ, так і ВИКОНАВЦЮ.
  19.  По успішному завершенню тестування складається Акт здачі-прийому робіт.

ДОДАТОК Б

Бібліографічні дослідження

Анотації до книжок повинні бути українською мовою. Це ж Ви самі маєте їх  написати, а не взяти так як в книжці

  1. Балабанов И.Т. Электронная коммерция / И.Т. Балабанов. – СПб.: Питер, 2001. – 336 с.

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

  1. Юрасов А.В. Электронная коммерция / А.В. Юрасов. – М.: Дело, 2003. – 480 с.

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

  1.  Саундерс Р. Бизнес путь: Amazon.com. Секреты самого успешного в мире веб-бизнеса / Р.Саундерс. – Крылов: Питер, 2003. – 233 с.

Какое название первым приходит на ум при словах интернет-магазин? Правильно, "Amazon.com" -один из пионеров в этой области, до сих пор удерживающий в ней лидирующие позиции. Однако оптимистично ли будущее этого патриарха сетевой торговли?

ДОДАТОК В

Інструкція користувача

Для запускусистеми продажу комплектуючих обчислювальної техніки через мережу Інтернет «ICoreTech» користувачу необхідно двічі натиснути на файл icore.exe. Після цього відкриється стартове вікно системи, де користувач може ввести свої логін та пароль для авторизації, перейти у вікно реєстрації, натиснувши кнопку «Зареєструватись», або увійти у систему анонімно, натиснувши кнопку «Використати аккаунт ICoreTech». У головному вікні системи користувач на лівій панелі відмічає необхідні характеристики товару, який він шукає. Після цього потрібно натиснути кнопку «Пошук». Справа у таблиці будуть відображатись усі товари, які підійшли під задані критерії пошуку. Обравши товар, потрібно двічі натиснуту на нього, після чого відкриється вікно з його детальним описом. Якщо товар сподобався користувачу, потрібно натиснути кнопку «У кошик», і товар відповідно з’явиться у кошику користувача. Після завершення вибору товарів, потрібно натиснути кнопку «Кошик», щоб відкрити вікно «Кошик». Якщо користувача все влаштовує, далі потрібно натиснути кнопку «Оформити замовлення» і перейти до відповідного вікна. Там потрібно вказати способи доставки та оплати товару, а також номер телефону, щоб з користувачем змогли зв’язатись оператори.Після натиснення на кнопку «Оформити» замовлення буде відправлено на обробку операторами. Щоб вийти із свого профілю, потрібно натиснути у головному вікні кнопку «Вийти». Щоб вийти із системи, достатньо натиснути червоний хрестик у верхньому правому куті програми.

ДОДАТОК Г

UML-діаграма класів

Рисунок Г.1 – Назва рисунка

І на рисунок посилання в тексті має бути.

Краще всі рисунки з UML-діаграмами винесіть в додатки, а в тексті зробіть на них посилання. В тексті можете залишити UML-діаграму пакетів.

ДОДАТОК Д  

Лістинг основних модулів програми

Стартове вікно системи

Оформлення таблиці головного вікна системи:

Авторизація користувача:

Вікно з кошиком користувача:

ДОДАТОК Е Зображення головних вікон програми

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


 

А также другие работы, которые могут Вас заинтересовать

18173. ВИНИКНЕННЯ ТА РЕАЛІЗАЦІЯ ПРАВА НА ЗЕМЕЛЬНУ ЧАСТКУ (ПАЙ), У ЗЕМЛЯХ ПЕРЕДАНИХ У КОЛЕКТИВНУ ВЛАСНІСТЬ 81.5 KB
  Лекція 14 ВИНИКНЕННЯ ТА РЕАЛІЗАЦІЯ ПРАВА НА ЗЕМЕЛЬНУ ЧАСТКУ ПАЙ У ЗЕМЛЯХ ПЕРЕДАНИХ У КОЛЕКТИВНУ ВЛАСНІСТЬ План: Виникнення права на земельну частку пай Виділення земельних часток паївв натурі із земель передану у колективну власність Оренда земельн...
18174. ПРАВОВЕ ЗАБЕЗПЕЧЕННЯ УПРАВЛІННЯ В ГАЛУЗІ ЗЕМЕЛЬНИХ ВІДНОСИН 83.5 KB
  Лекція 15. ПРАВОВЕ ЗАБЕЗПЕЧЕННЯ УПРАВЛІННЯ В ГАЛУЗІ ЗЕМЕЛЬНИХ ВІДНОСИН План: Поняття управління у галузі земельних відносин Організаційно – правове забезпечення управління в галузі земельних відносин Поняття функцій управління Встановлення меж ад
18175. ФУНКЦІОНАЛЬНО – ПРАВОВЕ ЗАБЕЗПЕЧЕННЯ УПРАВЛІННЯ В ГАЛУЗІ ЗЕМЕЛЬНИХ ВІДНОСИН 83 KB
  Лекція 16. ФУНКЦІОНАЛЬНО – ПРАВОВЕ ЗАБЕЗПЕЧЕННЯ УПРАВЛІННЯ В ГАЛУЗІ ЗЕМЕЛЬНИХ ВІДНОСИН План: Моніторинг земель Контроль за використанням відтворенням та охороною земель Землеустрій Вирішення земельних спорів Питання для самоконтролю Пит
18176. ЕКОНОМІКО-ПРАВОВИЙ МЕХАНІЗМ У ГАЛУЗІ ВИКОРИСТАННЯ, ОХОРОНИ ТА ВІДТВОРЕННЯ ЗЕМЕЛЬ 68 KB
  Лекція 17 ЕКОНОМІКОПРАВОВИЙ МЕХАНІЗМ У ГАЛУЗІ ВИКОРИСТАННЯ ОХОРОНИ ТА ВІДТВОРЕННЯ ЗЕМЕЛЬ План: Поняття та загальна характеристика економікоправового механізму у галузі використання охорони та відтворення земель Правове регулювання плати за землю. Загальн...
18177. ЮРИДИЧНА ВІДПОВІДАЛЬНІСТЬ ЗА ЗЕМЕЛЬНІ ПРАВОПОРУШЕННЯ 87 KB
  Лекція 21. ЮРИДИЧНА ВІДПОВІДАЛЬНІСТЬ ЗА ЗЕМЕЛЬНІ ПРАВОПОРУШЕННЯ План: Поняття та види юридичної відповідальності за земельні правопорушення Кримінальна відповідальність за злочини у галузі земельних відносин Майнова відповідальність за порушення зем
18178. ПРАВОВИЙ РЕЖИМ ЗЕМЕЛЬ СІЛЬСЬКОГОСПОДАРСЬКОГО ПРИЗНАЧЕННЯ 71.5 KB
  Лекція 22 ПРАВОВИЙ РЕЖИМ ЗЕМЕЛЬ СІЛЬСЬКОГОСПОДАРСЬКОГО ПРИЗНАЧЕННЯ План: Поняття земель сільськогосподарського призначення Склад земель сільськогосподарського призначення Особливості правового режиму земель сільськогосподарського призначеня Особ
18179. ПРАВОВИЙ РЕЖИМ ЗЕМЕЛЬ НАСЕЛЕНИХ ПУНКТІВ 77 KB
  Лекція 23 ПРАВОВИЙ РЕЖИМ ЗЕМЕЛЬ НАСЕЛЕНИХ ПУНКТІВ План: Поняття земель населених пунктів Склад земель населених пунктів Особливості правового режиму земель населених пунктів Особливості управління в сфері використання і охорони земель населених пункт...
18180. ПРАВОВИЙ РЕЖИМ ЗЕМЕЛЬ ПРИРОДНО-ЗАПОВІДНОГО ФОНДУ ТА ІНШОГО ПРИРОДООХОРОННОГО ПРИЗНАЧЕННЯ, РЕКРЕАЦІЙНОГО, ОЗДОРОВЧОГО, ІСТОРИКО-КУЛЬТУРНОГО ПРИЗНАЧЕННЯ 81 KB
  Лекція 24 ПРАВОВИЙ РЕЖИМ ЗЕМЕЛЬ ПРИРОДНОЗАПОВІДНОГО ФОНДУ ТА ІНШОГО ПРИРОДООХОРОННОГО ПРИЗНАЧЕННЯ РЕКРЕАЦІЙНОГО ОЗДОРОВЧОГО ІСТОРИКОКУЛЬТУРНОГО ПРИЗНАЧЕННЯ План: Поняття склад та особливості правового режиму земель природнозаповідного фонду Понятт...
18181. ПРАВОВИЙ РЕЖИМ ЗЕМЕЛЬ ЛІСОГОСПОДАРСЬКОГО ПРИЗНАЧЕННЯ 76 KB
  Лекція 25 ПРАВОВИЙ РЕЖИМ ЗЕМЕЛЬ ЛІСОГОСПОДАРСЬКОГО ПРИЗНАЧЕННЯ План: Поняття та склад земель лісогосподарського призначення їх співвідношення з понятям ліс Відмежування земель лісового фонду від земельних ділянок під нелісовими насадженнями Склад ...