В тестовій системі користувачу буде надана можливість відправити свій результат другу. На сьогодні такий сервіс є популярним в мережі Інтернет. За відправку повідомлень буде відповідати програмний модуль для відправки повідомлень.
Модулі тестової системи будуть організовані папками, в яких будуть міститись відповідні класи та файли.
Програмний модуль для керування адміністраторами буде містити наступні класи та файли:
клас для роботи керування адміністраторами;
файл, де відбувається перевірка на введення ПІП;
файл для перевірки введеного логіна (чи доступний користувачу введений логін);
файл, для перевірки введення паролю та перевірки співпадання повторного паролю.
Модуль для керування зареєстрованими користувачами буде містити наступні класи та файли:
клас для роботи керування зареєстрованими користувачами;
клас для авторизації зареєстрованих користувачів;
файл, де відбувається перевірка на введення ПІП;
файл для перевірки введеного логіна;
файл, для перевірки введення паролю та перевірки співпадання повторного паролю.
Модуль для роботи з тестом буде містити наступні класи та файли:
клас для роботи з тестом;
файл конфігурації тесту.
Програмний модуль для відправки повідомлень буде містити наступні класи та файли:
клас для відправки повідомлень;
файл для перевірки введених даних;
капча – клас для розпізнавання комп’ютерів і людей;
файл конфігурації капчі для сайту;
файл конфігурації капчі для системи управління;
файл для налаштування шрифту капчі.
Також для тестової системи будуть розроблені інші класи, які не належатимуть перечисленим модулям, а будуть інтегровані у тестову систему. Ними являються:
клас для доступу в систему управління;
клас для роботи з базою даних;
клас для навігації по сторінкам.
Схема взаємозв’язку програмних модулів тестової системи наведена на рисунку 2.8.
Рисунок 2.8 – Схема взаємозв’язку програмних модулів тестової системи
Схема взаємозв’язку програмних модулів системи управління тестом наведена на рисунку 2.9.
Рисунок 2.9 – Схема взаємозв’язку програмних модулів системи управління тестом
Дерево програмних модулів, які відображають структурну схему пакету, що містить програмні модулі різних класів, наведено на рисунку 2.10.
Рисунок 2.10 – Дерево програмних модулів
2.3 Вибір засобів розробки інформаційної системи
Для розробки тестової системи використаний сервер Apache, на якому будуть розміщені усі модулі та класи системи.
Apache HTTP-сервер – відкритий веб-сервер Internet для UNIX-подібних, Microsoft Windows, Novell NetWare та інших операційних систем. На сьогодні він є найрозповсюдженішим веб-сервером мережі Internet.
Веб-сервер – це сервер, який приймає HTTP-запити від клієнтів, зазвичай веб-браузерів, який видає їм HTTP-відповіді, разом з HTML-сторінкою, зображенням, файлом, медіа-потоком або іншими даними [5].
Веб-сервером називають як програмне забезпечення, що виконує його функції, так і комп'ютер, на якому це програмне забезпечення працює.
Клієнти дістають доступ до веб-сервера за URL адресою потрібної їм веб-сторінки або іншого ресурсу.
Web-сервер Apache є некомерційним, вільно розповсюджуваним продуктом. Продукт підтримує безліч можливостей, багато з яких реалізовані як скомпільовані модулі, що розширюють основні функціональні можливості. Існують інтерфейси для підтримки мов програмування Perl, Python і PHP.
В основному Apache використовується для передачі даних через HTTP статичних та динамічних веб-сторінок у всесвітній павутині.
Сервер Apache може працювати в якості кешувального проксі-сервера. Проксі-сервер – це програма або окремий комп'ютер, який спеціалізується на обробці запитів до мережі та збереженні результатів запитів в своїй локальній кеш-пам'яті, що дозволяє істотно підвищити продуктивність роботи користувачів локальної мережі при роботі з документами, розташованими в Internet. Можна задавати такі параметри і налаштування проксі-сервера:
типи файлів, які необхідно кешувати або не включати в кеш;
максимальний обсяг дискового простору, відведений під кеш;
періодичний перегляд та індексування бази даних кеша з метою вивільнення дискового простору шляхом видалення застарілих об'єктів [6].
Для розробки програмного продукту буде використана збірка віртуального веб-серевера XAMPP. Тут є Apache і MySQL.
База даних тестової системи буде створена з допомогою системи керування базами даних MySQL. Це одна із основних СКБД для створення баз даних веб-ресурсів.
MySQL – система керування базами даних (СКБД), що забезпечує користувачам можливість створення, збереження, оновлення, пошук інформації та контролю доступу в базах даних [7].
MySQL є гарним рішенням для малих і середніх додатків. Звичайно MySQL використовується як сервер, до якого звертаються локальні або віддалені клієнти, проте в дистрибутив входить бібліотека внутрішнього сервера, що дозволяє включати MySQL в автономні програми.
Гнучкість СКБД MySQL забезпечується підтримкою великої кількості типів таблиць: користувачі можуть вибрати як таблиці типу MyISAM, що підтримують повнотекстовий пошук, так і таблиці InnoDB, що підтримують транзакції на рівні окремих записів. Більш того, СУБД MySQL поставляється із спеціальним типом таблиць EXAMPLE, що демонструє принципи створення нових типів таблиць. Завдяки відкритій архітектурі і GPL-ліцензуванню, в СКБД MySQL постійно з'являються нові типи таблиць.
MySQL має API для мов C, C++, Java, LISP, Perl, PHP, Python, Ruby, Smalltalk бібліотеки для мов платформи .NET, а також забезпечує підтримку для ODBC за допомогою ODBC-драйвера MyODBC.
Можливості сервера MySQL:
простота у встановленні та використанні;
підтримується необмежена кількість користувачів, що одночасно працюють із БД;
кількість рядків у таблицях може досягати 50 млн.;
висока швидкість виконання команд;
наявність простої і ефективної системи безпеки.
Недоліки сервера MySQL:
не реалізована підтримка транзакцій. Натомість пропонується використовувати LOCK/UNLOCK TABLE;
відсутня підтримка зовнішніх (foreign) ключів;
відсутня підтримка тригерів і збережених процедур;
відсутня підтримка представлень (VIEW).
Зазначені недоліки не є критичними при розробці малих і середніх ІС (інформаційних систем) для робочих груп [8].
Незважаючи на малі недоліки, для розробки програмного продукту було обрано MySQL в ролі СКБД. База даних буде створюватись за допомогою менеджера баз даних – PhpMyAdmin. Даний менеджер входить до складу збірки віртуального веб-серевера XAMPP.
2.3.3 Мова розмітки гіпертексту HTML
Будь який веб-ресурс, чи то звичайний сайт, чи портал не обходиться без дизайну. Дизайн сторінок втілюється за допомогою мови розмітки гіпертексту HTML.
HTML (Hypertext Markup Language – мова розмітки гіпертексту) – це стандартна мова розмітки документів у мережі Internet. Всі веб-сторінки створюються за допомогою мови HTML або XHTML [9].
Мова розмітки – штучна мова, яка використовує набір спеціальних тегів, які формують веб-сторінку.
Мови розмітки використовувалися століттями, а в останні роки почали використовуватися в системах комп'ютерної верстки та системах обробки текстової інформації [10].
Наведемо деякі поняття.
Гіпертекст (англ. Hypertext) – документ (текст), що містить гіперпосилання на інші документи, які можуть бути відображені безпосередньо з вихідного (первинного) документу, шляхом активізації гіперпосилання. Веб-оглядач переміщує користувача Internetу з одного документу на інший як тільки той вказує на гіперпосилання [11].
Гіперпосилання – активний (виділеним кольором) текст, зображення чи кнопка на веб-сторінці, натиснення на яку (активізація гіперпосилання) викликає перехід на іншу сторінку чи іншу частину поточної сторінки [12].
XHTML (розширювана мова розмітки гіпертексту) – мова розмітки, що задовольняє синтаксичним правилам XML [13].
Мова HTML інтерпретується браузером і відображається у вигляді документа, зручного для людини.
HTML є додатком SGML (стандартної узагальненої мови розмітки) і відповідає міжнародному стандарту ISO 8879.
HTML-документ є текстовим файлом розмічений за допомогою спеціальних, текстових команд, тегів. Текстовий формат представлення веб-документів був вибраний виходячи з основних вимог до веб-документу:
простота;
можливість інтерпретації в будь-якій операційній системі;
мінімальний розмір файлу;
зручність редагування та інтерпретації [14].
Для розробки програмного продукту буде використана змішана верстка веб-сторінок, а саме: таблична (документ розміщується в таблицях) та “дівова” верстка (верстка з допомогою слоїв). Для створення веб-сторінок програмного продукту буде використаний блокнот Notepad++. Переваги даного блокноту в тому, що він є безкоштовним та має підсвітку синтаксису різних мов.
2.3.4 Таблиці каскадних стилів CSS
Зазвичай веб-сторінки дуже громіздкі, так як в них окрім спеціальних тегів, описується дизайн за допомогою стилів, тому для виділення стилів від тегів та для читабельності коду використовують таблиці каскадних стилів.
Cascading Style Sheets (каскадні таблиці стилів) – технологія опису зовнішнього вигляду документа, написаного мовою розмітки. CSS використовується переважно для оформлення HTML- і XHTML-документів, але іноді і для інших XML-структурованих документів.
CSS використовується розробниками веб-сторінок для опису кольорів, шрифтів, розташування та інших аспектів представлення документа. Основною метою розробки CSS було розділення вмісту (написаного на HTML або іншій мові розмітки) і представлення документа (написаного на CSS). Таке розділення повинно збільшити зрозумілість документа, надати велику гнучкість, зменшити складність і повторюваність в структурному вмісті. Крім того, CSS дозволяє представляти один і той же документ в різних стилях.