Жизненный цикл разработки программного обеспечения или SDLC - это процесс, используемый для разработки программного обеспечения. В жизненном цикле разработки программного обеспечения есть разные этапы или фазы, и на каждой фазе выполняются разные действия.
SDLC создает структуру, позволяющую группам разработчиков разрабатывать, создавать и поставлять высококачественное программное обеспечение, определяя различные задачи, которые должны выполняться. Жизненный цикл определяет методологию повышения качества программного обеспечения и всего процесса разработки.
Цель процесса SDLC - помочь произвести рентабельный, эффективный и высококачественный продукт.
Жизненный цикл разработки программного обеспечения начинается с этапа анализа требований, на котором заинтересованные стороны обсуждают требования к программному обеспечению, которое необходимо разработать для достижения цели. Цель этапа анализа требований - зафиксировать детали каждого требования и убедиться, что все понимают объем работы и то, как каждое требование будет выполняться.
Это нормальная практика - также обсуждать, как будет проверяться каждое требование, и поэтому тестировщики могут внести большую ценность в участие в собраниях по анализу требований.
В зависимости от того, какая методология разработки программного обеспечения используется, применяются разные подходы к переходу от одного этапа к другому. Например, в каскадной или V-модели этап анализа требований сохраняется в документе SRS (Спецификация требований к программному обеспечению) и должен быть завершен, прежде чем можно будет приступить к следующему этапу.
Следующим этапом SDLC является этап проектирования. На этапе проектирования разработчики и технические архитекторы приступают к высокоуровневому проектированию программного обеспечения и системы, чтобы иметь возможность удовлетворить каждое требование.
Технические детали дизайна обсуждаются с заинтересованными сторонами, и рассматриваются различные параметры, такие как риски, используемые технологии, возможности команды, ограничения проекта, время и бюджет, а затем выбирается лучший подход к дизайну для продукта.
Выбранный архитектурный проект определяет все компоненты, которые необходимо разработать, взаимодействие со сторонними службами, пользовательские потоки и связь с базой данных, а также внешние представления и поведение каждого компонента. Дизайн обычно хранится в Документе проектных спецификаций (DSD).
После того, как требования и проектная деятельность завершены, следующей фазой SDLC является реализация или разработка программного обеспечения. На этом этапе разработчики начинают кодирование в соответствии с требованиями и дизайном, обсужденным на предыдущих этапах.
Администраторы баз данных создают необходимые данные в базе данных, разработчики внешнего интерфейса создают необходимые интерфейсы и графический интерфейс для взаимодействия с серверной частью на основе руководящих принципов и процедур, определенных компанией.
Разработчики также пишут модульные тесты для каждого компонента, чтобы протестировать новый код, который они написали, проанализировать код друг друга, создать сборки и развернуть программное обеспечение в среде. Этот цикл разработки повторяется до тех пор, пока требования не будут выполнены.
Тестирование - это последний этап жизненного цикла разработки программного обеспечения перед его доставкой клиентам. Во время тестирования опытные тестировщики приступают к проверке системы на соответствие требованиям.
Тестировщики стремятся найти дефекты в системе, а также проверить, работает ли приложение так, как ожидалось, и в соответствии с тем, что было задокументировано на этапе анализа требований.
Тестировщики могут либо использовать тестовый сценарий для выполнения каждого теста и проверки результатов, либо использовать исследовательское тестирование, которое больше основано на опыте.
Не исключено, что дефекты выявляются еще на этапе тестирования. Как только дефект обнаружен, тестировщики информируют разработчиков о деталях проблемы, и, если это действительный дефект, разработчики исправят и создадут новую версию программного обеспечения, которую необходимо повторно проверить.
Этот цикл повторяется до тех пор, пока все требования не будут проверены, все дефекты не будут исправлены и программное обеспечение не будет готово к отправке.
После того, как программное обеспечение будет полностью протестировано и нет первоочередные вопросы остается в программном обеспечении, пора развернуть его в производственной среде, где клиенты смогут использовать систему.
После того, как версия программного обеспечения выпущена в производство, обычно есть группа обслуживания, которая занимается любыми проблемами постпроизводства.
Если проблема возникает в производственной среде, команда разработчиков информируется, и в зависимости от того, насколько серьезна проблема, может потребоваться оперативное исправление, которое создается и отправляется за короткий период времени, или, если оно не очень серьезное, оно может подождать до следующей версии ПО.
Все этапы жизненного цикла разработки программного обеспечения, определенные выше, применимы к любой методологии разработки программного обеспечения, но продолжительность и действия на каждом этапе зависят от того, следуете ли вы методологии разработки V-модели или Agile.
В Agile продолжительность доставки работающего программного обеспечения обычно составляет от 2 до 4 недель, поэтому каждый из вышеуказанных этапов сокращается. Кроме того, в Agile это коллективный подход, в котором разработчики и тестировщики участвуют и работают вместе, чтобы создать высококачественный продукт.