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

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 28.03.2023

Просмотров: 276

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Введение

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

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

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

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

Концепции комплексной автоматизации представлены в работах Щербакова В. В., Мерзляк А. В., Капустина Н. М., Голова Р. С., а также у таких крупных компаний, как ООО «1C» и ООО «Siemens». В них описаны проблемы автоматизации бизнес-процессов, изложены основные этапы комплексной автоматизации, в том числе технологическое проектирование и создание систем управления процессами. Раскрыты методы и средства моделирования программного обеспечения, функции и задачи информационно-аналитических систем.

Объект исследования: процесс разработки программного обеспечения для мобильных устройств.

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

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

Задачи:

1. Изучение технологий разработки веб-приложений и мобильных приложений.

2. Изучение этапов жизненного цикла ПО.


1. Теоретические аспекты проектирования и разработки мобильных приложенией

1.1. Жизненный цикл программного обеспечения

Разработка любого программного обеспечения обязательно проходит пять стадий формирования готового продукта: анализ требований, проектирование, программирование, тестирование и эксплуатация [3].

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

Каждый этап жизненного цикла определяется однозначными задачами, методами их решения, исходными данными, полученными на предыдущем этапе, и результатами. Результатами анализа, в частности, являются функциональные и информационные модели, и соответствующие им диаграммы. Жизненный цикл ПО носит итерационный характер: результаты очередного этапа часто вызывают изменения в проектных решениях, выработанных на более ранних этапах [13].

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

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

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


Рис. 1. Каскадная модель жизненного цикла [13]

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

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

Рис. 2. Каскадная модель с промежуточным контролем [13]

V-образная модель. Унаследовала структуру «шаг за шагом» от каскадной модели. V-образная модель применима к системам, которым особенно важно бесперебойное функционирование. Например, прикладные программы в клиниках для наблюдения за пациентами, интегрированное ПО для механизмов управления аварийными подушками безопасности в транспортных средствах и так далее [6]. Особенностью модели можно считать то, что она направлена на тщательную проверку и тестирование продукта, находящегося уже на первоначальных стадиях проектирования [Там же]. Стадия тестирования проводится одновременно с соответствующей стадией разработки, например, во время кодирования пишутся модульные тесты. Такая модель используется в малых и средних проектах, где требования четко определены и фиксированы.

Рис. 3. V-образная модель [13]

Итеративная и инкрементная модели. В инкрементной модели (рис. 4) полные требования к системе делятся на различные сборки. Терминология часто используется для описания поэтапной сборки ПО. Имеют место несколько циклов разработки, и вместе они составляют жизненный цикл «мульти-водопад». Цикл разделен на более мелкие легко создаваемые модули. Каждый модуль проходит через фазы определения требований, проектирования, кодирования, внедрения и тестирования. Процедура разработки по инкрементной модели предполагает выпуск на первом большом этапе продукта в базовой функциональности, а затем уже последовательное добавление новых функций, так называемых «инкрементов». Процесс продолжается до тех пор, пока не будет создана полная система. Инкрементные модели используются там, где отдельные запросы на изменение ясны, могут быть легко формализованы и реализованы.


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

Рис. 4. Инкрементная модель [13]

На рис. 5 показана итерационная «разработка» Мона Лизы. Как видно, в первой итерации есть лишь набросок Джоконды, во второй – появляются цвета, а третья итерация добавляет деталей, насыщенности и завершает процесс. В инкрементной же модели (рис. 6) функционал продукта наращивается по кусочкам, продукт составляется из частей. В отличие от итерационной модели, каждый кусочек представляет собой целостный элемент.

Рис. 5. Итерационная модель на примере Мона Лизы [13]

Рис. 6. Инкрементная модель на примере Мона Лизы [13]

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

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

Рис. 7. Спиральная модель [13]

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

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

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


1.2. Методы разработки мобильных приложений

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

Для каждой мобильной платформы существует собственный, нативный, язык программирования, например, для Android это Java или Kotlin, для iOS – Objective-C или Swift, для Windows Phone – C#. Все перечисленные языки программирования имеют свой набор технологий и фреймворков.

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

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

Рис. 11. Нативная разработка [8]

Существует два кроссплатформенных подхода к разработке мобильных приложений: создание обертки для разных платформ на языке программирования C++ или использование специально разработанных технологий, например, Xamarin.

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

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

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

2. Нативную, которая обеспечивает инициализацию приложения, управление жизненным циклом и имеющую полный доступ к системным API [8].