На показатели качества проектирования и созданного программного продукта влияют многие факторы – это структурная упорядоченность комплекса программ и данных, степень комплексной автоматизации технологии проектирования программ, документированность создаваемых программ и всего комплекса, квалификация специалистов и др.
Жизненный цикл программного продукта – это непрерывный процесс, который начинается с момента принятия решения о необходимости его создания и заканчивается в момент его полного изъятия из эксплуатации, состоит из нескольких этапов: требования/спецификации, проектирование, реализация проекта, отладка, сопровождение проекта.
Определение полного комплекса требований к программному обеспечению системы является первоначальной задачей. На этом этапе следует убедиться в том, что к программному обеспечению предъявлены четкие и корректные требования, которые действительно могут быть выполнены.
На этапе проектирования создается структура будущей программой системы, на этом этапе закладывается качество и надежность будущего программного продукта. Необходимо проверить, насколько точно отражены в проекте все требования к программному обеспечению, то есть должно быть установлено соответствие проекта основным требованиям. В результате деятельности на этапах требований и проектирования должен быть получен проект системы, содержащий достаточно информации для реализации системы.
Реализация подразумевает выбор языка программирования и составление текста программы. В реализации обычно выделяют два этапа – реализацию компонент программного обеспечения и интеграцию компонент в готовый продукт.
На этапе отладки затрачиваются наибольшие усилия по повышению надежности программного обеспечения. В процессе отладки производится проверка, включающая тестирование и другие методы. Тестирование – это процедура обнаружения ошибок в программе, является составляющей частью отладки. Успех отладки в значительной степени предопределяет рациональная организация тестирования.
Сопровождение охватывает все действия по повышению надежности после завершения отладки. Этот этап включает следующие виды работ: анализ несоответствий в программной системе, вызывающих сбои в ее работе; коррекцию программных ошибок; разработку усовершенствованных версий программного обеспечения; функциональное расширение или улучшение производительности.
Влияние на надежность различных этапов жизненного цикла разное. Существуют технологические средства и методы, которые являются необходимыми для разработки надежного программного обеспечения на разных фазах жизненного цикла программы:
Тестирование – выполнение программы при заданных условиях с целью получения реальных результатов ее работы. По этим данным делается вывод о степени соответствия программы предъявляемым требованиям.
Анализ – логическая или математическая обработка аналитических или эмпирических данных. Анализ может включать оценку выполняемых логических функций, числовых или статистических характеристик алгоритмов и формул, затрат памяти и времени, использование внешней памяти, системы приоритетов и т. д.
Демонстрация – выполнение функциональных задач перед квалифицированными программистами.
Инспекция – проверка программы на соответствие требованиям, указанным в документации.
Для создания комплексов программ высокого качества, в том числе по показателям надежности функционирования, необходимо разрабатывать не только методы, способствующие повышению надежности, но и методы, позволяющие рассчитывать надежность в зависимости от затрат на различные средства ее повышения.