double arrow

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

Сразу отметим, что компьютерные программы – это продукт (интеллектуальный продукт или товар). Исходные тексты и исполняемые файлы программ являются объектами авторского права и являются интеллектуальной собственностью их авторов и правообладателей.

Программный продукт в соответствии с международными требованиями ISO не должен содержать ошибок и дефектов, которые приводят к сбоям и отказам при выполнении на ЭВМ. Программы с дефектами и ошибками – это не продукт!

Согласно Закону РФ "О защите прав потребителей" любой товар при обнаружении в нем дефектов подлежит замена либо возврату денежных средств за его приобретение и сопутствующие издержки.

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

В общем случае выделяют следующие этапы разработки ПО:

1) постановка задачи;

2) проектирование общей структуры программы;

3) кодирование программы;

4) отладка и верификация программы;

5) публикация или передача заказчику результата работы;

6) сопровождение программы.

Рассмотрим подробнее содержание каждого из перечисленных этапов.

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

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

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

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

Спецификации должны быть полными, точными и ясными. Полнота исключает необходимость получения разработчиками ПО в процессе их работы от заказчиков иных сведений кроме тех, которые содержатся в спецификациях. Точность не позволяет различных толкований. Ясность подразумевает легкость понимания как заказчиком, так и разработчиком при однозначном толковании.

Проектирование ПО. На этом этапе:

- формируется структура ПО и разрабатываются алгоритмы, задаваемые спецификациями;

- устанавливается состав модулей с разделением их на иерархические уровни на основе схем алгоритмов;

- выбирается структура информационных массивов, составляющих базу данных;

- фиксируются межмодульные интерфейсы.

Результатом работы на этом этапе являются спецификации на отдельные модули, дальнейшая декомпозиция которых нецелесообразна. Каждый из модулей может быть разработан разными людьми, и сконструирован так, чтобы выполнять только определенную часть общей задачи. С целью усовершенствования методов проектирования программного обеспечения используются CASE-технологии (Computed Aided Software Engineering), которые включают автоматизированные средства планирования, управления, отладки, документирования и разработки интерфейсов.

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

Отладка и верификация ПО. Отладка и тестирование программы представляют собой очень важную и ответственную часть процесса разработки программы. Отладка заключается в устранении ошибок программирования, ошибок перевода алгоритма на язык программирования. Английский термин debugging («отладка») буквально означает «вылавливание жучков». Термин появился в 1945 г., когда один из первых компьютеров – «Марк-1» прекратил работу из-за того, что в его электрические цепи попал мотылек и заблокировал своими останками одно из тысяч реле машины. Различают следующие виды отладки:

- синтаксическая отладка;

- семантическая отладка;

- отладка логической структуры программы.

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

Таким образом, тестирование может выявить ошибки, но не может гарантировать отсутствие ошибок в программах. Гарантии отсутствия ошибок в алгоритмах и программах могут дать только доказательства их правильности – исчерпывающий анализ правильности алгоритмов и программ. Верификацией алгоритмов и программ называют область исследований, направленную на доказательство их корректности. Верификация основана на методах формальной (математической) логики. Общий подход заключается в следующем:

1) Доказательство корректности начинается с предположения о том, что в начале работы алгоритма удовлетворены некоторые предварительные условия (например, на входе получены нужные данные).

2) Следующий этап доказательства заключается в рассмотрении того, как следствие из этих данных распространяется по программе.

Например, определено, что x=y, тогда, если y¹0, то x¹0.

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

Сопровождение ПО. Это заключительный этап, который имеет особое значение для больших и сложных программ. Этот этап представляет собой процесс исправления замеченных в ходе эксплуатации программы недостатков и, возможно, ошибок, координации всех элементов системы в соответствии с потребностями пользователя, внесения всех нужных ему исправлений и изменений. Это необходимо, по крайней мере, по двум причинам: во-первых, в ПО остаются ошибки, не выявленные при тестировании; во-вторых, пользователи в ходе эксплуатации могут настаивать на внесении в него изменений и его дальнейшем совершенствовании. Кроме того на стадии сопровождения происходит составление документации.

Документация профессионального программного обеспечения включает проектную, системную и пользовательскую. Проектная документация содержит спецификации программной системы, системная – тексты исходной версии всех программных процедур системы, пользовательская – учебные руководства, книги, модули справочной системы.



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



Сейчас читают про: