МІНІСТЕРСТВО ОСВІТИ І НАУКИУКРАЇНИ
Національний університет “Львівська політехніка”
Кафедра автоматизованих систем управління
КУРСОВА РОБОТА
з дисципліни:
«Технології створення програмних продуктів»
на тему:
«Автоматизована система управління меблевого магазину»
Виконала:
студентка групи КН-30
Федишин христина
Викладач:
Ковівчак Я. В.
Львів 2015
ЗмістВступ...........................................................................
..............................................3
1.Постановка проблеми........................................................................
...................3
1.1
Опис
проблеми........................................................................
................3
1.2 Збір інформації відповідно до проблеми..............................................4
1.3 Аналіз існуючих програмних продуктів...............................................4
2.Формулювання
вимог...........................................................................
...............7
2.1Опис першочергових вимог до розроблюваного ПЗ............................7
2.2 Функціональні та не функціональні вимоги........................................9
3.Аналіз........................................................................
...........................................15
3.1
Словник
термінів........................................................................
...........15
3.2 Побудова та опис логічної моделі.......................................................16
3.2.1Модель функціонування системи............................................16
3.2.2 Спрощена модель системи......................................................17
3.2.3 Концептуальна модель.............................................................18
4.Проектування..................................................................
....................................28
5.
Реалізація......................................................................
......................................32
5.1
Розробка основних форм інтерфейсу користувача та опис програмного
продукту........................................................................
..................32
Висновки........................................................................
........................................41
Список використаної літератури ………………………………………………42
ВСТУПКурсова робота з навчальної дисципліни “Технології створення програмних продуктів» виконуються з метою закріплення, поглиблення і узагальнення знань, одержаних студентами за час вивчення дисципліни та їх застосування до комплексного вирішення конкретного фахового завдання – розробка програмних продуктів з використанням сучасних інструментальних засобів їх розробки.
Виконання курсової роботи передбачає виконання студентом низки стандартних дій по розробці програмного забезпечення – від постановки задачі до програмної реалізації, розробки програмної документації та захисту роботи. Таким чином курсова робота є завершальним етапом у викладанні дисципліни “ Технології створення програмних продуктів”.
1. Постановка проблеми.
1.1 Опис проблеми.
На сьогоднішній неможливо уявити магазин, ресторан, бібліотеку та ін. без комп’ютерів, програмних продуктів та Інтернету. Тому кожен з нас користується всім цим. З розвитком комп’ютерних технологій виникають все новіші програмні засоби, які дозволяють нам полегшити своє життя. Отже, такі програмні засоби дозволяють певним магазинам зробити їхню важку роботу легшою. Наприклад, реєстрування нового товару, оформлення замовлень, робота в Інтернеті і т.д.
Одним із таких замовлень стала програма, яка полегшить продавцям магазину процес оформлення замовлень і спростить процес реєстрування нового товару .
Замовниками системи є меблеві магазини, які намагаються використовувати новітні інформаційні технології у робочому процесі і ставитимуть за мету надати можливість клієнтам швидко робити покупку в зручний для них час.
1.2. Збір інформації відповідно до проблеми.
Проектування системи – це процес, спрямований на створення та оптимізацію сучасних електронних обчислювальних засобів та програмного забезпечення автоматизованої обробки інформації, які застосовуються у технологічних процесах при комплексному розв’язанні практичних задач. При цьому головним завданням є створення найбільш ефективного інтерфейсу для управління програмним забезпеченням.
Мета системи – це сукупність організаційних і технічних засобів для збереження та обробки інформації з метою забезпечення інформаційних потреб користувачів. Даний програмний продукт полегшує роботу у автосервісі, працівник може приймати замовлення від клієнтів, реєструвати персонал, змінювати ціну на послуги і коректувати їх.
Актуальність створювального програмного продукту полягає в простоті роботи ,зручності інтерфейсу програми, багатофункціональності і відсутності схожих систем в наявності.
1.3. Аналіз існуючих програмних продуктів.
Шукаючі схожі програмні продукти, в основному, знаходив програмне забезпечення для складів та автосервісу, проте натрапила на один веб-сайт, тому я вирішила проаналізувати цей продукт.
Так виглядає веб-сайт:
Я вирішила сама оцінити програмний продукт, щоб уникнути нав"язаних оцінок, тому спробувала сама увійти у систему:
Так
виглядає інтерфейс:
Протестувавши даний програмний продукт я виділила ряд переваг і недоліків.
Переваги:
- багатофункціональність
- велика кількість типів користувачів
Недоліки:
- багато функцій, непотрібних у роботі автосервісу
- низька швидкодія
- неяскравий інтерфейс
- заплутаний інтерфейс
- розроблявся не суто для роботи автосервісу
З вище перечислених переваг і недоліків можна зробити висновок, що даний програмний продукт є багатофункціональним, але не далеко не всі функції потрібні автосервісу. Інтерфейс дуже яскравий, але заплутаний і важкий в освоєнні. Велика кількість користувачів, це звичайно добре, але для автосервісу це не потрібно. Також значним недоліком є низька швидкодія системи. Видно що продукт розроблявся не суто для автосервісу, а також для магазинів автозапчастин та інших з метою більшого прибутку. Тому я вважаю що даний програмний продукт не є найкращим варіантом для автоматизації роботи автосервісу.
2. Формулювання вимог.
2.1. Опис першочергових вимог до розроблюваного ПЗ.
Програма призначена для створення БД, в якій будуть записані дані про товар, їх ціну. Вона передбачає використання двох клієнтів: один для адміністрування, а другий для продавця магазину.
Працівники магазину повинні отримати свій логін і пароль у адміністратора.
Перший клієнт призначений для адміністраторів.
Для роботи з цим клієнтом необхідно попередньо встановити спеціальну програму на робочому місці.
Адміністратор працює тільки в режимі 1-го клієнта. До його функцій входить: адміністрування системи, створення та редагування записів про товар, слідкування за коректною роботою системи.
У випадку використання керівником проекту 1-го клієнту він отримує всі права адміністратора.
Другий клієнт спеціально призначений для записування та оформлення покупок товару. В основному цей клієнт буде використовуватись продавцями. Для роботи з ним можна використовувати спеціальну попередньо встановлену програму, або web-браузер, у випадку не сумісності програми з операційною системою, проте не всі функції будуть доступними.
Після оформлення замовлення, в режимі клієнт 2, безпосередньо отримає свій результат.
Завдання системи
Система призначена для занесення товару у БД та оформлення замовлень клієнтів.
Особливості програмного продукту
Основна особливість системи полягає в тому, що вона проводить як занесення, так і оформлення замовлення клієнтів із збереженням результатів у загальній базі даних.
Система призначена для роботи у без мережі, у локальній мережі та через Internet.
Процес занесення і оформлення товару може відбуватися як і з допомогою спеціальної програми (встановленої на ПК, або в локальній меражі), так і за допомогою web-браузера.
Умови роботи
Для роботи системи необхідно мати комп’ютер-сервер, на якому буде розміщена база даних, спроектована мовою SQL. До сервера через локальну мережу або Інтернет будуть надходити запити від інших комп’ютерів, на яких встановлена спеціальна програма , яка забезпечує роботу в режимі клієнт 1 і клієнт 2.
Система може працювати на таких операційних системах як : Windows XP, Windows 7 , Windows vista.
Для нормального користування системою швидкодія Інтернету повинна бути не меншою 512 Кбіт/сек.
Серед усіх функцій, які виконує система можна виділити загальні операції:
· Реєстрація клієнтів.
· Редагування замовлень.
· Реєстрація нового товару.
· Редагування інформації про товар.
· Відображення списків клієнтів, інформації про товар.
· Перегляд товару.
· Логування працівників магазину.
2.2. Функціональні та не функціональні вимоги.
Функціональні вимоги
Для роботи в системі кожен працівник магазину має бути попередньо зареєстрований в ній.
Зареєстровані працівники мають свій логін і пароль за допомогою якого вони входять в систему пройшовши процедуру логування.
Система має працювати в чотирьох режимах. В залежності від режиму користувачам буде доступний певний набір функцій.
Режим продавця
Перший клієнт:
Продавець не має прав працювати в першому клієнті!
Другий клієнт:
· Перегляд списку товару.
· Оформлення замовлення.
· Занесення нового товару у БД
Режим адміністратора.
Перший клієнт:
· Адміністрування системи (нагляд за правильною роботою системи).
· Реєстрація працівників.
· Редагування замовлень.
· Редагування інформації про товар.
· Відображення списків клієнтів та інформації про товар.
· Перегляд звітів.
· Редагування бази даних.
· Редагування інтерфейсів магазину.
Не функціональні вимоги
Вимоги до продукту :
· Система повинна працювати на операційній системі MS Windows.
· Комп’ютер-сервер, на якому буде розміщена база даних повинен мати процесор з частотою не менше 2.0 GHz, вінчестер об’ємом 320 GB та оперативною пам’яттю не менше 3 Gb. Операційна система MS Windows із встановленою програмою Міcrosoft SQL server 2008 SP1.
· Клієнтські ПК з ОС Windows і встановленою спеціальною програмою, яка забезпечує роботу в режимі клієнт 1 або клієнт 2. Мінімальні апаратні характеристики: процесор - 800 MHz, вінчестер – 4 гб, оперативна пам’ять 64 Мб.
· Локальна мережа, вихід в Інтернет.
· Швидкодія Інтернету повинна бути не меншою 512 Кбіт/сек.
Вимоги до процесу:
· Використання протоколу TCP/IP.
· Використання протоколу HTTP/HTTPS.
· Можливість одночасної роботи в системі ~ 100 клієнтів.
· Можливість одночасної обробки ~ 100 запитів.
Зовнішні вимоги:
· Операційна система МS Windows.
· Мова інтерфейсу – англійська, українська, російська.
· Комп’ютер-сервер.
· Локальна мережа, вихід в Інтернет.
· Тип мережі: Ethernet або Fast Ethernet.
· Швидкодія Інтернету повинна бути не меншою 512 Кбіт/сек.
Об’єм |
Можливість одночасної роботи в системі ~ 100 клієнтів. |
Швидкість реакції системи на запит |
Можливість одночасної обробки ~ 100 запитів. |
Апаратні засоби |
Апаратна частина серевера: · Процесор Intel Core 2 Duo 2.0 GHz x 2 · Вінчестер 320 GB · Відеокарта 128 Mb · Оперативна память DDR3 4GB 1667 MHz Апаратна частина клієнтського компютера: · Локальна мережа , вихід в Інтернет. · Процесор Intel Pentium II 800 MHz · Вінчестер 4 GB · Відеокарта 64 Mb · Оперативна память DDR 128MB · Мережева карта: ASUS NX1101 10/100M · Монітор · Клавіатура · Мишка Вимоги до мережі: Швидкодія Інтернету повинна бути не меншою 512 Кбіт/сек. Вимоги до офісу: · Температура повітря,0С – 15 - 30 · Вологість повітря, % – 40-90 |
Програмний інтерфейс |
· Сумісність з ОС WINDOWS. · Написана в середовищі Visual Studio 2009. Програмна чатина сервера: · Microsoft SQL server 2008 SP1. |
Взаємодія людини з системою |
Для роботи працівників з програмою достатньо: - встановити програму на ОС WINDOWS; - мати вихід в Інтернет чи локальну мережу. |
Безпека |
База даних написана мовою SQL і розміщена на сервері. Для захисту використовують стандартні методи програми MS SQL Server, такі як : · Правила безпеки; · Обмеження доступу до файлів SQL Server; · Захист клієнтів; · Антивірус; · Захист від атаки «SQL Injection» При неправильному завершенні роботи втрати даних не буде, оскільки працівник працює напряму з базою. Всі зміни здійснені в клієнті одразу передаються базі даних. Втратитися можуть лише ті зміни, які були в процесі виконання. |
Гнучкість |
Програма працюють практично на всіх версіях MS Windows. Програма передбачає роботу як через локальну мережу, так і через Інтернет (у випадку клієнт 1 , клієнт 2). Інтерфейси прцівників передбачають налаштування під власні потреби. |
Ресурси |
Обмеження строго по бюджету 20 000 грн. |
Час |
11 місяців на розробку системи: · Етап формулювання вимог -1 місяць. · Етап аналізу - 1 місяці. · Етап проектування - 3 місяці. · Етап реалізації - 5 місяців. · Етап товару- 1 місяць. · Етап встановлення – 7 днів. |
3. Аналіз.
3.1. Словник термінів
Термін |
Визначення |
Адміністратор |
Особа, яка має доступ до всіх функцій системи і веде контроль за коректною роботою. |
Працівник |
Особа, яка має обмежений доступ до бази через програму і має такі доступні функції, як: оформлення замовлень і занесення в БД нового товару. |
Сервер |
Комп’ютер з SQL сервером на якому буде розміщена база даних. |
Клієнт |
Це програма, яка включає спеціальні функції і призначена для певного типу користувачів. |
База даних |
Набір даних розміщених на сервері з яким взаємодіє клієнтська програма. |
Інтерфейс |
Засіб за допомогою якого користувач здійснює дозволені йому функцію. |
3.2. Побудова та опис логічної моделі
3.2.1. Модель функціонування системи
Користувачі системи
Основними користувачами системи є прості люди, які хочуть купити товар в магазині.
Іншими користувачами системи є:
· працівники, які викладатимуть про товар, призначену клієнтам, та здійснюватимуть редагування замовлень;
· адміністратор – особа , яка має повний доступ до всіх функціональних можливостей системи і здійснюють контроль за її коректною роботою.
3.2.2. Спрощена модель системи
Адміністратор має свій інтерфейс, з допомогою якого взаємодіє з базою і слідкує за коректною роботою системи, створює облікові засоби користувачів та ін..
Продавець в свою чергу має свій інтерфейс, який дозволяє йому виконувати свої функції.
Інтерфейс клієнта призначений для проходження опитувань і товарів.
3.2.3. Концептуальна модель
Відношення з іншими програмами
Програма успішно працює під ОС Windows XP, Windows Vista та Windows 7.
Ресурси для класу «адміністратор», «продавець».
Для нормальної роботи системи достатньо таких ресурсів:
- Локальна мережа , вихід в Інтернет.
- Апаратні засоби комп’ютера:
· Процесор Intel Pentium II 800 MHz
· Вінчестер 4 GB
· Відеокарта 64 Mb
· Оперативна память DDR 128MB
· Мережева карта: ASUS NX1101 10/100M
· Монітор
· Клавіатура
· Мишка
- Програмні засоби:
· ОС WINDOWS
· MS SQL Server
Ресурси для класу «клієнт».
Для нормальної роботи системи достатньо таких ресурсів:
- Локальна мережа , вихід в Інтернет.
- Апаратні засоби комп’ютера:
· Процесор Intel Pentium II 800 MHz
· Вінчестер 2 GB
· Відеокарта 32 Mb
· Оперативна память DDR 64MB
· Мережева карта: ASUS NX1101 10/100M
· Монітор
· Клавіатура
· Мишка
- Програмні засоби:
· ОС WINDOWS
Модель взаємодії системи з сутностями користувачів.
Таблиця 1.1 показує взаємодію сутності «продавець» з системою відповідно до функцій системи.
Таблиця 1.1
Продавець |
Потік повідомлень |
Система |
1. Запит на логування. 2. Запит на створення запису клієнта. 3. Запит на редагування запису клієнта. 4. Запит на видалення запису клієнта. 5. Запит на список клієнтів. 6. Запит на список товарів. |
1. Логін, пароль. 2. Інформація про клієнта. 3. Інформація про клієнта. 4. Логін клієнта. 5. Критерії відбору списку клієнтів. 6. Критерії відбору списку товарів. |
1. Перевірка логіну і паролю. 2. Перевірка інформації та створення запису клієнта. 3. Перевірка інформації та редагування запису клієнта. 4. Перевірка логіну клієнта та видалення запису. 5.Пошук клієнтів за заданими критеріями. 6. Пошук доступних товарів за отриманими критеріями. |
Таблиця 2.2 показує взаємодію системи з сутністю «продавець» відповідно до функцій системи.
Таблиця 2.2
Система |
Потік повідомлень |
Продавець |
1. Підтвердження входження в систему або відмова. 2. Підтвердження створення клієнта або відмова. 3. Підтвердження редагування клієнта або відмова. 4. Підтвердження видалення клієнта або відмова.. 5. Підтвердження створення товару або відмова. 6. Підтвердження редагування товару або відмова. 7. Підтвердження видалення товару або відмова. 8.Список клієнтів. 9. Список товарів. |
1. Інформація. 2. Інформація. 3. Інформація. 4. Інформація. 5. Інформація. 6. Інформація. 7. Інформація. 8. Інформація. 9. Інформація. |
1. Входження в систему або відмова. 2. Створення клієнта або відмова. 3. Редагування клієнта або відмова. 4. Видалення клієнта або відмова.. 5. Створення товару або відмова. 6. Редагування товару або відмова. 7. Видалення товару або відмова. 8. Відображення списку клієнтів. 9. Відображення списку товарів. |
Таблиця 3.1 показує взаємодію сутності «адміністратор» з системою відповідно до функцій системи.
Таблиця 3.1
Адміністратор |
Потік повідомлень |
Система |
1. Запит на логування. 2. Запит на створення запису користувача. 3. Запит на редагування запису користувача. 4. Запит видалення запису користувача. 5. Запит на створення товару. 6. Запит на редагування товару. 7. Запит видалення товару. 8. Запит на список клієнтів. 9. Запит на список тестів. 10. Запит на редагування бази даних. 11. Запит на зміну інтерфейсу клієнта. 12.Запит на зміну інтерфейсу продавця. |
1. Логін, пароль. 2. Інформація про користувача. 3. Інформація про користувача. 4. Ім’я користувача. 5. Інформація товару. 6. Інформація товару. 7. Назва товару. 8. Критерії відбору списку клієнтів. 9. Критерії відбору списку тестів. 10. Критерій зміни даних. 11. Параметри інтерфейсу клієнта. 12. Параметри інтерфейсу продавця. |
1. Перевірка логіну і паролю. 2. Перевірка інформації та створення запису користувача. 3. Перевірка інформації та редагування запису користувача. 4. Перевірка імені користувача та видалення запису. 5. Перевірка інформації та створення товару. 6. Перевірка інформації та редагування товару. 7. Перевірка назви та видалення товару. 8.Пошук клієнтів за заданими критеріями. 9. Пошук доступних товарів за отриманими критеріями. 10. Перевірка даних та зміна даних. 11. Встановлення налаштувань інтерфейсу клієнта. 12. Встановлення налаштувань інтерфейсу продавця. |
Таблиця 3.2 показує взаємодію системи з сутністю «адміністратор» відповідно до функцій системи.
Таблиця 3.2
Система |
Потік повідомлень |
Адміністратор |
1. Підтвердження входження в систему або відмова. 2. Підтвердження створення запису користувача або відмова. 3. Підтвердження редагування запису користувача або відмова. 4. Підтвердження видалення запису користувача або відмова.. 5. Підтвердження створення товару або відмова. 6. Підтвердження редагування товару або відмова. 7. Підтвердження видалення товару або відмова. 8.Список клієнтів. 9. Список товарів. 10. Підтвердження зміни даних або відмова. 11. Зміна інтерфейсу клієнта. 12. Зміна інтерфейсу продавця. |
1. Інформація. 2. Інформація. 3. Інформація. 4. Інформація. 5. Інформація. 6. Інформація. 7. Інформація. 8. Інформація. 9. Інформація. 10. Інформація. 11. Інформація. 12. Інформація. |
1. Входження в систему або відмова. 2. Створення запису користувача або відмова. 3. Редагування запису користувача або відмова. 4. Видалення запису користувача або відмова.. 5. Створення товару або відмова. 6. Редагування товару або відмова. 7. Видалення товару або відмова. 8. Відображення списку клієнтів. 9. Відображення списку товарів. 10. Змінені дані. 11. Змінений інтерфейс клієнта. 12. Змінений інтерфейс продавця. |
Якість
Програма відзначається зручним інтерфейсом, швидкістю роботи та надійністю. Система є стійкою до різного роду збоїв оскільки працює на пряму з SQL сервером (на якому розміщена база даних).
Захист
Захист системи здійснюється на двох рівнях: на рівні клієнтської програми та на рівні бази даних. Кожний користувач має свій логін і пароль за допомогою яких він може ввійти в систему. В залежності від типу користувача йому будуть доступні ті чи інші можливості. Таким чином студент не зможе зайти в систему і переглядати чи редагувати списки користувачів чи здійснювати інші неналежні йому дії. Також продавцю будуть відтворюватися лише списки клієнтів, а не всіх користувачів системи.
Всі дані будуть доступні лише адміністратору.
4 Проектування
На етапі проектування розробляється детальний проекту системи товари та опитування думки - “COCtrial”, a саме здійснюється специфікація результатів аналізу, проводиться оптимізація системи та проектування компонентів, які не належать до області проблеми процесу товари та опитування, виконується підлаштування моделі до обмежень і варіантів програмного середовища. Також на цьому етапі визначаєьтся фізична структура системи.
Use case діаграма
Рис. 1. Use Case діаграма системи.
На Use Case діаграмі (рис. 1.) зображені варіанти використання системи різними класами користувачів. Для доступу до функцій Клієнта 1 чи Клієнта 2 користувачі мають пройти процедуру логування. Адміністратор після входу в систему в Клєнті 1 може редагувати базу даних, змінювати користувацькі інтерфейси і переглядати звіти.
В свою чергу, продавці можуть редагувати списків клієнтів, створювати, редагувати та видаляти товари, а також переглядати звіти з допомогою Клієнта 1.
Покупці не використовують даний клієнт.
В Клієнті 2 всі користувачі, пройшовши процедуру
логування, можуть обирати товари та робити замовлення.
Рис. 2. Підмодулі Клієнта 1.
Клієнт 1 складається з п’яти підмодулів: FmMain, AccountManagerDAL, ReportBuilderDAL, SurveyBuilderDAL і DataModule.
FmMain. Це модуль який відповідає за інтерфейс клієнта 1.
Класи TMain, TAMFrame, TPassDlg, TRBFrame, TSBFrame, що він в себе включає, є класами інтерфейсу тобто класами-формами, які містять методи обробки стандартних подій та методи необхідні для функціонування інтерфейсу.
AccountManagerDAL: Модуль, який відповідає за логування користувачів та адміністрування системи. Він включає в себе два класи: TUsersDAL, TGroupsDAL.
· TUsersDAL – клас, що містить методи для роботи з користувацькими записами системи:
· TGroupsDAL – клас, методи якого необхідні для роботи з групами клієнтів системи:
ReportBuilderDAL: Модуль, призначений для створення звітів успішності клієнтів, а також результатів опитувань. Він включає в себе клас TReportDAL.
· TReportDAL – клас, методи якого необхідні для роботи зі звітами системи:
SurveyBuilderDAL: Модуль, який відповідає за створення товарів та замовлень. Даний модуль включає в себе два класи: TSurveyDAL, TSurvey.
· TSurveyDAL – клас, методи якого призначені для завантаження, видалення та відтворення списків товарів та замовлень:
· TSurvey – клас для створення товарів та замовлень та їх збереження у вигляді об’єкта (екземпляра даного класу):
DataModule. Цей модуль призначений для організації зв’язку з базою даних, включає в себе клас TDataModule.
· TDataModule – клас, що включє в себе набір стандартних компонент (TADOConnection, TdataSource та TADOStoredProc) необхідних для взаємодії з базою даних.
Клієнт 2
Рис. 3. Підмодулі Клієнта 2.
Клієнт 2 складається з трьох підмодулів: FmMain, SurveyDAL і DataModule.
FmMain. Це модуль який відповідає за інтерфейс клієнта 2.
Класи TMain, TPassDlg, TTestProc, що він в себе включає, є класами інтерфейсу тобто класами-формами, які містять методи обробки стандартних подій та методи необхідні для функціонування інтерфейсу.
SurveyDAL: Цей модуль забезпечує запис клієнтів та оформлення замовлення. Він включає в себе наступні класи: TSurveyDAL, TSurvey, TSurveyAnswers.
· TSurveyDAL – клас, методи якого призначені для завантаження та відтворення списків товарів та замовлень:
· TSurvey – клас для збереження товарів та замовлень у вигляді об’єкта (екземпляра даного класу):
· TSurveyAnswers – клас для збереження товарів та замовлень у вигляді об’єкта (екземпляра даного класу):
DataModule. Цей модуль призначений для організації зв’язку з базою даних, включає в себе клас TDataModule.
· TDataModule – клас, що включє в себе набір стандартних компонент (TADOConnection, TdataSource та TADOStoredProc) необхідних для взаємодії з базою даних.
Взаємодія між модулями відбувається наступним чином:
- Класи TMain і TPassDlg (FmMain) використовують методи класу TSurveyDAL (SurveyDAL).
- Клас TTestProc (FmMain) використовує класи TSurvey та TSurveyAnswers (SurveyDAL).
- Клас TSurveyDAL (SurveyDAL) використовує компоненти класу TDataModule (DataModule) для взаємодії (через збережувані процедури) з базою даних.
5 РЕАЛІЗАЦІЯ
5.1. Розробка основних форм інтерфейсу користувача та опис програмного продукту
За середовище для написання тесту було обрано Microsoft Visual Studio 2008 .Прийнято рішення написати максимально просту та зрозумілу для будь-якого користувача програму для інформаційної системи роботи меблевого магазину, де при необхідності та наявності елементарних навичок користування ПК кожен може змінити дані про клієнтів, наявні товари та їх опис.
Середовище програмування Visual
Studio 2008
Мал. 3.1.5 Редагування каталогів
Редагування товарів
Збереження даних
Пошук по моделі, вартості та країні-виробнику
Пошук по каталогу
5.2. Програмування графічного користувацького інтерфейсу
Код для інтерфейсу:
Private Sub ButtonPrev_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonPrev.Click
DataGrid2.UnSelect(cManager.Position)
cManager.Position -= 1
DataGrid2.Select(cManager.Position)
current_P()
current_objects()
End Sub
Case 1
M.Id = nMaxId + 1
M.IdNmb = Me.CmbType.SelectedIndex + 1
M.NameOfModel = Me.TxtModel.Text
M.TypeOfTool = Me.CmbType.SelectedItem
M.Cost = Me.TxtCost.Text
M.Amount = Me.TxtAmount.Text
M.Country = Me.TxtCountry.Text
M.PictureM = Me.TxtPictureM.Text
arrModel.Add(New Model(M.Id, M.IdNmb, M.NameOfModel, M.TypeOfTool, M.Cost, M.Amount, M.Country, M.PictureM))
cManager.Position = arrModel.Count - 1
nMaxId = nMaxId + 1
Case 2
M.Id = CurrentModelNumber
M.IdNmb = Me.CmbType.SelectedIndex + 1
M.NameOfModel = Me.TxtModel.Text
M.TypeOfTool = Me.CmbType.SelectedItem
M.Cost = Me.TxtCost.Text
M.Amount = Me.TxtAmount.Text
M.Country = Me.TxtCountry.Text
M.PictureM = Me.TxtPictureM.Text
Dim Ab As New Model(M.Id, M.IdNmb, M.NameOfModel, M.TypeOfTool, M.Cost, M.Amount, M.Country, M.PictureM)
arrModel.Item(CurrentIndex) = Ab
End Select
RefreshObjects()
current_P()
current_objects()
ShowBoxes(False)
SaveAllToFile()
MsgBox("Записи збережено")
End Sub
Private Sub SaveAllToFile()
Dim BW As BinaryWriter
Dim FS As FileStream
Dim aListEnum As IEnumerator
FS = New FileStream(".officeequipment.dat", FileMode.Create, FileAccess.Write)
BW = New BinaryWriter(FS)
BW.BaseStream.Seek(0, SeekOrigin.Begin)
aListEnum = arrModel.GetEnumerator
While aListEnum.MoveNext
SaveRecord(BW, aListEnum.Current)
End While
BW.Close()
FS.Close()
FS = Nothing
End Sub
Private Sub SaveRecord(ByVal writer As BinaryWriter, ByVal record As Model)
writer.Write(record.Id)
writer.Write(record.IdNmb)
writer.Write(record.NameOfModel)
writer.Write(record.TypeOfTool)
writer.Write(record.Cost)
writer.Write(record.Amount)
writer.Write(record.Country)
writer.Write(record.PictureM)
End Sub
Private Sub BtnFind_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnFind.Click
Me.TxtSearchModel.Focus()
If bShowSearch = False Then
bShowSearch = True
BtnFind.Text = "Завершити пошук"
Me.GroupBoxForSerch.Enabled = True
Else
bShowSearch = False
BtnFind.Text = "Пошук"
Me.GroupBoxForSerch.Enabled = False
End If
RadioButton1.Checked = True
TxtSearchModel.Text = ""
TxtSearchCost.Text = ""
TxtSearchCountry.Text = ""
End Sub
Private Sub BtnDoSearch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnDoSearch.Click
DataGrid2.UnSelect(cManager.Position)
If RadioButton1.Checked = True Then
nPos = Search(1, (Trim(Me.TxtSearchModel.Text)).ToUpper)
If Me.TxtSearchModel.Text = "" Then
MsgBox("Не введено жодного значення для пошуку!", MsgBoxStyle.Information, "УВАГА!!!")
End If
End If
If RadioButton2.Checked = True Then
nPos = Search(2, (Trim(Me.TxtSearchCost.Text)).ToUpper)
If Me.TxtSearchCost.Text = "" Then
MsgBox("Не введено жодного значення для пошуку!", MsgBoxStyle.Information, "УВАГА!!!")
End If
End If
If RadioButton3.Checked = True Then
nPos = Search(3, (Trim(Me.TxtSearchCountry.Text)).ToUpper)
If Me.TxtSearchCountry.Text = "" Then
MsgBox("Не введено жодного значення для пошуку!", MsgBoxStyle.Information, "УВАГА!!!")
End If
End If
If nPos >= 0 Then
cManager.Position = nPos
DataGrid2.Focus()
DataGrid2.Select(nPos)
Else
MsgBox("Запис не знайдено!", MsgBoxStyle.Information, "УВАГА!!!")
End If
End Sub
Private Function Search(ByVal bField As Integer, ByVal sStr As String) As Integer
Dim itm As Object, i As Integer
Dim CurA As New Model(0, 0, "", "", "", 0, "", "")
Search = -1
i = -1
If bField = 1 Then
For Each itm In arrModel
i += 1
CurA = itm
End Sub
Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged
TxtSearchModel.Enabled = True
TxtSearchModel.Focus()
TxtSearchCost.Enabled = False
TxtSearchCountry.Enabled = False
TxtSearchCost.Text = ""
TxtSearchCountry.Text = ""
End Sub
Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged
TxtSearchCost.Enabled = True
TxtSearchCost.Focus()
TxtSearchModel.Enabled = False
TxtSearchCountry.Enabled = False
TxtSearchCountry.Text = ""
TxtSearchModel.Text = ""
End Sub
Private Sub RadioButton3_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton3.CheckedChanged
TxtSearchCountry.Enabled = True
TxtSearchCountry.Focus()
TxtSearchModel.Enabled = False
TxtSearchCost.Enabled = False
TxtSearchModel.Text = ""
TxtSearchCost.Text = ""
End Sub
Private Sub TxtAmount_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TxtAmount.Validating
If Not IsNumeric(TxtAmount.Text) Then
MsgBox("У це поле слід вводити число!")
TxtAmount.Text = "1"
End If
End Sub
Private Sub DataGrid2_Navigate(ByVal sender As System.Object, ByVal ne As System.Windows.Forms.NavigateEventArgs) Handles DataGrid2.Navigate
End Sub
(New ToolType(S.Id, S.TypeOfTool))
End While
Private Sub showbuttons(ByVal lAdd As Boolean, ByVal lDel As Boolean, ByVal lFind As Boolean, ByVal lEdit As Boolean, _
ByVal lSave As Boolean, ByVal lCancel As Boolean)
Me.BtnAdd.Enabled = lAdd
Me.BtnDel.Enabled = lDel
Me.BtnFind.Enabled = lFind
Me.BtnEdit.Enabled = lEdit
Me.BtnSave.Enabled = lSave
Me.BtnCancel.Enabled = lCancel
End Sub
Private Sub ButtonFirst_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonFirst.Click
DataGrid1.UnSelect(cManager.Position)
cManager.Position = 0
DataGrid1.Select(cManager.Position)
current_P()
Current_objects()
End Sub
Private Sub ButtonPrev_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonPrev.Click
DataGrid1.UnSelect(cManager.Position)
cManager.Position -= 1
DataGrid1.Select(cManager.Position)
current_P()
Current_objects()
End Sub
Private Sub ButtonNext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonNext.Click
DataGrid1.UnSelect(cManager.Position)
cManager.Position += 1
DataGrid1.Select(cManager.Position)
current_P()
Current_objects()
End Sub
Private Sub ButtonLast_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonLast.Click
DataGrid1.UnSelect(cManager.Position)
cManager.Position = arrTypes.Count - 1
DataGrid1.Select(cManager.Position)
current_P()
Current_objects()
End Sub
Private Sub BtnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnAdd.Click
showbuttons(False, False, False, False, True, True)
DataGrid1.Enabled = False
Me.PlnNavigate.Enabled = False
nAddEdit = 1
ClearBoxes()
ShowBoxes(True)
Me.TxtTypeOfTool.Focus()
End Sub
Private Sub ShowBoxes(ByVal lShow)
Me.TxtTypeOfTool.ReadOnly = Not lShow
End Sub
Private Sub ClearBoxes()
Me.TxtId.Text = ""
Me.TxtTypeOfTool.Text = ""
End Sub
Private Sub ReturnOldContentsBoxes()
Current_objects()
End Sub
Private Sub BtnDel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnDel.Click
If MsgBox("Поточний вид " + S.TypeOfTool + " буде видалено з файлу." + vbCrLf + "Продовжити?", _
MsgBoxStyle.YesNo + MsgBoxStyle.Question, "Видалення виду") = MsgBoxResult.Yes Then
arrTypes.RemoveAt(CurrentIndex)
RefreshObjects()
If arrTypes.Count = 0 Then
S.Id = 1
S.TypeOfTool = ""
arrTypes.Add(New ToolType(S.Id, S.TypeOfTool))
Dim Ab As New ToolType(S.Id, S.TypeOfTool)
CurrentIndex = arrTypes.IndexOf(Ab)
CurrentTypeNumber = S.Id
End If
SaveAllToFile()
cManager.Position = 0
Current_objects()
MsgBox("Запис видалено")
End If
End Sub
Private Sub RefreshObjects()
DataGrid1.DataSource = Nothing
DataGrid1.DataSource = arrTypes
cManager = CType(DataGrid1.BindingContext(arrTypes), CurrencyManager)
End Sub
Private Sub BtnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSave.Click
If Len(Me.TxtTypeOfTool.Text) = 0 Then
MsgBox("Не введено назви!", MsgBoxStyle.Information, "Увага!")
Me.TxtTypeOfTool.Focus()
Exit Sub
End If
showbuttons(True, True, True, True, False, False)
DataGrid1.Enabled = True
Me.PlnNavigate.Enabled = True
SaveToArrayList(nAddEdit)
nAddEdit = 0
End Sub
Private Sub BtnEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnEdit.Click
showbuttons(False, False, False, False, True, True)
DataGrid1.Enabled = False
Me.PlnNavigate.Enabled = False
nAddEdit = 2
ShowBoxes(True)
Me.TxtTypeOfTool.Focus()
End Sub
Private Sub BtnCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCancel.Click
Current_objects()
End Sub
Private Sub SaveToArrayList(ByVal nAddEdit As Byte)
Select Case nAddEdit
Case 1
S.Id = nMaxId + 1
S.TypeOfTool = Me.TxtTypeOfTool.Text
arrTypes.Add(New ToolType(S.Id, S.TypeOfTool))
cManager.Position = arrTypes.Count - 1
nMaxId = nMaxId + 1
Case 2
S.Id = CurrentTypeNumber
S.TypeOfTool = Me.TxtTypeOfTool.Text
Me.TxtId.Text = S.Id
Me.TxtTypeOfTool.Text = S.TypeOfTool
Dim Ab As New ToolType(S.Id, S.TypeOfTool)
arrTypes.Item(CurrentIndex) = Ab
End Select
RefreshObjects()
current_P()
Current_objects()
ShowBoxes(False)
SaveAllToFile()
MsgBox("Записи збережено")
End Sub
Private Sub SaveAllToFile()
Dim BW As BinaryWriter
Dim FS As FileStream
Dim aListEnum As IEnumerator
FS = New FileStream(".Types.dat", System.IO.FileMode.Create, System.IO.FileAccess.Write)
BW = New BinaryWriter(FS)
BW.BaseStream.Seek(0, SeekOrigin.Begin)
aListEnum = arrTypes.GetEnumerator()
While aListEnum.MoveNext
SaveRecord(BW, aListEnum.Current)
End While
BW.Close()
FS.Close()
FS = Nothing
End Sub
Private Sub SaveRecord(ByVal writer As BinaryWriter, ByVal record As ToolType)
writer.Write(record.Id)
writer.Write(record.TypeOfTool)
End Sub
Private Sub DataGrid1_CurrentCellChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DataGrid1.CurrentCellChanged
current_P()
Current_objects()
End Sub
Private Sub BtnFind_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnFind.Click
If bShowSearch = False Then
GroupBoxForSerch.Enabled = True
bShowSearch = True
BtnFind.Text = "Завершити пошук"
Else
GroupBoxForSerch.Enabled = False
bShowSearch = False
BtnFind.Text = "Пошук"
End If
Me.TxtSearchTypeOfTool.Text = ""
Me.TxtSearchTypeOfTool.Focus()
End Sub
Private Sub BtnDoSearch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnDoSearch.Click
DataGrid1.UnSelect(cManager.Position)
If Len(Me.TxtSearchTypeOfTool.Text) > 0 Then
nPos = Search(Trim((Me.TxtSearchTypeOfTool.Text).ToUpper))
If nPos >= 0 Then
cManager.Position = nPos
DataGrid1.Focus()
DataGrid1.Select(nPos)
Else
MsgBox("Запис не знайдено", MsgBoxStyle.Information, "Увага!")
End If
Else
MsgBox("Не введено жодного значення" + "для пошуку", MsgBoxStyle.Information, "Увага!")
End If
End Sub
Private Function Search(ByVal sStr As String) As Integer
Dim itm As Object, i As Integer
Dim CurA As New ToolType(0, "")
Search = -1
i = -1
For Each itm In arrTypes
i += 1
CurA = itm
If String.Compare(sStr, 0, (CurA.TypeOfTool).ToUpper, 0, Len(sStr), False) = 0 Then
Search = i
Exit Function
End If
Next
End Function
Private Sub BtnExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnExit.Click
Me.Close()
End Sub
Private Sub DataGrid1_Navigate(ByVal sender As System.Object, ByVal ne As System.Windows.Forms.NavigateEventArgs) Handles DataGrid1.Navigate
End Sub
End Class
Висновки: У даній курсовій роботі я розробила систему автоматизації роботи меблевого магазину. Перед розробкою я знайшла декілька схожих систем. Я проаналізувала її, знайшла ряд переваг і недоліків, яких в першу чергу намагалась уникнути у своїй розробці - це ,хоч красивий, але заплутаний і не приємний для щоденної роботи інтерфейс, та найгірше - це низька швидкодія системи. Потім я склала декілька моделей системи: спрощену, концептуальну. Після цього відповідно до представлених функціональних і не функціональних вимог була спроектована моя система, де були вказані основні модулі системи і їх функції.
Звичайно це ще не готовий для встановлення продукт, його потрібно вдосконалювати спеціалістам.
Список використаної літератури:
1. Рекомендации по преподаванию программной инженерии и информатики в университетах.–Computing Curricula-2001: Computer Science.–Пер. с англ. – Интернет– Ун. информац. технологий, М.: 2007.–462с.
2. Бабенко Л.П., Лавріщева К.М. Основи програмної інженерії.– Навч. посібник.–К.: Знання, 2001. –269 с.
3. Лаврищева Е.М., Грищенко В.Н. Области знаний программной инженерии – SWEBOK и подход к обучению этой дисциплине// Управляющие системы и машины.–2005. – №1.– С.38–54.
4. Pfleeger S.L. Software Engineering. Theory and practice. – Printice Hall: Upper Saddenle River, New Jersey, 1998. – 576 p.
5. Jacobson I. Object-Oriented Software Engineering. A use Case Driven Approach, Revised Printing. – New York: Addison-Wesley Publ. Co., 1994. – 529 p.
6. Иан Соммервил. Инженерия программного обеспечения. 6-е издание. – М.; Спб. – Киев, 2002. – 623 с.
7. Сайт: http://meblevysvit.com.ua/