Рябінін Віктор Олександрович
Факультет комп’ютерних наук і технологій
Кафедра комп’ютерної інженерії
Спеціальність: Системне программування
Розробка бази знань та веб-додатку для підготовки та обробки екзаменаційних завдань
Науковий керівник: проф. Святний Володимир Андрійович
Контактна інформація
Gmail: ryabinin.victor@gmail.com
Skype: wikt0r_r
Зміст
2. Мети і завдання магістерської роботи
4. Стан проекту на момент написання реферату
4.2 Результати виконаної роботи
4.3 Подальша реалізація проекту
1. Актуальність теми
Дуже часто виникають ситуації, коли великій кількості користувачів необхідно надати доступ до деяких даних, дати їм можливість їх отримання та редагування. Ці дані є загальними для всіх користувачів і не можуть розташовуватися на кожній клієнтській машині: правка інформації одним користувачем не буде помітна для інших. Для вирішення завдань такого роду застосовуються web-додатки (веб-додатки, web-based applications) – програмні засоби, призначені для автоматизованого виконання дій на web-серверах. При цьому дані зберігаються на сервері, там же при необхідності виконується їх програмна обробка. За запитом необхідна інформація надається клієнту. Для забезпечення діалогу з користувачем в web-додатках використовуються web-браузери. З одного боку це створює ряд переваг (немає необхідності в розробці та встановленні додаткового клієнтського програмного забезпечення, користувач може запускати додаток в браузері незалежно від встановленої на його комп'ютері операційної системи). З іншого – накладає певні умови при виборі засобів розробки інтерфейсів таких додатків (HTML , CSS, JavaScript). Однак існують технології, що дозволяють спростити створення web-інтерфейсів (без використання безпосередньо зазначених раніше інструментів) і їх зв'язування з логічною частиною додатків.
Незалежно від засобу реалізації інтерфейсу користувача, web-додатки є підходящим рішенням для вищезгаданого роду завдань, тому що вони:
– надають доступ до єдиної інформації одночасно великій кількості користувачів;
– не залежать від операційної системи, встановленої на комп'ютері користувача.
Завдяки цьому ряду переваг web-додатки набули значного поширення. З цієї ж причини даний підхід обраний для реалізації завдань магістерської роботи, наведених у другій частині реферату.
2. Мети і завдання магістерської роботи
В цій частині будуть розглянені властивості, якими має володіти додаток, що розроблюється, і функцій, які він повинен виконувати. Висунуті до додатка вимоги можна розділити на функціональні і вимоги до інтерфейсу.
Функціональні вимоги описують поведінку програми та сервіси (функції), які вона виконує. Вони
містять положення, що починаються традиційним словом повинен
або повинна
. Крім
основних дій, виконання яких має забезпечувати додаток, існує ряд додаткових умов і додаткових
можливостей, якими він у відповідності з цими умовами повинен володіти.
Вимоги до інтерфейсу – це вимоги до зовнішнього вигляду клієнтської частини програми, до його окремих візуальних елементів.
На підставі розглянутих вимог буде запропонована загальна архітектура програми, виділені її основні компоненти. Надалі буде зроблено вибір засобів та інструментів, найбільш придатних для реалізації компонентів, виділених згідно з вимогами.
2.1 Функціональні вимоги
Додаток, що розроблюється, призначений для виконання наступних дій:
– надання користувачеві необхідної йому інформації з бази, можливість редагування наданих даних, їх видалення або додавання нових, перевірка на коректність і збереження змін;
– генерація екзаменаційних білетів з використанням інформації, яка зберігається в базі знань.
Існує також ряд додаткових вимог, пов'язаних з особливостями його використання веб-додатка. Всі вони наведені нижче.
Додаток буде використовуватися великим числом користувачів, проте всі вони повинні будуть мати доступ до загальної інформації. При цьому потрібно, щоб користувачі мали можливість змінювати дані і ці зміни були видні іншим користувачам. Таким чином, необхідно забезпечити централізоване зберігання даних, організувати можливість одночасного доступу до них декількох користувачів, а також запобігти виникненню конфліктних ситуацій.
Ще однією властивістю, якою має володіти додаток є багатомовність. Тобто на початку роботи користувач повинен мати можливість вибрати зручну для нього мову інтерфейсу. На даний момент потрібна підтримка трьох мов: німецької, англійської та російської.
При видаленні будь-яких даних пов'язана з ними інформація не повинна зникати. Одні й ті ж дані можуть бути відредаговані різними користувачами. Питання можуть відноситись до кількох тем, а відповіді – лише до одного питання. Всі ці особливості повинні бути враховані в структурі даних.
2.2 Вимоги до інтерфейсу
На основі аналізу загальних вимог до проектування інтерфейсної частини програми, було виділено ряд рекомендацій для створення «дружнього» до користувача інтерфейсу. Можна виділити наступні з них:
– не вимагати перезавантаження сторінки при кожній дії користувача. Необхідність поновлення сторінки порушує нормальний хід думки. Тому є сенс заповнювати сторінки динамічним контентом, щоб позбутися зайвих її перезавантажень. До того ж, такий підхід знижує інтенсивність обміну інформацією між клієнтською і серверною частинами програми;
– використовувати контекстні інструменти для впровадження функціональних можливостей прямо в контент сторінки. Ці інструменти є аналогами контекстного меню в настільних додатках. Вони можуть розташовуватися безпосередньо на сторінці, відображатися при наведенні курсору на об'єкт, мати перемикач для відображення/приховування тощо. Даний підхід дозволяє розподілити функціональні можливості по всій сторінці, не переповнюючи її при цьому допоміжними елементами.
Нижче наведені вимоги до інтерфейсу саме того додатку, що розробляється:
– наявність форм для відображення запитуваної інформації (списку користувачів, тем, питань по конкретній темі тощо);
– наявність форм для редагування отриманої інформації. Так як в питаннях і відповідях на них можуть бути присутніми математичні формули, на формі необхідна присутність редактора для їх створення;
– наявність коректного інструменту відображення помилок у разі їх виникнення.
Звичайно, всі форми для створення і редагування повинні містити необхідну довідкову інформацію та підказки для спрощення роботи з ними.
2.3 Вибір інструментів для створення додатку
Підходящим рішенням описаної задачі є розробка web-додатку. Це забезпечить виконання таких вимог як централізоване зберігання інформації, одночасний доступ до неї декількох користувачів. Структура web-додатку в загальному вигляді та напрямки передачі інформації в ньому наведені на рисунку 1.
Рисунок 1 – Структура web-додатку в загальному вигляді
Для написання серверної частини web-додатку обрана мова програмування Java. Щоб позбутися необхідності писати клієнтську частину з використанням стандартних засобів (які вказані в частині 1 реферату) і спростити її зв'язування з серверної частиною, буде використаний Vaadin. Це – платформа з відкритим вихідним кодом для створення повнофункціональних інтернет додатків. Використання даного інструменту дозволяє описувати інтерфейс на мові програмування Java. Надалі клієнтські Java класи перетворюються в сумісні з браузером JavaScript і HTML.
На стороні браузера використовується технологія Ajax (AJAX – Asynchronous JavaScript and XML –
асинхронний JavaScript і XML
) для забезпечення функціонально насиченого і інтерактивного
інтерфейсу користувача. Даний підхід до побудови інтерактивних веб-додатків, полягає в
фоновому обміні
даними браузера з web-сервером. В результаті, при оновлені даних, web-сторінка
не перезавантажується повністю, і web-додатки стають швидшими і зручнішими.
Описана технологія дозволяє задовольнити зазначені раніше рекомендації для створення
дружнього
до користувача інтерфейсу. А бібліотека готових віджетів (візуальних елементів)
дозволяє реалізувати всі необхідні форми для взаємодії з додатком, наприклад, для редагування
інформації.
Зберігання інформації буде здійснюватись в базі даних. В якості СУБД буде використовуватися PostgreSQL - потужна об'єктно-реляційна система управління базами даних з відкритими вихідними текстами. Структура бази даних наведена на рисунку 2.
Рисунок 2 – Структура бази даних
Для зв'язку СУБД з логічною частиною програми буде використовуватися Hibernate - бібліотека мови програмування Java, призначена для вирішення завдань об'єктно-реляційного відображення (object-relationalmapping - ORM). Hibernate забезпечує зв'язок класів Java з таблицями бази даних.
Підводячи підсумок: використання зазначених підходів та інструментів дозволяє виконати всі висунуті до функціональності програми та до його інтерфейсу вимоги.
3. Огляд джерел інформації
Нижче наведені джерела (книги, інтернет ресурси), в яких описуються окремі етапи або технології, які використовуються в розробці.
Поетапна розробка вимог до програмного забезпечення (наведена у другій частині реферату)
описана в книзі Разработка требований к программному обеспечению
[1], автор Вінгерс Карл. Зокрема,
в ній зазначені рівні вимог (функціональні, системні, вимоги користувачів), окремі з яких вже
були описані раніше.
У книзі Проектирование веб-интерфейсов
[2], автори Скотт Б., Нейл Т., виділено ряд рекомендацій
для створення «дружнього» до користувача інтерфейсу. Ці рекомендації використовувалися при
розробці вимог до інтерфейсу користувача.
Книга Java. Полное руководство
[5], автор Шилдт Герберт присвячена опису синтаксису і
стандартної бібліотеки мови Java, що використовується в написанні додатку. Відмінно підходить
для початківців Java програмувння, також може використовуватися як джерело довідкової
інформації.
Інформація про основні шаблони проектування наведена в книзі Паттерны проектирования
[4],
автори Е. Фрімен, К. С'єрра, Б. Бейтс.
Робота з веб-платформою Vaadin, що використовується для створення форм
інтерфейсу користувача, описана в книзі Book of Vaadin
[3], автор Marko Grönroos. Ця книга
оновлюється при виході нових версій даного програмного забезпечення. Останню версію (а також і
попередні) можна знайти на офіційному сайті веб-платформи [7]. Окрім книги, на даному ресурсі
присутнє керівництво, необхідне для початку роботи з Vaadin, приклади простих додатків,
технічна документація по API, форум та багато іншої корисної при розробці інформації.
Для організації доступу до бази даних використана бібліотека Hibernate. Її опис і пов'язана з нею
документація є на інтернет-ресурсі hibernate.org [9]. Там же можна знайти і завантажити
безпосередньо файли бібліотеки. Більш докладно і розгорнуто про використання даного
інструменту можна прочитати в присвячених йому книгах. Наприклад, Hibernate in action
[6],
автори Christian Bauer, Gavin King. Документація по системі управління базою даних PostgreSQL (як
і все необхідне для її встановлення) знаходиться на сайті postgresql.org [10].
Інформацію про використаний при створенні програми фреймворк Spring можна знайти на сайті springsource.org [8]. Звичайно, крім зазначених у списку джерел офіційних інтернет- ресурсів Spring, Hibernate, Vaadin, існує безліч інших сайтів, що містять корисну інформацію з даних тем. Деякі з них наведені в розділі сайту "Посилання".
4. Стан проекту на момент написання реферату
Додаток розробляється для подальшого використання в Штутгартськом університеті, Німеччина. Розробка програми була розпочата співробітниками HLRS (The High Performance Computing Center Stuttgart - обчислювальний центр високої продуктивності міста Штутгарт) Євгеном Дорожко та Юрієм Юдіним. Тому нижче наведено інформацію про стан проекту на момент початку моєї роботи над ним, результати виконаної мною роботи та плани щодо подальшого розвитку проекту.
4.1 Стан проекту на момент початку моєї роботи над ним
На момент початку моєї роботи над проектом, деяка його частина вже була реалізована. Конкретно: була розроблена первісна структура даних і відповідно до неї створено базу. Створено два модулі програми. Core - ядро програми, що відповідає за виконання функціональності додатку. UI - частина програми, що реалізує інтерфейс користувача.
Модуль Core вже містив наступні компоненти:
– реалізований обмін даними з базою знань;
– реалізовано ведення журналу подій.
Модуль UI містив наступні компоненти:
– форми перегляду списку викладачів, предметів і питань;
– форма створення питання.
4.2 Результати виконаної роботи
На даний момент протягом роботи над проектом я займався здебільшого модулем користувача інтерфейсу. Крім цього мною була реалізована деяка частина функціональності (редагування і видалення інформації), що потребувало внесення доповнень до модуля Core. Нижче наведено список виконаних мною змін у проекті:
– можливості редагування та видалення були додані для предметів;
– модифіковані поля деяких таблиць в базі даних для розширення можливостей програми: теми, до яких належать питання, не видаляються з бази, а лише позначаються як видалені (аналогічно предметам, до яких відносяться будь-які теми);
– перевірена сумісність всього цього з раніше написаним кодом, усунені як знайдені в ньому помилки, так і знову виниклі.
Нижче, на рисунку 3 наведено скріншот із зображеннями форм для перегляду і редагування тем.
Рисунок 3 – Приклад роботи вже створених форм інтерфейсу додатку
4.3 Подальша реалізація проекту
Протягом моєї подальшої роботи з розробки програми буде зроблено наступне:
– модифікація візуальної складової інтерфейсу (розташування і зовнішній вигляд віджетів, кольорова гамма, стилі);
– додавання функціональності, пов'язаної з генерацією екзаменаційних квитків;
– можлива модифікація структури даних.
Після завершення цих дій працездатність програми буде перевірена. Після перевірки та виправлення помилок почнеться її використання.
5. Висновок
Тема магістерської роботи не є вузькоспеціалізованою і носить прикладний характер. Вона є досить актуальною: web-додатки на сьогоднішній день дуже поширені і мають високу популярність. Підходи, інструменти та технології, використовувані в розробці даної програми, також застосовуються при створенні безлічі інших проектів.
При написанні даного реферату магістерська робота ще не завершена. Остаточний срок завершення: грудень 2013 року. Повний текст роботи та матеріали по темі можуть бути отримані у автора або його керівника після зазначеної дати.
Перелік посилань
1. Вiгерс Карл. Разработка требований к программному обеспечению. Пер, с англ. – М.: Издательско-торговый дом Русская Редакция
, 2004. – 576с., ил.
2. Скотт Б., Нейл Т. Проектирование веб-интерфейсов. Пер. с англ. – СПб.: Символ-Плюс, 2010. – 352 с., ил.
3. Marko Grönroos. Book of Vaadin: 4th Edition. Published: 2012-11-08. Copyright © 2000-2012 Vaadin Ltd
4. Фримен Е., С'єрра К., Бейтс Б. Паттерны проектирования. – СПб.: Питер, 2011. – 656 с., ил.
5. Шилдт Герберт. Java. Полное руководство, 8-е изд.: Пер. с англ. – М.: ООО И.Д. Вильямс
, 2012. – 1104 с., ил.
6. Christian Bauer, Gavin King. Hibernate in action. ©2005 by Manning Publications Co. All rights reserved.
7. Інтернет-ресурс присвячений веб-платформi Vaadin. – Режим доступу: www/ URL: https://vaadin.com/homel
8. Інтернет-ресурс присвячений SpringFramework. – Режим доступу: www/URL: http://www.springsource.org/
9. Інтернет ресурс присвячений HibernateORM. – Режим доступу: www/URL: http://www.hibernate.org/
10. Інтернет ресурс присвячений PostgreSQL. – Режим доступу: www/URL: http://www.postgresql.org/