Дипломна робота молодшого спеціаліста



Скачати 242.39 Kb.
Дата конвертації23.10.2017
Розмір242.39 Kb.
ТипДиплом

Зразок оформлення титульного аркуша

КЛАСИЧНИЙ ПРИВАТНИЙ УНІВЕРСИТЕТ

КОЛЕДЖ
ДО ЗАХИСТУ ДОПУЩЕНО

Голова циклової комісії з розробки програмного забезпечення



______________С.Л. Хрипко

(підпис) (ініціали, прізвище)


_____________

(дата)


ДИПЛОМНА РОБОТА молодшого спеціаліста

_____________________________________________________________
_____________________________________________________________

(тема)


Виконав

ст. групи ______________________________________________________

(шифр) (дата) (підпис) (прізвище, ім'я, по батькові студента)
Спеціальність 5.05010301 – Розробка програмного забезпечення___
Керівник ______________________________________________________

(посада) (дата) (підпис) (прізвище, ініціали)

Нормоконтролер _______________________________________________

(дата) (підпис) (прізвище, ініціали)


Запоріжжя

201_
Додаток Б



Приклад оформлення завдання роботи

КЛАСИЧНИЙ ПРИВАТНИЙ УНІВЕРСИТЕТ

Коледж

Циклова комісія з розробки програмного забезпечення


ЗАТВЕРДЖУЮ

Голова циклової комісії з розробки програмного забезпечення



___________________С.Л. Хрипко

(підпис) (ініціали, прізвище)

”_____” ____________ 201_р.
З А В Д А Н Н Я

на дипломну роботу студенту (ці)

______________________________

(шифр групи)

____________________________________________

(Прізвище, ім’я, по батькові)

Напрям підготовки: 0501 «Інформатика та обчислювальна техніка»

Спеціальність: 5.05010301 – Розробка програмного забезпечення

Освітньо-кваліфікаційний рівень – молодший спеціаліст

Форма навчання – денна (заочна)

1. Тема дипломної роботи : Розробка Веб-додатку для тестування

Затверджена наказом по коледжу від “___”____________ 201__ р.

2. Термін здачі закінченої роботи ______________________________________

3. Цільова установка та загальний напрямок дипломної роботи

(для робіт технічного профілю також "вихідні дані")

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

Об’єкт дослідження _____________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

4.Структура та зміст дипломної роботи (перелік питань, які необхідно опрацювати).

ВСТУП

Розділ 1._______________________________________________________________________



1.1.  ________________________________________________________________________

________________________________________________________________________

1.2.  ________________________________________________________________________

________________________________________________________________________



    1. ________________________________________________________________________

________________________________________________________________________

Розділ 2. ______________________________________________________________________

______________________________________________________________________________

2.1. ________________________________________________________________________

________________________________________________________________________

Розділ 3. ______________________________________________________________________

______________________________________________________________________________

3.1. ________________________________________________________________________

________________________________________________________________________

ВИСНОВКИ


5. Календарний план виконання роботи

№ п/п

Назви частин та етапи роботи

Термін виконання

за планом

фактично

1.

Складання бібліографії та вивчення літературних джерел







3.

Збирання матеріалу на підприємстві







4.

Виконання вступу







5.

Виконання розділу 1







6.

Виконання розділу 2







7.

Виконання розділу 3







8.

Формулювання висновків







9.

Оформлення роботи, одержання відгуку та рецензії







10.

Подання роботи на кафедру







Дата видачі завдання “___”____________201__р.

Керівник дипломної роботи _________________________________

Підпис, розшифровка підпису

Завдання прийняв до виконання _____________________________



Підпис студента (ки)



РЕФЕРАТ
Дипломна робота молодшого спеціаліста: 80 с., 12 рис., 7 табл., 50 джерел, 2 додатки.

Об’єктом дослідження є веб-додаток для тестування знань.

Метою роботи є створення веб-додатку для проведення тестування.

Тестування знань проводиться у всіх навчальних закладах, а також у багатьох інших місцях де необхідне тестування знань

Для вивчення даної проблеми мною було створено веб-додаток на мові Java, який дозволяє проходити тести з різних предметів за допомогою веб-браузера. Додаток зчитує тести з текстових файлів, які мають відповідне форматування, та автоматично розраховує отриманий бал. Додаток, який було створено в результаті виконання дипломної роботи молодшого спеціаліста, може бути застосована для тестування знань у будь-якій галузі. А додавати до нього тести може будь-який працівник, що має мінімальні навички роботи на комп‘ютері.
ТЕСТУВАННЯ, ВЕБ-ДОДАТОК, ДОДАТОК, МОВА ПРОГРАМУВАННЯ, JAVA.

Розділ 1 Аналіз альтернатив

Більшість наявних на даний момент систем тестування знаходяться на розважальних веб-сайтах і призначені для розважальних тестів, тож не мають великого функціоналу. Одна з найкращих систем тестування є частиною системи дистанційної освіти Moodle.

Moodle (акронім від Modular Object-Oriented Dynamic Learning Environment  модульне об'єктно-орієнтоване динамічне навчальне середовище) — навчальна платформа призначена для об'єднання педагогів, адміністраторів і учнів (студентів) в одну надійну, безпечну та інтегровану систему для створення персоналізованого навчального середовища[1].

Moodle — це безкоштовна, відкрита (Open Source) система управління навчанням. Вона реалізує філософію «педагогікисоціального конструктивізму»[2] та орієнтована насамперед на організацію взаємодії між викладачем та учнями, хоча підходить і для організації традиційних дистанційних курсів, а також підтримки очного навчання.

Moodle перекладена на десятки мов, в тому числі й на українську. Система використовується у 197 країнах світу

Тестові завдання системи Moodle

Тестове завдання  складова частина тесту, що відповідає вимогам до завдань у тестовій формі та пройшла обов’язкову перевірку статистичних властивостей.

Тестові завдання повинні відповідати певним вимогам:



  • однозначність завдань - текст тестового завдання не повинен допускати вільного трактування. Особа, яка тестується, не повинна замислюватися, в якому сенсі трактується сформульоване у тестовому завданні судження;

  • однозначність відповідей - повинна бути виключена можливість багатозначних відповідей;

  • відповідність вивченому навчальному матеріалу - не можна включати в тестове завдання відповіді, які на момент тестування особа, яка тестується, не може обґрунтувати;

  • підбор варіантів відповідей (дистракторів) - неправильні відповіді повинні конструюватися на основі типових помилок та повинні бути правдоподібними;

  • унікальність - питання не повинні повторювати формулювань підручника.

Тестові завдання з характеру формування відповідей розподіляються на завдання закритої, відкритої та комбінованої форм.

У завданні закритої форми особа робить вибір з запропонованого їй готового переліку варіантів відповідей.

У завданні відкритої форми особа сама генерує відповідь і додає її у поле тесту за допомогою клавіатури.

Комбіновані форми складаються з елементів закритої та відкритої форм.

Модуль діяльності Moodle Тест підтримує завдання наступного типу:

ЗАВДАННЯ ЗАКРИТОЇ ФОРМИ

Вибір з множини

Цей тип завдання потребує щоб особа, яка тестується, обрала одну або декілька відповідей із запропонованого набору варіантів. Кожен варіант відповіді повинен може мати свою вагу оцінювання. Загальна оцінка за завдання складається з оцінок обраних варіантів.

Тестові завдання цього типу мають декілька варіантів представлення на сторінці тестування. На наступних рисунках показані можливі варіанти представлення.

вибір з множини

Тестове завдання вибору з множини з вибором однієї вірної відповіді.



вибір з множини 2

Тестове завдання вибору з множини з вибором декількох вірних відповідей.



прпущене слово

Тестове завдання вибору з множини з вибором однієї вірної відповіді та з вказівкою місця, де цей варіант повинен знаходитися (пропущене слово).

Вибір Вірно - не вірно

Цей тип завдання потребує щоб особа дала однозначну відповідь (вірно - не вірно) на поставлене питання. У завданні можна використовувати графічні зображення. Варіант вигляду тестового завдання "Вірно - не вірно" показано на рисунку.



вірно - не вірно

Вибір відповідності

У завданні цього типу на задану тему створюється множина питань і множина правильних відповідей на ці питання. При тестуванні для кожного питання треба обрати із переліку відповідну правильну відповідь. Варіант вигляду тестового завдання "Вибір відповідності" показано на рисунку.

вибір відповідності

Випадкові завдання короткої відповіді

Цей тип завдання по формі його представлення подібний завданню на вибір відповідності. Він базується на завданнях відкритої форми Коротка відповідь, які створені у конкретному розділі банку тестових завдань.

ЗАВДАННЯ ВІДКРИТОЇ ФОРМИ

Коротка відповідь

У завданні цього типу особа повинна з клавіатури відповісти на поставлене питання - додати необхідне слово чи словосполучення. У завданні можна використовувати графічні зображення. Завдання може мати декілька правильних відповідей з різним значенням оцінок. Відповіді можуть бути чутливими до регістру (великі чи маленькі літери). Варіант вигляду тестового завдання "Коротка відповідь" показано на рисунку.



коротка відповідь

Числова відповідь

Цей тип завдання є окремим випадком завдання з короткою відповіддю. Своєрідність завдання у тому, що відповідь повинна бути представлена у вигляді числа. Для числової відповіді може бути встановлена припустима похибка. Останнє дозволяє встановити безперервний ряд відповідей. Варіант вигляду тестового завдання "Числова відповідь" показано на рисунку.

числова відповідь

Розрахунок за формулою

У тестовому завданні цього типу створюється математична формула, відповідно до якої особа повинна провести розрахунок. Значення змінних, які входять у формулу, задаються випадково. Використовуючи ці значення особа виконує розрахунок і числовий результат заносить у поле відповіді. Варіант вигляду тестового завдання "Розрахунок за формулою" показано на рисунку.

розрахунок за формулою

Есе


Відповідь на це тестове завдання особа створює у формі короткого текстового есе (можна використовувати графічні зображення). Оцінка за есе проставляється викладачем вручну. Варіант вигляду тестового завдання "Есе" показано на рисунку.

есе

ЗАВДАННЯ КОМБІНОВАНОЇ ФОРМИ

Вкладені питання

Завдання цього типу створюється шляхом вставки у текст його опису так званих вкладених питань - вбудованих тестових завдань. У якості вкладених питань можуть бути завдання відкритої та закритої форм. Вкладення питань здійснюється шляхом використання спеціальної мови їх опису. Кожне вкладене питання має свою оцінку.



вкладена відповідь
Отже система тестування представлена в Moodle має значний набір функцій, але вона має значний недолік: вона працює виключно з сайтами, що працюють на системі Moodle. Це дуже сильно обмежує користувача, адже будь-які обмеження Moodle будуть обмеженнями цієї системи.
2. Вибір мови програмування та середи розробки

2.1 Вибір мови програмування

Для розробки системи можливо було використати мову C++ або Java

Мова С++ з появою перших трансляторів знайшла відразу ж дуже широке розповсюдження, на ній було створено величезну кількість програм і застосувань. У міру накопичення досвіду створення великих програмних систем спливли недоліки, які спонукали до пошуку альтернативних рішень. Таким альтернативним рішенням стала мова Java, яка в деяких областях стала конкурувати у популярності з C++, а фірма Майкрософт запропонувала мову C# як нову мову, що розвиває принципи C++ і що використовує переваги мови Java. Надалі з'явилася мова Nemerle, об'єднуюча переваги C# з можливістю функціонального програмування. Останнім часом з'явилася спроба об'єднання ефективності C++, безпеки і швидкості розробки, як в Java і C# — була запропонована мова D, яка поки не отримала широкого визнання.



Мова Java володіє такими особливостями, яких немає в мові C++ :

  • Java є типобезпечною мовою. Типобезпека гарантує відсутність в програмах помилок, що важко знайти і які пов'язані з невірною інтерпретацією пам'яті комп'ютера. Це робить процес розробки надійнішим і передбаченим, а отже швидшим. Так само це дозволяє привертати до розробки програмістів, що мають меншу кваліфікацію і мати великі групи розробників.

  • Java-код компілюються спочатку не в машинний код, а в певний проміжний код, який надалі інтерпретується або компілюється, тоді як багато C++ компіляторів орієнтіровані на компіляцію в машинний код заданої платформи.

  • У мові Java є чіткі певні стандарти на введення-виведення, графіку, геометрію, діалог, доступ до баз даних і інших типових застосувань. Завдяки цим особливостям, застосунки на Java мають значно кращу кросплатформенність, ніж С++, і часто, будучи написані для певного комп'ютера і операційної системи, працюють під іншими системами без змін. Програмісти, що пишуть на мові Java, не залежать від пакетів, нав'язаних розробниками компіляторів на дане конкретне середовище, що різко спрощує портування програм.

  • У мові Java реалізована повноцінна збірка сміття, якої немає в C++. Немає в С++ і засобів перевірки правильності вказівників. З іншого боку, C++ володіє набором засобів (конструктори і деструктори, стандартні шаблони, посилання), що дозволяють майже повністю виключити виділення і звільнення пам'яті вручну і небезпечні операції з вказівниками. Проте таке виключення вимагає певної культури програмування, тоді як в мові Java воно реалізується автоматично.

  • Мова Java є чисто об'єктно-орієнтованою, тоді як C++ підтримує як об'єктно-орієнтоване, так і процедурне програмування.

  • В C++ відсутня повноцінна інформація про типи під час виконання RTTI. Цю можливість можна було б реалізувати в C++, маючи повну інформацію про типи під час компіляції CTTI.

  • У C++ є можливість введення призначеного для користувача синтаксису за допомогою #define, що може привести до того, що модулі у великих пакетах програм стають сильно пов'язані один з одним. Це різко знижує надійність пакетів і можливість організації розділених модулів. З іншого боку, С++ надає достатньо засобів (константи, шаблони, вбудовані функції) для того, щоб практично повністю виключити використання #define.

Ці відмінності призводять до запеклих суперечок між прихильниками двох мов про те, яка мова найкраща. Прихильники Java вважають ці особливості перевагами; прихильники C++ вважають, що у багатьох випадках ці особливості є недоліками, зокрема

  • Ціною переносимості є вимога наявності на комп'ютері віртуальної Java-машини, що приводить до уповільнення обчислень і практичної неможливості використання нових можливостей апаратної архітектури.

  • Збірка сміття призводить до втрати ефективності.

  • Стандарти на графіку, доступ до баз даних тощо є недоліком, якщо програміст хоче визначити свій власний стандарт.

  • Вказівники у багатьох випадках є могутніми, або навіть необхідними засобом, а їхнє безконтрольне використання небезпечне лише в невмілих руках.

  • Підтримка процедурного програмування є корисною.

Далеко не всі програмісти є прихильниками однієї з мов. На думку більшості програмістів, Java і C++ не є конкурентами, тому що мають різні області застосування. Інші вважають, що вибір мови для багатьох завдань є питанням особистого смаку.

Для моєї задачі більш зручною буде мова Java. Незалежність від архітектури дозволить проходити тестування на мобільних пристроях, що є важливим у наш час, а деякі рішеня, такі як Java Servlet полегшать створення додатку. Отже розглянемо мову Java більш детально.

У створенні мови програмування Java було чотири початкові цілі:[6]


  1. Синтаксис мови повинен бути «простим, об'єктно-орієнтовним та звичним».

  2. Реалізація має бути «безвідмовною та безпечною», а також «високопродуктивною».

  3. Повинна зберегтися «незалежність від архітектури та портативність».

  4. Мова має бути «динамічною, інтерпретованою та підтримувати мультиопрацьовування».

Платформа Java

Під «незалежністю від архітектури» мається на увазі те, що програма, написана на мові Java, працюватиме на будь-якій підтримуваній апаратній чи системній платформі без змін у початковому коді та перекомпіляції.

Цього можна досягти, компілюючи початковий Java код у байт-код, який являє собою спрощені машинні команди. Потім програму можна виконати на будь-якій платформі, що має встановлену віртуальну машину Java, яка інтерпретує байткод у код, пристосований до специфіки конкретної операційної системи і процесора. Зараз віртуальні машини Java існують для більшості процесорів і операційних систем.

Стандартні бібліотеки забезпечують загальний спосіб доступу до таких платформозалежних особливостей, як обробка графіки, багатопотоковість та роботу з мережами. У деяких версіях задля збільшення продуктивності JVM, байт-код можна компілювати у машинний код до або під час виконання програми.

Основна перевага використання байт-коду — це портативність. Тим не менш, додаткові витрати на інтерпретацію означають, що інтерпретовані програми будуть майже завжди працювати повільніше, ніж скомпільовані у машинний код, і саме тому Java одержала репутацію «повільної» мови. Проте, цей розрив суттєво скоротився після введення декількох методів оптимізації у сучасних реалізаціях JVM.

Одним із таких методів є англ. just-in-time (JIT) компіляція, що перетворює Java байт-код у машинний під час першого запуску програми, а потім кешує його. У результаті, така програма запускається і виконується швидше, ніж простий інтерпретований код, але ціною додаткових витрат на компіляцію під час виконання. Складніші віртуальні машини також використовують динамічну рекомпіляцію, яка полягає в тому, що В. М. аналізує поведінку запущеної програми й вибірково рекомпілює та оптимізує певні її частини. З використанням динамічної рекомпіляції можна досягти більшого рівня оптимізації, ніж за статичної компіляції, оскільки динамічний компілятор може робити оптимізації на базі знань про довкілля періоду виконання та про завантажені класи. До того ж, він може виявляти так звані гарячі точки (англ. hot spots) —- частини програми, найчастіше внутрішні цикли, які займають найбільше часу при виконанні. JIT компіляція та динамічна рекомпіляція збільшує швидкість Java програм, не втрачаючи при цьому портативності.

Існує ще одна технологія оптимізації байткоду, широко відома як статична компіляція, або англ. ahead-of-time (AOT) компіляція. Цей метод передбачає, як і традиційні компілятори, безпосередню компіляцію у машинний код. Це забезпечує хороші показники в порівнянні з інтерпретацією, але за рахунок втрати переносності: скомпільовану таким способом програму можна запустити тільки на одній, цільовій платформі.

Швидкість офіційної віртуальної машини Java значно покращилася з моменту випуску ранніх версій, до того ж, деякі випробування показали, що продуктивність JIT компіляторів у порівнянні зі звичайними компіляторами у машинний код майже однакова. Проте ефективність компіляторів не завжди свідчить про швидкість виконання скомпільованого коду, тільки ретельне тестування може виявити справжню ефективність у даній системі.

Об'єктність

На противагу C++, Java об'єктно-орієнтованіша. Всі дані і дії групуються в класи об'єктів. Виключенням з повної об'єктності (як скажімо в Smalltalk) є примітивні типи (int, float тощо). Це було свідомим рішенням проектувальників мови задля збільшення швидкості. Через це, Java не вважається повністю об'єктно-орієнтовною мовою.

У Java всі об'єкти є похідними від головного об'єкта (він називається просто Object), з якого вони успадковують базову поведінку і властивості.

Хоча у C++ вперше стало доступне множинне успадкування, але у Java можливе тільки одинарне успадкування, завдяки чому виключається можливість конфліктів між членами класу (методи і змінні), які успадковуються від базових класів.

Безпека

У намірах проектувальників Java мала замінити C++ — об'єктного наступника мови C. Проектувальники почали з аналізу властивостей C++, які є причиною найбільшого числа помилок, щоби створити просту, безпечну і безвідмовну мову програмування.



В Java існує система винятків або ситуацій, коли програма зустрічається з неочікуваними труднощами, наприклад:

  • операції над елементом масиву поза його межами або над порожнім елементом

  • читання з недоступного каталогу або неправильної адреси URL

  • ввід недопустимих даних користувачем

Одна з особливостей концепції віртуальної машини полягає в тому, що помилки (виключення) не призводять до повного краху системи. Крім того, існують інструменти, які «приєднуються» до середовища періоду виконання і кожен раз, коли сталося певне виключення, записують інформацію з пам'яті для відлагодження програми. Ці інструменти автоматизованої обробки виключень надають основну інформацію щодо виключень в програмах на Java.

Проте, мову програмування Java не рекомендується використовувати в системах, збій в роботі яких може призвести до смерті, травм чи значних фізичних ушкоджень (наприклад, програмне забезпечення для керування атомними електростанціями, польотами, систем життєзабезпечення чи систем озброєння) через ненадійність програм, написаних на мові програмування Java.[8], пункт ліцензії Microsoft 7.7.h.

Автоматичне керування пам'яттю

Java використовує автоматичний збирач сміття для керування пам'яттю під час життєвого циклу об'єкта. Програміст вирішує, коли створювати об'єкти, а віртуальна машина відповідальна за звільнення пам'яті після того, як об'єкт стає непотрібним. Коли до певного об'єкта вже не залишається посилань, збирач сміття може автоматично прибирати його із пам'яті. Проте, витік пам'яті все ж може статися, якщо код, написаний програмістом, має посилання на вже непотрібні об'єкти, наприклад на об'єкти, що зберігаються у діючих контейнерах.

Збирання сміття дозволене у будь-який час. В ідеалі воно відбувається під час бездіяльності програми. Збірка сміття автоматично форсується при нестачі вільної пам'яті в купі для розміщення нового об'єкта, що може призводити до кількасекундного зависання. Тому існують реалізації віртуальної машини Java з прибиральником сміття спеціально створеним для програмування систем реального часу.

Java не має підтримки вказівників у стилі C/C++. Це зроблено задля безпеки й надійності, аби дозволити збирачу сміття переміщувати вказівникові об'єкти.

На мою думку кращим вибором буде мова Java, адже її незалежність від платформи дозволить, наприклад, проходити тестування на мобільних пристроях, що є важливим в наш час. До того ж деякі особливості Java, такі як Java Servlet можуть значно полегшити роботу над проектом.
2.2. Вибір середовища розробки

Найбільш популярними середовищами для розробки на Java є NetBeans та Eclipse, розглянемо обидві.

Eclipse (вимовляється «і-клі́пс», від англійського «затемнення») — вільне модульне інтегроване середовище розробки програмного забезпечення. Розробляється і підтримується Eclipse Foundation і включає проекти, такі як платформа Eclipse, набір інструментів для розробників на мові Java, засоби для управління сирцевими кодами, візуальні побудовники GUI тощо. Написаний в основному на Java, може бути використаний для розробки застосунків на Java і, за допомогою різних плаґінів, на інших мовах програмування, включаючи Ada, C, C++, COBOL, Fortran, Perl, PHP, Python, R, Ruby (включно з каркасом Ruby on Rails), Scala, Clojure та Scheme. Середовища розробки зокрема включають Eclipse ADT (Ada Development Toolkit) для Ada, Eclipse CDT для C/C++, Eclipse JDT для Java, Eclipse PDT для PHP.
Початок коду йде від IBM VisualAge[1], він був розрахований на розробників Java, складаючи Java Development Tools (JDT). Але користувачі могли розширяти можливості, встановлюючи написані для програмного каркасу Eclipse плагіни, такі як інструменти розробки під інші мови програмування, і могли писати і вносити свої власні плагіни і модулі.
Випущена на умовах Eclipse Public License, Eclipse є вільним програмним забезпеченням. Він став одним з перших IDE під GNU Classpath і без проблем працює під IcedTea.

Eclipse являє собою фреймворк для розробки модульних кросплатформових застосунків із низкою особливостей:


можливість розробки ПЗ на багатьох мовах програмування (рідною є Java);

крос-платформова;

модульна, призначена для подальшого розширення незалежним розробниками;

з відкритим сирцевим кодом;

розробляється і підтримується фондом Eclipse, куди входять такі постачальники ПЗ, як IBM, Oracle, Borland.

Спочатку проект розроблявся в IBM як корпоративний стандарт IDE, настановлений на розробки на багатьох мовах під платформи IBM. Потім проект було перейменовано на Eclipse і надано для подальшого розвитку спільноті.


Eclipse насамперед повноцінна Java IDE, націлена на групову розробку, має засоби роботи з системами контролю версій (підтримка CVS входить у поставку Eclipse, активно розвиваються кілька варіантів SVN модулів, існує підтримка VSS та інших). З огляду на безкоштовність, у багатьох організаціях Eclipse — корпоративний стандарт для розробки ПЗ на Java.
Друге призначення Eclipse — служити платформою для нових розширень. Такими стали C/C++ Development Tools (CDT), розроблювані інженерами QNX разом із IBM, засоби для підтримки інших мов різних розробників. Безліч розширень доповнює Eclipse менеджерами для роботи з базами даних, серверами застосунків та інших.
З версії 3.0 Eclipse став не монолітною IDE, яка підтримує розширення, а набором розширень. У основі лежать фреймворки OSGi, і SWT/JFace, на основі яких розроблений наступний шар — платформа і засоби розробки повноцінних клієнтських застосунків RCP (Rich Client Platform). Платформа RCP є базою для розробки різних RCP програм як торент-клієнт Azareus чи File Arranger. Наступний шар — платформа Eclipse, що є набором розширень RCP — редактори, панелі, перспективи, модуль CVS і модуль Java Development Tools (JDT).
Eclipse написана на Java, тому є платформо-незалежним продуктом, крім бібліотеки графічного інтерфейсу SWT, яка розробляється окремо для більшості поширених платформ. Бібліотека SWT використовує графічні засоби платформи (ОС), що забезпечує швидкість і звичний зовнішній вигляд інтерфейсу користувача.
Відповідно до IDC, із Eclipse працюють 2,3 мільйона розробників.
NetBeans IDE — вільне інтегроване середовище розробки (IDE) для мов програмування Java, JavaFX, C/C++, PHP, JavaScript, HTML5, Python, Groovy. Середовище може бути встановлене і для підтримки окремих мов, і у повній конфігурації. Середовище розробки NetBeans за умовчанням підтримує розробку для платформ J2SE і J2EE.
Поширюється у сирцевих текстах під ліцензіями GPLv2 і CDDL. Проект NetBeans IDE підтримувався і спонсорувався фірмою Sun Microsystems і після придбання Sun — Oracle, проте розробка NetBeans ведеться незалежно співтовариством розробників (NetBeans Community) і компанією NetBeans.Org.
NetBeans IDE доступна для платформ Microsoft Windows, GNU/Linux, FreeBSD, і Solaris (як SPARC, так x86). Для інших платформ доступна можливість зібрати NetBeans самостійно із сирцевих текстів.
За якістю і можливостям останні версії NetBeans IDE змагається з найкращим інтегрованими середовищами розробки для мови Java, підтримуючи рефакторинг, профілювання, виділення синтаксичних конструкцій кольором, автодоповнення мовних конструкцій на льоту, шаблони коду та інше.
NetBeans IDE 6.0, створена на основі попередньої версії 5.5.1, надала гнучку підтримку створення модулів для IDE і інтернет-застосунків, заснованих на платформі NetBeans, новий дизайнер користувацьких інтерфейсів (відомий під назвою «Проект Matisse»), нову і перероблену підтримку системи управління версіями CVS, підтримку Weblogic 9 і JBoss 4, і багато покращень в редакторі. NetBeans 6.0 поставляється в складі дистрибутивів Ubuntu 8.04 і Debian.[5]
NetBeans IDE 6.5, випущена в листопаді 2008 року, розширює можливості Java EE (включаючи підтримку Java Persistence, EJB 3 та JAX-WS). Додатково, NetBeans Enterprise Pack підтримує розробку застосунків Java EE 5 Enterprise, включаючи візуальні засоби SOA, засоби для роботи з XML schema, роботу з веб-сервісами (для BPEL), і моделювання на мові UML. Збірка NetBeans IDE Bundle for C/C++ підтримує проекти на мовах C/C++.
NetBeans 7.0, що вийшла у квітні 2011, реалізувала підтримку розробки застосунків з використанням попередньої версії JDK7, були додані засоби для інтеграції з Oracle WebLogic Server 11g і забезпечена підтримка Oracle Database, GlassFish Server Open Source Edition 3.1 і Oracle GlassFish Server 3.1. Версія 7.0 вилучила зі складу модулі з реалізацією засобів розробки мови Ruby і MVC-фреймворка Ruby on Rails. В якості причини названа низька популярність NetBeans серед розробників мовою Ruby.[6]
За заявою Oracle NetBeans IDE 7.1, що вийшов у грудні 2011, став першим середовищем розробки, який повною мірою підтримує останні варіанти специфікацій і стандартів на платформу Java, включаючи повну підтримку циклу розробки з використанням JavaFX і JDK7. Основними нововведеннями NetBeans 7.1 є забезпечення повноцінної підтримки розробки з використанням JavaFX 2.0, значне розширення можливостей Swing GUI Builder, підтримка CSS3, нові інструменти для візуального зневадження інтерфейсу застосунків на базі Swing і JavaFX, інтеграція підтримки Git, додані засоби для інтеграції з Oracle WebLogic Server 12c.[7]

У випуску 7.4 у жовтні 2013[8] продовжено розвиток засобів для розробки з використанням технологій HTML5, додана підтримка створення гібридних HTML5-застосунків для платформ Android і Apple iOS з використанням фреймворку Apache Cordova, реалізовані засоби використання HTML5 в проектах Java EE і PHP, представлена ​​експериментальна підтримка майбутнього випуску JDK8.

NetBeans 8 вийшов 18 березня 2014. У випуску реалізовані засоби для розробки з використанням Java SE 8, Java SE Embedded 8 і Java ME Embedded 8, розширена підтримка Maven і Java EE з PrimeFaces, додані нові інструменти для HTML5 і, зокрема, фреймворк AngularJS, покращена підтримка PHP (підтримка системи unit-тестування Nette Tester і аналізатора коду PHP-CS-Fixer; поліпшення підтримки Twig, Latte, Neon) і C/C++ (зокрема додана консоль зневаджувача GDB).

З цих двох систем я обираю NetBeans, тому що маю опит роботи из цією IDE.

3.Створення веб-додатку

Для створення Веб-додатку біло вирішено використовувати мову програмування Java та IDE NetBeans. У першу чергу було вирішено створити класи Test та Question, які реалізують тест та окреме питання тесту відповідно.

Клас Question має відображати окреме питання тесту, тому він має такі поля:

List answers – Список, в який заносяться можливі відповіді у строчній формі.

int rightAnswer – Змінна, що вказує яка з відповідей є вірною.

Конструктор класу приймає строковий масив відповідей та ціле число, що вказує на вірну відповідь. Він заносить елементи масиву до списку відповідей answers, і копіює до змінної rightAnswer номер правильної відповіді.

Також клас має стандартні методи Get і Set для змінної rightAnswers

Клас Test реалізує власне тест. Він має наступні поля:

Question[] questions – Масив об’єктів класу Question, які реалізують питання тесту.

int length – Змінна, яка дорівнює кількості питань у тесті. Вона потрібна для зручності організації інтерфейсу.

int rightAnswers – Змінна, яка містить кількість правильних відповідей, даних особою що проходить тестування

double score – Змінна, що містить отриманий бал за 100-бальною шкалою.

Конструктор цього класу складніший ніж у класі Question. Він приймає список строкових змінних, який зазвичай має бути зчитаний з текстового файлу з тестом. Він послідовно проходить за списком, автоматично визначаючи строки, які містять відповідь, вірну відповідь, або пусту строку між питаннями. Якщо строка містить невірну відповідь то її зміст заноситься до масиву відповідей відповідного запитання. Якщо строка містить вірну відповідь, то її зміст заноситься до списку відповідей, а вказівник вірної відповіді цього питання встановлюється на номер даної відповіді. Якщо строка порожня, конструктор переходить на нове питання. Після того як усі строки будуть опрацьовані конструктор встановить змінну length на значення, що відповідає кількості питань.

Також клас має методи Get і Set для змінної rightAnswers і метод Get для змінної score, який розраховує та повертає отриманий бал відповідно до наявного значення змінної rightAnswers.

Окрім цих класів додаток має три сервлета, які відповідають за веб-інтерфейс.

Перший з сервлетів – сервлет TestChoiceServlet. Він відповідає за сторінку, на якій користувач обирає тест, котрий він хоче пройти. Цей сервлет зчитує текстовий файл tests.txt, який містить список тестів з посиланнями на файли з цими тестами. Відповідно до змісту цього файлу створюється веб-сторінка(рис.2.1) .


Рисунок 2.1- Веб-сторінка сервлета TestChoiceServlet

Ця сторінка містить набір елементів radio, що генеруються у кількості, відповідній кількості тестів. Після них на сторінці знаходиться кнопка підтвердження з написом «Пройти», що підтверджує вибір.

Після того як користувач обере тест зі списку та натисне кнопку «Пройти» посилання на файл обраного тесту буде переадресовано на сторінку сервлета TestServlet.

Наступний сервлет має назву TestServlet. У цьому сервлеті користувач проходить обраний у попередньому сервлеті тест. На початку роботи сервлет отримує з атрибутів Http-сесії назву необхідного файлу теста. Цей файл зчитується у список строк, який передається конструктору класу Test. Після створення об’єкту класу Test починається генерація веб-сторінки. Для кожного питання з цього тесту створюється набір елементів radio, які об’єднуються в окрему групу. Між питаннями робиться відступ, щоб користувач міг зрозуміти де починається нове питання. Після всіх питань знаходиться кнопка підтвердження, що завершує тестування. Щоб завершити тестування необхідно обрати відповідь у кожному питанні. Зовнішній вигляд сторінки наведено на рис.2.2.

Рисунок 2.2.- сторінка TestServlet

Після завершення тесту користувачем сервлет додає до параметрів http-сесії кількість питань у тесті, кількість вірних відповідей та отриманий бал, після чого перенаправляє користувача на сторінку останнього з сервлетів, FinServlet.

FinServlet отримує з сесії кількість питань та вірних відповідей, і повідомляє користувачу на скільки питань він відповів та який бал отримав. Зовнішній вигляд сторінки наведено на рис.2.3.



Рисунок 2.3. FinServlet



В майбутньому планується реалізувати сервлет для додавання тесту до списку. Такий сервлет має приймати вказаний користувачем файл, перевіряти його синтаксис на відповідність необхідному для роботи додатку, та в разі позитивного результату копіювати файл в директорію з тестами і додавати посилання на нього до tests.txt.

Поділіться з Вашими друзьями:


База даних захищена авторським правом ©wishenko.org 2017
звернутися до адміністрації

    Головна сторінка