Диплом на тему Розробка програмного модулю для визначення професійних знань
Работа добавлена на сайт bukvasha.net: 2015-07-01Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Зміст
Вступ
1 Характеристика предметної області та постановка задачі
1.1 Аналіз предметної області
1.2 Аналіз інформаційного забезпечення предметної області
1.3 Постановка задачі
2 Проектування структури інформаційної системи
2.1 Аналіз та автоматизація обробки інформаційних потоків
2.2 Розробка структури інформаційної системи
2.3 Вибір засобів розробки інформаційної системи
2.3.1 Веб-сервер Apache
2.3.2 СКБД MySQL
2.3.3 Мова розмітки гіпертексту HTML
2.3.4 Таблиці каскадних стилів CSS
2.3.5 Мова програмування JavaScript
2.3.6 Мова програмування PHP
3 Реалізація програмного продукту
3.1 Структура і функціональне призначення модулів системи, їх взаємозв’язок
3.2 Розробка програмних модулів
3.3 Інструкція користувача
4 Організаційно-економічний розділ
4.1 Розрахунок кошторису витрат на розробку тестової системи визначення професійної придатності програмістів
4.2 Розрахунок експлуатаційних витрат тестової системи визначення професійної придатності програмістів
4.3 Розрахунок умовного обсягу робіт
4.4 Розрахунок річного економічного ефекту від впровадження нової системи
5 Охорона праці та техніка безпеки
5.1 Застосування професійного відбору в охороні праці
5.2 Обов’язки служби охорони праці
5.3 Розрахунок площі природного освітлення для приміщення з ЕОМ
Висновки
Перелік посилань
Додаток А
Додаток Б
Додаток В
Вступ
В епоху новітніх технологій інформація відіграє дуже важливу роль. Розвиток науково-технічного прогресу привів до того, що діяльність багатьох організацій та установ тепер тісно зв’язана із зберіганням великої кількості інформації. Для обробки і зберігання інформації дані структури почали використовувати інформаційні системи, обов’язковою складовою яких є бази даних. Вони дозволяють у зручній формі здійснювати зберігання, видалення та обробку інформації.
З розвитком мережевих технологій, зокрема мережі Internet, постала потреба швидко, конфіденційно та без великих зусиль обмінюватись збереженою інформацією в базах даних. Так як Internet став невід’ємною частиною життя більшості людей: люди почали заробляти через мережу, замовляти і купувати товари, шукати потрібну інформацію, спілкуватись з іншими, проходити тестування або просто розважатися; з’явилась потреба в створенні програмних продуктів, які б працювали з базами даних і водночас були віддаленими. Такі програмні продукти, або як їх називають веб-ресурси, стали досить актуальними, так як вони не прив’язані до робочого місця користувача, до конкретної операційної системи, а всі дані зберігаються на віддаленому сервері. Кожен користувач у будь-який момент може отримати доступ до своїх даних.
Останнім часом в мережі Internet стали популярними різні тести: тести IQ, які дозволяють людям дізнатись коефіцієнт інтелекту, психологічні тести, які покликані допомогти людині виміряти свої індивідуально-психологічні особливості. Але окрім цього тести такого роду мають ще інше застосування: вони є засобом рекламних компаній, а також слугують як комерційні проекти, які покликані приносити дохід. Разом з цим існує мало тестових систем, які допомагають визначити професійну придатність людей, наприклад програмістів. Такі тести проводять деякі компанії при оцінюванні персоналу, при прийомі працівників на роботу з метою визначення професійної придатності. Так, наприклад, відома компанія Micrisoft при прийомі на роботу проводить тестування, яке базується на вирішенні задач та головоломок для виявлення більш творчих кандидатів серед здібних.
Відповідно до цього, метою написання дипломного проекту є створення тестової системи визначення професійної придатності програмістів. Дана тема є актуальною на сьогодні і повинна знайти своє практичне застосування.
Для створення тестової системи було обрано мови програмування PHP та JavaScript, а для роботи з базою даних веб-ресурс використовуватиме систему керування базами даних MySQL.
Отже, тестова система буде виконана у вигляді веб-ресурса і розміщуватиметься в мережі Інтернет. Користувач зможе отримати доступ до ресурсу, відкривши сторінку тестової системи через свій браузер та зможе пройти тестування, отримати результат (дізнатись свою професійну придатність), відправити свій результат другу, а також переглянути рейтинг інших учасників. Авторизований адміністратор зможе керувати веб-ресурсом, вносити зміни до тесту, керувати користувачами за допомогою системи управління.
1 Характеристика предметної області та постановка задачі
1.1 Аналіз предметної області
Предметною областю програмного продукту є створення тестової системи для визначення професійної придатності програмістів.
Для визначення професійної придатності програмістів необхідно провести тестування за потрібною тематикою у вигляді запитань. На основі отриманого результату зробити висновок про професійну придатність.
Тести на професійну придатність проводять на основі тестів IQ. Тест складається із запитань різної складності. За результатами тестування підраховується сумарний бал:
від 70 до 99 – низький рівень;
від 100 до 120 – середній рівень;
від 121 до 150 – вище середнього;
більше 150 – високий рівень.
Відповідно до рівнів формується висновок про професійну придатність. Сумарний бал не повинен перевищувати 170 балів, тобто максимально можливий результат тестування – 170 балів.
Досліджено, що чим більше варіантів тесту проходить користувач, тим кращі результати він показує [1].
1.2 Аналіз інформаційного забезпечення предметної області
На сьогоднішній день існують різні реалізації тестів на професійну придатність: від локальних версій, написаних як додаток до операційної системи, до так званих веб-версій. Вони суттєво відрізняються, так як при їх розробці використовуються різні технології. Основними з яких є: Flash, Windows-додатки, веб-додатки.
Flash – продукт компанії «Macromedia», що дозволяє розробляти інтерактивні мультимедійні програми. Сфера використання Flash є різною, це можуть бути ігри, веб-сайти, презентації, банери і просто мультфільми. При створенні продукту можна використовувати медіа, звукові та графічні файли. В основі Flash лежить векторний морфінг – технологія комп'ютерної графіки, що створює плавний перехід з одного ключового кадру в інший. Це дозволяє робити досить складні мультиплікаційні сцени, задаючи лише кілька ключових кадрів для кожного персонажа.
Іншою перевагою технології Flash є повна програмованість. Flash використовує мову програмування ActionScript, яка по синтаксису є схожою із JavaScript. Остання версія мови (ActionScript 3.0) є повноцінною об'єктно-орієнтованою мовою.
Серед цих переваг існують також і ряд особливостей, які можна віднести до мінусів Flash технології. Наприклад, для того щоб переглянути проект, створений на Flash, користувачу необхідно додатково встановити Flash-плеєр. Також проект, написаний на Flash, є статичним, тобто вміст програмного продукту користувач вже не змінить, без втручання в код [2].
До Windows-додатків можна віднести додатки написані на таких мовах програмування як: C++, Visual Basic, Delphi, C# та інші. З допомогою такої технології можна не тільки розробити проект, а й створити панель управління для нього, де адміністратор зміг би змінювати вміст проекту. Але не дивлячись на переваги і засоби, які надають ці мови програмування, все ж таки користувачу необхідно буде встановити додаткове програмне забезпечення. Наприклад, для роботи з додатком написаним на С# необхідно встановити платформу .NET Framework.
Веб-додатки – додатки, створені для роботи в серверному середовищі і написані на таких мовах програмування як: PHP, ASP, Perl, Ruby, Java та інші. Ці мови програмування надають можливість створювати повноцінні додатки, до цих додатків створювати системи управління контентом. Веб-додатки працюють тільки в серверному середовищі, тобто для роботи з ними необхідно встановити сервер, так як скрипти виконуються на сервері. Але разом з тим, такі додатки можна викладати в Internet, де вже налаштований сервер, тому для роботи користувачу необхідно мати веб-браузер і вихід в Internet. Також перевагою веб-додатків є те, що користувач має доступ до проекту через Internet в будь-який момент.
Серед тестових систем, які знаходяться в мережі Internet, існує мало таких, які надають можливість пройти тест і дізнатись професійну придатність. Дуже важко знайти тестову систему із потрібною тематикою і разом з тим, більшість із них є платними й для отримання результату користувачу необхідно відправити платне смс повідомлення.
1.3 Постановка задачі
Вхідною інформацією для тестування та збереження результатів є: “форма реєстрації користувача” та “форма авторизації”.
Перелік (у скороченому варіанті) та опис вхідної інформації тестової системи наведено в таблиці 1.1.
Таблиця 1.1 – Перелік вхідних повідомлень
-
Вхідне повідомлення
Ідентифікатор
Форма подання
Термін і час
Форма реєстрації користувача
REGISTRATION
Документ
По мірі необхідності
Форма авторизації
LOGIN
Документ
По мірі необхідності
Перелік та опис структурних одиниць вхідної інформації тестової системи наведено в таблиці 1.2.
Таблиця 1.2 – Перелік та опис структурних одиниць вхідної інформації
Структурна одиниця | Точність значення | Джерело інформації | Ідентифікатор джерела інформації |
Прізвище користувача | 20 | Форма реєстрації користувача | REGISTRATION |
Ім’я користувача | 10 | Форма реєстрації користувача | REGISTRATION |
E-mail користувача | 50 | Форма реєстрації користувача | REGISTRATION |
Логін користувача | 20 | Форма реєстрації користувача, Форма авторизації | REGISTRATION, LOGIN |
Пароль доступу | – | Форма реєстрації користувача, Форма авторизації | REGISTRATION, LOGIN |
Дата входу | – | Форма авторизації | LOGIN |
Права користувача | – | Форма авторизації | LOGIN |
Як нормативно-довідкова інформація для створення тестової системи визначення професійної придатності програмістів використовуються наступні довідники:
запитань, який формується адміністратором тестової системи;
відповідей, який формується адміністратором тестової системи;
рівнів придатності, який формується адміністратором системи.
Обов’язковим елементом комплексної автоматизації є розробка і використання єдиної номенклатури кодів, простіше кажучи класифікація об’єктів. Класифікація – це науковий метод дослідження природи об’єктів та явищ з використанням певних правил їх систематизації.
Для кодування реквізиту “Запитання” слід скористатися порядковою системою кодування: ХХХ – номер запитання.
Фрагмент класифікатора
-
Значення
Код
Інкапсуляція – це…
12
Інтерфейс – це…
205
Для кодування реквізиту “Відповідь” слід скористатися порядковою системою кодування: ХХХ – номер відповіді.
Фрагмент класифікатора
-
Значення
Код
Будь-які речі, через які ми взаємодіємо з об’єктом
157
Розділення на інтерфейс і реалізацію
300
Коди, які використовуються при обробці інформації в тестовій системі, представлені в таблиці 1.3.
Таблиця 1.3 – Таблиця класифікації і кодування
Назва коду | Тип класифікатора | Система кодування | Структура коду | Значення кожного розряду |
Номер запитання | Локальний | Порядкова | ХХХ | |
Номер відповіді | Локальний | Порядкова | ХХХ | |
Номер рівня придатності | Локальний | Порядкова | ХХХ | |
Перелік (у скороченому вигляді) та опис нормативно-довідкової інформації тестової системи наведено в таблиці 1.4.
Таблиця 1.4 – Перелік нормативно-довідкової інформації
-
Довідники
Ідентифікатор
Форма подання
Термін і час
Довідник запитань
QUESTION
Документ
По мірі необхідності
Довідник відповідей
ANSWER
Документ
По мірі необхідності
Довідник рівнів придатності
LEVEL
Документ
По мірі необхідності
Перелік та опис структурних одиниць нормативно-довідкової інформації тестової системи наведено в таблиці 1.5.
Таблиця 1.5 – Перелік та опис структурних одиниць нормативно-довідкової інформації тестової системи
Структурна одиниця | Точність значення | Джерело інформації | Ідентифікатор джерела інформації |
Запитання | – | Довідник запитань | QUESTION |
Картинка до запитання | 50 | Довідник запитань | QUESTION |
Варіант відповіді | 255 | Довідник відповідей | ANSWER |
Вага відповіді | 1 | Довідник відповідей | ANSWER |
Рівень придатності | – | Довідник рівнів придатності | LEVEL |
Мінімальний бал рівня | 1 | Довідник рівнів придатності | LEVEL |
Максимальний бал рівня | 3 | Довідник рівнів придатності | LEVEL |
В результаті створення тестової системи формується вихідна інформація у вигляді комп’ютерних (електронних) файлів.
Вихідною інформацією тестової системи є “результат тестування”.
Перелік (у скороченому вигляді) та опис вихідної інформації тестової системи наведено в таблиці 1.6.
Таблиця 1.6 – Перелік вихідних повідомлень
Вихідне повідомлення | Ідентифікатор | Форма подання | Термін і час |
Результат тестування | RESULT | Документ | Після проходження тесту |
Перелік та опис структурних одиниць вихідної інформації тестової системи наведено в таблиці 1.7.
Таблиця 1.7 – Перелік та опис структурних одиниць вихідної інформації
Структурна одиниця | Точність значення | Джерело інформації | Ідентифікатор джерела інформації |
Бал – результат тестування | 3 | Результат тестування | RESULT |
Час проходження тесту | – | Результат тестування | RESULT |
Дата тестування | – | Результат тестування | RESULT |
Прізвище користувача | 20 | Результат тестування | RESULT |
Ім’я користувача | 10 | Результат тестування | RESULT |
Для визначення професійної придатності програмістів розраховуються наступні показники:
– кількість набраних балів за -те запитання:
(1.1)
де – номер поточного запитання, ;
– кількість запитань;
– рівень складності запитання: ;
– максимально можливий сумарний бал за запитань.
– коефіцієнт професійної придатності:
(1.2)
Розроблювальний програмний продукт надасть змогу швидко, і без великих зусиль зберігати інформацію про запитання і відповіді для тестування, вести облік зареєстрованих користувачів, переглядати рейтинг учасників, а також визначати професійну придатність програмістів.
Реєстрація користувачів включатиме в себе заповнення та збереження наступних даних:
прізвище, ім’я користувача;
пароль, email, логін для авторизації;
телефон користувача.
Після проходження тестування користувач отримає результат, що містить наступну інформацію:
прізвище, ім’я користувача;
бал – результат тестування;
дату проходження тесту;
час проходження тесту.
Програмний продукт буде реалізовувати певний комплекс задач, які можна поділити на дві групи:
задачі, які будуть доступні звичайним користувачам;
задачі, які будуть доступні адміністраторам.
До задач першої групи можна віднести:
проходження тестування;
реєстрація;
збереження результату;
перегляд рейтингу;
відправка результату другу.
До другої групи віднесемо такі задачі:
керування зареєстрованими користувачами;
створення/редагування/видалення запитань;
створення/редагування/видалення відповідей;
налаштування тестової системи: кількість питань, яку необхідно показати за сеанс;
налаштування рейтингу користувачів;
керування адміністраторами.
2 Проектування структури інформаційної системи
2.1 Аналіз та автоматизація обробки інформаційних потоків
Інформаційний потік для тестової системи – це сукупність циркулюючих в тестовій системі повідомлень, що необхідні для проходження тестування та визначення результату. Інформаційний потік може існувати у виді паперових і електронних документів. Іншими словами – це потік повідомлень в мовній, документній (паперовій, електронній) і іншій формі, що генерується вихідним матеріальним потоком в тестовій системі.
В результаті проектування тестової системи та аналізу інформаційних потоків було сформовано діаграму потоків даних (рисунок 2.1) та структурно-функціональну діаграму (рисунок 2.2).
Рисунок 2.1 – Діаграма потоків даних
Рисунок 2.2 – Структурно-функціональна діаграма
Інформаційні потоки в сукупності складають інформаційну систему. Така система забезпечує проходження і обробку інформації в тестовій системі визначення професійної придатності програмістів.
При проектуванні бази даних обов’язково необхідно її привести до трьох нормальних форм. Це здійснюється за допомогою нормалізації відношень. Нормалізація – це процес декомпозиції початкового відношення на декілька простіших відношень меншої розмірності.
В результаті дослідження предметної області “Тестова система визначення професійної придатності програмістів” було отримано наступний набір полів:
прізвище користувача;
ім’я користувача;
еmail користувача;
пароль доступу;
права користувача;
логін користувача;
дата входу;
запитання;
картинка до запитання;
варіант відповіді;
вага відповіді;
бал – результат тестування;
рівень придатності;
мінімальний бал рівня;
максимальний бал рівня;
дата тестування;
час проходження тесту.
Перша нормальна форма передбачає, щоб кожне поле таблиці було неподільним і не містило даних, що повторюються. Щоб привести відношення до першої нормальної форми, необхідно розбити предметну область на декілька простих відношень.
Предметна область була розбита на таблиці (прості відношення):
користувачі;
рейтинг;
запитання;
відповіді;
рівні придатності;
авторизація.
Друга нормальна форма передбачає, що відношення знаходяться у першій нормальній формі і кожний рядок відношення однозначно визначається первинним ключем.
При приведені до другої нормальної форми було додано ключі до таблиць. До таблиці “Користувачі” будо додано ключове поле – код
користувача. До таблиці “Рейтинг” будо додано ключове поле – код запису. До таблиці “Запитання” будо додано ключове поле – код запитання. До таблиці “Відповіді” будо додано ключове поле – код відповіді. До таблиці “Рівні придатності” будо додано ключове поле – код рівня, а до таблиці “Авторизація” будо додано ключове поле – код запису.
Третя нормальна форма передбачає, що відношення знаходяться у першій та другій нормальній формі, а також щоб значення будь-якого поля, що не входить до первинного ключа не залежало від інших полів, тобто не повинно бути транзитивної залежності.
Відношення були приведені до третьої нормальної форми.
Далі виявимо зв’язки інформаційно-логічної моделі.
Модель “сутність-зв’язок” має кілька базових понять, що утворюють вихідні цеглинки, із яких будуються більш складні об’єкти за заздалегідь визначеними правилами.
Зв’язки поділяються на три типи за множинністю: “один-до-одного” (1:1), “один-до-багатьох” (1:Б), “багато-до-багатьох” (Б:Б). Зв’язок “один-до-одного” (1:1) означає, що екземпляр однієї сутності зв’язаний тільки з одним екземпляром іншої сутності. Зв’язок 1:Б означає, що один екземпляр сутності, розташований ліворуч по зв’язку, може бути зв’язаний з декількома екземплярами сутності, розташованими праворуч по зв’язку. А зв’язок Б:Б означає, що один екземпляр першої сутності може бути зв’язаний з декількома екземплярами другої сутності, і навпаки, один екземпляр другої сутності може бути зв’язаний з декількома екземплярами першої сутності.
Для встановлення відношень між інформаційними об’єктами задамо запити до цих об’єктів:
до якого запитання належать відповіді?
які результати тестування в користувача?
Зв’язок №1
Кожне запитання має певний список відповідей, тому організовуємо зв’язок “один-до-багатьох” (рисунок 2.3).
Рисунок 2.3 – Зв’язок “Запитання – Відповіді”
Зв’язок №2
Кожен користувач може пройти тест на професійну придатність безліч разів. На основі цього складається рейтинг учасників, тому організовуємо зв’язок “один-до-багатьох” (рисунок 2.4).
Рисунок 2.4 – Зв’язок “Користувачі – Рейтинг”
На основі структурних зв’язків будуємо інфологічну модель, яка наведена на рисунку 2.5.
Рисунок 2.5 – Інфологічна модель
Тепер опишемо властивості кожної таблиці.
Властивості таблиці “Користувачі” наведені в таблиці 2.1.
Таблиця 2.1 – Властивості таблиці “Користувачі”
Назва реквізиту | Ідентифікатор | Тип | Маска / Довжина | Ключове поле |
Код користувача | adept_id | Цілі значення | 11 | Primary |
Прізвище | adept_surname | Строкова величина | 100 | |
Ім’я | adept_name | Строкова величина | 100 |
adept_mail
Строкова величина
50
Пароль
adept_password
Строкова величина
Властивості таблиці “Запитання” наведені в таблиці 2.2.
Таблиця 2.2 – Властивості таблиці “Запитання”
Назва реквізиту | Ідентифікатор | Тип | Маска / Довжина | Ключове поле |
Код запитання | quest_id | Цілі значення | 11 | Primary |
Текст запитання | quest_question | Строкова величина | | |
Картинка | quest_image | Строкова величина | 100 | |
Властивості таблиці “Відповіді” наведені в таблиці 2.3.
Таблиця 2.3 – Властивості таблиці “Відповіді”
Назва реквізиту | Ідентифікатор | Тип | Маска / Довжина | Ключове поле |
Код відповіді | ans_id | Цілі значення | 11 | Primary |
Варіант відповіді | ans_answer | Строкова величина | 255 | |
Вага відповіді | ans_point | Цілі значення | 11 | |
Код запитання | ans_question_id | Цілі значення | 11 | Secondary |
Властивості таблиці “Рейтинг” наведені в таблиці 2.4.
Таблиця 2.4 – Властивості таблиці “Рейтинг”
Назва реквізиту | Ідентифікатор | Тип | Маска / Довжина | Ключове поле | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Код запису | rat_id | Цілі значення | 11 | Primary | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Бал | rat_mark | Цілі значення | 11 | | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Дата тестування | rat_date | Цілі значення | 12 | | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Час проходження тесту
Для авторизації та управління адміністраторами створена таблиця “Авторизація”, її властивості наведені в таблиці 2.5. Таблиця 2.5 – Властивості таблиці “Авторизація”
Властивості таблиці “Рівні придатності” наведені в таблиці 2.6. Таблиця 2.6 – Властивості таблиці “ Рівні придатності”
Схема даталогічної моделі наведена на рисунку 2.6.
Рисунок 2.6 – Даталогічна модель 2.2 Розробка структури інформаційної системи Розроблюваний програмний продукт призначений для тестування та визначення професійної придатності програмістів. За допомогою програмного продукту ведеться облік учасників, які проходять тест; додаються/видаляються питання та відповіді. В такому процесі проводиться постійний обмін даними між модулями. На рисунку 2.7 представлена схема інформаційних потоків між клієнтською частиною (веб-браузером), веб-сервером та сервером бази даних.
Рисунок 2.7 – Схема інформаційних потоків Клієнтська частина (браузер) відправляє заповнену форму з даними на веб-сервер. На веб-сервері дані обробляються за допомогою php-скриптів. PHP-скрипти на основі отриманих даних формують SQL-запити і відправляють їх до сервера бази даних. Сервер бази даних отримує текст SQL-запитів, обробляє їх, а результат виконання цих запитів відправляє назад до веб-серверу. На основі отриманого результату веб-сервер формує HTML-сторінку, яку надсилає користувачу у веб-браузер. За допомогою такої взаємодії клієнт не бачить код php-скриптів, а тільки результат, який вони повертають. На відміну від php-скриптів, javascript виконується на стороні клієнта, а не сервера. Тому клієнт має можливість бачити код цих скриптів. За допомогою PHP-скриптів відбувається підключення до бази даних MySQL. Всі функції, що забезпечують взаємодію між PHP й MySQL, винесені в окрему бібліотеку. Послідовність кроків для підключення до бази даних і керування табличними даними, наступна: встановлення зв'язку з БД; формування запиту; надсилання запиту до БД; обробка результату, отриманого від БД. Для підключення до бази даних потрібні наступні параметри: тип бази даних; ім'я хост-вузла; ім'я користувача; пароль користувача; назва бази даних. Отримавши необхідну інформацію від бази даних завершується з’єднання з MySQL, після цього на основі отриманої інформації формується HTML-документ [3]. HTML документ складається із трьох частин: декларація типу документа (англ. Document type declaration, Doctype), на самому початку документа, в якій визначається тип документа (DTD), наприклад, HTML 4.01 Strict; шапка HTML документа (HEAD), в якій записано загальні технічні відомості або додаткова інформація про документ, яка не відображається безпосередньо в браузері; тіло HTML документа (BODY), в якому міститься основна інформація документа [4]. Далі опишемо структуру програмного продукту. Структура розроблюваного програмного продукту спроектована таким чином, що всі модулі будуть динамічно підключаються до головної сторінки програми. Тестова система буде мати наступні модулі: модуль для керування адміністраторами; модуль для керування зареєстрованими користувачами; модуль для роботи з тестом; модуль відправки повідомлень. Модуль для керування адміністраторами буде потрібен для додавання/видалення/редагування адміністраторів веб-додатку. В модулі для керування зареєстрованими користувачами буде відображатись інформація про користувачів, які проходили тестування, їх результат, також буде можливість керувати цими користувачами: редагувати/видаляти їх дані. Модуль для роботи з тестом – це головний модуль програми. В цьому модулі адміністратор зможе додавати/видаляти/редагувати запитання і відповіді до них, налаштовувати тест. В тестовій системі користувачу буде надана можливість відправити свій результат другу. На сьогодні такий сервіс є популярним в мережі Інтернет. За відправку повідомлень буде відповідати програмний модуль для відправки повідомлень. Модулі тестової системи будуть організовані папками, в яких будуть міститись відповідні класи та файли. Програмний модуль для керування адміністраторами буде містити наступні класи та файли: клас для роботи керування адміністраторами; файл, де відбувається перевірка на введення ПІП; файл для перевірки введеного логіна (чи доступний користувачу введений логін); файл, для перевірки введення паролю та перевірки співпадання повторного паролю. Модуль для керування зареєстрованими користувачами буде містити наступні класи та файли: клас для роботи керування зареєстрованими користувачами; клас для авторизації зареєстрованих користувачів; файл, де відбувається перевірка на введення ПІП; файл для перевірки введеного логіна; файл, для перевірки введення паролю та перевірки співпадання повторного паролю. Модуль для роботи з тестом буде містити наступні класи та файли: клас для роботи з тестом; файл конфігурації тесту. Програмний модуль для відправки повідомлень буде містити наступні класи та файли: клас для відправки повідомлень; файл для перевірки введених даних; капча – клас для розпізнавання комп’ютерів і людей; файл конфігурації капчі для сайту; файл конфігурації капчі для системи управління; файл для налаштування шрифту капчі. Також для тестової системи будуть розроблені інші класи, які не належатимуть перечисленим модулям, а будуть інтегровані у тестову систему. Ними являються: клас для доступу в систему управління; клас для роботи з базою даних; клас для навігації по сторінкам. Схема взаємозв’язку програмних модулів тестової системи наведена на рисунку 2.8. Рисунок 2.8 – Схема взаємозв’язку програмних модулів тестової системи Схема взаємозв’язку програмних модулів системи управління тестом наведена на рисунку 2.9. Рисунок 2.9 – Схема взаємозв’язку програмних модулів системи управління тестом Дерево програмних модулів, які відображають структурну схему пакету, що містить програмні модулі різних класів, наведено на рисунку 2.10. Рисунок 2.10 – Дерево програмних модулів 2.3 Вибір засобів розробки інформаційної системи 2.3.1 Веб-сервер Apache Для розробки тестової системи використаний сервер 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. 2.3.2 СКБД 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 дозволяє представляти один і той же документ в різних стилях. До появи CSS, оформлення веб-сторінок здійснювалося безпосередньо усередині вмісту документа. Проте з появою CSS стало можливим розділення змісту і стилю документа. За рахунок цього нововведення стало можливим легко застосовувати єдиний стиль оформлення для схожих документів [15]. Переваги CSS розмітки: декілька дизайнів сторінки для різних пристроїв перегляду; зменшення часу завантаження сторінок сайту за рахунок перенесення правил представлення даних в окремий CSS-файл; простота подальшої зміни дизайну; додаткові можливості оформлення. Для оформлення веб-сторінок програмного продукту будуть використані “зовнішні” таблиці каскадних стилів, тобто стилі розміщенні в файлах стилів (файл.css) і підключені до веб-сторінок. Для створення таблиці каскадних стилів програмного продукту буде використаний блокнот Notepad++. Даний блокнот має підсвітку синтаксису CSS та підказки, що спрощують написання таблиць каскадних стилів. 2.3.5 Мова програмування JavaScript JavaScript – скриптова мова, що найчастіше використовується при створенні сценаріїв поведінки браузера, що вбудовуються у веб-сторінки. JavaScript має низку властивостей об'єктно-орієнтованої мови, але завдяки концепції прототипів підтримка об'єктів в ньому відрізняється від традиційних мов об’єктно-орієнтованого програмування. Крім того, JavaScript має ряд властивостей, притаманних функціональним мовам: функції як об'єкти першого рівня; об'єкти як списки; каррінг (currying); анонімні функції; замикання (closures) – що додають мові додаткову гнучкість. JavaScript має CІ-подібний синтаксис, але в порівнянні з мовою СІ має наступні корінні відмінності: функції як об'єкти першого класу; об'єкти, з можливістю інтроспекції і динамічної зміни типу через механізм прототипів; обробка винятків; автоматичне приведення типів та “прибирання сміття”; анонімні функції [16]. Мова JavaScript частіше використовується при розробці невеликих веб-додатків, коли потрібно виконати певні функції без перезавантаження веб-сторінки. Тому для розробки функцій програмного продукту буде використана мова JavaScript. 2.3.6 Мова програмування PHP Будь який веб-ресурс не обходиться без програмної частини, на яку покладені усі функції ресурсу. Функції системи створюються за допомогою мови програмування. Для розробки тестової системи було обрано одну із основних мов програмування для веб-ресурсів. PHP (“препроцесор гіпертексту”) – скриптова мова програмування, створена для генерації HTML-сторінок на веб-сервері та роботи з базами даних. В даний час підтримується переважною більшістю провайдерів хостингу. Входить в LAMP – “стандартний” набір для створення веб-сайтів (Linux, Apache, MySQL, PHP (Python або Perl)) [17]. Препроцесор – програма, яка виконує попередню обробку даних, для того, щоб вони могли використовуватись іншою програмою, наприклад, такою як компілятор. В області програмування для мережі Internet, PHP – одна з популярних скриптових мов завдяки своїй простоті, швидкості виконання та багатій функціональності. PHP відрізняється наявністю ядра і модулів, що підключаються, так званих “розширень”: для роботи з базами даних, сокетами, динамічною графікою, криптографічними бібліотеками, документами формату PDF і т.п. Існують сотні розширень, проте в стандартне постачання входить лише декілька десятків тих, що добре зарекомендували себе. Інтерпретатор PHP підключається до веб-серверу або через модуль, створений спеціально для цього сервера, наприклад, для Apache або IIS, або як CGI-додаток. Синтаксис PHP подібний синтаксису мови СI. Деякі елементи, такі як асоціативні масиви і цикл foreach, запозичені з Perl. Для створення програмного продукту буде використана мова програмування PHP версії PHP 5, оскільки вона має суттєві зміни і переваги: оновлення ядра Zend (Zend Engine 2), що істотно збільшило ефективність інтерпретатора; введена підтримка мови розмітки XML; повністю перероблені функції ООП, які стали багато в чому схожі з моделлю, використовуваною в Java; введена деструкція, відкриті, закриті та захищені члени і методи, остаточні члени і методи, інтерфейси і клонування об'єктів [18]. Для створення php-скриптів буде використаний блокнот Notepad++. Даний блокнот має підсвітку синтаксису PHP та підказки, що спрощують написання програмного коду. 3 Реалізація програмного продукту 3.1 Структура і функціональне призначення модулів системи, їх взаємозв’язок Розроблюваний програмний продукт складається з багатьох модулів, які містять класи, функції для оброблення даних та скриптів, які працюють з цими модулями. Усі класи знаходяться в різних файлах і їх назва починається з префікса «cl_». Всі класи наслідуються від головного класу, драйвера бази даних MySQL mysqldriver.php, який в свою чергу реалізує абстрактний клас abstract.dbdriver.php. Для кожного модуля існує окремий файл index.php, який працює з відповідним модулем. Веб-додаток складається з таких модулів та класів: а) модуль для керування адміністраторами – admin: cl_administrators.php – клас для керування адміністраторами; checkFIO.php – файл для перевірки введення ПІП; checkLogin.php – файл для перевірки введеного логіна (чи доступний такий логін користувачу); checkPassword.php – файл для перевірки введення паролю та перевірки співпадання повторного паролю; б) модуль для керування зареєстрованими користувачами – users: cl_users.php – клас для керування користувачами; cl_autorize.php – клас для авторизації користувачів; checkFIO.php – файл для перевірки введення ПІП; checkLogin.php – файл для перевірки введеного логіна (чи доступний такий логін користувачу); checkPassword.php – файл, для перевірки введення паролю та перевірки співпадання повторного паролю; в) модуль для роботи з тестом – test: cl_test.php – клас для роботи з тестом; test_config.php – файл конфігурації тесту; г) cl_authorization.php – клас для доступу в систему управління; д) cl_db.php – клас, який відповідає за підключення і відключення від бази даних і підключає драйвер бази даних; е) cl_navigation.php – клас для навігації по сторінкам; є) модуль відправки повідомлень – mailer: class.phpmailer.php – клас для відправки повідомлень; FriendMail.php – клас для перевірки введених даних, який використовує клас class.phpmailer.php; kcaptcha.php – клас для розпізнавання комп’ютерів і людей; kcaptcha_config.php – файл конфігурації капчі для сайту; kcaptcha_config_login.php – файл конфігурації капчі для системи управління; font_preparer.php – файл для налаштування шрифту капчі. Веб-додаток складається з наступних файлів: index.php – головна сторінка веб-додатку; test.php – сторінка тестування; timershow.php – файл, який показує час проходження тесту; finish.php – сторінка результату тестування; check.php – файл для авторизації; main.php – головна сторінка системи управління; logout.php – файл, який видаляє дані з сесії, викликається при виході з системи управління; config.php – файл налаштування, де зберігаються параметри доступу до бази даних; jquery.js – бібліотека JavaScript, яка призначена для взаємодії JavaScript та HTML; jquery.alerts.js – плагін для jquery, який задає стиль стандартним діалоговим вікнам; style.css – таблиця стилів для сайту; main.css – таблиця стилів для системи управління. Наведемо схему головного меню системи управління (рисунок 3.1).
Рисунок 3.1 – Схема головного меню системи управління 3.2 Розробка програмних модулів Опишемо функції програмних класів, які містяться в модулях тестової системи. Файл cl_administrators.php містить наступні функції: SelectData($table_names, $cond_names, $limit_from, $limit_count) – відповідає за вибірку інформації про адміністраторів, має параметри: назва таблиці, умова вибору даних, позиція з якої вибирати та кількість записів; DeleteData($table_names, $list) – призначена для видалення даних про адміністраторів, має параметри: назва таблиці, масив номерів записів; InsertData($table_names, $list_values) – відповідає за додавання записів, має параметри: назва таблиці, значення полів відповідно; Updatedata($table_names, $list_values, $cond_names) – призначена для редагування записів про адміністраторів, має параметри: назва таблиці, значення полів, умова редагування; Showdata($limit_from, $limit_count, $query_string) – відповідає за відображення інформації про адміністраторів, має параметри: позиція з якої показувати записи, кількість записів, рядок запиту. Файл cl_users.php містить наступні функції: SelectData($table_names, $cond_names, $limit_from, $limit_count) – відповідає за вибірку інформації про зареєстрованих користувачів, має параметри: назва таблиці, умова вибору даних, позиція з якої вибирати дані та кількість записів; DeleteData($table_names, $list) – призначена для видалення даних про користувачів, має параметри: назва таблиці, масив номерів записів; InsertData($table_names, $list_values) – відповідає за додавання записів, має параметри: назва таблиці, значення полів відповідно; Updatedata($table_names, $list_values, $cond_names) – призначена для редагування записів про користувачів, має параметри: назва таблиці, значення полів, умова редагування; Showdata($limit_from, $limit_count, $query_string) – відповідає за відображення інформації про зареєстрованих користувачів, має параметри: позиція з якої показувати записи, кількість записів, рядок запиту. Файл cl_autorize.php містить наступні функції: authorize() – не має параметрів, призначена для авторизації зареєстрованих користувачів. Файл cl_test.php містить наступні функції: FileRead($file) – призначена для читання з файлу, має параметр – шлях до файлу; SelectAllId() – не має параметрів, призначена для вибірки номерів записів всіх питань; SelectAllIdL() – не має параметрів, призначена для вибірки номерів записів легких запитань; SelectAllIdM() – не має параметрів, призначена для вибірки номерів записів середніх по складності запитань; SelectAllIdC()– не має параметрів, призначена для вибірки номерів записів тяжких по важкості запитань; ForRead() – не має параметрів, повертає кількість питань, яку потрібно показати за сеанс; SelectPoint($perem1, $perem2) – відповідає за вибірку кількості балів за відповідь, має параметри: номер питання, номер варіанта відповіді; Calculation($perem1, $perem2) – призначена для підрахунку кількості балів за відповідь, має параметри: вага варіанта відповіді, кількість відображених запитань відповідно; ShowSuperRatingMain() – призначена для відображення рейтингу лідерів на головній сторінці; ShowRatingMain() – призначена для відображення рейтингу інших учасників на головній сторінці; ShowSuperRating() – призначена для відображення рейтингу лідерів на інших сторінках тестової системи; ShowRating() – призначена для відображення рейтингу учасників; SaveRating($id, $mark, $date, $time) – відповідає за збереження рейтингу учасників, має параметри: код учасника, бал, дата, час; CountRating() – не має параметрів, призначена для підрахунку записів в рейтингу; ShowTest($perem) – відповідає за відображення запитань і відповідей, має параметр – код запитання. Програмний код файлу cl_test.php наведено в додатку А. Файл cl_authorization.php містить функцію authorization_check. Її синтаксис наступний: authorization_check($users,$password). Ця функція призначена для авторизації адміністраторів в систему управління, має параметри: логін і пароль. Файл kcaptcha.php містить наступні функції: KCAPTCHA() – призначена для генерування кодового слова від автоматичного відправлення повідомлень; getKeyString() – призначена для відображення згенерованого кодового слова. 3.3 Інструкція користувача Для початку розпишемо інструкцію встановлення та налаштування тестової системи. По-перше, весь каталог, де розміщується веб-додаток, копіюємо в потрібний каталог на веб-сервері, наприклад папка “testing”. Далі створюємо базу даних, через sql-запити, або ж через менеджер БД phpmyadmin. Після створення бази даних необхідно експортувати таблиці із zip архіву “DB/testing.sql” для того, щоб не набирати їх вручну. Далі потрібно налаштувати параметри доступу до БД. Для цього необхідно відкрити файл “config/config.php” і задати наступні параметри: тип БД (mysql), ім’я хоста (localhost), ім’я користувача (root), пароль (якщо є), назву БД, префікс БД (якщо потрібно). Далі перейдемо до інструкції експлуатації програмного продукту. Для користувачів та адміністраторів розроблені різні сторінки доступу. Користувачу при завантажені веб-додатку доступна головна сторінка тестування, з якої він починає роботу. Програмний код головної сторінки наведено в додатку Б. Користувач може пройти тестування і дізнатись професійну придатність програміста. Тестування починається після натиснення кнопки “розпочати тестування”, зображеної на рисунку 3.2.
Рисунок 3.2 – Початок тестування Після натиснення кнопки, користувач розпочинає тестування. Відповідаючи на запитання, користувач повинен вибрати один із запропонованих варіантів відповіді, клацаючи по цьому варіанті. Час для проходження тесту необмежений, а таймер призначений просто для відображення пройденого часу. Програмний код сторінки тестування наведено в додатку В.
Рисунок 3.3 – Результат тестування Після того, як користувач дав відповіді на всі запитання (їх кількість задається в системі управління), він бачить результат. Приклад результату зображений на рисунку 3.3.
Рисунок 3.4 – Форма реєстрації Далі, якщо користувач хоче зберегти свій результат, йому потрібно зареєструватись (рисунок 3.4). Якщо користувач вже зареєстрований, то йому необхідно авторизуватись (рисунок 3.5). Рисунок 3.5 – Форма авторизації Якщо виникне ситуація, коли користувач забуде свій пароль, то він може скористуватись формою для нагадування пароля, що зображена на рисунку 3.6. Новий пароль надійде користувачу на вказаний при реєстрації email. Рисунок 3.6 – Форма нагадування паролю Також користувач може відправити результат свого тестування другу, заповнивши необхідні дані (рисунок 3.7). Рисунок 3.7 – Форма для відправки даних другу Далі розпишемо інструкцію для адміністратора. Для початку роботи адміністратор має авторизуватись. Для цього необхідно ввести логін та пароль в форму, подану на рисунку 3.8. Форма авторизації знаходиться на сторінці системи управління. Доступ до системи управління наступний, логин – developer, пароль – developer. Рисунок 3.8 – Форма для авторизації адміністраторів Для керування зареєстрованими користувачами необхідно скористуватись пунктом меню “Пользователи сайта”, розташованим в верхній панелі (рисунок 3.9).
Рисунок 3.9 – Керування користувачами В даному пункті меню можна переглядати інформацію про користувачів, а також керувати ними (рисунок 3.10). Рисунок 3.10 – Панель керування користувачами Для керування тестовою системою необхідно обрати пункт меню “Тесты”. В цьому пункті можна додавати/видаляти/редагувати запитання і відповіді, переглядати інформацію про запитання, а також керувати ними (рисунок 3.11). Рисунок 3.11 – Панель керування запитаннями Для додавання/редагування запитань можна скористатись формою зображеною на рисунку 3.12. Рисунок 3.12 – Редагування запитання При додаванні запитання потрібно ввести текст запитання, по необхідності можна задати картинку до тесту, а також додати варіанти відповіді та рівень складності запитання. Але потрібно пам’ятати, що правильний варіант відповіді для запитання має бути один. Для налаштування тестування необхідно скористатись пунктом меню “настройки”, розташованим в верхньому меню. В даному пункті меню задаються наступні параметри: кількість запитань, які показувати за сеанс, кількість лідерів та інших учасників в рейтингу. Дана форма зображена на рисунку 3.13.
Рисунок 3.13 – Налаштування запитань 3.4 Вимоги до технічних засобів Вимоги до технічних засобів можна поділити на такі категорії: а) вимоги до програмного забезпечення сервера: повинен бути встановлений та налаштований сервер Apache; повинен бути встановлений PHP 4.1.0 або вище; підтримка сесій; MySQL 3.23.32 або вище; б) вимоги до апаратного забезпечення сервера: під’єднання до локальної мережі чи мережі Internet; обсяг оперативної пам'яті від 256 MB; процесор не нижче Pentium III; вільне місце на жорсткому диску для зберігання проекту (приблизно 7 MB); вільне місце на жорсткому диску для зберігання бази даних; в) вимоги до програмного забезпечення клієнта: наявність веб-браузера; г) вимоги до апаратного забезпечення клієнта: під’єднання до локальної мережі чи мережі Internet; обсяг оперативної пам'яті від 128 MB. 4 Організаційно-економічний розділ 4.1 Розрахунок кошторису витрат на розробку тестової системи визначення професійної придатності програмістів Основними витратами на розробку тестової системи визначення професійної придатності програмістів є: основна заробітна плата розробників; додаткова заробітна плата всіх розробників, які приймали участь в розробці нового технічного рішення; амортизація обладнання, комп'ютерів та приміщень, які використовувались для розробки нового технічного рішення; оренда обладнання, устаткування, приміщень, якщо вони були використані в ході здійснення розробки нового технічного рішення; витрати на силову електроенергію, якщо ця стаття має суттєве значення для розробки нового технічного рішення; інші витрати. Основна заробітна плата розробників обчислюється за формулою, грн: ,(4.1) де М – місячний посадовий оклад конкретного розробника, грн; Тр – число робочих днів в місяці, приблизно Тр=21–23 дні; t – кількість днів роботи розробника. Приймаємо, що кількість робочих днів Тр=22. Кількість днів роботи над проектом подані у таблиці 4.1. Таблиця 4.1 – Кількість днів роботи над проектом
Далі розрахуємо заробітну плату кожному із учасників проекту, згідно із кількістю їх робочих днів. Керівник проекту: (грн) Програміст: (грн) Розрахунки по нарахуванню заробітної плати учасникам проекту наведені у таблиці 4.2. Таблиця 4.2 – Нарахування заробітної плати учасникам проекту
Далі обчислимо додаткову заробітну плата всіх розробників, які приймали участь в розробці нового технічного рішення. Приймаємо додаткову заробітну плату у розмірі 15% від основної заробітної плати всіх розробників, грн: (4.2) Отже, (грн) Нарахування на заробітну плату розробників, які приймали участь в розробці нового технічного рішення. Так, як робота виконувалась в нормальних умовах, то додаткову заробітну плату приймаємо у розмірі 37,5% від основної заробітної плати всіх розробників, грн: (4.3) Отже, (грн) Для розробки програмного продукту протягом одного кварталу використовувались необхідні технічні та додаткові засоби. В спрощеному вигляді амортизаційні відрахування по кожному виду обладнання розраховані за формулою, грн: ,(4.4) де Ц – балансова вартість обладнання, приміщень, грн; На – квартальна норма амортизаційних відрахувань для даного виду обладнання, приміщень, %; Розрахуємо величину амортизаційних відрахувань: для комп’ютера: (грн) для принтера: (грн) для офісних меблів: (грн) Зроблені розрахунки подані в таблиці 4.3. Таблиця 4.3 – Розрахунок амортизаційних відрахувань
Для забезпечення нормальних умов праці було орендоване приміщення. Витрати на оренду приміщення розраховані за формулою, грн: ,(4.5) де Ц – балансова вартість даного виду приміщень, грн; Но – квартальна ставка орендної плати для даного виду приміщень, %. Отже, (грн) Зроблені розрахунки подані в таблиці 4.4. Таблиця 4.4 – Розрахунок орендної плати
Інші витрати охоплюють: загальновиробничі витрати (витрати на управління, оплата службових відряджень, витрати на утримання, ремонт та експлуатацію основних засобів, витрати на опалення, освітлення, водопостачання); адміністративні витрати (проведення зборів, оплата консультацій та аудиторcьких послуг, витрати на зв’язок); та інші операційні витрати (штрафи, матеріальна допомога). Виходячи з перелічених вище витрат було вирішено прийняти інші витрати у розмірі 200% від суми витрат на заробітну плату, грн: (4.6) Отже, (грн) Сума всіх статей витрат та загальна сума дають загальні витрати на розробку нового технічного рішення, грн: (4.7) Отже, (грн) Враховуючи рентабельність у розмірі 25%, вартість розробки тестової системи визначення професійної придатності програмістів становитиме: (грн) Ціну продажу було вирішено прийняти 58000 грн. 4.2 Розрахунок експлуатаційних витрат тестової системи визначення професійної придатності програмістів Заробітна плата персоналу, розраховується за формулою, грн/рік: ,(4.8) де 12 – число місяців; М – місячний посадовий оклад інженерно-технічного працівника, грн; – частка часу, який витрачає працівник на обслуговування тестової системи визначення професійної придатності програмістів, приймаємо 0,6. Отже, (грн/рік) Додаткова заробітна плата. Приймаємо додаткову заробітну плату у розмірі 15% від основної заробітної плати всіх розробників, грн: (4.9) Отже, (грн) Нарахування на заробітну плату працівників. Так, як робота виконувалась в нормальних умовах, то додаткову заробітну плату приймаємо у розмірі 37,5% від основної заробітної плати всіх розробників, грн: (4.10) Отже, (грн) Амортизаційні відрахування для програмного продукту. В спрощеному вигляді амортизаційні відрахування для нематеріального активу розраховуються за формулою, грн/рік: ,(4.11) де Ц – балансова вартість нематеріального активу, за яку можна умовно прийняти вартість робіт зі створення тестової системи, грн; На – річна норма амортизації нематеріального активу, яку можна прийняти На=25%. Отже, (грн/рік) Інші витрати можна прийняти як 10% від загальної суми усіх попередніх витрат, грн: (4.12) Отже, (грн) Сума витрат за всіма статтями дає величину експлуатаційних витрат при використанні нового програмного продукту, грн/рік: (4.13) Отже, (грн/рік) Суми всіх статей витрат та загальна сума представленні у вигляді таблиці 4.6. Таблиця 4.6 – Загальні експлуатаційні витрати нового програмного продукту
Приймемо загальні експлуатаційні витрати при використанні тестової системи для визначення професійної придатності програмістів в розмірі 61000 грн. Розрахуємо експлуатаційні витрати при використанні вже існуючих програмних продуктів. Частку часу, який витрачає працівник на роботу з програмним забезпеченням, приймаємо 0,9. Заробітна плата працівників: (грн) Додаткова заробітна плата: (грн) Нарахування на заробітну плату працівників. Так, як робота виконувалась в нормальних умовах, то додаткову заробітну плату приймаємо у розмірі 37,5% від основної заробітної плати всіх розробників, грн: (4.14) Отже, (грн) Балансова вартість нематеріального активу, за яку можна умовно прийняти вартість існуючих програмних продуктів становить 10000 грн, річна норма амортизації нематеріального активу – 25%. Амортизаційні відрахування для існуючих програмних продуктів: (грн/рік) Інші витрати: (грн) Сума витрат за всіма статтями дає величину експлуатаційних витрат при використанні існуючих програмних продуктів, грн: (4.15) Отже, (грн/рік) Суми всіх статей витрат та загальна сума представленні у вигляді таблиці 4.7. Таблиця 4.7 – Загальні експлуатаційні витрати існуючих програмних продуктів
|