Menu Close

Какие существуют жизненные циклы разработки программного обеспечения?

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

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

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

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

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

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

После того, как был сформирован дизайн, были определенны основные технологии и методология, тогда и начинается переход к стадии собственно разработки. Современная разработка может также осуществляться посредством множества методологий, но наиболее прогрессивной из них, в большинстве случаев, оказывается Test Driven Development (TDD), то есть такой подход к разработке, когда написание кода происходит неразрывно с написанием модульных тестов (Unit tests). Такой подход практически гарантирует прочный фундамент, на котором может быть построен весь дальнейший процесс написания кода и тестирования — интеграционного, ручного, тестирования интерфейсов.

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

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

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

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

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

Специалисты Creative Lab имеют большой опыт разработки систем любой сложности. Больше информации о нас можно получить на главной странице.