Б1.В.ОД.16 Разработка приложений для мобильных устройств Цели и задачи изучения дисциплины Целью курса «Разработка приложений для мобильных устройств» является изучение базового устройства операционной системы Android для мобильных платформ. В том числе изучаются возможности, которые предоставляет данная платформа, вырабатываются практические навыки по созданию пользовательских интерфейсов, сервисов, а также по использованию сигнализации, аппаратных сенсоров и стандартных хранилищ информации популярных мобильных платформ. Задачи: • формирование у слушателей дисциплины представления о принципах работы операционных систем мобильных устройств; • изучение средств разработки и отладки ПО; • изучение принципов объектно-ориентированного подхода в программировании; • формирования у обучаемых творческого мышления, способности к самостоятельному решению проблем, умения интерактивно использовать инструментально-технологические средства и эффективно работать в малой команде. Требования к результатам освоения дисциплины (модуля): В ходе изучения дисциплины студент должен овладеть следующими профессиональными компетенциями (ПК): способность разрабатывать, внедрять и адаптировать прикладное программное обеспечение (ПК-2) способность программировать приложения и создавать программные прототипы решения прикладных задач (ПК-8) способность проводить тестирование компонентов программного обеспечения ИС (ПК-12) способность осуществлять ведение базы данных и поддержку информационного обеспечения решения прикладных задач (ПК-14) В результате изучения дисциплины студент должен знать: принципы организации и содержание этапов процесса разработки, внедрения и адаптации программного обеспечения; возможности современных и перспективных средств разработки программного обеспечения; технологии программирования; слои программных компонентов; технологические и технико-эксплуатационные характеристики архитектур развертывания программных компонентов; компоненты программно-технических архитектур, существующие приложения и интерфейсы взаимодействия с ними; механизмы авторизации. методы структурного и объектно-ориентированного программирования; методы и приемы формализации и алгоритмизации поставленных задач; нотации и программные продукты для графического отображения алгоритмов; алгоритмы решения типовых задач, области и способы их применения; синтаксис выбранного компьютерного языка: программирования или разметки, особенности написания кода на этом языке; стандартные библиотеки выбранного языка программирования; особенности выбранной среды программирования, методы и средства управления данными; инструментарий для создания и актуализации исходных текстов кода; методы повышения читаемости кода; системы кодировки символов, форматы хранения исходного кода; нормативные документы, определяющие требования к оформлению кода; методы и средства проектирования пользовательских интерфейсов; методы и приемы отладки кода, типы и форматы сообщений об ошибках, предупреждениях; способы использования технологических журналов, форматы и типы записей журналов; современные компиляторы, отладчики и оптимизаторы программного кода. алгоритмы и методы функционального тестирования стандарты использования систем отслеживания ошибок (bug tracker); современные инструменты автоматического тестирования состав ПО, позволяющего поддерживать работу пользователей с БД основные критерии (показатели) работы БД принципы организации информационных баз данных архитектуру, устройство и функционирование вычислительных систем современные методики тестирования разрабатываемых ИС уметь: внедрять и адаптировать современное ПО; разрабатывать и отлаживать эффективные алгоритмы и программы с использованием современных технологий программирования; применять современные разработки и тенденции в области создания программных продуктов в профессиональной деятельности; определять функциональные характеристики и возможности, включая эксплуатационные, физические характеристики и условия окружающей среды, в которых будет применяться каждый компонент программного обеспечения; описывать и оценивать протоколы взаимодействия компонентов ПО; описывать и реализовывать механизмы авторизации; анализировать действия пользователя при работе с программным обеспечением; создавать правила разграничения доступа к различным компонентам программного обеспечения; описывать системные требования. использовать методы и приемы формализации и алгоритмизации поставленных задач; использовать методы структурного и объектно-ориентированного программирования; использовать программные продукты для графического отображения алгоритмов; применять стандартные алгоритмы в соответствующих областях; применять выбранные языки программирования/разметки для написания кода; использовать выбранную среду программирования и средства системы управления базами данных; применять нормативные документы, определяющие требования к оформлению кода; применять инструментарий для создания и актуализации исходных текстов кода; использовать методы и средства проектирования пользовательских интерфейсов; выявлять ошибки в коде ПО, применять методы и приемы отладки программного кода, интерпретировать сообщения об ошибках, предупреждения, записи технологических журналов применять современные компиляторы, отладчики и оптимизаторы программного кода. разрабатывать различные виды тестов и тестирующих программ искать дефекты системы в процессе тестирования, участвовать в их исправлении и модернизации тестируемого приложения пользоваться системами отслеживания ошибок (bug tracker); разрабатывать документацию - требования к системе, тесты и тестовые процедуры и отслеживать взаимосвязь этих документов с разработанными тестами инсталлировать и настраивать ПО для поддержки работы пользователей с БД анализировать отклонений от штатного режима работы БД, их фиксация и устранение формировать запросы для получения недостающей информации и регулярное обновление (актуализация) информации в информационных базах данных кодировать на языках программирования тестировать ИС с использованием тест-планов (сценариев) владеть: навыками разработки, внедрения и адаптации ПО; навыками работы в современной программно-технической среде в различных операционных системах. навыками формализации и алгоритмизации поставленных задач; навыками написания кода с использованием языков программирования/разметки, определения и манипулирования данными; навыками оформления кода разметки и программирования в соответствии с установленными требованиями; навыками работы с системой контроля версий; навыками проверки и отладки кода программы или разметки; навыками проектирования и создания пользовательских интерфейсов; навыками создания программных прототипов решения прикладных задач профессиональной области. методами разработки тестов для функционального тестирования принципами управления тестированием навыками использования автоматизированные средства контроля состояния БД навыками проведения интеграционного и модульного тестирования ИС на основе тестпланов (сценариев) в соответствии с трудовым заданием Объем дисциплины и виды учебной работы Вид учебной работы Всего часов / зачетных единиц 5 6 122/3,5 72 50 Лекции 34/1 18 16 Практические занятия (ПЗ) 88/2,5 54 34 Семинары (С) - - Лабораторные работы (ЛР) - - Аудиторные занятия (всего) Семестры В том числе: - Самостоятельная работа (всего) 166/4,5 144 22 зач зач. зач. 216 72 6 2 В том числе: Теоретическая подготовка к практическому занятию (повторение пройденного) Выполнение домашних заданий Подготовка к тестированию Подготовка к экзамену Вид промежуточной аттестации Контактная работа Общая трудоемкость часы зачетные единицы 8 Краткая характеристика содержания учебной дисциплины: Базовый синтаксис языка программирования Java. Типы данных. Арифметические операции. Работа с вводом-выводом (консоль). Работа со строками. Управляющие конструкции языка: условные операторы и циклы. Сложные типы данных: строки, одно- и многомерные массивы. Понятие функции. Передача аргументов. Области видимости. Рекурсия. Применение объектно-ориентированного подхода в ОС Android Классы и объекты. Основные принципы парадигмы ООП: абстракция, наследование, инкапсуляция, полиморфизм. Конструкторы. Ограничение доступа к полям и методам класса. Статические методы. Использование классов коллекций, деревьев и обѐрток для примитивных типов. Основные принципы в разработке приложений в ОС Android Структура приложения в ОС Android и его жизненный цикл. Обработка событий. Применение языка разметки XML для описания интерфейса приложения. Понятие активности, взаимодействие элементов управления. Фрагменты. Работа с потоками приложения. Фоновые процессы и сервисы. Дополнительные возможности для приложений в ОС Android Встроенная СУБД SQLite. Создание, открытие БД и работа с таблицами. Межпроцессное взаимодействие с использованием Intent (намерений). Основы архитектуры клиент-сервер. Работа с API сетевых сервисов. Шифрование информации: симметричные и асимметричные алгоритмы. ЭЦП. Форма промежуточной аттестации: зачет Разработчик: к. т. н., доцент кафедры ЕНД Петрушин И. С.