Жизненный цикл программного обеспечения

Жизненный цикл программного обеспечения включает в себя шесть этапов:

  • анализ требований,
  • определение спецификаций,
  • проектирование,
  • кодирование,
  • тестирование,
  • сопровождение.

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

Что должна делать программа?

В чем состоят реальные проблемы, разрешению которых она должна способствовать?

Что представляют собой входные данные? Какими должны быть выходные данные? Какими ресурсами располагает проектировщик? Определение спецификаций. В определенной степени этот этап можно рассматривать как формулировку выводов, следующих из ре­зультатов предыдущего этапа. Требования к программе должны быть представлены в виде ряда спецификаций, явно определяющих рабо­чие характеристики будущей программы. В число таких характери­стик могут входить скорость выполнения, объем потребляемой памя­ти, гибкость применения и др.

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

Кодирование. Заключается в переводе на язык программирования конструкций, записанных на языке проектирования.

Тестирование. На этом этапе производится всесторонняя провер­ка программ. Тестирование более подробно рассмотрено ниже.

Сопровождение. Это этап эксплуатации системы. Каким бы изо­щренным ни было тестирование программ, к сожалению, в больших программных комплексах чрезвычайно тяжело устранить абсолютно все ошибки. Устранение обнаруженных при эксплуатации ошибок— первейшая задача этого этапа. Однако это далеко не все, что выпол­няется при сопровождении. Выполняемый в ходе сопровождения анализ опыта эксплуатации программы позволяет обнаруживать «узкие места» или неудачные проектные решения в тех или иных частях программного комплекса. В результате такого анализа может быть принято решение о проведении работ по совершенствованию разработанной системы. Кроме описанного выше сопровождение может включать в себя проведение консультаций, обучение пользо­вателей системы, оперативное снабжение пользователей информаци­ей о новых версиях системы и т.п. Качественное проведение этапа сопровождения в большой степени определяет коммерческий успех программного продукта. Рассмотрим этап тестирования программ более подробно. Суще»| ствуют три аспекта проверки программы на: правильность; эффективность реализации; вычислительную сложность. Проверка правильности удостоверяет, что программа делает в точности то, для чего она была предназначена. Математическая безу­пречность алгоритма не гарантирует правильности его перевода в программу. Аналогично, ни отсутствие диагностических сообщений компилятора, ни разумный вид получаемых результатов не дают достаточной гарантий правильности программы. Как правило, про­верка правильности заключается в разработке и проведении набора тестов. Кроме этого, для расчета программ иногда можно сверить по­лучаемые решения с уже известным решением. В общем случае, нельзя дать общего решения для проведения проверки на правиль­ность программы.

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

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

Добавить комментарий