ВАРИАНТЫ АВТОМАТИЗАЦИИ ПРОЦЕССОВ ЖИЗНЕННОГО ЦИКЛА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ И МЕТОДЫ ИХ РЕАЛИЗАЦИИ
Журнал: Научный журнал «Студенческий форум» выпуск №1(180)
Рубрика: Технические науки
Научный журнал «Студенческий форум» выпуск №1(180)
ВАРИАНТЫ АВТОМАТИЗАЦИИ ПРОЦЕССОВ ЖИЗНЕННОГО ЦИКЛА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ И МЕТОДЫ ИХ РЕАЛИЗАЦИИ
Автоматизация (в разной степени) применима на всех этапах жизненного цикла программного обеспечения.
· Автоматизация на этапах изначального планирования, сбора требований и документации - на данных этапах могут применяться системы электронного документооборота и контроля изменений, позволяющие командам из различных отделов эффективнее работать над постановкой задачи. Системы контроля изменений позволяют создать автоматическую рассылку всех изменений в документах о программном обеспечении заинтересованным в данной информации лицам.
· Автоматизация на этапе разработки - наиболее широко используется именно на этом этапе. В процессе разработки необходимо использовать системы контроля версий и изменений, позволяющие иметь представление о количестве изменений, о том какие разработчики разрабатывают конкретные части приложения с целью получения конкретного контакта в случае проблем на этапе тестирования. Также на этом этапе необходимо внедрить автоматизацию сборки приложения после внесения изменений для того, чтобы разработчики имели доступ к собранной версии программного обеспечения, на которой можно предварительно проверить изменения на предмет ошибок. В процессе автоматической сборки также необходимо организовать автоматическое тестирование (при наличии автоматических тестов), которое позволит выявить ошибки ещё на этапе разработки. Написание самих автоматических тестов должно также происходить на этом этапе инженерами по автоматическому тестированию. В процессе разработки также стоит использовать системы управления задачами, позволяющие видеть конкретный объём работ в целом по проекту, а также по каждому отдельному разработчику (или одной из команд), что в свою очередь позволяет иметь представлении о том, в какой степени готовности находится весь продукт в целом.
· Автоматизация на этапе тестирования - в общем случае, тестирование должно в большей степени проводиться автоматически при помощи автоматических тестов, написанных инженерами по автоматическому тестированию. Однако в большинстве проектов используется комбинация ручного и автоматического тестирования. В случае ручного тестирования для автоматизации управления задачами тестирования следует использовать системы управления задачами [1].
· Автоматизация на этапе развёртывания (доставки) - может значительно уменьшить временные затраты сотрудников. При помощи средств автоматической сборки и развёртывания последнее выполняется либо автоматически, либо буквально нажатием одной кнопки. Системные инженеры, ответственные, в том числе и за этот этап, должны на раннем этапе разработки создать набор сценариев, по которым в последующем и будет производиться автоматическое развёртывание приложения.
· Автоматизация на этапе поддержки - на данном этапе необходимо использовать системы обратной связи с пользователями, позволяющие автоматически конвертировать отчёты об ошибках от пользователей в задачи для разработчиков в системе контроля задач. Также, в случае, когда программное средство является услугой, необходимо использовать системы мониторинга, позволяющие осуществлять наблюдение за поведением программного обеспечения, мониторинг нагрузки на сервер, количество подключений пользователей к системе. Также необходимо создать систему оповещения, которая позволит оповестить сотрудников, ответственных за поддержку программного средства, о существующих проблемах с программным или аппаратным обеспечением или их приближении. В настоящее время, автоматизация процессов внедрена (или находится в процессе внедрения) в большинстве крупных компаний-разработчиков программного обеспечения [2].
Автоматизация жизненного цикла программного обеспечения в современной разработке программного обеспечения является важнейшей частью создания любого программного средства. Автоматизация позволяет сэкономить значительное количество затрат времени сотрудников на рутинные задачи. В различной степени, автоматизации можно подвергнуть все этапы жизненного цикла программного обеспечения для получения максимальной экономии времени.