1 АНАЛІЗ ПРЕДМЕТНОЇ ОБЛАСТІ
1.1 Характеристика об’єкта проектування
Новороздільський НВК «Лідер» – гімназія – загальноосвітня школа І ступеня з поглибленим вивченням англійської мови – це багато профільний навчальний заклад ІІ-ІІІ ступенів.
Школа №1 м. Нового Роздолу – найстаріший навчальний заклад міста, вона була заснована в 1956 р. В 2000 р. її було перетворено на гімназію, а з 2010 р. на НВК «Лідер». У гімназії 14 навчальних класів, навчання проходить у 26 аудиторіях. Тут навчається 352 учні і працює 48 вчителів.
В гімназії є такі профілі:
фізико-математичний;
хіміко-біологічний;
економічний;
суспільно-гуманітарний.
З першого класу вивчається поглиблено англійська мова за програмою Oxford. Українська мова, математика, профільні спецкурси, трудове навчання, інформатика, французька мова(друга мова) – ці предмети за наявності у класі 28 учнів діляться на 2 групи. Англійська мова – ділиться на 3 групи.
В гімназії запроваджена 12 бальна шкала оцінювання знань. Тобто, оцінки позначаються цифрами від 1 до 12.
Оцінювання навчальних досягнень дітей із особливими освітніми потребами здійснюється відповідно до вимог чинного законодавства України. Об’єктом оцінювання в системі загальної середньої освіти є результати повсякденної навчальної роботи учнів на уроках і вдома.
Оцінювання здійснюється на основі результатів таких видів перевірки:
усної (індивідуальне, групове та фронтальне опитування);
письмової (самостійні та контрольні роботи, тестування);
графічної (робота з діаграмами, графіками, схемами, контурними картами);
практичної (виконання різних видів експериментальних досліджень і навчальних проектів, робота з біологічними об’єктами, виготовлення виробів).
У системі оцінювання розрізняють 4 рівні навчальних досягнень учнів:
перший рівень — початковий (1-3 бали). Відповідь учня фрагментарна, характеризується початковими уявленнями про предмет вивчення;
другий рівень – середній (4-6 балів). Учень відтворює основний навчальний матеріал, здатний виконувати завдання за зразком, володіє елементарними вміннями навчальної діяльності;
третій рівень — достатній (7-9 балів). Учень знає істотні ознаки понять, явищ, зв'язки між ними, вміє пояснити основні закономірності, а також самостійно застосовує знання в стандартних ситуаціях, володіє розумовими операціями (аналізом, абстрагуванням, узагальненням) Відповідь учня правильна, логічна, обґрунтована, хоча їй бракує власних суджень;
четвертий рівень – високий (10-12 балів). Знання учня є глибокими, міцними, системними; учень вміє застосовувати їх для виконання творчих завдань, його навчальна діяльність позначена вмінням самостійно оцінювати різноманітні ситуації, явища і факти, виявляти й відстоювати особисту позицію.
Кожний наступний рівень вимог включає в себе вимоги до попереднього та додає нові. У випадку невідповідності навчальних досягнень учня рівням системи оцінювання робиться позначка «не атестований».
Учні гімназії є учасниками міжнародного математичного конкурсу «Кенгуру»; всеукраїнського фізичного конкурсу «Левеня»; інтерактивно-природничого конкурсу «Колосок»; інформаційного конкурсу «Бобер»; історичного конкурсу «Лелека». Гімназія з 2000 р. 13 разів поспіль займає І місце в місті Новий Розділ з всеукраїнських предметних олімпіад.
Спорт є ефективним засобом фізичного виховання. Його цінність визначається стимулюючим впливом на поширення фізичної культури серед різних верств населення. Тому, гімназія входить в національну мережу шкіл «сприяння здоров’я».
В гімназії є багато різних спортивних секцій, зокрема секції футболу, баскетболу, волейболу, легкої атлетики. На уроках фізичного виховання учні не тільки здають різні нормативи, але й грають в різні розвиваючі ігри.
Для проведення уроків фізичного виховання в гімназії є спортзал і стадіон. Уроки фізичного виховання проводять викладачі Криза П.І. та Брандибура Р.М. Кожен клас має 2 уроки фізичного виховання на тиждень. Урок триває 40 хв. і складається з 3 частин:
підготовча частина (привітання, розминка);
основна частина (здача нормативів, вивчення нових вправ);
заключна частина (підведення підсумків, домашнє завдання).
Всі учні гімназії проходять медичний огляд, результати якого вчителі фізичного виховання враховують під час визначення фізичних навантажень учнів на уроках.
В гімназії використовується 22 комп’ютера для навчання і адміністративної роботи . В одному класі інформатики використовується 9 комп’ютерів, а в другому – 11 комп’ютерів. В кабінеті директора і в кабінеті завуча є по 1 комп’ютеру. Комп’ютери в кожному класі з’єднані у локальну мережу типу «зірка», також в класах комп’ютери підключені до мережі Internet.
Структура апаратного та програмного забезпечення обчислювальних систем в гімназії представлена в таблиці 1.1.
Таблиця 1.1 – Структура апаратного та програмного забезпечення обчислювальних систем в гімназії
№
Модель та частота центрального процесора
Об’єм оперативної пам’яті
Об’єм жорсткого диску
Характеристики відео-пам’яті
Програм
не забезпечення
Місце використання
1
Intel Quad-Core Xeon Е5603 1.6GHz
1 Гбайт
128 Гбайт
Інтегрована, nVidia GeForce 6150SE, 256 Мбайт
Windows XP, Microsoft
Office 2007
Перший клас інформатики
(11 шт.)
2
Intel Quad-Core Xeon Е5603 1.6GHz
1 Гбайт
128 Гбайт
Інтегрована, nVidia GeForce 6150SE, 256 Мбайт
Windows XP, Microsoft
Office 2007
Другий клас інформатики
(9 шт.)
3
Intel Celeron Dual Core G530 (2.4 ГГц)
2 Гбайти
250 Гбайт
Інтегрована , Intel HD Graphics, 512 Мбайт
Windows XP, Microsoft
Office 2007
Кабінет директора
(1 шт.)
4
Intel Celeron Dual Core G530 (2.4 ГГц)
2 Гбайти
250 Гбайт
Інтегрована , Intel HD Graphics, 512 Мбайт
Windows XP, Microsoft
Office 2007
Кабінет зауча
(1 шт.)
Обчислювальні системи гімназії не потребують програмної і апаратної модернізації для роботи програми.
1.2 Огляд можливих рішень щодо проектування програмної системи
1.2.1 Типи можливих архітектур програмної системи
Є такі види архітектур програмних систем [2–7]:
модель-вид-контролер;
клієнт-серверна архітектура;
трирівнева архітектура;
сервісно-орієнтована архітектура.
Моде́ль-видгдяд-контро́лер (або модель-вигляд-контролер, англ. Model-view-controller, MVC) – архітектурний шаблон, який використовується під час проектування та розробки програмного забезпечення.
Цей шаблон ділить систему на три частини: модель даних, вигляд даних та керування. Застосовується для відокремлення даних (моделі) від інтерфейсу користувача (вигляду) так, щоб зміни інтерфейсу користувача мінімально впливали на роботу з даними, а зміни в моделі даних могли здійснюватися без змін інтерфейсу користувача.
Мета шаблону – гнучкий дизайн програмного забезпечення, який повинен полегшувати подальші зміни чи розширення програм, а також надавати можливість повторного використання окремих компонент програми. Крім того, використання цього шаблону у великих системах призводить до певної впорядкованості їх структури і робить їх зрозумілішими завдяки зменшенню складності.
Архітектурний шаблон Модель-Вид-Контролер (MVC) розділяє програму на три частини. У тріаді до обов'язків компоненти Модель (Model) входить зберігання даних і забезпечення інтерфейсу до них. Вигляд (View) відповідальний за представлення цих даних користувачеві. Контролер (Controller) керує компонентами, отримує сигнали у вигляді реакції на дії користувача, і повідомляє про зміни компоненту Модель. Така внутрішня структура в цілому розділяє систему на самостійні частини і розподіляє відповідальність між різними компонентами.
MVC ділить цю частину системи на три самостійні частини: введення даних, компоненти обробки даних і виведення інформації. Модель інкапсулює ядро даних і основні функції з їх обробки. Компонента Модель не залежить від процесу введення або виведення даних. Компонента виведення Вигляд може мати декілька взаємопов'язаних областей, наприклад, різні таблиці і поля форм, в яких відображається інформація. У функції Контролера входить моніторинг за подіями, що виникають в результаті дій користувача (зміна положення курсору миші, натиснення кнопки або введення даних в текстове поле).
Зареєстровані події транслюються в різні запити, що спрямовуються компонентам Моделі або об'єктам, відповідальним за відображення даних. Відокремлення Моделі від Вигляду даних дозволяє незалежно використовувати різні компоненти для відображення інформації. Таким чином, якщо користувач через Контролер внесе зміни до Моделі даних, то інформація, подана одним або декількома візуальними компонентами, буде автоматично відкоригована відповідно до змін, що відбулися [7].
Архітектура клієнт-сервер є одним із архітектурних шаблонів програмного забезпечення. Вона є домінуючою концепцією у створенні розподілених мережних застосувань і передбачає взаємодію та обмін даними між ними. Архітектура клієнт-сервер складається з таких основних компонент [2–7]:
набір серверів, які надають інформацію або інші послуги програмам, які звертаються до них;
набір клієнтів, які використовують сервіси, що надаються серверами;
мережа, яка забезпечує взаємодію між клієнтами та серверами.
Сервери є незалежними один від одного. Клієнти також функціонують паралельно і незалежно один від одного. Немає жорсткої прив'язки клієнтів до серверів. Більш ніж типовою є ситуація, коли один сервер одночасно обробляє запити від різних клієнтів; з іншого боку, клієнт може звертатися то до одного сервера, то до іншого. Клієнти мають знати про доступні сервери, але можуть не мати жодного уявлення про існування інших клієнтів.
У комп'ютерних технологіях трирівнева архітектура, синонім триланкової архітектури (англ. three-tier або Multitier architecture), передбачає наявність наступних компонент програми: клієнтський додаток (термінал), підключений до серверу застосувань, який в свою чергу підключений до серверу бази даних.
У порівнянні з клієнт-серверною архітектурою можна виділити наступні переваги трирівневої архітектури:
масштабованість;
конфігурованість – ізольованість рівнів один від одного дозволяє, при правильному розгортанні архітектури, швидко і простими засобами змінити конфігурацію системи при виникненні збоїв під час роботи або при плановому обслуговуванні на одному з рівнів;
високий рівень безпеки;
висока надійність;
низькі вимоги до швидкості каналу (мережі) між терміналами і сервером застосувань;
низькі вимоги до продуктивності і технічних характеристик терміналів, як наслідок зниження їх вартості. Терміналом може виступати не тільки комп'ютер, але і, наприклад, мобільний телефон.
Недоліки трирівневої архітектури випливають з її переваг. У порівнянні з клієнт-серверною архітектурою можна виділити наступні недоліки трирівневої архітектури:
більш висока складність створення додатків;
складніша у розгортанні і адмініструванні;
високі вимоги до продуктивності серверів додатків і сервера бази даних, а, отже, і висока вартість серверного обладнання;
високі вимоги до швидкості каналу (мережі) між сервером бази даних і серверами додатків.
Сервісно-орієнтована архітектура (англ. Service-oriented architecture, SOA) – архітектурний шаблон програмного забезпечення, що запроваджує архітектурну модель, спрямовану на покращення ефективності, швидкості та продуктивності роботи підприємства шляхом позиціювання служб як первісних засобів рішення проблем у підтримку стратегічних напрямків діяльності підприємства.
1.2.2 Типи можливих інтерфейсів програмних систем
Інтерфейс – це, перш за все, набір правил. Як і будь-які правила, їх можна узагальнити, зібрати в "кодекс", згрупувати за спільною ознакою. Таким чином, поняття "вид інтерфейсу" можна трактувати, як об'єднання за схожістю способів взаємодії людини і комп'ютерів. Можна розглянути наступну класифікацію різних типів інтерфейсів програмних систем: командний інтерфейс, WIMP–інтерфейс, SILK-інтерфейс [2–7].
Командний інтерфейс. Командний інтерфейс називається так тому, що в цьому виді інтерфейсу людина подає "команди" комп'ютеру, а комп'ютер їх виконує і повертає результат людині. Командний інтерфейс реалізований у вигляді пакетної технології та технології командного рядка.
WIMP-інтерфейс (Window - вікно, Image - образ, Menu - меню, Pointer - покажчик). Характерною особливістю цього виду інтерфейсу є те, що діалог з користувачем ведеться не за допомогою команд, а за допомогою графічних образів – меню, вікон, інших елементів. Хоча і в цьому інтерфейсі подаються команди машині, але це робиться "опосередковано", через графічні образи. Цей вид інтерфейсу реалізований на двох рівнях технологій: простий графічний інтерфейс і WIMP-інтерфейс.
SILK-інтерфейс (Speech – мова, Image – образ, Language – мова, Knowlege – знання). Цей вид інтерфейсу найбільш близький до звичайної, людської форми спілкування. У рамках цього інтерфейсу відбувається звичайна "розмова" людини і комп'ютера. При цьому комп'ютер визначає для себе команди, аналізуючи людську мову і знаходячи в ній ключові фрази. Результат виконання команд він також перетворює в зрозумілу людині форму. Цей вид інтерфейсу найбільш вимогливий до апаратних ресурсів комп'ютера, і тому його зараз застосовують в основному для військових цілей [9].
1.2.3 Типи можливих СКБД
База даних (БД) – це систематизоване сховище інформації певної предметної галузі, до якого можуть мати доступ різні користувачі для вирішення своїх завдань [8-17].
Система керування базою даних (СКБД) – це програмне забезпечення, що дозволяє створювати БД й оновлювати інформацію, яка зберігається в ній. СУБД забезпечує зручний доступ до інформації з метою перегляду, пошуку, аналізу й обробки.
Майбутня програма буде використовувати бази даних, це можуть бути Microsoft Access, Microsoft SQL Server або MySQL та інші. Ці БД належать до реляційних БД.
MySQL – вільна система керування реляційними базами даних [18–22].
Ця система керування базами даних (СКБД) з відкритим кодом була створена як альтернатива комерційним системам. MySQL з самого початку була дуже схожою на mSQL, проте з часом вона була вдосконалена і зараз MySQL – одна з найпоширеніших систем керування базами даних. Вона використовується, в першу чергу, для створення динамічних веб-сторінок, оскільки має чудову підтримку з боку різноманітних мов програмування.
Рисунок 1.1 – Класифікація БД за способом організації даних і зв’язків між ними
MySQL – компактний багатопотоковий сервер баз даних. Характерризується великою швидкістю, стійкістю і простотою використання.
MySQL був розроблений компанією «ТсХ» для підвищення швидкодії обробки великих баз даних.
MySQL вважається оптимальним рішенням для малих і середніх застосувань. Вихідні коди сервера компілюються на багатьох платформах. Найповніше можливості сервера виявляються в UNІХ-системах, де є підтримка багатопотоковості, що підвищує продуктивність системи в цілому.
Для некомерційного використання MySQL є безкоштовним. Можливості сервера MySQL [18–22]:
простота у встановленні та використанні;
підтримується необмежена кількість користувачів, що одночасно працюють із БД;
кількість рядків у таблицях може досягати 50 млн.;
висока швидкість виконання команд;
наявність простої і ефективної системи безпеки.
«Microsoft Access» (повна назва Microsoft Office Access) – система управління базами даних від компанії Microsoft; програма, що входить до складу пакету офісних програм Microsoft Office. Має широкий спектр функцій, включаючи зв'язані запити, сортування по різних полях, зв'язок із зовнішніми таблицями і базами даних. Завдяки вбудованій мові VBA, в MS Access можна писати підпрограми, що працюють з базами даних.
Основні компоненти MS Access:
конструктор таблиць;
конструктор екранних форм;
конструктор SQL-запитів (мова SQL в MS Access не відповідає стандарту ANSI);
конструктор звітів, що виводяться на друк.
Microsoft SQL Server – комерційна система керування базами даних, що розповсюджується корпорацією Microsoft. Мова, що використовується для запитів – Transact-SQL, створена спільно Microsoft та Sybase. Transact-SQL є реалізацією стандарту ANSI/ISO щодо структурованої мови запитів (SQL) із розширеннями. Використовується як для невеликих і середніх за розміром баз даних, так і для великих баз даних масштабу підприємства. Багато років вдало конкурує з іншими системами керування базами даних.
1.3 Формування вимог до програмної системи та постановка задач дипломного проекту
1.3.1 Вимоги предметної галузі
Програма повинна:
зберігати результати здачі нормативів учнями;
виводити оцінки на основі цих результатів;
дозволяти в майбутньому працювати з інформацією, аналізувати її;
виводити рейтинг учнів після проведених змагань;
програма повинна бути зручною і зрозумілою у використанні.
1.3.2 Користувацькі вимоги
Вимоги до програми:
обравши клас програма має автоматично завантажувати список учнів і нормативи, які відповідають цьому класові;
для кожного нормативу має стояти дата його здачі;
результати нормативу мають вводитись вручну;
після введення результатів список учнів має сортуватися від першого місця до останнього;
виходячи з результатів, програма автоматично має вводити оцінки за здачу нормативу;
програма має дозволяти переглядати динаміку здачі нормативу кожного учня;
програма повинна мати зручний інтерфейс, бути простою і зрозумілою у використанні.
1.3.3 Системні вимоги
Для коректної роботи програми на комп’ютері повинна бути встановлена ОС з доступом до мережі Internet, а також програми для роботи з базами даних.
1.3.4 Постановка задач дипломного проекту
Отже, метою дипломного проекту є розробка програмної системи для підведення підсумків спортивних змагань учнів школи, яка б дозволяла зберігати результати здачі нормативів учнями гімназії, виводити оцінки, і спостерігати за досягненнями кожного учня.
Для досягнення поставленої мети необхідно виконати наступні завдання:
провести аналіз предметної області;
провести проектування програмної системи підведення підсумків спортивних змагань учнів школи;
розробити програмно-технологічне забезпечення програмної системи;
розглянути питання охорони праці.
Оскільки програмою будуть користуватися не спеціалісти в галузі комп’ютерних технологій, тому основною вимогою до неї є зручний і простий у використанні інтерфейс. Саме його дозволяють забезпечити об’єктно-орієнтовані середовища візуального програмування. А саме, С++ Builder. Крім того, потрібно було передбачити можливість легкої модифікації програми, тому за архітектурний шаблон для програмної системи необхідно вибрати модель клієнт-сервер.
2 ПРОЕКТУВАННЯ ПРОГРАМНОЇ СИСТЕМИ ПІДВЕДЕННЯ ПІДСУМКІВ СПОРТИВНИХ ЗМАГАНЬ УЧНІВ ШКОЛИ
2.1 Обґрунтування вибраного варіанту рішення
2.1.1 Вибір мови програмування та середовища розробки
Для розробки програми вибрано мову програмування Сі і середовище розробки C++ Builder [23-36].
Сі – це мова програмування загального призначення, добре відома своєю ефективністю, економічністю і переносимістю. Вказані переваги Сі забезпечують хорошу якість розробки майже будь-якого виду програмного продукту. Використання Сі як інструментальної мови дозволяє одержувати швидкі і компактні програми. У багатьох випадках програми, написані на Сі, можна порівнювати за швидкодією з програмами, написаними на мові Assembler. При цьому вони більш наочні та їх простіше супроводжувати. Сі поєднує ефективність і потужність у відносно малій за розміром мові.
Мова програмування Сі стимулює до творчості у програмуванні. Використання цієї мови дозволяє скоротити витрати часу на створення програм. Сі дозволяє програмувати швидко, ефективно і передбачено. Ще одна перевага мови програмування Сі полягає в тому, що вона дозволяє використовувати всі можливості вашої ЕОМ.
Сі забезпечує повний набір операторів структурного програмування та пропонує досить великий набір операцій. Багато операцій Сі відповідають машинним командам, і тому допускають пряму трансляцію в машинний код. Різноманітність операцій дозволяє вибирати їх різні набори для мінімізації результуючого коду. Тобто, один і той самий алгоритм можна описати з використанням різних операторів.
Сі підтримує покажчики (вказівники) на змінні і функції, тобто дозволяє працювати з динамічною пам'яттю. Покажчик на об'єкт програми відповідає фізичній адресі цього об'єкта. За допомогою покажчиків можна створювати ефективно-виконувані програми. Сі підтримує арифметику покажчиків, і тим самим дозволяє здійснювати безпосередній доступ і маніпуляції з оперативною пам'яттю не гірше ніж мова Assembler.
Очевидно, що мова Сі також має ряд недоліків. Зокрема, вона пред'являє достатньо високі вимоги до кваліфікації програміста. При вивченні Сі бажано мати уявлення про структуру і роботу комп'ютера. Значно полегшить вивчення мови та дозволить краще зрозуміти основні ідеї Сі, як мови системного програмування, хоча б мінімальне знання мови Assembler. Пріоритет виконання деяких операторів не є загальноприйнятим, деякі синтаксичні конструкції могли б бути кращими, оскільки завдяки їх простоті вони часто втрачають зрозумілість. Очевидно, що Сі - надзвичайно ефективна і виразна мова програмування, придатна для широкого класу завдань.
Нововведеннями С++ порівняно з Сі є:
підтримка об'єктно-орієнтованого програмування через класи;
підтримка узагальненого програмування через шаблони;
доповнення до стандартної бібліотеки;
додаткові типи даних.
C++ Builder – середовище швидкої розробки (RAD), що випускається компанією Codegear, дочірньою фірмою компанії Embarcadero (раніше Borland). Середовище призначене для написання програм на мові програмування C++ і їх реалізації. C++ Builder об'єднує Бібліотеку візуальних компонентів і середовище програмування (IDE), написане на Delphi з компілятором C++. Цикл розробки програм аналогічний Delphi, але з істотними вдосконаленнями, доданими в C++ Builder.
Delphi – об'єктно-орієнтована мова програмування, діалект Object Pascal. Починаючи з середовища розробки Delphi 7.0, в офіційних документах Borland стала використовувати назву Delphi для позначення мови Object Pascal. Починаючи з 2007 року вже мова Delphi (похідний від Object Pascal) почав жити своїм самостійним життям і зазнавав різні зміни, пов'язані з сучасними тенденціями (наприклад, з розвитком платформи NET) розвитку мов програмування: з'явилися class helpers, перевантаження операторів та інше.
C++ Builder містить інструменти, які дозволяють здійснювати справжню візуальну розробку Windows-програм методом drag-and-drop, спрощуючи програмування завдяки WYSIWYG редактору інтерфейсу, вбудованому в середовище розробки.
C++ Builder спочатку створювалося тільки для платформи Microsoft Windows. Пізні версії, що містять, компонентну бібліотеку Borland, засновану на Qt, підтримують і Windows і Linux.
У 2003 Borland випустила C++ BUILDERX (CBX), написаний за допомогою тієї ж інфраструктури, що і Jbuilder, який при цьому був мало схожий на C++ Builder або Delphi. Цей продукт призначався для розробки великих програм для підприємств, але комерційного успіху не досяг. В кінці 2004 року Borland оголосила, що продовжить розвиток класичного C++ Builder і об'єднає його з середовищем розробки Delphi, припинивши, таким чином, розробку C++ BUILDERX.
Через рік після цього оголошення, Borland випустила Borland Developer Studio 2006, який включав Borland C++ Builder 2006, що пропонував покращене управління конфігурацією і відлагодженням програм.
У 2007 Codegear випустила C++ Builder 2007, в якому реалізувала повну підтримку API Microsoft Windows Vista, збільшила повноту відповідності стандарту ANSI C++, прискорила розробку програм (до 500 %), включила підтримку Msbuild, архітектури баз даних Dbx4 і «VCL для Web», підтримуваних AJAX. Підтримка API Microsoft Windows Vista включила додатки, спочатку оформлені в стилі Vista, і природну підтримку VCL для Aero і Vista Desktop. Codegear RAD Studio 2007 містить C++ Builder 2007 і Delphi. Також в 2007 Codegear відновила серію «Turbo» і випустила дві версії C++ Builder: Turbo C++ Professional і Turbo C++ Explorer (безкоштовний), засновані на Borland C++ Builder 2006 [23–26].
2.1.2 Вибір типу та архітектури програмної системи
2.1.2.1 Вибір архітектури програмної системи
Програма може бути однокористувацькою або для одночасного використання багатьма користувачами з різних комп’ютерів. Визначальним для вибору є можливість використовуваної СКБД забезпечити одночасний доступ до даних різним користувачам. Програма розрахована на використання в школі, де з нею будуть працювати багато користувачів, тому вона має бути багатокористувацькою. Для багатокористувацьких систем часто застосовується архітектура клієнт-сервер. Оскільки архітектура клієнт-сервер дозволяє взаємодіяти з різними СКБД, тому вибрано саме цю архітектуру.
2.1.2.2 Вибір СКБД
Для програми вибрано СКБД MySQL, оскільки вона вважається оптимальним рішенням для малих і середніх застосувань. Вона характеризується великою швидкістю, стійкістю і простотою використання. Крім того, для некомерційного використання MySQL є безкоштовною.
2.1.2.3 Вибір типу інтерфейсу програмної системи
Для програми я вибрав тип інтерфейсу WIMP-інтерфейс, тому що він найбільш зручний і зрозумілий для користувача. Графічний інтерфейс допоможе користувачу швидше зрозуміти, як працювати з програмою. Пункти меню дозволять вибрати потрібну команду вже з готового списку команд, що пришвидшить роботу користувача.
2.1.3 Напрямки вдосконалення програмної системи в майбутньому
Можна передбачити формування різноманітних звітів: по видах спорту, по роках, по віку учнів, по учителях і т.п.
Створити в програмі так званий генератор запитів. Щоб користувач програми міг самостійно задати умови для вибірки даних у звіт.
Додати в програму можливість обслуговувати змагання різних ігрових видів: баскетбол, футбол, волейбол; а також різні види проведення змагань: кубкові змагання, по колу (кожна команда змагається зі всіма).
Забезпечити обчислення рейтингу спортивних досягнень учнів на протязі навчального року, чи всього періоду їх навчання. Дозволити доступ до інформації за допомогою мережі Internet.
2.2 Структура бази даних
Програма побудована як клієнт-серверна система. На сервері знаходиться база даних навчального процесу, а на комп’ютері викладача працює клієнтська частина. Зв'язок клієнта з серверною частиною організовано за допомогою ODBC (англ. Open DataBase Connectivity) –відкритий інтерфейс доступу до баз даних, розроблений консорціумом X/Open [13, 17].
На рисунку 2.1 зображено вікно налаштування ODBC-драйвера Mysql.
База даних складається з дев’яти таблиць: teacher, klas, navch_predmet, uchen, normatyv, norm_ocinka, urok, result_ocinka, teach_predmet. Інформація, яка міститься в таблицях повністю охоплює всі аспекти проведення уроків фізичного виховання в гімназії.
Структурна схема бази даних підведення підсумків спортивних змагань учнів школи представлена в додатку А.
Лістинг реалізації бази даних представлено в додатку Б.
Рисунок 2.1 – Налаштування ODBC- Mysql драйвера
Таблиця teacher використовується для зберігання даних про викладачів:
create table teacher (
teacher_id INT NOT NULL AUTO_INCREMENT,
prizv VARCHAR(20) NOT NULL,
imya VARCHAR(20) NOT NULL,
pobat VARCHAR(20) NOT NULL,
stat ENUM('Ч','Ж') NOT NULL default 'Ч',
datanar DATE,
adresa VARCHAR(50),
PRIMARY KEY (teacher_id),
INDEX PRIZV (prizv)).
Таблиця klas використовується для зберігання даних про класи:
create table klas (
klas_id INT NOT NULL AUTO_INCREMENT,
klas_name VARCHAR(5) NOT NULL,
kabinet VARCHAR(5) NOT NULL,
klas_kerivn INT NOT NULL,
PRIMARY KEY (klas_id),
INDEX PRIZV (klas_name),
CONSTRAINT FOREIGN KEY (klas_kerivn) REFERENCES teacher(teacher_id)
ON DELETE RESTRICT
ON UPDATE CASCADE
) ENGINE=InnoDB.
Таблиця navch_predmet використовується для зберігання даних про навчальний предмет:
create table navch_predmet (
navch_predmet_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
nazva VARCHAR(20) NOT NULL,
programa BLOB,
rik_navch tinyint NULL,
PRIMARY KEY (navch_predmet_ID),
INDEX PRIZV (nazva)).
Таблиця uchen використовується для зберігання даних про учнів:
create table uchen (
uchen_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
prizv VARCHAR(20) NOT NULL,
imya VARCHAR(20) NOT NULL,
stat ENUM('Ч','Ж') NOT NULL default 'Ч',
datanar DATE,
adresa VARCHAR(50),
klas_id INT NOT NULL,
PRIMARY KEY (uchen_id),
INDEX PRIZV (prizv),
CONSTRAINT FOREIGN KEY (klas_id) REFERENCES klas(klas_id)
ON DELETE RESTRICT
ON UPDATE CASCADE
) ENGINE=InnoDB.
Таблиця normatyv використовується для зберігання даних про нормативи:
create table normatyv (
normatyv_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
nazva VARCHAR(40),
vik CHAR(2),
stat ENUM('Ч','Ж') NOT NULL,
PRIMARY KEY (normatyv_id)).
Таблиця norm_ocinka використовується для зберігання оцінок за нормативи:
create table norm_ocinka (
normatyv_id INT UNSIGNED NOT NULL,
ocinka char(2),
result_min CHAR(5),
result_max CHAR(5),
prymitka varchar(40) NULL,
PRIMARY KEY (normatyv_id, ocinka),
CONSTRAINT FOREIGN KEY (normatyv_id) REFERENCES normatyv (normatyv_id)
ON DELETE RESTRICT
ON UPDATE CASCADE
) ENGINE=InnoDB.
Таблиця urok використовується для зберігання інформації про урок:
create table urok (
urok_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
teacher_id INT NOT NULL,
klas_id INT NOT NULL,
data_uroku DATE,
urok_nom tinyint NOT NULL,
PRIMARY KEY (urok_id),
CONSTRAINT FOREIGN KEY (teacher_id) REFERENCES teacher(teacher_id)
ON DELETE RESTRICT
ON UPDATE CASCADE,
CONSTRAINT FOREIGN KEY (klas_id) REFERENCES klas(klas_id)
ON DELETE RESTRICT
ON UPDATE CASCADE
) ENGINE=InnoDB.
Таблиця result_ocinka використовується для зберігання оцінок за здачу нормативів:
create table result_ocinka(
urok_id INT UNSIGNED NOT NULL,
normatyv_id INT UNSIGNED NULL,
uchen_id INT UNSIGNED NOT NULL,
result CHAR(10),
ocinka CHAR(2),
PRIMARY KEY (urok_id,uchen_id),
CONSTRAINT FOREIGN KEY (urok_id) REFERENCES urok(urok_id)
ON DELETE RESTRICT
ON UPDATE CASCADE,
CONSTRAINT FOREIGN KEY (normatyv_id) REFERENCES normatyv(normatyv_id)
ON DELETE RESTRICT
ON UPDATE CASCADE,
CONSTRAINT FOREIGN KEY (uchen_id) REFERENCES uchen(uchen_id)
ON DELETE RESTRICT
ON UPDATE CASCADE
) ENGINE=InnoDB.
Таблиця teach_predmet використовується для зберігання інформації про предмет:
create table teach_predmet(
teacher_id INT NOT NULL,
navch_predmet_id INT NULL,
klas_id INT NOT NULL,
godyny int NULL,
PRIMARY KEY (teacher_id,navch_predmet_id,klas_id)
CONSTRAINT FOREIGN KEY (teacher_id) REFERENCES teacher(teacher_id)
ON DELETE RESTRICT
ON UPDATE CASCADE,
CONSTRAINT FOREIGN KEY (navch_predmet_id) REFERENCES navch_predmet(navch_predmet_id)
ON DELETE RESTRICT
ON UPDATE CASCADE,
CONSTRAINT FOREIGN KEY (klas_id) REFERENCES klas(klas_id)
ON DELETE RESTRICT
ON UPDATE CASCADE
) ENGINE=InnoDB;
Зв’язки між таблицями організовано за допомогою ключових полів в головній таблиці та зовнішніх ключів в підпорядкованих таблицях. Такий механізм описується за допомогою команд MySQL-сервера при створенні таблиць:
PRIMARY KEY (urok_id,uchen_id), - створення первинного ключа;
CONSTRAINT FOREIGN KEY (urok_id) REFERENCES urok(urok_id)
ON DELETE RESTRICT ON UPDATE CASCADE, - створення зовнішнього ключа з іменем urok_id, який пов’язаний з ключовим полем urok_id у таблиці urok.
Причому за допомогою команд ON DELETE RESTRICT та ON UPDATE CASCADE забезпечується цілісність даних у базі даних при видаленні чи зміні інформації у зв’язаних таблицях. Контроль за цим процесом здійснює MySQL-сервер.
Для організації доступу до даних на сервері в програмі використовуються невізуальні компоненти DataSource, ТTable, ТQuery та ТDatabase. Для централізації відкриття бази даних всі вказані компоненти налаштовані таким чином, що всі звернення до бази даних відбувається через ТDatabase. При підключенні до БД програма повинна спочатку звернутись до неї, вказавши ім’я користувача та пароль. Щоб не вводити ці дані при кожному запуску програми у методі TDM_Skorenko::DBSkLogin (TDatabase *Database, TStrings *LoginParams) в БД зберігається і передається потрібна інформація:
LoginParams->Values["SERVER NAME"]="skorenko";
LoginParams->Values["USER NAME"]="root";
LoginParams->Values["PASSWORD"]="1234".
Всі невізуальні компоненти програми згруповані у модулі даних DM_Skorenko, як показано на рисунку 3.1.2:
Рисунок 2.2 – Вигляд модуля даних
2.3 Структура форм для введення даних
Клієнтська програма складається із шістьох форм:
1) головна форма (рисунок 2.3). Містить меню для виклику інших форм, яке складається з наступних пунктів: меню Файл, меню Вікна та меню виклику довідки – Допомога;
Рисунок 2.3 – Головна форма програми
2) форма для введення даних про урок (рисунок 2.4). Для кожного проведеного уроку дозволяє ввести результати здачі нормативів учнями. Крім того, дозволяє автоматично виставити оцінки відповідно до зданих нормативів;
Рисунок 2.4 – Форма для проведення заняття
3) форма для введення даних про нормативи (рисунок 2.5). Містить дві таблиці: нормативи та розшифровку результатів здачі для кожної оцінки;
Рисунок 2.5 – Форма для введення даних про нормативи
4) форма введення даних про викладачів (рисунок 2.6);
Рисунок 2.6 – Форма для введення даних про викладачів
5) форма для введення даних про учнів. Дані про учнів вводяться окремо для кожного класу (рисунок 2.7);
Рисунок 2.7 – Форма для введення даних про учнів
6) форма для введення даних про навчальні класи (рисунок 2.8);
Рисунок 2.8 – Форма для введення даних про навчальні класи
Для аналізу даних про успішність учнів в програмі використовується компонентів сторінки Decision Cube, який дозволяє відображати дані у вигляді багатовимірного куба. Кожному виміру цього уявного куба відповідає одне поле. Наприклад, у нашій базі даних потрібно проаналізувати дані по таких полях: учні, здані нормативи, дата здачі. Отже, маємо три виміри. Розміщаємо по осях куба потрібні поля. Даними в нашому випадку будуть середні оцінки.
Ввівши потрібний нижченаведений запит у компонент DecisionQuery1:
SELECT Ur.data_uroku, Uch.prizv uch_pip, N.nazva, SUM( R.ocinka ), COUNT( R.ocinka )
FROM result_ocinka R
INNER JOIN urok Ur
ON (Ur.urok_id = R.urok_id)
INNER JOIN uchen Uch
ON (R.uchen_id = Uch.uchen_id)
INNER JOIN normatyv N
ON (R.normatyv_id = N.normatyv_id)
GROUP BY Ur.data_uroku, Uch.prizv, N.nazva
Отримуємо розгорнуту таблицю даних, в якій для кожного учня по датах показані оцінки.. Крім самих оцінок у правому крайньому стовпчику обчислюється середня оцінка по кожному учневі. Також в нижньому рядку маємо середню оцінку по кожній даті.
3 ПРОГРАМНО-ТЕХНОЛОГІЧНЕ ЗАБЕЗПЕЧЕННЯ ПРОГРАМНОЇ СИСТЕМИ
3.1 Програмна реалізація системи