close

Вход

Забыли?

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

Бухвостов Владислав Олегович. Разработка информационно-справочного мобильного приложения «Звездное небо»

код для вставки
3
АННОТАЦИЯ
ВКР 60 с., 33 рис., 2 табл., 10 источников, 1 прил.
МОБИЛЬНАЯ РАЗРАБОТКА, ЗВЕЗДЫ, СИСТЕМА РАСПОЗНАВАНИЯ
ОБРАЗОВ,
Выпускная квалификационная работа посвящена разработке мобильного
приложения, способного определить наличие созвездий на звездном небе.
В
первой
главе выпускной
квалификационной
работы
содержится
информация, поднимающая проблему актуальности данной задачи. Произведен
анализ поставленной задачи. Также были рассмотрены существующие аналоги,
способные решить поставленную задачу. Описаны функциональные требования.
Во второй главе описывается выбор будущей архитектуры мобильного
приложения. Разработаны UML диаграммы .
В третьей главе описан процесс разработки мобильного приложения. Были
выбраны компоненты, которые будут использоваться в работе приложения.
Разработана транзитивная сеть для мобильного интерфейса. Разработан алгоритм
поиска созвездий на изображении.
В четвертой главе описан процесс реализации мобильного приложения. Был
а выбрана мобильная платформа. Произведен выбор среды разработки. Также
представлена реализация мобильного приложения.
Графическая
часть
выпускной
квалификационной
работы
содержит
иллюстрации, таблицы, которые объединены в презентации PowerPoint
Библиографическая часть выпускной квалификационной работы включает в
себя 10 источников.
4
СОДЕРЖАНИЕ
ВВЕДЕНИЕ
5
1. АНАЛИЗ ЗАДАЧИ РАЗРАБОТКИ ИНФОРМАЦИОННО-СПРАВОЧНОГО
МОБИЛЬНОГО ПРИЛОЖЕНИЯ
6
1.1. Актуальность задачи разработки мобильного приложения
6
1.2. Изучение аналогов
7
1.3. Формирование функциональных требований к продукту
20
2. МОДЕЛИРОВАНИЕ ИНФОРМАЦИОННО-СПРАВОЧНОГО
МОБИЛЬНОГО ПРИЛОЖЕНИЯ
21
2.1. Выбор архитектуры мобильного приложения
21
2.2. Разработка UML диаграмм
23
3. РАЗРАБОТКА ИНФОРМАЦИОННО-СПРАВОЧНОГО МОБИЛЬНОГО
ПРИЛОЖЕНИЯ
29
3.1.Выбор дополнительных компонентов
29
3.2. Создание транзитивной сети
31
3.3. Разработка алгоритма поиска созвездий
33
4. РЕАЛИЗАЦИЯ МОБИЛЬНОГО ПРИЛОЖЕНИЯ
37
4.1.Выбор мобильной платформы
37
4.2.Выбор среды разработки
40
4.3. Результат
48
ЗАКЛЮЧЕНИЕ
50
ИСПОЛЬЗУЕМАЯ ЛИТЕРАТУРА
51
ПРИЛОЖЕНИЕ А –ЛИСТИНГ ПРОГРАММЫ
52
УДОСТОВЕРЯЮЩИЙ ЛИСТ
59
ИНФОРМАЦИОННО-ПОИСКОВАЯ ХАРАКТЕРИСТИКА
ДОКУМЕНТА НА ЭЛЕКТРОННОМ НОСИТЕЛЕ
60
5
ВВЕДЕНИЕ
В
настоящее
время
мощный
скачок
получили
такие
области
информационных технологий, как машинное обучение, нейронные сети,
компьютерное зрение. Это происходит из-за необходимости автоматизации все
большего числа сфер человечества. Но не стоит забывать, что, в первую очередь,
современные устройства и технологии, используемые практически везде,
остаются вспомогательными инструментами для людей. Чтобы системы могли
функционировать, необходимо специальное устройство, которым является
компьютер.
Главная особенность компьютера заключается в его умении выполнять
математические вычисления с невообразимой скоростью. Но даже для такого
устройства найдется сложная для выполнения задача, а именно способность к
распознаванию образов.
Технологии,
помогающие компьютеру различать
объекты на изображении, стремительно развиваются. Со временем компьютеры
становятся меньше, но производительность растет. Отсюда возникает вопрос:
насколько эффективно такие мобильные устройства смогут решать задачи по
распознаванию образа.
Данная тема была выбрана потому, что область компьютерного зрения
является одной из быстроразвивающейся. Многие производители техники и
программного обеспечения внедряют некоторые технологии в свои продукты.
Сегодня можно найти модели телефонов со встроенной функцией распознавания
лиц. Данное решение меняет подход к безопасности данных, хранимых на
устройстве.
Если разработать технологию, способную распознавать созвездия, то её
можно использовать не только для ознакомительной цели. Данную разработку
можно использовать как часть системы геопозиционирования в качестве
дополнительного способа ориентации в пространстве.
6
1 АНАЛИЗ ЗАДАЧИ РАЗРАБОТКИ ИНФОРМАЦИОННОСПРАВОЧНОГО МОБИЛЬНОГО ПРИЛОЖЕНИЯ
1.1 Актуальность задачи разработки мобильного приложения
На протяжении существования человечества, люди стремятся к постижению
чего-то нового, ранее неизведанного. Сначала они занимались исследованием
сухопутных территорий. После они обнаружили, что суша окружена водой. С
давних времен и по сегодняшний день, вода используется как среда перемещения
в пространстве. Сегодня мореплавательные суда оснащены системой навигации,
что дает возможность кораблям ориентироваться в морской среде.
Ещё совсем недавно таких систем не существовало. Для того, чтобы не
потеряться в просторах, мореплавателям приходилось ориентироваться по
положению небесных тел. Днем таковым ориентиром служило солнце, а ночью луна и звезды. Позже люди стали замечать, что определенный набор звезд и их
положение образуют на небе знакомые образы. В скоро времени были придуманы
созвездия.
Кроме того, знание о расположении созвездий и небесных тел помогает
астрономам, которые занимаются изучением космоса. Среди скоплений небесных
тел можно рассмотреть другие системы и галактики.
Из вышесказанного можно делать вывод, что тема звезд по-прежнему
остается актуальной. Было принято решение: разработать мобильное приложение,
которое способно показывать звездное небо. Также, продукт поможет людям,
мало знакомым с астрономией,
больше узнать об устройстве расположения
небесных тел.
Изучив более подробно данную область, станет возможным получить
доступ к новым способам ориентации в пространстве для компьютеров, а именно,
для специальных машин, которые могут быть использованы вне зависимости от
наличия соединения с системой GPS.
7
1.2 Изучение аналогов
Перед тем, как приступать к разработке мобильного приложения, следует
изучить продукты, представленные на рынке. Такой анализ требуется для того,
чтобы четко понимать, что люди хотят видеть в подобном приложении, какие
функции используются чаще всего.
Стоит помнить о том, что более приоритетной частью рынка остается
мобильный сегмент, так как со временем число мобильных устройств возрастает с
каждым годом. Следовательно, число пользователей также увеличивается. Таким
образом, мобильный рынок является перспективной областью для продвижения и
развития программных продуктов.
На мобильном рынке приложений существуют продукты, которые имеют
отношение к области наблюдения за небесными телами. Каждое из них способно
решать определенную задачу. Некоторые продукты способны выводить на экран
информацию о планетах, расположенных в солнечной системе. Другие
ориентированы на определение местоположения искусственных спутников.
Также, подобный анализ производится для выявления аспектов решаемой
задачи. При более подробном изучении вопроса, станет известно, что из
имеющегося функционала программ на сегодняшний день более востребовано,
какие особенности могут сделать задачу сложней,
существуют ли способы
решения найденных проблем.
В ходе изучения существующих программных продуктов, были выбраны те,
которые наиболее точно решают задачу. Было выбрано несколько приложений,
которые помогают пользователю наблюдать за небом:
- Star Chart;
-
Stellarium mobile sky map;
-
Planetarium;
- Sky Map.
Star Chart представляет собой
мобильное приложение для Android,
представляющее собой карту звездного неба. Глядя в ночное небо, вы сможете
точно определить что это за яркий объект у вас над головой – планета или звезда,
8
а может быть и спутник, где находится то или иное созвездие, когда и где над
горизонтом появится тот или объект. Достаточно указать координаты и
программа будет автоматически изменять картинку в зависимости от положения
гаджета в пространстве. Вам достаточно посмотреть на небо как бы сквозь экран
своего планшета или смартфона и вы сможете увидеть звезды даже днем.
В базу данных приложения входит более 5000 звезд, 88 созвездий, все
объекты из каталога Мессье. Выбрав объект, можно узнать краткую информацию
о нем. Кроме этого, в приложении существует возможность посмотреть на
планеты и спутники в Солнечной системе под разным углом.
Имеется
функция
поиска
звезд,
созвездий,
планет,
туманностей.
Поддерживается ночной и дневной режимы. Карту звездного неба можно
просматривать
в
режиме
реального
Приложениеспособно принимать
времени
или
со
смещением.
уведомления о предстоящих интересных
астрномических явлениях. Например, о метеоритном дожде, солнечном или
лунном затмении, прохождении кометы.
Рисунок 1 – Главное меню StarChart
9
Рисунок 2 – Пример работы
Рисунок 3 – Информация об объекте
10
Рисунок 4 – Отображение объекта
Stellarium
исследовать
mobile
карту
sky
звездного
map
является
неба.
Данный
инструментом,
продукт
позволяющим
имеет
следующие
особенности:
 определение местоположения с помощью системы GPS;
 вывод на экран карты звездного неба(используется акселерометр);
 каталог звезд;
 отображение созвездий при изменении мифологии;
 реалистичный Млечный Путь;
 фотореалистичные пейзаж, атмосфера, восход/закат солнца;
 3D-модели основных планет солнечной системы и их спутников;
 ночной режим.
Данное приложение будет доступно для загрузки после того, как
произойдет его оплата. В качестве дополнительной функции программа
предлагает справочник с описанием созвездий в разных мифологиях.
11
Рисунок 5 – Пример работы Stellarium
Рисунок 6 – Отображение объектов
12
Рисунок 7 – Справочная информация по созвездиям
Рисунок 8 – Наблюдение за объектом
13
Planetarium является программным продуктом более широкого назначения,
поскольку содержит в себе не только функции для наблюдения за звездным
небом. В ней также предоставляется возможность смотреть на звезды, созвездия.
Отличие заключается в отсутствии привычной карты звездного неба,
которую можно просматривать, изменяя положение пространства устройства.
Были добавлены такие функциональные составляющие, как Астрономические
часы, карты солнечной системы,
Одна из главных особенностью приложения заключается в относительно
небольшом объеме памяти, занимаемом на устройстве. Это объясняется тем, что в
программе сосредоточены самые основные элементы, которые не будут
затруднять изучение объектов.
С помощью данной программы пользователь сможет делать следующее:
 отслеживать положение небесных объектов;
 следить за положением Солнца относительно положения устройства
пользователя;
 наличие
доступа
к
списку
астрономических
событий,
которые
произойдут в ближайшее время;
 установление определенной даты и времени, что отразится на
положении объектов.
14
Рисунок 9 – Карты солнечной системы
Рисунок 10 – Наблюдение за положением Солнца относительно пользователя
15
Рисунок 11 – Изменение даты и времени
Рисунок 12 – Карта звездного неба
16
Рисунок 13 – Карта светового дня
Рисунок 14 – Список ближайших событий
17
Среди остальных аналогов, Sky Map является продуктом, в котором
отсутствуют дополнительные функции. Внутри содержится карта звездного неба,
на которой отображаются созвездия, спутники и другие объекты.
Для более удобного наблюдения добавлены различные фильтры, которые
позволяют убирать невостребованные в данный момент времени составляющие
карты. К таковым относятся звезды, созвездия, планеты, скопления.
Приложение отличается высокой скоростью работы, удобным интерфейсом.
При включенном акселерометре, пользователю показывается та часть карты,
которая соответствует положению устройства в пространстве.
Рисунок 15 – Пример работы Sky Map
18
Рисунок 16 – Пример работы без элементов интерфейса
Рисунок 17 – Отображение только созвездий
19
\
Рисунок 18 – Отображение только планет
Таблица 1 - Особенности приложений - аналогов
Приложение Star Chart
Особенности
Подключение
к
сети
интернет
Распознавание
искусственных
объектов
Наличие
справочной
информации о
созвездиях
Распознавание
созвездий при
помощи
камеры
Stellarium
Pllanetarium Sky Map
mobile sky map
-
+
+
-
+
-
-
-
+
+
+
+
-
-
-
-
20
Результаты, содержащиеся в таблице 1, показывают, что каждый
программный продукт имеет свои достоинства и недостатки. Но среди них нет
программы, которая производит поиск созвездий при помощи аппаратной
составляющей мобильного устройства, а именно, камеры. Имеющиеся аналоги
производят операции с готовой картой звездного неба.
Планируется, что в разрабатываемый продукт будет добавлена возможность
распознавания созвездий, используя камеру. Это позволит:
- лучше понять, какие перспективы имеются у технологий распознавания
образов;
- узнать, насколько точным окажется результат работы приложения;
- внедрить части разработанного продукта в другие проекты.
1.3 Формирование функциональных требований к продукту
Функциональные требования представляют собой описание того, какой
набор функций должен иметь конечный продукт. Такой список следует четко
сформировать перед началом разработки продукта. Наличие требований позволят
разработчикам знать, что от них требуется сделать.
Не исключено, что в ходе создания приложения и более глубоком изучении
предметной области, требования могут измениться. Таких моментов следует
избегать и следует заранее узнать обо всех возможных аспектах предметной
области.
Во время анализа задачи по распознаванию созвездий, было установлено,
что мобильное приложение должно содержать следующие возможности:
 поиск созвездий на изображении, полученном с камеры;
 поиск созвездий на изображении, загруженном с внешней памяти
мобильного устройства;
 распознавание искусственных объектов;
 просмотр справочника созвездий.
21
2 МОДЕЛИРОВАНИЕ
2.1 Выбор архитектуры мобильного приложения
При
разработке
мобильного
приложения
нужно
учитывать,
каким
функционалом будет обладать продукт, на кого будет рассчитан , как элементы
будут взаимодействовать между собой и внешними модулями, на какой структуре
будет основано будущее приложение. На самом деле, вопросов, которые
охватывают процесс разработки приложений, намного больше. Ответы на
основные вопросы могут существенно изменить конечный вид продукта,
показать, что произойдет с ним после окончания разработки.
Одной из распространенных подходов при разработки программы является
архитектура типа «Клиент-сервер». Особенность такого подхода заключается в
следующем. Для работы системы создаются две программы: клиент и сервер.
Клиент — это программа, которая предоставляет пользователю доступ к
некоторому сервису. В процессе работы занимается отправлением запросов на
сервер и получением ответа от него. Занимает небольшой объем памяти на
устройстве.
Сервер — это программа, которая занимается обработкой запросов,
посылаемых от клиента. По сравнению с клиентом, занимает ощутимо больший
объем памяти и задействует больше ресурсов. Поэтому для того, чтобы снизить
нагрузку на устройство пользователя, часть бизнес-логики переносится на
специальный удаленный компьютере, называемый сервером.
При использовании такого подхода пользователю не требуется хранить
информацию на собственном устройстве. Её можно получить, сделав запрос
серверу.
Достоинствами такого архитектурного подхода является:
- быстродействие системы на стороне пользователя;
- возможность использовать сервис.
22
Недостаток такого подхода заключается в невозможности использовать
сервис в автономном режиме.
При проектировании мобильного приложения стоит подумать: стоит ли
добавлять
возможность
положительном
ответе
расширения
конечный
имеющегося
продукт
будет
функционала.
реализован
При
как
набор
независимых модулей. Такой подход при проектировании приложения называется
модульный. Он заключается в разбиении программ на отдельные модули и
дальнейшей их сборке в единое целое.
Использование данной модели при разработке позволит в дальнейшем
упростить дальнейшее обслуживание, обновление, расширение программного
продукта, ускорит процесс разработки за счет распределения задач между
программистами, упрощается процесс отладки и поиска ошибок в рабочем коде.
При использовании модульной архитектуры могут возникнуть некоторые
сложности. Часто, при разработке крупного проекта, число модулей резко
возрастает. При добавлении нового модуля может оказаться, что модуль,
созданный ранее, работает неправильно, и возникает ситуация, когда требуется
изменить работу нескольких модулей, что повлечет за собой дополнительные
расходы и неудобства. Также, при ненадлежащем контроле за иерархией модулей,
может
возникнуть
ситуация,
когда
между
модулями
образуется
много
зависимостей. В этом случае, при обнаружении серьезной ошибки в структуре
системы, может потребоваться изменение работы ряда модулей, что повлечет за
собой изменение логики работы программы.
В ходе анализа выбранных подходов разработки приложения, было принято
решение использовать модульный подход, поскольку для дальнейшей реализации
планируется разделить весь функционал на две независимые части. В связи с
этим, наиболее предпочтительным вариантом будет создание двух отдельных
модулей,
что
позволит
разработчику
проверять
зависимости от наличия остальной части программы.
работоспособность
вне
23
2.2 Создание UML диаграмм
Прежде чем начать разработку нового программного продукта, необходимо
четко понимать: как будут функционировать его компоненты, что необходимо
реализовать для стабильной работы, какие ошибки могут повлиять на отсутствие
ожидаемого результата. Для того, чтобы помочь разработчику сделать
качественный
продукт,
и
наглядно
показать
общие
принципы
работы
разрабатываемой системы человеку, далекому от области разработки, можно
воспользоваться UML диаграммами. С их помощью разработчик может
полностью описать принцип работы будущего продукта таким образом, чтобы
другие участники могли понять, что должно получиться в итоге.
Основными диаграммами являются:
- диаграмма классов;
- диаграмма вариантов использования;
- диаграмма состояний.
Диаграмма вариантов использования — диаграмма, которая показывает,
какие действия может выполнять тот или иной пользователь. Она состоит из
актеров
и
вариантов
использования.
Между
ними
образуются
связи,
определяющие возможность выполнения действия.
Диаграммы вариантов использования создается для того, чтобы:
- сформировать общие требования к поведению будущего продукта;
- описать простейшую модель системы для её дальнейшего усложнения;
- формализовать требования заказчика.
Рисунок 19 – Диаграмма вариантов использования приложения
24
24
25
Рисунок 20 – Диаграмма классов приложения
Диаграмма классов — диаграмма, в которой основными элементами являются
объекты. Под объектом понимается некоторая сущность, содержащая внутри себя
определенный набор свойств и методов. При построении данной диаграмме
принято помнить об объектно-ориентированном подходе. Отсюда следует, что
появляется возможность показать особые связи между классами, а именно
наследование, ассоциации, аккумуляцию
С помощью наследования разработчик показывает, что классы, имеющие
подобную связь, обладают важным свойством. Один из элементов связи считается
«предком». Это класс, от которого другие классы могут получить доступ к полям
и методам, которые объявлены как публичные. Наследование позволяет снизить
процент повторяемого кода в программе.
Ассоциация позволяет показать, что один из классов с данной связью будет
использовать другой класс для выполнения некоторой работы. В отличие от
26
наследования,
последующий
класс
не
будет
обладать
всеми
методами
предыдущего. Они будут вызываться объектом предыдущего класса.
На диаграмме классов видно, что существует следующие классы: Главное
меню, Камера, Фотография, Список_созвездий, Созвездие. Также имеется
интерфейс ОперацииСозвездия. Был добавлен по причине использования схожих
методов классами Камера и Фотография.
Внутри класса Главное окно содержатся два метода и поле, которое
потребуется для дальнейших операций для распознавания. При вызове каждого из
них создается объект соответствующего класса и его дальнейшее отображение на
дисплее устройства.
В классах Камера и Фотография имеются реализации методов интерфейса
ОперацииСозвездия.
Рисунок 21 – Диаграмма состояний приложения
27
27
28
Диаграмма состояний показывает, как выполняется тот или иной процесс.
Основным оперируемым элементом является состояние. Оно может содержать
внутри себя такие блоки как:
- входные данные;
- действия;
- выходные дынные.
На данной диаграмме состояний присутствуют начальное состояние, набор
из четырёх возможных состояний, и конечное состояние. С самого начала
программа попадает в состояние «выбор режима». В зависимости от того, что
пользователь делал во время нахождения в текущем состоянии, работа
продолжается по одному из трёх состояний: «работа с камерой», «работа с
фотографией», «окончание работы». Завершение работы возможно, если
программа находится в состоянии «»выбор режима»
Переход между состояниями осуществляется по специальным переходам,
соответствующим результатам работы состояния «выбор режима». Имеются
переходы от состояний «работа с камерой» и «работа с фотографией» к
состоянию «выбор режима» с целью окончания работы с программой или выбора
другого режима работы.
29
3 РАЗРАБОТКА
3.1 Выбор дополнительных компонентов
В последнее время выделяют несколько актуальных направлений в области
информационных технологий: машинное обучение, компьютерное зрение, работа
с «большими» данными. Их относят к числу перспективных, так как уже сейчас
появляются задачи, которые можно решить быстрее и эффективнее, применив
методы и средства из ранее описанных областей. Также разрабатываются
системы, близкие по представления к искусственному интеллекту. При
разработки крупного проекта редко применяют методы компьютерного зрения без
средств машинного обучения , так как под влиянием машинного обучения,
процент успешно выполненных действия увеличивается. Для разработки
требуемого
мобильного
приложения
достаточно
применить
средства,
относящиеся к области компьютерного зрения, поскольку работа по определению
будет выполняться с изображениями. Для того, чтобы разработать необходимый
программный продукт, требуется выбрать такое программное средство, которые
будет ориентировано на решение задач, связанных с распознаванием образов.
Существует множество библиотек, способных работать с изображениями и
выполнять над мини различные действия. Наиболее известными из таковых
являются OpenCV и PCL. Теперь немного подробнее о каждой из них.
OpenCV(Open Source Computer Vision Library) — это специальная
библиотека с открытым исходным кодом, которые используются в компьютерном
зрении и машинном обучении. Выпуск первой версии библиотеки состоялся в
2006 году. На её основе возможно создать основу для работы приложения,
ориентированных на данную область.
Библиотека содержит более чем 2500 алгоритмов, которые включают
множество классических и современных алгоритмов компьютерного зрения и
машинного обучения. Они применяются для распознавания лиц, определения
объектов, классификации действий человека на видео, отслеживание движения
30
камеры, удаление эффекта «красных» глаз, поиск изображения в базе данных
изображений, создание панорам, применение фильтров.
OpenCV является кросс-платформенным продуктом, то есть его компоненты
можно использовать в программных продуктах, которые поддерживают такие
платформы как Windows, Linux, MacOS, Android.
Плюсами данной библиотеки является наличие:
- исчерпывающей документации;
- руководств по использованию различных модулей библиотеки для тех, кто
только начинает использовать библиотеку, и тех, кто хочет закрепить имеющиеся
знания;
- сообщества, которое развивает продукт.
Также стоит упомянуть, что для хранения изображения используется
специальный тип данных Mat. По сути, это специальная матрица, в которой
хранится изображение. Алгоритмы, реализованные в библиотеке, выполняют
операции над матрицами.
PCL(Point Cloud Library) — это открытый проект, который рассчитан на
обработку 2D/3D изображений и облаков точек. PCL содержит множество
алгоритмов, таких как фильтрация, поверхностная реконструкция, сегментация и
другие. Могут быть применены для удаления шума с изображения, извлечения
особых точек и вычисление дескрипторов для распознавания объектов на основе
их геометрического вида, создание облаков точек и их визуализация.
PCL кросс-платформенный продукт и может работать на таких платформах,
как Linux, MacOS, Windows. Может принимать и обрабатывать данные с таких
устройств как 3D-камера PrimeSensor, контроллер Microsoft Kinect, 3D-сенсор
Asus XtionPRO.
Для хранения изображения применяется облако точек. Это специальная
структура дынных, которая представлена как набор многомерных точек. В
основном используется для представления трехмерных данных. В трехмерном
облаке, точки обычно представлены как значения координат по осям X, Y, Z. Если
имеется информация о цвете , то облако точек становится четырехмерным. Также
31
структура может взаимодействовать с аппаратными сенсорами: стерео-камера,
3D-сканнеры.
Данный продукт имеет ряд особенностей:
- наличие документации и руководств по использованию;
- поддержка работы с широким набором оборудования.
Вышеописанные системы часто применяются на практике. Их используют
при проектировании систем слежения улиц, систем для медицинского и
досмотрового оборудования. В упомянутых областях применения важным
фактором является возможность точно определить объект , так как в зависимости
от полученных данных будет зависеть правильность принятого решения. OpenCV
и PCL содержат алгоритмы, способные изменять такие параметры изображения,
как яркость, контраст, насыщенность. При их изменении количество видимых
объектов на картинке может увеличится или уменьшиться, что позволит человеку
принять более обоснованное решение, основываясь на полученной информации.
При выборе инструмента для разработки мобильного приложения было
принято решение использовать OpenCV , так как компоненты данного продукта
можно применить для платформы Android.
3.2 Создание транзитивной сети
Вдобавок к имеющимся диаграммам, которые описывают логику работы
всего
приложения,
требуется
описать
поведение
работы
графического
пользовательского интерфейса разрабатываемого продукта. Было принято
решение сделать это при помощи транзитивной сети. Она представляет собой
схему, внешне напоминающую конечный автомат. В распоряжении человека,
строящего подобную сеть, имеются множества состояний и переходы.
Среди них есть промежуточные и финальные состояния. Переход от одного
состояния к другому описывается следующим образом.
Имеется стрелка,
соединяющая два состояния.
Над верхней частью стрелки подписывается элемент графического
пользовательского интерфейса. Например, это может быть нажатие кнопки,
32
изменение позиции ползунка. Любое действие, которое ведет за собой изменение
поведения, фиксируется на транзитивной сети. В нижней части стрелки
подписывается действие, которое будет выполнено после нажатия на элемент.
При проектировании транзитивной сети, важно показать, что в поведении
интерфейса отсутствуют тупиковые состояния, так как если в конечном варианте
не будет устранена подобная ошибка, то возможны ошибки в работе программы.
Рисунок 22 – Транзитивная сеть для интерфейса приложения
33
Транзитивная сеть состоит из пяти основных состояний и одного
финального. Переходы выполняются в зависимости от кнопки, на которую нажал
пользователь. Также здесь присутствуют независимые переходы, то есть такие
переходы, которые не зависят от действий, совершаемых пользователем.
Таковыми являются переходы из 5 в 3 и 4 в 3.
3.3 Разработка алгоритма поиска созвездий
После того, как была определена архитектура, описано то. как будут себя
вести компоненты будущего приложения, требуется описать бизнес - логику
будущего продукта. Другими словами, требуется формально описать те
алгоритмы, которые будут решать поставленную задачу.
Для того, чтобы было возможным описать принцип решения задачи, нужно
привести задачу к формальному виду. Это значит, что решаемую задачу нужно
изменить таким образом, чтобы появилась возможность применить к ней
известные методы решения. Например, если задача оказалась очень сложной, то
возможным вариантом решением будет выделить из неё подзадачи, для которых
существуют методы решения.
Главной задачей для разрабатываемого приложения является поиск
созвездий на звёздном небе. В качестве решения задачи можно производить
сравнение с имеющимся шаблоном созвездия. Для начала нужно определиться, в
каком виде стоит хранить эталонные образцы созвездий.
Стоит отметить, что такая задача сводится к задаче распознавания образов.
Их решение происходит по следующей схеме. Каждый предмет, который
окружает человека, обладает особым набором свойств: цвет, размер, вес и так
далее. Известно, что картонные коробки в проекциях имеют прямоугольную
форму, они лёгкие, сделаны из картона. Цвет, вес и размеры могут отличаться, но
постоянным остается материал объекта и форма в проекциях. Через органы
чувств, человек получает информация о материале и форме предмета. Теперь
человек может точно быть уверенным в том, что он держит именно картонную
коробку.
34
Но для того, чтобы можно было более точно идентифицировать незнакомый
ранее предмет, необходимо провести определенное число наблюдений, во время
которых происходит опознание предмета. С увеличением данного показателя,
вероятность успешно опознать предмет также увеличивается.
Следует начать с того, что созвездие - это некоторый образ. Когда человек
видит его, происходит мысленное сопоставление поступающей информации от
зрения c той, что хранится у него в голове. Если о существовании созвездия ему
стало известно совсем недавно, то потребуется некоторое число повторных
наблюдений, чтобы научиться определять местоположение нового скопления
звёзд на небе с высокой долей вероятности.
Получается, что человек, наблюдая за небом, знает о существовании
некоторого набора признаков, который позволяет ему утверждать, что перед ним,
к примеру, созвездие Большой Медведицы. Рассмотрев другие созвездия, можно
найти общие признаки для всех, а именно количество задействованных звёзд,
уникальность созвездия и положение звезд.
Человек мысленно соединяет точки воображаемой линией. В результате
чего получается некоторый образ, в честь которого было названо скопление звезд.
Будет уместным остановиться на соединении точек линией. Известно, что прямую
можно построить по следующей формуле:
−1
1 −2
−1
1 −2
=
,
(1)
где x,y - координаты некоторой точки;
1 , 1
- координаты начала отрезка;
2 , 2
- координаты конца отрезка.
Если при подстановке координат возникает ситуация, когда левая и правая
части уравнения равны, то точка, чьи координаты были подставлены в уравнение,
принадлежит заданной прямой. При этом в левой и правой части уравнения
результатом будет являться некоторое число. Если произвести сдвиг прямой и
принадлежащей ей точки по координатной оси, а затем выполнить расчет, то в
результате получится такой же результат. Результат останется неизменным, если
взять новую точку, которая находится левее начала, в качестве начала, и точку,
35
находящуюся правее конца отрезка, при этом они принадлежат начальной
прямой.
Эти
свойства
пригодятся
для
дальнейшего
поиска
созвездий
на
изображении. Внутри шаблона для поиска будет находиться имя созвездия и
список всех образующих точек. С их помощью будет происходить проверка на
соответствие исходного изображения
1
2
3
1
1
4
5
1
1
Рисунок 23 – Алгоритм поиска подходящего шаблона, лист 1
1
36
2
3
1
1
Рисунок 23, лист 2
4
5
1
1
37
4 РЕАЛИЗАЦИЯ
4.1 Выбор мобильной платформы
Перед тем. Как начинать разработку мобильного приложения, необходимо
выбрать
требуется
платформу, для которою будет производится разработка. Поэтому
провести
анализ
мобильного
рынка
для
выбора
наиболее
универсальной платформы.
На сегодняшний день наиболее популярными мобильными платформами по
количеству работающих на них устройств являются: Android, Windows Phone,
IOS. Мобильным устройствам с установленной операционной системы Android во
второй четверти 2016 года принадлежит около 86.2% в сравнении с 82.2% за 2015
год, так как за IOS остается 12.9%, что на 1.5% меньше за тот же период 2015го.
Windows 10 Mobile от Microsoft стремительно теряет долю рынка и за год
количество устройств под операционной системой от Microsoft уменьшилось на
1.9% до 0.6%, остальная часть рынка остается за Blackberry с 0.1% и остальными
менее популярными мобильными операционными системами.
Рассмотрим приведенные выше операционные системы.
1) IOS – это операционная система, которая была разработана компанией
Apple. Прототипом для системы послужила стационарной Mac OS. Систему
представили 9 января 2007 года.
Для дальнейшего анализа потребуется узнать о достоинствах и недостатки
данной платформы.
Достоинства:
 Отсутствие проблемы с совместимостью, стала достижимой благодаря
тому, права на разработку программной и аппаратной составляющих принадлежат
одной компании;
 Низкий процент брака. Следует из предыдущего, так как IOS
используется только на устройствах копании Apple, разработчики тщательно
изучили каждый аспект реализованного функционала, что позволило избежать
большого количества ошибок;
38
 Высокий показатель автономной работы, данное преимущество было
достигнуто благодаря грамотному распределению ресурса батареи
во время
работы операционной системы;
 Интуитивно понятный интерфейс, не требующий много времени на
освоение, не нагружает процессор и память, гарантируя стабильную работу даже
на старых смартфонах;
 Регулярные обновления системы;
 Наличие магазина мобильных приложений, в котором пользователь
получает возможность загрузить игры различных направлений, воспользоваться
услугами обучающих сервисов и многое другое, при выполнении покупки в
магазине приложений, пользователь сможет загрузить купленный продукт на все
устройства под управлением IOS;
 - Облачное хранилище, поможет сохранить данные на всех устройствах
от Apple, такой подход защищает данные от потери в случае кражи или поломки
устройства.
Недостатки:
 платформа является полностью закрытой, что не дает изменить
необходимые файлам операционной системы;
 Bluetooth невозможно использовать в целях передачи файлов;
 Дороговизна устройств и приложений;
 Ограниченность при выборе приложений, возможно
использование
стандартного браузера;
 Отсутствие слотов для расширения объема памяти
мобильного
устройства;
2) Android - это платформа, разработку которой начинала компания Android
Inc,. Позднее её приобрела компанией Google. В настоящий момент является
одной из быстроразвивающихся платформ, выпуск первых телефонов под
управлением Android начался в октябре 2008 года. Сегодня на данной платформе
работают различные устройства: часов, телефоны, спутники NASA. Как и в
39
случае с платформой IOS, следует изучить достоинства и недостатки
рассматриваемой платформы.
Преимущества:
 Android является открытой платформой. Она была создана на основе
открытого исходного кода и находится в свободном распространении, такой
способ предоставления данных дает разработчикам множество возможностей,
например наличие доступа к изучению принципов работы неизвестных функции.
Каждый пользователь может внести вклад в развитие платформы, для этого в
интернете существуют специальные форумы и сообщества;
 Большая часть производителей мобильных устройства , в числе которых
такие компании, как Samsung, HTC, Sony, в качестве основной системы для
аппаратов, выбирают Android. Такой подход позволяет покупателям выбирать из
большего числа устройств, различных по цене, дизайну, характеристикам;
 Широкий
Пользователь
выбор
может
приложений
установить
в
специализированном
альтернативное
приложение
магазине.
в
замен
стандартным программам;
 Полная свобода действий при разработке на Android. Быстрая, гибкая и
интуитивно
понятная
платформа
доверительное
отношение
Android
к
разработчику, делают данную ОС идеальным инструментом для создания
мобильных программных продуктов как для опытным так и для начинающим
программистом;
 Достойная реализация многозадачность, благодаря которой исполнение
сразу нескольких ресурсоемких приложений не приводит к высокой нагрузке на
устройство.
Рассмотрев наиболее популярные платформы, было принято решение, что
приложение будет реализовано для платформа Android. Это объясняется тем, что
устройства, работающие на данной платформе, являются наиболее доступными
на мобильном рынке. Также стоит обратить внимание на то, что продукт , по мере
необходимости, можно будет дополнить новыми особенностями.
40
4.2 Выбор среды разработки
После того, как было выполнены следующие действия:
 Проведен анализ задачи разработки мобильного приложения;
 Рассмотрены приложения - аналоги, которые дают представление о
решении задачи;
 Сформировано представление о конечном результате;
 Выбрана архитектура будущего продукта;
 Разработан алгоритм, выполняющий поиск созвездий.
Требуется
выбрать
среду
разработки,
с
помощью
которой
будет
реализовано мобильное приложение.
Под средой разработки понимается специальная программа, в которой
объединены такие компоненты, как текстовый редактор, подсветка синтаксиса,
компилятор. Такая система позволяет значительно ускорить процесс написания
рабочей программы, так как в некоторых продуктах доступна функция
автоматического заполнения.
Обычно, вместе со средой разработки, поставляются инструменты для
создания графического пользовательского интерфейса, что позволяет написать
полностью рабочую программу за небольшой промежуток времени.
В среде разработки, пользователь работает с проектом, который можно
преобразовать в рабочую программу. Процесс сборки автоматизирован, и от
пользователя может потребоваться только указать пути к компиляторам.
Сегодня многие продукты способны выполнять процесс сборки под разные
платформы. К таковым относят Windows, Linux, MacOS, Android и другие. В
таких случаях принято считать, что приложение является кроссплатформенным.
Поэтому требуется определенное количество времени для окончательного выбора
инструмента
Для начала нужно определиться с тем, каким требованиям должен
удовлетворять данный инструмент. В случае, если у разработчика не было опыта
работы с продуктом, то необходимо наличие материалов, способных объяснить
основной функционал. И если существуют специальные возможности, доступные
41
только для данной среды разработки, потребуется документация, где подробно
изложена основная информация, которая потребуется в дальнейшем.
В ходе разработки не исключена ситуация, когда продукт следует
адаптировать
для
другой
платформы.
Это
позволит
расширить
рынок
охватываемых пользователей.
Также, при добавлении нового функционала, у разработчика не должно
возникать сложностей с добавлением новых компонентов для разрабатываемого
проекта. Таковыми могут быть как библиотеки, так и самостоятельные проекты,
которые требуется использовать как часть в рамках одного большого проекта.
В качестве основной среды разработки рассматриваются следующие
продукты:
- Android studio;
- Visual studio;
- Qt Creator;
- IntelliJ IDEA.
Android studio представляет собой среду разработки, ориентированную на
разработку приложений для устройств, находящихся под управлением ОС
Android. К таковым сегодня относятся смартфоны, умные часы, некоторые
модели телевизоров.
В качестве основного языка программирования является Java, однако
имеется возможность создавать проект, используя язык C++ или Kotlin.
Последний будет предпочтителен в той ситуации, когда требуется поддержка
модулей, которые были написаны на Java.
42
Рисунок 25 – Пример запуска Android studio
Рисунок 26 – Окно разработки интерфейса
Visual Studio — среда разработки, разработанная
компанией Microsoft.
Данный продукт позволяют создавать консольные приложения, приложения с
графическим интерфейсом, веб-сайты, веб - приложения. Также поддерживается
сборка проектов для мобильных устройств на Android и Windows Phone. На
практике, возникают трудности при попытке собрать проект для мобильных
устройств.
43
Visual Studio включает в себя редактор кода и возможность исправления
его от ошибок. Имеется встроенный отладчик , который способен работать как
отладчик уровня исходного кода, так и отладчик машинного уровня.
Остальные инструменты содержат в себе редактор форм для более простого
процесса создания графического интерфейса приложения, веб-редактор, дизайнер
классов и дизайнер схем базы данных. В Visual Studio возможно создание и
подключение сторонние дополнения для расширения функциональности.
Рисунок 27 - Пример работы Visual studio
Qt Creator является кроссплатформенный средой для разработки на С, С++
и QML. Разработана для работы с фреймворком Qt. Содержит графический
интерфейс отладчика и визуальные средства разработки интерфейса как с
использованием QtWidgets, так и QML.
В последнее время разработчики активно дополняют новым функционалом
язык QML. Это декларативный язык программирования, используемый в Qt
Creator
для
проектирования
графического
пользовательского
интерфейса.
Особенность заключается в том, что с помощью данного языка проектируются
интерфейсы для самых разных устройств, в том числе и мобильных.
Во время установки Qt Creator, предоставляется возможность выбрать
компоненты, необходимые для решения поставленной задачи. По мере
44
необходимости возможна установка дополнительных компонентов и удаление
невостребованных
.
Рисунок 28 – Пример работы Qt Creator
Рисунок 29 – Работа окна разработки интерфейса
Среда разработки IntelliJ IDEA была разработана компанией JetBrains. С
помощью данного продукта разработчик может создавать проекты с помощью
таких языков, как Java, Kotlin, C++. Также, присутствует возможность создавать
45
проекты под различные платформы. Таковыми являются Windows, Android и
другие.
Наличие
данных
особенностей
позволяет
заниматься
созданием
приложений для стационарных компьютеров, мобильных устройств, веб
платформ.
Продукт поддерживает систему контроля версий git. Это позволит
разработчику:
- Работать над проектом вне зависимости от того, в каком месте он
находится в данный момент времени. Достаточно иметь на рабочем устройстве
копию репозитория проекта;
- дополнять проект экспериментальным функционалом, не беспокоясь о
работоспособности основного продукта;
- Ускорить процесс разработки. Происходит разбиение всего проекта на
проекты меньшего размера. В дальнейшем каждой получившейся частью
занимается отдельный человек или группа людей. Когда все части проекта
готовы, станет возможным соединить результаты работы каждой из группы в
единое целое.
Вышеперечисленные достоинства дают понять, что наличие системы
контроля версий в IntelliJ IDEA позволит сделать процесс. Но при дальнейшем
рассмотрении среды разработки обнаруживается, что продукт будет удобным
инструментом для опытных разработчиков, чем для тех, кто только начинает
осваивать сферу разработки программного обеспечения.
46
Рисунок 30 – Окно разработки интерфейса
Рисунок 31 – Пример работы IntelliJ IDEA
После того, как были рассмотрены предполагаемые среды разработки,
требуется
выбрать такую программную систему, которая
требуемым критериям, которые представлены в таблице 2
удовлетворяет
47
Таблица 2 – Сравнение особенностей сред разработки
Среда разработки Android
studio
Visual
Qt Creator
studio
IntelliJ
IDEA
Особенности
Кроссплатформенность -
-
+
+
Наличие документации -
+
+
-
Возможность
подключения
сторонних
компонентов
+
+
+
+
По полученным данным можно судить о том, что каждый из продуктов
имеет ряд плюсов и минусов, что дает возможность сделать более осознанный
выбор.
Так Android studio является продуктом, ориентированным на разработку
именно мобильных приложений. В нем есть удобные инструменты для
проектирования программных продуктов, но выбор языка программирования для
разработки продукта в данной среде останавливается на Java. Несмотря на то, что
этот язык сильно поддерживается сообществом и является одним из самых
востребованных в сфере разработки, не исключены ситуации, когда проекты,
написанные на Java, начинают потреблять больше ресурсов, чем требуется для
нормальной работы приложения.
Vusial studio, несмотря на удобные инструменты для создания программ, до
сих пор остается ориентированным на создание приложений для собственной
платформы, а именно Windows. Microsoft предпринимала попытки освоить рынок
мобильных устройств при помощи ОС Windows Phone, но в скором времени
компания прекратила поддержку платформы.
Qt Creator можно назвать универсальной средой среди представленных
продуктов. Особенностями продукта являются:
48
- наличие документации и руководств для начинающих разработчиков;
- возможность создавать проекты, используя языки С++, Python;
- возможность сборки проекта для разных платформ.
Было принято решение взять Qt Creator в качестве основной среды
разработки мобильного приложения, так как данный продукт удовлетворяет всем
вышеописанным критериям.
4.3 Результат
На рисунках 32-33 показан интерфейс мобильного приложения.
Рисунок 32 – Главное меню программы
49
По нажатию на кнопку Камера, произойдет вызов соответствующего
экрана, после чего главное меню станет невидимым, и на экране будет доступно
новое окно.
При нажатии на кнопку Выход, произойдет завершение работы программы.
Рисунок 33 – Окно модуля Фотография
По нажатию на кнопку Фотография, будет выполнен вызов нового окна, в
котором будут доступны следующие команды: Назад, Загрузить, Найти.
Кнопка Назад позволяет вернуться пользователю в главное меню, что
позволит перейти в другой режим.
Кнопка Загрузить предоставляет возможность загрузить фотографию
звездного неба для дальнейшего поиска объектов.
Кнопка
Искать
производит
пользователем изображении.
поиск
созвездий
на
предоставленном
50
ЗАКЛЮЧЕНИЕ
Во время выполнения выпускной квалификационной работы была изучена
и проанализирована область распознавания созвездий на ночном небе. Был
проведен анализ аналогов и построены таблицы, в которых производилось
сравнение. Были найдены наиболее приемлемые средства разработки. Были
выявлены функциональные требования к разрабатываемой системе.
В ходе проектирования мобильного приложения, были построены:
диаграмма вариантов использования, диаграмма классов, диаграмма состояний,
транзитивная сеть
Был разработан и описан алгоритм, который позволяет распознавать
созвездия.
51
ИСПОЛЬЗУЕМАЯ ЛИТЕРАТУРА
1. Фаулер, М. UML Основы [Текст] / М. Фаулер. – СПб: Символ- Плюс, 2005. –
184 с. - ISBN: 5-93286-060-X.
2. Дэрси, Л. Android за 24 часа. Программирование приложений под
операционную систему Google [Текст] / Лорен Дэрси, Шейн Кондер.
Издательство: Рид Групп, 2011 – 464 с. - ISBN: 978-5-4252-0318-2.
3. Дейтел, П. Android для разработчиков [Текст] / П. Дейтел , Х. Дейтел, Э.
Дейтел, М. Моргано. Издательство: Питер, 2015 – 384 с. - ISBN: 978-5-496- 015172, 978-0133570922.
4. Мандел, Т. Разработка пользовательского интерфейса: практическое пособие /
Т. Мандел. Издательство: ДМК Пресс, 2008. – 412 с. - ISBN: 5-94074- 069-3.
5. Харди, Б. Android. Программирование для профессионалов. 2-е изд. [Текст] / Б.
Филлипс, К. Стюарт, К. Марсикано. Издательство: Питер, 2016. – 640 с. - ISBN:
978-5-496-02051-0.
6. Вирт Н. Алгоритмы и структуры данных. - М.: Мир, 1989.
7. Душин В.К.: Теоритические основы информационных процессов и систем. - М.:
Дашков и К, 2010.
8. Мандел, Т. Разработка пользовательского интерфейса: практическое пособие /
Т. Мандел. Издательство: ДМК Пресс, 2008. – 412 с. - ISBN: 5-94074- 069-3. 64 10.
9. Блог разработчика Android [Электронный ресурс]. – Режим доступа:
http://androidengineer.ru/ (Дата обращения 20.05.18).
10.
iOS
–
Apple
[Электронный
ресурс].
http://www.apple.com/ru/ios/ (Дата обращения: 26.05.2018).
–
Режим
доступа:
52
ПРИЛОЖЕНИЕ А
(обязательное)
ЛИСТИНГ ПРОГРАММЫ
#include "sky.h"
#include "opencv2/features2d/features2d.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/core/core.hpp"
#include <QDebug>
#include <QDataStream>
#include <vector>
Sky::Sky()
{
}
void Sky::setImage(const cv::Mat &path)
{
m_image = path;
}
cv::Mat Sky::getImage()
{
return m_image;
}
53
void Sky::search_point())
{
Ptr<Feature2D>
surf = crea
points_list.clear();
int count = 0;
Ptr<Feature2D>
surf = Algorithm::create<Feature2D>("Feature2D.SURF");
vector<KeyPoint> keypoints1, keypoints2;
Mat descriptors1, descriptors2;
surf.operator ->()(image,Mat(),keypoints1,descriptors1);
for(int i = 0; i < image.cols - 1;i++)
{
for (int j = 0; j < image.rows;j++)
{
qDebug() << i << " "<< j ;
// qDebug() <<" Color " << cv::;
if(image.at<uint8_t>(i,j) <40)
{
//image.dot();
qDebug() << image.at<uint8_t>(i,j);
count ++;
if(count > 1)
{
points_list.append(cv::Point2f(i,j));
54
qDebug() << points_list.last().x << " "<<points_list.last().y;
count = 0;
}
for(int i = 0; i < points_list.count() - 2; i++)
{
//cv::line(image,points_list[i],points_list[i+1],Scalar(0,0,0));
}
// (x - x1)/(x1 - x2) = (y -y1)/(y1 - y2)
}
}
//qDebug() << "counter " << count;
}
qDebug() << count;
qDebug() << "count elements " << points_list.count();
//show_list(points_list);*/
inline float Sky::getSrednValueX(const Point2f a, const Point2f b)
{
return (a.x + b.x) / 2;
}
inline float Sky::getSrednValueY(const Point2f a, const Point2f b)
{
return (a.y + b.y) / 2;
}
inline float Sky::inLineX(const Point2f a, const Point2f b)
55
{
return (getSrednValueX(a,b) - a.x) / (a.x - b.x);
}
inline float Sky::inLineY(const Point2f a, const Point2f b)
{
return(getSrednValueY(a,b) - a.y) / (a.y - b.y);
}
inline float Sky::retKoef(const Point2f a, const Point2f b)
{
float g = inLineX(a,b);
float h = inLineY(a,b);
return (g == h) ? g : 0;
}
bool Sky::isLine(const Point2f a,const Point2f b)
{
if (inLineX(a,b) == inLineY(a,b))
return true;
else return false;
}
void Sky::search_lines()
{
}
void Sky::show_list()
{
56
for(auto &b:points_list)
{
qDebug() << m_image.at<uint8_t>(b);
}
}
Модуль главного меню
import QtQuick 2.9
import QtQuick.Window 2.2
import Qt3D.Input 2.1
import QtQuick.Controls 2.2
import QtQuick.Layouts 1.3
Window {
id: window
visible: true
width: 640
height: 480
color: "#00000000"
title: qsTr("Hello World")
Image {
id: image
anchors.fill: parent
source: "photo.jpg"
}
Frame {
id: frame
57
anchors.fill: parent
Button {
id: button
x: 40
y: 122
text: qsTr("Фотография")
anchors.right: parent.right
anchors.rightMargin: 40
anchors.left: parent.left
anchors.leftMargin: 40
onClicked: { }
}
Button {
id: button2
x: 40
y: 66
height: 40
text: qsTr("Камера")
anchors.left: parent.left
anchors.leftMargin: 40
anchors.right: parent.right
anchors.rightMargin: 40
}
Button {
id: button1
58
x: 40
y: 395
text: qsTr("Выход")
anchors.right: parent.right
anchors.rightMargin: 40
anchors.left: parent.left
anchors.leftMargin: 40
}
Form2
{
id:item3
visible: false
}
Connections
{
target:button
onClicked: {window.hide();item3.show();}
}
Connections
{
target:button1
onClicked:window.close()
}
}
}
60
ИНФОРМАЦИОННО-ПОИСКОВАЯ ХАРАКТЕРИСТИКА
ДОКУМЕНТА НА ЭЛЕКТРОННОМ НОСИТЕЛЕ
Наименование
группы атрибутов
атрибута
1. Описание
Обозначение документа
документа
(идентификатор(ы)
файла(ов))
Наименование документа
Характеристики документа на
электронном носителе
\Плакаты\Презентация.pptx
Демонстрационные плакаты к
выпускной
квалификационной работе
Класс документа
ЕСКД
Вид документа
Оригинал документа на
электронном носителе
Аннотация
Демонстрационный материал,
отображающий основные
этапы выполнения выпускной
квалификационной работы
Использование документа Операционная система
Windows 7, Microsoft
PowerPoint 2010
2. Даты и время
Дата и время копирования 13.06.2018
документа
Дата создания документа 29.05.2018
Дата утверждения
06.06.2018
документа
3. Создатели
Автор
Бухвостов В.О.
Изготовитель
Бухвостов В.О.
4. Внешние ссылки Ссылки на другие
Удостоверяющий лист
документы
№ 140036
5. Защита
Санкционирование
ОГУ имени И.С. Тургенева
Классификация защиты
По законодательству РФ
6. Характеристики Объем информации
361374 Б
содержания
документа
61
7. Структура
документа(ов)
Наименование плаката
(слайда) №1
Наименование плаката
(слайда) №2
Наименование плаката
(слайда) №3
Наименование плаката
(слайда) №4
Наименование плаката
(слайда) №5
Наименование плаката
(слайда) №6
Наименование плаката
(слайда) №7
Титульный лист
Наименование плаката
(слайда) №8
Алгоритм поиска созвездий
Наименование плаката
(слайда) №9
Выбор средств разработки
Наименование плаката
(слайда) №10
Пример работы программы
Цели и задачи
Функциональные требования
Аналоги
Диаграмма вариантов
использования
Диаграмма классов
Транзитивная сеть
1/--страниц
Пожаловаться на содержимое документа