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


Категории ошибок в программном обеспечении


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

Ошибки можно систематизировать по этапам разработки про­граммного продукта.

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

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

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

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

5. Серьезные ошибки могут быть допущены при проектирова­нии базы данных (в описании модели, определении типов элемен­тов и структур данных, а также связей между ними, способах обра­щений к данным и т.п.)-

6. Наибольшее число ошибок относится к этапу кодирования и тестирования. Ошибки этой группы исследованы наиболее полно, и для них собран обширный статистический материал-Ошибки при программировании можно просто разделить на синтаксические и логические. Многие синтаксические ошибки обна­руживает транслятор; немало синтаксических ошибок при трансля­ции не обнаруживается.

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

Содержание раздела