Разработка медицинского программного обеспечения на основе технологий виртуальной реальности для пациентов с функциональным головокружением
Причины и последствия функционального головокружения. Принципы его диагностики и терапии. Погружение в виртуальную реальность и ее воздействие на сознание. Реализация программного обеспечения для устройства HTC Vive с помощью среды разработки игр Unity3D.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 07.12.2019 |
Размер файла | 6,4 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ
ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ОБРАЗОВАНИЯ
«НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ «ВЫСШАЯ ШКОЛА ЭКОНОМИКИ»
Факультет информатики, математики и компьютерных наук
Программа подготовки бакалавров по направлению 01.03.02 Прикладная математика и информатика
Выпускная квалификационная работа
Разработка медицинского программного обеспечения на основе технологий виртуальной реальности для пациентов с функциональным головокружением
Пастушенко Антон Олегович
Нижний Новгород, 2019
Введение
Развитие технологий оказывает огромное влияние на все сферы человеческой жизни, огромный вклад они привносят и в область медицины. На данный момент существует большое множество устройств и технологий, которые упрощают диагностику, лечение или реабилитацию пациентов с самыми разнообразными заболеваниями, начиная от поражений нервной системы на физическом уровне, разных степеней онкологий и заканчивая психосоматическими расстройствами и фобиями, вызванных стрессовыми ситуациями и отклонениями в восприятии реального мира.
В качестве новых технологических разработок в сфере медицины, прошедших клинические испытания и показавших свою эффективность, могут выступать аппараты магнитно-резонансной томографии, позволяющие неинвазивно совершать диагностику; нейронные сети, успешно классифицирующие и идентифицирующие заболевания, строящие прогноз течения болезни по статистическим данным и временным рядам; биопротезирование и нейроинтерфейсы, заменяющие конечности роботизированными аналогами и использующие сигналы нервных окончаний и мозговых нейронов для создания процесса движения; и, ко всему прочему, виртуальная реальность, которая предоставляет возможность неинвазивно и без медикаментозной терапии воздействовать на сознание человека, имитируя разнообразные ситуации реального мира, обучая человека и создавая безрисковую среду для адаптации к сложным для восприятия условиям. Крайне важно описать влияние современных технологий на сферу медицины для общего понимания их значимости.
В современном мире человек ежедневно сталкивается с множеством стрессовых и патовых ситуаций, приводящих к возникновению разнообразных психосоматических расстройств. Одним их таких заболеваний является функциональное головокружение или же психиатрическое головокружение. Современные методы, а именно виртуальная реальность, призваны помочь в решении проблем подобных отклонений за счет своих свойств воздействовать на сознание человека, который воспринимает звук, изображение, а также интерактивно взаимодействует со средой внутри виртуальной реальности, погружая свое сознание в имитацию реального мира (в зависимости от используемых сцен и конкретных задач). Использование виртуальной реальности крайне актуальная тематика в современных реалиях развития методов лечения и диагностики в медицине, так как старые способы лечения психосоматических расстройств, таких как использование медикаментов и лекарственных средств, приводящих лишь к временной ремиссии, либо вербальные методы поиска проблемы и создания разовых триггеров в рамках когнитивно-поведенческой психотерапии, постепенно изживают себя, а в исключительных случаях являются не эффективным вектором лечения.
Актуальность также подтверждается положительными оценками и отзывами в исследованиях иностранных ученых: в статье “Use of Virtual Reality Tools for Vestibular Disorders Rehabilitation: A Comprehensive Analysis”, 2015 год, Hindawi Publishing Corporation Advances in Medicine, говорится о возможностях гибкой настройки среды внутри виртуальной реальности для самых разнообразных проявлений вестибулярных отклонений, также о положительной динамике течения заболеваний у пациентов, вплоть до ремиссии. Однако, есть определенные отталкивающие вещи в повседневном использовании технологий виртуальной реальности в рамках диагностики и терапии: дороговизна некоторого оборудования и проявления симптомов “cybersickness” - так называемой кибер болезни (временные симптомы тошноты, легкого головокружения, потери равновесия, сонливости), которая проявляется после долгого погружения в виртуальную реальность, неправильной настройке оборудования или же при халатном подходе к разработки программ и сцен виртуальной реальности, которые оказались недостаточно протестированы.
К счастью, с внедрением новых технологий, как аппаратных, так и программных, подобные проблемы можно нивелировать за счет создания гибких физических параметров поведения объектов, а также пациента, внутри виртуальной реальности.
Непосредственной целью данной работы является создание концепции внутреннего интерфейса сцен и реализация программного обеспечения для устройства HTC Vive, с помощью которого пациент, под контролем врачей, погружается в сцены виртуальной реальности и взаимодействует с миром в течении определенных медицинскими сотрудниками сеансов, тем самым врачи имеют возможность провести диагностику и на практике увидеть причины возникновения функционального головокружения у пациента, с последующей реабилитацией путем адаптации и тренировки сознания в стрессовых и триггерных ситуациях, которые являются возбудителями расстройства.
Объектом исследования является пациент с симптомами функционального головокружения, для которого создается специальный программный интерфейс. Действительно ли данный подход в терапии превосходит традиционный? Основываясь на динамике протекания болезни и статистических данных взаимодействия с миром виртуальной реальности, получаемых внутри программы, можно будет дать ответ о реальных возможностях использования виртуальной реальности для диагностики и реабилитации в рамках такого заболевания, как функциональное головокружение. Помимо этого абсолютно определена практическая значимость исследования и важность реализации программного обеспечения - Нижегородский научно исследовательский институт травматологии и ортопедии сформировал данное задание и в перспективе, при успешном функциональном и практическом тестировании, имеет намерение использовать его для терапии пациентов с психосоматическими расстройствами. Данная работа может на практике помочь обществу бороться с недугом, который систематически испытывают 5-10% пациентов, обращающихся к терапевту за консультацией [Функциональное (психогенное) головокружение. Журнал неврологии и психиатрии им. С.С. Корсакова. 2017. Т. 117. № 6].
С точки зрения новаторских решений - данная работа предполагает создание модульной масштабируемой программы, реализуемой с помощью мощного инструмента - среды разработки компьютерных игр Unity3D (подробнее - глава 3). Под модульностью понимается возможность интеграции в основное приложение новых сцен и решений, которые в дальнейшем могут иметь место быть. Помимо этого, проработанные и реализованные сцены представляют собой гибкую среду адаптации - как моторно-физической, так и психологической (этот вопрос подробнее раскроется в главе 3). Очень важно отметить факт инновации с финансовой стороны данной разработки: консоли или устройства виртуальной реальности сами по себе имеет достаточно высокую цену на рынке, в реалиях нашего государства, порой, может не хватить выделенных средств бюджета, даже при желании той или иной государственной медицинской организации в оборудовании отделения поликлиники или небольшой больницы, даже при острой необходимости и наличии спроса на услугу терапии функционального головокружения.
Однако, благодаря возможностям Unity3D и грамотного подхода к разработке, итоговый продукт является кроссплатформенным, то есть вне зависимости от уровня устройства виртуальной реальности (рассматриваются модели, такие как HTC Vive всех поколений, Oculus Rift всех поколений, HP REVERB всех поколений, Microsoft HoloLens с поддержкой Windows XR) можно использовать модель, которая подходит в рамках бюджета. Нет необходимости в покупке крайне дорогих промышленных устройств и установок виртуальной реальности, так как приложение выполняет свои функции в достаточных условиях бюджетных (для организаций) устройств.
Постановка задачи
В рамках выпускной квалификационной работы были определены следующие задачи:
· Создать концепции нескольких сцен, которые могут быть стрессовыми для пациентов с функциональным головокружением: ходьба по городу с возможностью лазания по зданиям, возможностью эквилибрировать на высоте, возможностью воспринимать и взаимодействовать с условной толпой; езда по городу с возможностью развивать скорость, тормозить и поворачивать по желанию пациента, давая свободу действий; лобби-меню с обучением взаимодействию с виртуальной реальностью, выбором дальнейшей сцены и степени воздействия (сложности восприятия физических явлений мира).
· Реализовать вышеописанные сцены для устройства HTC Vive, это предполагает собой создать возможность управления шлемом, управления джойстиками, создание 3D сцен, создание интерактивных элементов, с которыми пациент может взаимодействовать. Продумать и реализовать сбор статистических данных во время пребывания пациента в программе, а именно скорость перемещения, высота нахождения, углы поворота. Программно реализовать захват экрана во время использования данного интерфейса виртуальной реальности с целью дальнейшего просмотра и изучения врачами.
Избранный для реализации стек технологий:
· Среда разработки игр Unity3D - необходимый элемент для компилирования кода и сборки 3D текстур и моделей в единое целое.
· Язык программирования C#, с которым взаимодействует Unity, для написания скриптов поведения объектов и пациента.
· SteamVR Plugin - необходимая для взаимодействия с виртуальной реальностью SDK (software development kit) - набор программных средств для ввода и вывода информации для целевого устройства HTC Vive.
· VRTK (virtual reality toolkit) - фреймворк для Unity, имеющий реализацию сложных элементов физики для виртуальной реальности.
Глава 1. Теоретические основы понимания и реализации концепции виртуальной реальности
Первое подобие виртуальной реальности появилось в 1962 году, когда Мортон Хейлинг сконструировал первый в своем роде мультисенсорный терминал «Сенсорама», который при показе сцен и фильмов имитировал ветер, запахи и внешние шумы [Scott Tate (Fall 1996)."Virtual Reality: A Historical Perspective"]. Через 5 лет Айвен Эдвард Сазерленд сконструировал более привычное для человечества устройство виртуальной реальности - шлем с трекингом движения головы [Myron W. Krueger, Artificial Reality II(1991)], тем самым создав вектор для разработки и более земного представления виртуальной реальности. В данной технологии стали видеть большой потенциал в конце 80-х годов, связанно это с прорывом и открытием совершенно новых возможностей компьютерной техники.
По мере увеличения мощностей вычислительных машин соизмеримо развивались и смежные области, которые базировались на цифровизации. Таким образом представление виртуальной реальности на данный момент преобразовалось в набор устройств ввода и вывода информации - отрисовка изображения на шлеме, трекинг положения тела и головы в пространстве с помощью базовых станций, а также джойстики, которые имеют ряд кнопок и таким же образом отслеживают свое положение в пространстве (рис. 1).
На рисунке 1 показана современная реализация устройств и их трекинга, все разработки являются коммерческой собственностью и разделяются на компании производители, у каждого своя уникальная реализация. Однако, патент на шлем виртуальной реальности принадлежит Мортону Хейлингу, который упоминался (Stephen Ferance, 2018).
Основным аспектом в концепции виртуальной реальности является замена или же изменение восприятия нашей реальности с переходом (погружением) в виртуальную среду. С существующими общедоступными устройствами до полной реализации виртуальной реальности с полным погружением всех органов чувств еще далеко, но у нас уже сейчас существует возможность погружаться в виртуальную реальность частично, получать опыт и знания из цифрового мира практически напрямую.
Рисунок 1. Система взаимодействия устройств ввода вывода для создания виртуальной реальности (сверху расположены станции, в руках джойстики, на голове шлем)
Также превалирует совершенно иной подход к разработке и дизайну интерфейса (UI) внутри виртуальной реальности. С помощью 3D моделирования и программирования множества элементов, описывая логику и поведение, можно создавать и переносить вещи из реального мира. Самым тривиальным примером может выступать клавиатура - возможно элементарно создать модель и интерактивные клавиши в виртуальной среде, тем самым заменив физическое устройство ввода. Подобный метод может быть применим к любому объекту реального мира, однако, благодаря возможности создания подобных элементов с нуля, можно совершенствовать множество вещей и областей, интегрируя их в виртуальный мир. В том числе и создание стрессовых ситуаций реального мира, которые воздействуют на сознание, причем воздействие можно регулировать, подстраивая под разные стрессовые группы с разной степенью подверженности.
1.2 Причины и последствия функционального головокружения
Функциональное головокружение - тип головокружения, несвязанного с поражением вестибулярной системы в организме человека, порождающийся из психосоматических расстройств - фобий, панических атак; при физической или когнитивной нагрузке, которую организм выдержать не способен. Клинические проявления функционального головокружения варьируются по степени тяжести: для одних это разовые секундные приступы оцепенения, чрезмерной легкости в голове, для других это систематические и сильные головокружения, непроходящие без медикаментозного вмешательства. Подобные приступы вызывают регулярное раздражение, человек приобретает еще больше триггеров и все больше создает для себя негативные стрессовые ситуации, которые элементарно неправильно им воспринимаются.
Подобный круг стресса с последующим головокружением, который вновь порождает стресс, со временем перерождается в фобии и значительные психосоматические отклонения, которые могут попасть под категорию психического расстройства. Человек с функциональным головокружением стремиться избежать любого стресса, подавить любые возможные раздражители, однако, зачастую, возникновение стрессовый ситуации совершенно случайный процесс, который невозможно спрогнозировать. Так как на индивидуума влияют именно внешние социальные факторы, стрессовые ситуации, созданные неблагоприятной обстановкой, имеет место быть адаптация и обучение человека привыкать и перебарывать подобные ситуации, путем воздействия на сознание и погружение человека в имитацию условий его триггеров.
Существует еще один признак, почему функциональное головокружение тяжело диагностировать - человек путает и не может различить постстрессовое состояние и функциональное головокружение. Вероятность успешного установления диагноза при вербальном обследовании совершенно невелика. Если прибегнуть к помощи виртуальной реальности и производить тестирование, погружая в имитацию разнообразных ситуаций, то по физиологическим данным и общему состоянию человека шансы на установление диагноза в разы увеличиваются. К большому сожалению, при функциональном головокружении стрессовой ситуацией для человека может являться элементарная прогулка по людной улице или же резкий поворот головы, создающий лишь мнимое ощущения неустойчивости. Рядовой пациент не часто сошлется на развитие психосоматических отклонений, поэтому диагностировать при любых подозрениях на функциональное головокружение - правильная стратегия.
1.3 Погружение в виртуальную реальность и ее воздействие на сознание
Процесс погружения в виртуальную реальность - процесс передачи информации из виртуального мира напрямую основным органам чувств и восприятия, под этим понимается зрение, слух, обоняние, осязание, вестибулярное равновесие - ощущение тела в пространстве. На данном этапе развития VR-индустрии в общем доступе предлагаются наборы устройств, создающие зрительное, слуховое, неполное вестибулярное воздействия - трекинг моторно-двигательных механизмов человека, осознание перемещения тела, рук, ног и головы в ограниченном пространстве.
Виртуальный мир представляет собой два типа решений: 3DOF и 6DOF (degrees of freedom), что соответственно означает 3 степени свободы и 6 степеней свободы. Три степени свободы - в рамках аппаратного обеспечения - отслеживание лишь углов наклона (Эйлеровых углов) в трех осевых направления (рысканье, тангаж, крен), высчитываемых с помощью данных, получаемых с акселерометра. Шесть степеней свободы - когда к понятию трех степеней свободы добавляется возможность отслеживать физические движения во всех направлениях трехмерной системы координат, отслеживание производится посредством ограниченного GPS-трекинга, непрерывных сигналов инфракрасного излучения с ожиданием отклика. Благодаря аппаратным возможностям шести степеней свободы достигается использование джойстиков с вычислением координат их нахождения и углов поворотов в реальном времени, что дает «физическое» взаимодействие с виртуальной средой.
Погружение в виртуальную реальность создает новые возможности для обучения, тренировки и реабилитации людей за счет непосредственного восприятия событий и получения реального опыта. Во множестве трудоемких и ресурсозатратных дорогих, в плане обучения, профессиях активно применяются устройства виртуальной реальности с соответствующими программами, направленными на получение человеком опыта без реального риска или потерь. Под данную категорию подходит и тренировка сознания, основанная на создании стрессовых ситуаций для человека. Посредством привыкания в виртуальной среде пациент имеет большую вероятность привыкнуть к фобии, триггерам реального мира, избавляя себя от рисков возникновения постурального или более серьезного хронического головокружения.
Основная задача виртуальной реальности и ее воздействия в области медицины в рамках терапии - стимулировать у пациента работу сенсорных и двигательных функций, а также психологически воздействовать на сознание, меняя восприятие стрессовых ситуаций с последующим погашением их влияния. В качестве примера имитационной среды стимуляции без виртуальной реальности можно рассмотреть иллюзию резиновой руки (Botvinick M., Cohen J., 1998). Суть эксперимента заключается в том, чтобы заставить человека поверить, что резиновая рука на самом деле его собственная рука, достигается это посредством слабого тактильного стимулирования нервных окончаний реальной руки человека в тот же момент, когда подобную операцию проводят с резиновой рукой, которую видит испытуемый (свою руку он не видит). Затем к резиновой руке применяется физическое воздействие, которое человек может воспринять как боль, и эта боль, хоть и не в полной мере, но ощущается мозгом, создавая иллюзию, что резиновая рука принадлежит ему. Принцип стимуляции с помощью виртуальной реальности схож с вышеописанным. Посредством восприятия событий виртуального мира разными органами чувств создается ряд факторов, изменяющих поведение нейронных сигналов в мозгу в зависимости от ситуаций, действий и событий, воссозданных в виртуальной среде.
головокружение виртуальный реальность игра
Глава 2. Существующие традиционные методы диагностики и лечения функционального головокружения
Ряд принципов диагностики и терапии функционального головокружения [5]:
1) Установление точного диагноза - вербальный контакт с пациентом, попытка найти стрессовые ситуации, которые вызывают приступы функционального головокружения у конкретного индивидуума. Однако, подобный метод установления диагноза весьма скептичен, так как человек, будучи в стрессовом состоянии, не всегда способен адекватно мыслить и запоминать триггеры, которые породили подобное состояние.
2) Объяснение пациенту механизмов головокружения, расшифровка диагноза - это необходимо для того, чтобы минимизировать волнение человека, давая ему представление о процессах воздействия стресса и последствий функционального головокружения. Создание настроя на дальнейшее лечение.
3) Десенситизация и погашение симптомов посредством помещения в триггерную ситуацию - процесс десенситизации означает понижение эмоциональной восприимчивости путем помещения человека в стрессовую ситуацию. Подобные тренировки сознания полезны, так как следует адаптировать организм и восприятие, нежели избегать подобных ситуаций. Существует ряд минусов, связанных с высоким риском краткосрочных всплесков функционального головокружения, так как ситуации, на которых адаптируют пациента, являются реальными.
4) Регулярные упражнения вестибулярного аппарата за счет не сложных физических тренировок, дабы сформировать и укрепить чувство равновесия у пациента.
5) Психотерапия (когнитивно-поведенческая и психодинамическая)- психотерапевтическое воздействие на сознание пациента, корректировка неправильных паттернов поведения.
6) Психофармакотерапия - использование лекарственных препаратов, в основном с седативным эффектом, для погашения уровня стресса и депрессии пациента. При обострении функционального головокружения и сильном воздействующем стрессе принято использовать препараты-транквилизаторы; при длительной терапии используются антидепрессанты. Подобная медикаментозная терапия применяется реже, чем перечисленные выше стандартные методы, но при обострении или ухудшении состояния пациента - при существующих подходах к лечению она необходима.
Вышеизложенные методы терапии функционального головокружения направлены не только на само головокружение и эмоциональные расстройства, но и на дисфункциональное мышление, ограничительное поведение. Для достижения всестороннего результата требуется мультимодальная терапия, включающая в себя всевозможные действенные методы в грамотных пропорциях.
Однако, если заменить часть традиционных методов на более инновационный подход с применением виртуальной реальности и созданием безрисковых стрессовых ситуаций, то возможно, что при систематическом проведении процедур погружения - полная ремиссия имеет место быть.
Применение новых технологий виртуальной реальности для лечения и профилактики дисфункций вестибулярного аппарата и психосоматических расстройств
Концепция использования виртуальной реальности для реабилитации предложена довольно давно, однако на практике могла быть применима лишь с достаточным развитием технологий для трекинга моторно-двигательных функций непосредственно для взаимодействия и обучения.
Использование мультисенсорной тренировки в виртуальной среде для физической реабилитации было предложено в 1982 году австралийскими физиотерапевтами J. Carr и R.A. Shepherd (Janet H. Carr, Roberta B. Shepherd, 2002) [14]. Уже в 2000 году рассматривали пользу виртуальной реальности как инструмента тренировки вестибулярно-зрительных рефлексов (Viirre et al., 2000). Дополнительной положительной особенностью является баланс между органами чувств, имитируемая среда действительно воспринимается реально, тем самым повышая эффективность восстановления пациентов (Bisson, 2007; Horlings et al., 2009; Singh et al., 2012). В отличии от обычной терапии функционального головокружения, которая применялась раньше, используя лекарственные препараты и специальных тренировок, подход с использованием виртуальной реальности значительно больше раскрывает потенциал и возможности лечения за счет непосредственного воздействия на сознание (Bryanton et al., 2006; Deutsch et al., 2009).
Mathieu Bergeron, Catherine L. Lortie, and Matthieu J. Guitton в своей статье 2015 года описали принцип обучения моторно-двигательных функций человека и тренировки вестибулярного аппарата с помощью виртуальной реальности. Метод основан на принципе обратной связи с виртуальной средой - то есть происходит определение любого физического воздействия на виртуальный мир (в рамках программных возможностей), тем самым повышая сложность уровней среды. Они положили, что виртуальная среда должна быть контролируема врачами и адаптивна под разнообразные тесты и задания. По итогу происходило явное улучшение после терапии, основанной на виртуальной реальности. После завершения всех исследований команда подсчитала эффективность воздействия терапии на разные группы, которая варьировалась от 4.4% до 43.5% [6].
Что касается исследований воздействия виртуальной реальности на терапию психосоматических расстройств, то подобных изучений влияния проводилось достаточно немного. Благодаря своему стимулированию и имитации сред и ситуации, виртуальная реальность в потенциале может привнести большой вклад и в данную область медицины - диагностика и терапия фобий, отклонений в паттернах поведения за счет обучающей способности и прямого восприятия органами чувств, к этой категории и относится функциональное головокружение.
Глава 3. Создание концепции дизайна и функционала сцен
Прежде, чем приступать к разработке, естественным вопросом является - что необходимо разрабатывать, какую пользу разработка принесет сфере, для которой она создается. Изначальную концепцию сцен виртуальной реальности продумывало НИИТО, исходя из того, какие задачи необходимо решать. Диагностика и реабилитация функционального головокружения, в будущем терапия вестибулярной координации двигательных процессов человека. Далее в данной работе они были скорректированы и переработаны таким образом, чтобы максимально вместить функционал для реабилитации пациентов разных групп по направлениям заболеваний и отклонений, не только самого функционального головокружения. В ходе работы были продуманы основные концепции, включающие в себя как тестирование, так и реабилитационные возможности для пациентов:
Рисунок 2. Вид лобби-меню из редактора Unity3D.
1) Лобби-меню (рис. 2), в котором человек находится в ограниченное комнате тренируется в обращении с объектами в рамках медицинских тестов и обучается пользоваться устройствами ввода виртуальной реальности. Помимо этого, сцена включает в себя возможность взаимодействовать с рядом предметов: дверь, шкаф, шкатулка, кубики средних размеров, кубики и шары малых размеров, возможность попробовать вскарабкаться на небольшую стену - данные объекты являются имитацией повседневных в нашей жизни действий, которые можно тренировать при наличии дисфункции. С помощью джойстика можно вызвать меню, в котором предоставляется выбор следующей сцены и выбором сложности (которая настраивается операторами), что дает возможность пациенту взаимодействовать еще с одним типом объектов - парящими надписями (элементы VRUI - virtual reality user interface), которые следуют за положением шлема. При выборе сцены и сложности, по наставлению врачей, пациент попадает в нижеописанные типы сцен.
Рисунок 3. Вид стартовой точки города из редактора Unity3D.
2) Свободная прогулка по городу с имитацией толпы, возможностью карабкаться по зданиям и эквилибрировать на высоте на узкой поверхности (рис. 3). Данная сцена предоставляет возможность в полном объеме совершать движения в городе, совершать движения, имитирующие бег, тем самым перемещаться в виртуальной реальности, воспринимая толпу, которая следует за пациентом. У врачей есть возможность настраивать параметры максимальной скорости движения пациента, количество толпы, скорость толпы, меняя и корректируя силу воздействия стрессовых ситуаций практически реальной городской среды. Данная сцена направлена на стимуляцию как психологического состояния, так и вестибулярного аппарата.
Рисунок 4. Вид сцены с вождением автомобиля из редактора Unity3D.
3) Вождение в загородной и городской среде посредством манипулирования рулем с помощью джойстика (рис. 4). Самая сложная в реализации физики плавного ускорения, торможения и поворотов сцена. Однако, несмотря на свою сложность в разработке, в потенциале самая полезная для реабилитации, так как панические атаки, проявляющиеся при вождении, приводят к тяжелым последствиям. На сцене с вождением можно в тренировочной виртуальной среде адаптировать человека к плавному и обдуманному вождению с диагностикой и реабилитацией когнитивных и вестибулярных отклонений, которые может вызвать тряска и паника.
3.1 Реализация программного обеспечения, использующего устройство виртуальной реальности HTC Vive, с помощью среды разработки игр Unity3D
Unity3D - мощный кроссплатформенный инструмент для разработки игр и приложений, содержащий в себе множество функций обработки и создания графики, функций работы с линейной алгеброй, которая позволяет создавать физические процессы в приложении. Работу по обработки физики объектов берет на себя дополнительный инструмент, интегрированный в Unity, PhysX, разработанный NVIDIA. Основным преимуществом Unity является простота в восприятии целикового проекта за счет графического интерфейса и наглядной системы иерархии объектов и компонентов, а также непрерывное развитие, что позволяет разрабатывать решения под новые технологические устройства вида VR (virtual reality) и AR (augmented reality).
В рамках дипломной работы была поставлена задача реализовать ряд сцен под устройство виртуальной реальности HTC Vive производства SteamVR.
Для достижения этой цели была проделана колоссальная работа по изучению Unity3D, вникание в тонкости скриптового языка C# (.NET), изучение SDK SteamVR, изучение фреймворка VRTK. Было просмотрено множество видеоматериала, который не описан ни в одних статьях или документациях, прочитана книга по всей среде Unity3D - “Unity in Action. Multiplatform game development in C#”, Joseph Hocking (2016), которая описывает как взаимодействие с графической средой Unity, так и создание собственных скриптов и алгоритмов с нуля на языке программирования C#, который использует окружение Unity [15].
Первое, что необходимо было изучить - непосредственно саму среду Unity. А именно работу с объектами (объектом в Unity называется некая графическая сущность (или пустая сущность, в случае пустого объекта) к которой можно применить ряд компонентов, создающих целостность компонента, описывающих физический смысл компонента, создающих алгоритмы поведения компонента с помощью скриптов, или же производящих рендеринг (процесс отрисовки графики) с использованием сторонних текстур, спрайтов (2D сущность) или целостных материалов (текстура с шейдерной логикой (шейдер - программа, описывающая процесс отрисовки текстуры)).
Рисунок 5. Вид графического редактора Unity3D
Вторым аспектом изучения был скриптинг в Unity, то есть процесс написания программ. Скриптом в Unity называется компонент, который привязан к объекту и описывает его поведение или производит расчеты, которые необходимы для использования в другом компоненте. Фактически каждый компонент в Unity является классом, описывающим тот или иной компонент, к которому можно обратиться. В Unity применяется парадигма ООП и все пользовательские скрипты изначально наследуются от единого родительского класса MonoBehavior, в котором содержатся перегружаемые и обыкновенные методы для программирования объекта. В скриптах существует возможность создавать экземпляры классов каждого компонента, тем самым присваивая игровому объекту новые характеристики [15].
Третьим элементом для реализации VR-приложения выступает software development kit SteamVR, предоставляющий драйвера, интегрируемые в Unity посредством общения основной программы SteamVR, контролирующей поведение оборудования, и скриптов внутри игровой среды.
Рисунок 6. Представление SteamVR SDK в Unity3D.
На рисунке 6 объект [CameraRig] является точкой входа в VR приложение, посредством скрипта SteamVR_PlayArea определяется пространство, в котором можно перемещаться, также с помощью данного скрипта происходит получение данных из основной программы о положении шлема и контроллеров. Controller (left), (right) - объекты, скрипты которых отображают физическое положение джойстиков в пространстве сцены, в скриптах описаны функции доступа к кнопкам контроллеров. Camera - подконтрольный объект скрипта SteamVR_PlayArea, который перемещается по принципу 6DOF, отслеживая перемещение шлема. Таким образом задается базис для разработки VR-приложений в среде Unity3D.
Последним элементом, который был изучен и применен в разработке программы для диагностики и реабилитации, является фреймворк VRTK (virtual reality toolkit) - набор компонентов и скриптов, реализующих сложную физику в пространстве виртуальной реальности. Подобной физикой является захват объектов, бросание объектов, имитация открывания и закрывания разнообразных дверей и шкафов, вычисления поворотов объектов с помощью контроллеров, возможность перемещаться и телепортироваться в пространстве [1, Источники программного обеспечения].
Применяя все полученные навыки и компетенции, были разработаны три сцены, описанные в начале третьей главы.
Для понимания принципов управления контроллером ниже представлена схема кнопок (рис. 7).
Первый этап: лобби-меню было спроектировано по принципу комнаты, в которой располагается 4 стены, пол и потолок, имеющих Box Collider (кубическое представление непроходимости объекта с возможностью коллизий в трехмерной системе координат), то есть физическую целостность в игровом мире, иными словами являющимися физическими объектами, через которые нельзя пройти (рис. 8).
Рисунок 7. Схема расположения и названия кнопок контроллера HTC Vive.
Рисунок 8. Справа в панели инспектора представлены компоненты объекта стены.
Одна из стен создана с целью изучения пациентом процесса лазания по стенам, которые в полной мере реализованы во второй сцене. Данный эффект достигается благодаря следующим скриптам фреймворка VRTK: VRTK_ InteractableObject, VRTK_ClimbableGrabAttach, VRTK_SwapControllerGrab Action. Первый скрипт из списка вычисляет коллизию, по нажатию парной кнопки Grip Button, между контроллером и объектом, определяет тип объекта и его поведение, затем создает возможность брать объект, фиксируя локальную систему координат объекта на локальную систему координат контроллера относительно точки возникновения коллизии. Второй и третий скрипт - дополнительные, которые, наоборот, фиксируют локальную систему координат контроллера на точки коллизии с объектом, ограничивая кручение вокруг системы координат (rotation) и давая возможность поочередно менять контроллеры, повторяя такой алгоритм. Все предметы, с которыми можно взаимодействовать, например кубы на рисунке 9 имеют следующую конфигурацию: VRTK_InteractableObject, VRTK_FixedJointGrab Attach, VRTK_SwapControllerGrabAction - меняется лишь смысл второго скрипта - локальная система координат объекта теперь зависит от движений джойстика.
Рисунок 9. Объекты кубов
Сам игрок (пациент) является системой скриптов ранее описанного SteamVR Plugin (SDK). Однако, благодаря VRTK можно придать ему возможность имитировать бег и передвигаться в виртуальном пространстве с помощью VRTK_MoveInPlace, который перехватывает управление компонентой Transform (положение в глобальной системе координат Unity), и посредством естественного движения контроллерами, подобно бегу, вычисляя transform.position.y (координату Y) контроллеров в перегружаемом стандартном методе Update (метод исполнения логики непосредственно движком Unity каждый кадр, который зависит от мощности комплектующих компьютера), тем самым перемещая объект [CameraRig] в том направлении, куда указывает rotation контроллеров.
Далее создается меню, вызывающееся на кнопку Menu button. Меню VRUI представляет собой парящий текст, следующий за положением шлема (рис. 10).
Рисунок 10. VRUI меню.
Скрипт вызова меню разрабатывался в рамках диплома:
Нажимая на кнопку, мы изменяем состояние меню в иерархии объектов активируя или дезактивируя его. Тем самым визуализируя или же нет. Меню управляется посредством VRTK_PointerUI, скрипта, который имитирует мышь, создавая луч и при коллизии с UI Canvas элементом при активации на кнопку Trigger Button выполняет действие, которые были разработаны:
Каждой иконке с текстом (рис. 10) присвоена своя функция из скрипта выше, мы инициализируем поле modeNumber, чтобы в дальнейшем Unity знал, какой режим был выбран и вызываем следующее меню с выбором сложности, параметры которого будут прописываться врачами в зависимости от интенсивности терапии (Код класса GameLoader из меню выбора сложности в Приложение 1). Также GameLoader подгружает новую сцену, выбранную ранее в предыдущем меню.
Второй этап: городская среда реализована на основе готовых 3D моделей города Windridge [2, Источники программного обеспечения] из Unity Asset Store с переработкой графики благодаря библиотеке Post Processing Stack [3, Источники программного обеспечения]. Управляющий элемент персонаж настроен так же, как в предыдущей сцене. Всем зданиям в данной сцене присвоены следующие компоненты: VRTK_InteractableObject, VRTK_ClimbableGrabAttach, VRTK_SwapControllerGrabAction, позволяющие лазать по ним. Также в городе создан объект CrowdSpawner, создающий толпу с помощью следующего скрипта:
С помощью coroutines IEnumerator из System.Collection (реализованный в C# стандартный аналог многопоточности за счет микропрерываний выполнения основного тела кода) генерируются модели в небольшом случайном радиусе по двум координатам от точки transform.position объекта CrowdSpawner. Поле quantity - экземпляр класса GameLoader, в котором положены параметры нагрузки на сенсорные системы человека. В данном скрипте используется поле quantity.crowdQuantity, в котором хранится количество моделей, генерирующих толпу. Поведение одного индивидуума в толпе обусловлено алгоритмом, написанном в скрипте (приложение 2).
Основная работа в плане графики - необходимость в создании плавной прогрузки теней объектов, так как сильное мелькание в сцене виртуальной реальности недопустимо, потому что может вызвать киберболезнь, вследствие чего состояние пациента резко ухудшится и процесс диагностики или реабилитации придется прервать.
Третий этап: создание транспортного средства. В качестве модели автомобиля была взята модель Old military car [4, Источники программного обеспечения]. В лобби-меню при выборе сцены с ездой на автомобиле в скриптах загружается параметр скорости. Движение автомобиля реализовано по двум кнопкам: Trigger Button на правом контроллере - ускорение, и на левом - торможение. Поворот осуществляется за счет пустого SphereCollider, совмещенного с текстурой руля (рис. 4), на котором задействованы скрипты VRTK, дающие возможность зацеплять объект и изменять лишь его rotation (то есть углы поворота объекта) по одной оси. Далее создается экземпляр класса с полем rotation пустого SphereCollider, и на основе него вычисляется поворот для автомобиля - модели автомобиля присвается rotation условного руля, который является направляющим. Для создания ускорения и торможения в методе Update берется заданная ранее скорость как максимальная и равномерно создается ускорение для поля скорости V, пока оно не достигнет maxSpeed: . Затем создается новый экземпляр класса Vector3 с последующей сменой position у объекта автомобиля.
Данные собираются во временной ряд, записывая точное время, время пребывания в игре и в зависимости от выбранной сцены параметры скоростей, высот и углов поворота камеры игрока (вращение шлема пациентом).
3.2 Полученные результаты применения программы виртуальной реальности и планы на будущее
Задача по реализации программного обеспечения выполнена и прошла тестирование в НИИТО. Приложение было принято и лично опробовано ведущим научным сотрудником отделения функциональной диагностики НИИТО, доктором биологических наук Воловиком Михаилом Григорьевичем. Отделением было принято коллегиальное решение составить отзыв о проделанной работе в рамках диплома. Его можно прочитать в приложении 3.
Основные аспекты диагностики и элементов реабилитации пациентов с функциональном головокружением нашли свое применение в данном программном обеспечении.
Тестировалось приложение на авторе данной дипломной работы. Брались его физиологические показатели с перерывами по мере прохождения выделенных этапов. Составлялась термограмма до и после стресса, созданного виртуальной средой, а именно падение с большой высоты, хождение по тонким балкам на большой высоте, а также быстрой перебор фигур в меню-лобби. Далее мы имеем следующие результаты тестов:
Рис. 11 Термограмма до процедуры
Рис. 12 Термограмма после погружения в виртуальную реальность
Как можно заметить, изменения в температуре присутствуют, хотя лицевые мышцы почти не задействовались, что говорит о психологической нагрузке и изменениях в эндокринной системе.
Рис. 13
Изображение сверху - показатели до погружения и после. Стоит обратить внимание на вторую строку с КГР - кожно-гальванической реакцией, она возросла до среднего значения в 3.4%. Что означает о наличии стрессовой ситуации. Так же изменились средние показатели альфа ритма мозга - они уменьшились, как и должно быть при небольшой когнитивной нагрузке.
К сожалению, на данный момент собрано мало данных и необходимо проводить крупное тестирование на реальных пациентах, чтобы говорить о действительной пользе, однако перспективы развития виртуальной реальности, и конкретно данного приложения с последующими улучшениями - очень велики.
Заключение
В рамках дипломной работы было успешно разработано приложение виртуальной реальности нацеленное на диагностику и реабилитацию функционального головокружения, фобий, а также в перспективе вестибулярной неустойчивости моторно-двигательного механизма. В планах на будущее и дальше развивать данное приложение и данную сферу.
Список литературы
1. Laurel B. (1993), Computers as Theatre, Reading, Mass.: Addison-Wesley, pp.49-65
2. Scott Tate (Fall 1996)."Virtual Reality: A Historical Perspective".
3. Myron W. Krueger, Artificial Reality II(1991)
4. “Virtual Reality and the World of Patents: Augmented Opportunities Abound VR/AR Association White Paper”, Author: Stephen Ferance, Gowling WLG (Canada) LLP. 2018.
5. Функциональное (психогенное) головокружение. Журнал неврологии и психиатрии им. С.С. Корсакова. 2017. Т. 117. № 6 (с. 91-99)
6. “Use of Virtual Reality Tools for Vestibular Disorders Rehabilitation: A Comprehensive Analysis”, Hindawi Publishing Corporation. Advances in Medicine. 2015.
7. Viirre E, Buskirk J. Utilization of virtual reality technology in the rehabilitation of balance disorder patients. Micromedical Technologies Vestibular Update. 2000;24:1-4.
8. Botvinick M., Cohen J. Rubber hands «feel» touch that eyes see. 1998.
9. Bisson E, Contant B, Sveistrup H, Lajoie Y. Functional balance and dual-task reaction times in older adults are improved by virtual reality and biofeedback training. Cyberpsychol Behav. 2007;10:16-2
10. Horlings CG, Carpenter MG, Kьng UM, Honegger F, Wiederhold B, Allum JH. Influence of virtual reality on postural stability during movements of quiet stance. Neurosci Lett. 2009;451:227-231
11. Singh DK, Rajaratnam BS, Palaniswamy V, Pearson H, Raman VP, Bong PS. Participating in a virtual reality balance exercise program can reduce risk and fear of falls. Maturitas. 2012;73:239-24
12. Bryanton C, Bossй J, Brien M, McLean J, McCormick A, Sveistrup H. Feasibility, motivation, and selective motor control virtual reality compared to conventional home exercise in children with cerebral palsy. Cyberpsychol Behav. 2006;9:123-128
13. Deutsch JE, Robbins D, Morrison J. Wii-based compared to standard of care balance and mobility rehabilitation for two individuals post-stroke. IEEE. 2009:117-120
14. Janet H. Carr, Roberta B. Shepherd -Stroke Rehabilitation - Guidelines for Exercise and Training to Optimize Motor Skill. 2002
15. “Unity in Action. Multiplatform game development in C#”, Joseph Hocking. 2016
Приложения
1. Код класса GameLoader, необходимый для выбора сложности и дальнейшей загрузки сцены, основываясь на поле GameMode класса ModeChoice.
namespace GameParameters
{
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class GameLoader : MonoBehaviour
{
private ModeChoice mode = new ModeChoice();
public GameObject difficultyMenu;
public float maxSpeedPlayer;
public float crowdSpeed;
public float maxHigh;
public int crowdQuantity;
public float maxCarSpeed;
public float getCrowdSpeed()
{
return crowdSpeed;
}
protected void setGameParameters(float _maxSpeedPlayer, float _maxCarSpeed, float _crowdSpeed, int _crowdQuantity, float _maxHigh)
{
switch (mode.modeNumber)
{
case 0:
maxSpeedPlayer = _maxSpeedPlayer;
crowdSpeed = _maxCarSpeed;
maxHigh = _maxHigh;
crowdQuantity = _crowdQuantity;
Debug.Log("сцена бега + colichectvo tolpi"+ crowdQuantity);
//SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex + 1);
difficultyMenu.SetActive(false);
Destroy(GameObject.FindWithTag("GameController"));
SceneManager.LoadScene("Kek");
break;
case 1:
maxCarSpeed = _maxCarSpeed;
difficultyMenu.SetActive(false);
SceneManager.LoadScene("Kek");
break;
}
}
public void easyDifficulty()
{
float maxSpeedPlayer = 5;
float maxCarSpeed = 30f;
float crowdSpeed = 4f;
int crowdQuantity = 10;
float maxHigh = 365f;
setGameParameters(maxSpeedPlayer, maxCarSpeed, crowdSpeed, crowdQuantity, maxHigh);
}
public void middleDifficulty()
{
float maxSpeedPlayer = 8;
float maxCarSpeed = 60f;
float crowdSpeed = 7f;
int crowdQuantity = 30;
float maxHigh = 465f;
setGameParameters(maxSpeedPlayer, maxCarSpeed, crowdSpeed, crowdQuantity, maxHigh);
}
public void hardDifficulty()
{
float maxSpeedPlayer = 16;
float maxCarSpeed = 80f;
float crowdSpeed = 14f;
int crowdQuantity = 50;
float maxHigh = 550f;
setGameParameters(maxSpeedPlayer, maxCarSpeed, crowdSpeed, crowdQuantity, maxHigh);
}
}
}
2. Код класса RobotBehavior, который описывает поведение робота. Если по высоте (transform.position.y) игрок находится не выше, чем на 3 единицы, и если дистанция по диагонали условного квадрата, строящегося по точкам осей X и Z, превышает 4 единиц, то робот приобретает анимацию и следует за ним с заданной врачами скоростью, в случае, если дистанция превышает 4 единицы робот убегает, иначе, если игрок (пациент) изменил свою высоту, то роботы приобретают анимацию ожидания и стоят на месте.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using GameParameters;
public class RobotBehavior : MonoBehaviour
{
public Animator animate;
protected GameLoader parameters;
private Vector3 player;
private SaveObject saved;
public Texture[] textures = new Texture[3];
void Start ()
{
animate = GetComponent<Animator>();
saved = new SaveObject();
MeshRenderer texture = GetComponent<MeshRenderer>();
int rand = Random.Range(0, 2);
texture.material.SetTexture("NewTexture", textures[rand]);
parameters = new GameLoader();
}
void Update ()
{
player = saved.GetSaveCamera();
if ((player.y - transform.position.y) < 3f)
{
Debug.Log("Хочу двигаться");
if (Vector3.Distance(player, transform.position) > 4f)
{
Debug.Log("Начинаю");
Move(true);
}
else
{
Debug.Log("Убегаю");
Move(false);
}
}
else
{
Debug.Log("Стою");
animate.SetBool("isRunning", false);
}
}
public void Move(bool checkDist)
{
animate.SetBool("isRunning", true);
Debug.Log("Моя скорость " + parameters.getCrowdSpeed());
float step = parameters.getCrowdSpeed() * Time.deltaTime;
if (checkDist)
{
transform.position=Vector3.MoveTowards(transform.position, player, step);
}
else
{
transform.position = Vector3.MoveTowards(transform.position, -player, step);
}
}
}
Размещено на Allbest.ru
...Подобные документы
Разработка интерфейса и программного обеспечения виртуальной библиотеки. Проектирование структуры экранов и навигационной системы. Построение прототипа пользовательского интерфейса. Тестирование и модификация прототипа. Экспертная оценка разработки.
курсовая работа [41,2 K], добавлен 19.12.2010Понятие и ключевое отличие распределенной разработки программного обеспечения, его достоинства и недостатки. Концептуальное решение и выбор типа разработки. Особенности программного обеспечения с открытым исходным кодом. Идея и развитие Open Source.
курсовая работа [97,7 K], добавлен 14.12.2012Возможности среды программирования delphi при разработке приложения с визуальным интерфейсом. Разработка спецификации программного обеспечения и на ее основе кода программного продукта. Отладка программы "трассировкой", ее тестирование и оптимизация.
курсовая работа [501,4 K], добавлен 07.12.2016Цели и задачи программной инженерии. Понятие программного обеспечения. Шесть принципов эффективного использования программного обеспечения. Виды программного обеспечения: общесистемное, сетевое и прикладное. Принципы построения программного обеспечения.
курсовая работа [30,4 K], добавлен 29.06.2010Сравнительный анализ технологий тестирования. Разработка программного модуля "Интеллектуальная обучающая система для широкого перечня курсов". Обоснование необходимости и важности этапа отладки в процессе разработки данного программного обеспечения.
дипломная работа [101,2 K], добавлен 17.06.2011Современные инструменты разработки программного обеспечения для СУТП. Универсальные языки программирования и сравнение их со SCADA-системами. Разработка программного обеспечения с использованием многоканальных измерительных преобразователей Ш9327.
дипломная работа [2,3 M], добавлен 13.07.2011Задачи работы медицинского секретариата и отдела приема пациентов. Требования к информационной системе, архитектура ее технических средств. Разработка алгоритма функционирования системы и интерфейса пользователя. Реализация программного обеспечения.
курсовая работа [1010,7 K], добавлен 07.07.2013Понятие программного обеспечения, вопросы его разработки и использования. Общая характеристика системного программного обеспечения и работа операционной системы. Специфика процесса управления разработкой программного обеспечения и его особенности.
курсовая работа [636,2 K], добавлен 23.08.2011Этапы разработки технического задания. Спецификация программного обеспечения при структурном подходе. Дерево диаграмм, базовые понятия сетевой модели данных. Разработка пользовательского интерфейса. Разработка сценария диалога на основе экранных форм.
курсовая работа [2,0 M], добавлен 24.06.2012Реализация программного средства "Действия над матрицами". Разработка кода программного продукта на основе готовой спецификации на уровне модуля. Использование инструментальных средств на этапе отладки программного модуля. Выбор стратегии тестирования.
отчет по практике [296,1 K], добавлен 19.04.2015Реализация задачи использования методики SDLC (управление жизненным циклом разработки программного обеспечения) при внедрении реальной системы информационных технологий. Описание проекта внедрения системы автоматической регистрации участников выставок.
реферат [585,1 K], добавлен 10.09.2010Использование моделирования в программной инженерии в процессе разработки программного обеспечения. Основные этапы процесса разработки программного обеспечения, их характеристика. Моделирование процессов, их определение фазами и видами деятельности.
реферат [2,2 M], добавлен 25.12.2017Исследование объектно-ориентированного подхода к проектированию программного обеспечения будильника. Модель программного обеспечения. Взаимодействие между пользователями и системой. Диаграммы и генерация программного кода при помощи средств Rational Rose.
курсовая работа [355,8 K], добавлен 26.09.2014Совершенствование документационного обеспечения деятельности на основе автоматизации. Создание базы данных сотрудников ИП "Беспалова Е.В.". Разработка программного кода для обеспечения связи БД с web-страницей. Исследование форматов построения таблиц.
дипломная работа [1,1 M], добавлен 12.03.2013Порядок автоматизации расчетов себестоимости и длительности программного обеспечения производственного предприятия. Выбор языка программирования и системы управления базами данных. Разработка алгоритмов расчета себестоимости программного обеспечения.
дипломная работа [1,7 M], добавлен 13.06.2017Определение основных отличий виртуальной реальности и дополненной реальности. Рассмотрение способов "доставки" виртуального изображения пользователю. Распространение виртуальной реальности в медицине, образовании, промышленности, финансах и инвестициях.
реферат [960,2 K], добавлен 20.09.2019Функционально-модульная структура программного обеспечения контроллера домофона. Электронная схема электронного замка, модуля микрофона и динамика. Выбор комбинированного источника питания. Разработка программного модуля. Программа управления домофоном.
курсовая работа [484,7 K], добавлен 29.03.2017Возможности среды программирования delphi при разработке приложения с визуальным интерфейсом. Отладка программных модулей с использованием специализированных программных средств. Тестирование программного обеспечения. Оптимизация программного кода.
курсовая работа [974,0 K], добавлен 21.12.2016Цементирование обсадных колонн нефтяных скважин. Состав информационного обеспечения программного комплекса автоматизированного проектирования. Реализация инфологической модели и организация взаимодействия программного обеспечения с базой данных.
дипломная работа [2,3 M], добавлен 22.07.2013Схемы взаимодействия между заказчиком и разработчиком программного обеспечения. Качество программного обеспечения и определение основных критериев его оценка на современном этапе, особенности управления на стадиях жизненного цикла, анализ достаточности.
презентация [114,7 K], добавлен 14.08.2013