Разработка приложения для развития англоязычной компетенции студентов

Анализ структурной схемы реляционной базы данных. Характеристика основных требований, которые предъявляются к структуре пользовательского интерфейса. Тестирование – один из наиболее важных компонентов разработки качественных программных продуктов.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 14.12.2019
Размер файла 4,0 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru

Размещено на http://www.allbest.ru

Введение

Английский язык является языком международного общения, и любой выпускник должен владеть им, однако в процессе изучения профессионально-ориентированного английского языка возникают трудности с изучением английских слов.

Приложений для изучения английских слов сейчас существует большое количество, но не все из них предлагают offline режим, который позволяет изучать слова без использования интернета. Да, сейчас практически каждое устройство, на котором будет установлено данное приложение, имеет возможность выхода в интернет, но не все школьники и студенты, для которых и предназначено приложение, имеют возможность оплачивать услуги мобильного интернета, а открытые точки доступа Wi-Fi есть далеко не везде.

Возможность изучать профессиональную англоязычную терминологию с привязкой к определённому курсу или дисциплине, наряду с общеупотребительной лексикой, также можно встретить далеко не во всех существующих приложениях. Для студентов наших специальностей это особенно актуально, поскольку в обучении встречается ПО с англоязычным интерфейсом.

Всё вышесказанное и является актуальностью данной темы.

Целью данной выпускной квалификационной работы является разработка приложения для развития англоязычной компетенции студентов.

Для решения поставленной цели были решены следующие задачи:

1) Выполнен анализ предметной области, который включает постановку задачи, обзор аналогичных программных продуктов и сравнение долей рынка операционных систем.

2) Произведено проектирование будущего приложения, состоящее из проектирования логики и пользовательского интерфейса приложения.

3) Выполнена реализация логики и пользовательского интерфейса.

Проведено тестирование приложения, по выбранным методикам.

1. Анализ предметной области

В данной главе выполнена постановка задачи, проанализированы аналогичные программные продукты, доли мобильных операционных система на рынке и сделаны выводы на основе этих данных.

1.1 Постановка задачи

Целью данной выпускной квалификационной работы является разработка приложения для развития англоязычной компетенции студентов.

На основании цели были сформированы функциональные требования к приложению:

- Развитие у студентов компетенции профессионально-ориентированного английского языка.

- Наличие упражнений для индивидуальных тренировок.

- Возможность занесения собственных слов в словарь.

- Самообучение приложения на основе ответов пользователя.

- Возможность удалять историю ответов.

Также были сформированы технические требования к приложению:

- Работа на операционной системе Android.

- Возможность работы в режиме offline за счёт использования встроенной базы данных.

- Время загрузки приложения не более 3-х секунд.

- Минимизация используемых ресурсов.

- Интуитивно понятный и дружественный интерфейс.

1.2 Обзор аналогичных программных продуктов

Из существующих сейчас приложений для изучения английских слов можно выделить Memrise, Words и Ease ten, функционал которых, наиболее приближен к разрабатываемой программе. Рассмотрим каждое из них и выделим достоинства и недостатки.

Мобильное приложение Memrise. Сервис для заучивания иностранных слов, в том числе английских. Данный вид сервиса представлен как в виде веб-сайта, так и в виде мобильного приложения. В приложении принцип изучения слов следующий, слова сначала показываются для ознакомления, которые происходит с помощью карточек. На карточке есть слово, перевод, озвучка, «мем» (картинка, помогающая запомнить слово, на ней может быть какая-нибудь яркая ассоциация, образ) или видео с произношением слова носителем языка. После ознакомления приложение в разных вариациях предлагает угадать слово. Например, дан вариант на русском и нужно найти иностранный вариант или наоборот.

После анализа приложения были выявлены следующие достоинства и недостатки.

Достоинства:

- игровая форма изучения;

- произношение слов носителем языка;

- создание собственного списка слов.

Недостатки:

- offline режим и статистика обучения доступны только в платном режиме;

- большое накопление слов для повторения, при не ежедневном заходе в приложение.

Пример запоминания слова в данном приложении представлен на рисунке 1.1.

Рисунок 1.1 - Пример изучения слова в приложении Memrise

Мобильное приложение Words

Очень простое словарное приложение для изучения английских слов.

Данный сервис представлен как в виде веб-сайта, так и в виде мобильного приложения, но сайт скорее выступает как визитная карточка.

Принцип изучения слов следующий. Сперва выбирается тема для изучения (человек, транспорт, еда и т.д.), далее выбирается принцип запоминания (перевод с русского на английский, с английского на русский, верная или неверная пара слово-перевод и др.) и в зависимости от принципа нужно выбрать верный или неверный ответ.

После анализа приложения были выявлены следующие достоинства и недостатки.

Достоинства:

- простота использования;

- бесплатный offline режим;

- просмотр статистики обучения;

- создание собственного списка слов.

Недостатки:

- низкая эффективность изучения;

- в бесплатной версии всего 5 тем для изучения.

Выбор предметной области изучения, принципа изучения и изучения слова представлен на рисунке 1.2.

Рисунок 1.2 - Пример изучения слова в приложении Words

Мобильное приложение Easy ten

Данное мобильное приложение создано для пополнения словарного запаса.

Cервис представлен как в виде веб-сайта, так и в виде мобильного приложения, но сайт выступает как визитная карточка.

В основе данного приложения лежит изучения новых слов и прохождения тестов с использованием этих слов. Создатели мобильного приложения утверждают, что слова и тесты чередуются в особой последовательности, оптимальной для запоминания. Каждый день пользователю необходимо выучить 10 новых слов, только после этого он может приступить к выполнению следующих уроков. Изучение новых слов происходит в виде соревнования с друзьями и другими пользователями. Также можно выбрать тематику изучаемых слов, например: путешествия, транспорт, музыка, искусство, дом и сад, право.

Изучения слов происходит по следующей методике: прослушать все слова на английском, затем посмотреть ассоциативные карточки, на которых указан перевод слова, плюсом данного приложения является что примеры использования данных слов взяты не из стандартных уроков, а из твиттера, что позволяет понять, как употребляются данные слова в реальной жизни реальными людьми.

Пример изучения слова в данном приложении представлен на рисунке 1.3.

Рисунок 1.3 - Пример изучения слова в приложении Ease ten

Сравнение приложений конкурентов

После разбора каждого приложения необходимо провести сравнение всех продуктов. Сравнение будет происходить на основе таких критериев как наличие бесплатного offline режима и возможность изучения профессиональной англоязычной терминологии.

Результаты сравнения представлены в таблице 1.1.

Таблица 1.1 - Результат сравнения приложений

Memrise

Words

Ease ten

Бесплатный offline режим

-

+

-

Изучение профессиональной англоязычной терминологии

+

-

+

Сравниваемые мобильные приложения для изучения слов английского языка во многом похожи. Данные программные продукты наделены богатым функционалом и приятным интерфейсом, которые позволяют пополнять свой словарный запас. Тем не менее, основной недостаток этих программ в том, что у них нет возможности полностью удовлетворять всем нашим требованиям к мобильному приложению. Следовательно, наиболее приемлемым решением проблемы может быть создание мобильного приложения, разработанное с учетом всех особенностей процесса изучения слов английских языка.

1.3 Доля рынка мобильных операционных систем

Один из первых вопросов при разработке приложения звучит так - для какой операционной системы будет разрабатываться приложение.

На рисунке 1.4 представлено распределение долей операционных систем. По рисунку можно сделать вывод, что на рынке мобильных приложений сейчас господствуют две операционные системы, IOS и Android.

Основываясь на этих данных, можно сделать вывод что разрабатывать мобильные приложения целесообразно именно для этих систем.

Рисунок 1.4 - Доли рынка мобильных приложений

В данной главе была выполнена постановка задачи. Так же в данной главе были разобраны аналогичные мобильные приложения и произведен их сравнительный анализ. На основе данного анализа было выявлено что на рынке нет мобильного приложения, которое удовлетворяло бы всем потребностям пользователя. Далее было рассмотрено для каких операционных систем целесообразно проводить разработку приложений.

2. Проектирование

2.1 Выбор архитектуры

При разработке какого-либо приложения, очень важно, чтобы программа не только хорошо и правильно работала, но и была хорошо организована. И это касается не только больших приложений, для которых отсутствие архитектуры со временем приведёт к провалу проекта, но и приложений маленького размера, ведь сложность, как правило, растёт быстрее размеров программы. Правильная архитектура экономит много времени, сил и, возможно, определяет дальнейшее развитие проекта, именно поэтому важно ответственно подойти к этому вопросу [3].

В качестве архитектуры приложения была выбрана фреймворк-ориентированная архитектура (framework-based), которая, как следует из названия, основывается на существующем Android-фреймворке. Разработка приложений сводится к расширению некоторых классов или реализации интерфейсов, предоставленных фреймворком.

Рассмотрим основные элементы архитектуры Android-приложения.

В общем случае, Android-приложение состоит следующих элементов:

1) Java-классов, являющихся подклассами основных классов из Android SDK (View, Activity, Intent) и Java-классов, у которых нет родителей в Android SDK.

На рисунке 2.1 представлена иерархия основных классов из Android SDK, с большинством из которых пришлось встретиться при разработке приложения.

Рисунок 2.1 - Иерархия основных классов Android SDK

2) Манифест Android.

Он представляет собой XML файл и выполняет несколько функций. Вот некоторые из них:

- Определяет имя Java-пакета приложения. Имя пакета представляет собой уникальный идентификатор для приложения.

- Объявляет разрешения, которые требуются для доступа к компонентам приложения.

- Объявляет минимальный уровень Android API, который требует приложение.

- Перечисляет библиотеки, с которыми приложение должно быть связано.

3) Ресурсы.

Android-приложения используют следующие типы ресурсов:

- Изображения.

- Слои пользовательского интерфейса (XML файлы).

- Объявления меню (XML файлы).

- Текстовые строки.

- Анимацию (XML файлы).

4) Файлы.

5) Android-приложение использует несколько разных типов файлов:

- Файлы «общего назначения».

- Файлы БД.

- Файлы Opaque Binary Blob.

- Закешированные файлы.

На рисунке 2.2 представлена архитектура каталогов и файлов разрабатываемого приложения.

Рисунок 2.2 - Архитектура каталогов и файлов разрабатываемого приложения

Как показано на рисунке 2.2 файла Android манифеста лежит в каталоге manifests.

Java-классы располагаются в каталоге com.example.pupil, который, в свою очередь, находится в каталоге java. com.example.pupil это имя пакета приложения, которое устанавливается при создании проекта. Чтобы, например, добавить приложение в Google play имя пакета должно быть уникальным среди всех приложений.

Файлы располагаются в каталоге assets. На рисунке 2.2 видно, что там располагается один файл pupilDB.db - файл базы данных.

Ресурсы приложения находятся в каталоге res. В свою очередь файлы анимации находятся в каталоге anim, текстовые строки в каталоге values, слоям пользовательского интерфейса соответствует папка layout, изображениям - drawable, меню располагается в каталоге menu. Каталог mipmap служит для хранения растровых изображений, как правило формата png для дисплеев разных размеров.

2.2 Выбор средств разработки

Выбор IDE

При выборе IDE для разработки приложения были рассмотрены две программы, Android Studio и Eclipse. Кратко проанализируем каждую из них.

1) Android Studio.

Из достоинств можно выделить следующие:

- Официально поддерживаемая IDE для разработки под Android. Именно она используется в современных руководствах и видео, в том числе и от Google [5].

- IDE имеет богатый функционал, который можно дополнить различными плагинами, например, плагин Database Navigator позволяет работать с базой данных прямо в Android Studio без использования СУБД.

- Данная IDE имеет встроенный эмулятор, поэтому тестировать приложение, можно даже не имея смартфона на операционной системе Android.

- Более «умная» чем Eclipse, что касается рефакторинга кода.

- Имеет средства для работы с VCS (система контроля версий).

- Понимает контекст и предлагает верные имена переменных и методов.

Из недостатков можно выделить «тяжеловесность» программы, особенно это будет заметно на слабых ПК.

2) Eclipse.

Была основной IDE для разработки под Android на протяжении многих лет, поэтому большинство устаревших уроков, ресурсов, видео и скриншотов сделаны на ней [5].

Также к достоинствам можно отнести то, что IDE будет «легче» работать на слабых ПК.

В результате в качестве IDE была выбрана Android Studio исходя из её преимуществ.

При выборе языка программирования вопрос стоял между Kotlin и Java.

Google теперь официально поддерживает Kotlin как язык разработки под Android, но всё же, было принято решение вести разработку на языке Java. Главной причиной такого выбора стало большое сообщество Java - благодаря обширным сообществам на GitHub, Stack Overflow и других сайтах можно получить помощь практически по любой проблеме. Язык Kotlin довольно молод, поэтому количество ресурсов для изучения языка ограничено.

Выбор языка для создания пользовательского интерфейса был ограничен языком разметки XML, так как это предусматривает архитектура нашего приложения. К тому же разделение пользовательского интерфейса и логики приложения является хорошей практикой, а язык XML как раз поддерживает данный принцип.

Выбор СУБД.

В Android имеется встроенная поддержка одной из распространенных реляционных систем управления базами данных - SQLite [6]. Каждое приложение может создать свою базу данных и использовать для своих нужд. Поэтому самый логичный вывод - это использовать данную СУБД.

Схема базы данных разрабатывалась в программе Oracle SQL Developer Data Modeler.

2.3 Проектирование схемы базы данных

Проектируя схему базы данных, нужно придерживаться правил проектирования баз данных, так как это обеспечит долговременную целостность и простоту обслуживания данных приложения.

Для начала представим готовую схему, а после этого разберём каждый её элемент.

Схема базы данных приложения представлена на рисунке 2.3.

Рисунок 2.3 - Схема базы данных приложения

База данных приложения является реляционной и состоит из взаимосвязанных таблиц. Каждая таблица содержит информацию об объектах разных типов, а совокупность всех таблиц образует единую базу данных.

Разберём каждую таблицу схемы.

1) rus_words - таблица, содержащая русские слова. Имеет следующие поля:

- id_rus_word - поле, которое уникально идентифицирует каждое в таблице слово. Имеет числовой тип данных (integer). Автоинкрементируется при добавлении слова в таблицу. На поле наложено ограничение pk_rus_words_id_rus_word - ограничение первичного ключа. Так как поле является первичным ключом, автоматически накладывается ограничение not null, которое говорит о том, что в поле нельзя записать null значение.

- name_rus_word - поле, которое содержит одно русское слово или фразу. Имеет строковый тип данных (varchar2). На поле наложено ограничение rus_words_not_null_name_rus_words - ограничение not null, которое говорит о том, что в поле нельзя записать null значение.

2) eng_words - таблица, содержащая английские слова. Имеет следующие поля:

- id_eng_word - поле, которое уникально идентифицирует каждое в таблице слово. Имеет числовой тип данных (integer). Автоинкрементируется при добавлении слова в таблицу. На поле наложено ограничение pk_eng_words_id_eng_word - ограничение первичного ключа. Так как поле является первичным ключом, автоматически накладывается ограничение not null, которое говорит о том, что в поле нельзя записать null значение.

- name_eng_word - поле, которое содержит одно английское слово или фразу. Имеет строковый тип данных (varchar2). На поле наложено ограничение eng_words_not_null_name_eng_words - ограничение not null, которое говорит о том, что в поле нельзя записать null значение.

- id_use - поле, которое содержит id из таблицы useability, указывает на частоту употребимости слова. Имеет числовой тип данных (integer). На поле наложено ограничение fk_eng_words_useability - ограничение внешнего ключа. Это ключ используется для связи таблиц eng_words и useability.

3) rus_eng_words - таблица-связка, для соединения таблиц rus_words и eng_words. Данная таблица необходима, так как каждому русскому слову может соответствовать несколько английских слов, а каждому английскому слову может соответствовать несколько русских слов (связь многие-ко-многим). Имеет следующие поля:

- rus_words_word_id - поле, которое содержит id из таблицы rus_words. Имеет числовой тип данных (integer). На поле наложено ограничение fk_rus_eng_words_id_rus_word - ограничение внешнего ключа. Этот ключ используется для связи таблиц rus_words и rus_eng_words. Также задано правило удаления (on delete) данных в таблице, а именно указано действие cascade, заключающееся в том, что если слово удаляется из таблицы rus_words, то автоматически удаляется все ссылки на это слово в таблице rus_eng_words.

- eng_words_word_id - поле, которое содержит id из таблицы eng_words. Имеет числовой тип данных (integer). На поле наложено ограничение fk_rus_eng_words_id_eng_word - ограничение внешнего ключа. Этот ключ используется для связи таблиц eng_words и rus_eng_words. Также задано правило удаления (on delete) данных в таблице, а именно указано действие cascade, заключающееся в том, что если слово удаляется из таблицы eng_words, то автоматически удаляется все ссылки на это слово в таблице rus_eng_words.

Также на оба поля наложено ограничение pk_rus_eng_words - ограничение первичного ключа, в этом случае первичный ключ является составным. Так как поля являются первичным ключом, автоматически накладывается ограничение not null, которое говорит о том, что в полях не может быть значение null.

4) history - таблица для хранения истории ответов пользователей, на основе которых, формируется показ или временное скрытие тех или иных слов. Имеет следующие поля:

- id_hist - поле, которое уникально идентифицирует каждую строку в таблице. Имеет числовой тип данных (integer). Автоинкрементируется при добавлении данных в таблицу. На поле наложено ограничение pk_history_id_hist - ограничение первичного ключа. Так как поле является первичным ключом, автоматически накладывается ограничение not null, которое говорит о том, что в поле нельзя записать null значение.

- correctly - поле, которое указывает правильно или нет был дан ответ. Может принимать значение «Y» - верный ответ и «N» - неверный ответ. Имеет строковый тип данных (varchar2). На поле наложено ограничение not_null_history_correctly - ограничение not null, которое говорит о том, что в поле нельзя записать null значение.

- cur_date - указывает на дату и время совершения ответа. Имеет тип данных date. На поле наложено 2 ограничения, первое not_null_history_cur_date - ограничение not null, которое говорит о том, что в поле нельзя записать null значение и ограничение значения по умолчанию (history_sysdate_cur_date), по умолчанию в поле записывается текущая дата и время совершения ответа, которое установлено на устройстве.

- id_eng_word - поле, которое содержит id слова из таблицы eng_words. Имеет числовой тип данных (integer). На поле наложено 2 ограничения, первое это fk_history_eng_words - ограничение внешнего ключа. Этот ключ используется для связи таблиц eng_words и history. Также задано правило удаления (on delete) данных в таблице, а именно указано действие cascade, заключающееся в том, что при удалении записи из таблицы eng_words, автоматически удалятся записи из таблицы history со ссылками на удалённое значение. В нашем случае, если мы удалим слово из таблицы eng_words, то вся история ответов по этому слову тоже удалиться. Второе ограничение not_null_history_id_eng_word - ограничение not null, которое говорит о том, что в поле нельзя записать null значение.

- id_rus_word - поле, которое содержит id слова из таблицы rus_words. Имеет числовой тип данных (integer). На поле наложено 2 ограничения, первое это fk_history_rus_words - ограничение внешнего ключа. Этот ключ используется для связи таблиц rus_words и history. Также задано правило удаления (on delete) данных в таблице, а именно указано действие cascade, заключающееся в том, что при удалении записи из таблицы rus_words, автоматически удалятся записи из таблицы history со ссылками на удалённое значение. В нашем случае, если мы удалим слово из таблицы rus_words, то вся история ответов по этому слову тоже удалиться. Второе ограничение not_null_history_id_rus_word - ограничение not null, которое говорит о том, что в поле нельзя записать null значение.

5) useability - таблица, содержащая виды употребимости слов. Имеет следующие поля:

- id_use - поле, которое уникально идентифицирует каждую строку таблицы. Имеет числовой тип данных (integer). Автоинкрементируется при добавлении слова в таблицу. На поле наложено ограничение pk_useability_id_use - ограничение первичного ключа. Так как поле является первичным ключом, автоматически накладывается ограничение not null, которое говорит о том, что в поле нельзя записать null значение.

- name_use - поле, которое содержит название употребимости слова (например, редко, часто). Имеет строковый тип данных (varchar2). На поле наложено 2 ограничения, первое это not_null_useability_name_use - ограничение not null, которое говорит о том, что в поле нельзя записать null значение, второе - ограничение уникальности (unique_useability_name_use), говорит о том, что не может быть двух видов употребимости слова с одинаковыми названиями.

6) groups - таблица для хранения групп слов.

- id_group - поле, которое уникально идентифицирует каждую группу. Имеет числовой тип данных (integer). Автоинкрементируется при добавлении слова в таблицу. На поле наложено ограничение pk_groups_id_group - ограничение первичного ключа. Так как поле является первичным ключом, автоматически накладывается ограничение not null, которое говорит о том, что в поле нельзя записать null значение.

- name_group - поле, которое содержит название группы (например, интернет, глаголы). Имеет строковый тип данных (varchar2). На поле наложено 2 ограничения, первое это not_null_groups_name_group - ограничение not null, которое говорит о том, что в поле нельзя записать null значение, второе - ограничение уникальности (unique_groups_name_group), говорит о том, что не может быть двух групп с одинаковыми названиями.

7) groups_eng_words - таблица-связка, для соединения таблиц groups и eng_words. Данная таблица необходима, так как каждой группе может соответствовать несколько английских слов, а каждому английскому слову может соответствовать несколько групп (связь многие-ко-многим). Имеет следующие поля:

- id_group - поле, которое содержит id из таблицы groups. Имеет числовой тип данных (integer). На поле наложено ограничение fk_groups_eng_words_id_group - ограничение внешнего ключа. Этот ключ используется для связи таблиц groups и groups_eng_words. Также задано правило удаления (on delete) данных в таблице, а именно указано действие cascade, заключающееся в том, что если группа удаляется из таблицы groups, то автоматически удаляется все ссылки на это слово в таблице groups_eng_words.

- id_eng_word - поле, которое содержит id из таблицы eng_words. Имеет числовой тип данных (integer). На поле наложено ограничение fk_groups_eng_words_id_eng_words - ограничение внешнего ключа. Этот ключ используется для связи таблиц eng_words и groups_eng_words. Также задано правило удаления (on delete) данных в таблице, а именно указано действие cascade, заключающееся в том, что если слово удаляется из таблицы eng_words, то автоматически удаляется все ссылки на это слово в таблице groups_eng_words.

Также на оба поля наложено ограничение pk_groups_eng_words - ограничение первичного ключа, в этом случае первичный ключ является составным. Так как поля являются первичным ключом, автоматически накладывается ограничение not null, которое говорит о том, что в полях не может быть значение null.

2.4 Проектирование логики приложения

Говоря о логике работы приложения, сперва представим общий алгоритм работы приложения, который представлен на рисунке 2.4.

При входе в приложение мы сразу попадает на вкладку меню «Перевод», из которой можно сразу приступить к изучению слов. Далее пользователь может либо выйти из приложения, либо перейти на вкладки «Словарь» или «Настройки», пытаясь нажать на текущую вкладку никакой обратной связи не будет, находясь на какой-либо вкладке в неё же перейти нельзя. Перейдя во вкладку «Словарь» можно выйти из приложения, добавить слова в словарь, либо перейти на вкладки «Перевод» или «Настройки». Перейдя во вкладку «Настройки» можно выйти из приложения, выбрать пункт из этого пункта меню, либо перейти на вкладки «Перевод» или «Словарь».

Рисунок 2.4 - Блок-схема работы приложения

Теперь рассмотрим алгоритм работы изучения слов, который изображён на рисунке 2.5

Рисунок 2.5 - Блок-схема алгоритма изучения слов

Предполагается, что поменять вид перевода можно в любой момент. По умолчанию устанавливается перевод с английского на русский, но если изменить вид изучения на другой (с русского на английский), то последовательность действий алгоритма не измениться.

В завершении рассмотрим алгоритм, который анализирует какое слово нужно или не нужно изучить, основываясь на истории ответов. Блок-схема алгоритма представлена на рисунке 2.6.

Рисунок 2.6 - Блок-схема алгоритма выбора слова для изучения

Первым делом алгоритм проверяет, есть ли слова, которые больше всего нуждаются в повторении, то есть слова, у которых количество неправильных ответов больше на n, в тоже время если пользователю будет выведено это слово и он снова ответит не правильно, то слово появиться ещё раз и так будет до тех пор, пока пользователь не сделают разницу между неправильными и правильными ответами меньше n+1. Чтобы решить эту проблемы введено дополнительное условие, а именно не показывать слово если слово повторялось хотя бы раз за последние k минут. Если таких слов нет, то алгоритм ищет слова, которые не повторялись более j дней. Если не найдены и такие слова, выбираем любое слово из словаря, но за исключение тех, у которых правильных ответов больше, чем неправильных на x. Если оставить условие таким, то после, например, x+1 правильных ответов слово больше никогда не выберется, поэтому исключаем такие слова только на z дней. Может возникнуть ситуация, когда пользователь выучил все слова (у всех слов правильных ответов большем чем неправильных на x более) и сделал это меньше чем за z дней, в таком случае выбирается совершенно любое слово из словаря.

Вместо переменных n, k, j, x, z могут быть подставлены любые значения, с помощью чего, можно построить индивидуальную траекторию обучения.

2.5 Проектирование пользовательского интерфейса

Пользовательский интерфейс - «лицо» системы, и от его продуманности зависит эффективность работы пользователя с системой [7, c. 127].

Требования к пользовательскому интерфейсу могут быть разбиты на две группы:

1) Требования к внешнему виду пользовательского интерфейса и формах взаимодействия с пользователем.

2) Требования по доступу к внутренней функциональности системы при помощи пользовательского интерфейса.

Другими словами, первая группа требований описывает взаимодействие подсистемы интерфейса с пользователем, а вторая - с внутренней логикой системы.

К первой группе можно отнесём следующие типы требований касательно нашего приложения:

- Требования к размещению элементов управления на экранных формах.

Данные требования могут определять общие принципы размещения элементов пользовательского интерфейса или требования к размещению конкретных элементов. Например, в нашем приложении необходимо разместить кнопки выбора правильного ответа в нижней части экрана, чтобы пользователю не пришлось тянуться к ним через весь дисплей.

Макет изучаемого слова и кнопок выбора ответа представлен на рисунке 2.7.

Рисунок 2.7 - Макет изучаемого слова и кнопок выбора

Также, нужно отметить, что необходимо учитывать все разрешения экрана, ведь устройств на операционной системе Android большое количество.

- Требования к содержанию и оформлению выводимых сообщений.

Требования к содержанию и оформлению выводимых сообщений определяют текст сообщений, выводимых системой, его шрифтовое и цветовое оформление. Также часто в таких требованиях определяется, в каких случаях выводится то или иное сообщение.

- Требования к форматам ввода.

Данная группа требований определяет, в каком виде информация поступает от пользователя в систему. При этом кроме собственно требований, определяющих корректный формат, к этой группе относятся требования, определяющие реакцию системы на некорректный ввод. Для проверки таких требований необходимо проверять как корректный ввод, так и некорректный.

- Требование к корректности отображения элементов экрана при повороте устройства.

Необходимо позаботиться о том, чтобы, когда устройство используют в альбомной ориентации, в элементы логично отображались на экране и не уезжали за края дисплея.

К примеру, представим макет изучаемого слова и кнопок выбора ответа в альбомной ориентации. Он представлен на рисунке 2.8.

Рисунок 2.8 - Макет изучаемого слова и кнопок выбора в альбомной ориентации

- Требование к логичности и понятности названий.

Данное требование говорит о том, чтобы все элементы кратко и понятно описывали свою суть. Например, чтобы по названию пункта меню было чётко понятно куда приведёт нажатие на него.

- Требование к современному дизайну.

На рынке сейчас множество приложений разных типов и порой, пользователи предпочитают именно то приложение, которое радует глаз.

Ко второй группе относятся следующие типы требований:

- Требования к реакции системы на ввод пользователя.

Данный тип требований определяет связь внутренней логики системы и интерфейсных элементов.

- Требования к времени отклика на команды пользователя.

Подсознательно пользователь воспринимает операции продолжительностью более 1 секунды как длительные. Если в этот момент система не сообщает пользователю о том, что она выполняет какую-либо операцию, пользователь начнет считать, что система зависла или работает в неверном режиме. В связи с этим либо все предельные времена отклика должны быть указаны в требованиях и пользовательской документации, либо во время длительных операций должны выводиться информационные сообщения (например, индикатор прогресса) [7, c. 128].

3. Реализация

3.1 Реализация логики приложения

При запуске приложения мы сразу попадаем на вкладку «Перевод» навигационного меню. Далее мы можем перемещаться по вкладкам и выполнять на них определённые действия. Код навигационного меню находится в файле navigation.xml и представлен на рисунке 3.1.

Рисунок 3.1 - Программный код навигационного меню

Выше был представлен только каркас меню, за цвет, расположение на экране, размеры и другие параметры отвечает другой файл (activity_main.xml). Код оформления меню представлен на рисунке 3.2.

Рисунок 3.2 - Программный код оформления меню

По нажатию на вкладку меню в контейнер данных подгружается определённый фрагмент. Код загрузки соответствующих данных по нажатию на пункт меню находится в файле MainActivity.java и представлен на рисунке 3.3.

Рисунок 3.3 - Код загрузки данных по нажатию на вкладку меню

Изучение слов и анализ истории обучения сложно разрозненно представить в коде, поэтому представим их совместное представление. На рисунках 3.4 и 3.5 представлен листинг, который проверяет наличие слов, у которых неправильных ответов больше на 3 и которые не изучались 3 дня. Данный код находится в файле Words.java.

Рисунок 3.4 - Код анализа истории обучения (начало)

Рисунок 3.5 - Код анализа истории обучения (конец)

Если код, который представлен выше, не вернул никаких данных, то выполниться код поиска слова, который представлен на рисунках 3.6 и 3.7. Данный код находится в файле Words.java.

Рисунок 3.6 - Код выбора слова (начало)

Рисунок 3.7 - Код выбора слова (конец)

После этого, в зависимости от выбора вида изучения (с русского на английский или с английского на русский), выбираем 5 случайных слов и производим запись в соответствующие поля и кнопки. Код выбора пяти случайных слов представлен на рисунке 3.8 и находится в файле Words.java.

Рисунок 3.8 - Код выбора 5 случайных слов

На рисунках 3.9 и 3.10 представлен код заполнения полей отображения и кнопок.

Рисунок 3.9 - Код заполнение полей и кнопок (начало)

На рисунке выше в начале заполняется поле для вывода изучаемого слова, далее заполняются кнопки.

Рисунок 3.10 - Код заполнение полей и кнопок (конец)

3.2 Реализация пользовательского интерфейса

В соответствии с требованиями, которые были описаны при проектировании, был реализован интерфейс приложения.

На рисунке 3.11 представлен интерфейс вкладки «Перевод» в портретной ориентации, на которой непосредственно и происходит изучение слов.

Рисунок 3.11 - Интерфейс вкладки «Перевод» в портретной ориентации

Альбомная ориентация представлена на рисунке 3.12.

Рисунок 3.12 - Интерфейс вкладки «Перевод» в альбомной ориентации

На рисунках расположены 6 кнопок, с помощью которых выбирается верный ответ (перевод) слова, которое находится чуть выше кнопок.

В правом верхнем углу расположена кнопка смены варианта перевода, по нажатию на которую можно устанавливать как перевод с русского на английский, так и перевод с английского на русский.

Левее находится выпадающий список, в котором можно выбрать группу для изучения слов. По умолчанию выбирается группа «все», то есть изучение всех слов, без привязки к кой либо группе.

На рисунке 3.13 показан вид интерфейса, когда пользователь правильно выбрал перевод слова. Кнопка закрашивается зелёным цветом, а цвет текста меняется на белый, для лучшей читабельности.

Рисунок 3.13 - Вид кнопок при правильном переводе слова

Когда пользователь неправильно выбирает перевод слова, выбранная им кнопка закрашивается красным цветом, цвет текста становиться белым и в тоже время показывается верный перевод (кнопка закрашивается зелёным цветом, а цвет текста меняется на белый). Вид кнопок при ошибочном ответе представлен на рисунке 3.14.

Рисунок 3.14 - Вид кнопок при неправильном переводе слова

В альбомной режиме интерфейс кнопок при ответах тот же.

На рисунке 3.15 показан интерфейс вкладки «Словарь» в портретной ориентации, на которой пользователь может добавить пару слов в словарь, а если необходимо, указать группу или группы, к которым относится слово. По умолчанию ни одна группа не выбрана.

Рисунок 3.15 - Интерфейс вкладки «Словарь» в портретной ориентации

Альбомная ориентация представлена на рисунке 3.16.

Рисунок 3.16 - Интерфейс вкладки «Словарь» в альбомной ориентации

При попытке записать пустую строку или строку пробелов в любое из полей ввода, будет выведено сообщение, которое показано на рисунке 3.17.

Рисунок 3.17 - Интерфейс полей ввода при некорректном вводе

При успешном добавлении пары слов в словарь, будет выведено соответствующие сообщение. Вид сообщения показан на рисунке 3.18.

Рисунок 3.18 - Сообщение при успешном заполнении словаря

Если пара слов уже добавлена в словарь, то так же будет выведено определённое сообщение, которое показано на рисунке 3.19.

Рисунок 3.19 - Сообщение при уже имеющейся паре слов

Вкладка «Настройки» изображена на рисунке 3.20 Альбомная ориентация представлена на рисунке 3.21.

Рисунок 3.20 - Вид вкладки «Настройки» в портретной ориентации

Рисунок 3.21 - Вид вкладки «Настройки» в альбомной ориентации

По нажатию на кнопку «Очистить историю ответов» выводится диалоговое окно, которые спрашивает точно ли нужно удалить историю ответов пользователя. Если пользователь нажмёт «да» история будет очищена и будет выведено соответствующее сообщение, иначе окно просто будет закрыто.

Вид диалогового окна в альбомной ориентации представлен на рисунке 3.22.

Рисунок 3.22 - Вид диалогового окна при удалении истории ответов

По нажатию на кнопку «Группы слов» откроется страница добавления и удаления групп, которые отображаются на вкладке «Словарь». В ней можно создавать любые группы и в дальнейшем наполнять их словами. Также можно удалить все группы, если в них нет необходимости.

Вид страницы «Группы» представлен на рисунке 3.23.

Рисунок 3.23 - Вид страницы «Группы» в портретной ориентации

4. Тестирование

4.1 Методика тестирования

Тестирование - одна из важнейших частей разработки качественных программных продуктов [8]. Рассмотрим методы, которые были выбраны для тестирования разрабатываемого приложения.

1) Модульное тестирование.

Модульное тестирование позволяет проверить на корректность отдельные модули исходного кода программы, а так как наше приложение разбито на несколько модулей, будет логично использовать данный метод.

2) Функциональное тестирование.

Функциональное тестирование проверяет соответствие поведения системы первоначально заявленным функциональным требованиям. Это проверка всего приложения в целом и, следовательно, проверка взаимосвязи модулей между собой.

3) Тестирование с помощью Monkey

Monkey - автоматизированный инструмент стресс-тестирования. Представьте, что ваш телефон попал в цепкие лапки очень активной и творческой обезьянки - утилита monkey позволяет имитировать подобную ситуацию. Она отправляет на устройство поток псевдослучайных действий пользователя, тем самым пытаясь найти ошибку. Утилита входит в состав Android SDK, то есть не требует установки [9].

4) Тестирование инсталляции.

Тестирование установки проводится с целью проверки успешной инсталляции, а также обновления или удаления приложения. Данный вид тестирования особенно актуален в связи с большим количеством разнообразных устройств, на которых установлена операционная система android. Разный размер дисплея, объем оперативной памяти и другие характеристики могут стать причиной некорректной работы приложения на всевозможных устройствах.

4.2 Результаты тестирования

1) Результаты модульного тестирования.

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

В таблице 4.1 приведены названия основных модулей, ожидаемый и полученный от них результат.

Таблица 4.1 - Основные модули системы

Модуль

Ожидаемый результат

Полученный результат

Модуль подключение базы данных (DBHelper.java)

Корректное подключение к добавленной базе данных и извлечение данных из неё

Результат соответствует ожиданию

Модуль для инициализации других модулей и отображения их на экране (MainActivity.java)

Безошибочная инициализация и отображение других модулей системы

Результат соответствует ожиданию

Модуль изучения слов (Words.java)

Удобное, безошибочное и комфортное изучение слов

Результат соответствует ожиданию

Модуль добавления (Home.java)

Корректное добавление слов в словарь без избыточности данных

Результат соответствует ожиданию

Исходя из таблицы 4.1 можно сделать вывод, что работоспособность всех модулей корректна.

2) Результаты функционального тестирования.

Каждая функция тестировалась согласно заявленным функциональным требованиям. Результаты тестирования приведены в таблице 4.2.

По таблице 4.2 можно сделать вывод, что все функции работают исправно. Все они находятся каждая в своём модуле и успешно взаимодействуют друг с другом, следовательно, можно сделать вывод что приложение работает без ошибок.

Таблица 4.2 - Функции системы

Функция

Ожидаемый результат

Полученный результат

Вкладка «Перевод»

Открытие модуля для изучения слов

Открытие модуля для изучения слов

Вкладка «Словарь»

Открытие модуля для добавления слов в словарь

Открытие модуля для добавления слов в словарь

Вкладка «Настройки»

Открытие модуля настоек приложения

Открытие модуля настоек приложения

Копка «Добавить в словарь»

Добавляет в словарь введённые пользователем слова

Добавляет в словарь введённые пользователем слова

Кнопки выбора перевода слова

Выбирают перевод слова

Выбирают перевод слова

Кнопка выбора режима изучения

Меняет режим изучения слов

Меняет режим изучения слов

Пункт «Очистить историю ответов»

Вызывает диалоговое окно, с помощью которого подтверждается или нет удаление истории

Вызывает диалоговое окно, с помощью которого подтверждается или нет удаление истории

3) Результаты тестирования с помощью Monkey.

Чтобы запустить тестирование с помощью Monkey необходимо во вкладке Terminal ввести следующую команду: adb shell monkey -p com.example.pupil --throttle 300 -v 1000, где «com.example.pupil» - имя пакета приложения, 300 - время в миллисекундах, через которое будет производится какое-либо действие, 1000 - количество случайных действий. Для большей наглядности на рисунке 4.1 приведён пример запуска утилиты.

Рисунок 4.1 - Команда запуска утилиты Monkey

Было запущено 5 тестов с различными параметрами. В случае возникновения ошибки, она выводится в консоль (Terminal). В ходе тестирования ошибок выявлено не было.

4) Результаты тестирования инсталляцией.

Приложение было установлено на 3 смартфона: Samsung A6+, Samsung A3 и Nexus 5X. На устройстве Samsung A3 возникли проблемы при отображении вкладки «Словарь» в альбомной ориентации - кнопка «Добавить в словарь» не помещалась на экран, в следствии чего была добавлена возможность вертикального скроллинга экрана. Других проблем с установкой, работой, отображением и удалением приложения замечено не было.

В реальных условиях приложение установлено и эксплуатируется на нескольких устройствах с целью выявления ошибок и внесения возможных доработок системы. Установлено на таких смартфонах как Samsung A6+, Samsung A3 и Nexus 5X. В ходе эксплуатации были выявлены некоторые ошибки, которое описаны в пункте тестирование.

В дальнейшем планируется размещение приложения в магазине приложений и игр Google Play, для массового распространения.

Заключение

программный интерфейс реляционный

Целью данной выпускной квалификационной работы была разработка приложения для развития англоязычной компетенции студентов.

В первой части работы был приведён анализ предметной области, выполнена постановка задачи, рассмотрены аналогичные программные продукты, доли рынка операционных систем и сделан вывод на основе этих данных.

Во второй части было выполнено проектирование разрабатываемой системы, а именно была выбрана архитектура приложения, выбраны и обоснованы средства разработки, спроектирована схема базы данных, а также спроектирована логика и интерфейс приложения.

В третей части приводится непосредственно реализация приложения. Описывается реализация логики приложения, приведены блок-схемы основных алгоритмов системы. Следом изображается реализация пользовательского интерфейса.

В четвертой части выполнено тестирование приложения, в которое входит разбор методик тестирования и, как следствие, результаты тестирования приложения, по итогам которых, ошибок выявлено не было.

В ходе написания выпускной квалификационной работы был приобретен опыт разработки android приложений в среде Android Studio, а также был приобретён навык работы с СУБД SQLite и программой SQLiteStudio.

Поставленная цель выпускной квалификационной работы была успешно выполнена.

Литература

1. Рынок смартфонов 2018: лидеры и статистика продаж [Электронный ресурс] // five-inches: сайт - Режим доступа: https://5nch.com/rynok-smartfonov-2018-lidery-i-statistika-prodazh/.

2. Создание архитектуры программы или как проектировать табуретку [Электронный ресурс] // habr: сайт - Режим доступа: https://habr.com/ru/post/276593/.

3. Архитектура Android-приложений. Часть III - основные части приложения [Электронный ресурс] // habr: сайт - Режим доступа: https://habr.com/ru/post/141201/.

4. Как начать разрабатывать под Android [Электронный ресурс] // Tproger: сайт - Режим доступа: https://yandex.ru/turbo?text=https%3A%2F%2Ftproger.ru%2Ftranslations%2Fhow-to-start-android%2F&d=1.

5. Работа с базами данных SQLite [Электронный ресурс] // METANIT: сайт - Режим доступа: https://metanit.com/java/android/14.5.php.

6. Синицын, С. В. Верификация программного обеспечения: курс лекций / С. В. Синицын, Н. Ю. Налютин. - Москва:МИФИ, 2006. - 158 с.

7. Тестирование Android приложений [Электронный ресурс] // habr: сайт - Режим доступа: https://habr.com/ru/post/352334/.

8. Автоматизация тестирования Android-приложений с помощью Monkey [Электронный ресурс] // MyTetra Share: сайт - Режим доступа: https://webhamster.ru/mytetrashare/index/mtb0/1547639416ge5wngt4h8.

Приложение

Исходный код основных модулей приложения

1) Исходный код модуля изучения слов (Words.java)

package com.example.pupil;

import android.content.Context;

import android.database.Cursor;

import android.database.sqlite.SQLiteDatabase;

import android.os.Bundle;

import android.os.Handler;

import android.os.Message;

import android.support.v4.app.Fragment;

import android.view.LayoutInflater;

import android.view.Menu;

import android.view.MenuInflater;

import android.view.MenuItem;

import android.view.View;

import android.view.ViewGroup;

import android.widget.Button;

import android.widget.ProgressBar;

import android.widget.TextView;

public class Words extends Fragment implements View.OnClickListener {

Cursor c = null;

Cursor cc = null;

Button btn1, btn2, btn3, btn4, btn5, btn6, rightBtn;

TextView tw;

private DBHelper myDBHelper;

private SQLiteDatabase myDB;

Context thisContext;

int rightAnswer = -1;

int rusWId = -1;

int engWId = -1;

boolean language_change = true;

boolean one_click = true;

String rightWord;

ProgressBar progressBar;

boolean gameOn = false;

Handler mHandler;

long startTime;

/*Group groupBtn;*/

public Words() {

}

public static Words newInstance() {

return new Words();

}

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setHasOptionsMenu(true);

setRetainInstance(true);

}

@Override

public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {

inflater.inflate(R.menu.main, menu);

}

@Override

public boolean onOptionsItemSelected(MenuItem item) {

switch (item.getItemId()) {

case R.id.item_change:

if (language_change) {

language_change = false;

printWord();

} else {

language_change = true;

printWord();

}

break;

}

return true;

}

@Override

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

View view = inflater.inflate(R.layout.fragment_words, container, false);

thisContext = getActivity();

myDBHelper = new DBHelper(thisContext);

myDBHelper.updateDataBase();

myDB = myDBHelper.getWritableDatabase();

btn1 = (Button) view.findViewById(R.id.btn1);

btn2 = (Button) view.findViewById(R.id.btn2);

btn3 = (Button) view.findViewById(R.id.btn3);

btn4 = (Button) view.findViewById(R.id.btn4);

btn5 = (Button) view.findViewById(R.id.btn5);

btn6 = (Button) view.findViewById(R.id.btn6);

tw = (TextView) view.findViewById(R.id.textView);

progressBar = (ProgressBar) view.findViewById(R.id.progressBar);

/*groupBtn = (Group) view.findViewById(R.id.groupBtn);*/

btn1.setOnClickListener(this);

btn2.setOnClickListener(this);

btn3.setOnClickListener(this);

btn4.setOnClickListener(this);

btn5.setOnClickListener(this);

btn6.setOnClickListener(this);

printWord();

return view;

}

@Override

public void onClick(View v) {

if (one_click) {

one_click = false;

switch (v.getId()) {

case R.id.btn1:

selectAnswer(btn1, 1);

break;

case R.id.btn2:

selectAnswer(btn2, 2);

break;

case R.id.btn3:

selectAnswer(btn3, 3);

break;

case R.id.btn4:

selectAnswer(btn4, 4);

break;

case R.id.btn5:

selectAnswer(btn5, 5);

break;

case R.id.btn6:

selectAnswer(btn6, 6);

break;

}

startTime = System.currentTimeMillis();

mHandler = new Handler(){

public void handleMessage(Message msg){

super.handleMessage(msg);

if(gameOn) {

long seconds = ((System.currentTimeMillis() - startTime));

progressBar.setProgress((int)seconds);

}

mHandler.sendEmptyMessageDelayed(0, 10);

}

};

gameOn = true;

mHandler.sendEmptyMessage(0);

Handler handler = new Handler();

handler.postDelayed(new Runnable() {

@Override

public void run() {

printWord();

one_click = true;

gameOn = false;

}

}, 1500);

}

}

public void selectAnswer(Button btn, int id) {

String sql;

if (rightAnswer == id) {

btn.setBackgroundResource(R.drawable.btn_right_answer);

btn.setTextColor(getResources().getColor(R.color.textColorPrimary));

sql = "INSERT INTO history(id_eng_words, id_rus_word, correctly)"

+ "VALUES (?, ?, ?)";

myDB.execSQL(sql, new String[]{String.valueOf(engWId), String.valueOf(rusWId), "Y"});

} else {

btn.setBackgroundResource(R.drawable.btn_wrong_answer);

btn.setTextColor(getResources().getColor(R.color.textColorPrimary));

rightBtn.setBackgroundResource(R.drawable.btn_right_answer);

rightBtn.setTextColor(getResources().getColor(R.color.textColorPrimary));

sql = "INSERT INTO history(id_eng_words, id_rus_word, correctly)"

+ "VALUES (?, ?, ?)";

myDB.execSQL(sql, new String[]{String.valueOf(engWId), String.valueOf(rusWId), "N"});

}

}

public void printWord() {

String engWName = "";

String rusWName = "";

int wrong_minus_right = 2;

int last_time = 5;

String[] wrongWords = new String[5];

int a = 1; // начальное значение диапазона для кнопок

int b = 6; // конечное значение диапазона для кнопок

rightAnswer = a + (int) (Math.random() * b);

progressBar.setProgress(0);

for (int i = 0; i < 2; i++) {

if (i == 0) {

wrong_minus_right = 3;

last_time = 10;

} else if (i == 1) {

wrong_minus_right = -100;

last_time = 4320; // три дня

}

c = myDB.rawQuery("SELECT ifnull(max(name_eng_word), -1),\n" +

" _id_eng_word,\n" +

" _id_rus_word,\n" +

" name_rus_word,\n" +

" wrong_minus_right,\n" +

" last_time\n" +

" FROM (\n" +

" SELECT name_eng_word,\n" +

" _id_eng_word,\n" +

" _id_rus_word,\n" +

" name_rus_word,\n" +

" wrong_minus_right,\n" +

" last_time\n" +

" FROM (\n" +

" SELECT name_eng_word,\n" +

" _id_eng_word,\n" +

id_rus_word,\n" +

" name_rus_word,\n" +

" wrong_minus_right,\n" +

" CAST ( (julianday('now', 'localtime') - julianday(cur_date) ) " +

"* 24 * 60 AS INTEGER) AS last_time\n" +

" FROM (\n" +

" SELECT ( (\n" +

" SELECT count( * ) \n" +

" FROM history h\n" +

" WHERE h.correctly = 'N' AND \n" +

" h.id_rus_word = rw._id_rus_word AND \n" +

" h.id_eng_words = ew._id_eng_word\n" +

" )\n" +

"- (\n" +

" SELECT count( * ) \n" +

" FROM history h\n" +

" WHERE h.correctly = 'Y' AND \n" +

" h.id_rus_word = rw._id_rus_word AND \n" +

...

Подобные документы

  • Проектирование системы управления базами данных. Особенности реализации в MS SQL. Разработка пользовательского интерфейса. Тестирование и отладка приложения. Руководство пользователя и системного администратора. Анализ и методы разработки приложений.

    курсовая работа [867,9 K], добавлен 16.07.2013

  • Разработка логической схемы базы данных автомобилестроительного предприятия. Инфологическое моделирование системы. Создание графического интерфейса пользователя для базы данных средствами языка программирования Java. Тестирование программных средств.

    курсовая работа [2,3 M], добавлен 16.12.2013

  • Знакомство с особенностями и этапами разработки базы данных "Летопись острова Санта Белинда". Анализ основных компонентов MS Access. Форма как объект базы данных, который можно использовать для создания интерфейса пользователя для приложения базы данных.

    курсовая работа [2,1 M], добавлен 25.05.2015

  • Определение требований к операционной обстановке. Инфологическое, логическое проектирование. Разработка программного обеспечения. Структура приложения, его тестирование. Выбор СУБД и других инструментальных программных средств. Описание схемы базы данных.

    курсовая работа [2,4 M], добавлен 25.12.2013

  • Проектирование и создание пользовательского интерфейса и визуального программирования в среде Delphi. Система управления базой данных. Локальные и глобальное пользовательские представления. Анализ предметной области. Назначение форм и компонентов.

    курсовая работа [758,0 K], добавлен 07.03.2014

  • Разработка программного приложения WindowsForms для работы с базой данных на языке высокого уровня C# в автономном режиме с использованием ADO.NET. Проектирование реляционной модели базы данных, интерфейса приложения, основных функций и возможностей.

    курсовая работа [4,3 M], добавлен 30.06.2015

  • Создание информационную систему "Сеть магазинов" в виде реляционной базы данных и операциями над ней. Создание базы данных в СУБД DB2. Описание и обоснование выбора состава технических и программных средств. Разработка пользовательского приложения.

    курсовая работа [1,1 M], добавлен 19.05.2013

  • Создание приложения для контроля знаний студентов, программ-тестов, созданных с помощью пакета прикладных программ Microsoft Office. Основные требования к его структуре и функциональности, взаимосвязь компонентов. Составление и листинг программы.

    курсовая работа [900,3 K], добавлен 03.06.2014

  • Выбор состава технических и программных средств разработки системы. Описание входных и выходных данных. Выбор модели базы данных. Разработка подсистемы наполнения базы данных, формирования отчетов. Разработка интерфейса пользователя, тестирование системы.

    курсовая работа [3,7 M], добавлен 04.12.2014

  • Разработка Web-приложения для ООО "Научно-производственная фирма по применению информационных технологий в электрических сетях". Техническое задание, проектирование процессов, создание базы данных, разработка дизайна, тестирование и отладка сайта.

    дипломная работа [3,8 M], добавлен 24.06.2011

  • Разработка приложения, которое содержит информацию о гостях, о номерах, об оплате с целью автоматизации процесса регистрации в гостинице. Проектирование базы данных по технологии "Клиент-сервер". Специфика разработки пользовательского интерфейса.

    курсовая работа [1,5 M], добавлен 29.12.2013

  • Спецификация требований к разрабатываемому приложению. Разработка структурной схемы интерфейса. Описание алгоритма шифрования DES. Разработка программного кода приложения "DES". Проведение исследования основных шагов для генерации ключей и шифрования.

    курсовая работа [398,4 K], добавлен 13.12.2022

  • Понятие, законодательное регулирование и виды электронных подписей. Разработка структурной схемы приложения и базы данных. Создание диаграммы прецедентов и классов. Проектирование интерфейса программы. Анализ руководства пользователя web-приложения.

    дипломная работа [869,8 K], добавлен 12.08.2017

  • Описание алгоритмов поиска пути. Диаграмма объектов предметной области. Разработка структурной схемы. Проектирование интерфейса пользователя. Выбор и обоснование комплекса программных средств. Разработка пользовательского меню. Диаграмма компонентов.

    курсовая работа [3,5 M], добавлен 10.04.2015

  • Возможности извлечения информации из баз данных. Программы для создания и обработки базы данных и создания пользовательского интерфейса. Обоснование выбора программных средств для реализации. Создание базы данных, интерфейса и базы данных к интерфейсу.

    курсовая работа [2,9 M], добавлен 24.03.2023

  • Обзор подходов к разработке музейных приложений с элементами дополненной реальности, формирование требований к ним. Выбор методов разработки приложения, разработка пользовательского интерфейса. Принципы тестирования. Реализация раздела "Распознавание".

    дипломная работа [2,8 M], добавлен 03.07.2017

  • Проектирование базы данных для учета поступления пациентов и проведенного лечения, ведение архива выписанных пациентов. Определение требований поддержки целостности данных. Тестирование программы и руководство пользователю. Листинг программных модулей.

    курсовая работа [3,3 M], добавлен 28.04.2014

  • Процесс разработки базы данных для хранения и обработки информации. Ключи, индексы, триггеры, хранимые процедуры. Разработка пользовательского интерфейса и базы данных. Основные инструментальные средства для разработки клиентской и серверной частей.

    дипломная работа [225,0 K], добавлен 18.05.2013

  • Автоматизация системы снятия показаний счетчиков энергии. Разработка базы данных и клиентского приложения для структур жилищно-коммунального хозяйства, занимающихся составлением квитанций. Описание предметной области. Тестирование клиентского приложения.

    курсовая работа [953,3 K], добавлен 01.09.2016

  • Разработка структурной диаграммы программного модуля. Представление схемы для основных расчетов выбранного приложения для создания прямоугольной матрицы. Особенности создания пользовательского интерфейса. Тестирование и отладка спроектированного модуля.

    курсовая работа [648,4 K], добавлен 27.05.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.