close

Вход

Забыли?

вход по аккаунту

Андреенков Александр Борисович. Методика сбора информации о тренировках пользователя для формирования рекомендаций по изменению тренировочного плана

код для вставки
АННОТАЦИЯ
ВКР 102 с., 15 рис., 1 табл., 25 источников.
АНАЛИЗ,
ИССЛЕДОВАНИЕ,
МЕТОДИКА,
СБОР
ДАННЫХ,
ФОРМИРОВАНИЕ РЕКОМЕНДАЦИЙ.
Выпускная квалификационная работа посвящена разработке методики
сбора
информации
о
тренировках
пользователя
для
формирования
рекомендаций по изменению тренировочного плана.
Выпускная квалификационная работа состоит из введения, четырех
глав, заключения, списка литературы и приложения А.
В первой главе обосновывается актуальность данной работы,
рассматриваются
существующие
системы
сбора
информации
о
тренировочном процессе, выбираются инструментальные средства для
построения
систем
сбора
информации
о
тренировочном
процессе,
формализуются требования к системам сбора информации о тренировках
пользователя для формирования рекомендаций.
Во второй главе исследуются методики сбора информации о
тренировочном
процессе,
определяются
основные
физиологические
особенности, учитываемые при формировании тренировочной программы,
разрабатывается методика сбора информации о тренировочном процессе для
формирования рекомендаций по изменению тренировочного плана.
В
третьей
главе
описывается
проектирование
сервиса
сбора
информации о тренировочном процессе пользователя для формирования
рекомендаций по изменению тренировочного плана.
В четвертой главе описывается логика диалога с пользователем
прототипа сервиса сбора информации о тренировочном процессе для
формирования рекомендаций, а также описываются экранные формы.
В
заключении
сделаны
квалификационной работе.
основные
выводы
по
выпускной
4
СОДЕРЖАНИЕ
ВВЕДЕНИЕ
6
1 АНАЛИЗ СУЩЕСТВУЮЩИХ РЕШЕНИЙ В ОБЛАСТИ ПОСТРОЕНИЯ
СИСТЕМ СБОРА ИНФОРМАЦИИ ДЛЯ ФОРМИРОВАНИЯ РЕКОМЕНДАЦИЙ
ПО ИЗМЕНЕНИЮ ТРЕНИРОВОЧНОГО ПЛАНА
10
1.1 Обзор существующих систем сбора информации о тренировочном процессе 10
1.2 Анализ подходов к построению систем сбора информации о тренировочном
процессе
16
1.3 Формализация требований к системам сбора информации о тренировочном
процессе для формирования рекомендаций
23
1.4 Постановка задач исследования
37
2 СУЩЕСТВУЮЩИЕ МЕТОДЫ СБОРА ИНФОРМАЦИИ О
ТРЕНИРОВОЧНОМ ПРОЦЕССЕ ДЛЯ ФОРМИРОВАНИЯ РЕКОМЕНДАЦИЙ
ПО ИЗМЕНЕНИЮ ТРЕНИРОВОЧНОГО ПЛАНА
39
2.1 Исследование и анализ подходов к сбору информации о тренировочном
процессе для формирования рекомендаций
39
2.2 Определение основных физиологических особенностей человека для
формирования тренировочной программы
42
2.3 Методика сбора информации о тренировочном процессе для формирования
рекомендаций по изменению тренировочного плана
50
3 ПРОЕКТИРОВАНИЕ ПРОТОТИПА СЕРВИСА СБОРА ИНФОРМАЦИИ О
ТРЕНИРОВОЧНОМ ПРОЦЕССЕ ДЛЯ ФОРМИРОВАНИЯ РЕКОМЕНДАЦИЙ
ПО ИЗМЕНЕНИЮ ТРЕНИРОВОЧНОГО ПЛАНА
62
3.1 Логическая схема построения сети прототипа сервиса сбора информации о
тренировочном процессе для формирования рекомендаций
62
3.2 Структуры данных, используемые прототипом сервиса сбора информации о
тренировочном процессе для формирования рекомендаций
67
5
4 РЕАЛИЗАЦИЯ ПРОТОТИПА СЕРВИСА СБОРА ИНФОРМАЦИИ О
ТРЕНИРОВОЧНОМ ПРОЦЕССЕ ДЛЯ ФОРМИРОВАНИЯ РЕКОМЕНДАЦИЙ
ПО ИЗМЕНЕНИЮ ТРЕНИРОВОЧНОГО ПЛАНА
74
4.1 Реализация диалога с пользователем прототипа сервиса сбора информации о
тренировочном процессе для формирования рекомендаций
74
4.2 Экранные формы прототипа сервиса сбора информации о тренировочном
процессе для формирования рекомендаций
81
ЗАКЛЮЧЕНИЕ
86
СПИСОК ЛИТЕРАТУРЫ
87
ПРИЛОЖЕНИЕ А – ЛИСТИНГ КОДА ОСНОВНЫХ ФУНКЦИЙ
91
УДОСТОВЕРЯЮЩИЙ ЛИСТ
100
ИНФОРМАЦИОННО-ПОИСКОВАЯ ХАРАКТЕРИСТИКА ДОКУМЕНТА НА
ЭЛЕКТРОННОМ НОСИТЕЛЕ
101
6
ВВЕДЕНИЕ
На сегодняшний день спорт очень популярен в России. Многие люди
приобщаются к спортивному образу жизни, начиная бегать, заниматься на
спортивных площадках, в фитнес-залах, осознавая, что знаменитое латинское
крылатое выражение «в здоровом теле – здоровый дух» - это не пустые слова.
Каждый год открываются новые фитнес-центры, что позволяет разместить
больше желающих
«приобщиться к прекрасному».
В настоящее
время
большинство людей ведут в основном сидячий образ жизни, работая в различных
офисах, поэтому у них накапливается большое количество нерастраченной
физической энергии. Занятия в тренажерных залах как раз способствуют
высвобождению этой энергии.
Впервые придя в зал, начинающие спортсмены, желающие добиться
результатов, должны определиться с программой тренировок. Иногда для этого
пользуются уже написанными тренировками и адаптируют их для себя, либо
изучают в интернете записи блогеров, рассказывающих о построении тренировок.
Но есть и третий вариант – воспользоваться платными услугами опытных
тренеров. После того, как спортсмен определился с программой, по которой он
будет заниматься, ему следует задуматься об учете достижений, полученных в
ходе тренировочного процесса. Как сказал 6-ти кратный победитель «Мистер
Олимпия» Дориан Ятс: «Если культурист не ведет письменных записей, это всего
лишь означает, что к «качалке» он относится несерьезно» [1]. Учет достижений
помогает отслеживать прогресс и создает мотивацию для дальнейших занятий.
Именно для этого занимающемуся потребуется дневник тренировок, где он может
в течении тренировки, либо после нее, внести в него данные о тренировочном
процессе. Кроме того, дневник позволит придать организованность занятиям
спортом. Дневник тренировок предоставляет функцию обратной связи для
корректировки плана тренировок. Благодаря дневнику тренер может удаленно
наблюдать за своими подопечными, что позволит отслеживать тенденции их
7
физического развития, а соответственно и подкорректировать программу
тренировок для достижения поставленных целей.
Как правило, многие используют для хранения и просмотра результатов
тренировок
тетрадь,
в
которую
записывают
выполненные
упражнения,
количества подходов, веса и прочие параметры, изменения которых желают
отслеживать с течением времени. Однако это не всегда эффективно – тетрадь
можно забыть или потерять, тогда как со смартфоном большинство людей не
расстается даже во время важных мероприятий. Добавление дополнительного
приложения на телефон позволит не только избавиться от лишних забот, но и
восстановить
всю информацию при
утрате
самого
гаджета.
Используя
современные технологии можно автоматизировать процесс ведения дневников
тренировок, что даст следующие преимущества:
1.
Статистика результатов выполнения упражнений будет отображаться
в цифровом, а также в графическом виде.
2.
Статистикой можно будет поделиться с другими пользователями,
например, для сравнения результатов.
3.
Тренер сможет отслеживать результаты подопечных, и на ее основе
составлять наиболее подходящие программы тренировок для них.
4.
Составляя программу тренировок для нового клиента, тренер сможет
использовать уже ранее составленные программы, немного адаптировав их с
учетом физиологических особенностей клиента.
Автоматизировать ведение дневника тренировок позволят электронные
версии дневников, то есть такие, записи которых создаются и хранятся на
электронных носителях информации. В зависимости от видов носителей можно
выделить: онлайн-сервисы и мобильные приложения [2].
Принцип работы онлайн-дневников тренировок заключается в следующем:
любой желающий может зарегистрироваться на сайте, составить себе программу
тренировок, либо использовать уже имеющуюся, и затем, следуя расписанному
плану, заниматься, отмечая свои показатели в дневнике тренировок.
8
Однако, автоматизированные дневники, разработанные в существующих
сервисах, служат на данный момент лишь как хранилище данных о результатах
тренировочного процесса. Тренер должен просматривать их, чтобы отслеживать
развитие пользователей согласно поставленной цели. Развитие информационных
технологий позволит упростить работу тренера: автоматизация процесса поиска
состояний, не соответствующих заданной цели приведет к быстрому определению
«узких» мест тренировочного процесса и укажет на упражнения, требующие
корректировки для каждого конкретного клиента.
Целью выпускной квалификационной работы является повышение
качества составления тренировочного плана.
Основными задачами являются:

обзор существующих методик сбора информации о тренировочном
процессе;

анализ подходов к построению систем сбора информации о
тренировочном процессе;

формализация
требований
к
системам
сбора
информации
о
тренировочном процессе для формирования рекомендаций;

разработка методики сбора информации о тренировочном процессе
для формирования рекомендаций по изменению тренировочного плана;

проектирование прототипа информационной системы использующего
созданную методику;

разработка и реализация прототипа сервиса сбора информации о
тренировочном процессе для формирования рекомендаций по изменению
тренировочного плана.
Создаваемый сервис должен повысить качество программ тренировок за
счет обработки информации о текущем состоянии пользователя и выявления
узких мест тренировочного процесса, а также за счет сокращения времени на
корректирование программ тренировок, что и будет являться практической
ценностью выпускной квалификационной работой.
9
Основные положения данной работы докладывались на следующих
конференциях:
1.
I молодежная научно-практическая конференция с международным
участием «Естественнонаучные, инженерные и экономические исследования в
технике, промышленности, медицине и сельском хозяйстве». – БелГУ, 12 апреля
2017.
2.
Международная научно-практическая конференция «Экономическая
безопасность в современной России: стратегия противодействия угрозам и
перспективы устойчивого геополитического развития» 27-28 июня 2017.
10
1 АНАЛИЗ СУЩЕСТВУЮЩИХ РЕШЕНИЙ В ОБЛАСТИ
ПОСТРОЕНИЯ СИСТЕМ СБОРА ИНФОРМАЦИИ ДЛЯ
ФОРМИРОВАНИЯ РЕКОМЕНДАЦИЙ ПО ИЗМЕНЕНИЮ
ТРЕНИРОВОЧНОГО ПЛАНА
1.1 Обзор существующих систем сбора информации о тренировочном
процессе
В связи с популярностью в нашей стране здорового образа жизни, многие
начинают посещать спортивные учреждения, такие как фитнес-залы или
тренажерные центры. Развитие социальных сетей, подобных Instagram, Вконтаке
и
Telegram,
привело
к
появлению
множества
блоггеров,
агитирующих
поддерживать здоровый образ жизни и мотивирующих своих подписчиков,
выкладывая фотографии и видеоролики со своих тренировок.
Однако не все из них занимаются самостоятельно, многие используют
программы, составленные профессиональными тренерами, которые не только
учитывают особенности клиента при создании тренировок, но и поможет
настроить тренировочный процесс в целом.
Важно понимать, что тренировочный процесс состоит не только из
выполняемых физических упражнений, выполняемых в ходе тренировок. Не
менее важными составляющими тренировочного процесса являются питание и
распорядок дня. Как пишет автор одного из спортивных блогов: «Продуманная
организация тренировочного процесса – важная и при этом непростая задача для
каждого спортсмена. Мотивация, режим, сбалансированное питание, график
занятий, развитие личностных качеств – все это непременно сказывается на
результатах тренировок...» [3].
Тренировками задается организму направление, в котором ему требуется
изменяться. Диетой предоставляют строительные ресурсы для осуществления
этих изменений. Восстановлением организму обеспечивается возможность для
проведения этих изменений. Недостаток внимания к любому из этих параметров
ведет к ухудшению конечного получаемого результата.
11
Таким образом, для получения актуальной информации о текущем
состоянии спортсмена необходимо хранить данные о тренировках, питании и
распорядке дня. Рассмотрим сервисы, существующие на сегодняшний день и
реализующие автоматизированное хранение необходимой информации:
iWorklog.ru. Сервис предоставляет функционал для самостоятельного
1.
создания
комплексов
комплексами
упражнений,
упражнений,
кроме
которыми
того,
поделились
можно
другие
воспользоваться
пользователи.
Недостатком, на мой взгляд, является отсутствие возможности редактирования
созданной другим пользователем программы тренировок. Присутствует дневник
питания с базой продуктов, пополняемой пользователями. Можно выбрать
продукты и их порционность, потребляемые в тот или иной прием пищи. После
заполнения можно посмотреть информацию о калориях БЖУ, потребляемых в
определенный день, выбранный в календаре, если для этого дня заполнена
информация. Также к недостаткам следует отнести отсутствие подсистемы для
создания распорядка дня и отсутствие мобильных приложений для данного
сервиса [4].
2.
GymApp. Сервис состоит из веб-сайта и мобильного приложения,
реализованного на платформах android и ios. На сайте содержится слоган,
поясняющий основное назначение данного сервиса: «Это онлайн дневник
тренировок, который позволяет вести учет всех тренировок и видеть результат
физического развития.». Приложение содержит обширную базу упражнений на
различные группы мышц, интерфейс довольно удобен, но реклама и не очень
удобные графики портят впечатление, отвлекая от процесса тренировки. Имеется
обратная связь с методистом проекта – профессиональным фитнес-тренером, но
так
как
он
один,
то
не
сможет
заменить
персональных
тренеров.
Кроме того, в данном сервисе нет дневника питания и распорядка дня [5].
3.
IQ-BODY. Большой портал о фитнесе, бодибилдинге, а также о
здоровом образе жизни в целом. Предоставляет возможность подобрать
программу тренировок и питания, разработанную профессионалами, для своей
цели или составить собственную программу тренировок, вести дневник
12
тренировок, предварительно оплатив эту функцию. Сервис поддерживает работу с
тренерами, которые согласны за определенную плату составить программу
тренировок, и корректировать ее в процессе тренинга. Недостатком является
отсутствие мобильного приложения, а также возможности вести дневник питания
и хранить данные о распорядке дня [6].
У некоторых из рассмотренных онлайн-дневников нет мобильных
приложений и возможности хранить информацию о распорядке дня, что является
явным недостатком. Заполнять дневник тренировок через онлайн-сервисы уже по
окончании тренировки не столь удобно, как в процессе тренировки, например, во
время отдыха между подходами, поэтому тут на помощь приходят более
компактные устройства - смартфоны. Рассмотрим преимущества использования
смартфонов:

мобильность и компактные размеры;

универсальность и доступность в любое время.
Смартфоны – постоянные спутники человечества, поэтому в любой
момент есть возможность использовать мобильное приложение дневника, чтобы
просмотреть историю тренировок, поделиться статистикой, внести какие-то
комментарии о тренировке, о питании или распорядке дня либо отредактировать
уже имеющиеся записи.
На рынке представлено достаточно большое количество аналогов
мобильных приложений дневников тренировок и питания. Наиболее популярны
из них следующие:
1.
GymBoom. Мобильное приложение, первое в списке доступных для
скачивания из Google Play. Предоставляет возможность покупки готовых
программ тренировок, а также базу упражнений для самостоятельного
составления, что подойдет по большей части для опытных спортсменов.
Позволяет сохранять результаты каждого подхода, каждого упражнения и
тренировки в целом. Не позволяет напрямую взаимодействовать с личным
тренером, что является недостатком [7].
13
2.
GymUp. Приложение для тренировок, в котором можно выбрать
подходящую тренировочную программу из справочника или составить свою. К
достоинствам можно отнести возможность переноса замеров и программ в Excel
документ или в приложение под IOS, но в тоже время недостаток – отсутствие
онлайн-синхронизации
и
возможности
редактировать
и
просматривать
тренировки и результаты с компьютера [8].
3.
Training Note: Журнал тренировок. Приложение, позволяющее
самостоятельно составлять программы тренировок, что подойдет больше для
профессионалов, но не для новичков, так как отсутствуют составленные
программы тренировок. Мобильное приложение не имеет онлайн-версии для
просмотра и заполнения с компьютера. Персональных тренеров в системе нет, так
что занимающиеся представлены сами себе [9].
Все рассмотренные сервисы предполагают либо использование готовых
программ тренировок, либо самостоятельное создание упражнений и программ
тренировок, но ни один из них не поддерживает создание тренировки тренером с
обратной связью в форме дневника тренировок от тренирующегося. Лишь
некоторые из них содержат также в себе дневник питания, и то, зачастую, часть,
связанная с питанием, содержит лишь программы питания, без хранения
информации о том, как именно пользователь старается придерживаться той или
иной диеты. И ни в одном из сервисов нет распорядка дня, таким образом клиент
должен сам позаботиться о распределении тренировок по времени, используя
сторонние сервисы.
По таблице 1 видно, что среди аналогов сервисов дневников нет решения,
удовлетворяющего всем запросам пользователей. В каждом приведенном аналоге
лишь частично реализованы необходимые функции для полноценного хранения
данных о тренировочном процессе. К тому же все описанные аналоги не
предлагают комплексного решения по хранению данных о тренировочном
процессе, что будет негативно сказываться на тренировках пользователя, так
тренер не будет получать информацию о состоянии пользователя в достаточном
объеме.
Таблица 1 - Таблица сравнения аналогов дневников
14
15
Кроме
того,
использование
по
отдельности
онлайн-дневников
и
мобильных приложений, не объединенных в единый сервис, не позволяет в
полной мере использовать преимущества автоматизации ведения дневников
тренировок и питания. Обосновать такой вывод довольно просто: использование
онлайн-версии позволит отобразить данные в более удобном для чтения и
редактирования виде, что связано с большим размером экрана, а мобильное
приложение больше подойдет для использования именно в зале во время
тренировки.
Поэтому необходимо создать сервис, состоящий из веб-версии и
мобильной версии, используя который пользователь сможет сохранять данные о
своем питании, распорядке дня и тренировках – данные, формирующие
информацию о текущем состоянии пользователя. Используя эти данные можно
будет анализировать текущее состояние спортсмена и выявлять узкие места
тренировочного процесса для дальнейшего корректирования тренировочного
плана.
Именно это и выделит разрабатываемый сервис из списка остальных, так
как в остальных сервисах предполагается, что если пользователь и заполняет
дневник тренировок, то как правило, он сам и просматривает информацию в нем,
отслеживая прогресс. В некоторых существующих сервисах также этим может
заниматься тренер, то есть тренер должен периодически проверять информацию в
дневниках своих подопечных. В случаях, когда у тренера много подопечных,
отслеживание отклонений от поставленной клиентом цели становится немного
проблематично. Поэтому, для разрабатываемого сервиса следует создать и
внедрить
методику
сбора
информации
о
тренировочном
процессе
для
дальнейшего формирования рекомендаций, что позволит автоматизировать поиск
узких мест тренировочного процесса, и существенно облегчит работу тренеров.
16
1.2 Анализ подходов к построению систем сбора информации о
тренировочном процессе
Система сбора информации о тренировках пользователя для формирования
рекомендаций должна быть реализована в виде веб-сервиса и мобильного
приложения. Следовательно, необходимо выбрать средства разработки для
реализации веб сервиса, а затем – средства разработки для реализации
мобильного приложения. Уклон сделаем в сторону простых, но популярных
решений, не требующих временных, а также финансовых затрат на создание
необходимого сервиса.
Возможно выделение трех следующих уровне абстракции технологий:
1.
Чистый язык — это материал, из которого можно сделать все, что
угодно. Ограничивается лишь возможностями выбранного языка. На чистом
языке написаны многие крупнейшие проекты мира с посещаемостью в сотни
миллионов и миллиардов пользователей, такие как YouTube, Dropbox, Twitter,
Instagram, Facebook, Pinterest, LinkedIn, Amazon и другие.
2.
Фреймворк — это некая среда разработки для программиста с
готовыми правилами и инструментами. Фреймворк, с одной стороны, помогает и
ускоряет разработку, а с другой, накладывает определенные ограничения. На
фреймворках делаются проекты средней сложности с посещаемостью в
миллионы.
3.
CMS — это уже готовое решение, конструктор, в котором по частям
собирается нужный проект. Причем, проект скорее настраивается, чем
программируется. В связи с этим, множество ограничений загоняют в рамки
использующих
данное
решение.
На
CMS
делаются
простые
сайты
с
посещаемостью до миллиона пользователей в месяц [10].
Из трех перечисленных выше уровней абстракции использовать чистый
язык не имеет смысла, так как разрабатываемый сервис не претендует на роль
крупнейшего проекта мира с посещаемостью в миллиарды пользователей и
затраты на написание его полностью на чистом языке не окупятся. Третий
вариант – коробочное решение CMS – тоже не подходит, так как требования к
17
разрабатываемому сервису и его тип весьма специфичны для существующих
решений. Поэтому, следует рассмотреть существующие фреймворки для
разработки веб-сервисов и выбрать наиболее подходящий.
Перед
выбором
фреймворка
выберем
язык
программирования,
подходящий для разработки веб-сервисов. Для этого приведем краткую
характеристику наиболее популярным языкам:
1.
PHP – используется, в основном, для простых и средних проектов.
Очень много коробочных решений. Очень много программистов, использующих
его. С выходом последней версии языка под номером 7, он получил
действительно мощные возможности.
2.
Python – современный язык, разработка на нем быстрая и
качественная. Используют его для средних и больших проектов. Синтаксис ядра
Python минималистичен.
3.
Ruby — современный язык, разработка на нем также быстрая. Его
используют в основном для разработки простых и средних проектов, часто
разрабатывают стартапы. Java — разработка на нем очень долгая и дорогая. Его
используют в основном для больших проектов со специфическими требованиями.
4.
C# — аналог Java, также используют для больших проектов, часть в
сфере FinTech.
5.
JS — очень быстро развивается, тренд последних лет. Огромное
количество наработок, и можно писать все, что угодно, даже игры. Его
используют для средних и больших проектов, но действительно мощные
возможности этот язык получил недавно, потому примеров больших проектов
пока мало.
Из списка приведенных выше проектов PHP наиболее популярный, он
имеет большое комьюнити, прекрасную документацию, большой набор готовых
библиотек и расширений языка, может использоваться в изолированной среде,
может быть развернут почти на любом сервере. PHP подходит для написания веб
приложения данного типа и обладает всем необходимым инструментом для
реализации. Приложение проще и дешевле поддерживать, так как людей,
18
пишущих на данном языке большое количество. Присутствуют все необходимые
дополнительные библиотеки, которые понадобятся для разработки. Именно
поэтому в качестве языка разработки был выбран данный язык.
Кроме
языка
программирования
необходимо
еще
было
выбрать
фреймворк, который облегчит разработку и поддержку проекта. Фреймворков для
данного языка существует огромное количество. В силу небольшого опыта
программирования на фрейворке CakePHP был выбран именно он.
Перейдем к выбору технологий для разработки мобильного приложения. В
мобильных приложениях в последнее время используется два подхода:

нативная разработка;

кроссплатформенные технологии.
Нативная ведется на оригинальных языках программирования, в частности
Java для Android и Swift для iOS.
Кроссплатформенных технологий сейчас довольно много, они есть на базе
разных языков программирования, в частности: Apache Cordova, React Native,
Xamarin и другие.
Сложные приложения всегда пишутся на нативных технологиях, так как с
кроссплатформой часто возникают проблемы: невозможно реализовать некоторые
необходимые функции кроссплатформенных технологиях, повышается нагрузка
на оперативную память устройства, батарея устройства быстро разряжается и так
далее. Многие разработчики стараются использовать кроссплатформенные
технологии, что позволит им использовать один код, который сработает сразу и
на iOS и на Android.
Однако, так как нативная разработка появилась раньше и развивается
более длительное время, то соответственно, приверженцев у нее больше. А раз
больше разработчиков, использующих нативную разработку, то, следовательно,
больше различных библиотек, то есть готовых решений, создается для такого
вида разработки. Стоит конечно отметить, что развитие кроссплатформенной
разработки тоже не стоит на месте и множество библиотек переписываются из
19
нативной разработки в кроссплатформенную, однако на данный момент,
кроссплатформенная разработка отстает в развитии.
Кроме того, для нативной Android разработки можно найти много
документации, в том числе на сайте создателей данной платформы Google.
Поэтому, тем, кто только начинает разрабатывать проекты для мобильных
платформ, гораздо проще и качественнее применять нативную разработку,
нежели кроссплатформенную.
Именно поэтому для разработки мобильного приложения был выбрать
вариант нативной разработки. Кроме того, следует отметить, в связи с
преобладанием в регионе, где проводится разработка сервиса, пользователей
Android над пользователями iOS, было принято решение разработать мобильное
решение сначала для платформы Android, а в дальнейшем, провести разработку
для iOS.
В связи с этим, рассмотрим существующие IDE для разработки на Java под
Android:
1.
Eclipse – долго время был основным IDE для разработки под Android
на протяжении многих лет, с момента появления данной платформы. Поэтому,
многие уроки, ресурсы, видео и скриншоты были сделаны с использованием
Eclipse.
2.
Android Studio – флагман среди IDE под Android. С 9 октября 2014
года Google заменила официальную среду разработки с Eclipse на Android Studio.
С тех пор многие уроки и ресурсы были перезаписаны с использованием данной
среды разработки. Кроме того, среда разработки создана специально для
разработки под Android, как видно из названия [11], [12].
Как видно из краткого описания существующих IDE, следует выбрать
Android Studio.
После выбора технологий для разработки вер-сервиса и мобильного
приложения следует определиться с выбором СУБД.
20
Существует множество СУБД, поэтому вспомнив, что требуется простое и
финансово не затратное решение, то отсечем все платные СУБД, оставив лишь
наиболее распространенные среди бесплатных:
1.
SQLite – очень мощная встраиваемая система управления;
2.
MySQL – самая популярная и распространённая СУБД;
3.
PostgreSQL – наиболее продвинутая СУБД.
Преимущества SQLite:

файловая структура - вся база данных состоит из одного файла,
поэтому её очень легко переносить на разные машины;

отличная при разработке и тестировании - в процессе разработки
приложений
часто
появляется
необходимость
масштабирования.
SQLite
предлагает всё что необходимо для этих целей, так как состоит всего из одного
файла и библиотеки написанной на языке C.
Недостатки SQLite:

отсутствие системы пользователей - более крупные СУБД включают в
свой состав системы управления правами доступа пользователей. Обычно
применения этой функции не так критично, так как эта СУБД используется в
небольших приложениях;

отсутствие возможности увеличения производительности.
Преимущества MySQL:

простота
в
работе
–
установить
MySQL
довольно
просто.
Дополнительные приложения, например, GUI, позволяет довольно легко работать
с БД;

богатый
функционал
–
MySQL
поддерживает
большинство
функционала SQL;

безопасность – большое количество функций, обеспечивающих
безопасность, которые поддерживается по умолчанию;

масштабируемость – MySQL легко работает с большими объемами
данных и легко масштабируется;
21

скорость – упрощение некоторых стандартов позволяет MySQL
значительно увеличить производительность.
Недостатки MySQL:

известные ограничения – по задумке в MySQL заложены некоторые
ограничения функционала, которые иногда необходимы в особо требовательных
приложениях;

проблемы с надежностью – из-за некоторых способов обработки
данных MySQL (связи, транзакции, аудиты) иногда уступает другим СУБД по
надежности;

медленная разработка – существуют жалобы на процесс разработки.
Стоит заметить, что существуют другие довольно успешные СУБД, созданные на
базе MySQL, например, MariaDB.
Достоинства PostgreSQL:

открытое ПО соответствующее стандарту SQL – PostgreSQL –
бесплатное ПО с открытым исходным кодом. Эта СУБД является очень мощной
системой;

большое количество дополнений – несмотря на огромное количество
встроенных функций, существует очень много дополнений, позволяющих
разрабатывать данные для этой СУБД и управлять ими;

расширения – существует возможность расширения функционала за
счет сохранения своих процедур;

объектность – PostrgreSQL это не только реляционная СУБД, но также
и объектно-ориентированная с поддержкой наследования и много другого.
Недостатки PostgreSQL

производительность;

популярность;

хостинг – в силу выше перечисленных факторов иногда довольно
сложно найти хостинг с поддержкой этой СУБД [13].
Из предложенных СУБД выбрана MySQL, так как у нее наиболее высокий
уровень безопасности, она легка в настройке и прекрасно масштабируется. Она
22
производительнее при простых операциях и популярнее, чем PostgreSQL, и в
отличие от SQLite поддерживает многопользовательский доступ к базам данных с
различием их по правам доступа.
Что касается реализации работы с СУБД на Android, то тут следует
использовать ORM – Object Relational Mapping.
Данный выбор позволит
использовать предоставляемый ORM высокий уровень абстракции, избавив от
необходимости конвертации объектов модели данных в скалярные величины,
поддерживаемые базой данных, а также избавит от написания шаблонного кода и
от беспокойства о структурах таблиц.
В силу имеющегося опыта работы с ORM был выбран OrmLite. К его
преимуществам относятся:

простая, но мощная аннотация;

поддержка многих БД, в том числе MySQL, SQLite, PostrgreSQL;

богатый функционал;

архитектура в соответствии с принципом KISS.
При
работе
сервиса
потребуется
формирование
оповещений
для
уведомления пользователей через мобильные устройства. Такие уведомления
будут приходить с сервера на мобильное устройство клиента, оповещая об
изменениях в тренировочном плане. В данном случае необходимо использовать
Push-уведомления. Для этого необходимо провести обзор существующих
решений и выбрать подходящее.
Наиболее известные сервисы для работы с Push-уведомлениями:

GCM – Google Cloud Messaging;

FCM – Firebase Cloud Messaging.
Google
Cloud
Messaging
представляет
собой
мобильный
сервис,
разработанный Google, что позволяет разработчикам сторонних приложений для
передачи данных уведомлений или информации от разработчиков запустить
серверы для приложений, ориентированных на операционную систему Google
Android, а также приложения и расширения, разработанных для Google Chrome
интернет-браузеров. Он доступен разработчикам бесплатно.
23
Firebase Cloud Messaging представляет собой новую, улучшенную версию
API Google Cloud Messaging под брендом Firebase. Он обладает всеми функциями
GCM, а также некоторыми дополнительными функциями. К преимуществам
можно отнести:

скорость работы;

готовая инфраструктура;

статистика от Google Analytics;

кроссплатформенность;

масштабируемость;

бесплатная поддержка от команды Firebase и специалистов по
разработке Google [14].
Кроме того, Google официально заявил, что по состоянию на 10 апреля
2018 года технологии GCM устарели, поэтому серверные и клиентские API GCM
будут удалены 11 апреля 2019 года [15].
Исходя из преимуществ Firebase, а также следуя рекомендациям Google
используем его при для настройки Push-уведомлений.
1.3 Формализация требований к системам сбора информации о
тренировочном процессе для формирования рекомендаций
Процесс сбора информации о тренировочном плане для формирования
рекомендаций включает в себя:

получение информации о тренировочном процессе из дневников
тренировок, питания и распорядка дня пользователя;

обработку полученной информации, то есть поиск узких мест
тренировочного процесса – таких мест, которые препятствуют дальнейшему
прогрессу в достижении поставленной пользователем цели;

формирование рекомендаций, в случае необходимости внесения
корректировок в тренировочный процесс.
Многие спортсмены, воспользовавшиеся услугами опытных тренеров,
получают, как правило, стартовый комплект услуг: подобранную диету, комплекс
24
тренировочных упражнений, а также распорядок тренировок и питания,
позволяющий наиболее качественно восстанавливаться между тренировками и
восполнять энергию за счет своевременного употребления белков и углеводов.
Следуя указаниям тренеров, спортсмены отмечают свои действия в
дневниках. Фактические количества и наименование употребляемых продуктов в
дневнике питания, фактические количественные показатели выполняемых
упражнений, состояние и прочие показатели, связанные с тренировками,
указываются в дневнике тренировок, и, наконец, фактическое время выполнения
тренировочного комплекса, время приемов пищи и время отдыха заносятся в
распорядок дня.
Хранение таким образом информации позволяет:

отслеживать прогресс в достижении поставленной цели;

визуализировать данные в виде графиков;

поделиться своим прогрессом с другими спортсменами, что создает
дух соревнования, порождая дополнительную мотивацию тренироваться.
Кроме вышеперечисленных пунктов, использование автоматизированных
дневников для хранения информации о тренировочном процессе, позволяет
тренеру наблюдать за прогрессом подопечных пользователей не только находясь
рядом и лишь в момент тренировки. Имея доступ к подобной информации, тренер
может
заметить
некоторые
колебания
прогресса
в
пользовательском
тренировочном процессе, как в лучшую, так и в худшую сторону. Например,
увидеть состояние застоя – явления, нередкого в фитнес-сфере. Заметив, что
прогресс в достижении поставленной пользователем цели замедляется, тренер
принимает решение о корректировании тренировочного процесса. Изменения
могут затронуть как саму тренировочную программу, так и программу питания,
либо распорядок дня. Чаще всего, конечно, изменения производятся именно в
программе тренировок.
Каждый тренер занимается сбором данных о тренировочном процессе и
корректирует программу тренировок. Не всегда это происходит описанным выше
способом, но это проблема отсутствия подходящих инструментариев для работы
25
тренера с клиентами. Однако, у данного подхода, описанного в примере, есть свои
недостатки:

тренер может не заметить узкое место тренировочного процесса по
причине отсутствия опыта либо потому что, выполняя постоянно однотипную
работу можно упустить детали, которые кажутся незначительными;

тренер может «обслужить» ограниченное количество пользователей.
Исходя из этого, следует разработать сервис, автоматизирующий процесс
сбора информации о тренировочном процессе и ее последующую обработку, то
есть поиск узких мест тренировочного процесса. Данный сервис будет
подспорьем для тренеров, так как избавит их от рутины и позволит предоставлять
свои услуги большему количеству клиентов. Кроме того, следует уточнить, что
сервис должен не просто находить узкие места, но и указывать тренеру на
необходимость их исправления, запоминая решения тренера и выводя ему
возможные рекомендации по изменению тренировочного процесса на основе
прецедентов.
Функциональные возможности такого сервиса можно развивать в
направлении более тесного взаимодействия тренера и клиента. Это позволит
клиентам более плодотворно работать над своим телом, а тренерам – более
качественно выполнять свою работу по адаптации и настройке тренировочного
процесса для конкретного спортсмена. Если учесть факт отсутствия других
сервисов, включающих в себя работу со всеми тремя составляющими
тренировочного процесса, то такие возможности будут являться еще одним из
конкурентных преимуществ разрабатываемого сервиса.
Кроме того, автоматически генерируемые оповещения о необходимости
внесения изменений в текущий тренировочный процесс являются новшеством в
данной области, что позволить быстро распространить данную технологию среди
любителей новинок. Возможно, это позволит также популяризировать здоровый
образ среди населения, подобно тому как это делают некоторые производители
смартфонов и фитнес-браслетов: они встраивают шагомеры в свои устройства,
позволяя пользователям отслеживать количество шагов, пройденных за день.
26
Многие, увидев свой текущий результат, начинают больше двигаться, чтобы
ставить новые рекорды, либо просто проходить большее количество шагов,
нежели ранее. Таким образом, их мотивируют увиденные результаты, они
начинают
делиться
результатами
с
друзьями,
в
итоге
расширяя
круг
пользователей подобных устройств. Поэтому, сервис, автоматизирующий процесс
сбора информации о тренировочном процессе для формирования рекомендаций
будет полезен и выгоден как клиентам, так и тренерам, и фитнес-центрам.
Общий вид взаимодействия пользователя и тренера будет выглядеть
следующим образом:
1.
Тренер формирует описание тренировочного процесса для клиента:
описывает программу тренировок, рацион питания и распорядок дня.
2.
Клиент старается следовать указаниям тренера и отмечает результаты
выполнения в дневнике тренировок, питания и распорядка дня.
3.
Сервис с заданной периодичностью собирает информацию о
тренировочном процессе из дневников, формирует описание текущего состояния
спортсмена,
проверяет
его
на
отклонения
от
следования
выбранной
пользователем цели, в случае отсутствия прогресса, выводится оповещение
тренеру о необходимости корректирования тренировочного процесса. Следует
отметить, что существует база решений, заполненная тренерами-экспертами, где
хранятся
базовые
решения
с
рекомендациями
по
корректированию
тренировочного процесса. Сформированное описание текущего состояния
пользователя подобно предпосылкам продукционных правил используется для
поиска в базе знаний. В случае, если прецедент найден, то он будет выведен
тренеру
вместе
с
оповещением
о
необходимости
корректирования
тренировочного процесса. Тренер сможет использовать этот прецедент либо
создать новый, который будет добавлен в базу знаний.
4.
Тренер корректирует тренировочный процесс и изменения вместе с
уведомлением отправляются клиенту.
5.
Клиент получает
уведомление об изменениях тренировочного
процесса и начинает следовать обновленному плану, повторяя пункт 2.
Рисунок 1 – Диаграмма вариантов использования
27
28
Для разрабатываемого сервиса на этапе проектирования построена
диаграмма вариантов использования – use-case диаграмма – представленная на
рисунке 1. Она помогает отобразить функциональные требования к сервису.
Как видно на диаграмме, с сервисом взаимодействуют два актора:

тренер;

клиент.
Каждый из акторов выполняет определенные функции, обозначенные на
диаграмме прецедентами. Рассмотрим подробнее отображенные на диаграмме
прецеденты и их сценарии.
1.
Функция «Формирование тренировочного плана».
Действующее лицо: тренер.
Цель: создание тренировочного плана для клиента, получив от клиента
данные о физиологических особенностях его организма, таких как:

пол;

вес;

рост;

возраст;

тип телосложения или соматотип;

состояние здоровья – наличие травм, заболеваний, перенесенных
операций.
Предусловия: клиент зарегистрирован в сервисе «Ваш личный тренер»,
успешно авторизовался и внес необходимые данные в профиль.
Главная последовательность действий:
a)
тренер изучает данные клиента, при необходимости уточняет неясные
моменты у клиента, в результате чего у тренера формируется представление о
текущем состоянии клиента;
b)
на основе полученной информации тренер использует заготовленные
шаблоны или составляет рекомендуемый распорядок тренировок и питания для
клиента, затем составляет пробную программу тренировок, выполнение которой
29
позволит тренеру определить физические способности клиента, а также
составляет программу питания;
c)
сервис выводит пользователю оповещение о том, что тренировочный
процесс для него составлен.
2. Функция «Просмотр тренировочного плана».
Действующее лицо: клиент или тренер.
Цель: ознакомление и изучение тренировочного плана, включающего в
себя программу тренировок, программу питания и распорядок определенного
клиента.
Предусловия: тренер сформировал тренировочный план для данного
клиента, действующее лицо авторизовано в сервисе «Ваш личный тренер».
Главная последовательность действий (просмотр программы тренировок
клиентом):
a)
клиент открывает программу тренировок;
b)
сервис отображает клиенту доступную программу тренировок;
c)
клиент может просмотреть ее.
Альтернативная последовательность действий (просмотр программы
питания клиентом):
a)
клиент открывает программу питания;
b)
сервис отображает клиенту доступную программу питания;
c)
клиент может просмотреть ее.
Альтернативная последовательность действий (просмотр составленного
распорядка клиентом):
a)
клиент открывает распорядок;
b)
сервис отображает клиенту подобранный распорядок;
c)
клиент может ознакомиться с распорядком тренировок и питания.
Альтернативная последовательность действий (просмотр программы
тренировок тренером):
a)
тренер находит определенного клиента в списке клиентов;
b)
тренер открывает программу тренировок выбранного клиента;
30
c)
сервис отображает тренеру доступную для выбранного клиента
программу тренировок;
d)
тренер может просмотреть ее.
Альтернативная последовательность действий (просмотр программы
питания тренером):
a)
тренер находит определенного клиента в списке клиентов;
b)
тренер открывает программу питания выбранного клиента;
c)
сервис отображает тренеру доступную для выбранного клиента
программу питания;
d)
тренер может просмотреть ее.
Альтернативная последовательность действий (просмотр составленного
распорядка тренером):
a)
тренер находит определенного клиента в списке клиентов;
b)
тренер открывает распорядок выбранного клиента;
c)
сервис отображает тренеру подобранный для выбранного клиента
распорядок;
d)
тренер может просмотреть распорядок тренировок и питания.
3. Функция «Редактирование информации в дневниках»
Действующее лицо: клиент.
Цель: сохранение результатов следования тренировочному плану.
Предусловия: тренер сформировал тренировочный процесс,
клиент
авторизован в сервисе «Ваш личный тренер».
Главная последовательность действий (сохранение информации о
тренировке):
a)
клиент открывает дневник тренировок;
b)
клиент вносит информацию о прошедшем тренировочном занятии
(веса отягощения, количество подходов и повторений по каждому упражнению,
оценку самочувствия по пятибалльной шкале до и после тренировки, ЧСС,
комментарии для тренера);
c)
клиент сохраняет внесенную информацию;
31
d)
информация становится доступна для чтения тренеру;
e)
система формирования рекомендаций собирает информацию из
дневника
тренировок
продукционных
для
формирования
предпосылок
и
состояния
дальнейшей
клиента
проверки
в
виде
необходимости
корректирования тренировочного плана. В случае необходимости выводится
оповещение тренеру о том, что следует подкорректировать тренировочный план.
Альтернативная последовательность действий (сохранение информации
о диете):
a)
клиент открывает дневник питания;
b)
клиент
вносит
информацию
о
прошедших
приемах
пищи
(наименование продукта, калорийность, комментарии для тренера);
c)
клиент сохраняет внесенную информацию;
d)
информация становится доступна для чтения тренеру;
Альтернативная последовательность действий (сохранение информации
о распорядке):
a)
клиент открывает дневник распорядка;
b)
клиент вносит информацию о фактическом распорядке тренировок и
питания (время приемов пищи, время начала и время окончания тренировки,
время сна, комментарии для тренера);
c)
клиент сохраняет внесенную информацию;
d)
информация становится доступна для чтения тренеру;
4.
Функция «Просмотр информации в дневниках».
Действующее лицо: тренер либо клиент.
Цель: ознакомление с информацией, хранящейся в дневниках тренировок,
питания и распорядка клиента.
Предусловия: действующее лицо авторизовано в сервисе «Ваш личный
тренер».
Главная последовательность действий (просмотр дневника тренировок
клиентом):
a)
клиент открывает дневник тренировок;
32
b)
сервис отображает клиенту данные дневника тренировок, внесенные
им ранее.
Альтернативная последовательность действий (просмотр дневника
тренировок определенного клиента тренером):
a)
тренер находит определенного клиента в списке клиентов;
b)
тренер открывает дневник тренировок выбранного клиента;
c)
сервис отображает тренеру данные дневника тренировок, внесенные
клиентом ранее и отправленные на сервер.
Альтернативная последовательность действий (просмотр дневника
питания клиентом):
a)
клиент открывает дневник питания;
b)
сервис отображает клиенту данные дневника питания, внесенные им
ранее.
Альтернативная последовательность действий (просмотр дневника
питания определенного клиента тренером):
a)
тренер находит определенного клиента в списке клиентов;
b)
тренер открывает дневник питания выбранного клиента;
c)
сервис отображает тренеру данные дневника питания, внесенные
клиентом ранее и отправленные на сервер.
Альтернативная последовательность действий (просмотр дневника
распорядка клиентом):
a)
клиент открывает дневник распорядка;
b)
сервис отображает клиенту данные дневника распорядка, внесенные
им ранее.
Альтернативная последовательность действий (просмотр дневника
распорядка определенного клиента тренером):
a)
тренер находит определенного клиента в списке клиентов;
b)
тренер открывает дневник распорядка выбранного клиента;
c)
сервис отображает тренеру данные дневника распорядка питания и
тренировок, внесенные клиентом ранее и отправленные на сервер.
33
5.
Функция «Получение уведомления о необходимости корректирования
тренировочного плана».
Действующее лицо: тренер.
Цель:
оповещение
тренера
о
необходимости
корректирования
тренировочного плана для определенного клиента.
Предусловия: система сбора информации о тренировочном процессе для
формирования рекомендаций по изменению тренировочного плана выявила
необходимость внесения корректировок в текущий тренировочный план.
Главная последовательность действий (решение в базе данных не
найдено):
a)
сервис
формирует
уведомление
тренеру
о
необходимости
корректирования тренировочного плана для клиента;
b)
сервис запускает систему формирования рекомендаций, которая на
основе данных из дневников клиента производит поиск в базе данных готового
решения для текущего состояния клиента;
c)
так как решение не найдено, то сервис отправляет тренеру только
уведомление о необходимости корректирования тренировочного плана для
клиента.
Альтернативная последовательность действий (решение в базе данных
найдено):
a)
сервис
формирует
уведомление
тренеру
о
необходимости
корректирования тренировочного плана для клиента;
b)
сервис запускает систему формирования рекомендаций, которая на
основе данных из дневников клиента производит поиск в базе данных готового
решения для текущего состояния клиента;
c)
если решение найдено в базе данных, то сервис отправляет тренеру
уведомление о необходимости корректирования тренировочного плана для
клиента вместе с ссылкой на найденное решение.
6.
Функция «Корректировка тренировочного процесса».
Действующее лицо: тренер.
34
Цель: внесение изменений в тренировочный процесс для адаптации
тренировочного
физиологических
процесса
под
показателей,
определенного
а
также
во
клиента
с
избежание
учетом
его
нулевого
или
отрицательного тренировочного прогресса.
Предусловия:
тренер
получил
уведомление
о
необходимости
корректирования тренировочного процесса и сам убедился в достоверности этого
факта или плановое изменение тренировочного процесса в связи с окончанием
микро- или макроциклов, или по инициативе клиента – в связи с изменением цели
тренировочного процесса.
Главная последовательность действий (тренер получил уведомление без
ссылки):
a)
система выводит тренеру уведомление без ссылки на решение, так как
решение не найдено;
b)
тренер корректирует тренировочный план клиента;
c)
решение сохраняется в базу решений;
d)
сервис
направляет
клиенту
оповещение
об
изменении
его
тренировочного плана тренером.
Альтернативная
последовательность
действий
(тренер
получил
уведомление с ссылкой на решение и выбрал его):
a)
система выводит тренеру уведомление с ссылкой на решение;
b)
тренер изучает найденное решение;
c)
тренер одобряет применение данного решения;
d)
тренер применяет решение для корректирования тренировочного
плана клиента;
e)
сервис формирует уведомление для клиента об изменении его
тренировочного плана тренером.
Альтернативная
последовательность
действий
(тренер
уведомление с ссылкой на решение и не принял его):
a)
система выводит тренеру уведомление с ссылкой на решение;
b)
тренер изучает найденное решение;
получил
35
c)
тренера не устраивает данное решение;
d)
тренер корректирует тренировочный план клиента;
e)
решение сохраняется в базу решений;
f)
сервис формирует оповещение для клиента об изменении его
тренировочного плана тренером.
7.
Функция «Добавление решения в базу данных».
Действующее лицо: тренер
Цель: сохранение созданного решения в базу данныхй для возможности
использования в следующий раз в подобной ситуации.
Предусловия:
тренер
создал
новое
решение
для
корректирования
тренировочного процесса.
Главная последовательность действий (тренер сохраняет решение):
a)
тренер применил созданное решение для конкретного клиента;
b)
сервис выводит диалоговое окно с предложением сохранить данное
решение для дальнейшего использования;
c)
тренер выбирает вариант «Сохранить» и решение сохраняется в базе
готовых решений.
Альтернативная последовательность действий (тренер не сохраняет
решение):
a)
тренер применил созданное решение для конкретного клиента;
b)
сервис выводит диалоговое окно с предложением сохранить данное
решение для дальнейшего использования;
c)
тренер выбирает вариант «Отказаться» и решение не сохраняется в
базе готовых решений.
8.
Функция «Получение уведомления о корректировке тренировочного
плана».
Действующее лицо: клиент
Цель: оповещение клиента об изменении его тренировочного процесса
Предусловия: тренер внес изменения в тренировочный план
36
Главная
последовательность
действий
(изменения
в
программе
тренировок):
a)
сервис формирует уведомление для клиента о внесенных изменениях
в тренировочный план;
b)
клиент получает уведомление о том, что в программу тренировок
тренер внес изменения;
c)
нажав на уведомление на мобильном устройстве, клиент может
перейти в раздел просмотра программы тренировок.
Альтернативная последовательность действий (изменения в программе
питания):
a)
сервис формирует уведомление для клиента о внесенных изменениях
в тренировочный план;
b)
клиент получает уведомление о том, что тренер внес изменения в
программу питания;
c)
нажав на уведомление на мобильном устройстве, клиент может
перейти в раздел просмотра программы питания.
Альтернативная последовательность действий (изменения в программе
питания):
a)
сервис формирует уведомление для клиента о внесенных изменениях
в тренировочный план;
b)
клиент получает уведомление о том, что в тренер внес изменения в
распорядок;
c)
нажав на уведомление на мобильном устройстве, клиент может
перейти в раздел просмотра распорядка.
Разработанная диаграмма вариантов использования описывает возможные
последовательности действий, которые могут происходить в разрабатываемом
сервисе в ответ на внешние действия со стороны акторов, а именно клиента и
тренера. Данная диаграмма призвана для отображения функциональных
требований к системе.
37
Теперь
сформулируем
автоматизированного
сбора
нефункциональные
информации
о
требования
тренировочном
к
сервису
плане
для
формирования рекомендаций:

работа с сервисом должна производиться как через вебсайт, так и
через разработанное мобильное приложение;

для вебсайта должен применяться язык программирования PHP
версии 5.0 и выше в рамках фреймворка CakePHP;

для
применяться
мобильного
язык
приложения
программирования
на
Java
платформе
версии
Android
1.8,
а
должен
также
язык
программирования Kotlin версии 1.0 и выше;

мобильное приложение должно поддерживать версии Android API,
начиная с 16 и по финальную на данный момент – 27;

интерфейс должен быть интуитивно понятным для пользователя;

синхронизация данных мобильного приложения с сервером должна
производиться без потерь.
1.4 Постановка задач исследования
Необходимость проведения исследований и разработки прототипа сервиса
автоматизации сбора данных о тренировочном процессе для формирования
рекомендаций продиктована рядом условий. Для начала необходимо провести
обзор существующих автоматизированных систем хранения, к которым относятся
различные интернет-сервисы и мобильные приложения дневников тренировок и
питания. Показать их положительные и отрицательные стороны. Далее нужно
выбрать средства разработки, которые хорошо будут подходить для реализации
сервиса
сбора
данных
о
тренировочном
процессе
для
формирования
рекомендаций. В настоящее время существует множество подходов для
разработки веб-приложений. Нас же будут интересовать наиболее простые и
популярные решения, с помощью которых разработка не будет отнимать много
сил и времени. В дальнейшем необходимо описать предметную область и полный
38
перечень реализуемых функций, который можно представить диаграммой
вариантов использования.
Для того, чтобы сформировать методику сбора данных о тренировочном
процессе
для
существующие
формирования
методики,
рекомендаций
проанализировать
необходимо
те,
что
рассмотреть
используются
на
сегодняшний день. Провести анализ этих методик выявить их преимущества и
недостатки. Перед началом реализации прототипа сервиса, использующего
методику
сбора
данных
о
тренировочном
процессе
для
формирования
рекомендаций необходимо его спроектировать. Создать логическую схему
построения сети, составить структурную схему, построить диаграммы потоков
данных и спроектировать структуры данных.
После
проектирования
прототипа
необходимо
приступить
к
его
реализации. Для этого необходимо составить графы состояний и переходов,
чтобы показать логику диалога с пользователем. Разрабатываемый прототип
сервиса
сбора
данных
о
тренировочном
процессе
для
формирования
рекомендаций должен удовлетворять функциональным и нефункциональным
требованиям, описанным ранее.
39
2 СУЩЕСТВУЮЩИЕ МЕТОДЫ СБОРА ИНФОРМАЦИИ О
ТРЕНИРОВОЧНОМ ПРОЦЕССЕ ДЛЯ ФОРМИРОВАНИЯ
РЕКОМЕНДАЦИЙ ПО ИЗМЕНЕНИЮ ТРЕНИРОВОЧНОГО ПЛАНА
2.1 Исследование и анализ подходов к сбору информации о
тренировочном процессе для формирования рекомендаций
Перед
разработкой
собственной
методики
сбора
информации
о
тренировках пользователя для формирования рекомендаций по изменению
тренировочного плана необходимо провести аналитический обзор существующих
подходов к сбору информации о тренировках пользователя для формирования
рекомендаций тренерами.
В настоящий момент в большинстве случаев взаимодействие клиента и
тренера осуществляется традиционным способом – с использованием личного
общения. Клиент находит себе тренера, сообщает ему свои физиологические
данные, а также информацию о состоянии здоровья, травмах, болезнях. Далее
тренер на основе полученной информации составляет для клиента программу
тренировок и программу питания. Далее клиент приступает к выполнению
составленного тренировочного плана. Именно с этого начинается этап сбора
информации о тренировках пользователя для формирования рекомендаций по
изменению тренировочного плана. Рассмотрим часто встречающиеся в реальной
жизни способы сбора информации. В зависимости от технологической
оснащенности фитнес-клуба, а также от особенностей клиентов можно выделить
два варианта сбора данных о тренировочном процессе для дальнейшего
формирования рекомендаций:

хранение информации о тренировке с использованием бумажного
дневника;

хранение информации о тренировке с использованием электронного
дневника.
Рассмотрим развитие событий для первого варианта:
40
1.
Сохранение результатов тренировки в обыкновенном бумажном
дневнике. Клиент выполнил этап тренировочного плана и записывает результаты
выполнения в свой дневник.
2.
Передача информации о результатах тренировочного процесса
тренеру. Клиент в очередной раз приходит в фитнес зал и показывает тренеру
свои записи. Тренер в режиме реального времени изучает их, делает выводы о
прогрессе клиента, на основе которых принимает решение о необходимости
внесения корректировок в тренировочный план клиента. Стоит отметить, что
клиент, может используя социальные сети передать свои результаты онлайн,
например, сфотографировав страницы дневника и отправив их тренеру.
3.
Тренер корректирует тренировочный план в случае необходимости
внесения изменений, затем связывается с клиентом и сообщает ему о внесенных
изменениях в тренировочный план.
Недостатком
рассмотренного
способа
является
разношерстность,
неструктурированность данных, поступающих от клиентов. Каждый клиент
может записывать результаты по своему шаблону. Кроме того, при использовании
бумажного носителя имеется риск утери такового. Отсутствие визуализации
данных также является недостатком данного способа сбора информации. Также
возникает
необходимость
личного
контакта
тренера
и
клиента
либо
использования социальных сетей для обмена информацией.
Рассмотрим вариант сбора информации о тренировочном процессе с
электронным дневником:
1.
Сохранение результатов тренировки в приложении электронного
дневника. Клиент выполнил этап тренировочного плана и сохраняет результаты
выполнения в свой дневник. У него есть шаблонные поля для заполнения
информации, что позволяет структурировать заносимые данные о тренировочном
процессе.
2.
Передача информации о результатах тренировочного процесса
тренеру. Информация в дневнике становится доступна после синхронизации
приложения с сервером. Тренер может при условии наличия прав доступа
41
получить информацию из дневника пользователя в любое удобное для себя время.
С выбранной им самим периодичностью он может просматривать информацию в
дневниках своих клиентов, отмечая для себя прогресс того или иного клиента и
принимая решения о необходимости внесения корректировок в тренировочный
план.
3.
Тренер вносит изменения в тренировочный план, когда возникает
необходимость. Затем, если в используемом сервисе предоставлена возможность
хранения не только записей дневников, но и программ тренировок, питания и
распорядка, то тренер добавляет изменения в электронную версию текущего
тренировочного процесса, иначе сообщает клиенту какие именно изменения
требует внести в тренировочный план.
Данный метод сбора информации о тренировочном процессе лучше, чем
предыдущий, так как позволяет хранить данные в электронном виде. Таким
образом,
они
становятся
доступны
для
просмотра
после
добавления
пользователем, без каких-либо дополнительных действий с его стороны. Кроме
того, облегчается процесс поиска нулевого или отрицательного прогресса у
клиента благодаря возможности вывода графиков, визуализирующих данные. Но
это при условии, что в используемой системе реализована функция визуализации
данных. К сожалению, многие существующие сервисы имеют несколько
урезанный функционал, нежели тот, который хотелось бы использовать для сбора
данных о тренировочном процессе.
Рассмотрев существующие методы сбора информации о тренировочном
процессе, можно сделать вывод, что для качественного достижения целей клиенту
желательно использовать информационную систему, где будут различные
программы питания, тренировок, распорядок, а также дневники тренировок,
питания и распорядка, которые понадобятся для контроля прогресса. Кроме того,
недостатком существующих электронных версий дневников является тот факт,
что
они
используются
лишь
как
хранилища
результатов
выполнения
тренировочного плана и анализируются либо самим клиентом, либо тренером. На
анализ даже у самых опытных тренеров уходит время, кроме того, это требует
42
совершать рутинные проверки через определенные промежутки времени.
Поэтому следует в разрабатываемый сервис добавить автоматизированный анализ
информации о тренировочном процессе пользователя.
Корректирование программ — это трудоемкий процесс, так как
необходимо постоянно оценивать текущее состояние каждого из клиентов.
Поэтому неплохо было бы предоставить это дело машинам: выполнение рутинной
работы по отслеживанию аномалий и поиску отклонений от нормы. На данный
момент нет ни одного существующего сервиса для решения такой задачи.
2.2 Определение основных физиологических особенностей человека
для формирования тренировочной программы
В первую очередь необходимо определиться с целями тренировочного
процесса и решить, чего спортсмен ожидает от тренировок: избавиться от
лишнего веса и чуть подкорректировать фигуру или же накачать мускулатуру и
рельефный пресс. Без выделения целей нельзя добиться результатов. Поэтому,
цель является первым учитываемым параметром разрабатываемой системы.
Разбиение общей цели на более конкретные микроцели (показатели в рамках
микропериода) является полезной практикой, так как позволяет отслеживать
прогресс основной цели в более краткосрочном периоде.
Достижение
поставленных микроцелей является положительным результатом, поэтому
улучшает настрой спортсмена и мотивирует ставить перед собой более
амбициозные цели.
Определение цели – важное, но не единственное требование качественной
программы тренировок. Необходимо обратить внимание на функциональную
готовность организма и его общую физическую подготовку. Поэтому следующая
группа физиологических особенностей организма включает в себя метрику
спортсмена, а именно:

пол;

вес;

рост;
43

возраст;

тип телосложения или соматотип;

состояние здоровья.
Рассмотрим подробнее перечисленные параметры.
Текущее состояние здоровья клиента, а также перенесенные им
заболевания, травмы, операции — все это имеет первостепенное влияние на
формирование комплекса упражнений и периодичность тренировок.
Например, людям, страдающим от заболевания позвоночника, следует
аккуратно выполнять упражнения с вертикальной нагрузкой на позвоночный
столб, а также носить дополнительную защиту для поясничного отдела.
Другим примером может послужить человек, перенесший полостную
операцию. Он не сможет делать тяжелые упражнения некоторое время. Давать
ему в первый месяц тренировок даже пятьдесят килограмм на становой тяге
равносильно нанесению тяжкого вреда здоровью.
Для разных возрастных групп тренировочные процессы тоже должны
строиться различным образом. Если не учитывать возрастных особенностей, то
можно навредить. Например, в шестьдесят лет и старше следует давать щадящую
нагрузку на сердце, а это практически полностью исключает кардио-тренировки.
И задача занятий, как правило, в этом возрасте заключается в оздоровлении и
укреплении тела [16].
Различия по половому признаку тоже имеют влияние при формировании
тренировочного процесса.
Во-первых, так как мужчины обладают более значительной окружностью
плечевого пояса, по сравнению с нижней частью тела, а у женщин все наоборот
— они обладают более мощной структурой тазовой области, соответственно,
центр тяже расположен ниже, что обеспечиваем им устойчивость и равновесие.
Поэтому вполне естественно, что у женщин прослеживается тенденция
наращивать объемы и силу гораздо быстрее в нижних отделах. Кроме того,
женщинам нужно быть достаточно осторожными во время выполнения
упражнений, которые связаны с нагрузкой верхней части тела, и подниманием
44
различных отягощений. Это необходимо для того, чтобы не допустить излишнего
напряжения в локтевых и плечевых суставах, поскольку они достаточно узкие.
Во-вторых, вполне естественно, что в женском теле жира гораздо больше,
чем в мужском. В основном он сосредотачивается на ногах и в области таза, что
сильно затрудняет достижения ими мускулистости – это нужно иметь ввиду во
время тренировки. Чтобы добиться максимального эффекта в этой области, нужно
выполнять как можно больше разных упражнений и использовать при этом
облегченные снаряды. Также следует увеличить число повторений и подобрать
низкожировую программу питания, учитывая при этом минимальное содержание
жира в женском организме.
В-третьих, особенные дни, наступающие у девушек и женщин ежемесячно.
В среднем, период менструального цикла длится двадцать восемь дней, то есть
четыре недели. В первую неделю уровень эстрогена и тестостерона возрастает,
поэтому можно повысить интенсивность или продолжительность занятий. На
вторую неделю приходится пик концентрации эстрогена и тестостерона. В это
время можно проводить самые интенсивные тренировки.
В начале третьей
недели уровень тестостерона падает, поэтому интенсивность занятий можно
снизить и сосредоточиться на кардионагрузках вместо силовых. На четвертой
неделе уровень эстрогена, тестостерона, прогестерона падает. Мотивация к
тренировке падает, настроение на нуле, но физическая нагрузка поможет с этим
справиться, так как во время занятий возрастает уровень эндорфина [17].
Следующим параметром, который необходимо учитывать при составлении
программы тренировок и программы питания, является периодичность и
продолжительность нагрузок. Можно сказать, что после целей это второй по
важности параметр, с которым необходимо определиться, так как именно от
частоты тренировок зависят визуальные результаты. Для более подробного
исследования зависимости полезности тренировок от их частоты необходимо
использовать такое понятие как суперкомпенсация. Суперкомпенсация —
послетренировочный период, в течении которого тренируемая функция имеет
более высокий показатель по сравнению с исходным уровнем [18].
45
Согласно научным данным, имеется три основных фазы восстановления
после тренинга:

первая фаза – фаза восстановления, во время которой происходит
репарация ткани, в течение этого периода функция восстанавливается до
исходного уровня;

вторая фаза – суперкомпенсация, во время которой наблюдается
повышенная работоспособность, которая может превысить исходный уровень на
десять-двадцать процентов;

третья фаза – фаза постепенного возвращения к исходному уровню
работоспособности.
Повторное выполнение мышечной работы – физических упражнений в
течение ряда дней и месяцев приводит к улучшению функции или повышению
тренируемого параметра (мышечная масса), что и обуславливает возможность
физического развития и совершенствования человека.
Рисунок 2 – Суперкомпенсация
Идеальная частота тренировок - это такая частота, при которой каждая
следующая
тренировка
приходится
на
пик
суперкомпенсации.
Уровень
суперкомпенсации прямо пропорционален работе, выполненной мышцами, то
есть чем больше нагрузка, тем более выражен и продолжителен мышечный рост в
46
восстановительный период. Однако следует помнить, чем интенсивнее тренинг,
тем больше времени требуется до наступления фазы суперкомпенсации. Еще одна
проблема заключается в том, что мышечная работа включает в себя несколько
параметров, которые имеют разный период восстановления. К примеру
восполнение гликогена происходит в течение нескольких часов, а восстановление
клеточных микроструктур - в течение нескольких дней. Поэтому к тому моменту,
когда один из параметров будет в фазе суперкомпенсации, другой уже может
выйти из нее. Именно поэтому важно решить вопрос частоты тренировок.
Рисунок 3 - Оптимальная частота тренировок
Если
тренироваться
слишком
часто,
то
мышцы
не
успевают
восстанавливаться даже до исходного уровня, и приходится на фазу, когда
уровень компенсации даже ниже исходного. Такая ситуация приводит к
перетренированности и снижению тонуса.
47
Рисунок 4 - Высокая частота тренировок
В противоположном случае – когда частота тренировок низкая – возможна
потеря возможности тренироваться в фазу суперкомпенсации, а, следовательно,
снижается эффективность тренинга.
Научно доказано, что для восстановления мышц в среднем требуется двачетыре дня, а пик фазы суперкомпенсации наступает только на шестой-седьмой
день. Поэтому для решения проблемы с рядом параметров, суперкомпенсация
которых наступает в разные моменты, предлагается разбивать тренировочную
программу на микроциклы, где каждый микроцикл отвечал бы за развитие
определенного параметра. Наиболее простым решением является использование
сплит-тренировки,
которую
необходимо
выполнять
в
разных
режимах
тренировочной нагрузки (интенсивности). То есть, каждая группа мышц должна
подвергаться тренировке с различной степенью интенсивности от одного занятия
к следующему: легкий - средний - высокий - и так далее.
Не стоит забывать и о крепатуре – синдроме отсроченной мышечной боли,
возникающем при резком увеличении физических нагрузок или после долгого
48
перерыва между тренировками. Как правило, проявляется в течение нескольких
часов после интенсивной тренировки на определенную группу мышц. Грамотно
составленная программа тренировок позволит не только избежать крепатуры, но и
постепенно укрепить группы мышц, необходимые спортсмену для дальнейшего
развития.
Рассмотренные выше варианты частых и редких тренировок являются
крайностями, поэтому большинство занимающихся считает, что оптимальная
частота тренировок три-четыре раза в неделю, при условии, что атлет занимается
по сплит-тренировке [19].
Определившись с периодичностью занятий следует разобраться с
продолжительностью тренировки.
Результаты
многочисленных
исследований
показывают,
что
имеет
значение общее количество времени, затраченное на физическую работу,
например, десять часов в месяц будут практически в два раза эффективнее, чем
пять.
При
этом
продолжительность
каждой
тренировки
не
имеет
принципиального значения. Так, три тридцатиминутных занятия в день, могут
дать такой же эффект, как и одна полуторачасовая тренировка. Именно поэтому
нельзя рассчитывать на прирост мышечной массы или значительное снижение
веса, если уделять тренингу только один час в неделю или по десять минут в день.
Продолжительность тренировки также определяется целью, особенностью
тренировочной программы и уровнем профессионализма атлета. Рассмотрим
зависимость продолжительности тренировок от цели.
Продолжительность
тренировки
для
набора
массы.
Средняя
продолжительность тренировки, которая даст наилучшие результаты час-полтора.
Тренировка профессионального атлета должна занимать меньше времени, в связи
с узкой специализацией, то есть примерно сорок-шестьдесят минут. Тренировка
начинающего бодибилдера занимает полтора-два часа, так как требует больше
времени на отдых между подходами и широкой специализации. Не стоит
забывать, что каждая тренировка предполагает приблизительно десять минут на
разминку и десять на заминку. Слишком долгие тренировки вызывают
49
повышенную секрецию кортизола - гормон, который разрушает мышцы, а также
может привести к развитию перетренированности.
Продолжительность тренировки при похудении. Продолжительность
тренировки при похудении имеет ключевое значение в результатах, она не
должна быть меньше тридцати минут, так как за меньший промежуток времени
просто невозможно ускорить метаболизм и запустить разрушение жиров.
Оптимальное время – шестьдесят минут. С увеличением времени тренировки
повышается и эффективность, однако в бодибилдинге это грозит разрушением
мышц под влиянием катаболических процессов [20].
Вариативность программ — не стоит использовать одну и ту же программу
тренировок дольше чем четыре-шесть месяцев, так как благодаря своей сильной
адаптивной функции, организм способен подстраиваться под любую нагрузку. То
есть то, что ранее казалось для мышц стрессом, со временем перестает им быть.
Поэтому следует использовать “разные углы атаки” на мышцы [21].
Не стоит забывать, что успех тренинга зависит еще и от правильной диеты,
дополнительно принимаемого спортивного питания, рационального режима сна и
отдыха. К отсутствию результатов могут приводить, даже такие причины,
кажущиеся на первый взгляд совершенно несущественными, как недостаток
принимаемой жидкости, нехватка витаминов или микроэлементов, дефицит
незаменимых жирных кислот и так далее.
Критерии также могут быть связаны со степенью подготовки спортсмена –
готов ли он приступить к выполнению сложного многосуставного упражнения
или
стоит
еще
некоторое
время
заниматься
выполнением
основных
односоставных упражнений.
Перечисленные выше особенности организма важны при составлении
программы тренировок. Но в течении тренировочного процесса нельзя
использовать все время одну и ту же программу тренировок – она должна
постоянно корректироваться.
50
Изменения могут быть связаны со сменой цели или микроцели. Это
случается, когда спортсмен в зимний период времени ставит перед собой цель –
набор веса, а в начале летнего выбирает целью сушку.
Кроме того, причиной корректировки программы тренировок является
особенность организма – адаптация организма к внешним нагрузкам. Благодаря
ей если нагрузки однообразны и одинаково интенсивны, то программа теряет
свою эффективность.
Также следует в связи с прогрессом в развитии мышц изменять
количественные характеристики тренировочного процесса, такие как:

изменение количества повторений – вместо стандартных трех
подходов по десять повторений делать шесть подходов по восемь-двенадцать
повторений;

изменение последовательности упражнений;

изменение самих упражнений;

изменение скорости выполнения упражнения – замедление или
сверхбыстрое выполнение является шокирующим фактором;

изменение продолжительности отдыха между подходами;

изменение рабочего веса снарядов – менять можно как в сторону
увеличения, так и в сторону уменьшения веса [22].
2.3 Методика сбора информации о тренировочном процессе для
формирования рекомендаций по изменению тренировочного плана
Функциональное состояние клиента является ключевым компонентом в
системе физической подготовки. Текущее состояние спортсмена — это весьма
чувствительный и точный физиологический индикатор, который объективно
отражает индивидуальные кратковременные и длительные реакции организма на
выполненную нагрузку.
Эффект от тренировочного процесса появляется только тогда, когда
организм клиента готов к восприятию тренировочного воздействия. В противном
случае, усилия и время затрачиваются неэффективно, либо, вообще наносится
51
ущерб здоровью тренирующегося. Поэтому важно отслеживать текущее
функциональное состояние клиента во время тренировочного процесса для
своевременного формирования рекомендаций по изменению тренировочного
плана.
Рассмотрение представленных на рынке решений реализации электронных
дневников привело к выводу о том, что данных, сохраняемых в них недостаточно
для составления полного описания функционального состояния пользователя.
В рассмотренных дневниках реализовано сохранение информации о
базовых параметрах тренировочного плана. Список этих параметров выглядит
следующим образом:

временная метрика тренировки (дата, общее время тренировки, номер
тренировочной недели);

информации о выполнении упражнения (количество подходов,
повторений, вес отягощения, если есть);

вес тела;

время приемов пищи;

наименования продуктов и БЖУ для каждого приема пищи.
Таких параметров достаточно для отслеживания прогресса в обычном
сервисе хранения информации о тренировочном процессе, но для сервиса сбора
информации о тренировках пользователя для формирования рекомендаций по
изменению тренировочного плана их недостаточно. Необходимо расширить
список не менее важными пунктами, добавив:

оценку общего самочувствия по пятибалльной шкале до тренировки;

оценку
общего
самочувствия
по
пятибалльной
шкале
после
тренировки;

показания ЧСС, то есть частоты пульса сердечных сокращений, и
давления;

комментарии для тренера – при появлении у клиента сильных
болевых ощущений после тренировок или, наоборот, при недостаточной нагрузке;

в целом оценка тренировки по пятибалльной шкале;
52

уровень тонуса организма;

сведения о микротравмах и растяжениях;

замеры с возможностью добавить фотографии.
Некоторые из добавленных параметров, такие как, комментарии для
тренера, фотозамеры и сведения о микротравмах не будут использоваться при
формировании описания текущего функционального состояния клиента, но будут
полезны для совместной работы тренера и клиента. Однако, следует отметить, что
появление информации в графе сведений о микротравмах будет сигнализировать
о необходимости проверки текущего функционального состояния клиента
тренером.
Новая методика предполагает создание сервиса сбора информации о
тренировках пользователя для формирования рекомендаций по изменению
тренировочного плана, включающего в себя веб-сервис и мобильные приложения
клиентов
фитнес-клубов.
Разработанная
методика
сбора
информации
о
тренировках пользователя для формирования рекомендаций по изменению
тренировочного плана представляет собой последовательность нацеленных
действий. Данная методика может быть описана в виде схемы, которая
представлена на рисунке 5.
Поскольку
методика
основана
на
использовании
информационной
системы «Ваш личный тренер», необходима предварительная авторизация
клиента в системе, а также наличие плана тренировочного процесса и распорядка
дня, составленных тренером и при выполнении которых вся информация
записывается в дневники тренировок и питания.
53
Рисунок 5 – Методика сбора информации о тренировках пользователя для
формирования рекомендаций по изменению тренировочного плана
54
Опишем разработанную методику.

проверить изменения информации в дневниках клиента;

если клиент указал текущее значение веса тела, то найти предыдущее
значение веса тела клиента в базе данных, сравнить с текущим и отобразить
результаты сравнения в описании текущего функционального состояния клиента;

если клиент поставил оценку своего общего состояния после
тренировки, то добавить это в описание текущего функционального состояния
клиента;

если клиент выбрал соответствующие тонусу его организма оценки,
то следует отобразить его выбор в описании текущего функционального
состояния клиента;

если клиент провел замеры и добавил информацию о результатах этих
замеров, то эти результаты также следует использовать для формирования
описания текущего функционального состояния клиента;

выполняя упражнения из программы тренировок, клиент записывает
результаты выполнения упражнений, которые по окончании добавления
информации в дневник должны быть отображены в описании текущего
функционального состояния клиента;

по окончании добавления всех вышеуказанных пунктов данных
сформированное описание текущего состояния сохраняется в базе данных с
указанием времени формирования.
Рассмотрим более подробно каждый этап методики сбора данных,
отображенной на рисунке 5.
1.
Добавление
в
описание
функционального
состояния
клиента
результатов измерения веса тела. Во время заполнения данных дневника, клиент
может указать свой текущий вес тела. Для формирования описания текущего
состояния следует проверить, указал ли клиент свой вес или оставил значение по
умолчанию, то есть 0. После проверки, если вес был задан, то произвести оценку
изменения веса тела пользователя по сравнению с предыдущим результатом
взвешивания. Полученную оценку следует сохранить в формирующемся
55
описании функционального состояния. Схема функции добавления в описание
текущего функционального состояния клиента результатов измерения веса тела
представлена на рисунке 6.
Рисунок 6 – Схема функции добавления в описание текущего функционального
состояния клиента результатов измерения веса тела
56
2.
Добавление в описание функционального состояния клиента оценки
общего самочувствия. По окончании тренировки, клиент может поставить в
дневнике тренировок оценку своего общего самочувствия по пятибалльной
шкале. Полученную оценку следует добавить в формирующееся описание
функционального состояния клиента. Это произойдет путем добавления в
текущее текстовое описание состояния клиента строки следующего вида: «Оценка
общего состояния =» + значение оценки самочувствия.
3.
Добавление
в
описание
функционального
состояния
клиента
выбранного уровня тонуса. Во время заполнения информации о тренировке,
клиент может выбрать среди заготовленных вариантов соответствующие его
текущему состояния. Примерами заготовленных вариантов для описания уровня
тонуса в организме являются: «поел мало», «поел много», «не выспался», «устал»,
«не в духе» и прочие выражения, позволяющие описать внутренние ощущения
клиента. Подобные оценки не менее важны, чем количественные показатели
тренировочного процесса, так как, позволят выявить развитие хронического
стресса, а также переутомление и перетренированность. Именно поэтому
выбранные пользователем оценки состояния тонуса тоже следует сохранить в
описании текущего функционального состояния клиента, добавляя к текущему
текстовому описанию строки, содержащие текст выбранных вариантов.
4.
Добавление
в
описание
функционального
состояния
клиента
результатов его замеров. В дневнике тренировок возможно сохранение замеров в
двух видах: фотозамеры и значения измерений в миллиметрах. Фотозамеры
используются самим клиентом для визуального отслеживания прогресса в росте
тех или иных мышц. А цифровые замеры могут сказать о многом – эффективна ли
составленная программа тренировок, какие мышечные группы являются
отстающими, где нужно больше поработать для идеальных пропорций.
Перечислим возможные типы замеров и способы их измерения с помощью
сантиметровой линейки:

бицепс – необходимо согнуть руку и измерить в самом толстом месте,
то есть в пиковой точке;
57

грудная клетка – необходимо сделать средний вдох, но никак не
большой и измерить обхват;

шея – необходимо провести измерения посередине между головой и
туловищем;

талия – необходимо производить измерения в расслабленном
состоянии без дополнительных вдохов или выдохов;

бедра – необходимо измерять верхнюю часть ноги в пиковой точке, то
есть в самом широком месте;

голень – необходимо встать на носки стоя, но не напрягать
максимально икры, и измерить самое широкое место;

предплечье – необходимо выполнить сгиб кулака для напряжения
предплечья и произвести измерения почти возле локтя [23].
Следует отметить, что при формировании тренировочного процесса тренер
будет
выбирать
типы
замеров,
которые
следует
производить
клиенту,
основываясь на выбранной клиентом цели. Каждой поставленной цели
соответствуют своим замеры. Например, клиент пришел в зал с целью улучшить
качество тела и укрепить мышцы пресса. Для отслеживания прогресса следует
выполнять замеры талии, и совершенно нет смысла выполнять замеры голени или
шеи. Но, как сказано выше, выбор производимых клиентом замеров остается за
тренером. Схема функции добавления в описание текущего функционального
состояния клиента результатов замеров клиента представлена на рисунке 7.
58
Рисунок 7 – Схема функции добавления в описание текущего функционального
состояния клиента результатов замеров клиента
59
5.
Добавление
в
описание
функционального
состояния
клиента
результатов выполнения упражнений. Во время выполнения тренировочной
программы, клиент записывает в дневник информацию о количестве подходов,
повторений и весов отягощения для каждого упражнения. Следует отметить, что
веса отягощения используются не для всех упражнений, поэтому для некоторых
упражнений не будет отображаться поле ввода веса отягощения в дневнике
тренировок. Данные количественные показатели являются базовыми элементами
для отслеживания прогресса. Любой начинающий спортсмен, использует именно
их, начиная вести дневник тренировок. Для формирования описания текущего
функционального состояния клиента следует пройти по списку выполненных в
течение тренировки упражнений, по которым клиент внес количественные
данные и сравнить текущие показатели с предыдущими, полученными при
прошлых выполнениях этих же упражнений. Признаком прогресса будет являться
повышение количества подходов, повышение количество подходов либо
повышение весов отягощения. Если все параметры остались на прежних
позициях, значит, скорее всего, происходит застой. А значит следует вносить
изменения в тренировочный процесс.
Добавление информации о результатах выполнения упражнений в
описание текущего функционального состояния клиента происходит следующим
образом:
1.
У каждого упражнения проверяется значение, сохраненное в поле,
отвечающем за количество подходов к выполнению упражнения.
2.
Если значение количества подходов равно нулю, то дальнейшая
обработка для выбранного упражнения прекращается и выбирается следующее
упражнение.
3.
Если значение количества подходов больше нулю, то производится
поиск в дневнике тренировок истории выполнения данного упражнения и в
случае успеха будут найдены значения предыдущих выполнений текущего
упражнения. Иначе, никакого анализа провести не получится и переходим к
следующему упражнению.
60
4.
берутся
Когда результаты предыдущего выполнения найдены, то оттуда
данные о
количестве подходов к выполнению упражнения и
сравниваются с текущими.
5.
Если текущие значения равны предыдущим, то в описание текущего
функционального состояния клиента заносится информация о том, что количество
подходов для данного упражнения не изменилось.
6.
Иначе, если текущие значения больше предыдущих, то в описание
текущего функционального состояния клиента заносится информация о том, что
количество подходов по данному упражнению увеличилось. Иначе, заносится
информация о том, что количество подходов
к данному упражнению
уменьшилось.
7.
После этого подобным образом обрабатывается информация о
количестве повторений в подходах к упражнению. Точно так же происходит
поиск предыдущих показателей и сравнение с текущими показателями с
сохранением итогов сравнения в описание текущего функционального состояния
клиента.
8.
Затем происходит проверка, относится ли упражнение к тому типу
упражнений, что содержат информацию о весе отягощения. Если да, то
производится обработка указанного веса отягощения и сравнение с предыдущими
значениями. Результаты также заносятся в описание текущего функционального
состояния клиента.
9.
Если упражнение не относится к тем, для которых следует указывать
о отслеживать веса отягощения, то происходит переход к следующему
упражнению.
Схема функции добавления в описание функционального состояния
клиента результатов выполнения упражнений описана на рисунке 8.
Сформированное таким образом описание текущего функционального
состояния клиента будет сохранено в базе данных и может быть использовано для
дальнейшей обработки системой формирования рекомендаций по изменению
тренировочного плана на основе записей пользователей.
Рисунок 8 - Схема функции сбора информации об упражнениях
61
62
3 ПРОЕКТИРОВАНИЕ ПРОТОТИПА СЕРВИСА СБОРА
ИНФОРМАЦИИ О ТРЕНИРОВОЧНОМ ПРОЦЕССЕ ДЛЯ
ФОРМИРОВАНИЯ РЕКОМЕНДАЦИЙ ПО ИЗМЕНЕНИЮ
ТРЕНИРОВОЧНОГО ПЛАНА
3.1 Логическая схема построения сети прототипа сервиса сбора
информации о тренировочном процессе для формирования рекомендаций
При проектировании сервиса огромную роль играет архитектура его
построения. Архитектура – это формальное описание или подробный план
системы на уровне компонентов для руководства в процессе ее создания. В нашем
случае построение веб-сервиса предполагает использование реализации сетевой
архитектуры, что лучше всего проиллюстрирует логическая схема построения
сети сервиса «Ваш личный тренер» с разрабатываемой методикой (рисунок 9).
Рисунок 9 – Логическая схема построения сети сервиса «Ваш личный тренер» с
разрабатываемой методикой
63
Архитектура
построения
разрабатывается
исходя
из
следующих
соображений:

разработка и моделирование сервиса осуществляется на разных
уровнях абстракции;

отделение инструкции от реализации;

построение гибких систем;

проверка на соответствие бизнес-требованиям;

анализ объема изменений при появлении новых требований;

проверка на соответствие правилам.
Из представленной схемы видно, что в состав основного сервиса «Ваш
личный тренер» входит сервер, веб-интерфейс, а также мобильное приложение.
Так, архитектура "клиент-сервер " разделяет функции приложения
пользователя (называемого клиентом) и сервера. Приложение-клиент формирует
запрос к серверу, на котором расположена БД, на структурном языке запросов
SQL (Structured Query Language), являющемся промышленным стандартом в мире
реляционных БД. Удаленный сервер принимает запрос и переадресует его SQLсерверу БД.
При выполнении запросов сервером существенно повышается степень
безопасности данных, поскольку правила целостности данных определяются в
базе данных на сервере и являются едиными для всех приложений использующих
эту БД. Таким образом исключается возможность определения противоречивых
правил
поддержания
поддерживаемый
целостности.
SQL-серверами,
Мощный
позволяет
аппарат
исключить
транзакций,
одновременное
изменение одних и тех же данных различными пользователями и предоставляет
возможность откатов к первоначальным значениям при внесении в БД изменений
закончившихся аварийно. Работа сервиса автоматизации составления программ
тренировок с учетом физиологических особенностей человека построена
следующим образом:

база данных находится на жестком диске сервера сети;

СУБД тоже находится на сервере сети в виде набора файлов;
64

существует локальная сеть, состоящая из клиентских компьютеров, на
каждом из которых установлено клиентское приложение для работы с БД;

на
каждом
из
клиентских
компьютеров пользователи
имеют
возможность запустить приложение. Используя предоставляемый приложением
пользовательский интерфейс, он инициирует обращение к СУБД, расположенной
на сервере, на выборку/обновление информации. Для общения используется
специальный язык запросов SQL, т.е. по сети от клиента к серверу передается
лишь текст запроса;

СУБД инкапсулирует внутри себя все сведения о физической
структуре БД, расположенной на сервере;

СУБД инициирует обращения к данным, находящимся на сервере, в
результате которых на сервере осуществляется вся обработка данных и лишь
результат выполнения запроса копируется на клиентский компьютер. Таким
образом СУБД возвращает результат в приложение;

приложение, используя пользовательский интерфейс, отображает
результат выполнения запросов.
Преимущества клиент-серверных систем:

клиент-серверный
подход
модульный,
причем
серверные
программные компоненты компактны и автономны;

поскольку каждый компонент выполняется в отдельном защищенном
процессе пользовательского режима, сбой сервера не повлияет на остальные
компоненты операционной системы;

автономность компонентов делает возможным их выполнение на
нескольких процессорах на одном компьютере (симметричная многопроцессорная
обработка) или на нескольких компьютерах сети (распределенные вычисления);

обязанность клиента, как правило, предоставлять пользовательские
сервисы и, прежде всего, пользовательский интерфейс, то есть средства для
приема, отображения и редактирования данных, введенных пользователем,
которые служат основой для запроса серверу. Кроме того, клиент можно
65
настроить на обработку части данных, чтобы уменьшить нагрузку на ресурсы
сервера.
К числу недостатков можно отнести более высокие финансовые затраты на
аппаратное и программное обеспечение, а также то, что большое количество
клиентских
компьютеров,
определенные
расположенных
трудности
со
в
своевременным
разных
местах,
обновлением
вызывает
клиентских
приложений на всех компьютерах-клиентах. Тем не менее, архитектура «клиентсервер» хорошо зарекомендовала себя на практике. В настоящий момент
существует
и
функционирует
большое
количество
БД,
построенных
в
соответствии с данной архитектурой.
Использование данной архитектуры предполагает наличие некоторого
количества компьютеров, объединенных в сеть, один из которых выполняет
особые
управляющие
функции
(является
сервером
сети).
Обычно
они
взаимодействуют через компьютерную сеть посредством сетевых протоколов и
находятся на разных вычислительных машинах.
Взаимодействие сервера и клиента можно описать следующим образом:
клиент отправляет на сервер запрос с необходимыми параметрами. Сервер,
исходя из параметров запроса, выбирает необходимую информацию из базы
данных и возвращает её в сериализованном виде в качестве ответа. Клиент
получает данные в виде строки и проводит её десериализацию, отображая на
модель данных. В результате отображения, образуются объекты используемого
языка программирования, над которыми выполняются дальнейшие операции.
Разновидностей данной архитектуры не так уж и много, одна плавно
переходит в другую, поэтому выбор был сделан в пользу трехзвенной
архитектуры «клиент-сервер».
Она реализуются на основе модели сервера приложений, где сетевое
приложение разделено на две и более частей, каждая из которых может
выполняться
на отдельном компьютере. Выделенные части
взаимодействуют
друг
согласованном формате.
с
другом,
обмениваясь
сообщениями
приложения
в
заранее
66
Как правило, третьим звеном в трехзвенной архитектуре становится сервер
приложений, т.е. компоненты распределяются следующим образом:

представление данных – на стороне клиента;

прикладной компонент – на выделенном сервере приложений (как
вариант, выполняющем функции промежуточного ПО);

управление ресурсами – на сервере БД, который и представляет
запрашиваемые данные.
Основной целью приложения является предоставление необходимой
информации для упрощения тренировочного процесса пользователя по средствам
сети Интернет, необходимо включить в его серверную часть вебсервер –
аппаратно-программный комплекс, предназначенный для обслуживания запросов.
Запрос формируется согласно протоколу TCP/IP на сервер на заранее
определенный порт с целью выполнения какого-либо удаленного действия
(манипуляции с информацией, выполнения определенных команд и т.д.). Как
правило, такие запросы посылает интернет-браузер клиента.
Поскольку приложение предполагает большое число операций по чтению,
добавлению и изменению значительного объема данных, наиболее удобным
вариантом будет включение в серверную часть технологий баз данных.
Серверная часть вмещает в себя веб-сервер и сервер баз данных. В задачи
веб-сервера входят:

получение и ответ на запросы;

перенаправление запросов на необходимое приложение, как правило,
приписанное к определенному домену или поддомену;

предоставление приложениям доступа к необходимым модулям
(например, к модулю связи с СУБД);

реализация функций файл-сервера;

другие функции.
В задачи сервера баз данных входит:

SQL;
обслуживание запросов на манипуляции с данными на основе языка
67

обслуживание базы данных;

обеспечение целостности данных;

предоставление утилит для административного управления СУБД.
Front-офис представлен мобильным приложением и веб-интерфейсом для
пользователей подсистемы тренировочных комплексов, которая входит в состав
сервиса, с такими же функциями, которые реализованы в мобильном приложении.
Back-офис состоит из администраторов.
3.2 Структуры данных, используемые прототипом сервиса сбора
информации о тренировочном процессе для формирования рекомендаций
Для
хранения
информации
о
результатах
выполнения
клиентом
тренировочного плана, сохраняемой в дневнике тренировок, необходимо
дополнить существующую структуру базы данных сервиса «Ваш личный тренер»
новыми сущностями. На рисунке 10 отображена итоговая логическая схема части
базы данных сервиса «Ваш личный тренер», отвечающей за работу с хранением
данных о пользователе и его тренировках, а также о прогрессе выполнения
тренировочного плана в добавленном дневнике тренировок.
В сервисе «Ваш личный тренер» на момент создания методики сбора
информации о тренировках пользователя для формирования рекомендаций по
изменению тренировочного плана использовались следующие сущности:

«Пользователь»;

«Программа тренировок»;

«День программы тренировок»;

«Упражнения дня программы тренировок»;

«Упражнения»;

«Мускульные группы»;

«Упражнения мускульных групп».
Для функционирования дневника тренировок, как сервиса для сбора
информации о тренировках пользователя и формирования описания текущего
68
функционального состояния пользователя для дальнейшего формирования
рекомендаций были добавлены дополнительные сущности:

«Дневник тренировок»;

«День дневника тренировок»;

«Упражнения дня тренировок»;

«Замеры»;

«Замеры дня».
Рисунок 10 – Логическая схема части базы данных, отвечающей за программу и
дневник тренировок
Логическая схема позволяет отобразить список сущностей и связи между
ними без привязки к определенной СУБД, так как не требует отображения типов
данных полей.
Рассмотрим представленные на рисунке сущности более подробно.
69
Сущность «Пользователь» служит для хранения основной информации о
клиенте и содержит следующие поля:

«Код клиента», являющийся первичным ключом;

«Имя»;

«Пол»;

«Рост»;

«Вес»;

«Цель занятий»,

«Соматотип».
Сущность «Программа тренировок» отводится для хранения информации о
списке тренировочных программ, связанных с определенным пользователем и
содержит следующие поля:

«Код программы тренировок», являющийся первичным ключом;

«Название»;

«Активность»;

«Код клиента», являющийся внешним ключом.
Сущность «День программы тренировки» отводится для хранения данных
об отдельных днях тренировочной программы и содержит следующие поля:

«Код дня программы тренировок», являющийся первичным ключом;

«Номер»;

«Код программы тренировок», являющийся внешним ключом.
Сущность «Упражнения дня программы тренировок» отводится для
хранения данных о списке упражнений для отдельного дня тренировочной
программы и содержит следующие поля:

«Код
упражнения
дня
первичным ключом;

«Количество подходов»;

«Количество повторений»;

«Веса отягощения»;
программы
тренировок»,
являющийся
70

«Позиция в списке»;

«Код дня программы тренировок», являющийся внешним ключом;

«Код упражнения», являющийся внешним ключом.
Сущность «Упражнения» необходима для хранения информации об
упражнениях, находящихся в системе и содержит следующие поля:

«Код упражнения», являющийся первичным ключом;

«Название»;

«Описание»;

«Видео».
Сущность «Мускульные группы» отводится для хранения информации о
мускульных группах и содержит следующие поля:

«Код мускульной группы», являющийся первичным ключом;

«Название».
Сущность «Упражнения мускульных групп» отводится для связывания
упражнений и мускульных групп, на которые упражнения воздействуют.
Содержит следующие поля:

«Код упражнения мускульных групп», являющийся первичным
ключом;

«Код упражнения», являющийся внешним ключом;

«Код мускульной группы», являющийся внешним ключом.
Сущность «Дневник тренировок» содержит информацию о дневнике
тренировок пользователя и содержит следующие поля:

«Код дневника тренировок», являющийся первичным ключом;

«Код клиента», являющийся внешним ключом.
Сущность «День дневника тренировок» содержит информацию о днях,
описанных в дневнике тренировок клиентом и содержит поля:

«Код дня дневника тренировок», являющийся первичным ключом;

«Код дневника тренировок», являющийся внешним ключом;

«Описание состояния клиента»;
71

«Дата».
Сущность «Упражнения дня дневника тренировок» отводится для
хранения данных о фактических результатах выполнения упражнений, связанных
с определенным днем дневника тренировок, и содержит поля:

«Код упражнения дня дневника тренировок», являющийся первичным
ключом;

«Количество подходов»;

«Количество повторов»;

«Веса отягощения»;

«Позиция в списке»;

«Код дня дневника тренировок», являющийся внешним ключом;

«Код упражнения», являющийся внешним ключом.
Сущность «Замеры дня» отводится для хранения данных о результатах
замеров, проводимых в определенный день, отмеченный в дневнике тренировок.
Содержит в себе поля:

«Код замера дня», являющийся первичным ключом;

«Код дня дневника тренировок», являющийся внешним ключом;

«Код замера», являющийся внешним ключом;

«Значение»;

«Фотография».
Сущность «Замеры» отводится для хранения данных о возможных
замерах, результаты которых можно хранить в дневнике. Содержит в себе поля:

«Код замера», являющийся первичным ключом;

«Название»;

«Описание».
После описания сущностей следует описать виды связей между ними.
72
На основе анализа предметной области разрабатываемой базы данных
можно сделать следующие выводы:

сущность «Профиль клиента» связана с сущностью «Программа
тренировок» связью «один ко многим», так как клиенту может быть назначено
множество программ;

сущность «Программа тренировок» связана с сущностью «День
программы тренировок» связью «один ко многим», так как программа тренировок
состоит из тренировочных дней;

сущность «День программы тренировок» связана с сущностью
«Упражнения» связью «многие ко многим», что привело к созданию
промежуточной сущности «Упражнения дня программы тренировок»;

сущность «Упражнения» связана с сущностью «Мускульные группы»
связью «многие ко многим», что привело к использованию дополнительной
сущности «Упражнения мускульных групп»;

сущность «Профиль клиента» связана с сущностью «Дневник
тренировок» связью «один к одному», так как у одного клиента может быть лишь
один дневник тренировок;

сущность «Дневник тренировок» связана с сущностью «День
дневника тренировок» связью «один ко многим», так как дневник содержит
множество дней с записями;

сущность «День дневника тренировок» связана с сущностью
«Упражнения» связью «многие ко многим», что привело к необходимости
использования связывающей их дополнительной сущности «Упражнения дня
дневника тренировок»;

сущность «День дневника тренировок» связана с сущностью
«Замеры» связью «многие ко многим», что привело к использованию
дополнительной сущности «Замеры дня».
Все
связи
разрабатываемой
базы
данных,
являются
неидентифицирующими, так как первичный ключ родительской сущности не
идентифицирует дочернюю сущность. Например, код упражнения или код
73
мускульной группы не определяют уникальность сущности «Упражнения
мускульных групп», поэтому эти атрибуты не входят в состав первичного ключа
дочерней таблицы, а в качестве первичного ключа используется суррогатный
ключ.
Логическая схема база данных позволяет отобразить сущности, их
атрибуты и связи между сущностями без привязки к конкретной реализации
СУБД. Но для реализации прототипа следует использовать конкретную СУБД,
поэтому появляется необходимость в создании физической модели данных,
которая расширит логическую модель, дополнив ее типами данных.
Физическая схема части базы данных сервиса «Ваш личный тренер»,
отвечающая за работу с хранением данных о пользователе и его тренировках, а
также о прогрессе выполнения тренировочного плана в добавленном дневнике
тренировок представлена на рисунке 11.
Рисунок 11 – Физическая схема части базы данных, отвечающей за программу и
дневник тренировок
74
4 РЕАЛИЗАЦИЯ ПРОТОТИПА СЕРВИСА СБОРА ИНФОРМАЦИИ
О ТРЕНИРОВОЧНОМ ПРОЦЕССЕ ДЛЯ ФОРМИРОВАНИЯ
РЕКОМЕНДАЦИЙ ПО ИЗМЕНЕНИЮ ТРЕНИРОВОЧНОГО ПЛАНА
4.1 Реализация диалога с пользователем прототипа сервиса сбора
информации о тренировочном процессе для формирования рекомендаций
При построении логики диалога с пользователем следует придерживаться
принципов:

интерфейс должен быть интуитивно понятным, клиент, впервые
воспользовавшись приложением должен сразу догадаться, как взаимодействовать
с сервисом;

интерфейс должен быть предсказуемым, то есть, клиент, взглянув на
тот или иной элемент интерфейса должен сразу понять, как поведет себя элемент
в случае взаимодействия;

следует стремиться к минимализму, избегая загромождения лишними
элементами;

загрузка
не
должна
происходить
медленно,
лишая
терпения
пользователя;

пользователь должен видеть анимацию загрузки, даже если она
происходит в фоне приложения, иначе он решит, что приложение не отвечает;

в приложении стараться придерживаться правила трех кликов – в три
клика можно добраться до любой информации.
Так как взаимодействовать с дневником тренировок удобнее во время
выполнения тренировочной программы, чтобы сразу заносить количественные
показатели тренировочного процесса, такие как количество подходов, повторений
и веса отягощения для выполняемых упражнений. Поэтому сделаем акцент на
интерфейсах для мобильного приложения, а не веб-приложении.
Каждое приложение, будь то веб приложение или мобильное приложение,
имеет пользовательский интерфейс для того, чтобы пользователь мог наиболее
простым образом взаимодействовать с сервисом. Результатом взаимодействия
75
пользователя и системы является внесение, изменение, сохранение или удаление
какой-то информации в памяти устройства. Применительно к разрабатываемому
сервису – хранение информации о тренировочном процессе пользователя.
Причем, в данном случае хранение информации подразумевает под собой
добавление новой информации либо редактирование существующей информации.
Проектирование диалога, как правило, подразумевает определение
всевозможных состояний системы. Состоянием принято считать устойчивое
положение подсистемы, при котором у пользователя есть возможность выполнять
определенный набор действий. Характеристикой состояния является контекст –
ограниченное количество визуальных объектов, которые доступны пользователю
в том или ином состоянии. Каждое изменение контекста отображается на экране.
При этом пользователь видит приложение как окно с визуальными объектами:
поля ввода, кнопки, таблицы, рисунки. Взаимодействуя с ними, пользователь
порождает события.
Логика диалога пользователя с прототипом мобильной версии сервиса
сбора информации о тренировочном процессе пользователя для формирования
рекомендаций представлена на рисунке 12.
Как видно на рисунке, интерфейс прототипа имеет множество состояний,
отображающих окна, которые видит пользователь, взаимодействуя с теми или
иными элементами экрана.
Начальным состоянием является «Окно вывода информации в дневнике
тренировок пользователя за выбранный день», куда пользователь попадает,
перейдя из основного приложения сервиса «Ваш личный тренер».
Рисунок 12 - Диаграмма состояний и переходов прототипа разрабатываемой методики
76
77
Рассмотрим подробнее диаграмму переходов и состояний, изображенную
на рисунке 12.
Клиент может совершить выбор любого другого дня дневника тренировок
и снова попадет в начальное состояние «Окно вывода информации в дневнике
тренировок пользователя за выбранный день», где будет отображаться
информация по выбранному дню дневника тренировок.
Клиент может нажать кнопку «Сформировать описание», расположенную
внизу экрана дневника тренировок, описание функционального состояния будет
сформировано и добавлено в базу данных, после чего клиент снова попадет в
начальное состояние «Окно вывода информации в дневнике тренировок
пользователя за выбранный день».
Клиент может нажать кнопку «Назад» на мобильном устройстве и перейти
в финальное состояние, завершив работу с сервисом.
Клиент может нажать на круглую кнопку меню и попасть в состояние,
отображающее «Интерфейс меню». Отсюда он может:
1.
По повторному нажатию на кнопку меню попасть в начальное
состояние «Окно вывода информации в дневнике тренировок пользователя за
выбранный день».
2.
По нажатию на пункт меню «Упражнения тренировки» сервис
перейдет в состояние, отображающее «Окно добавления нового упражнения из
тренировочного плана», где клиент сможет отметить упражнения активной
тренировки, результаты выполнения которых он хочет добавить. Из этого
состояния клиент по нажатию на любую из отображенных на окне кнопок
«Применить» или «Отмена» попадает в начальное состояние «Окно вывода
информации в дневнике тренировок пользователя за выбранный день».
3.
По нажатию на пункт меню «Замер» сервис переходит в состояние,
отображающее «Окно добавления замера», где клиент сможет выбрать замеры,
результаты которых он хочет добавить в информацию о текущем дне, а также
внести результаты замеров. Из этого состояния клиент по нажатию на любую из
отображенных на окне кнопок «Применить» или «Отмена» попадает в начальное
78
состояние «Окно вывода информации в дневнике тренировок пользователя за
выбранный день», сохранив или не сохранив результаты замера – в зависимости
от выбранной кнопки.
4.
По нажатию на пункт меню «Упражнения» сервис переходит в
состояние, отображающее «Окно добавления упражнений из базы упражнений»,
где клиент сможет найти и отметить те упражнения, которые он выполнил в этот
день,
возможно,
заменив
некоторые
упражнения
активной
тренировки,
результаты выполнения которых клиент хотел бы сохранить. Из этого состояния
клиент по нажатию на любую из отображенных на окне кнопок «Применить» или
«Отмена» попадает в начальное состояние «Окно вывода информации в дневнике
тренировок пользователя за выбранный день».
5.
По нажатию на пункт меню «Питание» сервис переходит в состояние,
отображающее «Окно добавления информации о питании», где клиент, на данный
момент, сможет добавить текущее суточное значение употребленных БЖУ. Из
этого состояния клиент по нажатию на любую из отображенных на окне кнопок
«Применить» или «Отмена» попадает в начальное состояние «Окно вывода
информации в дневнике тренировок пользователя за выбранный день», причем,
если значение будет применено и сохранено, то из меню для данного дня
пропадет пункт «Питание», так как нельзя ввести два суточных значения за одни
сутки.
В частном случае, когда для выбранного дня присутствует информация по
различным аспектам тренировочного процесса, таким как результаты выполнения
упражнений активной тренировки, результаты замеров, результаты питания,
результаты выполнения упражнений, не входящих в текущую тренировку,
доступно максимально возможное количество управляющих элементов для
взаимодействия клиента с сервисом.
Рассмотрим далее оставшиеся состояния для описанного выше частного
случая.
Из начального состояния «Окно вывода информации в дневнике
тренировок пользователя за выбранный день» клиент может:
79
По нажатию на кнопку «меню» на элементе с информацией об
1.
упражнении
перейти
в
состояние,
отображающее
«Интерфейс
меню
редактирования информации о выбранном упражнении», где клиент может
выбрать в отобразившемся меню действие над выбранным упражнением:
удаление упражнения, редактирование количественных параметров выполнения
выбранного упражнения. Из этого состояния по нажатию вне меню или по
нажатию на пункт меню «Удалить», происходит переход в начальное состояние
«Окно вывода информации в дневнике тренировок пользователя за выбранный
день», причем в первом случае, никаких изменений в дневнике не произойдет, а
во втором – информация с результатами выполнения выбранного упражнения
будет удалена из текущего дня дневника тренировок. Также из состояния
«Интерфейс меню редактирования информации о выбранном упражнении» можно
перейти
в
состояние
«Окно
редактирования
результатов
выполнения
упражнения», где клиент сможет отредактировать количество подходов,
повторений и весов отягощения, если веса указываются для данного упражнения.
Из состояния «Окно редактирования результатов выполнения упражнения» по
нажатию на кнопку возврата на телефоне либо по нажатию кнопки «Ок» сервис
переходит в начальное состояние «Окно вывода информации в дневнике
тренировок пользователя за выбранный день».
По нажатию на значок «меню» на элементе с информацией о питании
2.
перейти
в
состояние,
отображающее
«Интерфейс
меню
редактирования
информации о питании», где клиент может выбрать в отобразившемся меню
действие над записью о питании: удаление записи из дневника, редактирование
значения суточного потребления БЖУ. Из этого состояния по нажатию вне меню
или по нажатию на пункт меню «Удалить», происходит переход в начальное
состояние «Окно вывода информации в дневнике тренировок пользователя за
выбранный день», причем в первом случае, никаких изменений в дневнике не
произойдет, а во втором – информация с информацией о БЖУ будет удалена из
текущего дня дневника тренировок. Также из состояния «Интерфейс меню
редактирования информации о питании» можно перейти в состояние «Окно
80
редактирования значений БЖУ», где клиент сможет отредактировать значения
БЖУ. Из состояния «Окно редактирования значений БЖУ» по нажатию на кнопку
возврата на телефоне либо по нажатию кнопки «Ок» сервис переходит в
начальное состояние «Окно вывода информации в дневнике тренировок
пользователя за выбранный день», не применив или применив внесенные
изменения.
По нажатию на кнопку «меню» на элементе с информацией о замере
3.
перейти
в
состояние,
отображающее
«Интерфейс
меню
редактирования
информации о выбранном замере», где клиент может выбрать в отобразившемся
меню действие над выбранным замером: удаление информации о замере,
редактирование значений замера, изменением времени выполнения замера. Из
этого состояния по нажатию вне меню или по нажатию на пункт меню «Удалить»,
происходит переход в начальное состояние «Окно вывода информации в
дневнике тренировок пользователя за выбранный день», причем в первом случае,
никаких изменений в дневнике не произойдет, а во втором – информация с
результатами значений выбранного замера будет удалена из текущего дня
дневника тренировок. Также из состояния «Интерфейс меню редактирования
информации о выбранном замере» можно по нажатию на пункт меню замеров
«Редактировать» перейти в состояние «Окно редактирования результата замера»,
где клиент сможет отредактировать значения замера. Также из состояния
«Интерфейс меню редактирования информации о выбранном замере» можно по
нажатию на пункт меню замеров «Изменить время» перейти в состояние «Окно
редактирования времени замера», где клиент сможет отредактировать значение
времени осуществления замера. Из состояний «Окно редактирования результата
замера» и «Окно редактирования времени замера» по нажатию на кнопку возврата
на телефоне либо по нажатию кнопки «Ок» сервис переходит в начальное
состояние «Окно вывода информации в дневнике тренировок пользователя за
выбранный день».
4.
тренировке
По нажатию на кнопку «меню» на элементе с информацией о
перейти
в
состояние,
отображающее
«Интерфейс
меню
81
редактирования информации о времени тренировки», где клиент может выбрать в
отобразившемся меню действие над информацией о тренировке: удаление
информации о тренировке и всех связанных с ней упражнений из текущего дня
дневника, редактирование временных показателей тренировки. Из этого
состояния по нажатию вне меню или по нажатию на пункт меню «Удалить»,
происходит переход в начальное состояние «Окно вывода информации в
дневнике тренировок пользователя за выбранный день», причем в первом случае,
никаких изменений в дневнике не произойдет, а во втором – информация с
информацией о выполнении тренировки вместе результатами выполнения
упражнений данной тренировки будет удалена из текущего дня дневника
тренировок. Также из состояния «Интерфейс меню редактирования информации о
времени тренировки» можно по нажатию на пункт меню «Редактировать время»
перейти в состояние «Окно редактирования временных результатов выполнения
тренировки», где клиент сможет отредактировать временные показатели для
тренировки. Из состояния «Окно редактирования временных результатов
выполнения тренировки» по нажатию на кнопку возврата на телефоне либо по
нажатию кнопки «Ок» сервис переходит в начальное состояние «Окно вывода
информации в дневнике тренировок пользователя за выбранный день».
4.2 Экранные формы прототипа сервиса сбора информации о
тренировочном процессе для формирования рекомендаций
После
подробного
описания
состояний
и
переходов
во
время
взаимодействия клиента и прототипа сервиса сбора информации о тренировочном
процессе для формирования рекомендаций следует отобразить экранные формы
прототипа, реализованного согласно описанной логике диалога с пользователем.
На рисунке 13 представлена часть прототипа сервиса сбора информации о
тренировочном процессе для формирования рекомендаций. Как видно, клиент
может выбрать любой из соседних календарных дней и посмотреть записи
дневника тренировок за выбранный день.
82
Рисунок 13 – Экранные формы прототипа сервиса сбора информации о
тренировочном процессе для формирования рекомендаций, лист 1
Далее, в блоках расположены разделы:

упражнения;

оценка состояния.
В разделе упражнения можно увидеть текущую программу тренировок, с
отображением ее названия и названия дня тренировки, на которые поделены все
тренировки. Три точки, расположенные в конце элемента, являются обозначением
кнопки вызова меню для редактирования информации о тренировке.
83
Ниже
расположены
элементы,
отображающие
информацию
об
упражнениях. На отдельном элементе можно увидеть следующую информацию:

название упражнения;

количество подходов;

количество повторений;

значение весов отягощения.
В правой часть элемента, отображающего информацию об упражнении,
находится кнопка вызова меню с изображением карандаша для редактирования
информации о текущем упражнении.
В блоке оценки состояния пользователь может оценить свое общее
состояние после тренировки, выбрав заполнив звездочную шкалу, нажав на
звезду. Значимость оценки состояния возрастает слева направо. Кроме того,
звезды слева от выбранной тоже меняют свой цвет, таким образом, получившаяся
оценка является суммой изменивших цвет звезд. Звезды, оказавшиеся справа от
выбранной звезды, остаются неактивными.
На рисунке 14 представлено продолжение отображения экранных форм
прототипа
сервиса
сбора
информации
о
тренировочном
процессе
для
формирования рекомендаций.
В блок оценки состояния также входит оценка уровня тонуса клиента.
Отображается несколько лингвистических переменных для оценки уровня тонуса,
среди которых клиент может выбрать те, которые считает наиболее подходящими
в его текущем состоянии.
84
Рисунок 14 – Экранные формы прототипа сервиса сбора информации о
тренировочном процессе для формирования рекомендаций, лист 2
Кроме того, клиент может оставить комментарий для тренера в
специальном поле ввода, высота которого будет динамически расширяться для
отображения текста.
Следующим блоком являются замеры. Как видно на рисунке 14, элемент
замера содержит в себе информацию:

о названии замера;

о времени время выполнения замера;
85

о результатах замера с указанием единиц измерения.
В правой часть элемента, отображающего информацию о замере,
находится кнопка вызова меню с изображением карандаша для редактирования
информации о текущем замере.
Также на обоих рисунках можно увидеть круглую зеленую кнопку меню,
нажатие на которую приведет к отображению списка меню. Список меню
представлен на рисунке 15.
Рисунок 15 – Список меню прототипа сервиса сбора информации о
тренировочном процессе для формирования рекомендаций
Представленные на рисунках экранные схемы являются половинами
одного экранного окна. В нижней части этого окна находится кнопка
«Сформировать описание», нажатие на которую приводит к запуску механизма
разрабатываемой методики сбора информации о тренировочном процессе для
формирования
рекомендаций.
В
результате
этого
по
информации
о
тренировочном процессе из дневника тренировок формируется текстовое
описание текущего функционального состояния клиента и сохраняется в базу
данных.
86
ЗАКЛЮЧЕНИЕ
В ходе выполнения выпускной квалификационной работы был проведен
анализ существующих решений в области построения систем сбора информации
для формирования рекомендаций по изменению тренировочного плана, изучены
существующие методы сбора информации о тренировочном процессе, а также
проведены проектирование и реализация прототипа информационной системы
сбора информации о тренировочном процессе.
В процессе выполнения работы были решены задачи, включающие в себя:

обзор существующих методик сбора информации о тренировочном
процессе;

анализ подходов к построению систем сбора информации о
тренировочном процессе;

формализация
требований
к
системам
сбора
информации
о
тренировочном процессе для формирования рекомендаций;

разработка методики сбора информации о тренировочном процессе
для формирования рекомендаций по изменению тренировочного плана;

проектирование прототипа информационной системы использующего
созданную методику;

разработка и реализация прототипа сервиса сбора информации о
тренировочном процессе для формирования рекомендаций по изменению
тренировочного плана.
Таким образом, все вышеперечисленные задачи были решены, что
позволяет говорить о достижении поставленной цели.
87
СПИСОК ЛИТЕРАТУРЫ
1.
FIX
[Электронный
BODY:
ресурс]
–
Режим
доступа:
http://fixbody.ru/bodybuilding/advice/623-dorian-yats-zalog-nadezhnosti-prostota.html
(Дата обращения 30.11.2016).
2.
Спортивная
[Электронный
энциклопедия
ресурс]
SportWiki:
–
«Дневник
тренировок»
Режим
доступа:
http://sportwiki.to/Дневник_тренировок_(скачать) (дата обращения 30.11.2016).
3.
Портал
о
бодибилдинге
Proka4aem.ru:
«Правильное
и
сбалансированное питание для спортсменов» [Электронный ресурс] – Режим
доступа:
http://proka4aem.ru/pitanie/pravilnoe-pitanie/pravilnoe-i-sbalansirovannoe-
pitanie-dlya-sportsmenov (дата обращения 30.11.2016).
4.
Дневник тренировок iWorklog [Электронный ресурс] – Режим
доступа: http://iworklog.ru (Дата обращения 30.11.2016).
5.
[Электронный
GymApp
ресурс]
–
Режим
доступа:
https://play.google.com/store/apps/details?id=ru.adhocapp.gymapp (дата обращения
30.11.2016).
6.
IQ-BODY [Электронный ресурс] – Режим доступа: https://iq-body.ru
(дата обращения 30.11.2016).
7.
[Электронный
GymBoom
ресурс]
–
Режим
доступа:
https://play.google.com/store/apps/details?id=net.gymboom&hl=ru (дата обращения
30.11.2016).
8.
[Электронный
GymUp
ресурс]
–
Режим
доступа:
https://play.google.com/store/apps/details?id=com.adaptech.gymup (дата обращения
30.11.2016).
9.
Training
Note
[Электронный
ресурс]
–
Режим
https://play.google.com/store/apps/details?id=ru.kamisempai.TrainingNote
обращения 30.11.2016).
доступа:
(дата
88
10. Хабр: «Выбор технологий для большого и не очень большого вебпроекта»
ресурс]
[Электронный
–
Режим
доступа:
https://habr.com/company/SECL_GROUP/blog/315734 (дата обращения 05.12.2016).
11. IT портал Tproger: «Как начать разрабатывать под Android»
[Электронный ресурс] – Режим доступа: https://tproger.ru/translations/how-to-startandroid (дата обращения 10.12.2017).
12. Свободная
энциклопедия
Википедия:
«Android»
[Электронный
ресурс] – Режим доступа: https://ru.wikipedia.org/wiki/Android (дата обращения
15.12.2017).
13. Образовательный проект
Devacademy: «SQLite vs MySQL vs
PostgreSQL: сравнение систем управления базами данных» [Электронный ресурс]
– Режим доступа: http://devacademy.ru/posts/sqlite-vs-mysql-vs-postgresql (дата
обращения 15.09.2017).
14. Портал для разработчиков Developer.android.com: «Используйте
Firebase, единый кроссплатформенный SDK от Google, чтобы улучшить
приложения»
[Электронный
ресурс]
–
Режим
доступа:
https://developer.android.com/distribute/best-practices/develop/build-withfirebase?hl=ru#key-benefits (дата обращения 15.10.2017).
15. Портал для разработчиков Developer.android.com: «Google Cloud
Messaging:
Overview»
ресурс]
[Электронный
–
Режим
доступа:
https://developers.google.com/cloud-messaging/gcm (дата обращения 26.10.2017).
16. Портал
составляется
с
большой
программа
базой
тренировок
упражнений
–
FitNavigator.ru:
определяем
хорошего
«Как
тренера»
[Электронный ресурс] – Режим доступа: http://fitnavigator.ru/trenirovki/teoriya/kaksostavit-programmu-trenirovok.html (дата обращения 20.06.2017).
17. Портал о похудении и здоровом питании JHealth.ru: «Мужчины и
женщины
в
спортзале»
[Электронный
ресурс]
http://jhealth.ru/articles-info/muzhchinyi-i-zhenshhinyi-v-zale
20.06.2017).
–
Режим
(дата
доступа:
обращения
89
18. Спортивная
энциклопедия
SportWiki:
«Суперкомпенсация»
[Электронный ресурс] – Режим доступа: http://sportwiki.to/Суперкомпенсация
(дата обращения 21.06.2017).
19. Спортивная
энциклопедия
SportWiki:
«Оптимальная
частота
тренировок для роста мышц» [Электронный ресурс] – Режим доступа:
http://sportwiki.to/Оптимальная_частота_тренировок (дата обращения 21.06.2017).
20. Спортивная
энциклопедия
SportWiki:
«Оптимальная
продолжительность тренировки» [Электронный ресурс] – Режим доступа:
http://sportwiki.to/Оптимальная_продолжительность_тренировки (дата обращения
21.06.2017).
21. Образовательный ресурс для начинающих спортсменов Азбука
бодибилдинга: «Как составить программу тренировок? Все тонкости и секреты»
[Электронный
ресурс]
–
Режим
доступа:
http://ferrum-body.ru/kak-sostavit-
programmu-trenirovok.html (дата обращения 22.06.2017).
22. Справочное энциклопедическое издание Iron Health: «Как избежать
застоя в тренировках» [Электронный ресурс] – Режим доступа: www.ironhealth.ru/articles/kak-izbezhat-zastoya-v-trenirovkax.html
(Дата
обращения
22.06.2017).
23. Форум о бодибилдинге, пауэрлифтинге, кроссфите, фитнесе 4Rama:
«Замеры тела в бодибилдинге» [Электронный ресурс] – Режим доступа:
http://4rama.com/threads/zamery-tela-v-bodibildinge.1013
(Дата
обращения
22.04.2018).
24. Бычкова
A.С.
Сервис
автоматизации
составления
программ
тренировок с учетом физиологических особенностей человека, как электронная
услуга населению [Текст] / Р.А. Лунев, В.Н. Волков, А.А. Стычук, А.С. Бычкова //
Научные ведомости БелГУ. Серия: Экономика. Информатика. – Белгород: НИУ
«БелГУ», Издательский дом «Белгород», 2015. – №7(204)2015, Выпуск 34/1.
Июнь 2015. – 205 с. – С. 132 – 136. – ISSN 2411-3808.
25. Андреенков А.Б. Автоматизированная система ведения дневника
тренировок
пользователя
[Текст]
/
Андреенков
А.Б,
Бычкова
А.С.//
90
Естественнонаучные, инженерные и экономические исследования в технике,
промышленности, медицине и сельском хозяйстве: материалы I Молодѐжной
научно-практической конференции с международным участием; под общ. ред.
С.Н. Девицыной. – Белгород: ИД «Белгород» НИУ «БелГУ», 2017.
91
ПРИЛОЖЕНИЕ А
(Обязательное)
ЛИСТИНГ КОДА ОСНОВНЫХ ФУНКЦИЙ
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.database.Cursor;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.util.Log;
import android.util.TypedValue;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
import android.widget.ScrollView;
import android.widget.TextView;
public class TrainingDiaryActivity extends Activity {
private DB db;
private Cursor cursor;
private String trName = null;
private String trDate = null;
private TextView tvWeight, tvComment;
private FrameLayout content_frame;
private String measureItem;
92
private int total = 0;
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
super.onBackPressed();
return true;
}
return false;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_history_detailed);
tvComment = (TextView) findViewById(R.id.tvComment);
tvWeight = (TextView) findViewById(R.id.textViewWeightTOtal);
content_frame = (FrameLayout) findViewById(R.id.content_frame);
db = new DB(this);
db.open();
Intent intent = getIntent();
trName = intent.getStringExtra("trName");
trDate = intent.getStringExtra("date");
setupActionBar();
Cursor c = db.getCommentData(trDate);
if (c.moveToFirst()) {
Log.d("myLogs", c.getInt(4) + "");
total = c.getInt(4);
if (c.getString(2) != null) {
93
tvComment.setText(getResources().getString(R.string.comment)
+ " " + c.getString(2));
tvComment.setVisibility(View.VISIBLE);
} else {
tvComment.setVisibility(View.GONE);
}
}
c.close();
setupCursor();
setupLayout();
tvWeight.setText(getResources().getString(
R.string.total_weight_of_training)
+ " " + total + measureItem);
}
private void setupActionBar() {
getActionBar().setTitle(trName + " (" + trDate + ")");
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setDisplayShowHomeEnabled(false);
}
private void setupCursor() {
String[] cols = { DB.DATE, DB.TRA_NAME, DB.EXE_NAME,
DB.WEIGHT,
DB.REPS, DB.SET };
String[] args = { trDate };
cursor = db.getDataMain(cols, DB.DATE + "=?", args, null, null, null);
}
private void setupLayout() {
94
ScrollView scrollView = new ScrollView(this);
LinearLayout.LayoutParams lpView = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
lpView.gravity = Gravity.CENTER;
LinearLayout.LayoutParams lpData = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
lpData.gravity = Gravity.CENTER;
LinearLayout llMain = new LinearLayout(this);
llMain.setOrientation(LinearLayout.VERTICAL);
LayoutParams linLayoutParam = new LayoutParams(
LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT);
content_frame.addView(scrollView, linLayoutParam);
boolean ifZero = false;
if (total == 0)
ifZero = true;
int
px
=
TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
8, getResources().getDisplayMetrics());
SharedPreferences sp = PreferenceManager
.getDefaultSharedPreferences(this);
(int)
95
String item = sp.getString(BasicMenuActivityNew.MEASURE_ITEM,
"1");
measureItem = "";
if (item.equals("1")) {
measureItem = " ("
+
getResources().getStringArray(R.array.measure_items)[0]
+ ") ";
} else if (item.equals("2")) {
measureItem = " ("
+
getResources().getStringArray(R.array.measure_items)[1]
+ ") ";
}
scrollView.addView(llMain, linLayoutParam);
llMain.setGravity(Gravity.CENTER);
int color = getResources().getColor(R.color.gray_dark);
if (cursor.moveToFirst()) {
do {
LayoutInflater inflater = getLayoutInflater();
View card = inflater.inflate(R.layout.item_detailed_history,
null, false);
TextView tvName = (TextView) card
.findViewById(R.id.textViewExerciseName);
LinearLayout llData = (LinearLayout) card
.findViewById(R.id.linearLayoutForConent);
llData.setGravity(Gravity.CENTER);
tvName.setText(cursor.getString(2));
tvName.setTextColor(color);
96
lpView.setMargins(0, px, 0, 0);
llMain.addView(card, lpView);
do {
TextView tvNewSet = new TextView(this);
tvNewSet.setGravity(Gravity.CENTER);
tvNewSet.setText("" + cursor.getInt(3) + measureItem
+ "/"+ cursor.getInt(4));
tvNewSet.setTextColor(color);
if (ifZero == true) {
total += cursor.getInt(3) * cursor.getInt(4);
}
lpData.gravity = Gravity.CENTER;
llData.addView(tvNewSet, lpData);
} while (cursor.moveToNext() && cursor.getInt(5) != 1);
cursor.moveToPrevious();
} while (cursor.moveToNext());
}
cursor.close();
}
private void createListOfExercise() {
Log.d(LOG_TAG, "TrainingDayActivity.java createListOfExercise");
LinearLayout
contentMainLayout
=
(LinearLayout)
findViewById(R.id.contentLayoutActivityTraining);
for
(final
ExerciseProgram
exerciseProgram
:
exercisePrograms.getExercisePrograms()) {
LinearLayout
horizontalLayout
=
new
LinearLayout
(this,
R.style.main_LL_rows);
horizontalLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
null,
0,
97
ExerciseTrainings exerciseTrainingsToSend = new ExerciseTrainings();
for
(ExerciseTraining
exerciseTraining
:
exerciseTrainings.getExerciseTrainings()) {
if (Objects.equals(exerciseTraining.getExercise().getIdExercise(),
exerciseProgram.getExercise().getIdExercise())) {
exerciseTrainingsToSend.getExerciseTrainings().add(exerciseTraining);
}
}
Bundle bundleExercisePrograms = new Bundle();
bundleExercisePrograms.putParcelable("exerciseProgram",
exerciseProgram);
bundleExercisePrograms.putParcelable("exerciseTrainings",
exerciseTrainingsToSend);
Intent
intent
=
new
Intent(getApplicationContext(),
ExerciseProgramActivity.class);
intent.putExtras(bundleExercisePrograms);
Log.d(LOG_TAG,
"TrainingDayActivity.java
startExerciseProgramActivity");
startActivity(intent);
}
});
TextView
exerciseNameTextView
=
new
TextView(this,
null,
R.style.TextBody1);
exerciseNameTextView.setText(exerciseProgram.getExercise().getExerciseName());
horizontalLayout.addView(exerciseNameTextView, 0);
contentMainLayout.addView(horizontalLayout);
}
0,
98
}
private void setupActionBar() {
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
actionBar.setDisplayHomeAsUpEnabled(true);
}
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == android.R.id.home) {
Log.d(LOG_TAG, "TrainingDayActivity.java startMainActivity");
finish();
return true;
}
return super.onOptionsItemSelected(item);
}
public void onClickButtonTimer(View view) {
Log.d(LOG_TAG, "TrainingDayActivity.java onClickButtonTimer");
if (timer != null) {
Log.d(LOG_TAG, "TrainingDayActivity.java onClickButtonTimer timer !=
null");
timer.cancel();
timer = null;
textViewTimer.setText("00:00:00");
trainingDay.setEndDay(new Timestamp(System.currentTimeMillis()));
db.update(trainingDay);
99
} else {
Log.d(LOG_TAG, "TrainingDayActivity.java onClickButtonTimer timer =
null");
trainingDay
=
new
TrainingDay(null,
new
Timestamp(System.currentTimeMillis()),
null);
MyTimerTask myTimerTask = new MyTimerTask();
myTimerTask.setStartTime(System.currentTimeMillis());
timer = new Timer();
timer.schedule(myTimerTask, 0, 500);
db.insert(trainingDay);
for
(ExerciseProgram
exerciseProgram
:
exercisePrograms.getExercisePrograms()) {
for (int i = 1; i <= exerciseProgram.getSetAdvice(); i++) {
ExerciseTraining
exerciseTraining
=
ExerciseTraining(exerciseProgram.getExercise(),
trainingDay, exerciseProgram.getRepsAdvice(), i,
exerciseProgram.getMidWeight());
db.insert(exerciseTraining);
exerciseTrainings.getExerciseTrainings().add(exerciseTraining);
}
}
}
}
protected void onDestroy() {
super.onDestroy();
db.close();
}
}
new
101
ИНФОРМАЦИОННО-ПОИСКОВАЯ ХАРАКТЕРИСТИКА ДОКУМЕНТА
НА ЭЛЕКТРОННОМ НОСИТЕЛЕ
Наименование
Характеристики документа
на электронном носителе
группы атрибутов
атрибута
1.
Описание Обозначение документа \Презентация.ppt
документа
(идентификатор(ы)
файла(ов))
Наименование документа Демонстрационные плакаты
к
выпускной
квалификационной работе
Класс документа
ЕСКД
Вид документа
Оригинал
документа
на
электронном носителе
Аннотация
Демонстрационный
материал,
отображающий
основные этапы выполнения
выпускной
квалификационной работы
Использование документа Операционная
система
Windows
10,
Microsoft
PowerPoint 2013
2. Даты и время
Дата
и
время 27.06.2018
копирования документа
Дата создания документа 29.05.2018
Дата
утверждения 06.06.2018
документа
3. Создатели
Автор
Андреенков А.Б.
Изготовитель
Андреенков А.Б.
4.
Внешние Ссылки
на
другие Удостоверяющий лист
ссылки
документы
№ 165133/п
5. Защита
Санкционирование
ОГУ имени И.С. Тургенева
Классификация защиты
По законодательству РФ
6. Характеристики Объем
информации 1 555 456 Б
содержания
документа
102
7.
Структура Наименование
документа(ов)
(слайда) №1
Наименование
(слайда) №2
Наименование
(слайда) №3
Наименование
(слайда) №4
Наименование
(слайда) №5
Наименование
(слайда) №6
Наименование
(слайда) №7
Наименование
(слайда) №8
Наименование
(слайда) №9
Наименование
(слайда) №10
Наименование
(слайда) №11
плаката Титульный лист
плаката Цели и задачи работы
плаката Таблица сравнения аналогов
сервисов сбора информации о
тренировочном процессе
плаката Диаграмма
вариантов
использования
плаката Методика сбора информации
о тренировках пользователя
для
формирования
рекомендаций по изменению
тренировочного плана
плаката Схема функции добавления в
описание
текущего
функционального состояния
клиента
результатов
измерения веса тела
плаката Схема функции добавления в
описание
текущего
функционального состояния
клиента результатов замеров
клиента
плаката Логическая
схема
базы
данных
плаката Диаграмма
состояний
и
переходов
прототипа
разрабатываемой методики
плаката Экранные
формы
разработанного прототипа
плаката Выводы
1/--страниц
Пожаловаться на содержимое документа