Будь ласка, використовуйте цей ідентифікатор, щоб цитувати або посилатися на цей матеріал:
https://er.chdtu.edu.ua/handle/ChSTU/9203| Назва: | Розробка програмного забезпечення для адміністрування автосалону |
| Автори: | Скуцький, Артем Борисович Шах, Володимир Вікторович |
| Ключові слова: | адміністрування автосалоном;програмне забезпечення;об'єктно-орієнтований аналіз;UML;тестування;система управління;car dealership administration;software;object-oriented analysis;UML;testing;management system |
| Дата публікації: | 17-чер-2024 |
| Короткий огляд (реферат): | АНОТАЦІЯ
Кваліфікаційна робота бакалавра на тему «Розробка програмного забезпечення для адміністрування автосалоном» містить 98 сторінок, 1 таблицю, 20 рисунків, список використаних джерел з 40 найменувань, 1 додаток.
Метою виконання кваліфікаційної роботи бакалавра є створення ефективної системи управління каталогом автомобілів, замовленнями, клієнтами та оплатами, а також генерації звітів для автосалону.
Головні завдання при проектуванні інформаційної системи включають аналіз предметної області, розробку логічної структури системи, проектування інтерфейсу користувача з використанням компонентів Windows Forms, створення бази даних, проведення модульного, інтеграційного, системного та приймального тестування.
Об'єктом роботи є процеси управління автосалоном.
Предметом розробки є програмне забезпечення для адміністрування автосалоном.
Вирішено наступні поставлені задачі: аналіз існуючих методів та засобів управління автосалоном, розробка комплексного програмного забезпечення, яке забезпечує ефективне управління всіма аспектами роботи автосалону, тестування та впровадження розробленої системи. ABSTRACT The bachelor’s qualification work on the topic "Development of Software for Car Dealership Administration" contains 98 pages, 1 table, 20 figures, a list of used sources with 40 titles, and 1 appendics. The aim of the bachelor’s qualification work is to create an efficient system for managing the car catalog, orders, clients, and payments, as well as generating reports for the car dealership. The main tasks in designing the information system include the analysis of the subject area, development of the logical structure of the system, design of the user interface using Windows Forms components, creation of a database, and conducting unit, integration, system, and acceptance testing. The object of the work is the management processes of the car dealership. The subject of the development is software for car dealership administration. The following tasks were solved: analysis of existing methods and tools for car dealership management, development of comprehensive software that ensures efficient management of all aspects of the car dealership’s operations, testing, and implementation of the developed system. |
| URI (Уніфікований ідентифікатор ресурсу): | https://er.chdtu.edu.ua/handle/ChSTU/9203 |
| Розташовується у зібраннях: | 121 Інженерія програмного забезпечення (Інженерія програмного забезпечення) |
Файли цього матеріалу:
| Файл | Опис | Розмір | Формат | |
|---|---|---|---|---|
| Кваліфікаційна робота бакалавра Шах Володимир Вікторович.pdf Restricted Access | 17.94 MB | Adobe PDF | Переглянути/Відкрити Запит копії |
Усі матеріали в архіві електронних ресурсів захищено авторським правом, усі права збережено.
Extracted text
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ
Факультет інформаційних технологій і систем
Кафедра програмного забезпечення автоматизованих систем
ПОЯСНЮВАЛЬНА ЗАПИСКА
до кваліфікаційної роботи
«бакалавра»
освітній рівень
на тему: Розробка програмного забезпечення для адміністрування
автосалону
Виконав: студент 4 курсу, групи ПЗС-2244
Спеціальності
121 «Інженерія програмного забезпечення»
(шифр і назва напряму підготовки)
Студент Шах В.В.
(прізвище та ініціали)
Керівник Скуцький А.Б
(прізвище та ініціали)
Рецензент Біда А.Ю.
(прізвище та ініціали)
Черкаси 2024
Черкаський державний технологічний університет
повне найменування вищого навчального закладу
Факультет інформаційних технологій і систем
Кафедра програмного забезпечення автоматизованих систем
Освітній рівень бакалавр
Спеціальність 121 «Інженерія програмного забезпечення»
Освітня програма Інженерія програмного забезпечення
ЗАТВЕРДЖУЮ
Зав. кафедри ПЗАС, професор
_____________________________
«___» _______________ 2024 року
З А В Д А Н Н Я
НА КВАЛІФІКАЦІЙНУ РОБОТУ СТУДЕНТУ
Шах Володимир Вікторович
(прізвище, ім’я, по батькові)
1.Тему проекту (роботи) Розробка програмного забезпечення для адміністрування
автосалоном
Керівник проекту (роботи) Скуцький Артем Борисович
(прізвище, ім’я , по батькові, науковий ступінь, вчене звання)
Затверджені наказом Черкаського державного технологічного університету від « 10 » жовтня
2019 року №333/01
2. Строк подання студентом проекту (роботи) 2 червня 2024 р.
3. Вхідні дані до проекту (роботи) стандарти програмного забезпечення; процеси управління;
вимоги до проекту; календарне планування проекту; управління ризиками проекту;
управління ресурсами
4. Зміст розрахунково-пояснювальної записки (перелік питань, які потрібно розробити)
Вступ;
Існуючі методи та засоби вирішення поставлених завдань;
Впровадження результатів досліджень у практику;
Проектування програмного забезпечення інформаційних систем;
Розробка та тестування програмного забезпечення; Висновки;
Висновки;
Список використаних джерел;
Додатки.
5. Перелік графічного матеріалу (з точним зазначенням обов’язкових робіт проекту;
Слайд 1, Слайд 2, Слайд 4, Слайд 5, Слайд 6, Слайд 7, Слайд 8, Слайд 9, Слайд 10, Слайд 11;
6. Консультанти розділів проекту (роботи)
Прізвище, ініціали та посади Підпис, дата
Розділ
консультанта Завдання видав Завдання прийняв
1
2
3
7. Дата видачі завдання 05 грудня 2023 р.
КАЛЕНДАРНИЙ ПЛАН
Строк
виконання
№
Назва етапів випускної роботи етапів Примітки
п/п
випускної
роботи
1 Постановка задачі 05.12.2023 виконано
2 Підготовка завдання 13.12.2023 виконано
3 Погодження завдання 16.12.2023 виконано
4 Затвердження завдання 19.02.2024 виконано
Основна стадія
1 Підбір матеріалів 27.02.2024 виконано
2 Аналіз шляхів вирішення поставленої задачі 04.02.2024 виконано
3 Розрахунок основних параметрів роботи 10.03.2024 виконано
4 Вибір кінцевого варіанту проектного рішення 17.03.2024 виконано
5 Оформлення первісної редакції роботи 25.03.2024 виконано
Заключна стадія
1 Узгодження прийнятих проектних рішень з 31.04.2024 виконано
керівником
2 Оформлення пояснювальної записки роботи в 13.05.2024 виконано
кінцевій редакції
3 Попередній захист роботи 15.05.2024 виконано
4 Затвердження роботи 02.06.2024
5 Рецензування роботи 06.06.2024
6 Захист роботи 11.06.2024
Студент _____________________ Шах В.В.
(підпис) (прізвище та ініціали)
Керівник проекту (роботи) _____________________ Скуцький А. Б.
(підпис) (прізвище та ініціали)
АНОТАЦІЯ
Кваліфікаційна робота бакалавра на тему «Розробка програмного
забезпечення для адміністрування автосалоном» містить 98 сторінок, 1
таблицю, 20 рисунків, список використаних джерел з 40 найменувань, 1
додаток.
Метою виконання кваліфікаційної роботи бакалавра є створення
ефективної системи управління каталогом автомобілів, замовленнями,
клієнтами та оплатами, а також генерації звітів для автосалону.
Головні завдання при проектуванні інформаційної системи включають
аналіз предметної області, розробку логічної структури системи, проектування
інтерфейсу користувача з використанням компонентів Windows Forms,
створення бази даних, проведення модульного, інтеграційного, системного та
приймального тестування.
Об'єктом роботи є процеси управління автосалоном.
Предметом розробки є програмне забезпечення для адміністрування
автосалоном.
Вирішено наступні поставлені задачі: аналіз існуючих методів та засобів
управління автосалоном, розробка комплексного програмного забезпечення,
яке забезпечує ефективне управління всіма аспектами роботи автосалону,
тестування та впровадження розробленої системи.
КЛЮЧОВІ СЛОВА: адміністрування автосалоном, програмне забезпечення,
об'єктно-орієнтований аналіз, UML, тестування, система управління.
ABSTRACT
The bachelor’s qualification work on the topic "Development of Software for
Car Dealership Administration" contains 98 pages, 1 table, 20 figures, a list of used
sources with 40 titles, and 1 appendics.
The aim of the bachelor’s qualification work is to create an efficient system for
managing the car catalog, orders, clients, and payments, as well as generating reports
for the car dealership.
The main tasks in designing the information system include the analysis of the
subject area, development of the logical structure of the system, design of the user
interface using Windows Forms components, creation of a database, and conducting
unit, integration, system, and acceptance testing.
The object of the work is the management processes of the car dealership.
The subject of the development is software for car dealership administration.
The following tasks were solved: analysis of existing methods and tools for car
dealership management, development of comprehensive software that ensures
efficient management of all aspects of the car dealership’s operations, testing, and
implementation of the developed system.
KEYWORDS: car dealership administration, software, object-oriented analysis,
UML, testing, management system.
ЧДТУ.242253.014 ПЗ
ЗМІСТ
Перелік умовних скорочень ....................................................................................... 5
ВСТУП .......................................................................................................................... 6
1 ІСНУЮЧІ МЕТОДИ ТА ЗАСОБИ РОЗВ’ЯЗАННЯ ПОСТАВЛЕНИХ
ЗАВДАНЬ ..................................................................................................................... 8
2 ПРОЕКТУВАННЯ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ .................................. .14
2.1 Моделювання предметної області ............................................................... 14
2.1.1 Предметна область моделювання. Модель предметної області.
Словник предметної області ......................................................................... 14
2.1.2 Елементи моделювання предметної області ...................................... 18
2.1.3 Робоча область моделювання .............................................................. 21
2.2 Формування та аналіз вимог......................................................................... 23
2.2.1 Формування вимог до програмного забезпечення. Первинні і
детальні вимоги. Вимоги замовника і розробника. Функціональні та
нефункціональні вимоги ............................................................................... 23
2.2.2 Формування вимог за допомогою діаграми прецедентів ................. 27
2.3 Проектування логічної структури програмного комплексу ..................... 29
2.3.1 Діаграми класів ........................................................................................ 29
2.3.2 Діаграми пакетів ...................................................................................... 35
2.4 Архітектурне проектування ........................................................................... 37
2.4.1 Діаграма компонентів ........................................................................... 37
2.4.2 Розгортання програмної системи на апаратних засобах. Діаграма
розгортання.....................................................................................................39
2.5 Моделювання поведінки системи ................................................................ 40
2.5.1 Діаграма діяльності ................................................................................. 40
2.5.2 Діаграма послідовності ........................................................................... 42
2.5.3 Діаграма комунікації ............................................................................... 44
2.5.4 Діаграма скінченного автомату .............................................................. 46
3 РОЗРОБКА ТА ТЕСТУВАННЯ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ ............. 50
3.1 Розробка програмного комплексу................................................................ 50
ЧДТУ.242253.014 ПЗ
3.1.1 Обґрунтування вибору засобів реалізації ............................................. 50
3.1.2 Опис структурної (функціональної) схеми ........................................... 51
3.1.3 Опис логічної схеми системи ................................................................. 52
3.1.4 Розробка бази даних ................................................................................ 53
3.1.5 Розробка інтерфейсу користувача ......................................................... 57
3.1.6 Опис розробки програмних компонентів .............................................. 59
3.2 Тестування системи ....................................................................................... 64
3.2.1 Модульне тестування .............................................................................. 64
3.2.2 Інтеграційне тестування .......................................................................... 67
3.2.3 Системне тестування ............................................................................... 69
3.2.4 Приймальне тестування .......................................................................... 70
3.3 Приклади впровадженого програмного комплексу ................................... 73
ВИСНОВКИ ............................................................................................................... 79
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ ................................................................. 81
ДОДАТКИ .................................................................................................................. 84
ЧДТУ.242253.014 ПЗ
ПЕРЕЛІК УМОВНИХ СКОРОЧЕНЬ
ПЗ – Програмне Забезпечення
БД – База Даних
UML – Unified Modeling Language
DMS – Dealer Management Systems
CRM – Customer Relationship Management
ERP – Enterprise Resource Planning
ЧДТУ.242253 .014 fІЗ
ВСТУП
Аkї-уальність теми
Актуальність роботи викликано потребою створення програмного
забезпечення для автомобільних салонів вони в1щграють значну роль у
сучасному бізнес-середовищі , забезпечуючи покупців транспортними засобами
та надаючи супутні послуги . Ефективне адміністрування автосалоном вимагає
застосування сучасних інформаційних технологій для оптимізації процесів
управління, зберігання даних, аналітики продажів та взаємодії з клієнтами. На
сьогоднішній день відсутні універсальні програмні рішення, які б повюстю
відповідали потребам адміністрування автосалоном, що робить тему розробки
програмного забезпечення для цієї галузі актуальною.
Автомобільний ринок продовжує швидко розвиватися, збільшуючи
кількість транспортних засобів і підвищуючи вимоги до якості обслуговування
клієнтів так і для автосалонів програмне забезпечення яке полегшить роботу
автосалону. Зростаюча конкуренція змушує автосалони шукати нові способи
підвищення ефективності бізнес-процесів та покращення взаємодії з клієнтами.
Використання сучасних інформаційних технологій дозволяє автосалонам
автоматизувати рутиню завдання, що, у свою чергу, дозволяє пращвникам
більше часу придшяти безпосередньому обслуговуванню кшєнт1в
стратегічному плануванню.
Однією з головних проблем, з якою стикаються автосалони, є відсутність
інтегрованих систем управління, які могли б охоплювати всі аспекти діяльності,
від продажу автомобілів і управління запасами до сервісного обслуговування і
роботи з клієнтами. Існуючі рішення надають послуги але не програмне
забезпечення і не можуть забезпечити повноцінну автоматизацію та інтеграцію
всіх процесів, що призводить до збільшення часу і витрат на управління.
Мета і завдання розробки
Метою роботи є розробка програмного забезпечення для адміністрування
автосалоном, яке забезпечуватиме ефективне управління продажами, обліком
6
чп1 ·у.2422sз.о 14 пз
,,ouapiu, ю1ієнтс1)1<ими Jщними та і11111ими аспектами діяльності автосалону. ,для
)1.осягнення цієї мети нсобхіл.rю nирішити так і завдання :
Аналіз існуючих мстодіn та засобів роз в'язання поставлених завдань;
2 Проектуnання програмного забезпечення, включаючи модеmовання
предметної області та формування вимог;
З Розробка та тестування програмного комплексу;
4 Впровадження програмного забезпечення в реальне середовище.
5 Інформаційний пошук методів та засобів розв'язання заданих задач;
б Конструювання програмного забезпечення інформаційної системи
управлшня автосалоном;
7 Проектування програмного забезпечення інформаційної системи
управшння автосалоном:
8 Тестування усунення недоліків програмного забезпечення.
9 Провадження та супроводження програмного забезпечення.
Об'єктом розробки
Є процеси адміністрування автосалоном, що включають управшння
продажами, облік товарів, клієнтські взаємодії та аналітику.
Методи проектування та конструювання
Для досягнення поставленої мети застосовано такі методи:
1 Моделювання предметної області для визначення ключових елементів і
взаємозв'язків;
2 Використання д1аграм прецеденпв для формування вимог до
програмного забезпечення;
З Проектування логічної структури програмного комплексу за
допомогою діаграм класів і пакетів;
4 Архітектурне проектування з використанням д~аграм компонент1в 1
розгортання;
5 Моделювання поведшки системи за допомогою д~аграм діяльності,
послідовності , комунікації та скінченних автоматів.
7
Ч)~ТУ .242253 .О І 4 І ІЗ
Оннr ,>ч)шшншх рс·JуJн~татіо
У процесі роботи розробле110 програмний комплекс для адм1н1стрування
:нзто\.'злоно -t, що nю1ючас базу даних для зберігання інформації про автомобілі,
"л існтів. продажі та інвентаризацію. Забезпечено функціональність управління
продйжзмн. знзлітнки та звітності .
Практичне значення отр11ма1111х результатів
Розроблене програмне забезпечення має практичне значення для
автосалонів, оскільки дозволяє оптимізувати процеси управтння, знижувати
витрати та покращувати якість обслуговування клієнтів. Програмне забезпечення
може бути впроваджене в реальні автосалони, що підтверджується усmшним
тестуванням і позитивними відгуками від потенційних користувачів.
Отже, в ході виконання роботи, буде проведено аналіз існуючих методів та
засобів адміністрування автосалонами, спроектовано логічну та архітектурну
структуру програмного забезпечення, розроблено і протестована програмний
комплекс.
8
Ч) lt · .24,.,2.5J.0l 4 І П
t ІСНУІОЧt !\1ЕТОДІ1 тл ·1лсо1;11 І'О'JН'Я 'JЛ ІІН.И ГІО{;ТЛПJІЕНИХ
'JЛ НЛ,Л П 111
В 1\1,1..) -ty р1.). ·щі .11 і 11ро1Ю)\нтьсн 11щ,л і ·} 1 с11уючих методі в та 1асобі в
rщм ініструо:1ння tшто~зло11амн, що бQ1усться на досл ідженні наукових 1
т~хн ічннх джерt:л, вю110ч:.ночн науІ(ооі стю~гі , дисертації, підручники, монографії
тз Інтернет-сайти. Важлиuо зазначити, Lцо в останні роки спостері гається
--нзчний інтерес до використання інформаційних технологій у сфері управління
автосалонами, що зумовлює актуальність даного дослідження.
Сучасні автосалони стикаються з низкою проблем, пов'язаних 1з
управлінням продажами, обліком товарів, взаємодією з клієнтами та аналізом
даних. Основні проблеми включають:
1. Необхідність автоматизації процесів обліку та управління;
2. Забезпечення точності та актуальності даних;
З. Оптимізація процесів продажу та обслуговування клієнтів;
4. Впровадження аналітичних інструментів для прийняття обrрунтованих
р1шень.
У св1п ~снує ряд інформаційних систем та програмних р1шень,
спрямованих на вирішення вищезазначених проблем. Серед них можна виділити
таю системи:
Dealer Management Systems - комплексю програмю р1шення, яю
1нтегрують р1зю аспекти управшння автосалоном, включаючи продаж~,
маркетинг, фінанси та обслуговування клієнтів [1].
Customer Relationship Management системи управшння
взаємовідносинами з клієнтами, що дозволяють ефективно організувати роботу з
клієнтською базою, забезпечити персоналізований підхід та підвищити рівень
задоволеності клієнтів [2].
Enterprise Resource Planning - системи управління ресурсами підприємства,
які об'єднують управління фінансами, постачаннями, виробництвом та іншими
аспектами діяльності [З].
9
ЧЛТУ.242253 .014 І П
)tшt гл 116 11 10 1 't) 1щ·,умінш1 сфск·,·итюсті іс11уюt1и х метщ(іВ та ':!асобів
:щмініструuоння :штосшюноми, ро·J1'J1янемо їхні основні переваги та неrюліки
(T:t6J1. 1. l ).
Таблиця 1.1
Персваrн та недоліки існуючих методів та засобів
Переваги Недоліки
. .
1нтегрують р1зн1 аспекти Вартість впровадження та шдтримки
уттравл1ння автосалоном , включаючи DMS може бути досить високою,
продаж~, маркетинг, фінанси та особливо для невеликих автосалонів.
І обслуговування клієнтів.
І
j Автоматизують багато рутинних Впровадження DMS може бути
завдань, таких як управшння запасами, складним та тривалим процесом, що
обробка замовлень та ведення звітності. потребує значних ресурсів.
Забезпечують потужні аналітичні Іноді виникає залежюсть ВІД
інструменти для моніторингу показників конкретного постачальника
ефективності та прийняття програмного забезпечення, що може
обrрунтованих рішень. створювати додатков1 ризики.
W СRМ-системи забезпечують ефективне Вартість впровадження та шдтримки
управшння взаємовщносинами з СRМ-систем також може бути значною.
кшєнтами, дозволяючи покращити
обслуговування та ПІДВИЩИТИ
. . .
задоволеюсть кл1єнт1в.
Дозволяють здійснювати Інтеграція CRM з шшими системами
персоналізовані маркетингові кампанії та може бути складною та вимагати
пропозиції. додаткових ресурсш.
Забезпечують доступ до потужних Ефективність СRМ значною м1рою
анал1тичних інструмеитів для ОЦІНКИ залежить вщ якостІ введених даних.
ефективності маркетингових кампаній та Помилки в даних можуть призвести до
взаємодії з клієнтами. неправильних р1шень.
10
ЧДТУ.242253 .014 ПЗ
Продовження таблиuі І . l
}~R1(') ЕRР-СИС1'СМИ за б езпечують 8 арт'1 сть впровадження та підтримки
нентралізоЕзне зберігання та уnраnління ЕRР-систем може бути дуже високою,
даними, ЩО зменшує ймовірність особливо для малих 1 середніх
помилок та підвищує точність даних. пщприємств.
Дозволяють ефективно управляти Налаштування та впровадження ERP-
ресурсами пщприємства, включаючи системи є складним процесом, що
фінанси, логістику, виробництво та потребує значних ресурсів та часу.
ланцюг поставок.
ЕRР-системи автоматизують багато Впровадження ERP часто вимагає
бізнес-процесів, що шдвищує їхню значних зм1н у 1снуючих бізнес-
ефективність та зменшує витрати. процесах, що може зустріти опір з боку
персоналу.
Також проведемо огляд деяких існуючих програмних р1шень, а саме:
DealerSocket, Salesforce Automotive СRМ та SAP Automotive.
DealerSocket - це потужна система DMS, яка пропонує інструменти для
управління продажами, маркетингом, обслуговуванням клієнтів та аналітикою.
Вона забезпечує інтеграцію з різними зовнішніми системами та надає широкий
спектр функціональних можливостей [4].
Salesforce - провідна СRМ-платформа, яка адаптована для автомобільної
галузі. Вона дозволяє автоматизувати маркетингові кампанії, управління лідами
та взаємовідносинами з клієнтами, забезпечуючи високий рівень персоналізації та
аналітики [5] .
SAP пропонує р1шення ERP для автомобільної галуз1, яке охоплює вс1
аспекти управління ресурсами підприємства, включаючи фінанси, логістику,
виробництво та управління ланцюгом поставок [б].
Існуючі методи та засоби адміністрування автосалонами мають як переваги,
так і недоліки. Незважаючи на те, що сучасні інформаційні системи, такі як DMS,
СRМ та ERP, забезпечують широкий спектр функціональних можливостей та
інструментів для оптимізації бізнес-процесів, їх впровадження та підтримка
l l
Ч)\І 'У .24225J .01 4 І Гj
можуп, бути J\ор1)1 '11мн тн с1<щщннми. І (с нію<rестщ· 1-1собх ід11і сть ро1робки
L11снінлізон:1н11х про1-ро 1ннх рі,пет,, які б nілrrові1сали конкретним потребам
:Ш1'і.."Іl' t1лонш. а6сзпс\.\уючи ефективне управління , автоматизацію процесів та
1101':рnщення взає юдії з кл ієнтами.
Анзл із існуючих методів та засобів адміністрування автосалонами показав,
що сучаснt інформаційні технології можуть значно підвищувати ефективність
управління, оптимізувати процеси обліку та продажів, забезпечити високу
точність даних та покращити взаємодію з клієнтами. Проте, жодна з існуючих
систем не є уюверсальною, що шдтверджує необхідність розробки
спеціалізованого програмного забезпечення для конкретних потреб автосалонів.
Цей розділ надає обrрунтування для подальших досліджень та розробки
програмного забезпечення, яке б задовольняло специфічні потреби сучасних
1.1 Постановка задачі
Для розробки програмного забезпечення для адміністрування
автомобільного салону , який повинен мати зручний та зрозумілий інтерфейс та
функціонал для адміністратора, необхідно виконати наступні задачі:
на основі проведеного аналізу існуючих аналогів визначити можливості
для покращення програмного забезпечення для адміністрування
автомобільних салонів;
сформувати перелік функціональних та нефункціональних вимог до
програмного забезпечення;
сформувати структуру програмного забезпечення на основ~
сформованих вимог;
відповідно до структури розробити відповідні компоненти;
провести тестування та впровадження програмного забезпечення для
адміністрування автомобільного салону;
12
Ч) ~ТУ.242253 .0 1 4 113
ВИСНОВОК ДО ПЕРШОГО РОЗДІЛУ
З огляду на поточні проблеми та аналіз методів та р1 шень у сфері
автомобільних салонів, очевидно, що розвиток цієї галузі вимагає постійного
вдосконалення технологій та підході в. Зростання популярності автомобільних
салонів як місця покупок автотранспорту, послуг та зручностей, таких як
фінансові та страхові послуги, свідчить про необхідність автоматизації та
вдосконалення управшння такими закладами. Технологічні новації, такі як
розширена реальність та покращені системи управління, можуть полегшити
роботу адміністраторів автомобільних салонів та підвищити задоволеність
. .
клієнтів. З огляду на 1снуюч1 методи та р1шення, використаю для
адміністрування автомобільних салонів, можна зробити кілька висновків:
І Використання спеціалізованих програмних продуктів, таких як Dealer
Management Systems (DMS), може значно полегшити управління
автосалоном, забезпечуючи інтеграцію різних аспектів діяльності.
2 Системи Customer Relationship Management (СRМ) можуть допомогти
покращити взаємодію з клієнтами та забезпечити персоналізований
підхід до обслуговування.
З Використання Enterprise Resource Planning (ERP) систем дозволяє
ефективно управляти ресурсами підприємства, включаючи фінанси,
постачання та виробництво. Загалом, розробка спеціалізованого
програмного забезпечення для адміністрування автомобільних салонів
є важливою для поліпшення ефективності управління та забезпечення
задоволеност1 кл1єнт1в.
13
члт .242253.0 14 )13
2 ПРОЕКТУВАНВЯ ПРОГJ>лм11оrо ЗЛБЕЗПЕЧЕІ-ІНЯ
2. t 1\1одс-.11юв:11шя предметної облнсті
) цьо "-У підрозділі розглядається процес моделювання предметної області ,
я~нй є важливим етапом при розробці інформаційних систем. Моделювання
предметної області включає виявлення та анал із об'єктів і взаємозв'язк і в, які
необхідні для реалізації вимог і умов вирішення поставлених задач. Тут буде
детально описано методи і засоби ідентифікації компонентів предметної області,
побудову логічної моделі, яка ілюструє сутності у формі класів і їх
взає ювідносини, а також важливість використання цих моделей для успішного
проектування програмного забезпечення .
2.1.1 Предметна область моделювання . Модель предметно~ області.
Словник предметної області
Предметна область моделювання для управління автосалоном охоплює
різноманітні елементи торгівлі автомобілями та взаємодії з клієнтами:
1 Клієнти : це особи, які відвідують автосалон, переглядають автомобілі
та здійснюють покупки. Вони мають облікові записи, особисті дані,
інформацію про адресу доставки та інші дані, які використовуються під
час процесу покупок.
2 Автомобілі : транспортні засоби р1зних категорій, таких як легкоВІ
автомобілі, позашляховики, електромобілі тощо. Автомобілі мають
визначею характеристики (марка, модель, щна, техючю
характеристики, опис), які представлені у каталозі.
З Замовлення : інформація про покупки, зроблені клієнтами. Замовлення
мають номер, статус, відомості про доставку, обрані автомобілі та інші
детал1.
4 Бренди: виробники автомобілів, які представлені у салоні.
5 Категорії автомобілів : автомоб ілі можуть бути розд ілені на р1зю
категорії (легкові автомобілі , позашляховики, електромобіл і тощо), щоб
полегшити навігацію кл ієнті в у каталозі .
14
Ч)\ТУ.24 2253.0 1 4 ГІ1
6 lнформанія про шпомобіл і : rо·н оrн 1у1 ий rtеf)еЛІ І< ТЄХНІ ЧННХ
, артп рнспщ. <Н1Нс ,·а ;щлнп<оні ві;(омості про r<mкен конкрЄ'rний
антоJ\,юбі.11 1,, Щ<) с н наяшюс гі .
l \я прСJ11\Н:''11Н\ 06ш1с1·ь являс собою rrтирот<ий c rrerпp елемент,в, що
в3~KMOJ\tl{)'1'Ь у пронссі функніонуватrя автосалону, створюючи 131ртуальне
\.'Срс.щов1111tt' ;щя покупок та обслуt 't>nупаrrня клієнті в.
Розроб.11с1-н1 10/\сль предметної області лля управлt ння автосалоном
. .
включзс таю сутностt :
Авто ,обіді (Сю·s) :
ідентифікатор автомобіля ;
.fарка автомобіля;
модель автомобіля;
об'єм двигуна;
р1к випуску;
кошр;
щна.
2 Клієнти (Customers):
ідентифікатор клієнта;
ім'я·
'
пр1звище;
номер телефону;
електронна пошта.
з Співробітники (Employees):
ідентифікатор співробітника;
ім'я·
'
пр1звище;
посада;
зарплата;
дата найму.
4 Інвентар (Inventory):
15
ЧJ{І )/4J)~ \01 ,irr1
і 7\<.'Н 1 нфі ка1 ор rІн Т'О~юfіі iнr ;
кі.111,-к1t'1 ,, н~ ск ,м,і
Внроnннкп (М~nнf:1<'tПІ·<' ,·~) :
Ї l{ ~'н1 нфіка1'ор ннроfіннка;
Нй щв 1щро6пнкн ;
рнУна.
6 11р()1'НЖі (Sa les):
іл.снтифікатор пролажу;
ідентифікатор автомобіля ·
'
ідентифікатор клієнта;
дата продажу;
знижка;
щна;
ідентифікатор співробітника, що здійснив продаж.
7 Транзакції (Transactions):
ідентифікатор продажу;
дата та час транзакції;
метод оплати;
сума транзакції.
Терміни словника предметної області розробки програмного забезпечення
для адміністрації наведено у таблиці 2.1.
Таблиця 2.1
Словник предметної об.r1асті
Термін Опис
Автосалон Організація, ЩО займається продажем автомобілів р1зних
виробників, а також наданням супутніх послуг.
16
Ч ) \ i · .242253.О 14 Г11
f Іrо;щвжс1111sr таблиuі 2 l
l'pa11~11op1·1111 1·1, ·г:
,щ_· t,), ІІ\о 11рощн, r, ·sr ri ш11осюю111. Описується
ПН Н 1Н :11р11() ,
. , ,,мн , щ< мнр1<а (hгнn<І), молсm, (moclcl), об'єм
J\Вlll ' Н.\ (СІН>Ї1)•' '• ,
<=- '" l,\p,н. ., ·,t y), r1·1 < ниrrуст<у (усаг), 1<011ir (color) та
1\іна (р1·ісс ).
1· омпанія Яl('\ 1, б . . --
' ' ,нро )JТЯс аnтомоб1т . Or1иcyf'ThCЯ rrа·нюю (name)
та кр:.1їною 1юхо;\жс111н1 (coLІntгy).
Особа або орпші·~а~\ія, яка купує автомобілі в автосалон,.
nнс 'СТься такими атрибутами, як ім ' я (first name), прізвище
(la t па111е), номер телефону (phone number), адреса
електронної пошти (етаі І ) та адреса (address).
- півробітник Працівник автосалону, який займається продажем автомобілів,
обслуговуванням клієнтів та іншими завданнями. Описується
такими атрибутами, як ім 'я (first name), прізвище (last name),
посада (position) та заробітна плата (salary).
Замовлення Процес купівлі автомобіля клієнтом . Описується такими
атрибутами, як дата замовлення ( order date) , статус замовлення
(status), загальна сума (total amount) та спосіб оплати (payment
method).
Позиція Окремий автомобіль у замовленю. Описується КІЛЬКІСТЮ
замовлення (quantity) та ціною (price).
1
Інвентаризація Облік наявних автомобілів у автосалою. Описується
ідентифікатором автомобіля (car_id) та кількістю (quantity).
Транзакція Процес оплати замовлення кшєнтом. Описується датою
транзакції (transaction date), способом оплати (payment method)
та сумою (amount).
Каталог Перелік автомобілів, доступних для перегляду та замовлення в
автосалоні. Описується набором автомобілів з їх атрибутаrvш
(марка, модель, об'єм двигуна, рік випуску, колір, ціна).
17
L
Ч)ТГУ.242253.О 14 І І З
І rр одовження таблиці 2.1
l3іртушн)ннй 1<011 ·, ·сйнср, в який юrkrrт- сюrа;щє обрані для
покуп~<н а13томобілі пере;~ оформленням замовлення.
Опнсуєт1 ся на..: б ...
~ ором 11озищи ·1амовлення (Order ftem).
Автосалон як об'єкт досл ідження в бакалаврсь1<ій роботі є складним бізнес
nростором, де взаємодіють різноманітні процеси та елементи . Основна сутність
автосалону полягає в продажу та обслуговуванні автомобілів. Цей процес
0хоnлює рtзю аспекти, включаючи управління складом, облік клієнтів, ведення
технічної документації та інше.
Важливо враховувати, що кожен конкретний автомобіль може мати певний
ряд характеристик, таких як марка, модель, рік випуску, колір, технічні
характеристики та інше. Клієнти, у свою чергу, можуть мати власні унікальні
дані, такі як ім'я, адреса, телефон, пошта, інтереси в автомобілях та інше.
Одним із ключових елементів є управління запасами автомобілів, що
включає в себе ведення реєстрації автомобілів на склад~, визначення їх
технічного стану, управління постачаннями та інші аспекти.
В свою чергу, словник предметної області - це набір термшш та їх
визначень, які використовуються для опису об'єктів і процесів у контексті
інформаційної системи. Він є важливим артефактом для розуміння предметної
області та забезпечення єдиного підходу до аналізу і проектування. Нижче
наведено словник предметної області для програми адміністрування автосалоном.
Цей словник забезпечує єдине розум1ння терм1юв понять,
використовуваних у процесі аналізу і проектування системи адміністрування
автосалоном.
2.1.2 Елементи моделювання предметної області
У об'єктно-орієнтованих системах структура коду визначається класами
(узагальненими об'єктами). Класифікація означає, що об'єкти з однаковими
18
ч;~тУ.2422sз.о 14 11з
T)'J)a ~н даннх (атрн6ут·1 м11) 1· c1·pYJ(
< ' ІІовс;\·1 11кою (011сраціями) групуються у класи .
1' <) ')' · перш н1ж 11рнсту11ати J'1 (> 1,
·• , <', J с: , ·
\уваr111я, тrсоа ' j ясувати , як1 класи
•ін:1ло6ля1·ь~я. Лш• нашої роботи , нка нрисrшчена ро1рuбІ(і програмного
•і:~6с'і\\~ч~ння J,ля адм інkтруннпня аuтосшюrrом, rнпначимо основні класи та 1х
1
н·~:кМ<.)'Ш Я 'іКН. я ~ і бу;\уть включені в MOJ\cлr, прелметної області .
()rноІJ.ІІі СJІСМСНТІt модеJ1юnш111я предметної області:
Автомобіль - клас, що представляє автомобіль, який продається в
автосалоні . Включає основні характеристики автомобіля. Атрибути:
cat· id: i11t
Ьгалd: Stгi11g
шodel: St1·i11g
епgіпе _ capacity: float
уеаг: int
color: String
price: float
2 Виробник - клас, що представляє виробника автомобілів. Включає
інформацію про компанію-виробника. Атрибути:
manufacturer id: int
name: String
country: String
З Клієнт - клас, що представляє клієнта автосалону. Включає особисті
дані клієнта. Атрибути:
customer id: int
first_name: String
last_ name: String
phone_ number: String
email: String
4 Співробітник - клас, що представляє працівника автосалону. Включає
інформацію про посаду, заробітну плату та дату найму. Атрибути:
employee_ id: int
19
Ч) ~ТУ.24225 .0 14 113
fiгst_11a111c : Sti·i 11 J
lnst_ 11ш11с : St1·it1g
posi tio11: S11·i11g
sа Іаг : floнt
\1і1· _date: Date
5 Знмонлення - клас, що прелставляє процес купівлі автомобіля клієнтом.
Включає інформацію про дату замовлення, статус, суму та метод
оплати . Атрибути:
sale_id: іпt
sale _ date: Date
discount: float
ргісе: float
6 Інвентаризація - клас, що представляє облік наявних автомобілів у
автосалоні. Включає ідентифікатор автомобіля та кількість. Атрибути:
car id: int
quantity: int
7 Транзакція - клас, що представляє процес оплати замовлення клієнтом.
Включає інформацію про дату транзакції, спосіб оплати та суму.
Атрибути:
transaction id: int
sale id: int
transaction date: Date
payment_m ethod: String
amount: float
Відношення між елементами:
автомобіль - виробник: автомобіль виробляється виробником. це
відношення типу асоціації;
замовлення кл1єнт: замовлення оформлюється кшєнтом. це
відношення типу асоціації;
20
-
Ч)~ТУ .242253 .О І 4 J ІЗ
замооленн» - c11iвJJ G1',1. .
u ІІНІ<. ·н,мош1с1111я обробляється співробітником.
не ні),ношсння тину t\l:Ot\i iщiї;
замовлення - tн)·m11ія •им · ·
' " ОВJ 1е11нл : ·:1амоюr еr r ня мrстить одну або юлька
lЮЗН\\ЇЙ 'іЗМОШН.mня · р''в"' 131';т,1 '•'•") JITCJJ J ...
нr типу агрепщ11 ;
ПОЗНl\ІЯ З~МОlЗлення
автомобіт~ : позиція замовлення включає
автомобіль. не відношення типу асоціації;
інвентаризація - автомобіль: інвентаризація м1стить автомобіль. це
відношення типу асоціації;
транзакщя замовлення: транзакція стосується замовлення . це
відношення типу асоціації.
Ці елементи і їх взаємозв'язки формують основу моделі предметної області
для адміністрування автосалоном. Вони забезпечують структуру для подальшого
аналізу, проектування і реалізації інформаційної системи.
2.1.3 Робоча область моделювання
Робоча область моделювання для адміністрування автосалоном охопmоє
всі основні бізнес-процеси, які повинні бути враховані при розробці проrрамного
забезпечення. Це включає в себе управшння автомобілями, кл1єнтами,
співробітниками, замовленнями, інвентаризацією та транзакціями .
Опис бізнес-процесів:
1 Управління автомобілями:
автомобілі вносяться в систему з інформацією про виробника,
модель, об'єм двигуна, рік випуску, колір та ціну;
виробники додаються та асоціюються з відповідними автомобілями.
2 Управління клієнтами:
клієнти реєструються в системі з особистими даними, такими як ім'я,
прізвище, номер телефону, адреса електронної пошти та адреса;
клієнти можуть переглядати каталог автомобілів, додавати
автомобілі в кошик та оформляти замовлення .
З Управління співробітниками:
21
ЧДТУ.242253.0 1 4 ПЗ
сnівробітннкр
., )\О)Щ ІОТІ СЯ . . · .
. ' Jщ сис I еми з I нформац1єю про ім'я ,
nр1звищс, 11осаду 3, .
1
• • ' ~ Р0 6 ~тну І ~лату та дату найму;
спшробпниt<н ві;\поnіда .I. . ю ь 1а обробку замовлень, уnравшння
н-шснтарнзацією та вз.~.•. є· . .
модно з ктєнтами ·
4 "" прам.,н ня замовленнями : '
кшєнти оформлюю 1. ь замовлення, вибираючи автомобілі з каталогу
та додаючи їх до кошика·
'
замовлення містить інформацію про кшєнта, обрані автомобілі,
кількість , ціну , спо СІ' б оплати та статус замовлення ;
співробітники обробляють замовлення, перевіряючи наявюсть
автомобілів та передаючи їх на комплектацію;
5 Управління інвентаризацією:
інвентаризація ведеться для обліку наявних автомобілів у
автосалоні;
інформація про кількість автомобілів оновлюється при надходженні
нових автомобілів або продажу існуючих;
6 Управління транзакціями:
транзакції реєструються при оплаті замовлень клієнтами;
транзакція містить інформацію про дату, спосіб оплати та суму.
Як приклад робочої області моделювання розглянемо процес оформлення
замовлення в автосалою.
1 Клієнт заходить на сайт автосалону та переглядає доступні автомобілі;
2 Кожен автомобіль в каталозі описується артикулом, моделлю, роком
випуску, ціною та фото з коротким описом;
З Клієнт обирає автомобіль, вказує кількість та додає його до кошика;
4 Кошик може бути змінений : переглянутий, видалений товар, змінена
кількість позицій одного артикулу;
5 Коли КЛІЄНТ вир1шує придбати автомобілі, вш переходить до
оформлення замовлення;
22
ЧДТУ.242253.О 14 ПЗ
6 Клієнт tзІЗоднть соо·•· , 6 .
осо ист, .
· ) tc\111 та вибирає спосіб оплати (банківська
картка або rотіот<а);
7 Замоолсння 11остуttнє
. сніnробіт11и1<у автосалону, який перев1ряє
наsнзн 1сть НВ'І 'Омобіл і 13 . , ..
І а lІС І еда . І Х II U І(ОМПЛектацію ·
8 1· омірник зби~ ає замо '
влсння та робить відміп<у про готонність;
9 Замовлення видається · . . .
кшє1-11 у з , складу тсля одного робоLrого дня;
l О Комірник відмічає вс ·
истем1, що замовлення видане;
l 1 І л ієнт може відстежу
вати статус свого замовлення через систему.
2.2 Формування та аналіз вимог
У цьому підрозділі розглядаються процеси формування та аналізу вимог до
програмного забезпечення для адміністрування автосалоном. Формування вимог
є ключовим етапом У розробці програмного забезпечення, оскільки правильне і
повне визначення вимог визначає успішність проєкту. Важливо зрозуміти
потреби замовника та користувачів системи, визначити функціональні та
нефункціональні вимоги, а також створити діаграми прецедентів для візуалізації
взаємодії користувачів із системою. У цьому розділі будуть представлені методи
і підходи до формування вимог, їх аналізу та документування для забезпечення
чіткого розуміння цілей і завдань, які повинна вирішувати система.
2.2.1 Формування вимог до програмного забезпечення. Первинні 1
деталью вимоги. Вимоги замовника розробника. Функціональні та
нефункціональні вимоги
Формування вимог до програмного забезпечення
Для побудови програмного забезпечення адміністрування автосалоном
необхідно зрозуміти, які функції повинна виконувати система та які обмеження
на неї накладаються. Вимога - це умова чи можливість, якій повинна відповідати
система. Основна задача етапу визначення вимог - знайти, обговорити і
зафіксувати, що дійсно вимагається від системи у зрозумілій формі як для
клієнтів, так і для членів команди розробників.
23
ЧJ \Т .2ii22)J . О 14 1П
Рlнрі ·щяют,~ Jщі ка·1·с1 ·оt )ЇЇ 11 , , , , . . •
1 О\(' ,\нл ·тн, ни нн · : пеrвинн1 FН•rмоги 1 л:етальн 1
nJ1 1()\ 'Н . Нонн Н1J\р1 ·тя10,·1,с~ МЇ\)010 ()l1J)' .
" ,ЩІовнпня 011ис1в .
Н 1.•рщнtні щ, нн-н ·•·:.\ ;• с..-, ·н т"•
' . • • 111, 1\IJM Ot'tt
110 , ·реби 1амопни1<а 11и111у·rhСЯ мовою,
•~\ tУ1уМ ЇЛt"ІЮ •~aMOHHHIO,) Hl . 11НЖ11С Т1t\BCJ1Crt\' fTCf)"ИJJ•J•I
, " r вимоги JIO програмного
·~.,6с·тсчсння л_.11я адміністр вання автосалоном:
11' п,Jвннно 3а(k:течнтн ·н1соби Jщя вRе;(ення і ·1береження даних про
tШТОМt)6іл і, 131<ЛН}Ча10'-1 1~ м
. ,, арку, MOJ(em,, р1· к випусr<у , о б' єм двигуна,
.
колtр та ц1н
ПЗ повинно забезnе'-1ити засоби для введення і збереження даних про
КЛІЄНТІВ, включаючи ім'я
' пр1звище, номер телефону, адресу
електронної пошти та адресу проживання;
ПЗ повинно забезпечити засоби для введення і збереження даних про
співробітників, включаючи ім'я, прізвище, посаду, заробітну плату та
дату найму;
ПЗ повинно дозволяти кшєнтам додавати автомобілі до кошика та
оформляти замовлення;
ПЗ повинно забезпечити облік кількості автомобілів в інвентарі;
ПЗ повинно забезпечувати безпечний процес оплати замовлень,
шдтримуючи різні методи оплати, включаючи банківські картки та
гопвку.
Детальні вимоги
Документуються у спеціальній, структурованій формі, вони деталізовані
стосовно до первинних вимог. Нижче наведені детальні вимоги до програмного
забезпечення для адміністрування автосалоном:
Користувач повинен мати можлиюсть вводити дан~ про автомобілі,
включаючи:
марка (b1·and);
модель (model);
24
Ч) {ТУ.242251 . 01 4 І П
- о6'rм )щн1 · Щ\ ( ·
~l1g l11C СЩНІt і t у ) ;
рш н1111ус1(у (ус:н·) ;
l(Ш1ір ( Сt) Іог);
1 \і на (р1·ісс);
-,, 113 \1t)В11нно )\о·зволятн , , , · • · ·
рсщн уuаннл тформаr(ІЇ про автомоб 1т;
3 1,щшст ш~ч поuине· н мати можлиnісп, вводити даНІ про ктєнт1 в,
включюочн :
ім 'я (1iгst 11а111е) ;
прізвище ( last паше) ;
номер телефону (рІ"юпе пш11Ьег);
адресу електронної пошти ( e111a il);
адресу проживання ( addгess );
4 ПЗ повинно дозволяти редагування інформації про кл ієнті в;
5 Користувач повинен мати можливість вводити дані про співробітників,
включаючи:
ім'я (fiгst na111e);
прізвище (last name) ;
посада (position);
заробітна плата (salary);
дата найму (hire date) ;
6 ПЗ повинно дозволяти редагування інформації про співробітників.
7 ПЗ повинно забезпечити процес оформлення замовлення;
8 ПЗ повинно забезпечити облік кількості автомобілів в інвентарі;
9 Користувач повинен мати можливість переглядати інформацію про
наявність автомобілів.
Вимоги замовника та розробника:
Вимоги замовнш<а:
ПЗ повинно забезпечити засоби для введення і збереження даних про
автомобілі, клієнтів і співробітників;
25
'І J ~t · ,24225J.01 4 11'J
Lltt'ї'C 1а 1Н)Щt\ІІ·' ' l l' '\J , ,
,, "- \t,l) ,пи МОЖJІнвісп" rrсr,еглялу та ре;~агування
інфор 1а1\ії про t,нтомобіJ1 і ·
'
поnнннн налавати
можлиоі сть оформлення '{амовлень
кп 1снтамн ~
СНС1'ЄМЗ nовннна на;щnати можливість обліку інвентаризаuії
звтомо6іл і в .
Bu.l\ IO u розробника:
користувач повинен мати можливість вводити дан і про автомобілі,
включаючи марку, модель, рік випуску, об'єм двигуна, колір та ціну;
користувач повинен мати можливість вводити дані про клієнтів,
включаючи ім'я, прізвище, номер телефону, адресу електронної пошти
та адресу проживання;
користувач повинен мати можливість вводити дані про співробітників,
включаючи ім'я, прізвище, посаду, заробітну плату та дату найму;
користувачеві повинна бути надана можлив1сть перегляду та
редагування інформації про автомобілі;
користувач повинен мати можливість оформляти замовлення;
система повинна надавати можливість обліку кількості автомобілів в
. .
швентар1.
Функціональні вимоги - описують поведінку системи і сервіси ( функції),
які вона повинна виконувати.
1 Система повинна дозволяти клієнтам переглядати каталог автомобілів.
2 Система повинна надавати можливість додавання автомобілів до
кошика та оформлення замовлень.
3 Система повинна надавати можливість співробітникам переглядати та
обробляти замовлення.
4 Система повинна підтримувати облік інвентаризації автомобілів.
5 Система повинна підтримувати процес замовлень.
Нефункціональні вимоги - належать до характеристик системи та 11
зовнішнього оточення, критеріїв ефективності і безпеки.
26
2 .014113
99.9% ча у rrpo,яro I року.
в", ш в~чщннn шG ~r
, ~ 1 '4 'Httl н n н 't дшшх юrir II гів.
"н 1 '- ,n 1lОН1ШІ:13 ·М ІН н і .. • •. • t ·
н, 't1нвно з1 <ну 11Jши 111rсросію корнсrува 1rа.
4 и'- '1 • ш повинна пб ·ш 'Ч)'ВІ\ "' шн.:оку шшщ1<ісrf, обробки заГІиrів
1'Ліt н1 ів тз пінрощ 1 ннків.
2.::..~ Фор t \ нання nн,101 н1 ionoмo1 ою діаr рами пренелснтів
Дл~ ~IOP\t\ нання вн,юг до програ шого забезпечення адміністрування
RJ':\l\.11шo використов вати д1аграми прецеденпв. Ці діаграми
ві l{"Оt"~жаю rь в·~аємодію користувачів із системою та дозволяють зрозумпи
ф)~,щ ональю вимоги до системи. На основі зразка діаграми для інтернет
агазИН: розроби<\1:О діаграму прецедентів для нашої системи.
Діаграма прецедентів (рис. 2.1) для системи адміністрування автосалоном
показує взаємодію між різними типами користувачів (акторами) і системою.
вона описує основні функціональні можливості, які повинна виконувати система,
а також взаємозв'язки між цими функціями.
--- Смстеwа адмІнkтруеання автосалоном
~рег nяд каталогу аетомо6'л.е
оnмта за"ое.ое""" ><ред"тною кІІІ)ТkОІО ,
:., , ( ~~
.Qод/>8іІt1НЯ евто,,,обІля до кошика Оплат~ 33"оепення ,
___.. ~ - - -~-
-- ~ ОПІ'ата 3-овле. ..... ГОТІВ,,ОІО
~ ..
ОфОрм/Іення 1aмoel'et111R
О~ьння фін:.нсооих траюо;q111'\
Рисунок. 2. 1 - Діаграма нрецедентів для адміністрування автосалоном
27
'l )~l\ >422~ 1 .ОІ4ІП
f, ,,о, 11:
1'1Н.Н1' cнs1otН(.'t} нідв · ,
· щус ,ш1осш1011 або виr<ористонуf онлайн-сервіси
ля нс1 Сl'ЛЯJ\ та 11РНJ\6·нтя ''1•1 5·
t tl • омо )lJII.B ;
~сн ' '\Ж 'Р (tнанаgсг) : ксрус іпформ~щіt:ю про автомобілі, обробля€
·~а юв.1 'ННЯ та правляс інвентарем;
ко tірник (v at·,,Iюusc v 01·kc1·): від11овідас за інвентаризацію та видачу
авто ю 1шв а замовленнями·
'
о · rалтер ( ccouпtaпt) : обробля · фінансові транзакції та управляє
платою замовлень.
Прецеденти:
перегляд каталогу автомобілів: кл1єнт може переглядати список
доступних автомобілів у автосалоні;
додавання автомобіля до кошика: кл1єнт може додати обраний
автомобіль до кошика;
оформлення замовлення: клієнт може оформити замовлення на обраний
автомобіль;
оплата замовлення: кшєнт може оплатити замовлення за допомогою
. .
р1зних метод1в оплати;
управління інформацією про автомобілі: менеджер може додавати,
редагувати та видаляти інформацію про автомобілі;
обробка замовлення: менеджер може обробляти замовлення клієнтів;
управління інвентарем: комірник може управляти інформацією про
наявність автомобілів;
опрацювання фінансових транзакцій: бухгалтер може обробляти
фінансові транзакції, пов'язані з оплатою замовлень.
На діаграмі прецедентів відображені взаємодії між р1зними типами
користувачів 1 функціональними можливостями системи адміністрування
автосалоном.
ЧJ\Т .242253 .О 14 JІ 'З
г @T ra11sactlon
сrосується
@S ale
оформляється здійснюеrься містить
@C ustomer @Employee
виробляється
@M anufacturer
Рисунок. 2.2 - Діаграма класів для адміністрування автосалоном
30
.
11 'ТНТ\, 1' 1 j
н )Щ)М1щі10 ТІf)О І ІІ\ І омоfіі 11і , m(i Пf'Ю)(ШО'І І,СН ГJ
OJ\11H :11\'1'0 1<)6іщ, М r:
ОЖt' \) 1 и в J{ 'Т(ЇJН,тщх ·н1мовнснт1х (пі;н-rоmсн1-т
однн J\<) нн ·ат,,о. 'і 01·tk1·itcm );
<)лнн ан,,омоGі 111 м )> , ,. , . .
. ' ( ке \)УТИ 11ОВ Я 'ННШЙ 'J олrrим 'JаГІИСОМ В ІНВЄН'Гар,
(ВідН01L1СННЯ О)Щн до 0)\ІЮІ'О ':J I11vc11to1-y).
"' C11sto111c1·:
клзс сн t ІПег 1істнть інформацію про кл іє 11ті в автосалону;
один клі - нт може мати багато замовлень (відношення один до
багатьох з огdег);
один клієнт може мати багато транзакцій (відношення один до
багатьох з T1·aпsactio11).
З Employee:
клас employee містить інформацію про співробітників автосалону;
один співробітник може обробляти багато замовлень (відношення
один до багатьох з order) ;
один співробітник може бути пов'язаний з багатьма транзакц1ями
(відношення один до багатьох з Transaction).
4 Order:
клас order містить інформацію про замовлення, зроблені клієнтами;
одне замовлення може містити багато позицій (відношення один до
багатьох з orderitem);
одне замовлення пов'язане з одним клієнтом (відношення багато до
одного з customer) ;
одне замовлення може бути оброблене одним співробітником
(відношення багато до одного з employee );
одне замовлення може мати багато транзакцій ( відношення один до
багатьох з Tгansaction).
5 Orderltem:
клас orderitem містить інформацію про позиції в замовленнях;
3 1
Ч)tТ . , ) 4 ))" , ОІ 1J lJ'!
,))\11:\ 11('1'~\\1\t ~ ·~о ЮН !Н.'1111
· 1 '
нон я·,~нш , o;\mrм 1ш1 омоfіін м (r~ іюютстrя
):Н':11'0 )\О (\1\tI01'0 •~ l' І\ 1 ·) :
''J\\Щ 11,) •~Н І\Ї)l ·~•\t\IOH , ,
' JН.: тн, 1101\ л·,нrн, ., 0)\НИМ 'Н\МОПНСІІІІSfМ (віJ {fЮІІІСННЯ
ба1 'а1,, )\О ОJ\н,,1 -0 ·~ 01·tkг) :
(, 11,Yt.'. I\ t(H·)':
клас 1п,1сн101·,, містн1• 1· 1 · • · · ·
,J ь 11t,юрмющо про 1нвснтаризац1ю автомоб1тв;
один . апнс ,нuснтаризат,її ноо'srзаний з
ОДНИМ автомобілем
(відношення однн до одного . at").
7 Tt·ansaction:
клас ti·aпsactioп містить інформацію про фінансові транзакції,
' .
пов язаю з оплатою замовлень·
'
одна транзакція пов'язана з одним замовленням (відношення багато
до одного з order);
одна транзакція пов'язана з одним клієнтом (відношення багато до
одного з customer);
одна транзакція може бути оброблена одним співробітником
(відношення багато до одного з Employee).
Після створення програмного забезпечення для адміністрації автосалону в
результаті я отримав таку діаграму класів у якій містяться атрибути та зв'язки між
ними(Рисунок 2.3).
Далі представлений опис класів та відносин представлених в діаграмі класів
шо створилась після створення програмного забезпечення :
Клас Car (Автомобіль): Цей клас містить інформацію про автомобілі, які
продаються в автосалоні. У ваших таблицях це може бути представлено як
таблиця "Автомобілі" , яка містить поля для характеристик автомобілів, таких як
марка, модель, рік випуску, ціна тощо.
32
-
Ч) 1, '1 ' ,24225 1.О 1 4 1 П
t Trensaction
(\ sale_Іd : ІІ')t
о tr·e11sвctlo11_date : Date
t) pay111er1t_method: Strlng
о a,1,ount: float
стосується
- ··-· - -
@ sale
@1nventoryJ
о sale ld: lnt
о sale -date: Date о саг_ ld : lnt
о dlscount: float о quantity: int
о ргІсе : ftoat
оформляється здійснюється включає містить
\ І
@саг І
@ customer @Employee
о car_id: lnt
о customer_id: int о employee_ld: lnt
о brand: String
о first_name: String о ftrst_name: StrJng
: о last_name: String о last_name: String о model: String
positlon; String о englne_capaclty: float
1о phone_number: String о
salary: float о уеаг: lnt
о email: String о
о соІог: Strlng
1 о hire date: Date
о price: float І
./
'----..-----'
виробляється
- ·---'- 1-1 ---
@ Manufacturer
о manufacturer_ld: lnt
о name: String
о country: String
Рисунок 2.3 - Діаграма класів після розробки програмного забезпечення
для адміністрування автосалоном
33
• -
Ч) ~Т · 4 2 2 5 .l . О І 4 І І ' j
11•щн.· С'11Мошt•1· (K.1 it'11·,·) ·. 11,,1·1 • •
' ' ' '" '' кщ1с містип, і11формацію rrro кmп1т1в
:,н,,)(:1.1н ну. Н т:,GJtiщяx l\~ може бути 11рс;\ста~злс rю ЯІ< табт-щя "Клієнти" , яка
. L) собн~ті дані про 1<J1t· .r..:- 11 1, • . , • • • • •
;\1 j(1•н1 ь ~в, 1а ю ят< 1м'я , 11р1звище, адреса, конта1<тн 1 дан1
1х)ІН<) ,
}{.11:1с ЕшрІоуее (Спіnробіт1111к) : Цей клас містить інформацію про
1.•півrобітннків автосалону. У таблицях це може бути представлено як таблиця
"Сnівробітники" , яка містить дані про співробітників, такі як ім'я, посада,
._онтактні дані , заробітна плата тощо.
Клас Ot·dei· (Замовлення): Цей клас містить інформацію про замовлення,
зроблені клієнтами. У ваших таблицях це може бути представлено як таблиця
" . .
"Замовлення , яка МІстить даю про замовлення, такі як дата створення, статус,
інформація про клієнта тощо.
Клас Orderltem (Позиція в замовленні): Цей клас мІстить інформацію
про позиції в замовленнях. У таблицях це може бути представлено як таблиця
... . " . . . . .
"Позицн в замовленнІ , яка МІстить даю про кожну позиц1ю в замовленю, таю як
ідентифікатор замовлення, товар, кількість тощо.
Клас Inventory (Інвентаризація автомобілів): Цей клас мІстить
інформацію про інвентаризацію автомобілів. У вашому випадку це може бути
представлено як таблиця "Інвентаризація", яка містить дані про наявність
автомобілів на складі, їх статус тощо.
Клас Transaction (Транзакція): Цей клас мІстить інформацію про
фінансові транзакції, пов'язані з оплатою замовлень. У таблицях це може бути
представлено як таблиця "Транзакції", яка містить дані про кожну транзакцію,
такі як ідентифікатор замовлення, сума оплати , дата тощо.
Відносини між класами вказують на зв'язки між обєктами:
1 Car (Автомобіль) і Orderltem (Позиції в замовленнях):
кожен автомобіль може мати багато позицій в різних замовленнях;
кожна позиція замовлення пов'язана з одним автомобілем.
2 Customer (Клієнт) і Order (Замовлення):
кожен клієнт може мати багато замовлень;
34
Ч) ~'І'У .242253 .О 14 І ІЗ
кожен ю1існт Mo>i<c м .
t1 I. н 6 ш·ато ·щмонлснr; ·
t ожнс замовлсню, HOJte>1<P,,1 ·· ь UJ', ttoмy t • '
онєrrту.
3 ЕшрІоусс (С11іnробітннt(:) 1. 0 ... . .
1 uc1 (Знмощ1сшш):
кожен співробітню< Мо) б
ке O робляти багато замовлень·
кожне замовлення МО)І б '
<е ути оброблене одним співробітником .
4 01·de1· (Замовлення) і Ti··н,sact· . (Т "
• 1011 ра11закц11) :
кожне замовлення може мати багато транзакцій ;
кожна транзаr<ція пов'язана з одним замовленням.
5 T1·ansaction (Транзакці'І) і Customer (Клієнт):
кожна транзакція пов'язана з одним клієнтом.
6 Inventory (Інвентаризація) і Car (Автомобіль):
кожен запис інвентаризації пов'язаний з одним автомобілем.
Ця діаграма класів дозволяє зрозуміти структуру системи, визначити
основні компоненти та їх взаємодію, що є важливим кроком у проектуванні
програмного забезпечення.
2.3 .2 Діаграми пакетів
Діаграма пакетів (Package Diagram) використовується для відображення
структури системи на вищому рівні абстракції, групуючи класи в пакети. Це
допомагає організувати та впорядкувати складні системи, забезпечуючи зручне
управління залежностями між різними частинами системи. Діаграма пакетів
дозволяє візуалізувати логічні групи класів і їхні взаємозв'язки, що полегшує
розуміння архітектури програмного забезпечення.
Для системи адміністрування автосалоном створимо діаграму пакетів, яка
групує класи в логічні підсистеми (рис. 2.3).
На діаграмі пакетів відображені основні лопчю групи (пакети) системи
адміністрування автосалоном та класи, які до них належать:
Customer Management (Управління клієнтами): містить клас Customer,
що описує клієнтів автосалону;
35
-
ЧJ\Т .242211.0 14 r п
1-,-ar,sn tlo11 Мв,· н~g("Іn("t Н.
. Lt c;torr,є r- Маг1аg meг1t
TY011s a t loi,1
u stom e r
рІоуее Management
- - - - - - ·-
·contains @Employee
~Orderltem
1ncludes
: Саг Manage
~Саг
.
@1nventory
Рисунок. 2.3 - Діаграма пакетів для адміністрування автосалоном
36
Ot\kt· Pt·o1..' 1..'ssi"8 ( t Юро()щ1 · 1 :1мовлст, ): міс , и ir, ю,нси Or·clcr і Orderf tem,
lЩ) ОІl1ІІ.'УЮ'1'І, 'ШMOl\.11 t'l1t1)1 1'0 їхні Н<ПІЩЇЇ;
І '~ ·ап~:Н.'tі\щ М:, 11нр,1..'t1Н~о1 ( нршшіпшr 1rш11·,аr<1(інми) : м r ститr~ клас
l 't·a11~a\.'1i o11 . що ОІlНL')'с фіншн.:оні 1pa111ar<r(iї.
1\ SІ ді:н·ра 1а J\01юмнпн- ні ·~ушті ·~увнтн стру,пуру системи на високому рівні ,
групу,очн пов'я · ані клнсн в 1ю1·ічні пакети. Т (е лозволяє зрозум іти загальну
:ч1~іт·сктур ' снстсмн тn nпоря;щуватн її т<омпо1tе11ти , 1цо полегшує розробку та
11 ідтрн н~у програ І\НШ'О за6сзпечс1111 я .
2.4 Архіте1п11рне проектування
рхпектурне проектування є важливим етапом у процесі розробки
програмного забезпечення, який визначає загальну структуру системи та її
компоненти. На цьому етапі визначаються основні архітектурні рішення, які
впливають на функціональність, продуктивність, масштабованість та надійність
системи. Архітектурне проектування включає в себе розробку діаграм
:компонентів та діаграм розгортання, що допомагають візуалізувати розподіл
функціональності між різними частинами системи та фізичне розміщення
програмних компонентів на апаратних засобах. Цей процес дозволяє забезпечити
ефективне та раціональне використання ресурсів, а також полегшує подальшу
розробку, тестування та підтримку програмного забезпечення.
2.4.1 Діаграма компонентів
Діаграма компонент1в (Component Diagram) використовується для
моделювання фізичних аспекпв системи. Вона відображає структуру 1
взаємозв'язки між компонентами програмного забезпечення, такими як модулі,
бібліотеки, файли, бази даних тощо. Діаграма компонентів допомагає зрозуміти,
як різні частини системи будуть реалізовані та взаємодіяти на рівні виконуваних
елементів [7].
Для системи адміністрування автосалоном створимо діаграму компонентів,
яка відображає основні компоненти системи та їх взаємозв'язки (рис. 2.4).
37
Ч )\ТУ .24225J . О 14 І І 'J
11•1 Ct)t/)(•" кори, 1ynn•1n\
І fj
І<ом110 1 1<-' 111 1111 срфс.•йсу 1<о f}ис1 уuачн 'І
оикористовуе
Б І з11 ес-поrІка \
І i
І<омnоне1-1 т бІзнес-логІ1<и 'l
використовує
Шар доступу до цаt1их\
[ -· . - - ' -· - -- ~о
~~~~~нент доступу до даних
--··- -·--·-----·-
еааGМОДЇG"
База даних\
Г Компон~=-:ази ~аних О]
Рисунок. 2.4 - Діаграма компонентів для адміністрування автосалоном
. .
На д~аграм1 компонентів відображені ОСНОВНІ компоненти системи
адміністрування автосалоном та їхні взаємозв'язки:
інтерфейс користувача: містить компонент Компонент інтерфейсу
користувача, що забезпечує взаємодію користувача із системою;
бізнес-логіка: містить компонент Компонент бізнес-логіки, що реалізує
бізнес-правила та логіку обробки даних;
шар доступу до даних: містить компонент Компонент доступу до даних,
що забезпечує взаємодію з базою даних;
БД: містить компонент Компонент бази даних, що зберігає дані системи.
Взаємозв'язки між компонентами показують, як інтерфейс користувача
взаємодіє з бізнес-логікою, яка в свою чергу використовує шар доступу до даних
для взаємодії з базою даних. Ця діаграма допомагає зрозуміти фізичну структуру
системи та взаємозв'язки між її компонентами, що є важливим для реалізації та
підтримки програмного забезпечення.
38
\JJP' . 2 11225 1 . ОІ41П
.;.4 ... Po·it 'OJH:11111>1 11ро1 ·р:1м 11 ої t: ІІс ,·еми 11н шшrн·, 11 их ·1а с.:обах . Ліаграма
І'' ) '~J'()p 1·:1Н Н )І
)1і:11·р:1 1:1 1ю·t1'орт~m11 я (l)cploymcrlt Diagr·am) nикористовується JJJІЯ
н))t~J11<ш:11шя фі · ичноt'О 1юз, ·ор,т11111я комrюнентіn проrрамно'і системи на
:iп:tpnт1нtx засобах. Вона вілображає вузл и (сервери, робочі станції, мобільні
прІІСТf ої тощо) та артефакти (програм/І ї компоненти, бази даних), які на них
розгорнуті. Ця діаграма допомагає зрозуміти, як система буде розгортатися в
евльно 1у середовищі і ЯІ<і апаратні ресурси будуть використовуватися [8].
1
Для системи адмін істрування автосалоном, розробленої на Visual Studio з
використанням С# та Wiпdows Foi·шs, створимо діаграму розгортання, яка
відображає основні вузли та компоненти, що будуть на них розгорнуті (рис. 2.5).
/ /
Клієнтський комп'ютер
.----------...- ----------~
о
Додаток Windows Forms
І/
SQL-заnити
./ /
Серве р бази даних
' ' о/
База даних І
V
Рисунок. 2.5 - Діаграма розгортання для адміністрування автосалоном
На діаграмі розгортання в·щ о бр ажею· основні вузли системи
адміністрування автосалоном та компоненти, що на них розгорнуті :
39
Ч)\Т . .2 4 22~Н.0 14 ІП
1<.1tkнтс1,ю 111 1н· ., t\1 1 '
\ н.нср : ну ·~ш1; щ1 яrщму ро1r ·орнуто ;щл.ато r< rюл.аток
\\1 iн~i'-'"rs 1\ ,1·111s 11 , ) •)> 0r\.Н .~ .· , ,~ т счуr н·нн·мщн. ю корис·rува•rа .
11 системою;
~l'\'ll~cp 6•1111 J\tmиx : ну-н)л, на якому rю1r ·орнуто r<омпонен·r ба·ш даних,
lН'-' ·~6l'рігас л.ині системи.
Н3аонУ в'я · ки між вузлами поювують, як компоненти взаємодіють м1ж
~-(,{)ою через "'QL-ззпитн : додаток Wiпdo"vs Г-or·ms на клієнтському комп'ютері
нзасмодіє з базою даних на сервері бази даних через SQL-запити.
Ця діаграма допомагає зрозуміти, як програмна система буде розгортатися
на апаратних засобах і як компоненти будуть взаємодіяти в реальному
середовищ~, що є важливим для планування інфраструктури та забезпечення
надійної роботи системи.
2.5 Моделювання поведінки системи
Моделювання поведінки системи є важливим етапом у процесі розробки
програмного забезпечення, який дозволяє зрозуміти, як система буде взаємодіяти
3 користувачами та Іншими системами. Це включає в себе моделювання
динамічних аспектів системи, таких як потоки управшння, послідовність
виконання дій та взаємодію між об'єктами. Моделювання поведінки допомагає
виявити можливі проблеми на ранніх етапах розробки і забезпечити, щоб
система відповідала вимогам користувачів та замовниюв. У цьому розділі
розглядаються основнІ д1аграми, що використовуються для моделювання
поведінки системи: діаграми діяльності, діаграми послідовності, діаграми
комунікації та діаграми станів.
2.5.1 Діаграма діяльності
Діаграма діяльності (Activity Diagгam) використовується для моделювання
динамічних аспектів системи, таких як потоки управління та виконання дій у
. . . .
процесах. [(я д~аграма ДОЗВОЛЯЄ шзуал1зувати ПОСЛІДОВНІСТЬ кроюв, ЯКІ
. . .
виконуються для досягнення певної мети, 1 допомагає виявити можливІ вузью
місця або неефективності в процесах.
40
Ч)Л'У .242253 .О 14 І Г3
2.5 ]\,1())\(\11ІtНИНІІНІ II011cJ{iiІIOf СІІСТСМІІ
Моде.~tюн._шня по13ел.інкн системи є nажливим етапом у процесі розробки
11р()t-р~1мноtх) · абезпечення , Яt<ий дозволяє зрозум іти, як система буде взаємодіяти
з користувачами та шшими системами . Це в~шючає в себе моделювання
дннзмічннх аспектів системи, таких ш< потоки управління, послідовність
вrн,онання дій та взаємодію між об'єктами . Моделювання поведінки допомагає
8иsтвити можливі проблеми на ранніх етапах розробки і забезпечити , щоб система
відповідала вимогам користувачів та замовників. у цьому розділі розглядаються
основні діаграми, що використовуються для моделювання поведінки системи :
діаграми діяльності, діаграми послідовності, діаграми комунікації та діаграми
станів.
2.5 .1 Діаграма діяльності
Діаграма діяльності (Activity Diagram) використовується для моделювання
динамічних аспектів системи, таких як потоки управління та виконання дій У
процесах. Ця . .
д1аграма дозволяє в1зуашзувати послідовність кроюв, ЯКl
виконуються для досягнення певної мети, і допомагає виявити можливі вузькі
місця або неефективності в процесах.
Для системи адміністрування автосалоном створимо діаграму діяльності,
яка відображає процес оформлення замовлення клієнтом (рис. 2.6).
с_13~1 -,_.,_._ с,,с:7.,бис: --т-~;;,-,_.,._.,>,-<_"')
. - --- -- --- ------
13.....,е,1р <:;: Г'"1С:ІІ С::: с:=,,е5о::.,, С>Г"'І..,.,~-Т-....., J
с г, І .0. --т- - ~~ ..а.::.С- ,_.~ - ~-:;;.-;:. с:> -..-. ---=-,..:-;.;- =:)
L- --~
с::::>г,~.а.-Т-QіІІо __,,,,
-- ---~ - _- __ -- --
С_ <=>-r-,::::io v,~..- ............ -. г,І...ц -т- - .... р..Q.~ .......... .,_. .. __)
- - - - - с~::>
Рисунок. 2.6 - Діаграма діяльності для адміністрування автосалоном
41
Ч)\Т .2422.1 , . о 14 І J'j
На ;\іш ·ра 1 і J\іят,но~ті · 6
НІJЮ )ражсні осттошrі r<ror<и rrroнccy оформлетrн
)І\.Н І..'НН~ к11 1 снтом :
·~:І Н
псрс1·ля;1. катшюt·у ннтомобі • . . . . . .
. mu. t<тєпт ттерепrя;щє л:остутr1 автомоб1т в
K3TaJ10 ' t:
вибір автомобіля· кл ієнт 0 б •
· ирає аnтомоб1ль, який він хоче придбати;
додавання автомобіля до КОШИІ<а: Кт· єнт додає вибраний автомоб1·л ь до
кошика;
перегляд кошика: Кл ієнт переглядає вм1ст кошика для перев1рки
правильності вибору;
оформлення замовлення : клієнт починає процес оформлення замовлення;
введення особистих даних: клієнт вводить свої особисті дані для
оформлення замовлення·
'
вибір способу оплати: клієнт обирає спосіб оплати (наприклад, кредитна
картка або готівка);
пщтвердження замовлення: клієнт підтверджує своє замовлення;
оплата: клієнт здійснює оплату замовлення;
отримання підтвердження: клієнт отримує підтвердження про успішне
оформлення та оплату замовлення.
Ця діаграма допомагає візуалізувати послідовність дій, які виконує клієнт
ПІД час оформлення замовлення, і забезпечує чітке розуміння процесу для
розробників та інших зацікавлених сторін.
2.5.2 Діаграма послідовності
. .
Діаграма ПОСЛІДОВНОСТІ (Sequence Diagram) використовується для
моделювання динамічної взаємодії між об'єктами в системі. Вона відображає
обмін повідомленнями між об'єктами в часовій послідовності, показуючи, як різні
частини системи співпрацюють для виконання конкретної функції.
Для системи адміністрування автосалоном створимо діаграму послідовності,
яка відображає процес оформлення замовлення клієнтом. Цей процес включає
взаємодію між клієнтом, інтерфейсом користувача, бізнес-логікою та базою даних
(рис. 2.7).
42
ч;1
, · 1 · ·2 42253.0 11 fJЗ
\
,е.11• 1
16 fз11ec ,J10rlкa j
11, t·r~ ~•тМN') вьт.-\k,бtn ь
-►
..З:;.а::;n.:;и.;.;т..:.н:а::.:о:т:.;.~:р:;v.1.;1..а::;1.1.:;..ян;..:с:;..n;v..:с:;;,куL.,;:а:в;:.;.то"1-1-0'6:-..:ІЛ...:і;в......_ _►
<( По"ерІіУТІІ сn11сок анто~обіІds ...... •·-••·-
S1JІЩ);МІТ11 СГ.~011. QSTOмooinie
І(
в~fip о~т~11~&і,1q
І\011ети ввтомобІnь 110 конАІ!Іа
Ззrт.tт на додаванж. авто11061м до кour~~a
,<(·!:'іІ!Т.О!Р.~.~!!!.і.~ f.!?JJ.~O!~~я ~!~~о0•ля ~о. KOW\11.~ •
.J.~11тнер_вженн'U\~давання еетомобіn" до коша
"' ··-····--·--·------··-
~~~:.8.!.еВ:!~_!.іО~~~~.~!.'!.:~.~~!.!~.~~-к.~~'!':~~"
офор11ит11 за~А
~.:::....-----------'►
створ11ти 38NОВЛ@НІІА
З~т на с;еорежя замоалежя
<-П1д-тв-ерд-ж1нн·я -ст-во-ре-нн·я З-іІІ·>!О-ІІ/-t@·І!І-іЯ -···-·-
.< ·П. ...д..т..е..е.Р..д _),!. (•.е.н..н ,я, . .п.в..с..р..е..н..н..я. .)..а.w..о..а.n..о.н..~..я. ........... ····-
~Адп~рд)І(~.я ст~~~~~~~~.:_І!і.~-· ····-·····-
• s.~сти особмст1 ДіКІ
: зберєт, осо6~1ет1 дані
запит на збtрвження особистІІ)( данwс
n~дтвердження юережежя осо6~стюс дЗНІІХ
• П1дтвердження зб~рєження ocoooc,11JC данкх
~ ·-··---··
ІїАТз,рджежя збере.меЮІЯ особнсткх д;н;!J(
,(--n•••••--•••••·••••••••••••-•••••••• •••••••••••••••••·~•••••••- ••"
: Bi5pan, cnotiб оnnатн
О6роб11ти омату
Запит на обробку ом;~ти
Підтверджен"R обробки ома ти
,(-•··· ··-·---·-····-·------
n~дтеерд.меnня оброб~и onлan,
,(············-·-····-·-·-···-··-·-··-··-·--
. ПІдтаердw.ення обробки омати
~ -·······•-·······-····-··················-·············-·········-,
01рнІІ.іТИ ruдтsердн:ЕJООІ іііИОІ!ЛЕННЯ
• отримати патус ааМООІІення
Зn.т Ні отрМІІіІІіНА снтусу ~
Повернутм ст;~тус ~
вщобрззит~ стетус 31,11овлежя
,,( -·········································································-·1
Рисунок. 2.7 - Діаграма послідовності для адміністрування автосалоном
43
ЧДТУ .242253 . о 14 І rз
На діаграмі послідоuнос1 -1· tз· щображено процес оформлення замовлення
кюєнт взаємодіє з інт ер<1. ) е~и сом користувача для перегляду каталогу
автомобілів ' вибору автомо 6.ш я, оформлення замовлення, введення
особистих дани· х , виб ору способу оплати та отримання ш·д твердження
замовлення ;
інтерфейс користувача взаємодіє з бізнес-логікою для отримання списку
автомобілів, додавання автомобіля до кошика, створення замовлення,
збереження особистих даних, обробки оплати та отримання статусу
замовлення;
бізнес-логіка взаємодіє з базою даних для виконання запит1в на
отримання списку автомобілів, додавання автомобіля до кошика,
створення замовлення, збереження особистих даних, обробки оплати та
отримання статусу замовлення.
Ця діаграма допомагає візуалізувати, як різні компоненти системи
взаємодіють один з одним протягом процесу оформлення замовлення, і забезпечує
чітке розуміння динаміки системи для розробників та інших зацікавлених сторін.
2.5 .З Діаграма комунікації
Діаграма комунікації (Communication Diagram) використовується для
моделювання взаємодії між об'єктами в системі, фокусуючись на обміні
повідомленнями. Ця діаграма відображає зв'язки між об'єктами та послідовність
повідомлень, які передаються між ними для виконання певної функції.
Для системи адміністрування автосалоном створимо діаграму комунікації,
яка відображає процес оформлення замовлення клієнтом. Цей процес включає
взаємодію між клієнтом, інтерфейсом користувача, бізнес-логікою та базою даних
(рис. 2.8). На діаграмі комунікації відображено процес оформлення замовлення
КЛІЄНТОМ:
кшєнт взаємод1є з інтерфейсом користувача для перегляду каталогу
автомобілів, вибору автомобіля, оформлення замовлення, введення
44
Ч)\ І ''42251 014 1 Г
• еrл11м т11 катаt1оr
І 1 11nмтСn,1соrА11011об n • )
,-.;...;.;;;.;;.;,.;.:.;;,;,;,;:.:,;;;.:.:.:,.::.:.;=~Lf-----►
І
~
•в .'f-<?.бР.,ІІ.ит1• С'ІМС:СІ( ..І.І. Т.О. .\.І. О..б 1.n..1. 1.. .. ..
S1,1fp1rn 11тоvоб n1,() ·· ···· .... ········ ··-· ►
-< 2 2 n·дтверд,~•е,н111Додзва.-r111ДоК:~ш11х1_{,.
2 З n аrаердJІ:tkkІІДС?,~іІІІІІk~ДоКоu..1щ1()
.. ··•···
Г1дтвеfІ.':'»'еhня додава11>1ї1 аат.. омоб.. ..і.n.я. ,
ОФОр'-1,ІТ>І 3311.0l!Лehhil()
з. СТІІООМТ.(Зі1мо1ле1, k11()
З. 1 sаn,1тСтвореч11яЗаа.1оwеkr1ІІ()
< З ..2 n1.!:"т егр..: >'е1-... ... я С-з"о ре.1.,..1 -яЗ.а моел..е. ,;,"1; ;{J
-< З .З ~.:1тє@~д~:'"'"'"Ст;1оре,;-іяЗамоsле1-~.я()
Гi.aнeJ?-;:Xer1,,;;. •c rвope~i-я амоеt1е,н,я
-...1--........" _
І •-----•-•м•• ►
~ Bєecrn особисті ,:аю()
4. зб@реrтиОсобмст,ДзніQ
4 1 3аn1нЗбереже,1,1яДз-<.1х()
◄ ..~ :.?.~~~!.!~О~~~.~.~~-~о~.~.~.~-~~~~д~ ~~!І .....
--< .~.-.~. ~~~:':~.~Р.~:~~~~~~~~'~·~·,;се1-1-яДа1-,1х(1 ........
Гtдтз.:'.є_7ж!!'ня. . ~,бе~~:'"'."я .1:з1-11х ··--··-······•.,.----··-·-·--·· ·-· -··-···-··•-. .. ►
,<, 8,,брзтv сnос,б оn,,ат,1()
5 обробитиОnлату()
,-.-------------------►
5 1 ааn.rтОбооокиО'111зт11()
~ · 5. 2 n~дтвердже1-,111Оnnат>1 ()·····•---·•--·-·
<·5 З .n ,дrеердже1,,.11Оnnзти() ...............· -····· ..
п,,~теее~~І!";:"!"_ _І?".!1.ат11 ••••. . •• • • •••• -••.,••-- W-••--•••• ---••••••••-••••••• -•--•-••••--•••---• ►
Отр..~\!ат.1 n дтеердхеr1r1я замоеnІ!krІІІО
'-<' ---'--------------...,;,с.-..,;,__ ____________________
б отр,1t1ат ,1Стат)•сЗз11оале"1,ї111
►
~,пСтзтусуЗз1о1озs,е,нн1 )
►
~ е"2 .~.о.!ер"утиСтзтrс~з~?.~!1-~~"!!Q_ .
< б ~ ."?.~е.р11ут11Ст11тусЗз':".01n~~н11(J
8,,:о~р.!~.і!1 .сrатус sз."'~.~.е.':"'!. -----------···- ·- . ►
Кл1ент
Інтерфейс користуеа'іа ~~,нес-лоr1а:а / Біш1 даних 1 кл,ент
Q
Рисунок. 2.8 - Діаграма комунікації для адміністрування автосалоном
45
Ч)\ТУ.242253 .О 14 1 rз
- о~обн 'тих ;щннх, вибору способу оплати та отримання підтвердження
· амоштення;
інтерфейс 1,ористув ача в. засмод~· є з б1·з иес-лоп· кою для отримання списку
автомобілів ' додава1 . , ·
п-1я ав1омобшя до кошика, створення замовлення,
збереження особистих даних, обробки оплати та отримання статусу
замовлення;
бізнес-логіка взаємодіє з базою даних для виконання запит1в на
отримання списку автомобілів, додавання автомобіля до кошика,
створення замовлення, збереження особистих даних, обробки оплати та
отримання статусу замовлення.
Ця діаграма допомагає візуалізувати, як р1зн1 компоненти системи
взаємодіють один 3 одним через обмін повідомленнями протягом процесу
оформлення замовлення. Вона забезпечує чітке розуміння взаємодій для
розробників та інших зацікавлених сторін.
2.5.4 Діаграма скінченного автомату
Діаграма скінченного автомату (State Machine Diagram) використовується
для моделювання поведінки об'єкта, який проходить через різні стани протягом
свого життєвого циклу у відповідь на події. Ця діаграма дозволяє візуалізувати
можливі стани об'єкта, події, що спричиняють переходи між цими станами, та дії,
які виконуються під час таких переходів.
Для системи адміністрування автосалоном створимо діаграму скінченного
автомату, яка відображає стани замовлення клієнта (рис. 2.9).
На діаграмі скінченного автомату відображено стани замовлення клієнта в
системі адміністрування автосалоном:
. . .
замовлення створено 1 оч1кує шдтвердження;
замовлення підтверджено, даю кшєнта та наявюсть товар1в
перев1ряються;
отримано оплату за замовлення, проводиться обробка платежу;
товари на замовлення збираються на складі;
замовлення зібрано і готове до видачі клієнту;
46
ЧДТУ.242253.О 14 ПЗ
:зймоnпення видано ю~ієнту
' процес завершено .
____l ······ ··········
Нове_замовлення "\
Очіку_є ;:;ї"ю-вердже~ня .J
підтвердити замовленю
Обробляється
Перев ірка даних клієнта
Перевірка наявності товарів
отримати оплату
Оплачено
Обробка платежу
почати комплектування
Комплектується
Збір товарів на складі
завершити комnлек тува
Готове_до_видачІ
Очікує видачі кл ієнту
видати замовлення
Видано
Замовлення видано клієнту
завершено
•
Рисунок. 2.9 - Діаграма скінченного автомату для адміністрування автосалоном
Ця діаграма допомагає візуалізувати можливі стани замовлення та переходи
м1ж ними, що дозволяє краще зрозуміти поведінку системи і забезпечити її
правильне функціонування в різних ситуаціях .
47
t т аоrи ти 111мo11nn►t►tя
( І ІОІІf' ,омоо,1е1 ІНЯ )
\?Чfку 111111 08/ІД>Кt!ІНІІІ
},д щрд,т, """"'"'"
1 Обро611яеться j
І ПеревІрко даниw клtєнта
ПереоІрка НІІRОІ~ОСТІ тооарІв
],тр,мот• ом,ту
( Оплачено )
lобробка платежу
_ }:,.т, ,омм"ту,,.нн,
(_ Комплектується_ J
~бІр :;:-;;варtв на скл-;дІ J
_-1 :.. . w,т, <ОММЩ)'ВО
[ Готове_до_видачіl
~є видачі клtєнту...)
-- J,,д,т,,,моол,нн,
f - Вид;.о ~
(з-ам~вл;.:;н1;~да.н.о, к: л. tє.н.r у)
Рисунок. 2.9 - Діаграма скінченного автомату для адміністрування автосалоном
. .
Ця д1аграма допомагає ВІзуал1зувати МОЖЛИВІ стани замовлення та
переходи м1ж ними, що дозволяє краще зрозумпи поведшку системи 1
забезпечити її правильне функціонування в різних ситуаціях.
48
ЧJ ~ТУ .24225J .0 14 І П
НИСНОВОІ(И )\О )\РУf'ОГО I'01/~rJІY
У 1
t\M) У роз;,іJ1і 6yJ10 спросктопано мо;(ель предметної області для
:iнl\t iнii:11 :)1\іЇ автосалоном , ~формовано с1юв11ик та основні елементи цієї
11pcJ\ 1стної області. Також визначено основні та детальн і вимоги до програмного
3116с печення. Описано вимоги до процесу розробки та до розробників. На основі
нього було визначено функціональні та нефункціональні вимоги та створено
діаrра 1у nрецедент, в. За допомогою діаграм класів та пакетів спроектовано
лоrічн структуру програмного комплексу. Для архітектурного проектування
були розроблені діаграма компонентів та діаграма розгортання. Моделювання
поведінки системи здійснювалося за допомогою діаграм діяльност1,
послідовності, комунікації та скінченного автомату.
49
ч; ~т .2tl225J .O1 4 І П
1,()'JP01,K Л ТЛ TJ•'CT'1
3 - ~ ., ~~ BЛHJHJ І1РОІ 'РЛМІІОJ 'О 'JЛf~F:':Jlf І~ tfEHHЯ
-; . t Рuзробкн нро1·р~•много ком~,
~ JІС"СУ
Ро ро6ка програмного ком , ·
nлексу є ключовим етапом у створет-11 системи
,tдміністр ,вання автосалоном. Цей процес включає в себе кілька важливих кроків,
11очннаючи від обrрунтування вибору засобів реалізації до безпосередньої
розробки та тестування програмних компонентів. На цьому етапі відбувається
nеретворення вимог та проектних рішень, сформованих на попередніх стадіях, У
nрацюючий програмний продукт.
Основна мета розробки програмного комплексу забезпечити
функціональність, надійність і зручність використання системи, яка відповідає
nотребам автосалону та його клієнтів. Важливими аспектами цього етапу є вибір
відповідних інструментів та технологій для реалізації програмного забезпечення,
розробка структурної та логічної схем системи, створення бази даних, розробка
інтерфейсу користувача та забезпечення взаємодії між компонентами системи.
З .1.1 Обrрунтування вибору засобів реалізації
Обrрунтування вибору технологій і засобів розробки базується на
кількох ключових перевагах, що впливають на якість і продуктивність
розробки інформаційної системи автосалону.
Об'єктна-орієнтований підхід дозволяє моделювати реальний свп за
допомогою об'єктів, які мають стани та поведінку. Це спрощує розробку та
розум1ння коду, сприяє вищій зручності управління складністю системи і
підтримці програмного забезпечення. У випадку інформаційної системи
автосалону, об'єктна-орієнтований підхід дозволяє ефективно моделювати
сутності, такі як автомобілі, клієнти, транзакції тощо [ 13].
Мова програмування С# була обрана через свою тісну інтеграцію з
платформою .NET та середовищем розробки Visual Studio. .NET надає
великий фреймворк для розробки дода тю в, що включає багато
50
-=
1чч'11 т1~
~-11 ~• 1't'1\ \ 11 [ 1 11.
сс1ч~J\l)1Ннна ')«У111об к ,r v ·
t IS LIH І StL1cl ia, я1<е надає
1, , p , ('tR:1HI.? СС\ С І\ОННЩС іlЛЯ J10ЗJ)06 ",
1H t r · - 1<11, 1ccтyna11нsr та rrала г·одження програм,
1 . 1'01-ноr i оGочнй n11ot1ec та б .
прt "- r- r-- ' за езнсчує 1ручн 1 сть для ро1робника. В
n('с.1нанн 1 3 # та · ЕТ, Visua\ Studio дозволяє створювати додатки швидко
тз ефе~-:тивно [9].
QL е1·\тег обра нии~ як система керування базами даних через свою
на.1ійність, продуктивність та широкі можливості. Як реляційна система,
вона забезпечить ефективне управління даними та оптимальний доступ до
них для потреб інформаційної системи автосалону [ 12].
Windows F orms обрано для розробки інтерфейсу через його простоту
та ефективність У створенні десктопних застосунків на мові С#. Він надає
широкі можливості для створення зручного та естетичного користувацького
інтерфейсу [ 1 О].
Ці технології, об' єднуючись, дозволять створити повноцінний продукт
з дотриманням ус1х вимог.
3.1.2 Опис структурної (функціонально·!) схеми зробити дві схеми
За допомогою функціонально-структурної схеми роботи програми (рис. 3.1)
визначається лапка та структура взаємодії різних компоненпв програми, що
забезпечує високий ршень ефективності та зручносп використання.
Зазначаються основні функції та їх взаємозв'язки , що спрямовані на оптимальне
задоволення потреб користувачів автосалону.
5 1
Ч) tTY · 11 253 .О І 4 І J'l
Вхід
,,
Форма з даними про
авто
',
,,. ,,
Форма з даними про
виробників авто Форма з даними про
Форма з даними про
запаси авто на складі
замовлення салону
І
i І
,, i
Форма з даними про
платіжні операції Форма з даними про Форма з даними про
клієнтів салону працівників салону
Рисунок. З .1 - Функціонально-структурна схема програми
Загалом, ця схема відіграє важливу роль у визначеню основних аспекпв
функціональності 1 взаємодії компонентів системи. Наявність чіткої структури
сприяє високій продуктивності, легкості використання та можливост1
подальшого розширення програмного продукту.
З . І .З Опис логічної схеми системи
Опис логічної схеми системи є важливим етапом у розробці програмного
комплексу, оскільки він дозволяє зрозуміти послідовність дій, що відбувається в
системі, і як ц1 д11 призводять до досягнення певних результатів. У цьому
підрозд1ш представлений текстовий опис алгоритму функціонування системи
адміністрування автосалоном, а також графічна інтерпретація у вигляді блок
схеми алгоритму.
Система адміністрування автосал.оном включає кшька основних модушв,
кожен з яких виконує певні функції.
Основні модулі системи:
модуль управління каталогом автомобілів;
52
ЧJ t1 · .24 225 .1 .0t iitп
ю;\уJн, щjюр -t J1~1111я · ··,м
' ' ОВJ1~111, ;
IOJ\YJ1t> 'Правління І<J1 і с·11 1·
ам н ;
Юf\)'J1Ь 'Іl\ХНЗління ОПJ1атамн ;
IOJ\ 'J11> ген раt\ЇЇ звітів.
Функціонування систем .
н сю~адаєтuся з наступних основних крок~в :
кер вання даними про кл ієнтів·
'
кер вання даними про ав1,0 ..
МО 6 ІЛІ;
керування даними про 3 . .
апаси автомоб 1л ів на складі ;
керування даними про виробник~· . .
в автомо 6ІЛІВ;
керування даними про замолвення автосалону;
керування даними про платіжні операції замовлень;
керування даними про працівників салону;
додаткові операції для формування звітів.
Цей детальний опис забезпечує зрозуміле і чітке уявлення про логічну
структуру системи і її основні інформаційні процеси.
З .1.4 Розробка бази даних
Важливим етапом в створенні системи такого типу є розробка
концептуальної моделі даних. Концептуальна модель даних - це абстрактний
опис даних, який не залежить від обраної системи керування базами даних. Вона
відображає основні сутності предметної області, так само і їх взаємозв'язки та
атрибути.
Для створення такої діаграми нам необхідно спершу визначити її основні
компоненти: сутності, що відображають основні об'єкти в предметній області;
атрибути, представлею в межах сутностей з описом 1х характеристик;
взаємозв'язки, які відразу вказують на зв'язки між іншими сутностями. Вони
зображаються у вигляді з'єднуючих ліній. Зв'язки в свою чергу існують трьох
типів : один до багатьох, багато до багатьох, один до одного.
Отже, в результаті виконання всіх кроків маємо готову ЕR-діаграму, яка
допомагає в зручному вигляді побачити модель даних (рис. 3.2).
53
Ч)\Т · 4 25 J .ОІ 4 1П
Транзаці1
Рисунок. 3.2 - ЕR-діаграма бази даних
Як бачимо, в нашій базі даних деякі таблиці будуть мати зв' язки один до
багатьох, адже один автомобіль може замовитись кілька разів, але одне
замолвення може включати лише один автомобіль, один клієнт може зробити
декілька замовлень, але одне конкретне замовлення буде виконано лише одним
клієнтом .
54
11
' НІ!Іt ~н ' я ЮІ( <ЩІІН )\О ощ,оrо, ~І}ІЖ /{ОІІКрсrншr
nнн, 10 , 1,1 1• •
• оJщн ннд ю1rо1 юбіJrя 1щ Jн1111е ун1ютьну
Пkл с1 но1 ~ння l(ОН1\ , 111 , а ~ .
11 110 1 , юд ' Jti даних · а·ннРш~• с пюрю ться
ргічн:1 '-' ~~· 1 h рнс. J 1)
Customers
Іn •cnton
i, •• d
~•'-
!lrn..,,ame
СІ<ІІ
laц_name
Phont_numtж
tm1
Sales
cunom".)d
" i._d11e
d.scoun,
мanufacturers
" m1n..i.-1C't1Yet_id
1
coum,y
Emplovees
~ еmрІоуМ_ІСІ
~ n•m•
lln..nom•
Transactions
" u i._,c1
iu~m•nvntthod
1mount
Рисунок. З.З - Логічна модель бази даних
Логічна модель є більш деташзованою конкретизованою верс1єю
концептуальної моделі. Вона також показує первинні ключі таблиць. Таку
модель можна легко створити з використанням програми SQL Server Management
Studio.
55
-
)1.,,,
. ., ...
t l':, .iн Щ\\tt щ·~н І \' \
' . \ 111\Х РО' \\) (і .
О )JІСІЮ ІІІІ'Н<У ' І Нt)JІНЦІ,, 11(0 НЇJІІІОІІІJ І,НІО'І І,
щ·~11 )\а1111 , • 111 '
l)t( 1 ' .
IIHH(.'JtCJIO С'І ry r<ї Yr Y oc;rroшrиx ., аfіл иІІІ,
Лі~ТІНІ\' t<Щ\у І '
· - ( творс1111я табли1н,
TABLE СаІ'S (
-~FA 1·є
L r - id INT PRIMARY КЕУ
са IDENTITY ,
ь,-а,,d VARCHAR(255),
del VARCHAR(255),
ntO
erigine_capaci ty INT,
year INT,
color VARCHAR(50),
price INT,
manufacturer INT,
FOREIGN КЕУ (manufacturer) REFERENCES Manufacturers(manufacturer_id)
) ;
сRЕдТЕ TABLE Customers (
customer_id INT PRIMARY КЕУ IDENTITY ,
first_name VARCHAR(50),
Jast_name VARCHAR(50),
phone_number VARCHAR(lS),
email VARCHAR(100)
);
CREATE TABLE Sales (
sale_id INT PRIМARY КЕУ IDENTITY,
car_id INT,
customer _id INT,
sale_date DATE DEFAULT GETDATE(),
discount INT,
price INT,
employee INT,
FOREIGN КЕУ (car_id) REFERENCES Cars(car_id),
FOREIGN КЕУ (customer_id) REFERENCES Customers(customer_id),
FOREIGN КЕУ (employee) REFERENCES Employees(employee_id)
);
56
Ч) ~ І ' · 42 5 \ , О І 1\. ІІ ' J
,·є ,-дІЗ ,:: ]: l)Vt:'t"l'Lo r' (
( ~t-J\ -~,- i(f I NT І RI MARY К у ,
t,c> -
<1 t1a11tit y I NT
roR rGN КЕУ ( car_ i d) REFE RENCES
Cars ( car_i d)
' ТЕ TABLE Employees (
cREA
employee_id I NT PRIMARY К ЕУ IDENTITY ,
first_name VARCHAR( 50) ,
i ast_name VARCHAR (50 ) ,
position VARCHAR(100),
salary INT,
hire_date DATE
);
сRЕдТЕ TABLE Manuf actur ers (
manufacturer_id INT PRIMARY КЕУ IDENTITY,
name VARCHAR (100) ,
country VARCHAR(50)
) ;
CREATE TABLE Tr ansactions (
sale_i d INT PRIMARY КЕУ,
t ransaction_date DATE DEFAULT GETDATE() ,
payment_method VARCHAR(50),
amount DECIMAL(10, 2) ,
FOREIGN КЕУ (sale_id) REFERENCES Sales(sale_id)
);
Кінець лістингу 3.1
В результат~ маємо готову базу даннх, придатну для використання в
систем~.
З .1.5 Розробка інтерфейсу користувача
Інтерфейс користувача є важливою складовою розробки програмного
забезпечення, оскільки саме через інтерфейс користувач взаємодіє з системою.
Вимоги до інтерфейсу повинні враховувати потреби користувачів, забезпечувати
57
' ' І І І ,J І І J
k'І'І, Tj t'Фс.'t(Т1tнніс11, ,щ
Ч'' чн корне' :1пнн , а також гех ні 1 111им
. \і,н~:1.111,1111 1 1Чt 1 101 ·~1 1 снс,·смп
d,,·t1 'К ' . . .
()1..·н,11щt нн 101·1, .1,0 1нi'L'JЧl><: ik корне, Н:Рrа :
інтL'рфL't'і\.: 11оннн~н б 1н ІН1 уї1пнно ·tpo·~y 1 і 11им ·1ру 1 rним у
н11кщ,11станні л.л я ncix l<'нс, ·о ). ·, .
• І 111 корнстунач,н;
неі ('Jl (' 1 ('НТН інт~, ~)СІ~ •~
\ f 11
'" ttовннн і мати чіткі 1ро1ум1лr підписи та
інсч укції~
_ всі стоr інки і 1од лі ін ,1 v
терч>еису повинні лотримуватись єдиного стилю
офор 1лсння;
кольорова схема, шрифти, розташування елемент1в повиню бути
однаковими;
інтерфейс повинен бути доступним для користувач1 в з обмеженими
можливостями;
інтерфейс повинен забезпечувати швидкий вщгук на дії користувача,
мінімізуючи час завантаження сторінок і виконання операцій ;
система повинна обробляти запити користувача в режимі реального
часу;
інтерфейс повинен забезпечувати захист особистих даних клієнтів
конфіденційну інформацію про замовлення і оплати.
Інтерфейс користувача розроблено з використанням компонентів Windows
forms, які забезпечують наступні можливості:
створення вікон та діалогових вікон : використання компонентів Form,
Dialog, MessageBox для створення основних і допоміжних вікон
інтерфейсу;
відображення даних: використання компонент1в DataGridView,
ListView, ComboBox для відображення списків і таблиць з даними;
форми введення даних: використання компонентш ТехtВох,
MaskedTextBox, Numer-icUpDown для введення текстових і числових
даних;
58
ч;1 · 1 ·
' .2422s1.014 rп
правління : ВИІ<ориспнrrrя комгrонент1в Button,
l~adio13нttoп 0 , 'l"
' ,:\te 1111ePickcr для управління діями
віз ,альні еле 1ентн: nикорнста~шя комrю11ентів Labe l, PictureBox,
P1·og1·essBaг для відображення
тексту, зображень та індикаторів
nporpecy.
Приклад розробленого інтерфейсу зображено на рисунку З .4.
о х
пошук за маркою
Автомобілі Операції над даними
Ід Марка Модепь Рік Об'єм
Копір Вартіаь Виробник
доиrуна
Ре.йагvвати Видапити
2 111
Ре.йагvвати Видалити Форд Мvаанг 2021 2
Ре.йагvвати 8ид41Іити З 5 ЧервониіІ 45000
Фо11ьксваг... Гопьф 2022 БіпиЯ 20000 з
L' .[_ _в_ и_р_об_н_и_ки_ __ ,/ _/ __за_ м_о_в_л_ен_н_я _ __,/ ._І_ __з_ а_п_ас_и_ __ _,/ ._І_ _д_ од_а_ти_ав_т_о _ _
Рисунок. З .4 - Розроблений інтерфейс
3.1.6 Опис розробки програмних компонентів
Для розробки прикладного програмного забезпечення використовується
ряд етапів та методів, які спрямовані на створення функціонального та
ефективного програмного продукту.
В першу чергу потрібно створити БД з відповідними таблицями, які будуть
містити інформацію про автомобілі, користувачів, працівників, виробників тощо.
Наступним кроком є підключення до створеної бази даних (ліст. 3.2).
Лістинг коду 3.2 - Підключення до бази даних
public static SqlConnection GetConnection()
{
59
Ч) \Т -242253.01 4 11'3
ql = "Data
,trinS . Source=localhost\\MSSQLSERVER;InitJa]
ar· dealer"slнp; Integrated s
. 1og"' - ecurit y=True" •
•;tt•1• • ,
l• <11co11nect1on conn = new SqlConnection ( sql);
tr
{
conn. Open( );
}
catch (SqlException ех)
{
меssаgеВох.Shоw("Помилка SQL-з'єднання! \п" + ex.Message,
"Помилка", мessageBoxButtons . ок, MessageBoxicon. Error);
}
return conn;
}
Кінець лістингу З .2
далі потрібно створити класи (ліст. З.З). в нашому випадку кожен клас
буде відповідати конкретній сутності в базі даних і буде містити поля, яю
відповідатимуть атрибутам відповідних сутностей.
Лістинг коду З .З - Приклад класу сутності
namespace carDealership
{
internal class Car
{
public string Brand { get; set; }
public string Model { get; set; }
public string Year { get ; set; }
public string EngineCapacity { get; set; }
public string Color { get; set; }
public string Price { get ; set; }
public string Manufacturer { get; set; }
public car(string brand, string model, string year, string
engine_capacity, string color, string price, string manufacturer)
{
60
►
Ч;\ l ' .24 253 .О 14 111
13,,з11d ::: ь,,а,1d ;
моd .:.1 = ,ноd 1;
у ar' = year";
EngineCapacity = engine_capacity;
color' = color";
р,-ісе = price;
мanufacturer = manufacturer,·
}
}
Кінець лістингу з .З
тепер створимо окремий файл, в якому будуть міститися функції, яю
будемо викликати при додаванні , редагуванні, відображенні та видаленні даних
(діст. З.4).
Лістинг коду З .4 - Фрагмент вмісту файлу для операцій над даними
puьlic stati c void ControlOrder(Order о, string sql, string? id = null)
{
sqlConnection conn = GetConnection();
SqlCommand cmd = new SqlCommand(sql, conn) ;
cmd. CommandType = CommandType.Text;
if (id ! = null)
{
cmd .Parameters .Add("@id", SqlDbType.VarChar).Value = id;
}
cmd.Parameters.Add("@car", SqlDbType.VarChar) .Value = o.Car;
cmd . Parameters .Add("@client", SqlDbType .VarChar).Value = o.Client;
cmd.Parameters. Add("@discount", SqlDbType.VarChar).Value = o.Discount;
cmd.Parameters. Add("@employee", SqlDbType.VarChar).Value = o.Employee;
try
{
cmd. ExecuteNonQuery();
61
1t'S~iЧ,t'B ' • Ію~v(" 11\ШНОІ " , "tнформа 1t1$1 ", М ssagPBoxBut tons.OK,
1 11. I11fo 1-111atio11) ;
1
-зt 1, qlE, ceptio11 ех)
{
ме sageBo .sІ, оw("Помил r<а SQL - з'єднання І \n"
+ ex.Message,
·•no л а", мessageBoxButtons .oк, Message Boxicon Е ) ·
111 • rror ,
}
finally
{
conn .Close();
}
}
Кінець лістингу З .4
Дані будуть відображатися у формах в компонентах DataGridView (ліст.
З.5). DataGridView - це елемент інтерфейсу користувача у фреймворку Windows
Fo rms, який використовується для відображення та редагування табличних даних.
Він дозволяє ефективно відображати дані у вигляді таблиці з рядками та
стовпuями, а також надає можливість користувачам зручно редагувати ці дані
безпосередньо в інтерфейсі програми.
Лістинг коду З .5 - Відображення даних
public str i ng select = "select employee_id as 'Ід', first_name as 'Ім' 'я',
last_name as 'Прізвище', posi tion as 'Посада', salary as 'Зарплата',
hire_date as ' Дата працевлаштування' from employees";
public void Di splay()
{
DB .Displ ayAndSearch(select, dataGridViewl);
}
private voi d FormEmployees_ Load(object s ender, EventArgs е)
{
Display() ;
}
Кінець л істингу 3.5
62
Ч)\Т · 4225J .014 І П
І о)І{Н3 Ач юрм·з" б J\C · 1'т п1 {\ ) ню,,·1 0 1101t1 t<y 1,н11н х . J(шr rrorrry r<y с-пюре~ ro
10нсн1· t·c~tUox і ні;,поні ;ща Ф 111 ,,ін (лkт. ] .6). Н тюжній н1fіт,ті по111у 1< fіуле
.0r,11 •
" , О -~~ t1Cl НН ~ 1 \)H1'CJ)tc'M .
.~ снсН
·iJt'' л•· ~тннt· 1 OJ\Y 3.6 - l l otпyr< J\~ІТІих
voi d t , tSearcl,_ TextCl1a11ged ( object sender, EventArgs е)
•vate
p1•J.
{ _o isplayAndSearch ( select + " WHERE concat ( first name, • • , last name)
06
•¾" + txtSearch . Text + "%' ", dataGridViewl);
~1\lE
\
J Кінець лістингу З.б
для додавання та редагування даних створено форму, яка змінює надписи
. відно до натиснутої кнопки. Для цього теж створено окремі функції (ліст.
51.дТТО
3,7).
Лістинг коду З. 7 - Зміна надписів форми
publiC void Updateinfo ( )
{
textвoxl. техt = br and ;
textвox2. Text = model ;
textвox4.Text = year;
textвoxб.Text = engine_capacity;
textвox5.Text = color;
tехtвохЗ. Text = price;
textBox7.Text = manufacturer;
l abell.Text = " Редагування";
btnAdd.Text = " Оновити ";
}
public void Default info()
{
labell.Text = "Додати а вто " ;
btnAdd.Text = "Зберегти ";
}
Кінець лістингу 3.7
63
Ч) ~ТУ .242253 .О 14 І П
Jtc · 11•' )НІІ Н 1t фу11 І<І tio1 ІШІ 111101· 11 · 1м 11 1)·1·
ос < системи . / tепu11,11і 111и й код можна
,·1'1'1 11 ) tOJЩTKY Л . 'Jшщ1ом, буJІо
111 ус11і 11 1110 ро·1rоб1 1 с110 та реалі1овано
1l 'І 'JI)
1tl'1 фу1-11<1tіt>11ол і11форма1~і йної
)J!І 111 систем и автосш1ону . Ретельно
,11І(1'І(
1'· • •1 ,0т11НІ та р~ал ~1ова~н:~ система, базуючисr. rra мові програмування С# та
•І ІІ111L1'
l •1'(_)uуючн зручне ~нтсrрооане ссре!\овиrце Visual Studio, виявилася
,,, i-'()J)Jlt:
1 )Юта корисною.
,1-1·11 tJH(
~-Ф~ . ., ..
внкорнстання реляцш~юt системи управління базами даних SQL Server та
" ворКУ Windovvs Foi·ms для створеншr інтерфейсу користувача забезпечили
ф ,снМ
1
,., ·сть та зручність У використанні програми . Інтерфейс відповідає усім
~l1Jlt1~HI
щодо зручності та зрозумілості. А код, 8 свою чергу, добре
внмоrами
. урований та читабельний.
crPY"r
реалізований функціонал дозволяє легко взаємодіяти з базою даних,
t.n1вати аналіз та отримувати необхідну інформацію щодо nродаж1в,
gJi!{Oп;
,,обілів та клієнтів.
аsто1"
3.2 Тестування системи
Тестування системи є важливим етапом розробки програмного
забезпечення, спрямованим на виявлення та виправлення помилок, а також
забезпечення відповідності системи вимогам. Основна мета тестування -
гарантувати, що всі компоненти працюють коректно та узгоджено, забезпечуючи
надійну та безпечну роботу системи.
Процес тестування включає кілька тишв, кожен з яких виконує свою
специфічну роль. Ретельне тестування на кожному з цих етапів забезпечує
високу якість програмного забезпечення та його готовність до впровадження.
3.2.1 Модульне тестування
Модульне тестування є першим етапом у процесі тестування програмного
забезпечення, спрямованим на перевірку окремих модулів або компонентів
системи. Це тестування проводиться для виявлення помилок на ранніх стадіях
розробки та забезпечення того, що кожен модуль функціонує відповідно до
специфікацій . Основною метою модульного тестування є перевірка коректності
64
1111-------------ІІіІІіііііііііііііііі. ......~ _,;;_
Ч ) \Т .2422~1.О 14 І П
І 'С І УІННІfІЯ СИ(' Г • ІИ а;1мі 11і стрування
., iн)JH)M було ннкорн ·татю та~<і
;111·1,,\ •1· ІНс rт)умс11rи я1< N\ Jriit, фреймв('1рк лля
, ,,.\., 1 , )J'I.) т~І.'Т нання , я1<ніі J\01Bl)Jt . •. . ·
1 .11 ,м · . Я< с r порющ, 1и га nи1<<1r1уnати аА'Гомати1ован1
" ю)мt101-н.~11тт, 111.л1юблет1и х , (_'/J · ·
i \ '~·1·11 J\.1 1" НсІ ,., та Моч, б 1бтотека ;Iля створення
,1;11._ну1 11ок і юк-об' кті в, що J\озволя(' і10111овати тестовані модулі від 1алежностеt1 .
11 р о l\cc мод л мю1 о тесту вання ро1rrочався з ви1начення тестових випадю·в
я 1'ожноrо ,юдуля, які охоплюють всі можливі сценарії використання та
нл
перевіряють коректність роботи функціональності. Після цього були написані
11вrо ~атизовані тести для кожного модуля з використанням NUnit, які включали
перевірку основних функцій модулів, обробку граничних умов і виняткових
ситуацій. Для забезпечення ізоляції тестованих модулів використовувалися мок
об'єкти, створені за допомогою бібліотеки Moq, що дозволяло тестувати модулі
незалежно від інших компонентів системи.
Після написання тестів всі вони були виконані за допомогою NUnit, а
. .
результати тестш анал1зувалися для виявлення помилок та їх подальшого
виправлення. Виявлені під час тестування помилки виправлялися, після чого
відповідні тести виконувалися повторно для підтвердження їхнього усунення.
Модульне тестування дозволило виявити і виправити помилки на ранніх
стадіях розробки, що значно шдвищило яюсть 1 надійність системи
адміністрування автосалоном. Використання автоматизованих тестів і мок
об'єктів сприяло ефективному проведенню тестування та ізоляції модулів, що
забезпечило точність і незалежність тестів.
Проведемо тестування модуля оформлення замовлення перев1ривши чи
додає нове замовлення. На рисунку 3.5 зображено вікно модуля
65
Ч)\ТУ.242251 .О 14 І 11
о х
.,
Замовлення
ІД ЛАтЬ r1му,,., • )~r3/tM1~
1 Пр~u,ениr
/1,,t~ Знв .,.,~
мртІсrь
в,111~n,щt
rм81)'t~"' І , 01 17 lM'J jl)!) Жffl
І
R1111~nttтlt
~f!ІІАІ •~АІІІ 12 2 l 01 ll 2()23 ІОІ)І) d1!11)1) 2
І
; rм81УМ'" В1111в1111n, 4
/ 14 12.012021 J 2rm1 d
1 1
В1111м,,n,
r,ед81 •~вnt 5 5 15 08 2023 l299З ;
Вндм11nt
PtA81)'1!8f11 І
І PІ'.A&ry~вnt 811.4м11nt .
,___п_р_а_ц_ів_н_ик_и_---JІІ.. ..._ _к_ л_і_єн_т_и ___ , дода-ти замовлення ]
Рисунок З. 7 - Модуль замовлень
вірим чи зможем редагувати замовлення натиснувши кнопку Редагувати,
fJepe
nіСЛЯ натиснення кнопки откриваєтся вікно редагування даних(Рисунок З .8)
,0~кv можна буде побачити,які дані ми можемо змінити.
у як 1".J
о х
Редагування
Ід авто
1
Ід клієнта
7
Знижка
500
Працівник
п
Оновити
Рисунок 3.8 - Модуль замовлення: редагування замовлення
Перевірим чи видаляєтеся замовлення при натискання кнопки Видалити.
66
ЧЛТУ .242251 .U 14 111
нзп1 скштя t<нотш ,нню,ит<·н .. , . · ді йсt-Ю
JfiCJlЯ < СН HI J<IJO НКС rrcperrИTYf' ЧИ
. ,1Gc·m c' t · 1111 я б •·tнсчності - . 3 9)
.,,. JtJІЯ J, ттри сну•н1й11ому натискані (Рисунок ·
,,i11
,,, 111:l·
Замовлення
Ід
f1oryn,ць )8f'8/Нtt-f8
л..,~
!t8pfft: H,
І 0tІ,ІІ•ІtІІtІІ 1
r•JІ'' ·••"' І .І 1 І , \ 0J.12.202J 12dSOO
811,1\&Іt ІІТІІ 2 'soo
rf..ALtl)'l!Af'lt 2023 1000 МОО() l
B1V\M,HTtt 4
rrA~.-Y"·"r,, 2023
Вн,д8nнf't, S
Р<.А••У••"' І ~023
r<.A•'),.,.,., І
P<.A•ry••"' І
ІІІ
Працівники
Кліенти Додати замовлення ]
Рисунок 3.9 - Модуль замовлення: видалення замовлення
Таблиця № 3.1
Результат модульного тестування
Модулі тестування Результат
'fomillmployees.cs Успішно
Employee.cs Успішно
3. 2.2 Інтеграційне тестування
Інтеграційне тестування є наступним етапом після модульного тестування,
спрямованим на перевірку взаємодії між різними модулями системи. Основна
мета інтеграційного тестування - забезпечити коректну спільну роботу всіх
компонентів системи та виявити можливі проблеми, що виникають при їхньому
об'єднанні .
Під час інтеграційного тестування системи адм1юстрування автосалоном
було проведено перевірку взаємодії між основними модулями, такими як модуль
управління каталогом автомобілів, модуль оформлення замовлень, модуль
управління клієнтами, модуль управління оплатами та модуль генерації звітів. Для
67
►
ч;л· .2422sJ.014 11 :.з
[Іісля натискання ю-н_)t~кн HHt<m .
' -ІІ<tН'1'С>1 ві кно m<c 11crcrrитyc чи л1 йсно
ляrи для забезnсчсння 6е:.течн , ,•
~11)13 ос,, прн случайному натискшrі (Рисуноr< 3.9)
. ···-·· ····· ... ... .. .. ......- ......
Замовлення
~ дото
Покуnоць Дата Зеrе"ьн~t
Зtнtжка Прltціенt.tк
РОА•І)"'""' Вн,дглнn, 1 1н,р,ість
POA•l)·••n• Внда11нтн 2 03.12.2023 500 24 500
'"ФОР"•ці•
POA•l)"'•n• 8t\A81'1t,n, 2023 1000 44000 2
4
4
POA•l)•••n• Б1,д•1шn1 s 2023 з 20997
- о д1,,,но ••ІА•n1ш1 / 2023 7 22993 s
РОА•І)"'""' Вt\дал"n' б
2023 2 64998 б
POA•l)"'•n• В1t.да1щn,
( Так ] НІ
Qранзакції Працівники ]
Клієнти Додати замовлення j
Рисунок 3.9 - Модуль замовлення: видалення замовлення
Таблиця № 3.1
Результат модульного тестування
Модулі тестування Результат
FonnEmpJoyees.cs Успішно
1 Employee.cs Успішно
З .2.2 Інтеграційне тестування
Інтеграційне тестування є наступним етапом після модульного тестування,
спрямованим на перевірку взаємодії між різними модулями системи. Основна
мета інтеграційного тестування - забезпечити коректну спільну роботу всіх
компонентів системи та виявити можливі проблеми, що виникають при їхньому
об'єднанні.
Під час інтеграційного тестування системи адмш1стрування автосалоном
було проведено перевірку взаємодії між основними модулями, такими як модуль
управління каталогом автомобілі в, модуль оформлення замовлень, модуль
управління клієнтами, модуль управління оплатами та модуль генерації звітів.
68
ч;л·
· 4 2 5 ~ .01 4 1П
1 Іrоmmжепня- rяfі ннпі 1 2
спіппю
]
спіттпrо
Під час системн:01'\.) 1'('с,: • вання , , , . .
. . · снсl'с пt 1щмт1с1руnання аnтосшюrю r буно
,евірено вс 1 основн1 функціональн і ком11
1ef оненти , а також проведено онінr<у
,~-тнвності . безтт1::кн та зручно , ·
111' <1 1.:тt внкорнстання . Це тестування охоплювало
. ~ттектн роботи си:сте .~н вкл
р,·1 з~ · ючаючи nзасмодію з користувачами, обробку
. виконання бізнес-логіки та · • .
JТЯJ-fТ{\.. 1нтеграц1ю з зовюшніми системами.
Перши t етапом системного
тестування було створення комплексного
тового плану, який включав детальни~ . •·· · к
fe'C и опис ус1х тестових сценар11в 1 методи
11еревірки. Тестові сценарії були розроблені таким чином, щоб охопити всі
можливі випадки використання системи, включаючи звичайні та виняткові
crrryauiї. Особлива увага приділялася перевірці важливих функцій, таких як
обробка замовлень, управління клієнтами, обробка оплат та генерація звітів.
Під час виконання тестових сценаріїв проводилася перевірка відповідності
системи визначеним вимогам, а також оцінка її поведінки в різних умовах.
тестування проводилося як вручну, так і за допомогою автоматизованих
інструментів, що дозволило забезпечити високу ефективність і точність перевірки .
Особлива увага приділялася перевірці продуктивності системи під високим
навантаженням, для чого проводилися спеціальні стрес-тести, які моделювали
роботу системи в умовах інтенсивного використання.
Безпека системи також була важливим аспектом системного тестування.
Проводилися тестування на виявлення вразливостей, перевірка захисту даних та
забезпечення відповідності системи вимогам безпеки. Було проведено перевірку
доступу до конфіденційної інформації, захист від несанкціонованого доступу та
забезпечення цілісності даних.
Крім того, шд час системного тестування оцінювалася зручн ість
використання інтерфейсу користувача. Проводилися тести на зручність навігації,
69
r Ч)\Т
· 4 53 .01 4 11'}
зрозумілість J\Оt'і-чн ість Р<-Нт:.н11
нання 'JІ •м •,пі н і птсрф •йсу ' t ·rа1<0Ж
•JJ{Й корн ·тув~цькнй до~ні;, l 1 ' (.
ri.nf,г- , . , ~ )IOЗЩ)J1Jt ·
901·, . Jto нияни·,·и та виправити не;ю111r<и ,
глн 6 ,складннтн робот , корн , , . .
11111 r-<O І.:Т н .., \.1113 ~ з снстемою.
ре· у.11ьтзти системного 'l'ест ,
) вання були J\етальтю rтроанал і 1овані та
.,,мен1·овзн і . Внявлен і ттомнлкн т· .
~:iJlO'-. . . . а НЄJ\ОJ111<и були пере;щпі на виправлення,
чм-о вщповщю тестові сцена ...
11 icJrЯ . рн 6 ули виконані повторно для підтвердження
"О усунення. П1сля заверше, . .
j,нь01 іНЯ вс~х еташв системного тестування було
І дено підсумкову оцінку готов •
fffx,вe ност~ системи до впровадження.
загалом, системне тестування дозволило забезпечити високу якість
u",т•11'п11-А 1 !-ність системи адміністрування а . .
втосалоном, гарантувати її відповщюсть
. вІJМОГЗМ 1 шдготувати до впров .
yctr.f адження в експлуатащю.
Таблиця № З.З
Результат системного тестування
Системне тестування Результат
Перевірка додавання авто Успішно
Перевірка додавання замовлення Успішно
...-
Перевірка на видалення редагування даних Успішно
Перевірка пошуку Успішно
І
3.2.4 Приймальне тестування
Приймальне тестування є завершальним етапом процесу тестування
програмного забезпечення перед його впровадженням у реальну експлуатацію.
Основна мета приймального тестування - перевірка системи на відповідність
встановленим вимогам та оч1куванням юнцевих користувачш, а також
підтвердження її готовності до використання в умовах реального середовища.
Під час приймального тестування системи адміністрування автосалоном
були залучені представники замовника та кінцеві користувачі для проведення
тестів і оцінки функціональності, зручності та надійності системи. Це тестування
70
--
,)J . о 14 1 П
. nk ТІ, і Jюгіч н іст1) ро·,,·:н ~ ~чр ,,
'')'!'111• . . .1 ,, lllHl l'Jlc..'M, · , и"
.,,,о:, ~ 1.:11 пн ІН гсрф ·iky, а UН<ОЖ НІUІНJ,JJИ
· .,·уознькнй ло1.:нщ. 1\ с J1.о·щ0.1Н1J,о
.0,,1і<- · 1~ ІНІНнт11 1·н ннпр111нпн rrслоліr<и, що моr л и
6~ . ·1 n 1нt1·11 po6t ту KOJ)Hl'TYnaчiн j,, , ,
,·~·~-Л· І ' ~ ~ t:H ,·~мою.
. pc·'\'J1bT3TH СНС1'СМІ·ЮГО 1'Сl'Т\І ,
• J в"щня були J\СТШТІ, 110 rrроаналі1ован і та
. , н~н1х)взні . Внявлені помнлкн . , .
~:1'1<1"~ 1 а HeJ\OJ11 1<н були передані на виправлення,
t)ГО відповідні тестові сцена ...
11 і(,11 Я .i " рн 6 ули виконані 11овтор110 для підтвердження
, , унення. Після заверше ·
і\ньоГО · ння ncix етапів системного тестування було
ен· о лідсу 1ков оцінку готов ·
11р<1вед ност~ системи до впровадження.
Загалом, системне тестування дозволило забезпечити високу якість
пі~1ність системи адміністрування автосалон 11зµ. • ом, гарантувати її відповідність
усім вимогам і підготувати до впровадження в експлуатацію.
Таблиця № З .З
Результат системного тестування
Системне тестування Результат
Перевірка додавання авто Успішно
Перевірка додавання замовлення Успішно
Перевірка на видалення редагування даних Успішно
- Перевірка пошуку Успішно
3.2.4 Приймальне тестування
Приймальне тестування є завершальним етапом процесу тестування
програмного забезпечення перед його впровадженням у реальну експлуатацію.
Основна мета приймального тестування - перевірка системи на відповідність
встановленим вимогам та оч1куванням юнцевих користувач1в, а також
підтвердження її готовності до використання в умовах реального середовища.
Під час приймального тестування системи адміністрування автосалоном
були залучені представники замовника та кінцеві користувачі для проведення
тестів і оцінки функціональності, зручності та надійності системи. Це тестування
71
,,,1,1<.) \ ''/\\ 11)'1\,\
nt{) .,.
f~ .
}('tH~1'. 1 tН Р<- 0(.) 1 Н снря юшнтіі ,ш нсрсвірr<у
r.~•li ilt •
11~-1 mн,t 'т~н10,t прнн tа:1мюго 1сс·1
. нання 6у·10 вишачсшrя кри·1ср1ш
~ t Т'f.Я, що НІ\. ночалн ф, НК1'іо .
,111,1 ., , НШН)Н\ ta Н ,,1 .
tH _ • ' с'І>у11ю~1011аш,ш вимоr и до системи.
rl''l н l)\.1Н зго,ж~ю з •за
l "~' • 10в <- н Нко 1 і вк точали п1ю, аснсктн як коректш·с ть
,о~-:ІІ зз ювлень, правління . '
1 кл~снта ш, обробка оплаг, 1 е11ерація звітів,
t1f ) ,..., i-. rивнt ть си те.ми: та її безпек а.
далі проводилося безпосередн.є
тестування системи кінцевими
нсn вача.\.ш:. Для цього бул
·ор • . 0 організовано кілька сесій тестування, під час
користувач~ виконували типов·
я~-Н'- 1 завдання, що відповідають їхнім щоденним
аuіям. Вони перевіряли функ · . .
опер цюнальюсть системи, взаємодію між р1зними
модулями, а також загальну зручність використання інтерфейсу. Особлива увага
діпялася перевірці важливих. ф · ~ б
rтрИ J ункцш, таких як створення та обро ка
замовлень, введення та збереження даних клієнтів, обробка оплат та генерація
звітів.
Під час тестових сесій збиралася зворотний зв'язок від користувачів щодо
зручності використання системи, її продуктивності та відповідності очікуванням.
виявлені проблеми та недоліки документувалися та обговорювалися з командою
розробників для їхнього виправлення. Крім того, проводилася оцінка
продуктивності системи в умовах реального навантаження, щоб переконатися в її
здатності справлятися з очікуваними обсягами даних і кількістю користувачів.
Завершальним етапом приймального тестування була перевірка виконання
всіх критеріїв прийняття. Результати тестування були детально проаналізовані та
задокументовані. Виявлені недоліки були виправлені, після чого проводилося
повторне тестування для підтвердження 'іхнього усунення.
Після успішного завершення приймального тестування було складено акт
приймання-передачі програмного забезпечення, який підтверджував, що система
відповідає всім вимогам замовника і готова до впровадження в експлуатацію.
Приймальне тестування дозволило переконатися в якості та надійності системи
72
r Ч)1' '1' l ..... 4 ....... J .O 14 11]
Таблиця N~ З.4
Резу.11ьтат ПІ)І -1~1 -ІМаJ~ьного тестуо•·, 11ш1
1-fІ І додатку Результат
lj:1 •f H
форм Успішно
i,i~t-Нl
да1-н1х Успішно
ь:1за
6~а даних Успішно
обР0 -
3,3 Приклади впровадженого програмного комплексу
розроблена програма для автосалону виявляє широю можливост~
застосування в сфері управління та аналізу бізнес-процесів автомобільного
nі.JІJТРиємства. Зокрема, вона сприяє автоматизації обліку та моніторингу
продажів, управління запасами автомобілів, аналізу ефективності роботи
співробітників та взаємодії з клієнтами.
При вході в систему нас зустрічає форма з даними про автомобілі, які є в
салоні (рис. 3 .5). Тут також є функція пошуку за маркою та кнопки для
відкривання інших форм.
о х
,!'
Поwук sa маркою
Автомобілі І Операції над даними
8иробн"4К
Ко11ір
РіІ(
Ід
PeдorvotHM 8"'40IH4f ... Чороо••иИ 45000 2
ФОРА Мустонr 202 1
Редеrv~,и 8.-..аО-lІиТМ 2 бІ,иіІ 20000 з
Фо11ькс.01r ... ГоJІІ•Ф 2022
Ре.соrvва1м 8И.А41111'11М 3
'---В_и_ро_б_ни_к_и _ __,І \L-_з_а_м_о_в11_е_нн_я_ _,\ ІL_ __за_ п_ас_и_ __ ,І ІL-_д_о_да_т_и _ав_т_о __,
Рисунок. 3.5 - Форма з даними про автомобілі
73
Ч)Л'У.242253 .о 14 113
о х
Пошук
Редагування
Додати клієнта
Ім'я
Внлал --- Те nефо11 Емай.n
Pe.лarvsaп, ,
Pe.лarvsaп, Внла111 _J 123456789 ivan.ivanov@ex .•
Прізвище
/петренко ]
Телефон
'+987654321 -----·-,
І ---·---
Емайл
/[email protected]
Оновити
Рисунок. З. 7 - Редагування даних
Після натискання на кнопку видалення з' являється повідомлення про
підтвердження видалення (рис. З .8). Це потрібно для того, щоб забезпечити
додатковий рівень безпеки та уникнути ненавмисного видалення важливих даних .
Підтвердження видалення є стандартною практикою в інтерфейсах користувача,
яка дозволяє уникнути недорозум1нь та випадкових помилок.
Ця функціональність допомагає запобігти видаленню даних без належного
обгрунтування та дозволяє користувачеві підтвердити свої наміри перед
виконанням важливої операції. Такий підхід сприяє вдосконаленню взаємодії
користувача з програмою та додає додатковий етап підтвердження для дій, які
можуть мати суттєві наслідки .
74
Ч)1ТУ .242253.О 14 ll'·
,,
_/ Виробники 1
Додати виробника І
j 111
Ім 'n
f)ед3fУО3ТІІ І 1 КроТ1ю
Реда rvs,in1 Видали
і ІнформаціА 1 11по11Іл
pм11rv08n1 Видали США
~
О Дійсно видалиtи?
[ Так J! Ні
Рисунок З .8 - Видалення даних
Також розглянемо форму з даними про замовлення автомобілів салону (рис .
,). 9)' Тут можна побачити кнопки для перегляду даних про працівників, які
прийМ али замовлення, про клієнтів, які зробили замовлення та про плат1жю
оnерад11 •
Замовлення
І Загальна
Ід Авто Покупець Дата Знижка Працівник
_l вартість
► '-Редаrvва111 , ВидалІ!!и І І І
Ред~rvв~ти Вид<!:!ІИТИ -1 2 j~ - L І 03.12.2023 /1000_ : «ооо ~ --
~
[ Платежі І І Працівники І І Клієнти І І Додати замовлення І
Рисунок 3.9 - Форма з даними про замовлення
75
Ч.) \Т ·24 , 53.01 4 113
Пошук
Виробники Додати вироб►1ика j :,
.----- ------;:----~=--=-----:~
Ід
РсдаІ'\11Н1n, В1vн1111,1'\\ Ім 'n Кро\\ 1а
Ред~І'\•еаn, 1
В11.11али1'\\ 1 ф Тnі1ота fІrю11Ія
PCAarvean, в н ормація
11.1\<ІІІИТ\\ ~І\ сwл
~
О Діі!сно 011дмити?
[ Так ] Ні
----- --
Рисунок 3.8 - Видалення даних
Також розглянемо форму з даними про замовлення автомобілів салону (рис.
,.9). Тут можна побачити кнопки для перегляду даних про працівників, які
rриймали замовлення, про клієнтів, які зробили замовлення та про платіжні
терац11.
Замовлення
Загальна
Ід Авrо Покупець Дата Знижка Працівник
оартість І
► Редагvвати Видалити І tr.к:-• IJ I • 11
Редагvвати Видалити 2 2 2 ОЗ.12.202З 1000 44000 2
-Ь
[ Платежі І І Працівники І І Клієнти І І Додати замовлення І
Рисунок 3.9 - Форма з даними про замовлення
76
-
Ч)~Т .242253 . О І 4 113
,а~ож варто . з· Нз'-tнтн, що основно~
. . . 0 задачею аотоматизації в розробленій
1і с обт"' звтомоб1л1в. Кількіс
i11i.:rcr- . • ть автомобіл ів n запасах можна поповнити,
•sUJH вщттовщну форму (рис. 3 О)
·111-1
~! •r· 1, • 1 •
пошук за ід авто
о Х І
Додати запас
Поповнити
Поnовнитм
Kl.nьttiaь
Поnоnщ4тм
Поnо~тм Ід авто 2
29
!~_ =:J
Кількіс=ть_ _________ _ _J
9
[ Оновити
І
~ - ------------·----- -- -
Рисунок. З .1 О - Поповнення запасів автомобілів
Після додавання нового замовлення автомобіля кількість в запасах
зменurується . Тому користувачам системи не потрібно буде вручну змінювати
кількість, що полегшує управління салоном.
Також є окремо форма, яка м1стить значну кількість операцій для
формування різних звітів (рис . З .11 ).
о х
Се~АЖІІ u p,k n. • • ,о npO. ....M JI
комсннм nр11цІенисом
СеsмАНІА о6'~м А8ИІуtцІ №• KiJtwoef'- ИfOMoesu.i8 '1 COJIUtOW)' Іt0"'..0~ .f.J'A Ce~.l о6'о. A8wytt,a
.:о-.моtо poq, •мnуску 11.0.МОtО 8t4po&.MU •ОJКноf МОА«ІІІІ
8м61р ••, омо6uІ" )N&A ...... Np1k111, nроА,8,НМ11 8м6Ір ae,o.,.o6uti• Виtйр аа,о.,.о6і111і• Параме1р
АОн-.µе,-..Оfо ІС.АІt:нІ• ее,омоfкАІ• c.nl•po6.1нмiu •ок.qм-tWОІО емробt-tмu ссжсрс1ИОt"о poiry eиn~ery
! - ........ ц '"' ""° ......... , І КіА-.-1<:п, ••1омо6і,А[е МО)І(моf І Поа. .. Іо,фОрм•цІо оро ,,,..,.,щjІ І де,аАІ npo nрацІ•нмІU8 , . Drнii )at&AWta c.iAti.tuC,~ tp,AtІ..uщiA , .
М8f)81..ІоІН.- С.,сJ\№ npoa• •I aap,kn. АА• ttAN.кt•
Рисунок. 3.11 - Форма для формування звітів
77
-
Ч)1Т .242253 .О 14 І 1З
:11·~1лом. пr огрз -ta . аб~зпсч с ·~ручний інтерфейс J\ШІ nnедення та
•·tCl'I 1н1 д:нтх. що спрощує робочнй процес персоналу та 1~о1воляс приймати
1-1111
' ,,· н1,08~н1. управщ.н сью. рt. щення. Застосуnання нієї 11роrрами підвищує
1 r,,,:. . . . ... робоLJИХ
·r\\В,п. ,ість тз точн1сть аналпнчннх ОПЄ\)аt \ій ' сприяє оптим1заu1 1
,фС}-. ,· та покращенню якост,• обслуговування 1ш і . 1 пів у сфер•~ авто мобільних
,1pt)1 1е tB
~ів.
11 ) jl<
78
►
ч;1т І , .. 42. . 53.0141 П
nиснов1(и
у ньо ty розділі внк.nадено ..,
. . нанважливіші наукові та практичні результати ,
,~мзн• в процес1 внконання \(В . ~ . .
,,,1 Мtч>1"І(ац1йної І оботи бакалавра, які включають
'"'t\·лювання розв'язаної' наук .. . ...
фtЧ · • ... 01301 задач 1, 11 значення для науки і практики, а
·о~ ре1'О 1ендацн щодо викорн ,
i-:11- с1ання здобутих результатів.
початковий аналіз
Існуючих методів та засобів розв'язання задач
авління автосалоном показав 6 • ...
уrтР , що агато систем мають недоліки в ІНтеграцн
. их функцій, зручності корис
р1з» тування та надійності. Відповідно, поставленою
·овою задачею було розроб
на)'К ити комплексне програмне забезпечення для
а.W-rіністрування автосалоном, яке б забезпечувало ефективне управління
~-.а та логом автомобілів ' замовленн ями, кш·є нтами та оплатами, а також генерац·~ ю
звітів.
Для вирішення цієї задачі було застосовано методи об'єктно-орієнтованого
аналізу та проектування, зокрема моделювання предметної області за допомогою
діаграм UМL. Розробка програмного комплексу включала проектування логічної
структури системи, розробку інтерфейсу користувача з використанням
компонентів Windows F orms та створення бази даних для зберігання інформації
про автомобілі, клієнтів, замовлення та оплати.
Практичний аналіз розробленого програмного забезпечення показав його
переваги в порівнянні з вщомими розв'язаннями. Зокрема, інтерфейс
користувача був оцінений як інтуїтивно зрозумілий та зручний, а
функціональність системи забезпечила ефективне управління всіма аспектами
роботи автосалону. Проведені тестування підтвердили високу надійність і
продуктивюсть системи.
Огримані результати мають важливе значення як для наукової спільноти,
так і для практичної реалізації. Наукова новизна роботи полягає у комплексному
підході до управління автосалоном, який об'єднує різні функції в єдину
ІНтегровану систему. Практичне значення роботи полягає у можливосп
впровадження розробленого програмного забезпечення у реальні автосалони, що
79
►
Ч)1ТУ .... 42253 .О 14 113
. но.1н1·ь \1\ внщнтн еф~ктн13ність Ухньоі' роботи та 1аново;1 ь 11ити потреби
•t(' j
., ,1.( - нrів .
i-- З ~стою наукового та nракти\.\ноrо виt<ориста1111 я здобутих результатів
,~омендуєть я впроваджувати розроблену систему адміністрування
Іх • . жна
....rо·алоно ~ в автосалони р1зного масштабу. Для подальших дослщжень м 0
;J\, І ''
лянути можливість інтеграцїї системи з іншими інформаційними системами,
pt"3r
и як CRM та ERP, а також додати функції аналітики та прогнозування
rа~нм
,ту на автомобілі.
110J1l1
Отже, проведене дослідження і розробка програмного забезпечення для
адміністрування автосалоном продемонстрували успішність запропонованих
методів та підходів, що дозволило створити ефективну та надійну систему'
готову до впровадження в практичну діяльність автосалонів.
80
Ч)\ГУ .242 .... , J .014 lП
спнс ок ви,,· )
. n.ОІ ИСТЛ І ІИ , )\ )ICl~PIU I
\\ '11:11 1s '-k~lct· 111::tпаgсще 11 1 , systc111 '. lll{l ,: l1ttps://w,v\,v.lJitclrns.colТl/whaH. S-
dc~,1 ~1·-1па 11ao:l't1K'11t-, у, tещ/
" Sakst'o1·ce: \Yl1at і, ctiп? H.L: І1Щ s://,v\,vw.salesfo1·ce.com/eu/ learning-
сепtге/ t11 , l1at-i ~-с1111/
.. Q1·зcle: ,,,J1at is егр') URL • \
_, · · 1ttps: //W \vw.oгac le.co111/eгp/what-•1 s-erp/
-+ Deale1-socket. URL: l1ttps://dealeгsocket.co1n/
5 alesfoгce Autoшotive СRМ. URL:
https://v,.Т\-,,. ,.,,.salesfoгce.co111/solutions/industгies/automotive/overview/
6 Sap automotive. URL: https://www.sap.coin/industries/automotive.html
7 Єфремов М. Ф., Єфремов ю. м., Єфремов в. м. Проектування
програмного забезпечення з використанням UМL, 2016. 2 с.
8 Маслянка П. П . Системне проектування процесів інформатизації, 2008-
С. 28-37.
9 Microsoft Visual Studio. URL: https://visualstudio.microsoft.com/uk/
10 С# and Windows Forms. URL:
https://metanit.com/sharp/windowsforms/1 .1.php
11 Skeet J. С# in Depth. Manning Publications, 2019. 528 с.
12 Petkovic D. SQL Server 2019: А Beginner's Guide. McGraw-Нill Education,
2019. 800 с.
13 Stroustrup В. What 1s object-oriented progгamming? . ІЕЕЕ software 5.3,
1988: с. 10-20.
14 Albahari J., Albahari В. С# 9.0 in а Nutshell: The Definitive Reference.
O'Reilly Media, 2021. 1088 с.
15 Assaf W., West R., et al. SQL Serveг 201 9 Administration lnside Out.
Microsoft Press, 2020. 832 с.
1б Atkinson Р ., Vieira R. Beginning Mic1·osoft SQL Sегvег 201 2 Programming.
Wrox, 2012. 864 с.
17 Delaney К., et al . Microsoft SQL Se1·veг Intem als. Mic1·osoft Pi·ess, 201 2.
992 с.
Bl
ЧДТ -242253.О 14 113
18 1':kрршапп М.
De іgпіпg D ata-lнtcпs ive ЛррІісаtіопs: The 8 1· g Jd eas
Bct1iпd Reliabte
' catable, апd МаіпtаіпаЬ\е Systcms. O'Reilly Media, 2О 17·
16 с.
19 ,1оделювання баз даних . URL: l1ttps://book24. ua/bazi-danih-
koпtseptua І пе-шоdе l
yuvaнпya-kaгl-kppeгs-5081 З 15/
О Sells С. Windows Fo р.1 . . . · 1
- пns og1amm1ng ш С#. Addison-Wesley Professюna,
2003. 848 с.
21 Stack Oveгflow. URL·· http s.· // .
stackoverflow.com/questюns/
22 T1·oelsen А., Japikse р · Pro С# 9 w1•t h .NET 5: . · · 1 d
Foundatюnal Рrшс1р es an
Practices in Prog1·amming. Apress, 2021 _ 1376 с.
23 W3 Schools tutorials . URL·. https·./ /w ww.w 3 sch 1 m
оо s.co /
24 Hejlsberg А., Torgersen М., Wiltamuth S., Golde, Р. The С# programrning
Ianguage. Pearson Education, 2008. С. 784.
25 Liberty J. Programming С#: building. NET applications with С. " O'Reilly
Media, Inc, 2005. С. 672
26 Sharp J . Мicrosoft Visual С# 2013 Step Ьу Step. Pearson Education, 2013.
82 с.
27 Troelsen А., Olsen А. Pro С# 5.0 and the. NET 4.5 Framework (Vol. 6).
New York: Apress, 2012. 554 с.
28 Albahari J. С# 1О in а Nutshell : O'Reilly Media, Inc., 2022. 1060 с .
29 Sells С., Weinhardt М. Windows forms 2.0 prograrnming : Pearson
Education, 2006. 1296 с.
30 Griffiths І. , Adams М. NET Windows forms in а nutshell : O'Reilly Media,
lnc., 2003. 879 с.
31 Freeman А. Windows Fonns. ln lntюdL1ci11g VisLІal С# 2010 (рр. 1033-
1067). Berkeley, СА: Apгess, 20 10. С. 10.
32 Mamone М. Creating Windows F01ms. РгасtісаІ Mono, 2006. С. 133-1 78.
33 Learning С#. URL: https://dotnet.microsoft.com/en-us/leam/csharp
34 С# concepts. URL: https://learn.microsoft.com/uk-
ua/ dotnet/c sharp/programm і ng-gu і de/ concepts/
В2
ч;л~ .24225з.01411з
RL: l,ttps://v\l\'fvvV .VІ1Зsc\100\s.com/cs/iпclcx.pl1p
siпg ADO. NET. РгасtісаІ Мопо, 2006. С. 205-239.
ft'oelseп # апd tl1e. .. Т РlаtГопп : Apгess, 200 І . І 008 с.
37
, ft'oel еп · Japikse Р. # б.О апd tl1e. NET 4.6 І:;- гашеwогk : Apгess, 20 15
J
1625 с.
Libet-ty J. Pгogгa111111ing С# : bнilding. NET applications with С : O'Reilly
39
Media, Inc., 2005 672 с.
Rentscl1, Тіш. Object oriented ргоgгашшіng. АСМ Sigplan Notices 17 .9 ,
40
1982. с. 51-57.
83
ДОДАТОК А
ЗАТВЕРДЖЕНО:
Зав. кафедрою ПЗАС, професор
_________________ Голуб С.В.
„____” ______________ 2024 р.
Розробка програмного забезпечення для адміністрування автосалоном
Специфікація
482. ЧДТУ 242253.12.01
Листів 2
Розробник ________________ Шах В.В.
Керівник ________________ Скуцький А.Б.
2024
ЧДТУ 242253.12.01 2
Позначення Найменування Примітка
Документація
482.ЧДТУ. 24225312 01 Текст програми
482.ЧДТУ. 242253 34 01 Інструкція користувачеві
482.ЧДТУ. 242253 90 01 Графічні матеріали
85
ДОДАТОК Б
Розробка програмного забезпечення для адміністрування автосалоном
Текст програми
482.ЧДТУ. 242253 12 014
Листів 41
Розробник ________________ Шах В.В.
2024
482.ЧДТУ. 242253 12 01
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace carDealership
{
internal class Car
{
public string Brand { get; set; }
public string Model { get; set; }
public string Year { get; set; }
public string EngineCapacity { get; set; }
public string Color { get; set; }
public string Price { get; set; }
public string Manufacturer { get; set; }
public Car(string brand, string model, string year, string engine_capacity, string color, string price, string manufacturer)
{
Brand = brand;
Model = model;
Year = year;
EngineCapacity = engine_capacity;
Color = color;
Price = price;
Manufacturer = manufacturer;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace carDealership
{
internal class Client
{
public string Name { get; set; }
public string Surname { get; set; }
public string Phone { get; set; }
public string Email { get; set; }
87
482.ЧДТУ. 242253 12 01
public Client(string name, string surname, string phone, string email)
{
Name = name;
Surname = surname;
Phone = phone;
Email = email;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace carDealership
{
internal class Employee
{
public string Name { get; set; }
public string Surname { get; set; }
public string Position { get; set; }
public string Salary { get; set; }
public string HireDate { get; set; }
public Employee(string name, string surname, string position, string salary, string hire_date)
{
Name = name;
Surname = surname;
Position = position;
Salary = salary;
HireDate = hire_date;
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
88
482.ЧДТУ. 242253 12 01
namespace carDealership
{
public partial class FormCars : Form
{
FormInventory inventory;
FormManufacturers manufacturers;
FormOrders orders;
FormOperations operations;
FormNewCar car;
public FormCars()
{
InitializeComponent();
inventory = new FormInventory(this);
manufacturers = new FormManufacturers(this);
orders = new FormOrders(this);
operations = new FormOperations(this);
car = new FormNewCar(this);
}
public string select = "select car_id as 'Ід', brand as 'Марка', model as 'Модель', year as 'Рік', " +
"engine_capacity as 'Об''єм двигуна', color as 'Колір', price as 'Вартість', manufacturer as 'Виробник' from cars";
public void Display()
{
Operations.DisplayAndSearch(select, dataGridView1);
}
private void FormCars_Load(object sender, EventArgs e)
{
Display();
}
private void btnOrders_Click(object sender, EventArgs e)
{
orders.ShowDialog();
}
private void btnManifacturers_Click(object sender, EventArgs e)
{
manufacturers.ShowDialog();
}
private void btnInventory_Click(object sender, EventArgs e)
{
inventory.ShowDialog();
89
482.ЧДТУ. 242253 12 01
}
private void btnAdd_Click(object sender, EventArgs e)
{
car.ShowDialog();
car.DefaultInfo();
}
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == 0)
{
car.Clear();
car.id = dataGridView1.Rows[e.RowIndex].Cells[2].Value.ToString();
car.brand = dataGridView1.Rows[e.RowIndex].Cells[3].Value.ToString();
car.model = dataGridView1.Rows[e.RowIndex].Cells[4].Value.ToString();
car.year = dataGridView1.Rows[e.RowIndex].Cells[5].Value.ToString();
car.engine_capacity = dataGridView1.Rows[e.RowIndex].Cells[6].Value.ToString();
car.color = dataGridView1.Rows[e.RowIndex].Cells[7].Value.ToString();
car.price = dataGridView1.Rows[e.RowIndex].Cells[8].Value.ToString();
car.manufacturer = dataGridView1.Rows[e.RowIndex].Cells[9].Value.ToString();
car.UpdateInfo();
car.ShowDialog();
return;
}
if (e.ColumnIndex == 1)
{
if (MessageBox.Show("Дійсно видалити?", "Інформація", MessageBoxButtons.YesNo,
MessageBoxIcon.Information) == DialogResult.Yes)
{
Operations.Delete(dataGridView1.Rows[e.RowIndex].Cells[2].Value.ToString(), "car_id", "cars");
Display();
}
return;
}
}
private void txtSearch_TextChanged(object sender, EventArgs e)
{
Operations.DisplayAndSearch(select + " WHERE brand LIKE '%" + txtSearch.Text + "%'", dataGridView1);
}
private void btnOperations_Click(object sender, EventArgs e)
{
operations.ShowDialog();
90
482.ЧДТУ. 242253 12 01
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace carDealership
{
public partial class FormClients : Form
{
private readonly FormOrders _parent;
FormNewClient client;
public FormClients(FormOrders parent)
{
InitializeComponent();
_parent = parent;
client = new FormNewClient(this);
}
public string select = "select customer_id as 'Ід', first_name as 'Ім''я', last_name as 'Прізвище', " +
"phone_number as 'Телефон', email as 'Емайл' from customers";
public void Display()
{
Operations.DisplayAndSearch(select, dataGridView1);
}
private void FormClients_Load(object sender, EventArgs e)
{
Display();
}
private void btnAdd_Click(object sender, EventArgs e)
{
client.DefaultInfo();
client.ShowDialog();
}
91
482.ЧДТУ. 242253 12 01
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == 0)
{
client.Clear();
client.id = dataGridView1.Rows[e.RowIndex].Cells[2].Value.ToString();
client.name = dataGridView1.Rows[e.RowIndex].Cells[3].Value.ToString();
client.surname = dataGridView1.Rows[e.RowIndex].Cells[4].Value.ToString();
client.phone = dataGridView1.Rows[e.RowIndex].Cells[5].Value.ToString();
client.email = dataGridView1.Rows[e.RowIndex].Cells[6].Value.ToString();
client.UpdateInfo();
client.ShowDialog();
return;
}
if (e.ColumnIndex == 1)
{
if (MessageBox.Show("Дійсно видалити?", "Інформація", MessageBoxButtons.YesNo,
MessageBoxIcon.Information) == DialogResult.Yes)
{
Operations.Delete(dataGridView1.Rows[e.RowIndex].Cells[2].Value.ToString(), "customer_id", "customers");
Display();
}
return;
}
}
private void txtSearch_TextChanged(object sender, EventArgs e)
{
Operations.DisplayAndSearch(select + " WHERE concat(first_name, ' ', last_name) LIKE '%" + txtSearch.Text +
"%'", dataGridView1);
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace carDealership
{
92
482.ЧДТУ. 242253 12 01
public partial class FormEmployees : Form
{
private readonly FormOrders _parent;
FormNewEmployee employee;
public FormEmployees(FormOrders parent)
{
InitializeComponent();
_parent = parent;
employee = new FormNewEmployee(this);
}
public string select = "select employee_id as 'Ід', first_name as 'Ім''я', last_name as 'Прізвище', " +
"position as 'Посада', salary as 'Зарплата', hire_date as 'Дата працевлаштування' from employees";
public void Display()
{
Operations.DisplayAndSearch(select, dataGridView1);
}
private void FormEmployees_Load(object sender, EventArgs e)
{
Display();
}
private void btnAdd_Click(object sender, EventArgs e)
{
employee.DefaultInfo();
employee.ShowDialog();
}
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == 0)
{
employee.Clear();
employee.id = dataGridView1.Rows[e.RowIndex].Cells[2].Value.ToString();
employee.name = dataGridView1.Rows[e.RowIndex].Cells[3].Value.ToString();
employee.surname = dataGridView1.Rows[e.RowIndex].Cells[4].Value.ToString();
employee.position = dataGridView1.Rows[e.RowIndex].Cells[5].Value.ToString();
employee.salary = dataGridView1.Rows[e.RowIndex].Cells[6].Value.ToString();
employee.hire_date = dataGridView1.Rows[e.RowIndex].Cells[7].Value.ToString();
employee.UpdateInfo();
employee.ShowDialog();
return;
}
93
482.ЧДТУ. 242253 12 01
if (e.ColumnIndex == 1)
{
if (MessageBox.Show("Дійсно видалити?", "Інформація", MessageBoxButtons.YesNo,
MessageBoxIcon.Information) == DialogResult.Yes)
{
Operations.Delete(dataGridView1.Rows[e.RowIndex].Cells[2].Value.ToString(), "employee_id", "employees");
Display();
}
return;
}
}
private void txtSearch_TextChanged(object sender, EventArgs e)
{
Operations.DisplayAndSearch(select + " WHERE concat(first_name, ' ', last_name) LIKE '%" + txtSearch.Text +
"%'", dataGridView1);
}
}
}
using carDealership;
using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using static System.ComponentModel.Design.ObjectSelectorEditor;
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
namespace carDealership
{
public partial class FormInventory : Form
{
private readonly FormCars _parent;
FormNewInventory inventory;
public FormInventory(FormCars parent)
{
InitializeComponent();
_parent = parent;
inventory = new FormNewInventory(this);
94
482.ЧДТУ. 242253 12 01
}
public string select = "select car_id as 'Авто', quantity as 'Кількість' from inventory";
public void Display()
{
Operations.DisplayAndSearch(select, dataGridView1);
}
private void FormInventory_Load(object sender, EventArgs e)
{
Display();
}
private void btnAdd_Click(object sender, EventArgs e)
{
inventory.ShowDialog();
}
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == 0)
{
inventory.Clear();
inventory.car = dataGridView1.Rows[e.RowIndex].Cells[2].Value.ToString();
inventory.quantity = dataGridView1.Rows[e.RowIndex].Cells[3].Value.ToString();
inventory.UpdateInfo();
inventory.ShowDialog();
return;
}
if (e.ColumnIndex == 1)
{
if (MessageBox.Show("Дійсно видалити?", "Інформація", MessageBoxButtons.YesNo,
MessageBoxIcon.Information) == DialogResult.Yes)
{
Operations.Delete(dataGridView1.Rows[e.RowIndex].Cells[2].Value.ToString(), "car_id", "inventory");
Display();
}
return;
}
}
private void txtSearch_TextChanged(object sender, EventArgs e)
{
Operations.DisplayAndSearch(select + " WHERE car_id LIKE '%" + txtSearch.Text + "%'", dataGridView1);
95
482.ЧДТУ. 242253 12 01
}
private void btnAdd_Click_1(object sender, EventArgs e)
{
inventory.DefaultInfo();
inventory.ShowDialog();
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace carDealership
{
public partial class FormManufacturers : Form
{
private readonly FormCars _parent;
FormNewManufacturer manufacturer;
public FormManufacturers(FormCars parent)
{
InitializeComponent();
_parent = parent;
manufacturer = new FormNewManufacturer(this);
}
public string select = "select manufacturer_id as 'Ід', name as 'Ім''я', country as 'Країна' from manufacturers";
public void Display()
{
Operations.DisplayAndSearch(select, dataGridView1);
}
private void FormManufacturers_Load(object sender, EventArgs e)
{
Display();
}
private void btnAdd_Click(object sender, EventArgs e)
96
482.ЧДТУ. 242253 12 01
{
manufacturer.DefaultInfo();
manufacturer.ShowDialog();
}
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == 0)
{
manufacturer.Clear();
manufacturer.id = dataGridView1.Rows[e.RowIndex].Cells[2].Value.ToString();
manufacturer.name = dataGridView1.Rows[e.RowIndex].Cells[3].Value.ToString();
manufacturer.country = dataGridView1.Rows[e.RowIndex].Cells[4].Value.ToString();
manufacturer.UpdateInfo();
manufacturer.ShowDialog();
return;
}
if (e.ColumnIndex == 1)
{
if (MessageBox.Show("Дійсно видалити?", "Інформація", MessageBoxButtons.YesNo,
MessageBoxIcon.Information) == DialogResult.Yes)
{
Operations.Delete(dataGridView1.Rows[e.RowIndex].Cells[2].Value.ToString(), "manufacturer_id",
"manufacturers");
Display();
}
return;
}
}
private void txtSearch_TextChanged(object sender, EventArgs e)
{
Operations.DisplayAndSearch(select + " WHERE name LIKE '%" + txtSearch.Text + "%'", dataGridView1);
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Security.Cryptography.Xml;
using System.Text;
using System.Threading.Tasks;
97
482.ЧДТУ. 242253 12 01
using System.Windows.Forms;
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
namespace carDealership
{
public partial class FormNewCar : Form
{
private readonly FormCars _parent;
public string? id, brand, model, year, engine_capacity, color, price, manufacturer;
public FormNewCar(FormCars parent)
{
InitializeComponent();
_parent = parent;
}
public void Clear()
{
foreach (Control control in Controls)
{
if (control is System.Windows.Forms.TextBox textBox)
{
textBox.Text = string.Empty;
}
}
}
public void UpdateInfo()
{
textBox1.Text = brand;
textBox2.Text = model;
textBox4.Text = year;
textBox6.Text = engine_capacity;
textBox5.Text = color;
textBox3.Text = price;
textBox7.Text = manufacturer;
label1.Text = "Редагування";
btnAdd.Text = "Оновити";
}
public void DefaultInfo()
{
label1.Text = "Додати авто";
btnAdd.Text = "Зберегти";
}
private void btnAdd_Click(object sender, EventArgs e)
{
Car c = new Car(textBox1.Text.Trim(), textBox2.Text.Trim(), textBox4.Text.Trim(),
98
482.ЧДТУ. 242253 12 01
textBox6.Text.Trim(), textBox5.Text.Trim(), textBox3.Text.Trim(), textBox7.Text.Trim());
string insert = "INSERT INTO cars (brand, model, year, engine_capacity, color, price, manufacturer) " +
"VALUES (@brand, @model, @year, @engine_capacity, @color, @price, @manufacturer)";
string update = "UPDATE cars SET brand=@brand, model=@model, year=@year, " +
"engine_capacity=@engine_capacity, color=@color, price=@price, manufacturer=@manufacturer WHERE
car_id=@id ";
if (btnAdd.Text == "Зберегти")
{
Operations.ManageCar(c, insert); ;
}
if (btnAdd.Text == "Оновити")
{
Operations.ManageCar(c, update, id);
}
Clear();
_parent.Display();
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
namespace carDealership
{
public partial class FormNewClient : Form
{
private readonly FormClients _parent;
public string? id, name, surname, phone, email;
public FormNewClient(FormClients parent)
{
InitializeComponent();
_parent = parent;
}
public void Clear()
{
foreach (Control control in Controls)
99
482.ЧДТУ. 242253 12 01
{
if (control is System.Windows.Forms.TextBox textBox)
{
textBox.Text = string.Empty;
}
}
}
public void UpdateInfo()
{
textBox1.Text = name;
textBox2.Text = surname;
textBox6.Text = phone;
textBox5.Text = email;
label1.Text = "Редагування";
btnAdd.Text = "Оновити";
}
public void DefaultInfo()
{
label1.Text = "Додати клієнта";
btnAdd.Text = "Зберегти";
}
private void btnAdd_Click(object sender, EventArgs e)
{
Client c = new Client(textBox1.Text.Trim(), textBox2.Text.Trim(), textBox6.Text.Trim(), textBox5.Text.Trim());
string insert = "INSERT INTO customers (first_name, last_name, phone_number, email) VALUES (@name,
@surname, @phone, @email)";
string update = "UPDATE customers SET first_name=@name, last_name=@surname, phone_number=@phone,
email=@email WHERE customer_id=@id ";
if (btnAdd.Text == "Зберегти")
{
Operations.ManageClient(c, insert); ;
}
if (btnAdd.Text == "Оновити")
{
Operations.ManageClient(c, update, id);
}
Clear();
_parent.Display();
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
100
482.ЧДТУ. 242253 12 01
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
namespace carDealership
{
public partial class FormNewEmployee : Form
{
private readonly FormEmployees _parent;
public string? id, name, surname, position, salary, hire_date;
public FormNewEmployee(FormEmployees parent)
{
InitializeComponent();
_parent = parent;
}
public void Clear()
{
foreach (Control control in Controls)
{
if (control is System.Windows.Forms.TextBox textBox)
{
textBox.Text = string.Empty;
}
}
}
public void UpdateInfo()
{
textBox1.Text = name;
textBox2.Text = surname;
textBox3.Text = position;
textBox4.Text = salary;
textBox5.Text = hire_date;
label1.Text = "Редагування";
btnAdd.Text = "Оновити";
}
public void DefaultInfo()
{
label1.Text = "Додати працівника";
btnAdd.Text = "Зберегти";
}
private void btnAdd_Click(object sender, EventArgs e)
101
482.ЧДТУ. 242253 12 01
{
Employee em = new Employee(textBox1.Text.Trim(), textBox2.Text.Trim(), textBox3.Text.Trim(),
textBox4.Text.Trim(), textBox5.Text.Trim());
string insert = "INSERT INTO employees (first_name, last_name, position, salary, hire_date) " +
"VALUES (@name, @surname, @position, @salary, @hire_date)";
string update = "UPDATE employees SET first_name=@name, last_name=@surname, position=@position, " +
"salary=@salary, hire_date=@hire_date WHERE employee_id=@id ";
if (btnAdd.Text == "Зберегти")
{
Operations.ManageEmployee(em, insert); ;
}
if (btnAdd.Text == "Оновити")
{
Operations.ManageEmployee(em, update, id);
}
Clear();
_parent.Display();
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
namespace carDealership
{
public partial class FormNewInventory : Form
{
private readonly FormInventory _parent;
public string? car, quantity;
public FormNewInventory(FormInventory parent)
{
InitializeComponent();
_parent = parent;
}
public void Clear()
{
102
482.ЧДТУ. 242253 12 01
foreach (Control control in Controls)
{
if (control is System.Windows.Forms.TextBox textBox)
{
textBox.Text = string.Empty;
}
}
}
public void UpdateInfo()
{
textBox2.Text = car;
textBox4.Text = quantity;
label1.Text = "Поповнити";
btnAdd.Text = "Оновити";
}
public void DefaultInfo()
{
label1.Text = "Додати запас";
btnAdd.Text = "Зберегти";
}
private void btnAdd_Click(object sender, EventArgs e)
{
Inventory i = new Inventory(textBox2.Text.Trim(), textBox4.Text.Trim());
string insert = "INSERT INTO inventory (car_id, quantity) VALUES (@car, @quantity)";
string update = "UPDATE inventory SET car_id=@id, quantity=@quantity WHERE car_id=@id";
if (btnAdd.Text == "Зберегти")
{
Operations.ManageInventory(i, insert); ;
}
if (btnAdd.Text == "Оновити")
{
Operations.ManageInventory(i, update, car);
}
Clear();
_parent.Display();
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
103
482.ЧДТУ. 242253 12 01
using System.Threading.Tasks;
using System.Windows.Forms;
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
namespace carDealership
{
public partial class FormNewManufacturer : Form
{
private readonly FormManufacturers _parent;
public string? id, name, country;
public FormNewManufacturer(FormManufacturers parent)
{
InitializeComponent();
_parent = parent;
}
public void Clear()
{
foreach (Control control in Controls)
{
if (control is System.Windows.Forms.TextBox textBox)
{
textBox.Text = string.Empty;
}
}
}
public void UpdateInfo()
{
textBox1.Text = name;
textBox2.Text = country;
label1.Text = "Редагування";
btnAdd.Text = "Оновити";
}
public void DefaultInfo()
{
label1.Text = "Додати виробника";
btnAdd.Text = "Зберегти";
}
private void btnAdd_Click(object sender, EventArgs e)
{
Manufacturer m = new Manufacturer(textBox1.Text.Trim(), textBox2.Text.Trim());
string insert = "INSERT INTO Manufacturers (name, country) VALUES (@name, @country)";
string update = "UPDATE Manufacturers SET name=@name, country=@country WHERE manufacturer_id=@id ";
if (btnAdd.Text == "Зберегти")
{
104
482.ЧДТУ. 242253 12 01
Operations.ManageManufacturer(m, insert); ;
}
if (btnAdd.Text == "Оновити")
{
Operations.ManageManufacturer(m, update, id);
}
Clear();
_parent.Display();
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
namespace carDealership
{
public partial class FormNewOrder : Form
{
private readonly FormOrders _parent;
public string? id, car, client, discount, employee;
public FormNewOrder(FormOrders parent)
{
InitializeComponent();
_parent = parent;
}
public void Clear()
{
foreach (Control control in Controls)
{
if (control is System.Windows.Forms.TextBox textBox)
{
textBox.Text = string.Empty;
}
}
}
public void UpdateInfo()
105
482.ЧДТУ. 242253 12 01
{
textBox1.Text = car;
textBox2.Text = client;
textBox3.Text = discount;
textBox4.Text = employee;
label1.Text = "Редагування";
btnAdd.Text = "Оновити";
}
public void DefaultInfo()
{
label1.Text = "Додати замовлення";
btnAdd.Text = "Зберегти";
}
private void btnAdd_Click(object sender, EventArgs e)
{
Order o = new Order(textBox1.Text.Trim(), textBox2.Text.Trim(), textBox3.Text.Trim(), textBox4.Text.Trim());
string insert = "INSERT INTO sales (car_id, customer_id, discount, employee) VALUES (@car, @client, @discount,
@employee);" +
"UPDATE sales SET price = (SELECT price FROM cars WHERE cars.car_id = sales.car_id) - discount;" +
"UPDATE inventory SET quantity=quantity-1 where car_id=@car;";
string update = "UPDATE sales SET car_id=@car, customer_id=@client, discount=@discount,
employee=@employee WHERE sale_id=@id;" +
"UPDATE sales SET price = (SELECT price FROM cars WHERE cars.car_id = sales.car_id) - discount;";
if (btnAdd.Text == "Зберегти")
{
Operations.ManageOrder(o, insert); ;
}
if (btnAdd.Text == "Оновити")
{
Operations.ManageOrder(o, update, id);
}
Clear();
_parent.Display();
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
106
482.ЧДТУ. 242253 12 01
using System.Windows.Forms;
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
namespace carDealership
{
public partial class FormNewTransaction : Form
{
private readonly FormTransactions _parent;
public string? sale, method, amount;
public FormNewTransaction(FormTransactions parent)
{
InitializeComponent();
_parent = parent;
}
public void Clear()
{
foreach (Control control in Controls)
{
if (control is System.Windows.Forms.TextBox textBox)
{
textBox.Text = string.Empty;
}
}
}
public void UpdateInfo()
{
textBox3.Text = sale;
textBox1.Text = method;
textBox2.Text = amount;
label1.Text = "Редагування";
btnAdd.Text = "Оновити";
}
public void DefaultInfo()
{
label1.Text = "Додати транзакцію";
btnAdd.Text = "Зберегти";
}
private void btnAdd_Click(object sender, EventArgs e)
{
Transaction t = new Transaction(textBox3.Text.Trim(), textBox1.Text.Trim(), textBox2.Text.Trim());
string insert = "INSERT INTO Transactions (sale_id, payment_method, amount) VALUES (@sale, @method,
@amount)";
string update = "UPDATE Transactions SET sale_id=@sale, payment_method=@method, amount=@amount
WHERE sale_id=@sale";
107
482.ЧДТУ. 242253 12 01
if (btnAdd.Text == "Зберегти")
{
Operations.ManageTransaction(t, insert); ;
}
if (btnAdd.Text == "Оновити")
{
Operations.ManageTransaction(t, update, sale);
}
Clear();
_parent.Display();
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
namespace carDealership
{
public partial class FormOperations : Form
{
private readonly FormCars _parent;
public FormOperations(FormCars parent)
{
InitializeComponent();
_parent = parent;
}
private void button1_Click(object sender, EventArgs e)
{
Operations.DisplayAndSearch("SELECT brand, AVG(engine_capacity) AS avg_engine_capacity\r\nFROM
Cars\r\nGROUP BY brand;", dataGridView1);
}
private void button2_Click(object sender, EventArgs e)
{
108
482.ЧДТУ. 242253 12 01
Operations.DisplayAndSearch("SELECT c.customer_id, c.first_name, c.last_name, COUNT(s.sale_id) AS
total_sales\r\nFROM Customers c\r\nLEFT JOIN Sales s ON c.customer_id = s.customer_id\r\nGROUP BY c.customer_id,
c.first_name, c.last_name;\r\n", dataGridView1);
}
private void button3_Click(object sender, EventArgs e)
{
Operations.DisplayAndSearch("SELECT position, SUM(salary) AS total_salary\r\nFROM Employees\r\nGROUP BY
position;\r\n", dataGridView1);
}
private void button4_Click(object sender, EventArgs e)
{
Operations.DisplayAndSearch("SELECT e.employee_id, e.first_name, e.last_name, AVG(s.price) AS avg_sold_price
FROM Employees e LEFT JOIN Sales s ON e.employee_id = s.employee\r\nGROUP BY e.employee_id, e.first_name,
e.last_name;\r\n", dataGridView1);
}
private void button5_Click(object sender, EventArgs e)
{
Operations.DisplayAndSearch("SELECT c.color, SUM(i.quantity) AS total_quantity\r\nFROM Inventory i\r\nJOIN
Cars c ON i.car_id = c.car_id\r\nGROUP BY c.color;\r\n", dataGridView1);
}
private void button10_Click(object sender, EventArgs e)
{
Operations.DisplayAndSearch("SELECT brand, COUNT(*) AS car_count\r\nFROM Cars\r\nGROUP BY brand;\r\n",
dataGridView1);
}
private void button9_Click(object sender, EventArgs e)
{
Operations.DisplayAndSearch("SELECT c.customer_id, c.first_name, c.last_name, SUM(s.price) AS
total_spent\r\nFROM Customers c\r\nJOIN Sales s ON c.customer_id = s.customer_id\r\nGROUP BY c.customer_id,
c.first_name, c.last_name;\r\n", dataGridView1);
}
private void button8_Click(object sender, EventArgs e)
{
Operations.DisplayAndSearch("SELECT m.name AS manufacturer, c.color, SUM(i.quantity) AS
total_quantity\r\nFROM Manufacturers m\r\nJOIN Cars c ON m.manufacturer_id = c.manufacturer\r\nJOIN Inventory i ON
c.car_id = i.car_id\r\nGROUP BY m.name, c.color;\r\n", dataGridView1);
}
private void button7_Click(object sender, EventArgs e)
109
482.ЧДТУ. 242253 12 01
{
Operations.DisplayAndSearch("SELECT c.customer_id, c.first_name, c.last_name, SUM(s.price) AS
total_spent\r\nFROM Customers c\r\nJOIN Sales s ON c.customer_id = s.customer_id\r\nGROUP BY c.customer_id,
c.first_name, c.last_name;\r\n", dataGridView1);
}
private void button6_Click(object sender, EventArgs e)
{
Operations.DisplayAndSearch("SELECT model, AVG(engine_capacity) AS avg_engine_capacity\r\nFROM
Cars\r\nGROUP BY model;\r\n", dataGridView1);
}
private void button15_Click(object sender, EventArgs e)
{
if (string.IsNullOrWhiteSpace(textBox1.Text))
{
MessageBox.Show("Введіть параметр у текстбокс.");
}
else
{
Operations.DisplayAndSearch($"SELECT * FROM Transactions WHERE amount > {textBox1.Text.Trim()}",
dataGridView1);
}
}
private void button14_Click(object sender, EventArgs e)
{
if (string.IsNullOrWhiteSpace(textBox1.Text))
{
MessageBox.Show("Введіть параметр у текстбокс.");
}
else
{
Operations.DisplayAndSearch($"SELECT * FROM Cars WHERE car_id IN (SELECT car_id FROM Sales
WHERE customer_id = {textBox1.Text.Trim()});", dataGridView1);
}
}
private void button13_Click(object sender, EventArgs e)
{
if (string.IsNullOrWhiteSpace(textBox1.Text))
{
MessageBox.Show("Введіть параметр у текстбокс.");
}
else
110
482.ЧДТУ. 242253 12 01
{
Operations.DisplayAndSearch($"SELECT employee, SUM(price) AS total_sales\r\nFROM Sales WHERE
employee = {textBox1.Text.Trim()}\r\nGROUP BY employee;\r\n", dataGridView1);
}
}
private void button12_Click(object sender, EventArgs e)
{
if (string.IsNullOrWhiteSpace(textBox1.Text))
{
MessageBox.Show("Введіть параметр у текстбокс.");
}
else
{
Operations.DisplayAndSearch($"SELECT * FROM Cars\r\nWHERE manufacturer = {textBox1.Text.Trim()};\r\n",
dataGridView1);
}
}
private void button11_Click(object sender, EventArgs e)
{
if (string.IsNullOrWhiteSpace(textBox1.Text))
{
MessageBox.Show("Введіть параметр у текстбокс.");
}
else
{
Operations.DisplayAndSearch($"SELECT * FROM Cars\r\nWHERE year = {textBox1.Text.Trim()};\r\n",
dataGridView1);
}
}
private void button20_Click(object sender, EventArgs e)
{
Operations.DisplayAndSearch("SELECT s.sale_id, c.first_name AS customer_first_name, c.last_name AS
customer_last_name, \r\n car.brand, car.model, e.first_name AS employee_first_name, e.last_name AS
employee_last_name,\r\n s.price, s.discount, s.sale_date\r\nFROM Sales s\r\nJOIN Customers c ON s.customer_id =
c.customer_id\r\nJOIN Cars car ON s.car_id = car.car_id\r\nJOIN Employees e ON s.employee = e.employee_id;\r\n",
dataGridView1);
}
private void button19_Click(object sender, EventArgs e)
{
111
482.ЧДТУ. 242253 12 01
Operations.DisplayAndSearch("SELECT m.name AS manufacturer, c.brand, COUNT(i.car_id) AS
total_quantity\r\nFROM Manufacturers m\r\nJOIN Cars c ON m.manufacturer_id = c.manufacturer\r\nLEFT JOIN Inventory
i ON c.car_id = i.car_id\r\nGROUP BY m.name, c.brand;\r\n", dataGridView1);
}
private void button18_Click(object sender, EventArgs e)
{
Operations.DisplayAndSearch("SELECT t.sale_id, t.transaction_date, t.payment_method, t.amount,\r\n s.sale_id,
s.price, s.discount, s.sale_date\r\nFROM Transactions t\r\nJOIN Sales s ON t.sale_id = s.sale_id;\r\n", dataGridView1);
}
private void button17_Click(object sender, EventArgs e)
{
Operations.DisplayAndSearch("SELECT e.employee_id, e.first_name, e.last_name, e.position, e.salary,\r\n
s.sale_id, s.price, s.discount, s.sale_date\r\nFROM Employees e\r\nLEFT JOIN Sales s ON e.employee_id = s.employee;",
dataGridView1);
}
private void button16_Click(object sender, EventArgs e)
{
Operations.DisplayAndSearch("SELECT c.customer_id, c.first_name, c.last_name, COUNT(t.sale_id) AS
total_transactions,\r\n SUM(t.amount) AS total_amount\r\nFROM Customers c\r\nLEFT JOIN Sales s ON c.customer_id
= s.customer_id\r\nLEFT JOIN Transactions t ON s.sale_id = t.sale_id\r\nGROUP BY c.customer_id, c.first_name,
c.last_name;\r\n", dataGridView1);
}
}
}
using Microsoft.VisualBasic;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Reflection;
using System.Security.Principal;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using static System.ComponentModel.Design.ObjectSelectorEditor;
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
namespace carDealership
{
public partial class FormOrders : Form
112
482.ЧДТУ. 242253 12 01
{
private readonly FormCars _parent;
FormNewOrder order;
FormTransactions transaction;
FormEmployees employee;
FormClients clients;
public FormOrders(FormCars parent)
{
InitializeComponent();
_parent = parent;
order = new FormNewOrder(this);
transaction = new FormTransactions(this);
employee = new FormEmployees(this);
clients = new FormClients(this);
}
public string select = "select sale_id as 'Ід', car_id as 'Авто', customer_id as 'Покупець', " +
"sale_date as 'Дата', discount as 'Знижка', price as 'Загальна вартість', employee as 'Працівник' " +
"from sales; UPDATE sales SET price = (SELECT price FROM cars WHERE cars.car_id = sales.car_id) - discount;";
public void Display()
{
Operations.DisplayAndSearch(select, dataGridView1);
dataGridView1.Columns[0].Visible = true;
dataGridView1.Columns[1].Visible = true;
}
private void FormOrders_Load(object sender, EventArgs e)
{
Display();
}
private void btnAdd_Click(object sender, EventArgs e)
{
order.DefaultInfo();
order.ShowDialog();
}
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == 0)
{
order.Clear();
order.id = dataGridView1.Rows[e.RowIndex].Cells[2].Value.ToString();
order.car = dataGridView1.Rows[e.RowIndex].Cells[3].Value.ToString();
113
482.ЧДТУ. 242253 12 01
order.client = dataGridView1.Rows[e.RowIndex].Cells[4].Value.ToString();
order.discount = dataGridView1.Rows[e.RowIndex].Cells[6].Value.ToString();
order.employee = dataGridView1.Rows[e.RowIndex].Cells[8].Value.ToString();
order.UpdateInfo();
order.ShowDialog();
return;
}
if (e.ColumnIndex == 1)
{
if (MessageBox.Show("Дійсно видалити?", "Інформація", MessageBoxButtons.YesNo,
MessageBoxIcon.Information) == DialogResult.Yes)
{
Operations.Delete(dataGridView1.Rows[e.RowIndex].Cells[2].Value.ToString(), "sale_id", "sales");
Display();
}
return;
}
}
private void btnTransactions_Click(object sender, EventArgs e)
{
transaction.ShowDialog();
}
private void btnEmployees_Click(object sender, EventArgs e)
{
employee.ShowDialog();
}
private void btnClients_Click(object sender, EventArgs e)
{
clients.ShowDialog();
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
114
482.ЧДТУ. 242253 12 01
namespace carDealership
{
public partial class FormTransactions : Form
{
private readonly FormOrders _parent;
FormNewTransaction transaction;
public FormTransactions(FormOrders parent)
{
InitializeComponent();
_parent = parent;
transaction = new FormNewTransaction(this);
}
public string select = "select sale_id as 'Ід', transaction_date as 'Дата', " +
"payment_method as 'Метод', amount as 'Сума' from transactions";
public void Display()
{
Operations.DisplayAndSearch(select, dataGridView1);
}
private void FormTransaction_Load(object sender, EventArgs e)
{
Display();
}
private void btnAdd_Click(object sender, EventArgs e)
{
transaction.DefaultInfo();
transaction.ShowDialog();
}
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == 0)
{
transaction.Clear();
transaction.sale = dataGridView1.Rows[e.RowIndex].Cells[2].Value.ToString();
transaction.method = dataGridView1.Rows[e.RowIndex].Cells[4].Value.ToString();
transaction.amount = dataGridView1.Rows[e.RowIndex].Cells[5].Value.ToString();
transaction.UpdateInfo();
transaction.ShowDialog();
return;
}
if (e.ColumnIndex == 1)
115
482.ЧДТУ. 242253 12 01
{
if (MessageBox.Show("Дійсно видалити?", "Інформація", MessageBoxButtons.YesNo,
MessageBoxIcon.Information) == DialogResult.Yes)
{
Operations.Delete(dataGridView1.Rows[e.RowIndex].Cells[2].Value.ToString(), "sale_id", "transactions");
Display();
}
return;
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace carDealership
{
internal class Inventory
{
public string Car { get; set; }
public string Quantiry { get; set; }
public Inventory(string car, string quantity)
{
Car = car;
Quantiry = quantity;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace carDealership
{
internal class Manufacturer
{
public string Name { get; set; }
public string Country { get; set; }
116
482.ЧДТУ. 242253 12 01
public Manufacturer(string name, string country)
{
Name = name;
Country = country;
}
}
}
using System.Data.SqlClient;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using static System.ComponentModel.Design.ObjectSelectorEditor;
using MySql.Data.MySqlClient;
using MySqlX.XDevAPI.Relational;
using MySqlX.XDevAPI.Common;
using Org.BouncyCastle.Asn1.X509;
using System.Drawing;
namespace carDealership
{
internal class Operations
{
public static SqlConnection GetConnection()
{
string sql = "Data Source=localhost\\MSSQLSERVER03;Initial Catalog=car_dealership;Integrated Security=True";
SqlConnection conn = new SqlConnection(sql);
try
{
conn.Open();
}
catch (SqlException ex)
{
MessageBox.Show("Помилка SQL-з'єднання! \n" + ex.Message, "Помилка", MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
return conn;
}
public static void ManageCar(Car c, string sql, string? id = null)
{
SqlConnection conn = GetConnection();
117
482.ЧДТУ. 242253 12 01
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.CommandType = CommandType.Text;
if (id != null)
{
cmd.Parameters.Add("@id", SqlDbType.VarChar).Value = id;
}
cmd.Parameters.Add("@brand", SqlDbType.VarChar).Value = c.Brand;
cmd.Parameters.Add("@model", SqlDbType.VarChar).Value = c.Model;
cmd.Parameters.Add("@year", SqlDbType.VarChar).Value = c.Year;
cmd.Parameters.Add("@engine_capacity", SqlDbType.VarChar).Value = c.EngineCapacity;
cmd.Parameters.Add("@color", SqlDbType.VarChar).Value = c.Color;
cmd.Parameters.Add("@price", SqlDbType.VarChar).Value = c.Price;
cmd.Parameters.Add("@manufacturer", SqlDbType.VarChar).Value = c.Manufacturer;
try
{
cmd.ExecuteNonQuery();
MessageBox.Show("Успішно!", "Інформація", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (SqlException ex)
{
MessageBox.Show("Помилка SQL-з'єднання! \n" + ex.Message, "Помилка", MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
finally
{
conn.Close();
}
}
public static void ManageInventory(Inventory i, string sql, string? id = null)
{
SqlConnection conn = GetConnection();
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.CommandType = CommandType.Text;
if (id != null)
{
cmd.Parameters.Add("@id", SqlDbType.VarChar).Value = id;
}
cmd.Parameters.Add("@car", SqlDbType.VarChar).Value = i.Car;
cmd.Parameters.Add("@quantity", SqlDbType.VarChar).Value = i.Quantiry;
try
{
cmd.ExecuteNonQuery();
MessageBox.Show("Успішно!", "Інформація", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
118
482.ЧДТУ. 242253 12 01
catch (SqlException ex)
{
MessageBox.Show("Помилка SQL-з'єднання! \n" + ex.Message, "Помилка", MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
finally
{
conn.Close();
}
}
public static void ManageOrder(Order o, string sql, string? id = null)
{
SqlConnection conn = GetConnection();
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.CommandType = CommandType.Text;
if (id != null)
{
cmd.Parameters.Add("@id", SqlDbType.VarChar).Value = id;
}
cmd.Parameters.Add("@car", SqlDbType.VarChar).Value = o.Car;
cmd.Parameters.Add("@client", SqlDbType.VarChar).Value = o.Client;
cmd.Parameters.Add("@discount", SqlDbType.VarChar).Value = o.Discount;
cmd.Parameters.Add("@employee", SqlDbType.VarChar).Value = o.Employee;
try
{
cmd.ExecuteNonQuery();
MessageBox.Show("Успішно!", "Інформація", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (SqlException ex)
{
MessageBox.Show("Помилка SQL-з'єднання! \n" + ex.Message, "Помилка", MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
finally
{
conn.Close();
}
}
public static void ManageClient(Client c, string sql, string? id = null)
{
SqlConnection conn = GetConnection();
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.CommandType = CommandType.Text;
119
482.ЧДТУ. 242253 12 01
if (id != null)
{
cmd.Parameters.Add("@id", SqlDbType.VarChar).Value = id;
}
cmd.Parameters.Add("@name", SqlDbType.VarChar).Value = c.Name;
cmd.Parameters.Add("@surname", SqlDbType.VarChar).Value = c.Surname;
cmd.Parameters.Add("@phone", SqlDbType.VarChar).Value = c.Phone;
cmd.Parameters.Add("@email", SqlDbType.VarChar).Value = c.Email;
try
{
cmd.ExecuteNonQuery();
MessageBox.Show("Успішно!", "Інформація", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (SqlException ex)
{
MessageBox.Show("Помилка SQL-з'єднання! \n" + ex.Message, "Помилка", MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
finally
{
conn.Close();
}
}
public static void ManageTransaction(Transaction t, string sql, string? id = null)
{
SqlConnection conn = GetConnection();
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.CommandType = CommandType.Text;
if (id != null)
{
cmd.Parameters.Add("@id", SqlDbType.VarChar).Value = id;
}
cmd.Parameters.Add("@sale", SqlDbType.VarChar).Value = t.Sale;
cmd.Parameters.Add("@method", SqlDbType.VarChar).Value = t.Method;
cmd.Parameters.Add("@amount", SqlDbType.VarChar).Value = t.Amount;
try
{
cmd.ExecuteNonQuery();
MessageBox.Show("Успішно!", "Інформація", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (SqlException ex)
{
MessageBox.Show("Помилка SQL-з'єднання! \n" + ex.Message, "Помилка", MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
120
482.ЧДТУ. 242253 12 01
finally
{
conn.Close();
}
}
public static void ManageEmployee(Employee e, string sql, string? id = null)
{
SqlConnection conn = GetConnection();
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.CommandType = CommandType.Text;
if (id != null)
{
cmd.Parameters.Add("@id", SqlDbType.VarChar).Value = id;
}
cmd.Parameters.Add("@name", SqlDbType.VarChar).Value = e.Name;
cmd.Parameters.Add("@surname", SqlDbType.VarChar).Value = e.Surname;
cmd.Parameters.Add("@position", SqlDbType.VarChar).Value = e.Position;
cmd.Parameters.Add("@salary", SqlDbType.VarChar).Value = e.Salary;
cmd.Parameters.Add("@hire_date", SqlDbType.VarChar).Value = e.HireDate;
try
{
cmd.ExecuteNonQuery();
MessageBox.Show("Успішно!", "Інформація", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (SqlException ex)
{
MessageBox.Show("Помилка SQL-з'єднання! \n" + ex.Message, "Помилка", MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
finally
{
conn.Close();
}
}
public static void ManageManufacturer(Manufacturer m, string sql, string? id = null)
{
SqlConnection conn = GetConnection();
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.CommandType = CommandType.Text;
if (id != null)
{
cmd.Parameters.Add("@id", SqlDbType.VarChar).Value = id;
}
cmd.Parameters.Add("@name", SqlDbType.VarChar).Value = m.Name;
cmd.Parameters.Add("@country", SqlDbType.VarChar).Value = m.Country;
121
482.ЧДТУ. 242253 12 01
try
{
cmd.ExecuteNonQuery();
MessageBox.Show("Успішно!", "Інформація", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (SqlException ex)
{
MessageBox.Show("Помилка SQL-з'єднання! \n" + ex.Message, "Помилка", MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
finally
{
conn.Close();
}
}
public static void Delete(string? id, string? cl, string? table)
{
string sql = $"DELETE FROM {table} WHERE {cl} = @Id";
SqlConnection conn = GetConnection();
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.CommandType = System.Data.CommandType.Text;
cmd.Parameters.Add("@Id", SqlDbType.VarChar).Value = id;
try
{
cmd.ExecuteNonQuery();
}
catch (SqlException ex)
{
MessageBox.Show("Не видалено. \n" + ex.Message, "Помилка", MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
conn.Close();
}
public static void DisplayAndSearch(string query, DataGridView dgv)
{
string sql = query;
SqlConnection conn = GetConnection();
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataAdapter adp = new SqlDataAdapter(cmd);
DataTable tbl= new DataTable();
adp.Fill(tbl);
dgv.DataSource = tbl;
conn.Close();
122
482.ЧДТУ. 242253 12 01
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace carDealership
{
internal class Order
{
public string Car { get; set; }
public string Client { get; set; }
public string Discount { get; set; }
public string Employee { get; set; }
public Order(string car, string client, string discount, string employee)
{
Car = car;
Client = client;
Discount = discount;
Employee = employee;
}
}
}
using carDealership;
namespace WinFormsApp3
{
internal static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
// To customize application configuration such as set high DPI settings or default font,
// see https://aka.ms/applicationconfiguration.
ApplicationConfiguration.Initialize();
Application.Run(new FormCars());
}
}
123
482.ЧДТУ. 242253 12 01
}using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace carDealership
{
internal class Transaction
{
public string Sale { get; set; }
public string Method { get; set; }
public string Amount { get; set; }
public Transaction(string sale, string method, string amount)
{
Sale = sale;
Method = method;
Amount = amount;
}
}
124
ДОДАТОК В
Розробка програмного забезпечення для адміністрації автосалону
Інструкція користувачеві
482. ЧДТУ 242235 34 01
Листів 5
Розробник ________________ Шах В.В.
2024
482. ЧДТУ 242235 34 01
При запуску програми відображається вікно , у якому надається
користувачеві таблиця у якій міститься інформація по авто, пошук автомобіля
за маркою , операції над даними , кнопка для перегляду виробників , перегляд
замовлень ,перегляд запасів авто ,та додавання самого авто (Рисунок B1)
Рисунок B1 – Головний інтерфейс програми
Після натискання Операції над даними відкривається вікно де надані всі
операцій , в якій надано перегляд інформації начинаючи від обєму двигуна
закінчуючи загальної кількості транзакції та вартості для клієнтів. (Рисунок
B2)
126
482. ЧДТУ 242235 34 01
Рисунок B2 – Вікно після натискання операції над даними та для
прикладу відкрита таблиця з даними середній об’єм двигуна
У вікні Виробники надається інформація про те які вони є , та функції
пошуку по виробниках та додавання виробників(Рисунок B3)
Рисунок B3 – Вікно виробники та вікно додавання виробника
У вікні замовлення , надається інформація про них та має ,такі
функційовані кнопки які надають транзакцію в якій находится інформація по
ній додавання транзакції, працівники в якій містится інформація про них та
додавання працівників ,самі клієнти та інформація та додавання клієнту,та
додавання самого замовлення
(Рисунок B4)
127
482. ЧДТУ 242235 34 01
Рисунок B4 – Вікно замовлення , та додавання замовлення
У віні Запаси находиться інформація про запаси да додавання самих
запасів та надання пошуку по них (Рисунок B5)
Рис B5 – Вікно запаси та додавання запасів
128
482. ЧДТУ 242235 34 01
У вікні додати авто находяться поля ,для ведення даних про авто
(Рисунок B6)
Рисунок B6 – Вікно додавання авто
129
ДОДАТОК Г
Розробка програмного забезпечення для адміністрації автосалоном
Графічні матеріали
482. ЧДТУ 242253 90 01
Листів 3
Розробник ________________ Шах В.В
2024
482. ЧДТУ 242253 90 01
Рисунок Г1 -Діаграма прецедентів для адміністрування автосалоном
Рисунок Г2 -Діаграма класів та пакетів для адміністрування автосалоном
131
482. ЧДТУ 242253 90 01
Рисунок Г3 – Діаграма компонентів та розгортання для адміністрування
автосалоном
Рисунок Г4 – Діаграма комунікації для адміністрування автосалоном
132
482. ЧДТУ 242253 90 01
Рисунок Г5 – Діаграма скінченого автомату інтерфейсу для адміністрації
автосалоном
133