Разработка программных приложений реферат

Обновлено: 05.07.2024

Разработка программного приложения для решения информационно-логических задач ( реферат , курсовая , диплом , контрольная )

Министерство образования и науки Российской Федерации Федеральное агентство по образованию Государственное образовательное учреждение высшего профессионального образования Северо-Кавказский государственный технический университет"

Факультет Инженерно-экономический Кафедра Информационных систем, электропривода и автоматики Специальность 230 201.65 — Информационные системы и технологии ПОЯСНИТЕЛЬНАЯ ЗАПИСКА к курсовому проекту по технологии программирования на тему Разработка программного приложения для решения информационно-логических задач Автор проекта Бардиловский Р.С.

Руководитель проекта Д. В. Болдырев Невинномысск, 2011

  • Аннотация
  • Введение
  • 1. Разработка технического задания на проектирование
    • 1.1 Общая постановка задачи
    • 1.2 Определение требований к программе
    • 1.3 Предварительный выбор метода решения задачи
    • 1.4 Определение требований к системе
      • 1.4.1 Требования к системе в целом
      • 1.4.2 Требования к техническому обеспечению
      • 1.4.3 Требования к программному обеспечению
      • 2.1 Разработка технологии обработки информации
      • 2.2 Разработка структуры и формы представления данных
      • 2.3 Разработка алгоритма решения задачи
      • 2.4 Разработка программы решения задачи
        • 2.4.1 Выбор инструментальных средств
        • 2.4.2 Разработка структуры программы
        • 2.4.3 Проектирование программных модулей
        • 2.4.4 Проектирование программного интерфейса
        • 2.4.5 Обеспечение надежности программы
        • 2.6.1 Общие сведения
        • 2.6.2 Процесс тестирования программы
        • 2.6.3 Оценка надежности программы

        Список использованных источников

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

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

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

        1. Разработка технического задания на проектирование

        1.1 Общая постановка задачи

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

        ­ синтаксический анализ простой программы на языке С;

        ­ форматирование текста программы на языке С.

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

        1.2 Определение требований к программе

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

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

        Требования к надежности:

        Необходимо предусмотреть блокировку некорректных действий пользователей при работе с системой.

        Требования к информационной и программной совместимости Система должна работать под управлением операционной среды Windows'95 и выше

        1.3 Предварительный выбор метода решения задачи

        Для решения задачи синтаксического анализа был выбран метод Бэкуса-Наура

        1.4 Определение требований к системе

        1.4.1 Требования к системе в целом

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

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

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

        Система не должна предъявлять специальных требований к эксплуатации и обслуживанию.

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

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

        1.4.2 Требования к техническому обеспечению

        Требования к техническому обеспечению определяются требованиями к программному обеспечению.

        1.4.3 Требования к программному обеспечению

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

        Для решения задачи будет использоваться Microsoft Visual Studio 2008. Для ее функционирования необходима операционная система не ниже Microsoft Windows XP.

        При создании информационной системы главным критерием выбора программных средств разработки должны являться:

        — скорость выполнения программы менее 1 секунды;

        — возможность быстрого внесения изменений в программу;

        — время создания разработанного программного обеспечения должно укладываться в график работы над проектом;

        — наличие опыта разработки с использованием данного программного продукта;

        2. Проектирование программного приложения

        2.1 Разработка технологии обработки информации

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

        — получение первичной информации;

        — обработка первичной информации с целью получения результатной информации;

        — выдача варианта решения.

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

        Структурная схема технологического процесса обработки информации показана на рисунке 1.

        Рисунок 1 — Технологический процесс обработки информации

        2.2 Разработка структуры и формы представления данных

        Основной единицей входной информации является простая программа, состоящая из следующих атрибутов:

        ­ Объявление переменных;

        ­ Функции ввода и вывода.

        Все приведенные атрибуты по смыслу должны быть строковыми переменными.

        Для представления входных данных предлагается использовать список. Его описание приведено ниже.

        static public List arrText = new List ();

        Для представления входной информации используется глобальная переменная arrText. Ее характеристики приведены в таблице 1 [18, "https://referat.bookap.info"].

        Список, содержащий простую программу

        Выходные информационные объекты

        Список, содержащий отформатированную простую программу

        2.3 Разработка алгоритма решения задачи

        Алгоритм главной программы Main () представлен на рисунке 2. После объявления глобальных переменных, программа начинает выполнять главную функцию Main (), в которой происходит открытие файла, запись информации из файла построчно в список, закрытие файла и вызов необходимых функции.

        На рисунке 2 представлен алгоритм функции RemoveSpace (), которая убирает пробелы из текста. Так же он добавляет пробелы после основных операторов, а именно float, while, do, if, else. Для того, чтобы удалить все пробелы необходимо определить, есть ли они в данной строке. Организуется цикл, который перебирает все строки в списке. Далее проверяется условие наличия пробелов в строке, пока они присутствуют, будет повторяться цикл while. После обнаружения пробела в строке он заменяется отсутствием пробела. Для того, чтобы добавить пробел после операторов, необходимо определить, есть ли данное вхождение символов в данную строку. Если она обнаруживается, то заменяется на оператор с пробелом.

        На рисунке 3 представлен алгоритм функции Split_String (). Функция выполняет разделение фигурных скобок таким образом, чтобы каждая скобка была на отдельной строке. Так как предполагается, что исходная программа простая, то разделение будет происходить из расчета, что на строке не больше одной скобки. Для разделения открывающихся фигурных скобок организуется цикл до конца списка. Производится проверка, если в строке оказывается открывающаяся фигурная скобка, то происходит деление строки на части, каждая часть записывается в свои элемент массива. Разделителем является <. После разделения исходная строка удаляется. Производится проверка, если первая часть содержит элементы, то они записываются в данную строку, и увеличивается индекс строки. В следующую строку записывается <. Далее так же производится проверка второй части и ее запись в случае существования. Для закрывающейся скобки и; производятся аналогичные действия.

        На рисунке 4 представлен алгоритм функции Format_Text (), которая выполняет форматирование текста. организуется цикл до конца списка. При обнаружении знака «

        На рисунке 5 представлен алгоритм функции Bracket (). Функция анализирует правильность расстановки скобок в главной программе. Организуется цикл до конца списка. Проверяется каждая строка на наличие скобок, при обнаружении открывающейся скобки переменная, соответствующая данному виду скобок увеличивается на 1, при обнаружении закрывающейся — уменьшается на 1. Далее производится сравнение переменных с 0, и если какое-либо условие не выполняется, то выдается ошибка.

        На рисунке 6 представлен алгоритм функции Del (). Данная функция выполняет удаление одного из двух одинаковых операторов. Организуется цикл до конца списка. Производится сравнение, если на двух соседних строках обнаруживается операции присваивания, то далее производится сравнение левых частей. При выполнении условии, первая операция удаляется из списка.

        Рисунок 1 — Алгоритм главной функции Рисунок 2 — Алгоритм функции RemoveSpace ()

        синтаксический программа модуль интерфейс Рисунок 3 — Алгоритм функции Split_String ()

        Рисунок 4 — Алгоритм функции Format_Text ()

        Рисунок 5 — Алгоритм функции Bracket ()

        Рисунок 6 — Алгоритм функции Del ()

        Рисунок 7 — Алгоритм функции Operator ()

        2.4 Разработка программы решения задачи

        2.4.1 Выбор инструментальных средств

        2.4.2 Разработка структуры программы

        Структура программного комплекса представлена на рисунке 8. Она включает в себя следующие компоненты:

        ­ загрузка текста простой программы из файла;

        ­ синтаксический анализ текста простой программы;

        ­ вывод результата Рисунок 8 — Структура программного комплекса

        2.4.3 Проектирование программных модулей

        Программа состоит из следующих подпрограмм:

        — Main () — главная программа;

        — RemoveSpace () — удаление пробелов из текста программы;

        — Split_String () -разделение фигурных скобок;

        — Format_Text () — форматирование текста простой программы;

        — Bracket () — проверка правильности расстановки скобок;

        — Del () — удаление одного из рядом стоящих одинаковых операторов;

        — Operator () — проверка правильности операторов if, else, do, while;

        — IsExpr () — проверка правильности введенного выражения;

        — IsOper () — проверка правильности знаков операций;

        — IsAdd () — проверка правильности слагаемых;

        — IsMul () — проверка правильности произведений;

        — IsID () — проверка правильности идентификаторов;

        — IsConst () — проверка правильности констант;

        — IsAlpha () — проверка правильности буквенных выражений;

        — IsDigit () — проверка правильности цифр;

        2.4.4 Проектирование программного интерфейса

        Сценарии диалога с пользователем организован с помощью вывода на экран результата. Экран вывода представлен на рисунке 9

        2.4.5 Обеспечение надежности программы

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

        Рисунок 9 — Экран вывода результатов

        2.5 Определение конфигурации технических средств

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

        Гост

        ГОСТ

        Программное приложение – это программа, предназначенная для выполнения определённых задач и рассчитанная на непосредственное взаимодействие с пользователем.

        Введение

        За не очень большой период развития методик написания программ произошло много впечатляющих событий. В их число можно с уверенностью включить разработку программной среды Borland Delphi. Реализация Delphi была обусловлена следующими аспектами в сфере инструментов разработки программных продуктов:

        1. Одним из главных направлений был объектно-ориентированный метод, отлично организующий структуру самой решаемой проблемы и её разрешение в формате прикладного программного приложения.
        2. Визуализированные методы ускоренного проектирования приложений, то есть RAD (Rapid Application Development), которые базируются компьютерной организации.
        3. Ещё одним актуальным направлением было применение компиляторов, а не интерпретаторов. Этот аспект обусловлен тем, что параметры быстродействия программных продуктов, которые формируются путём компиляции, во много раз превышают такие же характеристики у интерпретируемых приложений.
        4. Обеспечение возможности использовать информационные базы данных при помощи универсальных методов.

        Borland Delphi проектировался как программная среда, способная воплотить в жизнь все вышеизложенные направления.

        Визуальное программирование

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

        Готовые работы на аналогичную тему

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

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

        Интерфейс пользователя комплектуется наглядными и организованными естественным образом методами отображения объектов и средствами, обеспечивающими управление ими. Базовые правила визуального интерфейса пользователя, который называется интерфейсом WIMP, были представлены и включены в такие операционные системы, как Apple Mackintosh и Didital Research Graphics Environment Manager (GEM). Аббревиатура WIMP расшифровывается как Windows Icons Mouse Pop-up, что следует понимать так:

        1. Отображение информации на мониторе для пользователя выполняется на нескольких окнах (Windows).
        2. Обрабатываемые системой объекты, представлены в форме пиктограмм или икон (Icons).
        3. Выбор объекта осуществляется указателем мыши (Mouse).
        4. Самым важным типом взаимодействия считается меню, которое всплывает в автоматическом режиме на дисплее (Pop-up) или выпадает из строчки меню.

        Объектно-ориентированное программирование

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

        Основным понятием объектно-ориентированного программирования считается объект, которое объединяет внутри себя и информационные данные, и их обработку. Понятие объекта по некоторым аспектам аналогично записи (record), но при этом имеет в своём составе помимо полей данных, ещё и подпрограммы, выполняющие их обработку, которые называются методами. То есть, в объекте заключены и его свойства, и его поведение. В состав объекта входят следующие части:

        1. Наименование.
        2. Параметры состояния (атрибуты, структурная организация объекта).
        3. Набор методов (операции, процедуры над объектами).

        Классом или объектным типом является некая абстракция. Фактические объекты (их экземпляры) считаются конкретными классными представителями. Как правило, классы формируют определённую иерархическую структуру, и по этой причине главным свойством (организационным принципом) классов может считаться наследование.


        Сегодня многие сетевые или поддерживающие сеть устройства работают на том или ином варианте ядра Linux. Это солидная платформа: недорогая в развертывании и поддержке и хорошо принимаемая благодаря удобному подходу к развертыванию. Пользовательский интерфейс таких устройств зачастую основан на htm и может просматриваться с помощью браузера для РС или Mac. Android – открытая операционная система для мобильных телефонов, смартфонов, коммуникаторов, планшетных компьютеров, электронных книг, цифровых проигрывателей, наручных часов, нетбуков и смартбуков, основанная на ядре Linux и поддерживающая различные аппаратные платформы, такие как ARM, MIPS, POWER, x86. Android, молодая и еще не утвердившаяся платформа, способна проявить себя. По широте возможностей платформа Android не уступает операционным системам настольных ПК. Это многоуровневая среда на основе ядра Linux с богатыми функциональными возможностями [3,4,5].

        Android обладает широким спектром возможностей подключения, охватывающим Wi-Fi, Bluetooth и протоколы передачи данных через сотовую сеть (GPRS, EDGE, 3G и др.). Популярным приемом в приложениях для Android является ссылка на Google Maps для отображения адреса непосредственно в приложении. В стек программного обеспечения Android входит и поддержка сервисов, основанных на определении местоположения (например, GPS), и акселерометров, хотя не все устройства на этой платформе оснащены необходимым оборудованием [16].

        1. Актуальность темы

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

        1. нейронные сети для NPC.
        2. современные графические среды разработки.
        3. современные протоколы связи клиент-сервер.
        4. современные технологии передачи данных в различных форматах.
        5. использовать современные методы отладки и настройки приложений.
        6. использовать системы контроля версий.

        2. Цель и задачи исследования, планируемые результаты

        1. Анализ существующих средств реализации графических кроссплатформенных приложений для мобильных систем.
        2. Оценка современных способов создания мобильных игровых приложений.
        3. Поиск и выявление возможных проблем реализации мобильных игровых приложений.
        4. Исследование популярных библиотек по созданию игровых приложений, сетевой обработки и пр.
        5. Разработка приложения и оценка его эффективности.
        1. Изучение современных инструментов для создания приложений под мобильные платформы.
        2. Изучение различных методологоий разработки программного обеспечения.
        3. Обзор существующих проблем создания мультиплатформенных приложений.

        3. Обзор исследований и разработок

        Посольку разработка приложений под мобильные платформы в современном мире очень актуальная тема, существует множество различных средств реализации подобных задач. Так как в рамках магистерской работы основная часть ресурсов планируется под разработку именно Android приложений, то большинство рассматриваемых средсв реализации будет рассмотренно именно с возможности реализации приложения в данной операционной системы [18].

        3.1 Операционная система Android.

        Тенденции развития мобильного ПО относительно всего рынка IT. Кадров 8, циклов 12, размер 345кб

        3.2 Обзор средств реализации под нативную (android) платформу

        NetBeans IDE — свободная интегрированная среда разработки приложений (IDE) на языках программирования java, Python, PHP, JavaScript, C, C++ и ряда других. Проект NetBeans IDE поддерживается и спонсируется компанией Oracle, однако разработка NetBeans ведется независимым сообществом разработчиков — энтузиастов (NetBeans Community) и компанией NetBeans Org. По качеству и возможностям последние версии NetBeans IDE не уступают лучшим коммперческим (платным) интегрированным средам разработки для языка java, такими как Intellij IDEA, поддерживая рефакторинг, профилирование, выделение синтаксических конструкций цветом, автодополнение набираемых конструкций на лету, множество предопределенных шаблонов кода. Для разработки программ в среде NetBeans и для успешной инсталяции и работы самой среды NetBeans должен быть предварительно установлен Sun JDK или J2EE SDK подходящей версии. Среда разработки NetBeans по умолчанию поддерживала разрабокту для платформ J2SE и J2EE. Начиная с версии 6.0 NetBeans поддерживает разработку для мобильных платформ без установки дополнительных компонентов. В версии NetBeans IDE 6.1 декларируется поддержка UML, SOA, языка программирования Ruby (включая поддержку Ruby on Rails), а также средства для создания приложений на J2ME для мобильных телефонов. В версии 6.5 добавлена поддержка языка PHP. Также для тестирования выложен модуль поддержки Python [2].

        1. Ядро платформы (загрузка Eclipse, запуск модулей);
        2. OSGi (стандартная среда поставки комплектов (англ. bundles));
        3. SWT (портируемый инструментарий виджетов);
        4. JFace (файловые буферы, работа с текстом, текстовые редакторы);
        5. Рабочая среда Eclipse (панели, редакторы, проекции, мастеры).

        GUI в Eclipse написан с использованием инструментария SWT. Последний, в отличие от Swing (который самостоятельно эмулирует графические элементы управления), использует графические компоненты данной операционной системы. Пользовательский интерфейс Eclipse также зависит от промежуточного слоя GUI, называемого JFace, который упрощает построение пользовательского интерфейса, базирующегося на SWT. Гибкость Eclipse обеспечивается за счёт подключаемых модулей, благодаря чему возможна разработка не только на Java, но и на других языках, таких, как C,C++, Perl, Groovy, Ruby, Python, PHP, Erlang, Компонентного Паскаля, Zonnon, и прочих. Android Studio — интегрированная среда разработки (IDE) для работы с платформой Android, анонсированная 16 мая 2013 года на конференции Google I/0. IDE находилась в свободном доступе начиная с версии 0.1, опубликованной в мае 2013, а затем перешла в стадию бета-тестирования, начиная с версии 0.8, которая была выпущена в июне 2014 года. Первая стабильная версия была выпущена в декабре 2014 года. IDE основана на программном обеспечении Intellij IDEA от компании JetBrains. InteliJ IDEA — коммерческая интегрированная среда разработки программного обеспечения на многих языках программирования, в частности на Java, JavaScript, Python, CoffeeScript, htm/Xhtm/HAML, CSS/SASS/LESS, XML/XSL/Xpath, YAML, ActionScript, Ruby, Groovy, Scala, SQL, PHP, Kotlin, Clojure, C/C++, разработанная компанией JetBrains. Рассмотрев все возможные средства разработки для разработки дипломного проекта было решено выбрать среду разработки Eclipse с плагином ADT для программирования под Android. В качестве графической библиотеки было решено выбрать бесплатную библиотеку для 2D сцен AndEngine.

        3.3 Обзор различных кроссплатформенных IDE

        Unity 3D - это инструмент для разработки двух- и трехмерных приложений и игр, работающий под операционными системами Windows и OS X. Созданные с помощью Unity приложения работают под операционными системами Windows, OS X, Windows Phone, Android, Apple iOS, Linux, а также на игровых приставках Wii, PlayStation 3, PlayStation 4, Xbox 360, Xbox One. Есть возможность создавать приложения для запуска в браузерах с помощью специально подключаемого модуля Unity Web Player, а также с помощью реализации технологии WebGL. Приложения, созданные с помощью Unity, поддерживают DirectX, OpenGL. Активно движок используется как крупными разработчиками, так и разработчиками Indie-игр. В силу наличия бесплатной версии, удобного интерфейса и простоты работы с движком.

        1. Box collider (физическая модель образует куб, в который попадает вся модель объекта);
        2. Character controller — вид физической модели, созданный специально под использование его для игровых персонажей;
        3. Sphere collider (физическая модель образует сферу, в которую попадает вся модель объекта);
        4. Capsole collider (физическая модель образует капсулу, в которую попадает модель объекта. В отличие от предыдущего типа размеры можно менять и по одной, и по трём осям сразу);
        5. Wheel collider (физическая модель колеса);
        6. Terrain collider — тип физической модели, созданный специально для использования на объекте типа Terrain — земля, генерируемая редактором Unity с возможностями скульптинга и окрашивания местности.
        1. Система частиц;
        2. Камера;
        3. GUI текст;
        4. GUI текстура;
        5. 3D текст;
        6. Направленный свет;
        7. Освещение территории;
        8. Источник света, имитирующий солнце;
        9. Стандартные примитивы;
        10. Деревья;
        11. Terrain (земля).
        1. .3ds, .max, .obj, .fbx, .dae, .ma, .mb для трёхмерных моделей;
        2. .mp3, .wmv, .ogg для звуковых файлов;
        3. .bmp, .jpg, .jpg, .tga, .psd, .tif, .dds для изображений;
        4. .mov, .ovg для видеофайлов.

        Модели, звуки, текстуры, материалы, скрипты можно запаковывать в формат .unityassets и передавать другим разработчикам, или выкладывать в свободный доступ. Этот же формат используется во внутреннем магазине Unity Asset Store, в котором разработчики могут бесплатно и за деньги выкладывать в общий доступ различные элементы, нужные при создании игр. Чтобы использовать Unity Asset Store, необходимо иметь аккаунт разработчика Unity. Unity имеет все нужные компоненты для создания мультиплеера. Также можно использовать подходящий пользователю способ контроля версий. К примеру, Tortoise SVN или Source Gear.

        CryEngine 3 — игровой движок, разработанный немецкой компанией с ограниченной ответственностью Crytek и являющийся преемником движка CryEngine 2. CryEngine 3 изначально является крассплатформенными движком — он изначально ориентирован на IBM PC — совместимые компьютеры и игровые консоли Microsoft Xbox 360 и Sony PlayStation 3, а также на их последующие версии. Кроме того, движок ориентирован на разработку массовых многопользовательских онлайновых игр (англ. Massively Multiplayer Online Game — MMOG). Движок CryEngine 3 является полностью коммерческим, но есть и Free SDK версия.

        CryEngine 3 официально анонсирован 11 марта 2009 года, 14 октября 2009 года состоялся официальный релиз дижка. CryEngine 3 является кроссплатформенным движком, он поддерживает IBM PC-совместимые компьютеры и игровые консоли Microsoft Xbox 3660 и SonyPlaystation 3.

        1. Binary — предоставляет полный API CryEngine 3, который взаимодействует со всеми модулями, в откомпилированном бинарном виде.
        2. Source — предоставляет полный исходный код CryEngine 3 и даёт возможность переработки или расширения любых модулей движка.
        1. Binary — предоставляет полный API CryEngine 3, который взаимодействует со всеми модулями, в откомпилированном бинарном виде.
        2. Source — предоставляет полный исходный код CryEngine 3 и даёт возможность переработки или расширения любых модулей движка.

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

        Unreal Engine — игровой движок, разрабатываемый и поддерживаемый компанией Epic Games. Написанный на языке C++, движок позволяет создавать игры для большинства операционных систем и платформ: Microsoft Windows, Linux, Mac OS и Mac OS X; консолей Xbox, Xbox 360, PlayStation 2, PlayStation 3, PSP, PS Vita, Wii, Dreamcast, GameCube и др., а также на различных портативных устройствах, например, устройствах Apple (iPad, iPhone), управляемых системой iOS и прочих. (Впервые работа с iOS была представлена в 2009 году[5], в 2010 году продемонстрирована работа движка на устройстве с системой webOS[6]).

        Для упрощения портирования движок использует модульную систему зависимых компонентов; поддерживает различные системы рендеринга (Direct3D, OpenGL, Pixomatic; в ранних версиях: Glide, S3, PowerVR), воспроизведения звука (EAX, OpenAL, DirectSound3D; ранее: A3D), средства голосового воспроизведения текста, распознавание речи[7][8][9]), модули для работы с сетью и поддержки различных устройств ввода. Для игры по сети поддерживаются технологии Windows Live, Xbox Live, GameSpy и прочие, включая до 64 игроков (клиентов) одновременно.

        4. Обзор существующих аналогов

        1. возможность однопользовательской игры;
        2. наличие многоуровневой системы игры;
        3. наличие хорошо спланированной экономической модели в игре;
        4. различные внутри игровые награды и достижения.

        5. Обоснование необходимости совершенствования приложения

        Большинство существующих приложений, на текущий момент, имеют возможность многопользовательского режима игры и различных многопользовательских дополнений, таких как совместная таблица рекордов, совместная игра и т. д. Так же подавляющее большинство имеют возможность или кроссплатформенного или же поддержки своего приложения на различных платформах (таких как IOS, Symbian, BlackBerry, веб-интерфейс и других.). Кроссплатформенность позволяет привлечь большую аудиторию, увеличивает шанс продвижения своего продукта на рынке приложений.

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

        1. Теоретическая часть

        1.1 Обзор мобильной ОС Android

        1.3 Основы программирования на Android

        Нужна помощь в написании курсовой?

        Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

        1.3.3 Виджеты и видовые окна

        1.3.4 Асинхронные вызовы

        1.3.5 Фоновые службы

        1.4 Архитектура Android приложения

        2. Практическая часть

        2.1 Выбор инструментов и технологий

        2.2 Проектирование прототипа графического интерфейса

        2.3 Архитектура приложения

        Нужна помощь в написании курсовой?

        Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

        2.4 Варианты использования

        2.4.1 Запуск приложения

        2.4.2 Выбор фотографии

        2.4.3 Обновление данных

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

        2.6 Проектирование и разработка базы данных

        2.7 Amazon Storage Services

        2.7.1 Обзор Amazon Web Services (AWS)

        Нужна помощь в написании курсовой?

        Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

        2.7.2 Обзор Amazon S3

        2.7.3 Использование шаблонов

        2.7.4 Интеграция с Amazon S3

        2.8 Аутентификация пользователя

        2.8.1 Создание нового аккаунта

        2.9 Список необходимых разрешений

        2.10 Создание иконки приложения

        Нужна помощь в написании курсовой?

        Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

        Список использованной литературы и источников

        android графический интерфейс проектирование

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

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

        Нужна помощь в написании курсовой?

        Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

        Смартфоны на базе Android становятся все более популярными. Широко известен тот факт, что самую большую долю мобильной индустрии занимают операционные системы (ОС) iOS и Android.

        Рис. 1. Данные фирмы Gartner (2016 г).

        По данным исследовательской фирмы Gartner на 2016 год, Android захватил большую часть мирового рынка, заняв первое место с 80.7% (рис. 1). Это определило мой выбор платформы для мобильного приложения [2].

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

        Согласно данным, предоставленными [3] на 16.05.2016, самые известные и популярные облачные хранилища в России можно представить в виде следующего рейтинга:

        Нужна помощь в написании курсовой?

        Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

        Для своего приложения я выбрала Amazon Web Services (AWS), занимающий 7-ое место в рейтинге выше. В данном случае, использовать его удобнее всего, так как это не просто облачное хранилище данных, а целый набор глобальных сервисов, которые очень помогут при разработке мобильного приложения.

        1. Теоретическая часть

        1.1 Обзор мобильной ОС Android

        Операционная система Android — это открытая платформа, а значит, что она не привязана к одному провайдеру. Это помогает Android завоевать рынок, так как любой производитель и провайдер может создавать и продавать устройства, поддерживающие эту операционную систему. Исходный код Android доступен каждому для изучения или модифицирования. Это позволяет дать широкий простор для создания удобных интерфейсов и приложений для Android-устройств [1].

        ОС Android может использоваться на устройствах с разными размерами экрана и другими техническими характеристиками, поэтому она поставляется с набором инструментов, которые помогают приложению адаптироваться под конкретное устройство. Политика Google более жесткая. Например, если приложение требует наличие фронтальной камеры, то это приложение в Android Market увидят телефоны только с фронтальной камерой.

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

        Нужна помощь в написании курсовой?

        Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

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

        1.3 Основы программирования на Android

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

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

        Намерения используются при запуске деятельности и при коммуникации между различными частями Android системы. Приложение может получать или отправлять намерения.

        Нужна помощь в написании курсовой?

        Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

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

        1.3.3 Виджеты и видовые окна

        Видовое окно (view) представляет собой базовый элемент управления интерфейса в виде прямоугольной области, где можно рисовать и обрабатывать события. Примерами видовых окон являются: контекстное меню (ContextMenu), меню (Menu), вид (View), поверхность рисования (SurfaceView).

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

        1.3.4 Асинхронные вызовы

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

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

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

        Нужна помощь в написании курсовой?

        Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

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

        1.3.5 Фоновые службы

        Служба — это такое приложение, которое выполняется в фоновом режиме и которому не требуется наличие пользовательского интерфейса. Примером службы на компьютере является антивирусная программа, а в ОС Android — аудиоплееры, которые воспроизводят аудиозаписи в фоновом режиме, позволяя пользователю пользоваться с то же время другими приложениями.

        1.4 Архитектура Android приложения

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

        Деятельности состоят из видовых окон (View). Общую структуру стандартного Android приложения можно представить в виде схемы (рис. 2).

        Рис. 2. Структура Android приложения

        2. Практическая часть

        Нужна помощь в написании курсовой?

        Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

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

        2.1 Выбор инструментов и технологи

        В разрабатываемом приложении используются следующие программные средства и технологии:JDK (Java Development Kit) — набор для разработки приложений на языке Java, который включает в себя компилятор Java, библиотеки, утилиты, документацию и др.Studio — среда разработки от Google, которая является официальной средой разработки для Android приложений на базе IntellIJ IDEA.- реляционная база данных, по умолчанию использующаяся в Android.S3 — облачное хранилище объектов, предназначенное для хранения файлов любых типов и возможности доступа к ним через Интернет.- быстрый и удобный эмулятор Android, содержащий настроенные образы Android, что существенно упрощает тестирование на нескольких Android устройствах с целью выявления ошибок и оптимизации приложения.- платформа для разработки мобильных и веб-приложений. В разрабатываемом приложении используется для идентификации пользователей.

        2.2 Проектирование прототипа графического интерфейса

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

        Основные структуры при создании интерфейса:

        Ресурсы (файлы XML) — включают в себя компоновки, строки, изображения, стили

        Файл AndroidManifest.xml — содержит информацию о настройках конфигурации

        Нужна помощь в написании курсовой?

        Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

        Класс View — базовый класс для всех компонентов пользовательского интерфейса. Отвечает за прорисовку изображения и обработку событий.

        Файл R.java — отвечает за идентификацию ресурсов.

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

        Для создания виджетов существует 2 способа:файл компоновки, содержащий описание графических элементов и их характеристик.

        Динамическое создание виджетов в программном коде класса экранной формы.

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

        2.3 Архитектура приложения

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

        Нужна помощь в написании курсовой?

        Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

        Обе эти структуры связаны с моделью для загрузки данных из базы данных и с сервера (в данном случае, Amazon).

        В общем виде структура приложения показана на рис. 3.

        Рис. 3. Общая структура приложения

        2.4 Варианты использования

        2.4.1 Запуск приложения

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

        Нужна помощь в написании курсовой?

        Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

        а) Если база данных пуста, приложение получает данные на сервере.

        Робастная диаграмма для данного варианта использования представлена на рис. 4. Данная диаграмма выражает взаимосвязь между классами и выполняемыми действиями. Каждое такое действие на диаграмме соответствует шагу варианта использования.

        Используемые в диаграмме обозначения:

        — в приложении обозначаются в виде экранов и окон.

        — контроллеры, представляющие роли посредников между первыми двумя типами объектов.

        Нужна помощь в написании курсовой?

        Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

        2.4.2 Выбор фотографии

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

        2.4.3 Обновление данных

        Нужна помощь в написании курсовой?

        Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

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

        При запуске приложения, в первую очередь, появляется экран авторизации пользователя (рис. 5). После авторизации, когда в приложении еще нет никаких данных, выполняется главная деятельность — MainActivity. В этом случае появляется экран вида, отображенного на рис. 7. На скриншоте видно, что вверху экрана отображается название приложения, в правом верхнем углу — функция поиска, а внизу располагается главное меню: первая кнопка отвечает за добавление папки, вторая — за добавление изображения, а последняя — за удаление.

        Рис. 5,6. Экран авторизации пользователя; Экран регистрации нового пользователя

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

        Нужна помощь в написании курсовой?

        Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

        При нажатии на загруженное изображение запускается деятельность PhotoInfoActivity, ответственная за редактирования описания к фото. В этом случае экран примет форму рис. 11.

        2.6 Проектирование и разработка базы данных

        Вид основных таблиц базы данных:

        Таблица пользователей — USERS

        Атрибут Примечание
        ID пользователя Обязательное поле, ключ
        Электронная почта Обязательное поле
        Пароль Обязательное поле

        Нужна помощь в написании курсовой?

        Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

        Таблица для фотографий — PHOTOS

        Атрибут Примечание
        ID фото Обязательное поле, ключ
        ID пользователя Обязательное поле
        Название Обязательное поле
        Описание Необязательное поле
        Путь Обязательное поле
        Дата загрузки Обязательное поле

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

        Таблица для коллекций — COLLECTIONS

        АтрибутПримечание
        ID коллекции Обязательное поле, ключ
        ID пользователя Обязательное поле
        Название Обязательное поле
        Описание Необязательное поле
        Путь Обязательное поле

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

        В коде программы переменные отражены следующим образом [8]:

        Они находятся в классе PhotoDbHelper, наследуемом от абстрактного класса SQLiteOpenHelper, отвечающем за работу с базой данных, т.е. за ее создание, открытие и обновление.

        В классе SQLiteOpenHelper по умолчанию содержатся два метода: onCreate(), отвечающий за создание базы первый раз, и onUpgrade(), с помощью которого базу данных можно модифицировать.

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

        Структура базы данных в наглядном виде представлена в виде схемы (рис. 14).

        Читайте также: