Разработка ПО включает проектирование тестирования, основной задачей которого является
- предупреждение ошибок;
- обнаружение ошибок;
- их исправление;
- обеспечение устойчивости к ошибкам.
Применяются методы:
- минимизации ошибок;
- разработка функций ПО для выявления ошибок;
- функции ПО для исправления ошибок;
- методы обеспечения устойчивости.
1. Предупреждение ошибок. Сведение к минимуму сложности. Сложность - следствие непонимания. Применяются методы немедленного обнаружения и устранения ошибок. Предупреждение - оптимальный путь, однако, невозможно гарантировать отсутствие ошибок в сложной программе. Если в программе количество операторов где-то 3500, то там есть не обнаружимые ошибки.
2. Обнаружение ошибок сводится к локализации ошибок. В последнее время для этого разрабатываются экспертные системы. Речь идёт об ошибках реализации алгоритма.
3. Исправление ошибок.
Способы: при обнаружении неправильной работы необходимо задействовать запасные компоненты ПО, однако, сложно всё предусмотреть.
4. Устойчивость к ошибкам:
- метод голосования - автоматически запускаются копии модулей при наличии ошибок. Сложность - незнание правильного ответа;
- метод отступления - сохранение минимально необходимых ресурсов программы без аварийного завершения;
- метод изоляции ошибок и локализации их последствий. Однако, эти методы могут противоречить с методами предупреждения ошибок.
При реализации 1-3 усложняется ПО и могут возникнуть ошибки. Однако, в системах реального времени первые три метода желательны. Для систем реального времени главное время(телефонные системы, АСУ ТП, диспетчерские системы, операционные системы в компьютере).
Эти стадии проектирования предназначены для любого ПО:
1 - что ждёт пользователь от конечного продукта?
2 - определяются задачи, стоящие перед окончательным результатом.
3 - связи с пользователем.
4 - подробно определяются связи с пользователем.
5 - разложение системы на компоненты и определение соотношений между ими.
6 - определение всех соотношений модуля.
8 - структурная блок-схема и составление программы.
При обнаружении ошибки надо сразу же вернуться в предыдущую стадию.
Сложность ПО.
Сложность ПО это основная причина ошибок. Её трудно оценить и измерить.
Для борьбы со сложностью:
- максимальная независимость компонент системы; такое разбиение системы, чтобы высокочастотная динамика была между компонент;
- иерархическая структура. Можно понять уровень системы не вдаваясь в детализацию. Это позволяет устранить побочные эффекты компонент системы.