Файл: Этапы разработки тестирования и ввода в эксплуатацию мобильных приложений (Основные этапы формирования мобильного приложения).pdf
Добавлен: 28.03.2023
Просмотров: 250
Скачиваний: 2
ВВЕДЕНИЕ
Вычислительные и коммуникационные системы используются все чаще и с каждым днем все глубже входят в нашу повседневную жизнь. Компании и отдельные пользователи все больше зависят в своей работе от приложений. И так приложения соединяют различные отделы внутри компаний, различные компании и простых пользователей. Веб-приложения очень динамичны, а их функциональные возможности непрерывно растут. Непрерывно возрастает потоковый трафик средств информации и запросов, формируемых переносными и встроенными устройствами.
Что именно происходит во время создания программы для смартфона? Вопрос, который чаще всего задают клиенты. Они хотят знать, сколько ресурсов от них потребуется, как устроена работа, с чего все начинается и каким образом в результате заработать, а не потерять.
Этот важный вопрос, на который нельзя ответить в двух словах, вдохновил меня на написание этой курсовой работы. В ней не будет туманных вопросов из серии «как сделать приложение за 2 недели?». Зато будет последовательная информация, для созревания в голове понимания рынка мобильной разработки.
ОСНОВНЫЕ ЭТАПЫ ФОРМИРОВАНИЯ МОБИЛЬНОГО ПРИЛОЖЕНИЯ
Было бы очень странно, если бы все строилось моментально, буквально по шелчку пальцев, хотя было бы весьма неплохо получать то, что приносит успех мгновенно. Хотя такие вещи существуют: например, подъем по первому будильнику с утра, уже является большой победой для многих и приносит успех, давая ценное время для подготовки к более важным вещям.
Таким образом, существуют и основные этапы в разработке и выпуске програмного обеспечения в свет.
Необходимо понять, какие именно задачи будет выполнять программа для заказчика. Разработать техническое задание, в котором будут формироваться основные цели. Установить набор выполняемых функций, а также перечень и характеристики исходных данных. Определить перечень результатов, их характеристики и способы их представления. Уточнить среду функционирования программного обеспечения: конкретную комплектацию и параметры технических средств, версию используемой операционной системы и, возможно, версии и параметры другого установленного программного обеспечения, с которым предстоит взаимодействовать будущему программному продукту. На этом этапе на основе системного проекта осуществляется собственно проектирование системы, включающее выбор технологии проектирования и построение моделей.
Проанализировать требования и определения спецификаций программного обеспечения путем выбора технологии проектирования. Здесь выбирается подход к проектированию программного обеспечения — структурный или объектно-ориентированный Каждый из подходов имеет свои преимущества и недостатки. При структурном подходе процессы и данные существуют отдельно друг от друга (как в модели деятельности организации, так и в модели программной системы), причем проектирование ведется от процессов к данным. Это является главным недостатком структурного подхода. В объектно-ориентированном подходе основная категория объектной модели — класс. Он объединяет в себе на элементарном уровне как данные, так и операции, которые над ними выполняются (методы). Разделение процессов и данных преодолено. Данные по сравнению с процессами являются более стабильной и относительно редко изменяющейся частью системы, поэтому объектно-ориентированные системы более открыты и легче поддаются внесению изменений. Кроме того, объектно-ориентированная модель наиболее адекватно отражает реальный мир, представляющий собой совокупность взаимодействующих объектов, взаимодействие происходит посредством обмена сообщениями между объектами. Однако на практике диаграммы, отражающие специфику объектного подхода (диаграммы классов и т.п.), гораздо менее наглядны и плохо понимаемы непрофессионалами, поэтому понимание заказчиком разработчика обеспечивается на сегодняшний день, в основном, структурными методами.
Далее перейти строятся к построению модели проектируемой системы, которые детализируются и уточняются до необходимого уровня (в зависимости от выбранной технологии: диаграммы потоков данных, функциональные диаграммы, варианты использования, диаграммы деятельности и т.д.). В данном подразделе должны быть представлены разработанные модели с текстовым описанием.
В случае применения структурного подхода после завершения функционального анализа системы, во время проектирования модели данных, определяется состав потоков данных и конструируется концептуальная схема данных в форме одной модели или нескольких локальных моделей. Наиболее распространенным средством моделирования данных считаются диаграммы «сущность—связь» (ERD).
Выполняя детальное моделирование строится структурная схема программной системы, выполняется детальное описание функционирования системы через функциональные схемы, осуществляется проектирование экранных форм, отчетов, диалогов (создание прототипа программного обеспечения). С помощью диаграмм последовательностей экранных форм моделируется иерархия экранных форм. Совокупность таких диаграмм представляет собой абстрактную модель пользовательского интерфейса системы, отражающую последовательность появления экранных форм в приложении.
Формулировка задачи для программы – это само её объявление, её постановка. Но просто формулировка ничем не поможет программистам. Для этого и существует второй под этап – это анализ задачи.
Анализ задачи – это подробный просмотр задачи с определением и выявлением входной и выходной информации. (входная информация по задаче — это данные, поступающие на вход задачи и используемые для её решения, выходная информация – это результат.)
После проведения анализа поставленной задачи программисту более или менее понятно, с какими проблемами ему придется столкнуться.
Еще одним методом анализа является введение математической модели. Для более четкого понимания рассмотрим определения математической модели, объявленные в разных (математических, физических, экономических и т.д.) источниках и попробуем создать собственное определение, подходящее для программирования.
«Математическая модель - система уравнений и концепций, используемых для описания и прогнозирования данного феномена или поведения объекта. Математические модели находят как практическое, так и теоретическое применение (иногда одновременно). Практические задачи, в которых используются математические модели, включают создание новых материалов, предсказание погоды, проверку прочности мостов, самолетов и тому подобного» - это определение используется в физике, химии и математической биологии.
«Математическая модель — это упрощенное описание реальности с помощью математических понятий. Существует два основных класса задач, связанных с математическими моделями: прямые и обратные. В первом случае все параметры модели считаются известными, и нам остается только исследовать её поведение. А во втором какие-то параметры модели неизвестны, и требуется их найти, сопоставляя поведение реальной системы с её моделью.» - данное определение используется в основном в экономике.
«Математическая модель — это математическое представление реальности» - это определение созданное математиками.
В ходе чего приходим к убеждению, что математическая модель в программировании – это система математических соотношений, приближенно отражающий сформулированную задачу. И она позволяет осуществить предварительный выбор оптимальных вариантов решений по определенным критериям. Создание математической модели не займет у нас много времени, т.к. мы должны были подробно разобрать задачу по предыдущему пункту.
Определится с внешним видом и приветливостью интерфейса, доступным для понимания каждого пользователя.
Эти фундаментальные этапы отвечают за продуктивность разрабатываемого приложения, а также за внешний вид и удобство использования.
Для себя отмечу, что это очень сродне русской поговорке: «как назовешь корабль – так он и поплывет» - критичное авторское мнение.
ПРОЕКТИРОВАНИЕ И ДИЗАЙН
Здесь наша работа делится на два направления: проектирование UI (user iterface), и UI-дизайн, то есть дизайн привычном понимании.
Проектирование UI направлено на повышение уровня удовлетворенности клиентов. На этом этапе мы упаковываем сложные процессы в максимально простое, понятное и полезное приложение, которое работает как часы, без нареканий.
UI-дизайн определяет то, как будет выглядеть приложение, каким будет его пользовательский интерфейс, цвета, варианты оформления внутренних элементов.
В результате мы получаем:
- карта экранов;
- статичный или интерактивный прототип приложения;
- отрисованные экраны и элементы интерфейса.
В случае предложения заказчиком: «Быть может не будем тратить время на проектирование и сразу приступим к дизайну?». Допустим, мы исключили проектирование и сделали дизайн. Посмотрели его, и у вас появилась куча идей, как все улучшить. Мы вносим изменения и перерабатываем дизайн. Время для выполнения и стоимость проекта вырастают в два раза, а продуктивность снизится. Дизайнер выгорает, а вы как заказчик недовольны, что проект стал дороже. Довольно нерациональное решение - исключать важные этапы.
Проектирование UI подразумевает, что проектировщик продумывает взаимодействие между элементами дизайна, чтобы увидеть, как приложение работает при всех распространенных пользовательских сценариях. Как проходит регистрация и авторизация, как выглядит начальный экран и личный кабинет, как происходит оформление заказа и оплата покупки. Проверяя логику приложения, мы корректируем ее, чтобы сделать пользовательский опыт максимально положительным. В результате получаем прототип — схематичную модель будущего приложения.
Проектирование особенно важно для проектов с большой долей неопределенности и расширенности интересов. В начальных этапах развития новых отраслей бизнеса например.
UI-дизайн — это непрерывный процесс. При выпуске каждого обновления мы должны помнить, как люди используют наше приложение. Если после обновления пользователям стало не так удобно совершать покупки или им надо сделать больше кликов, чтобы попасть в личный кабинет, значит, мы отклоняемся от курса и пора поработать над UI-дизайном.
А так как самый верный способ потерять эффективность – это прекращение поиска путей улучшения дела, лучше всего избегать таких ситуации и решать всплывающие задачи.
Необходимо создать интерактивный прототип. Таким образом, можно пользоваться приложением так, будто оно уже готово и установлено на смартфон. Мы сможем перемещаться по разделам, нажимать на кнопки и выполнять различные действия, в свою очередь, анализируя опыт использования.
Такой прототип полезен как на этапе проектирования, так и для заказчика. В первом случае он помогает выявить несоответствия в сценариях и быстро их исправить.
Во втором случае заказчику не придется на словах объяснять, для чего нужен сервис и как он будет работать. Можно просто показать все на интерактивном прототипе, благодаря чему шансы быстро найти инвестора и реализовать проект возрастают.
UI-дизайнер, в свою очередь, отвечает за внешний вид будущего приложения. Он подбирает шрифты, выбирает цветовое решение, отрисовывает элементы интерфейса: кнопки, иконки, слайдеры, PUSH-уведомления.
Если у заказчика есть корпоративный стиль, мы берем пример и делаем дизайн по нему. Если стиля нет, предлагаем свое видение с учетом трендов, специфики бизнеса и аудитории.
В зависимости от масштаба проекта дизайн может занять одну неделю или несколько месяцев
РАЗРАБОТКА ПРОГРАММНОЙ ЧАСТИ
Программирование — один из главных этапов. Написание кода любого приложения делится на фронтенд и бэкенд.
На этапе фронтенда разрабатывают клиентскую часть сервиса, то есть интерфейс пользователя и бизнес-логику приложения.
На этапе бэкенда разрабатывают серверную часть приложения — она отвечает за передачу данных между пользователями или ресурсами.
Итогом всех этих процедур является первый релиз долгожданного приложения.
Есть множество подходов к разработке интерфейса. Но вам как заказчику не нужно в них углубляться. Достаточно знать два основных. На этапе фронтенда это нативная разработка и кроссплатформенное приложение.
Нативные приложения написаны для конкретной мобильной платформы: iOS, Android, Windows. Язык программирования, который используется для написания таких сервисов, поддерживается только одной платформой. Например, Swift и Objective-C понимает только iOS, а Java — только Android.
Если приложение должно стать важной частью бизнеса и влиять на финансы тогда можно делать