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

Что такое СДЛК?

Жизненный цикл разработки программного обеспечения (SDLC) — это термин, используемый для объяснения того, как программное обеспечение доставляется заказчику в несколько этапов. Эти шаги ведут программное обеспечение от фазы идеи до поставки.

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

Семь этапов SDLC

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

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

1. Планирование

Этап планирования включает в себя аспекты управления проектами и продуктами. Это может включать:

  • Распределение ресурсов (как человеческих, так и материалов)
  • Планирование мощности
  • Планирование проекта
  • Оценка затрат
  • Предоставление

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

2. Требования

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

Архитекторы, команды разработчиков и менеджеры по продуктам работают с малыми и средними предприятиями, чтобы документировать бизнес-процессы, которые необходимо автоматизировать с помощью программного обеспечения. Результатом этого этапа проекта Waterfall обычно является документ, в котором перечислены эти требования. Agile-методы, напротив, могут создавать невыполненные задачи.

Read: Steps to create an SRS document by analyzing requirements.

3. Дизайн и прототипирование

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

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

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

4. Разработка программного обеспечения

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

5. Тестирование

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

  • Качество кода
  • Модульное тестирование (функциональные тесты)
  • Интеграционное тестирование
  • Тестирование производительности
  • Тестирование безопасности

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

6. Развертывание

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

Инструменты Application Release Automation (ARA) используются на средних и крупных предприятиях для автоматизации развертывания приложений в производственных средах. Системы ARA обычно интегрируются с инструментами непрерывной интеграции. Теперь у нас есть работающее программное обеспечение.

7. Эксплуатация и техническое обслуживание

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

Преимущества SDLC

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

Формально определенный метод разработки программного обеспечения в форме SDLC дает несколько преимуществ:

  • Общий словарь для каждого шага
  • Определенные каналы связи между командами разработчиков и заинтересованными сторонами
  • Четко распределить роли и обязанности между разработчиками, дизайнерами, бизнес-аналитиками и руководителями проектов.
  • Четко определенные входы и выходы от одного шага к другому
  • Детерминированное «определение готовности», которое можно использовать для подтверждения того, действительно ли шаг завершен.